Page 1 of 3

[ADMIN], [VIP], [Pagr.Admin]

Posted: 2012 Dec 12 15:39
by iDziugas
Sveiki, zinau, kad toks pluginas liktai yra, arba as buvau kazka panasaus surades.

Taigi manau supratote reikai kad prie NICKO rasytu

[VIP] Falgas "t" (T.y, kad tik kuris zaidejas turi "t" flaga, tik prie jo nicko bus [VIP]
[ADMIN] Flagas "u" (T.y, kad tik kuris zaidejas turi "u" flaga, tik prie jo nicko bus [ADMIN]
[Pagr.Admin] Flagai "hg" (T.y, kad tik kuris zaidejas turi "hg flaga, tik prie jo nicko bus [Pagr.Admin]

Dar pagalvojau jei ADMIN turi "u" flaga, bet zinoma ir pagr admin ji turi, tai idomu ar nesibugins ?

Tiesiog jei atsirastu reikalas surasyciau kitus flagus.

Re: [ADMIN], [VIP], [Pagr.Admin]

Posted: 2012 Dec 12 16:35
by Trickas

Code: Select all

#include <amxmodx>#include <amxmisc> #define PLUGIN "Admin Chat Colors"#define VERSION "2.0"#define AUTHOR "Arion" #define ACCESS_LEVEL ADMIN_IMMUNITYnew message[192]new sayTextnew teamInfonew maxPlayers new g_MessageColornew g_NameColornew g_AdminListen new strName[191]new strText[191]new alive[11] new const g_szTag[][] = {    "", // DO NOT REMOVE    "[Savininkas]",    "[SuperAdmin]",    "[Admin]",    "[Vip]"} new const g_iTagFlag[sizeof(g_szTag)] = {    ADMIN_ALL, // DO NOT REMOVE    ADMIN_RCON,    ADMIN_IMMUNITY,    ADMIN_BAN,    ADMIN_LEVEL_H} public plugin_init(){    register_plugin(PLUGIN, VERSION, AUTHOR)     g_MessageColor = register_cvar("amx_color", "1") // Message colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red    g_NameColor = register_cvar("amx_namecolor", "6") // Name colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red, [6] Team-color    g_AdminListen = register_cvar("amx_listen", "0") // Set whether admins see or not all messages(Alive, dead and team-only)      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")}  public avoid_duplicated(msgId, msgDest, receiver){    return PLUGIN_HANDLED} get_tag_index(id){    new flags = get_user_flags(id)        for(new i = 1; i < sizeof(g_iTagFlag); i++)    {        if(check_admin_flag(flags, g_iTagFlag[i]))        {            return i        }    }        return 0} check_admin_flag(flags, flag){    if(flag == ADMIN_ADMIN)    {        return ((flags & ~ADMIN_USER) > 0)    }    else if(flag == ADMIN_ALL)    {        return 1    }        return (flags & flag)} public hook_say(id){    read_args(message, 191)    remove_quotes(message)     // Gungame commands and empty messages    if(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 = get_tag_index(id)     new isAlive     if(is_user_alive(id))    {        isAlive = 1        alive = "^x01"    }    else    {        isAlive = 0        alive = "^x01*MIRES* "    }     static color[10]     if(admin)    {        // Name        switch(get_pcvar_num(g_NameColor))        {            case 1:                format(strName, 191, "^x04%s %s%s", g_szTag[admin], alive, name)            case 2:                format(strName, 191, "^x04%s %s^x04%s ", g_szTag[admin], alive, name)            case 3:            {                color = "SPECTATOR"                format(strName, 191, "^x04%s %s^x03%s ", g_szTag[admin], alive, name)            }            case 4:            {                color = "CT"                format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name)            }            case 5:            {                color = "TERRORIST"                format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name)            }            case 6:            {                get_user_team(id, color, 9)                format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name)            }        }         // Message        switch(get_pcvar_num(g_MessageColor))        {            case 1:    // Yellow                format(strText, 191, "%s", message)            case 2:    // Green                format(strText, 191, "^x04%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    {        get_user_team(id, color, 9)        format(strName, 191, "%s^x03%s", alive, 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, "Teroristas")         case 2:            copy(playerTeamName, 18, "Policininkas")         default:            copy(playerTeamName, 9, "Ziurovas")    }     read_args(message, 191)    remove_quotes(message)     // Gungame commands and empty messages    if(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 = get_tag_index(id)     new isAlive     if(is_user_alive(id))    {        isAlive = 1        alive = "^x01"    }    else    {        isAlive = 0        alive = "^x01*MIRES* "    }     static color[10]     if(admin)    {        // Name        switch(get_pcvar_num(g_NameColor))        {            case 1:                format(strName, 191, "%s(%s)^x04%s %s", alive, playerTeamName, g_szTag[admin], name)            case 2:                format(strName, 191, "%s(%s)^x04%s ^x04%s", alive, playerTeamName, g_szTag[admin], name)            case 3:            {                color = "SPECTATOR"                format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name)            }            case 4:            {                color = "CT"                format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name)            }            case 5:            {                color = "TERRORIST"                format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name)            }            case 6:            {                get_user_team(id, color, 9)                format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name)            }        }         // Message        switch(get_pcvar_num(g_MessageColor))        {            case 1:    // Yellow                format(strText, 191, "%s", message)            case 2:    // Green                format(strText, 191, "^x04%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    {        get_user_team(id, color, 9)        format(strName, 191, "%s(%s) ^x03%s", alive, playerTeamName, 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_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))        {            if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen))            {                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}  
Šitą pats naudojau, ten tuos jeigu per daug tai savininkas pasinaikink.

Re: [ADMIN], [VIP], [Pagr.Admin]

Posted: 2012 Dec 12 16:56
by newb
2 fucking hard core. Sita plugina gal per 30 eiluciu galima padaryti... Tuo labiau jis yra sitame forume.

Re: [ADMIN], [VIP], [Pagr.Admin]

Posted: 2012 Dec 12 21:21
by iDziugas
Kazkodel neleidzia su compilinti. Errorai...

Re: [ADMIN], [VIP], [Pagr.Admin]

Posted: 2012 Dec 13 16:59
by Trickas
Erroruse viskas parašyta kas negerai. Pas mane sukompilina be errorų, gal includų trūksta.

Re: [ADMIN], [VIP], [Pagr.Admin]

Posted: 2012 Dec 13 18:03
by iDziugas
Redaguoju...

Viskas jau veikia !

Re: [ADMIN], [VIP], [Pagr.Admin]

Posted: 2012 Dec 14 19:38
by DoS
Bet kai aš parašau teksta su šiuo pluginu man išmeta double. Viename rašo [savininkas] o kitame default tekstas. Gal žinot kaip šią problemą išspręst?

Re: [ADMIN], [VIP], [Pagr.Admin]

Posted: 2012 Dec 14 20:24
by Giltinas
DoS, patikrink savo plugin gal kuris reguliuoja chat ir todėl rašo 2 kart.

Re: [ADMIN], [VIP], [Pagr.Admin]

Posted: 2012 Dec 14 21:03
by Trickas
alltalk arba allchat plugino dėka taip yra, atjunk.

Re: [ADMIN], [VIP], [Pagr.Admin]

Posted: 2014 Feb 12 16:58
by scriptas
Butu neblogai dar SpecAdmin