Всем привет, есть старый плагин и он работает исправно
но я хотел бы добавить в него проверку на вечного админа или запись которую нельзя перезаписывать.
Пробовал добавлять еще 1 аргумент типа "ADMIN" и делал на него проверку но почему то это не работает( "STEAM_ID" "PASS" "abcdefghijkltuv" "ce" "3560" "ADMIN"
хотел бы сделать вывод дней для вечного админа типа без ограничений. А то прописывать кучу дней и делать проверку типа days > 1000 = вечный админ не хотелось бы)
думал спустя столько времени этот плагин доработали или переписали но нет) в гугле ничего нету по данной теме. вроде как есть ласт версия но там тоже дичь и еще nvault прикрутили(
но я хотел бы добавить в него проверку на вечного админа или запись которую нельзя перезаписывать.
C++:
#include <amxmodx>
new Admin_Days[33]
new const CONFIGS_DIR[] = "/addons/amxmodx/configs/users.ini"
#define register_cmd_list(%0,%1,%2) for (new i = 0; i < sizeof(%1); i ++) register_%0(%1[i], %2)
new const commands[][] = {
"days", "say /days", "say_team /days"
}
public plugin_init()
{
register_cmd_list(clcmd, commands, "CmdDays")
new text_s[256], m_date[12], line, len
read_file(CONFIGS_DIR, line, text_s, charsmax(text_s), len)
trim(text_s)
get_time("%d.%m.%Y", m_date, charsmax(m_date))
if (equal(text_s, m_date)) return
else write_file(CONFIGS_DIR, m_date, line)
new admin[32], pass[32], flags[32],
x_access[32], x_days[32], bufferd[128], days
new iFiled = fopen(CONFIGS_DIR, "r")
while(!feof(iFiled))
{
fgets(iFiled, bufferd, 255); trim(bufferd)
if (bufferd[0] == '"' && parse(bufferd, admin, 31, pass, 31, flags, 31, x_access, 31, x_days, 31))
{
days = str_to_num(x_days) -1
formatex(text_s, charsmax(text_s), "%s^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%d^"", (days > 0) ? "" : ";", admin, pass, flags, x_access, days)
write_file(CONFIGS_DIR, text_s, line)
}
line ++
}
fclose(iFiled)
server_cmd("amx_reloadadmins")
}
public client_authorized(id)
{
if (!is_user_admin(id))
return PLUGIN_HANDLED
new admin[32], pass[32], flags[32], x_access[32],
x_days[32], bufferd[128], name[32], st[33], ip[33]
new iFiled = fopen(CONFIGS_DIR, "r")
get_user_name(id, name, 31)
get_user_authid(id, st, 32)
get_user_ip(id, ip, 32)
while(!feof(iFiled))
{
fgets(iFiled, bufferd, 255); trim(bufferd)
if (bufferd[0] == '"' && parse(bufferd, admin, 31, pass, 31, flags, 31, x_access, 31, x_days, 31))
{
if (equal(admin, name) || equal(admin, st) || equal(admin, ip))
{
Admin_Days[id] = str_to_num(x_days)
return PLUGIN_HANDLED
}
}
}
fclose(iFiled)
return PLUGIN_HANDLED
}
public CmdDays(id)
{
new Days = Admin_Days[id]
if (!Days) client_print_color(id, print_team_default, "^4* ^1У вас ^4Нет ^1привилегий.")
else client_print_color(id, print_team_default, "^4* ^1До окончания привилегий осталось:^4 %d ^1дн.", Days)
}
stock is_user_admin(id)
{
new __flags = get_user_flags(id)
return (__flags > 0 && !(__flags & ADMIN_USER))
}
public plugin_natives()
{
register_native("get_access_days", "native_get_access_days", 1)
}
public native_get_access_days(id)
{
return Admin_Days[id]
}
хотел бы сделать вывод дней для вечного админа типа без ограничений. А то прописывать кучу дней и делать проверку типа days > 1000 = вечный админ не хотелось бы)
думал спустя столько времени этот плагин доработали или переписали но нет) в гугле ничего нету по данной теме. вроде как есть ласт версия но там тоже дичь и еще nvault прикрутили(