Prefix Ranks

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
bullic
Извън линия
Мнения: 49
Регистриран на: 13 Ное 2016, 11:53

Prefix Ranks

Мнение от bullic » 14 Дек 2016, 19:51

Здравейте. Когато някой напише в теам Чата излиза така: TerroristsNewbie: test , а когато админ напише - (Terrorists) [OWNER] Pr0_-_BuLLic.: test
Искам да излиза името на играЧа и ранка , а при админите да изкарва и ранка.
Сма.

Код за потвърждение: Избери целия код

#include <amxmodx>
    #include <amxmisc>
    #include <csstats>

    #define RANK_NOTHING 0
    #define RANK_PRIVATE 1
    #define RANK_PRIVATE_FIRST_CLASS 2
    #define RANK_CORPORAL 3
    #define RANK_SERGEANT 4
    #define RANK_STAFF_SERGEANT 5
    #define RANK_GUNNERY_SERGEANT 6
    #define RANK_MASTER_SERGEANT 7
    #define RANK_COMMAND_SERGEANT 8
    #define RANK_SECOND_LIEUTENANT 9
    #define MAXRANKS 10
    new PlayerRank[33]

    #define PLUGIN "Admin Chat Colors"
    #define VERSION "2.2a"
    #define AUTHOR "Arion/juan,hackera_vd"

    #define ACCESS_LEVEL      ADMIN_IMMUNITY
    #define ADMIN_LISTEN      ADMIN_CHAT

    #define ADMIN_CHAT_FLAG    ADMIN_RCON
    #define MOD_CHAT_FLAG      ADMIN_BAN
    #define VIP_CHAT_FLAG      ADMIN_KICK
    #define GIRL_CHAT_FLAG      ADMIN_SLAY

    new message[192]
    new sayText
    new teamInfo
    new maxPlayers

    new g_MessageColor
    new g_NameColor
    new g_AdminListen

    new strName[191]
    new strText[191]
    new alive[11]

    new const g_szTag[][] = {
       "",
       "[OWNER]",
       "[Admin]",
       "[SMS Admin]",
       "[VIP]"
    }

    public plugin_init()
    {
       register_plugin(PLUGIN, VERSION, AUTHOR)
       
       g_MessageColor = register_cvar("amx_color", "3")
       g_NameColor = register_cvar("amx_namecolor", "2")
       g_AdminListen = register_cvar("amx_listen", "1")
       
       
       sayText = get_user_msgid("SayText")
       teamInfo = get_user_msgid("TeamInfo")
       maxPlayers = get_maxplayers()
       
       
       register_message(sayText, "avoid_duplicated")
       
       register_concmd("amx_color", "set_color", ACCESS_LEVEL, "<color>")
       register_concmd("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>")
       register_concmd("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>")
       register_clcmd("say", "hook_say")
       register_clcmd("say_team", "hook_teamsay")
    }

    new const rankNames[MAXRANKS][] =
    {
    "Newbie",
    "Advanced",
    "Killer",
    "Danger Killer",
    "Multi Killer",
    "Ultra Killer",
    "Mega Killer",
    "Super Killer",
    "Pro Killer",
    "The Best Killer"
    }
    new const rankXP[MAXRANKS] =
    {
    0, 50, 150, 350, 600, 850, 1200, 1600, 2200, 3000
    }
    //KRAI NA Kills=TAGS


    public avoid_duplicated(msgId, msgDest, receiver)
    {
    return PLUGIN_HANDLED
    }


    public hook_say(id)
    {
    read_args(message, 191)
    remove_quotes(message)

    // Gungame commands and empty messages
    if(message[0] == '@' || message[0] == '/' || message[0] == '!' || message[0] == '#' || message[0] == '$' || equal(message, "")) // Ignores Admin Hud Messages, Admin Slash commands
    return PLUGIN_CONTINUE

    new name[32]
    get_user_name(id, name, 31)

    new admin = 0, iFlags = get_user_flags(id)

    if(iFlags & ADMIN_CHAT_FLAG)
       admin = 1
       else if(iFlags & MOD_CHAT_FLAG)
          admin = 2
       else if(iFlags & VIP_CHAT_FLAG)
          admin = 3
       else if(iFlags & GIRL_CHAT_FLAG)
          admin = 4
       
       new isAlive
       
       
       if(is_user_alive(id))
       {
          isAlive = 1
          alive = "^x01"
       }
       else
       {
          isAlive = 0
          alive = "^x01*DEAD* "
       }
       
       static color[10]
       //start
       static stats[8], hits[8]
       get_user_stats(id, stats, hits)
       get_user_name(id, name, 32)
       
       new currentPlayerRank = 0;
       while
       (currentPlayerRank < (MAXRANKS - 1))
    {       
       if(stats[0] >= rankXP[currentPlayerRank + 1])         
          ++currentPlayerRank;     
          else         
             break;
       }       
       PlayerRank[id] = currentPlayerRank;   
       //krai
       
       if(admin)
       {
          // Name
          switch(get_pcvar_num(g_NameColor))
          {
             case 1:
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
             case 2:
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
             case 3:
             {
                color = "SPECTATOR"
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
             }
             case 4:
             {
                color = "CT"
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
             }
             case 5:
             {
                color = "TERRORIST"
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
             }
             case 6:
             {
                get_user_team(id, color, 9)
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
             }
          }
          
          // Message
          switch(get_pcvar_num(g_MessageColor))
          {
             case 1:    // Yellow
                format(strText, 191, "%s", message)
             case 2:    // Green
                format(strText, 191, "^x03%s", message)
             case 3:    // White
             {
                copy(color, 9, "SPECTATOR")
                format(strText, 191, "^x03%s", message)
             }
             case 4:    // Blue
             {
                copy(color, 9, "CT")
                format(strText, 191, "^x03%s", message)
             }
             case 5:    // Red
             {
                copy(color, 9, "TERRORIST")
                format(strText, 191, "^x03%s", message)
             }
          }
       }
       else     // Player is not admin. Team-color name : Yellow message
       {
          
          new UserIp[16];
          get_user_ip(id, UserIp, 15);
          
          get_user_team(id, color, 9)
          format(strName, 191, "%s^x04[^x01%s^x04] ^x03%s", alive, rankNames[currentPlayerRank], name)
          format(strText, 191, "%s", message)
       }
       
       format(message, 191, "%s^x01 : %s", strName, strText)
       
       sendMessage(color, isAlive)    // Sends the colored message
       
       return PLUGIN_CONTINUE
    }


    public hook_teamsay(id)
    {
       new playerTeam = get_user_team(id)
       new playerTeamName[19]
       
       switch(playerTeam) // Team names which appear on team-only messages
       {
          case 1:
             copy(playerTeamName, 11, "Terrorists")
          
          case 2:
             copy(playerTeamName, 18, "Counter-Terrorists")
          
          default:
          copy(playerTeamName, 9, "Spectator")
       }
       
       read_args(message, 191)
       remove_quotes(message)
       
       // Gungame commands and empty messages
       if(message[0] == '@' || message[0] == '/' || message[0] == '!' || message[0] == '#' || message[0] == '$' || equal(message, "")) // Ignores Admin Hud Messages, Admin Slash commands
          return PLUGIN_CONTINUE
       
       new name[32]
       get_user_name(id, name, 31)
       
       new admin = 0, iFlags = get_user_flags(id)
       
       if(iFlags & ADMIN_CHAT_FLAG)
          admin = 1
       else if(iFlags & MOD_CHAT_FLAG)
          admin = 2
       else if(iFlags & VIP_CHAT_FLAG)
          admin = 3
       
       new isAlive
       
       if(is_user_alive(id))
       {
          isAlive = 1
          alive = "^x01"
       }
       else
       {
          isAlive = 0
          alive = "^x01*DEAD* "
       }
       
       static color[10]
       
       if(admin)
       {
          // Name
          switch(get_pcvar_num(g_NameColor))
          {
             case 1:
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
             case 2:
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
             case 3:
             {
                color = "SPECTATOR"
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
             }
             case 4:
             {
                color = "CT"
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
             }
             case 5:
             {
                color = "TERRORIST"
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
             }
             case 6:
             {
                get_user_team(id, color, 9)
                format(strName, 191, "%s^x03%s^x04[^x01%s^x04] ^x04%s", alive, g_szTag[admin], rankNames[currentPlayerRank], name)
	     }
          }
          
          // Message
          switch(get_pcvar_num(g_MessageColor))
          {
             case 1:    // Yellow
                format(strText, 191, "%s", message)
             case 2:    // Green
                format(strText, 191, "^x03%s", message)
             case 3:    // White
             {
                copy(color, 9, "SPECTATOR")
                format(strText, 191, "^x03%s", message)
             }
             case 4:    // Blue
             {
                copy(color, 9, "CT")
                format(strText, 191, "^x03%s", message)
             }
             case 5:    // Red
             {
                copy(color, 9, "TERRORIST")
                format(strText, 191, "^x03%s", message)
             }
          }
       }
       else     // Player is not admin. Team-color name : Yellow message
       {
          //start
          static stats[8], hits[8]
          get_user_stats(id, stats, hits)
          get_user_name(id, name, 32)
          
          new currentPlayerRank = 0;
          while
          (currentPlayerRank < (MAXRANKS - 1))
       {       
          if(stats[0] >= rankXP[currentPlayerRank + 1])         
             ++currentPlayerRank;     
             else         
                break;
          }       
          PlayerRank[id] = currentPlayerRank;   
          //krai
          new UserIp[16];
          get_user_ip(id, UserIp, 15);
          
          get_user_team(id, color, 9)
	new GetUserTeam = get_user_team(id);
	new GetUserTeamName[19];
	switch(GetUserTeam)
        {
        case 1 : copy (GetUserTeamName, 11, "Terrorists");
	case 2 : copy (GetUserTeamName, 18, "Counter-Terrorists");
	default: copy (GetUserTeamName, 9, "Spectator");
        }
          format(strName, 191, "%s^x04%s^x03%s", alive, GetUserTeamName, rankNames[currentPlayerRank], name)
          format(strText, 191, "%s", message)
       }
       
       format(message, 191, "%s^x01: %s", strName, strText)
       
       sendTeamMessage(color, isAlive, playerTeam)    // Sends the colored message
       
       return PLUGIN_CONTINUE
    }


    public set_color(id, level, cid)
    {
       if(!cmd_access(id, level, cid, 2))
          return PLUGIN_HANDLED
       
       new arg[1], newColor
       read_argv(1, arg, 1)
       
       newColor = str_to_num(arg)
       
       if(newColor >= 1 && newColor <= 5)
       {
          set_pcvar_num(g_MessageColor, newColor)
          
          if(get_pcvar_num(g_NameColor) != 1 &&
          ((newColor == 3 &&  get_pcvar_num(g_NameColor) != 3)
          ||(newColor == 4 &&  get_pcvar_num(g_NameColor) != 4)
          ||(newColor == 5 &&  get_pcvar_num(g_NameColor) != 5)))
       {
          set_pcvar_num(g_NameColor, 2)
       }
    }

    return PLUGIN_HANDLED
    }


    public set_name_color(id, level, cid)
    {
    if(!cmd_access(id, level, cid, 2))
       return PLUGIN_HANDLED
       
       new arg[1], newColor
       read_argv(1, arg, 1)
       
       newColor = str_to_num(arg)
       
       if(newColor >= 1 && newColor <= 6)
       {
          set_pcvar_num(g_NameColor, newColor)
          
          if((get_pcvar_num(g_MessageColor) != 1
          &&((newColor == 3 &&  get_pcvar_num(g_MessageColor) != 3)
          ||(newColor == 4 &&  get_pcvar_num(g_MessageColor) != 4)
          ||(newColor == 5 &&  get_pcvar_num(g_MessageColor) != 5)))
          || get_pcvar_num(g_NameColor) == 6)
       {
          set_pcvar_num(g_MessageColor, 2)
       }
    }

    return PLUGIN_HANDLED
    }


    public set_listen(id, level, cid)
    {
    if(!cmd_access(id, level, cid, 2))
       return PLUGIN_HANDLED
       
       new arg[1], newListen
       read_argv(1, arg, 1)
       
       newListen = str_to_num(arg)
       
       set_pcvar_num(g_AdminListen, newListen)
       
       return PLUGIN_HANDLED
    }


    public sendMessage(color[], alive)
    {
       new teamName[10]
       
       for(new player = 1; player < maxPlayers; player++)
       {
          if(!is_user_connected(player))
             continue
          
          if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
          {
             get_user_team(player, teamName, 9)    // Stores user's team name to change back after sending the message
             changeTeamInfo(player, color)        // Changes user's team according to color choosen
             writeMessage(player, message)        // Writes the message on player's chat
             changeTeamInfo(player, teamName)    // Changes user's team back to original
          }
       }
    }


    public sendTeamMessage(color[], alive, playerTeam)
    {
       new teamName[10]
       
       for(new player = 1; player < maxPlayers; player++)
       {
          if(!is_user_connected(player))
             continue
          
          if(get_user_team(player) == playerTeam || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
          {
             if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
             {
                get_user_team(player, teamName, 9)    // Stores user's team name to change back after sending the message
                changeTeamInfo(player, color)        // Changes user's team according to color choosen
                writeMessage(player, message)        // Writes the message on player's chat
                changeTeamInfo(player, teamName)    // Changes user's team back to original
             }
          }
       }
    }


    public changeTeamInfo(player, team[])
    {
       message_begin(MSG_ONE, teamInfo, _, player)    // Tells to to modify teamInfo(Which is responsable for which time player is)
       write_byte(player)                // Write byte needed
       write_string(team)                // Changes player's team
       message_end()                    // Also Needed
    }


    public writeMessage(player, message[])
    {
       message_begin(MSG_ONE, sayText, {0, 0, 0}, player)    // Tells to modify sayText(Which is responsable for writing colored messages)
       write_byte(player)                    // Write byte needed
       write_string(message)                    // Effectively write the message, finally, afterall
       message_end()                        // Needed as always
    }
Последно промяна от OciXCrom на 14 Дек 2016, 21:14, променено общо 1 път.
Причина: Преместена тема!
Изображение

  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 18 госта