23/04/2018, 12:32 PM
Hola
me ayudarían hacer que el mensaje que envía sobre la fecha de admin que vence solo lo mande al inicio de la partida, osea solo cuando entro al servidor o cuando se cambie mapa, solo una vez.
me ayudarían hacer que el mensaje que envía sobre la fecha de admin que vence solo lo mande al inicio de la partida, osea solo cuando entro al servidor o cuando se cambie mapa, solo una vez.
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <unixtime>
#include <hamsandwich>
new Trie:g_tVencimiento
public plugin_init()
{
register_plugin("Vencimiento de admins", "1.0d", "alan_el_more")
g_tVencimiento = TrieCreate()
CheckAdmins()
register_clcmd("say /vencimiento", "ClcmdVencimiento")
RegisterHam(Ham_Spawn, "player", "fw_spawn", 1)
}
public fw_spawn(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED;
if(!is_user_alive(id))
return PLUGIN_HANDLED;
set_task( 1.0, "ClcmdVencimiento", id );
return PLUGIN_HANDLED
}
public ClcmdVencimiento(id, level, cid)
{
if(!is_user_admin(id))
return PLUGIN_HANDLED
new szAuth[32], szExp[12]
get_user_authid(id, szAuth, charsmax(szAuth))
if(!TrieGetString(g_tVencimiento, szAuth, szExp, charsmax(szExp)))
{
get_user_name(id, szAuth, charsmax(szAuth))
if(!TrieGetString(g_tVencimiento, szAuth, szExp, charsmax(szExp)))
{
get_user_ip(id, szAuth, charsmax(szAuth), 1)
TrieGetString(g_tVencimiento, szAuth, szExp, charsmax(szExp))
}
}
if(szExp[0])
ChatColor(id, "^4[Admin]^1 Tu admin vence el^3 %s", szExp)
else
ChatColor(id, "^4[Admin]^1 Tu admin no tiene un vencimiento determinado")
return PLUGIN_HANDLED
}
CheckAdmins()
{
new szFile[64], szData[160], szAuth[44], szPw[32], szAccess[32], szFlags[32], szDate[12]
new iLine, bAdmRemoved
get_configsdir(szFile, charsmax(szFile))
add(szFile, charsmax(szFile), "/users.ini")
new file = fopen(szFile, "rt")
while(!feof(file))
{
fgets(file, szData, charsmax(szData))
trim(szData)
iLine++
if(!szData[0] || szData[0] == ';')
continue
parse(szData, szAuth, charsmax(szAuth), szPw, charsmax(szPw), szAccess, charsmax(szAccess), szFlags, charsmax(szFlags), szDate, charsmax(szDate))
if(!szDate[0])
continue
replace_all(szDate, charsmax(szDate), "/", " ")
new szDay[3], szMonth[3], szYear[5]
parse(szDate, szDay, charsmax(szDay), szMonth, charsmax(szMonth), szYear, charsmax(szYear))
if(get_systime() >= TimeToUnix(str_to_num(szYear), str_to_num(szMonth), str_to_num(szDay), 0, 0, 0, UT_TIMEZONE_SERVER))
{
formatex(szData, charsmax(szData), ";ADMIN VENCIDO - ^"%s^" en la fecha %s/%s/%s", szAuth, szDay, szMonth, szYear)
write_file(szFile, szData, iLine - 1)
bAdmRemoved = true
}
else
{
replace_all(szDate, charsmax(szDate), " ", "/")
TrieSetString(g_tVencimiento, szAuth, szDate)
}
}
if(bAdmRemoved)
{
server_cmd("amx_reloadadmins")
server_exec()
}
fclose(file)
}
stock ChatColor(id, const input[], any:...)
{
static szMsg[191], msgSayText
if(!msgSayText)
msgSayText = get_user_msgid("SayText")
vformat(szMsg, 190, input, 3)
message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id)
write_byte(id ? id : 33)
write_string(szMsg)
message_end()
}