Veteran Member
04-28-2013
, 06:06
Warn System Multi-Lingual menu problem.
#1
So... I've tried to make
Warn System plugin to multi-lingual and I am having prolems...
So I have this part:
PHP Code:
new const szReasons [][] = { "REASON_1" , "REASON_2" , "REASON_3" , "REASON_4" , "REASON_5" } /***/ new szTemp [ 500 ], Key [ 10 ] for(new i ; i < sizeof ( szReasons ); i ++) { formatex ( szTemp , charsmax ( szTemp ), "%L" , id , "%s" , szReasons [ i ]) num_to_str ( i , Key , charsmax ( Key )) menu_additem ( menu , szTemp , Key ) } /***/ client_print_color ( 0 , "%L" , 0 , "HAS_WARNED" , szName3 , szName2 , iWarns [ iPlayer ], get_pcvar_num ( pWarnAmmount ), szReasons [ szReason [ id ]])
And it doesn't show the reason in the menu and in that message... And I need help figuring out how to fix it. ;)
Full edited plugin:
Spoiler
#include <amxmodx>
#include <nvault>
#define VERSION "1.0"
new iWarns[33]
new pPlugin
new pWarnAmmount
new pPunnishment
new szReason[33]
new szName2[32]
new iPlayer
new gVault
#define nvault_clear(%1) nvault_prune(%1, 0, get_systime() + 1)
/* stock nvault_clear(vault) {
return nvault_prune(vault, 0, get_systime() + 1);
} */
new const szReasons[][] = {
"REASON_1",
"REASON_2",
"REASON_3",
"REASON_4",
"REASON_5"
}
new const warn[][] = {
"say /warn",
"say /isp"
}
new const my_warns[][] = {
"say /mywarns",
"say /warns",
"say /manoisp",
"say /ispejimai"
}
new const reset_warns[][] = {
"say /rw",
"say /ni",
"say /resetwarns",
"say /nuimtisp"
}
public plugin_init() {
register_plugin("Warn System", VERSION, "NapoleoN#")
for(new i = 0; i < sizeof warn; i++)
register_clcmd(warn[i], "Cmd_Warn")
for(new i = 0; i < sizeof my_warns; i++)
register_clcmd(my_warns[i], "Cmd_MyWarns")
for(new i = 0; i < sizeof reset_warns; i++)
register_clcmd(reset_warns[i], "Cmd_ResetWarns")
nvault_open("Warn System")
pPlugin = register_cvar("warn_enable", "1")
pWarnAmmount = register_cvar("warn_ammount", "3")
pPunnishment = register_cvar("warn_punnishment", "0")
register_dictionary("WarnSystem.txt");
}
public client_disconnect(id) {
if(get_pcvar_num(pPlugin)) {
new Authid[32]
get_user_authid(id, Authid, charsmax(Authid))
new vaultkey[64], vaultdata[256]
format(vaultkey, charsmax(vaultkey), "%s-WarnSystem", Authid)
format(vaultdata, charsmax(vaultdata), "%i#", iWarns[id])
nvault_set(gVault, vaultkey, vaultdata)
}
}
public client_connect(id) {
if(get_pcvar_num(pPlugin)) {
new Authid[32]
get_user_authid(id, Authid, charsmax(Authid))
new vaultkey[64], vaultdata[256]
format(vaultkey, charsmax(vaultkey), "%s-WarnSystem", Authid)
format(vaultdata, charsmax(vaultdata), "%i#", iWarns[id])
nvault_get(gVault, vaultkey, vaultdata, charsmax(vaultdata))
replace_all(vaultdata, charsmax(vaultdata), "#", " ")
new warns[32]
parse(vaultdata, warns, charsmax(warns))
iWarns[id] = str_to_num(warns)
}
}
public Cmd_Warn(id) {
if(get_pcvar_num(pPlugin) && get_user_flags(id) & ADMIN_KICK) {
new reason[32];
format(reason, charsmax(reason), "%L", id, "REASON")
new menu = menu_create(reason, "warn_handler")
new szTemp[500], Key[10]
for(new i; i < sizeof(szReasons); i++) {
formatex(szTemp, charsmax(szTemp), "%L", id, "%s", szReasons[i])
num_to_str(i, Key, charsmax(Key))
menu_additem(menu, szTemp, Key)
}
menu_display(id, menu)
}
}
public warn_handler(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], szName[32]
new access, callback
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
szReason[id] = str_to_num(data)
new player_to_warn[32];
format(player_to_warn, charsmax(player_to_warn), "%L", id, "PLAYER_TO_WARN")
new menu = menu_create(player_to_warn, "menu_handler")
new players[32], count, tempid, szName3[32], Key[10]
get_players(players, count)
for(new i; i < count; i++) {
tempid = players[i]
get_user_name(tempid, szName3, charsmax(szName))
num_to_str(tempid, Key, charsmax(Key))
menu_additem(menu, szName3, Key, 0)
}
menu_display(id, menu, 0)
return PLUGIN_CONTINUE
}
public menu_handler(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], szName[32]
new access, callback
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
iPlayer = str_to_num(data)
new szName3[32]
get_user_name(iPlayer, szName2, charsmax(szName2))
get_user_name(id, szName3, charsmax(szName))
new szKick[64], szKickName[32];
format(szKick, charsmax(szKick), "%L", iPlayer, "MAX_WARNS_KICK")
format(szKickName, charsmax(szKickName), "%L", iPlayer, "MAX_WARNS_KICK_NAME")
if(iWarns[iPlayer] == 5) {
switch(get_pcvar_num(pPunnishment)) {
case 0: {
show_motd(iPlayer, szKick, szKickName)
set_task(3.0, "Cmd_Kick", iPlayer)
}
case 1: {
for(new i; i < 99; i++) {
user_slap(iPlayer, 1)
}
client_print_color(0, "%L", 0, "MAX_WARNS_SLAP", szName2, iWarns[iPlayer])
}
case 2: {
user_kill(iPlayer)
client_print_color(0, "%L", 0, "MAX_WARNS_SLAY", szName2, iWarns[iPlayer])
}
}
}
else {
iWarns[iPlayer]++
}
client_print_color(0, "%L", 0, "HAS_WARNED", szName3, szName2, iWarns[iPlayer], get_pcvar_num(pWarnAmmount), szReasons[szReason[id]])
return PLUGIN_HANDLED
}
public Cmd_Kick(id) {
server_cmd("kick #%i %L ", id, "CLIENT_KICK", get_user_userid(iPlayer))
client_print_color(0, "%L", 0, "HAS_BEEN_KICKED", szName2, iWarns[iPlayer])
}
public Cmd_MyWarns(id) {
if(get_pcvar_num(pPlugin)) {
client_print_color(id, "%L", id, "MY_WARNS", iWarns[id], get_pcvar_num(pWarnAmmount))
}
}
public Cmd_ResetWarns(id) {
if(get_pcvar_num(pPlugin)) {
new newmenu[32], select[32], everyones[32];
format(newmenu, charsmax(newmenu), "%L", id, "RESET_MENU")
new menu = menu_create(newmenu, "Cmd_HandleReset")
format(select, charsmax(select), "%L", id, "SELECT_PLAYER")
menu_additem(menu, select, "1")
format(everyones, charsmax(everyones), "%L", id, "EVERY_ONES")
menu_additem(menu, everyones, "2")
menu_display(id, menu)
}
}
public Cmd_HandleReset(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED
}
switch(item) {
case 0: Cmd_ResetPlayer(id)
case 1: Cmd_ResetEveryone(id)
}
return PLUGIN_CONTINUE
}
public Cmd_ResetPlayer(id) {
new select[32];
format(select, charsmax(select), "%L", id, "SELECT_PLAYER")
new menu = menu_create(select, "Cmd_ResetPlayerHandler")
new players[32], count, tempid, szName3[32], Key[10]
get_players(players, count)
for(new i; i < count; i++) {
tempid = players[i]
get_user_name(tempid, szName3, charsmax(szName3))
num_to_str(tempid, Key, charsmax(Key))
menu_additem(menu, szName3, Key, 0)
}
menu_display(id, menu, 0)
}
public Cmd_ResetPlayerHandler(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], szName[32], tempid, szName3[32]
new access, callback
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
tempid = str_to_num(data)
if(get_user_flags(id) & ADMIN_IMMUNITY) {
iWarns[tempid] = 0
get_user_name(id, szName3, charsmax(szName3))
get_user_name(tempid, szName2, charsmax(szName2))
client_print_color(tempid, "%L", tempid, "RESET_YOUR_WARNS", szName3)
client_print_color(0, "%L", 0, "HAS_RESET_HIS", szName3, szName2)
}
else {
client_print_color(id, "%L", id, "NO_ACCES")
}
return PLUGIN_HANDLED
}
public Cmd_ResetEveryone(id) {
if(get_user_flags(id) & ADMIN_IMMUNITY) {
nvault_clear(gVault)
for(new i = 0; i < 33; i++) {
iWarns[i] = 0
}
}
}
stock client_print_color(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^x04"); // Green Color
replace_all(msg, 190, "!n", "^x01"); // Default Color
replace_all(msg, 190, "!t", "^x03"); // Team Color
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();
}
}
}
}
Last edited by Unkolix; 04-28-2013 at 06:09 .