Пользователь
- Сообщения
- 182
- Реакции
- 4
Code_0xABC, это я сделал перед тем как ты скинул
Актуальный код
Актуальный код
C#:
#include <amxmodx>
#include <reapi>
// Режимы
#define NIGHT_MODE // получаем бесплатно випку ночью
#define WEEKEND_MODE // получаем бесплатно випку в выходные дни
// Флаги
#define GIVE_FLAG ADMIN_LEVEL_H // какой флаг выдавать
#define HAVE_FLAG ADMIN_MENU // кому не выдавать
new bool:is_night_bonus[MAX_CLIENTS+1], bool:is_weekend_bonus[MAX_CLIENTS+1];
new g_szActiveModeStr[64];
#define is_user_privilege(%1) (get_user_flags(%1) & HAVE_FLAG)
public plugin_init()
{
register_plugin("Night & Weekend Bonus", "0.1", "Author");
RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", true);
}
public client_disconnected(id)
{
is_night_bonus[id] = false;
is_weekend_bonus[id] = false;
}
public CBasePlayer_Spawn(id)
{
#if defined NIGHT_MODE
new szTime[3]
get_time("%H",szTime,2)
new iTime = str_to_num(szTime)
if( 18 <= iTime <= 24 || 00 <= iTime <= 06)
{
if(!is_user_privilege(id))
{
remove_user_flags(id, ADMIN_USER);
set_user_flags(id, GIVE_FLAG);
is_night_bonus[id] = true;
copy(g_szActiveModeStr, charsmax(g_szActiveModeStr), "Ночной режим");
if(!is_user_alive(id))
return;
else client_cmd(id, "vipmenu"); client_print_color(id, print_team_default, "^1Вам выдана бесплатная ^4VIP, ^1причина:^4 %s.", g_szActiveModeStr);
}
}
else if(is_night_bonus[id])
{
remove_user_flags(id, GIVE_FLAG);
set_user_flags(id, ADMIN_USER);
is_night_bonus[id] = false;
}
#endif
#if defined WEEKEND_MODE
if(is_weekend())
{
if(!is_user_privilege(id))
{
remove_user_flags(id, ADMIN_USER);
set_user_flags(id, GIVE_FLAG);
is_weekend_bonus[id] = true;
copy(g_szActiveModeStr, charsmax(g_szActiveModeStr), "Выходные дни");
if(!is_user_alive(id))
return;
else client_cmd(id, "vipmenu"); client_print_color(id, print_team_default, "^1Вам выдана бесплатная ^4VIP, ^1причина:^4 %s.", g_szActiveModeStr);
}
}
else if(is_weekend_bonus[id])
{
remove_user_flags(id, GIVE_FLAG);
set_user_flags(id, ADMIN_USER);
is_weekend_bonus[id] = false;
}
#endif
}
#if defined WEEKEND_MODE
stock bool:is_weekend()
{
new szTime[3];
get_time("%u", szTime, charsmax(szTime));
return str_to_num(szTime) > 3 ? true : false; // Поменял с 5 на 3 чтобы затестить на выходных режим
}
#endif