Senior Member
Join Date: Aug 2013
Location: Argentina, Bs.As.
|
09-28-2016
, 12:38
Re: [Req] Small edit in a plugin
|
#9
|
Quote:
Originally Posted by Napoleon_be
PHP Code:
#include <amxmodx> #include <amxmisc>
enum data { szadmin[40], iaccess, szvencimiento[12] } new g_iSayText new AdminData[32][data]
public plugin_init() { register_plugin("Admin Vencimiento", "0.2", "N!K")
register_clcmd("say /vencimiento", "cmdVencimiento") g_iSayText = get_user_msgid("SayText") CargarVencimientos() }
public plugin_cfg() { server_cmd("amx_pausecfg add ^"Admin Vencimiento^"") }
public client_putinserver(id) { set_task(10.0, "ShowMessage", id) }
public ShowMessage(id) { if(is_user_connected(id)) { ChatColor(id, "[AMXX] Tu administrador vence el dia: %s", AdminData[id][szvencimiento]) } }
public cmdVencimiento(id) { if (!is_user_admin(id)) return PLUGIN_CONTINUE
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, 31) case 2: get_user_authid(id, auth, 31) case 3: get_user_ip(id, auth, 31, 1) }
if(containi(AdminData[i][szadmin], auth) != 1) { if(AdminData[i][szvencimiento][0]) ChatColor(id, "[AMXX] Tu administrador vence el dia: %s", AdminData[i][szvencimiento]) break } } return PLUGIN_HANDLED }
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[256], 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], 39, szLine, charsmax(szLine), szLine, charsmax(szLine), auxaccess, 5, AdminData[contador][szvencimiento], 11) < 5) continue
remove_quotes(AdminData[contador][szadmin]) remove_quotes(auxaccess) remove_quotes(AdminData[contador][szvencimiento]) copy(szaux, 11, AdminData[contador][szvencimiento]) replace_all(szaux, 11, "/", " ") parse(szaux, szdia, 4, szmes, 4, szanio, 4) 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[32], dummy2[32], dummy3[32], dummy4[32] 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, 31, dummy2, 31, dummy3, 31, dummy4, 31, auxvenc, 11) > 4) { copy(szaux, 11, auxvenc) replace_all(szaux, 11, "/", " ") parse(szaux, szdia, 4, szmes, 4, szanio, 4) 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(); } } } }
|
It works, but It doesn't display the date
and It should be like this:
*The date is variable, not fixed
Last edited by sigerman; 09-28-2016 at 12:44.
Reason: clarifying
|
|