Member
|
01-25-2018
, 15:20
Re: [req] help with plugin (admin expire date)
|
#20
|
there now it works after adding bigger number, i'll go cry in the corner, take your plugin:
PHP Code:
#include <amxmodx> #include <amxmisc>
enum _:data { szadmin[40], iaccess, szvencimiento[12] } new g_iSayText new AdminData[100][data]
public plugin_init() { register_plugin("Admin Vencimiento", "0.2", "N!K") register_clcmd("say /veno", "cmdVencimiento") //register_clcmd("say /call", "CargarVencimientos"); g_iSayText = get_user_msgid("SayText") set_task(10.0, "CargarVencimientos"); }
/*public plugin_cfg() { server_cmd("amx_pausecfg add ^"Admin Vencimiento^"") }*/
public cmdVencimiento(id) { if (!is_user_admin(id)) return PLUGIN_HANDLED; if(!(1 <= id <= get_maxplayers())) return PLUGIN_HANDLED; new auth[32] for(new i = 0; i < admins_num(); i++) { console_print(id, "%s - %d - %s", AdminData[i][szadmin], AdminData[i][iaccess], AdminData[i][szvencimiento]) switch(AdminData[i][iaccess]) { case 1: get_user_name(id, auth, charsmax(auth)) case 2: get_user_authid(id, auth, charsmax(auth)) case 3: get_user_ip(id, auth, charsmax(auth), 1) }
if(containi(AdminData[i][szadmin], auth) != -1) { if(AdminData[i][szvencimiento][0]) ChatColor(id, "!g[AMXX] !yTu administrador vence el dia: !g%s", AdminData[i][szvencimiento]) break } } return PLUGIN_HANDLED }
public CargarVencimientos() { new szFile[64] get_localinfo("amxx_configsdir", szFile, charsmax(szFile)) formatex(szFile, charsmax(szFile), "%s/users.ini", szFile)
new file = fopen(szFile, "rt") if(!file) { log_amx("no se si alguna vez se ejecutara esta linea pero es por seguridad (?") return PLUGIN_HANDLED }
new auxaccess[6], szLine[512], contador = 0, bool:adminsvencidos = false new szaux[12], szdia[5], szmes[5], szanio[5], dia, mes, anio get_time("%d", szdia, charsmax(szdia)) dia = str_to_num(szdia) get_time("%m", szmes, charsmax(szmes)) mes = str_to_num(szmes) get_time("%Y", szanio, charsmax(szanio)) anio = str_to_num(szanio)
while(!feof(file)) { fgets(file, szLine, charsmax(szLine)) trim(szLine)
if (!szLine[0] || szLine[0] == ';') continue
if(parse(szLine, AdminData[contador][szadmin], charsmax(AdminData[][szadmin]), szLine, charsmax(szLine), szLine, charsmax(szLine), auxaccess, charsmax(auxaccess), AdminData[contador][szvencimiento], charsmax(AdminData[][szvencimiento])) < 5) continue
remove_quotes(AdminData[contador][szadmin]) remove_quotes(auxaccess) remove_quotes(AdminData[contador][szvencimiento]) copy(szaux, charsmax(szaux), AdminData[contador][szvencimiento]) replace_all(szaux, charsmax(szaux), "/", " ") parse(szaux, szdia, charsmax(szdia), szmes, charsmax(szmes), szanio, charsmax(szanio)) if(str_to_num(szanio) <= anio && str_to_num(szmes) <= mes && str_to_num(szdia) <= dia) { adminsvencidos = true log_amx("1 admin vencido detected (?") continue } //-------------------------- esta parte de aca no anda D: -------------------------- if(containi(auxaccess, "b") != -1) // b: admin por tag AdminData[contador][iaccess] = 1 if(containi(auxaccess, "c") != -1) // c: admin por steam AdminData[contador][iaccess] = 2 if(containi(auxaccess, "d") != -1) // d: admin por ip AdminData[contador][iaccess] = 3 //---------------------------------------------------------------------------------- contador++ }
if(!adminsvencidos) { fclose(file) return PLUGIN_HANDLED }
fseek(file, 0, SEEK_SET) new szFile2[64], auxvenc[12], dummy1[33], dummy2[33], dummy3[33], dummy4[33] formatex(szFile2, charsmax(szFile2), "%s2", szFile) new file2 = fopen(szFile2, "wt") if(!file2) { log_amx("no se si alguna vez se ejecutara esta linea pero es por seguridad (?") return PLUGIN_HANDLED }
while(!feof(file)) { fgets(file, szLine, charsmax(szLine)) trim(szLine)
if(szLine[0] && szLine[0] != ';' && parse(szLine, dummy1, charsmax(dummy1), dummy2, charsmax(dummy2), dummy3, charsmax(dummy3), dummy4, charsmax(dummy4), auxvenc, charsmax(auxvenc)) > 4) { copy(szaux, 11, auxvenc) replace_all(szaux, 11, "/", " ") parse(szaux, szdia, charsmax(szdia), szmes, charsmax(szmes), szanio, charsmax(szanio)) if(str_to_num(szanio) <= anio && str_to_num(szmes) <= mes && str_to_num(szdia) <= dia) { formatex(szLine, charsmax(szLine), ";^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" -- ADMINISTRADOR VENCIDO --", dummy1, dummy2, dummy3, dummy4, auxvenc) } } formatex(szLine, charsmax(szLine), "%s^n", szLine) fputs(file2, szLine) }
fclose(file) fclose(file2) delete_file(szFile) rename_file(szFile2, szFile, 1) server_cmd("amx_reloadadmins") log_amx("Admins deshabilitados con exito e.e (?") return PLUGIN_HANDLED }
stock ChatColor(const id, const input[], any:...) { new count = 1, players[32]; static msg[191]; vformat(msg, 190, input, 3); replace_all(msg, 190, "!g", "^4"); // Green Color replace_all(msg, 190, "!y", "^1"); // Default Color replace_all(msg, 190, "!team", "^3"); // Team Color replace_all(msg, 190, "!team2", "^0"); // Team2 Color new iPlayer; if (id) players[0] = id; else get_players(players, count, "ch"); { for (new i = 0; i < count; i++) { iPlayer = players[i]; if (is_user_connected(iPlayer)) { message_begin(MSG_ONE_UNRELIABLE, g_iSayText, _, iPlayer); write_byte(iPlayer); write_string(msg); message_end(); } } } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang2058\\ f0\\ fs16 \n\\ par } */
|
|