SURSA :
Code: Select all
#include <amxmodx>
#define VIP_FLAG ADMIN_LEVEL_H
new const vip_time[] = {20, 6};
new const TAG[] = "[PlayCs]";
new g_msg_saytext, g_sync, cvar_freevip, g_maxplayers;
new vip_free = 0;
public plugin_init()
{
register_plugin("Vip Free", "4.0", "cyby");
set_task(60.0, "check_time", _, _, _, "b");
set_task(1.0, "hud_mess", _, _, _, "b");
cvar_freevip = register_cvar("vip_free", "0");
g_msg_saytext = get_user_msgid("SayText");
g_maxplayers = get_maxplayers();
g_sync = CreateHudSyncObj();
cached_vars();
set_task(1.0, "check_time");
register_clcmd("say /timevip", "time_remain");
}
public client_putinserver(id)
{
if(!vip_free)
return;
if(!(get_user_flags(id) & VIP_FLAG))
{
new flags = get_user_flags(id);
flags |= VIP_FLAG
set_user_flags(id, flags);
}
}
public cached_vars()
vip_free = get_pcvar_num(cvar_freevip);
public check_time()
{
new o;
time(o, _, _);
if(!vip_free)
{
if(o >= vip_time[0] || o < vip_time[1])
{
vip_free = 1;
set_pcvar_num(cvar_freevip, 1);
color(0, ".v%s.g Eventul.e Free VIP.g a fost activat!", TAG);
}
}
else
{
if(o < vip_time[0] && o >= vip_time[1])
{
vip_free = 0;
set_pcvar_num(cvar_freevip, 0);
color(0, ".v%s.g Eventul.e Free VIP.g a fost dezactivat!", TAG);
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i) || get_user_flags(i) & VIP_FLAG)
continue;
remove_user_flags(i);
}
server_cmd("amx_reloadadmins");
}
}
}
public time_remain(id)
{
switch(vip_free)
{
case 1: color(id, ".v%s.g Timp ramas pana se termina vip-ul free.e %s.g.", TAG, time_left_vip());
case 0: color(id, ".v%s.g Timp ramas pana incepe vip-ul free.e %s.g.", TAG, time_left_vip());
}
return PLUGIN_HANDLED;
}
public hud_mess()
{
if(!vip_free)
return;
set_hudmessage(random(256), random(256), random(256), 0.00, 0.17, 0, 1.1, 1.0);
ShowSyncHudMsg(0, g_sync, " [PlayCs] Event VIP GRATUIT ON!");
new flage;
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i) || get_user_flags(i) & VIP_FLAG)
continue;
flage = get_user_flags(i);
flage |= VIP_FLAG
set_user_flags(i, flage);
}
}
stock color(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, ".v", "^4")
replace_all(msg, 190, ".g", "^1")
replace_all(msg, 190, ".e", "^3")
if(id) players[0] = id; else get_players(players, count, "ch")
{
for(new i = 0; i < count; i++)
{
if(is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, g_msg_saytext, _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
stock time_left_vip()
{
new timp_ramas[16], len = 0;
new h, m, lh, lm;
time(h, m, _);
switch(vip_free)
{
case 1: lh = vip_time[1] - h;
case 0: lh = vip_time[0] - h;
}
lm = 60 - m;
if(lm < 60)
lh--;
if(lh > 0)
len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, "%d or%s", lh, lh == 1 ? "a" : "e");
if(lm < 60)
len += formatex(timp_ramas[len], charsmax(timp_ramas) - len, " %d minut%s", lm, lm == 1 ? "" : "e");
return timp_ramas;
}
stock add_time(x)
{
new j;
switch(x)
{
case 0: j = 24;
case 1: j = 23;
case 2: j = 22;
case 3: j = 21;
case 4: j = 20;
case 5: j = 19;
case 6: j = 18;
case 7: j = 17;
case 8: j = 16;
case 9: j = 15;
case 10: j = 14;
case 11: j = 13;
case 12: j = 12;
case 13: j = 11;
case 14: j = 10;
case 15: j = 9;
case 16: j = 8;
case 17: j = 7;
case 18: j = 6;
case 19: j = 5;
case 20: j = 4;
case 21: j = 3;
case 22: j = 2;
case 23: j = 1;
}
if(x < vip_time[1])
j = 0;
return j;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/