AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   erro color chat plmenu_ab_base (https://forums.alliedmods.net/showthread.php?t=312466)

james 007 12-04-2018 12:58

erro color chat plmenu_ab_base
 
Hello, can someone correct the error please

Help

L 12/04/2018 - 17:51:25: Invalid vector string handle provided (0)
L 12/04/2018 - 17:51:25: [AMXX] Displaying debug trace (plugin "plmenu_ab_base.amxx")
L 12/04/2018 - 17:51:25: [AMXX] Run time error 10: native error (native "vformat")
L 12/04/2018 - 17:51:25: [AMXX] [0] plmenu_ab_base.sma::ColorChat (line 992)
L 12/04/2018 - 17:51:25: [AMXX] [1] plmenu_ab_base.sma::showRandomLine (line 936)
L 12/04/2018 - 17:52:25: Invalid vector string handle provided (0)
L 12/04/2018 - 17:52:25: [AMXX] Displaying debug trace (plugin "plmenu_ab_base.amxx")
L 12/04/2018 - 17:52:25: [AMXX] Run time error 10: native error (native "vformat")
L 12/04/2018 - 17:52:25: [AMXX] [0] plmenu_ab_base.sma::ColorChat (line 992)
L 12/04/2018 - 17:52:25: [AMXX] [1] plmenu_ab_base.sma::showRandomLine (line 936)

Code:
#include <amxmodx> #include <amxmisc> #include <cstrike> /** skip autoloading since it's optional */ #define AMXMODX_NOAUTOLOAD new g_menuPosition[33] new g_menuPlayers[33][32] new g_menuPlayersNum[33] new g_menuOption[33] new g_menuSettings[33] new g_menuSelect[33][64] new g_menuSelectNum[33] #define MAX_CLCMDS 24 new g_clcmdName[MAX_CLCMDS][32] new g_clcmdCmd[MAX_CLCMDS][64] new g_clcmdMisc[MAX_CLCMDS][2] new g_clcmdNum new g_coloredMenus new g_cstrike = 0 new Array:g_bantimes; new Array:g_slapsettings; new Array:g_arModels new g_CSTeamNames[3][] = {     "TERRORIST",     "CT",     "SPECTATOR" } new g_CSTeamNumbers[3][] = {     "1",     "2",     "6" } new g_CSTeamiNumbers[3] = {     1,     2,     6 } new g_ban_player[33]; public plugin_natives() {     set_module_filter("module_filter")     set_native_filter("native_filter") } public plugin_init() {     register_plugin("Players Menu", AMXX_VERSION_STR, "AMXX Dev Team")     register_dictionary("common.txt")     register_dictionary("admincmd.txt")     register_dictionary("plmenu.txt")     register_clcmd("amx_kickmenu", "cmdKickMenu", ADMIN_KICK, "- displays kick menu")     register_clcmd("amx_banmenu", "cmdBanMenu", ADMIN_BAN, "- displays ban menu")     register_clcmd("amx_slapmenu", "cmdSlapMenu", ADMIN_SLAY, "- displays slap/slay menu")     register_clcmd("amx_teammenu", "cmdTeamMenu", ADMIN_LEVEL_A, "- displays team menu")     register_clcmd("amx_clcmdmenu", "cmdClcmdMenu", ADMIN_LEVEL_A, "- displays client cmds menu")     register_clcmd("amx_banreason", "CmdBanReason", ADMIN_BAN, "<reason>");     register_menucmd(register_menuid("Ban Menu"), 1023, "actionBanMenu")     register_menucmd(register_menuid("Kick Menu"), 1023, "actionKickMenu")     register_menucmd(register_menuid("Chapada/Matar Menu"), 1023, "actionSlapMenu")     register_menucmd(register_menuid("Equipa Menu"), 1023, "actionTeamMenu")     register_menucmd(register_menuid("Cliente Cmds Menu"), 1023, "actionClcmdMenu")         g_arModels = ArrayCreate(192)         loadIni()     set_task(60.0, "showRandomLine", .flags = "b")         g_bantimes = ArrayCreate();     // Load up the old default values     ArrayPushCell(g_bantimes, 5);     ArrayPushCell(g_bantimes, 10);     ArrayPushCell(g_bantimes, 15);     ArrayPushCell(g_bantimes, 30);     ArrayPushCell(g_bantimes, 45);     ArrayPushCell(g_bantimes, 60);     ArrayPushCell(g_bantimes, 90);     ArrayPushCell(g_bantimes, 120);     ArrayPushCell(g_bantimes, 1440);     ArrayPushCell(g_bantimes, 10080);     ArrayPushCell(g_bantimes, 0);         g_slapsettings = ArrayCreate();     // Old default values     ArrayPushCell(g_slapsettings, 0); // First option is ignored - it is slay     ArrayPushCell(g_slapsettings, 0); // slap 0 damage     ArrayPushCell(g_slapsettings, 1);     ArrayPushCell(g_slapsettings, 5);             register_srvcmd("amx_plmenu_bantimes", "plmenu_setbantimes");     register_srvcmd("amx_plmenu_slapdmg", "plmenu_setslapdmg");     g_coloredMenus = colored_menus()     new clcmds_ini_file[64]     get_configsdir(clcmds_ini_file, 63)     format(clcmds_ini_file, 63, "%s/clcmds.ini", clcmds_ini_file)     load_settings(clcmds_ini_file)     if (module_exists("cstrike"))         g_cstrike = 1 } public plmenu_setbantimes() {     new buff[32];     new args = read_argc();         if (args <= 1)     {         server_print("usage: amx_plmenu_bantimes <time1> [time2] [time3] ...");         server_print("   use time of 0 for permanent.");                 return;     }         ArrayClear(g_bantimes);         for (new i = 1; i < args; i++)     {         read_argv(i, buff, charsmax(buff));                 ArrayPushCell(g_bantimes, str_to_num(buff));             }     } public plmenu_setslapdmg() {     new buff[32];     new args = read_argc();         if (args <= 1)     {         server_print("usage: amx_plmenu_slapdmg <dmg1> [dmg2] [dmg3] ...");         server_print("   slay is automatically set for the first value.");                 return;     }         ArrayClear(g_slapsettings);         ArrayPushCell(g_slapsettings, 0); //compensate for slay         for (new i = 1; i < args; i++)     {         read_argv(i, buff, charsmax(buff));                 ArrayPushCell(g_slapsettings, str_to_num(buff));             }     } public module_filter(const module[]) {     if (equali(module, "cstrike"))         return PLUGIN_HANDLED         return PLUGIN_CONTINUE } public native_filter(const name[], index, trap) {     if (!trap)         return PLUGIN_HANDLED             return PLUGIN_CONTINUE } public client_disconnect(id) {     g_ban_player[id] = 0; } public CmdBanReason(id) {     new player = g_ban_player[id];         if( !player ) return PLUGIN_HANDLED;         new reason[128];     read_args(reason, sizeof(reason) - 1);     remove_quotes(reason);         new name[32], name2[32], authid[32], authid2[32]     get_user_name(player, name2, 31)     get_user_authid(id, authid, 31)     get_user_authid(player, authid2, 31)     get_user_name(id, name, 31)         new userid2 = get_user_userid(player)     log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%d^") (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, g_menuSettings[id], reason)     if(containi(authid2, "VALVE") != -1)     {         client_cmd(id,"amx_banip #%i %i ^"%s^"", userid2, g_menuSettings[id], reason)     }     else     {         client_cmd(id,"amx_ban #%i %i ^"%s^"", userid2, g_menuSettings[id], reason)     }     server_exec()         g_ban_player[id] = 0;     displayBanMenu(id, g_menuPosition[id])         return PLUGIN_HANDLED; } public actionBanMenu(id, key) {     switch (key)     {         case 7:         {             /* BEGIN OF CHANGES BY MISTAGEE ADDED A FEW MORE OPTIONS */             ++g_menuOption[id]             g_menuOption[id] %= ArraySize(g_bantimes);             g_menuSettings[id] = ArrayGetCell(g_bantimes, g_menuOption[id]);             displayBanMenu(id, g_menuPosition[id])         }         case 8: displayBanMenu(id, ++g_menuPosition[id])         case 9: displayBanMenu(id, --g_menuPosition[id])         default:         {             g_ban_player[id] = g_menuPlayers[id][g_menuPosition[id] * 7 + key]                         client_cmd(id, "messagemode amx_banreason");                         ColorChat(id, "!ySTAFF!t Digite o motivo para a Banir este jogador.");         }     }         return PLUGIN_HANDLED } displayBanMenu(id, pos) {     if (pos < 0)         return     get_players(g_menuPlayers[id], g_menuPlayersNum[id])     new menuBody[512]     new b = 0     new i     new name[32]     new start = pos * 7     if (start >= g_menuPlayersNum[id])         start = pos = g_menuPosition[id] = 0     new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "BAN_MENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))     new end = start + 7     new keys = MENU_KEY_0|MENU_KEY_8     if (end > g_menuPlayersNum[id])         end = g_menuPlayersNum[id]     for (new a = start; a < end; ++a)     {         i = g_menuPlayers[id][a]         get_user_name(i, name, 31)         if (is_user_bot(i) || (access(i, ADMIN_IMMUNITY) && i != id))         {             ++b                         if (g_coloredMenus)                 len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, name)             else                 len += format(menuBody[len], 511-len, "#. %s^n", name)         } else {             keys |= (1<<b)                             if (is_user_admin(i))                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*^n\w" : "%d. %s *^n", ++b, name)             else                 len += format(menuBody[len], 511-len, "%d. %s^n", ++b, name)         }     }     if (g_menuSettings[id])     {         new banLength[32]         if (timeToString(g_menuSettings[id], banLength, 31))             len += format(menuBody[len], 511-len, "^n8. Banir por %s^n", banLength)         else             len += format(menuBody[len], 511-len, "^n8. %L^n", id, "BAN_FOR_MIN", g_menuSettings[id])     }     else         len += format(menuBody[len], 511-len, "^n8. %L^n", id, "BAN_PERM")     if (end != g_menuPlayersNum[id])     {         format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")         keys |= MENU_KEY_9     }     else         format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")     show_menu(id, keys, menuBody, -1, "Ban Menu") } timeToString(minutes, output[], len) {     new hours = minutes / 60;     minutes %= 60;         new days = hours / 24;     hours %= 24;         new ret         if (days)         ret += formatex(output[ret], len-ret, "%s%d Dia%s", ret ? ", " : "", days, (days == 1) ? "" : "s")         if (hours)         ret += formatex(output[ret], len-ret, "%s%d Hora%s", ret ? ", " : "", hours, (hours == 1) ? "" : "s")         if (minutes)         ret += formatex(output[ret], len-ret, "%s%d minuto%s", ret ? ", " : "", minutes, (minutes == 1) ? "" : "s")         return ret } public cmdBanMenu(id, level, cid) {     if (!cmd_access(id, level, cid, 1))         return PLUGIN_HANDLED     g_menuOption[id] = 0         if (ArraySize(g_bantimes) > 0)     {         g_menuSettings[id] = ArrayGetCell(g_bantimes, g_menuOption[id]);     }     else     {         // should never happen, but failsafe         g_menuSettings[id] = 0     }     displayBanMenu(id, g_menuPosition[id] = 0)     return PLUGIN_HANDLED } public actionSlapMenu(id, key) {     switch (key)     {         case 7:         {             ++g_menuOption[id]                         g_menuOption[id] %= ArraySize(g_slapsettings);                         g_menuSettings[id] = ArrayGetCell(g_slapsettings, g_menuOption[id]);                         displaySlapMenu(id, g_menuPosition[id]);         }         case 8: displaySlapMenu(id, ++g_menuPosition[id])         case 9: displaySlapMenu(id, --g_menuPosition[id])         default:         {             new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]             new name2[32]                         get_user_name(player, name2, 31)             if (!is_user_alive(player))             {                 ColorChat(id, "!ySTAFF!t nao pode ser executado no jogador morto!g %s", name2)                 //client_print(id, print_chat, "%L", id, "CANT_PERF_DEAD", name2)                 displaySlapMenu(id, g_menuPosition[id])                 return PLUGIN_HANDLED             }             new authid[32], authid2[32], name[32]             get_user_authid(id, authid, 31)             get_user_authid(player, authid2, 31)             get_user_name(id, name, 31)             if (g_menuOption[id])             {                 log_amx("Cmd: ^"%s<%d><%s><>^" slap with %d damage ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, g_menuSettings[id], name2, get_user_userid(player), authid2)                 ColorChat(0, "!ySTAFF!t %s!g deu um tapa no!t %s!g de!t %d HP", name, name2, g_menuSettings[id]);                 //show_activity_key("ADMIN_SLAP_1", "ADMIN_SLAP_2", name, name2, g_menuSettings[id]);             } else {                 log_amx("Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2)                                 ColorChat(0, "!ySTAFF!t %s!g matou o!t %s", name, name2);                 //show_activity_key("ADMIN_SLAY_1", "ADMIN_SLAY_2", name, name2);             }             if (g_menuOption[id])                 user_slap(player, (get_user_health(player) > g_menuSettings[id]) ? g_menuSettings[id] : 0)             else                 user_kill(player)             displaySlapMenu(id, g_menuPosition[id])         }     }         return PLUGIN_HANDLED } displaySlapMenu(id, pos) {     if (pos < 0)         return     get_players(g_menuPlayers[id], g_menuPlayersNum[id])     new menuBody[512]     new b = 0     new i     new name[32], team[4]     new start = pos * 7     if (start >= g_menuPlayersNum[id])         start = pos = g_menuPosition[id] = 0     new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "SLAP_SLAY_MENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))     new end = start + 7     new keys = MENU_KEY_0|MENU_KEY_8     if (end > g_menuPlayersNum[id])         end = g_menuPlayersNum[id]     for (new a = start; a < end; ++a)     {         i = g_menuPlayers[id][a]         get_user_name(i, name, 31)                 if (g_cstrike)         {             if (cs_get_user_team(i) == CS_TEAM_T)             {                 copy(team, 3, "TE")             }             else if (cs_get_user_team(i) == CS_TEAM_CT)             {                 copy(team, 3, "CT")             } else {                 get_user_team(i, team, 3)             }         } else {             get_user_team(i, team, 3)         }         if (!is_user_alive(i) || (access(i, ADMIN_IMMUNITY) && i != id))         {             ++b                     if (g_coloredMenus)                 len += format(menuBody[len], 511-len, "\d%d. %s\R%s^n\w", b, name, team)             else                 len += format(menuBody[len], 511-len, "#. %s   %s^n", name, team)               } else {             keys |= (1<<b)                             if (is_user_admin(i))                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*\y\R%s^n\w" : "%d. %s *   %s^n", ++b, name, team)             else                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s\y\R%s^n\w" : "%d. %s   %s^n", ++b, name, team)         }     }     if (g_menuOption[id])         len += format(menuBody[len], 511-len, "^n8. %L^n", id, "SLAP_WITH_DMG", g_menuSettings[id])     else         len += format(menuBody[len], 511-len, "^n8. %L^n", id, "SLAY")     if (end != g_menuPlayersNum[id])     {         format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")         keys |= MENU_KEY_9     }     else         format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")     show_menu(id, keys, menuBody, -1, "Chapada/Matar Menu") } public cmdSlapMenu(id, level, cid) {     if (!cmd_access(id, level, cid, 1))         return PLUGIN_HANDLED     g_menuOption[id] = 0     if (ArraySize(g_slapsettings) > 0)     {         g_menuSettings[id] = ArrayGetCell(g_slapsettings, g_menuOption[id]);     }     else     {         // should never happen, but failsafe         g_menuSettings[id] = 0     }     displaySlapMenu(id, g_menuPosition[id] = 0)     return PLUGIN_HANDLED } public actionKickMenu(id, key) {     switch (key)     {         case 8: displayKickMenu(id, ++g_menuPosition[id])         case 9: displayKickMenu(id, --g_menuPosition[id])         default:         {             new player = g_menuPlayers[id][g_menuPosition[id] * 8 + key]             new authid[32], authid2[32], name[32], name2[32]                         get_user_authid(id, authid, 31)             get_user_authid(player, authid2, 31)             get_user_name(id, name, 31)             get_user_name(player, name2, 31)                         new userid2 = get_user_userid(player)             log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, userid2, authid2)             //show_activity_key("ADMIN_KICK_1", "ADMIN_KICK_2", name, name2);             ColorChat(0, "!ySTAFF!t %s!g expulsou o!t %s", name, name2);                         server_cmd("kick #%d", userid2)             server_exec()             displayKickMenu(id, g_menuPosition[id])         }     }     return PLUGIN_HANDLED } displayKickMenu(id, pos) {     if (pos < 0)         return     get_players(g_menuPlayers[id], g_menuPlayersNum[id])     new menuBody[512]     new b = 0     new i     new name[32]     new start = pos * 8     if (start >= g_menuPlayersNum[id])         start = pos = g_menuPosition[id] = 0     new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "KICK_MENU", pos + 1, (g_menuPlayersNum[id] / 8 + ((g_menuPlayersNum[id] % 8) ? 1 : 0)))     new end = start + 8     new keys = MENU_KEY_0     if (end > g_menuPlayersNum[id])         end = g_menuPlayersNum[id]     for (new a = start; a < end; ++a)     {         i = g_menuPlayers[id][a]         get_user_name(i, name, 31)         if (access(i, ADMIN_IMMUNITY) && i != id)         {             ++b                     if (g_coloredMenus)                 len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, name)             else                 len += format(menuBody[len], 511-len, "#. %s^n", name)         } else {             keys |= (1<<b)                             if (is_user_admin(i))                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*^n\w" : "%d. %s *^n", ++b, name)             else                 len += format(menuBody[len], 511-len, "%d. %s^n", ++b, name)         }     }     if (end != g_menuPlayersNum[id])     {         format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")         keys |= MENU_KEY_9     }     else         format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")     show_menu(id, keys, menuBody, -1, "Kick Menu") } public cmdKickMenu(id, level, cid) {     if (cmd_access(id, level, cid, 1))         displayKickMenu(id, g_menuPosition[id] = 0)     return PLUGIN_HANDLED } public actionTeamMenu(id, key) {     switch (key)     {         case 7:         {             g_menuOption[id] = (g_menuOption[id] + 1) % (g_cstrike ? 3 : 2);             displayTeamMenu(id, g_menuPosition[id])         }         case 8: displayTeamMenu(id, ++g_menuPosition[id])         case 9: displayTeamMenu(id, --g_menuPosition[id])         default:         {             new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]             new authid[32], authid2[32], name[32], name2[32]             get_user_name(player, name2, 31)             get_user_authid(id, authid, 31)             get_user_authid(player, authid2, 31)             get_user_name(id, name, 31)                             log_amx("Cmd: ^"%s<%d><%s><>^" transfer ^"%s<%d><%s><>^" (team ^"%s^")", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2, g_menuOption[id] ? "TERRORIST" : "CT")             ColorChat(0, "!ySTAFF!t %s!g transferiu!t %s!g para os!t %s", name, name2, g_CSTeamNames[g_menuOption[id] % 3]);             //show_activity_key("ADMIN_TRANSF_1", "ADMIN_TRANSF_2", name, name2, g_CSTeamNames[g_menuOption[id] % 3]);             if (g_cstrike)             {                 if (is_user_alive(player))                 {                     new deaths = cs_get_user_deaths(player)                     user_kill(player, 1)                     cs_set_user_deaths(player, deaths)                 }                 // This modulo math just aligns the option to the CsTeams-corresponding number                 cs_set_user_team(player, (g_menuOption[id] % 3) + 1)                 cs_reset_user_model(player)             } else {                 new limit_setting = get_cvar_num("mp_limitteams")                                 set_cvar_num("mp_limitteams", 0)                 engclient_cmd(player, "jointeam", g_CSTeamNumbers[g_menuOption[id] % 2])                 engclient_cmd(player, "joinclass", "1")                 set_cvar_num("mp_limitteams", limit_setting)             }             displayTeamMenu(id, g_menuPosition[id])         }     }         return PLUGIN_HANDLED } displayTeamMenu(id, pos) {     if (pos < 0)         return     get_players(g_menuPlayers[id], g_menuPlayersNum[id])     new menuBody[512]     new b = 0     new i, iteam     new name[32], team[4]     new start = pos * 7     if (start >= g_menuPlayersNum[id])         start = pos = g_menuPosition[id] = 0     new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "TEAM_MENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))     new end = start + 7     new keys = MENU_KEY_0|MENU_KEY_8     if (end > g_menuPlayersNum[id])         end = g_menuPlayersNum[id]     for (new a = start; a < end; ++a)     {         i = g_menuPlayers[id][a]         get_user_name(i, name, 31)                 if (g_cstrike)         {             iteam = _:cs_get_user_team(i)                         if (iteam == 1)             {                 copy(team, 3, "TE")             }             else if (iteam == 2)             {                 copy(team, 3, "CT")             }             else if (iteam == 3)             {                 copy(team, 3, "SPE");                 iteam = 6;             } else {                 iteam = get_user_team(i, team, 3)             }         } else {             iteam = get_user_team(i, team, 3)         }         if ((iteam == g_CSTeamiNumbers[g_menuOption[id] % (g_cstrike ? 3 : 2)]) || (access(i, ADMIN_IMMUNITY) && i != id))         {             ++b                         if (g_coloredMenus)                 len += format(menuBody[len], 511-len, "\d%d. %s\R%s^n\w", b, name, team)             else                 len += format(menuBody[len], 511-len, "#. %s   %s^n", name, team)               } else {             keys |= (1<<b)                             if (is_user_admin(i))                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*\y\R%s^n\w" : "%d. %s *   %s^n", ++b, name, team)             else                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s\y\R%s^n\w" : "%d. %s   %s^n", ++b, name, team)         }     }     len += format(menuBody[len], 511-len, "^n8. %L^n", id, "TRANSF_TO", g_CSTeamNames[g_menuOption[id] % (g_cstrike ? 3 : 2)])     if (end != g_menuPlayersNum[id])     {         format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")         keys |= MENU_KEY_9     }     else         format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")     show_menu(id, keys, menuBody, -1, "Team Menu") } public cmdTeamMenu(id, level, cid) {     if (!cmd_access(id, level, cid, 1))         return PLUGIN_HANDLED     g_menuOption[id] = 0     displayTeamMenu(id, g_menuPosition[id] = 0)     return PLUGIN_HANDLED } public actionClcmdMenu(id, key) {     switch (key)     {         case 7:         {             ++g_menuOption[id]             g_menuOption[id] %= g_menuSelectNum[id]             displayClcmdMenu(id, g_menuPosition[id])         }         case 8: displayClcmdMenu(id, ++g_menuPosition[id])         case 9: displayClcmdMenu(id, --g_menuPosition[id])         default:         {             new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]             new flags = g_clcmdMisc[g_menuSelect[id][g_menuOption[id]]][1]                         if (is_user_connected(player))             {                 new command[512], authid[32], name[32], userid[32]                                 copy(command, charsmax(command), g_clcmdCmd[g_menuSelect[id][g_menuOption[id]]])                 get_user_authid(player, authid, 31)                 get_user_name(player, name, 31)                 num_to_str(get_user_userid(player), userid, 31)                                 replace(command, charsmax(command), "%userid%", userid)                 replace(command, charsmax(command), "%authid%", authid)                 replace(command, charsmax(command), "%name%", name)                                 if (flags & 1)                 {                     server_cmd("%s", command)                     server_exec()                 } else if (flags & 2)                     client_cmd(id, "%s", command)                 else if (flags & 4)                     client_cmd(player, "%s", command)             }                         if (flags & 8)                 displayClcmdMenu(id, g_menuPosition[id])         }     }         return PLUGIN_HANDLED } displayClcmdMenu(id, pos) {     if (pos < 0)         return     get_players(g_menuPlayers[id], g_menuPlayersNum[id])     new menuBody[512]     new b = 0     new i     new name[32]     new start = pos * 7     if (start >= g_menuPlayersNum[id])         start = pos = g_menuPosition[id] = 0     new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "CL_CMD_MENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))     new end = start + 7     new keys = MENU_KEY_0|MENU_KEY_8     if (end > g_menuPlayersNum[id])         end = g_menuPlayersNum[id]     for (new a = start; a < end; ++a)     {         i = g_menuPlayers[id][a]         get_user_name(i, name, 31)         if (!g_menuSelectNum[id] || (access(i, ADMIN_IMMUNITY) && i != id))         {             ++b                         if (g_coloredMenus)                 len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, name)             else                 len += format(menuBody[len], 511-len, "#. %s^n", name)              } else {             keys |= (1<<b)                             if (is_user_admin(i))                 len += format(menuBody[len], 511-len, g_coloredMenus ? "%d. %s \r*^n\w" : "%d. %s *^n", ++b, name)             else                 len += format(menuBody[len], 511-len, "%d. %s^n", ++b, name)         }     }     if (g_menuSelectNum[id])         len += format(menuBody[len], 511-len, "^n8. %s^n", g_clcmdName[g_menuSelect[id][g_menuOption[id]]])     else         len += format(menuBody[len], 511-len, "^n8. %L^n", id, "NO_CMDS")     if (end != g_menuPlayersNum[id])     {         format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")         keys |= MENU_KEY_9     }     else         format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")     show_menu(id, keys, menuBody, -1, "Client Cmds Menu") } public cmdClcmdMenu(id, level, cid) {     if (!cmd_access(id, level, cid, 1))         return PLUGIN_HANDLED     g_menuSelectNum[id] = 0     for (new a = 0; a < g_clcmdNum; ++a)         if (access(id, g_clcmdMisc[a][0]))             g_menuSelect[id][g_menuSelectNum[id]++] = a     g_menuOption[id] = 0     displayClcmdMenu(id, g_menuPosition[id] = 0)     return PLUGIN_HANDLED } load_settings(szFilename[]) {     if (!file_exists(szFilename))         return 0     new text[256], szFlags[32], szAccess[32]     new a, pos = 0     while (g_clcmdNum < MAX_CLCMDS && read_file(szFilename, pos++, text, 255, a))     {         if (text[0] == ';') continue         if (parse(text, g_clcmdName[g_clcmdNum], 31, g_clcmdCmd[g_clcmdNum], 63, szFlags, 31, szAccess, 31) > 3)         {             while (replace(g_clcmdCmd[g_clcmdNum], 63, "\'", "^""))             {                 // do nothing             }             g_clcmdMisc[g_clcmdNum][1] = read_flags(szFlags)             g_clcmdMisc[g_clcmdNum][0] = read_flags(szAccess)             g_clcmdNum++         }     }     return 1 } public plugin_end() {     ArrayDestroy(g_arModels) } public showRandomLine() {     ColorChat(0, "%a", ArrayGetStringHandle(g_arModels, random_num(0, ArraySize(g_arModels) - 1))) } loadIni() {     new szFile[100]     formatex(szFile, charsmax(szFile), "addons/amxmodx/data/advanced_bans.txt")         new iFile = fopen(szFile, "rt")     while (!feof(iFile))     {         new szBuffer[512]         fgets(iFile, szBuffer, charsmax(szBuffer))         trim(szBuffer)                 switch(szBuffer[0])         {             case EOS, ';','/':  continue         }                 new szIP[35], szName[32], szTimeS[20], szTime[20], szReason[30],         szAdminName[32], szSteamAdmin[35]                 parse         (             szBuffer,             szIP, charsmax(szIP),             szName, charsmax(szName),             szTimeS, charsmax(szTimeS),             szTime, charsmax(szTime),             szReason, charsmax(szReason),             szAdminName, charsmax(szAdminName),             szSteamAdmin, charsmax(szSteamAdmin)         )                 trim(szName)         trim(szTime)         trim(szReason)         trim(szAdminName)                 new szBanTime[512]         formatex(szBanTime, charsmax(szBanTime), "%s%s", (szTime[0] == 'B') ? "" : "ate ", szTime)         replace(szBanTime, charsmax(szBanTime), "Ban Permanente", "Permanente")                 new szMessage[512]         formatex(szMessage, charsmax(szMessage), "^x04[Manipulation#]^x03 %s^x01 banido^x04 %s^x01, razao^x04 %s^x01. Banido por^x03 %s.", szName, szBanTime, szReason, szAdminName)         ArrayPushString(g_arModels, szMessage)     }     fclose(iFile) } ColorChat(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!t", "^3") replace_all(msg, 190, "!t2", "^0") if (id) players[0] = id; else get_players(players, count, "ch") for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]) write_byte(players[i]) write_string(msg) message_end() } } }

james 007 12-08-2018 05:56

Re: erro color chat plmenu_ab_base
 
help fix this

CrazY. 12-08-2018 06:32

Re: erro color chat plmenu_ab_base
 
Try this:

Code:
static msg[191]

:arrow:

Code:
new msg[191]


All times are GMT -4. The time now is 07:36.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.