por Biel-oGrande 19/11/2016, 5:38 pm
Link Post Originalhttps://amxmodx-es.com/Thread-Vencimiento-de-admins-1-0d-09-09-14
DescripciónEste plugin administra los vencimientos de los admins asignándole la expiración del mismo.
Al cumplirse la fecha establecida, se remueve automáticamente dejando escrito en el mismo archivo la fecha en la que se removió.
Uso-Abrir el archivo donde tenemos la lista de los admins (Por defecto: users.ini)
-Si se desea agregarle el vencimiento de un admin, lo único que hay que hacer es añadirle, al final del admin deseado, la fecha a vencer. El formato de la fecha es DD/MM/AAAA*. Ejemplo: 9/2/2016**
* ('D' - Día / 'M' - Mes / 'A' - Año)
** (El año necesita los 4 dígitos)
Ejemplo de uso-Sin vencimiento
Código: - Código:
"STEAM_0:0:123456" "" "abcdefghijklmnopqrstu" "ce"
-Con vencimiento
Código: - Código:
"STEAM_0:0:123456" "" "abcdefghijklmnopqrstu" "ce" "9/2/2016"
Comandosay /vencimiento - Muestra al admin la fecha del vencimiento del mismo
IMPORTANTE-Se requiere el siguiente include -> https://forums.alliedmods.net/showthread.php?t=91915
Lista de cambiosCódigo: - Código:
1.0 - Publicación del plugin
1.0c - Pequeñas optimizaciones
- Recargar admins si se vence uno
1.0d - Removido código innecesario
AgradecimientosCódigo: - Código:
Mongolito100
Destro
Neeeeeeeeeel.-
Kane
Cualquier duda, error o sugerencia, no duden en comentarlo
- plugin:
#include #include #include new Trie:g_tVencimientopublic plugin_init(){register_plugin("Vencimiento de admins", "1.0d", "alan_el_more")g_tVencimiento = TrieCreate()CheckAdmins()register_clcmd("say /vencimiento", "ClcmdVencimiento")}public ClcmdVencimiento(id, level, cid){if(!is_user_admin(id))return PLUGIN_HANDLEDnew 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)elseChatColor(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, bAdmRemovedget_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] == ';')continueparse(szData, szAuth, charsmax(szAuth), szPw, charsmax(szPw), szAccess, charsmax(szAccess), szFlags, charsmax(szFlags), szDate, charsmax(szDate))if(!szDate[0])continuereplace_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], msgSayTextif(!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()}