|
New Member
|

09-26-2011
, 03:22
Re: Admin Complaint
|
#23
|
Hi, greetings from Argentina and thank you for your cool plugin. I'm trying to translate this plugin into spanish but i'm having problems with the "reason" content. The original plugin works perfect, and everything else is working fine in the translated one except for the "reason".
This is an example of the resultant log entry.
Code:
<b>Queja:</b> angryuser (STEAM_ID_LAN)<br/><b>Admin:</b> badadmin (STEAM_ID_LAN).<br/><b>Razon:</b> <br/> <b>Fecha:</b> 03:52:56<br/><hr/>
No reason even if the reason is provided.
This is the translated plugin code, can you see any error?.
Code:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#define PLUGIN "Admin Complaint"
#define AUTHOR "thony"
#define VERSION "1.0"
new szComplaintsDir[] = "addons/amxmodx/logs/quejas/";
new g_PlayerVotes[33][33]
new iComplaining[33]
new nVault
new iMaxPlayers
new cvar_MaxComplaints
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /queja", "ShowComplainMenu")
register_clcmd("Motivo de la queja", "ComplaintReason")
register_clcmd("say /verquejas", "ViewComplaintsMenu", ADMIN_RCON)
cvar_MaxComplaints = register_cvar("ac_maxcomplaints", "1")
nVault = nvault_open("AdminComplain")
iMaxPlayers = get_maxplayers();
}
public ComplaintReason(id) {
if(iComplaining[id] == 0)
return PLUGIN_HANDLED;
if(is_user_admin(iComplaining[id])) {
new szNum[3], authid[32]
get_user_authid(iComplaining[id], authid, charsmax(authid))
if(nvault_get(nVault, authid, szNum, charsmax(szNum))) {
new iNum = str_to_num(szNum)
num_to_str((iNum+1), szNum, charsmax(szNum))
nvault_set(nVault, authid, szNum)
}
else
nvault_set(nVault, authid, "1")
g_PlayerVotes[id][iComplaining[id]]++;
new szReason[246]
read_argv(6, szReason, charsmax(szReason))
LogComplain(id, iComplaining[id], szReason);
iComplaining[id] = 0;
client_print(id, print_chat, "[Quejas] Tu queja fue registrada, muchas gracias.")
}
return PLUGIN_HANDLED;
}
public client_disconnect(id) {
for(new i; i < iMaxPlayers; i++) {
g_PlayerVotes[id][i] = 0;
}
iComplaining[id] = 0;
}
public ShowComplainMenu(id) {
new admins[33], adminsnum
for(new i; i < iMaxPlayers; i++) {
if(is_user_admin(i)) {
admins[adminsnum] = i;
adminsnum++;
}
}
if(adminsnum < 1) {
client_print(id, print_chat, "[Quejas] No hay admins conectados sobre los que quejarse.")
return PLUGIN_HANDLED;
}
new menu = menu_create("Admin Complain", "ComplainMenuHandler")
for(new i; i < adminsnum; i++) {
new szName[42], szID[2], szFinal[42], iComplaintsNum = getComplaintsNum(admins[i]);
get_user_name(admins[i], szName, charsmax(szName))
num_to_str(admins[i], szID, charsmax(szID))
if(g_PlayerVotes[id][admins[i]] >= get_pcvar_num(cvar_MaxComplaints))
formatex(szFinal, charsmax(szFinal), "\d%s \r(%i)", szName, iComplaintsNum)
else
formatex(szFinal, charsmax(szFinal), "%s \r(%i)", szName, iComplaintsNum)
menu_additem(menu, szFinal, szID)
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public ComplainMenuHandler(id, menu, item)
{
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new adminid = str_to_num(data);
if(g_PlayerVotes[id][adminid] >= get_pcvar_num(cvar_MaxComplaints)) {
client_print(id, print_chat, "[Quejas] Maximo numero de quejas alcanzado por admin.")
ShowComplainMenu(id)
}
else if(is_user_admin(adminid)) {
iComplaining[id] = adminid;
client_cmd(id, "messagemode ^"Razon de la queja^"")
}
return PLUGIN_HANDLED;
}
public ViewComplaintsMenu(id, level, cid) {
if(!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED;
new fileName[32], dir;
dir = open_dir(szComplaintsDir, fileName, charsmax(fileName))
next_file(dir, fileName, charsmax(fileName))
if(!next_file(dir, fileName, charsmax(fileName))) {
client_print(id, print_chat, "[Quejas] No hay quejas, felicitaciones.")
close_dir(dir)
return PLUGIN_HANDLED;
}
new menu = menu_create("Ver quejas por fecha", "ViewComplaintsMenuHandler")
do {
menu_additem(menu, fileName, fileName)
}
while(next_file(dir, fileName, charsmax(fileName)))
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
close_dir(dir)
return PLUGIN_HANDLED;
}
public ViewComplaintsMenuHandler(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64], fullDir[100];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
formatex(fullDir, charsmax(fullDir), "%s%s", szComplaintsDir, szName)
show_motd(id, fullDir, szName)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
getComplaintsNum(id) {
new szNum[3], authid[32]
get_user_authid(id, authid, charsmax(authid))
if(nvault_get(nVault, authid, szNum, charsmax(szNum)))
return str_to_num(szNum);
return 0;
}
LogComplain(id, adminid, const reason[]) {
new szDate[40], szFile[50]
get_time("%d-%m-%Y", szDate, charsmax(szDate))
formatex(szFile, charsmax(szFile), "%s%s.txt", szComplaintsDir, szDate)
if(!file_exists(szFile)) {
write_file(szFile, "<style> body {background: black; color: white; font-size: 10px; font-family: arial;} </style>")
}
new szAuthid[32], szAuthid2[32], szTime[32], szName[42], szName2[42], szLog[200]
get_time( "%H:%M:%S", szTime, charsmax(szTime))
get_user_authid(id, szAuthid, charsmax(szAuthid))
get_user_authid(adminid, szAuthid2, charsmax(szAuthid2))
get_user_name(id, szName, charsmax(szName))
get_user_name(adminid, szName2, charsmax(szName2))
formatex(szLog, charsmax(szLog), "<b>Denunciante:</b> %s (%s)<br/><b>Sobre el Admin:</b> %s (%s).<br/><b>Razon:</b> %s<br/> <b>Fecha:</b> %s<br/><hr/>", szName, szAuthid, szName2, szAuthid2, reason, szTime)
write_file(szFile, szLog)
}
Thanks in advance for any help you can provide me.
Last edited by kuato; 09-26-2011 at 03:28.
|
|