Sau de ce nu incerci ceva mai eficient?
https://leaguecs.ro/forum/index.php?/to ... w-version/
[Cerere Plugin] EVENT FREE VIP
Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com
Forum rules
Accesează link-ul pentru a putea vedea regulile forumului
Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Accesează link-ul pentru a putea vedea regulile forumului
Daca doriti sa vi se modifice un plugin, va rugam postati aici .
-
- Membru, skill +1
- Posts: 349
- Joined: 26 Jan 2020, 18:52
- Detinator Steam: Da
- CS Status: 0x416469
- SteamID: shadowsadi120
- Fond eXtream: 0
- Has thanked: 14 times
- Been thanked: 50 times
- Alexandru P.
- Membru, skill 0
- Posts: 77
- Joined: 10 Apr 2020, 11:27
- Detinator Steam: Da
- CS Status: Citesc forumul eXtreamCS.com...!
- Detinator server CS: CS.BHZD.RO
- Fond eXtream: 0
- Has thanked: 7 times
- Contact:
robbencsgo wrote: ↑19 Jul 2020, 20:06posteaza-mi .SMA de la VIP si o sa ti-l fac eu direct din plugin-ul de vipAlexandru P. wrote: ↑19 Jul 2020, 14:53Inca nu am gasit solutia / pluginul ....
Ma ajuta cineva ?
Daca este necesar postez pluginul de VIP aici.
- robbencsgo
- Membru, skill 0
- Posts: 96
- Joined: 31 Aug 2019, 19:14
- Detinator Steam: Da
- CS Status: aimer
- SteamID: an prevat
- Fond eXtream: 0
- Has thanked: 9 times
- Been thanked: 11 times
- Contact:
Code: Select all
#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <fakemeta>
// --------------------------------------------
// ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[V.I.P]"; // TAGUL IN CHAT CARE APARE
new const CONTACT[] = "KnockOut";
#define is_user_vip(%1) (get_user_flags(%1) & read_flags("x"))
// --------------------------------------------
// ------------- DE EDITAT ---------------
// --------------------------------------------
#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"
#define is_user_valid(%1) (1 <= %1 <= max_players)
//vip freec
new const vip_time[] = {22, 10};
new g_sync, cvar_freevip;
new vip_free = 0;
////////////////////////
enum cvars
{
hp_spawn = 0,
ap_spawn,
money_spawn,
hp_kill,
hp_hs,
ap_kill,
ap_hs,
hp_max,
money_kill,
money_hs,
show_vip_tab,
show_bullet_dmg,
multi_jump,
parachute
}
new cvar[cvars], rounds = 1;
new max_players;
new bool:g_bJump[33] = false, g_JumpNum[33] = 0;
new g_iPlayerPos[33], g_iPlayerCol[33];
// NU SCHIMBA
new const Float:g_flCoords[][] =
{
{0.50, 0.40},
{0.56, 0.44},
{0.60, 0.50},
{0.56, 0.56},
{0.50, 0.60},
{0.44, 0.56},
{0.40, 0.50},
{0.44, 0.44}
}
// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] =
{
{0, 127, 255}, // blue
{255, 127, 0}, // orange
{127, 0, 255}, // purple
{255, 0, 0}, // red
{255, 100, 150}, // pink
{0, 255, 0} // green
}
public plugin_init()
{
new path[64];
get_localinfo("amxx_configsdir", path, charsmax(path));
formatex(path, charsmax(path), "%s/vip_maps.ini", path);
new file = fopen(path, "r+");
if(!file_exists(path))
{
write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
}
new mapname[32];
get_mapname(mapname, charsmax(mapname));
new text[121], maptext[32], bool:remove_vip = false;
while(!feof(file))
{
fgets(file, text, charsmax(text));
trim(text);
if(text[0] == ';' || !strlen(text))
{
continue;
}
parse(text, maptext, charsmax(maptext));
if(equal(maptext, mapname))
{
log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
remove_vip = true;
break;
}
}
fclose(file);
if(!remove_vip)
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
register_event("DeathMsg", "event_DeathMsg", "a");
register_event("Damage", "event_Damage", "b", "2>0", "3=0");
register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");
register_clcmd("say /vips", "CmdVipsOnline");
register_clcmd("say_team /vips", "CmdVipsOnline");
register_clcmd("say vips", "CmdVipsOnline");
register_clcmd("say_team vips", "CmdVipsOnline");
register_clcmd("say buyvip", "CmdPrintAttributes");
register_clcmd("say_team buyvip", "CmdPrintAttributes");
register_clcmd("say /buyvip", "CmdPrintAttributes");
register_clcmd("say_team /buyvip", "CmdPrintAttributes");
register_clcmd("say /rd", "CmdResetDeaths");
register_clcmd("say_team /rd", "CmdResetDeaths");
register_clcmd("say rd", "CmdResetDeaths");
register_clcmd("say_team rd", "CmdResetDeaths");
//VIP FREE
register_clcmd("say /timevip", "time_remain");
set_task(1.0, "check_time");
set_task(60.0, "check_time", _, _, _, "b");
set_task(1.0, "hud_mess", _, _, _, "b");
cvar_freevip = register_cvar("vip_free", "1");
cached_vars();
g_sync = CreateHudSyncObj();
//////////////////////////////////////////
cvar[hp_spawn] = register_cvar("vip_hp_spawn", "100"); // 0 = dezactivat
cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100"); // 0 = dezactivat
cvar[money_spawn] = register_cvar("vip_money_spawn", "0"); // 0 = dezactivat
cvar[show_vip_tab] = register_cvar("vip_show_tab", "1"); // 0 = dezactivat
cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1"); // 0 = dezactivat
cvar[multi_jump] = register_cvar("vip_multijump", "0"); // 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump
cvar[hp_kill] = register_cvar("vip_hp_kill", "5"); // 0 = dezactivat
cvar[hp_hs] = register_cvar("vip_hp_hs", "10"); // 0 = dezactivat
cvar[ap_kill] = register_cvar("vip_ap_kill", "5"); // 0 = dezactivat
cvar[ap_hs] = register_cvar("vip_ap_hs", "10"); // 0 = dezactivat
cvar[hp_max] = register_cvar("vip_hp_max", "120"); // 0 = viata infinita
cvar[money_kill] = register_cvar("vip_money_kill", "350"); // 0 = dezactivat
cvar[money_hs] = register_cvar("vip_money_hs", "450"); // 0 = dezactivat
cvar[parachute] = register_cvar("vip_parachute", "0"); // 0 = dezactivat
max_players = get_maxplayers();
}
else
{
register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
pause("ade");
}
register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
set_cvar_string("vip_", PLUGIN_VERSION);
}
public client_putinserver(id)
{
g_JumpNum[id] = 0;
g_bJump[id] = false;
}
public CmdVipsOnline(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE;
new adminnames[33][32], message[256], i, count, len;
len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
for(i = 1 ; i <= max_players; i++)
{
if(is_user_connected(i) && is_user_vip(i))
get_user_name(i, adminnames[count++], charsmax(adminnames[]));
}
if(count > 0)
{
for(i = 0; i < count; i++)
{
len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
}
ColorChat(id, message);
}
else
{
len += format(message[len], 255 -len, "!4No one !")
ColorChat(id, message);
}
return PLUGIN_CONTINUE;
}
public CmdPrintAttributes(id)
{
if(!is_user_connected(id)) return;
show_motd(id, "vip.txt", "Beneficii VIP");
}
public CmdResetDeaths(id)
{
if(!is_user_vip(id) || !vip_free)
{
ColorChat(id, "!4%s!1 Doar membri!3 VIP!1 isi pot reseta decesele.", TAG);
return;
}
cs_set_user_deaths(id, 0);
cs_set_user_deaths(id, 0);
ColorChat(id, "!4%s!1 Ti-ai resetat cu succes toate decesele.", TAG);
}
public client_PreThink(id)
{
new cache = get_pcvar_num(cvar[multi_jump]);
if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
return PLUGIN_CONTINUE;
new nbut = get_user_button(id);
new obut = get_user_oldbutton(id);
if(cache != 0)
{
if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
{
if(g_JumpNum[id] < cache)
{
g_bJump[id] = true;
g_JumpNum[id]++;
return PLUGIN_CONTINUE;
}
}
if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
{
g_JumpNum[id] = 0;
return PLUGIN_CONTINUE;
}
}
if(get_pcvar_num(cvar[parachute]))
{
new Float:fallspeed = 100.0 * -1.0;
if(nbut & IN_USE)
{
new Float:velocity[3];
entity_get_vector(id, EV_VEC_velocity, velocity);
if(velocity[2] < 0.0)
{
entity_set_int(id, EV_INT_sequence, 3);
entity_set_int(id, EV_INT_gaitsequence, 1);
entity_set_float(id, EV_FL_frame, 1.0);
entity_set_float(id, EV_FL_framerate, 1.0);
velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed;
entity_set_vector(id, EV_VEC_velocity, velocity);
}
}
}
return PLUGIN_CONTINUE;
}
public client_PostThink(id)
{
new jump_num = get_pcvar_num(cvar[multi_jump]);
if(!jump_num)
return PLUGIN_CONTINUE;
if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
return PLUGIN_CONTINUE;
if(g_bJump[id])
{
new Float:fVelocity[3];
entity_get_vector(id, EV_VEC_velocity, fVelocity);
fVelocity[2] = random_float(265.0, 285.0);
entity_set_vector(id, EV_VEC_velocity, fVelocity);
g_bJump[id] = false;
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
public event_DeathMsg()
{
new killer = read_data(1), hs = read_data(3);
if(is_user_alive(killer) && is_user_vip(killer) || is_user_alive(killer) && vip_free)
{
if(killer == read_data(2)) return PLUGIN_HANDLED;
if(hs && !user_has_weapon(killer, CSW_HEGRENADE)) give_item(killer, "weapon_hegrenade");
new cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));
cache = hs ? get_pcvar_num(cvar[ap_hs]) : get_pcvar_num(cvar[ap_kill]);
if(cache != 0) set_user_armor(killer, min(get_user_armor(killer) + cache, get_pcvar_num(cvar[hp_max])));
cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));
}
return PLUGIN_CONTINUE;
}
public event_Damage(victim)
{
if(!get_pcvar_num(cvar[show_bullet_dmg]))
return PLUGIN_CONTINUE;
new id = get_user_attacker(victim);
if(is_user_valid(id))
{
if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
return PLUGIN_HANDLED;
if(read_data(4) || read_data(5) || read_data(6))
{
new iPos = ++g_iPlayerPos[id];
if(iPos == sizeof(g_flCoords))
iPos = g_iPlayerPos[id] = 0;
new iCol = ++g_iPlayerCol[id];
if(iCol == sizeof(g_iColors))
iCol = g_iPlayerCol[id] = 0;
set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
show_hudmessage(id, "%d", read_data(2));
}
}
return PLUGIN_CONTINUE;
}
public event_NewRound()
{
rounds++;
}
public event_textmsg()
{
rounds = 1;
}
public fw_PlayerSpawnPost(id)
{
if(is_user_vip(id) && is_user_alive(id) || is_user_alive(id) && vip_free)
{
set_task(0.25, "give_items", id + 212);
return HAM_IGNORED;
}
return HAM_IGNORED;
}
public give_items(taskid)
{
new id = taskid - 212;
if(!is_user_alive(id))
return;
new cache = get_pcvar_num(cvar[hp_spawn])
if(cache != 0) set_user_health(id, cache);
cache = get_pcvar_num(cvar[ap_spawn]);
if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);
cache = get_pcvar_num(cvar[money_spawn]);
if(cache != 0) cs_set_user_money(id, min(cs_get_user_money(id) + cache, 16000));
if(rounds >= 3) ShowVipMenu(id);
}
public msg_ScoreAttrib(msgid, dest, id)
{
if(!get_pcvar_num(cvar[show_vip_tab]))
return PLUGIN_CONTINUE;
new id = get_msg_arg_int(1);
if(is_user_connected(id) && is_user_vip(id) || is_user_connected(id) && vip_free)
set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
return PLUGIN_CONTINUE;
}
public ShowVipMenu(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED;
if(!is_user_vip(id) || !vip_free)
{
ColorChat(id, "!4%s!1 Imi pare rau, dar nu ai acces la meniul pentru!3 membrii VIP!1.", TAG);
ColorChat(id, "!4%s!1 Poti cumpara VIP, contactand adresa Y!M:!3 %s!1.", TAG, CONTACT);
return PLUGIN_HANDLED;
}
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
drop_weapons(id, 2);
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
new menu = menu_create("[V.I.P MENU]", "VipMenuHandler");
menu_additem(menu, "M4A1 + Echipament", "1");
menu_additem(menu, "AK-47 + Echipament", "2");
menu_additem(menu, "AWP + Echipament", "3");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
return PLUGIN_CONTINUE;
}
public VipMenuHandler(id, menu, item)
{
if(!is_user_connected(id) || item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], namei[64], access, CallBack;
menu_item_getinfo(menu, item, access, data, charsmax(data), namei, charsmax(namei), CallBack);
new key = str_to_num(data);
switch(key)
{
case 1:
{
drop_weapons(id, 1);
give_item(id, "weapon_m4a1");
cs_set_user_bpammo(id, CSW_M4A1, 120);
ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
}
case 2:
{
drop_weapons(id, 1);
give_item(id, "weapon_ak47");
cs_set_user_bpammo(id, CSW_AK47, 120);
ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
}
case 3:
{
drop_weapons(id, 1);
give_item(id, "weapon_awp");
cs_set_user_bpammo(id, CSW_AWP, 30);
ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public cached_vars()
vip_free = get_pcvar_num(cvar_freevip);
public check_time()
{
new o;
time(o, _, _);
vip_free = 1;
set_pcvar_num(cvar_freevip, 1);
if(!vip_free)
{
if(o >= vip_time[0] || o < vip_time[1])
{
vip_free = 1;
set_pcvar_num(cvar_freevip, 1);
ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este activat!", TAG);
}
}
else
{
if(o < vip_time[0] && o >= vip_time[1])
{
vip_free = 0;
set_pcvar_num(cvar_freevip, 0);
ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este dezactivat!", TAG);
}
}
}
public time_remain(id)
{
if(vip_free)
ColorChat(id, "^4%s^1 Timp ramas pana se termina vip-ul free^3 %s", TAG, time_left_vip());
else if(!vip_free)
ColorChat(id, "^4%s^1 Timp ramas pana incepe vip-ul free^3 %s", TAG, time_left_vip());
}
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, "Event V.I.P Free !");
}
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
// Get user weapons
static weapons[32], num, i, weaponid, wname[32];
num = 0; // reset passed weapons count (bugfix)
get_user_weapons(id, weapons, num);
// Loop through them and drop primaries or secondaries
for (i = 0; i < num; i++)
{
// Prevent re-indexing the array
weaponid = weapons[i];
if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
{
// Get weapon entity
get_weaponname(weaponid, wname, charsmax(wname));
engclient_cmd(id, "drop", wname);
}
}
}
stock ColorChat(id, String[], any:...)
{
static szMesage[192];
vformat(szMesage, charsmax(szMesage), String, 3);
replace_all(szMesage, charsmax(szMesage), "!1", "^1");
replace_all(szMesage, charsmax(szMesage), "!3", "^3");
replace_all(szMesage, charsmax(szMesage), "!4", "^4");
static g_msg_SayText = 0;
if(!g_msg_SayText)
g_msg_SayText = get_user_msgid("SayText");
new Players[32], iNum = 1, i;
if(id) Players[0] = id;
else get_players(Players, iNum, "ch");
for(--iNum; iNum >= 0; iNum--)
{
i = Players[iNum];
message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
write_byte(i);
write_string(szMesage);
message_end();
}
}
stock time_left_vip()
{
new timp_ramas[16], len = 0;
new h, m, lh, lm;
time(h, m, _);
switch(vip_free)
{
case 0: lh = vip_time[0] - h;
case 1:
{
new l = vip_time[1];
if(h > l)
l += add_time(h) + h;
lh = l - 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;
}
Modifici
Code: Select all
new const vip_time[] = {22, 10};
pentru orele gen 7-8 dimineata pui 07 sau 08, ai inteles tu.
Daca te-am ajutat, lasa si tu un +1
- Alexandru P.
- Membru, skill 0
- Posts: 77
- Joined: 10 Apr 2020, 11:27
- Detinator Steam: Da
- CS Status: Citesc forumul eXtreamCS.com...!
- Detinator server CS: CS.BHZD.RO
- Fond eXtream: 0
- Has thanked: 7 times
- Contact:
Alexandru P. wrote: ↑20 Jul 2020, 08:22robbencsgo wrote: ↑19 Jul 2020, 20:06posteaza-mi .SMA de la VIP si o sa ti-l fac eu direct din plugin-ul de vipAlexandru P. wrote: ↑19 Jul 2020, 14:53Inca nu am gasit solutia / pluginul ....
Ma ajuta cineva ?
Daca este necesar postez pluginul de VIP aici.
Arata mesajele dar nu apare meniul de vip ..
Apare mesajul ca nu ai acces la VIP
- robbencsgo
- Membru, skill 0
- Posts: 96
- Joined: 31 Aug 2019, 19:14
- Detinator Steam: Da
- CS Status: aimer
- SteamID: an prevat
- Fond eXtream: 0
- Has thanked: 9 times
- Been thanked: 11 times
- Contact:
Code: Select all
#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <fakemeta>
// --------------------------------------------
// ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[V.I.P]"; // TAGUL IN CHAT CARE APARE
new const CONTACT[] = "KnockOut";
#define is_user_vip(%1) (get_user_flags(%1) & read_flags("x"))
// --------------------------------------------
// ------------- DE EDITAT ---------------
// --------------------------------------------
#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"
#define is_user_valid(%1) (1 <= %1 <= max_players)
//vip freec
new const vip_time[] = {22, 10};
new g_sync, cvar_freevip;
new vip_free = 0;
////////////////////////
enum cvars
{
hp_spawn = 0,
ap_spawn,
money_spawn,
hp_kill,
hp_hs,
ap_kill,
ap_hs,
hp_max,
money_kill,
money_hs,
show_vip_tab,
show_bullet_dmg,
multi_jump,
parachute
}
new cvar[cvars], rounds = 1;
new max_players;
new bool:g_bJump[33] = false, g_JumpNum[33] = 0;
new g_iPlayerPos[33], g_iPlayerCol[33];
// NU SCHIMBA
new const Float:g_flCoords[][] =
{
{0.50, 0.40},
{0.56, 0.44},
{0.60, 0.50},
{0.56, 0.56},
{0.50, 0.60},
{0.44, 0.56},
{0.40, 0.50},
{0.44, 0.44}
}
// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] =
{
{0, 127, 255}, // blue
{255, 127, 0}, // orange
{127, 0, 255}, // purple
{255, 0, 0}, // red
{255, 100, 150}, // pink
{0, 255, 0} // green
}
public plugin_init()
{
new path[64];
get_localinfo("amxx_configsdir", path, charsmax(path));
formatex(path, charsmax(path), "%s/vip_maps.ini", path);
new file = fopen(path, "r+");
if(!file_exists(path))
{
write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
}
new mapname[32];
get_mapname(mapname, charsmax(mapname));
new text[121], maptext[32], bool:remove_vip = false;
while(!feof(file))
{
fgets(file, text, charsmax(text));
trim(text);
if(text[0] == ';' || !strlen(text))
{
continue;
}
parse(text, maptext, charsmax(maptext));
if(equal(maptext, mapname))
{
log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
remove_vip = true;
break;
}
}
fclose(file);
if(!remove_vip)
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
register_event("DeathMsg", "event_DeathMsg", "a");
register_event("Damage", "event_Damage", "b", "2>0", "3=0");
register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");
register_clcmd("say /vips", "CmdVipsOnline");
register_clcmd("say_team /vips", "CmdVipsOnline");
register_clcmd("say vips", "CmdVipsOnline");
register_clcmd("say_team vips", "CmdVipsOnline");
register_clcmd("say buyvip", "CmdPrintAttributes");
register_clcmd("say_team buyvip", "CmdPrintAttributes");
register_clcmd("say /buyvip", "CmdPrintAttributes");
register_clcmd("say_team /buyvip", "CmdPrintAttributes");
register_clcmd("say /rd", "CmdResetDeaths");
register_clcmd("say_team /rd", "CmdResetDeaths");
register_clcmd("say rd", "CmdResetDeaths");
register_clcmd("say_team rd", "CmdResetDeaths");
//VIP FREE
register_clcmd("say /timevip", "time_remain");
set_task(1.0, "check_time");
set_task(60.0, "check_time", _, _, _, "b");
set_task(1.0, "hud_mess", _, _, _, "b");
cvar_freevip = register_cvar("vip_free", "1");
cached_vars();
g_sync = CreateHudSyncObj();
//////////////////////////////////////////
cvar[hp_spawn] = register_cvar("vip_hp_spawn", "100"); // 0 = dezactivat
cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100"); // 0 = dezactivat
cvar[money_spawn] = register_cvar("vip_money_spawn", "0"); // 0 = dezactivat
cvar[show_vip_tab] = register_cvar("vip_show_tab", "1"); // 0 = dezactivat
cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1"); // 0 = dezactivat
cvar[multi_jump] = register_cvar("vip_multijump", "0"); // 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump
cvar[hp_kill] = register_cvar("vip_hp_kill", "5"); // 0 = dezactivat
cvar[hp_hs] = register_cvar("vip_hp_hs", "10"); // 0 = dezactivat
cvar[ap_kill] = register_cvar("vip_ap_kill", "5"); // 0 = dezactivat
cvar[ap_hs] = register_cvar("vip_ap_hs", "10"); // 0 = dezactivat
cvar[hp_max] = register_cvar("vip_hp_max", "120"); // 0 = viata infinita
cvar[money_kill] = register_cvar("vip_money_kill", "350"); // 0 = dezactivat
cvar[money_hs] = register_cvar("vip_money_hs", "450"); // 0 = dezactivat
cvar[parachute] = register_cvar("vip_parachute", "0"); // 0 = dezactivat
max_players = get_maxplayers();
}
else
{
register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
pause("ade");
}
register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
set_cvar_string("vip_", PLUGIN_VERSION);
}
public client_putinserver(id)
{
g_JumpNum[id] = 0;
g_bJump[id] = false;
}
public CmdVipsOnline(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE;
new adminnames[33][32], message[256], i, count, len;
len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
for(i = 1 ; i <= max_players; i++)
{
if(is_user_connected(i) && is_user_vip(i))
get_user_name(i, adminnames[count++], charsmax(adminnames[]));
}
if(count > 0)
{
for(i = 0; i < count; i++)
{
len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
}
ColorChat(id, message);
}
else
{
len += format(message[len], 255 -len, "!4No one !")
ColorChat(id, message);
}
return PLUGIN_CONTINUE;
}
public CmdPrintAttributes(id)
{
if(!is_user_connected(id)) return;
show_motd(id, "vip.txt", "Beneficii VIP");
}
public CmdResetDeaths(id)
{
if(!is_user_vip(id) || !vip_free)
{
ColorChat(id, "!4%s!1 Doar membri!3 VIP!1 isi pot reseta decesele.", TAG);
return;
}
cs_set_user_deaths(id, 0);
cs_set_user_deaths(id, 0);
ColorChat(id, "!4%s!1 Ti-ai resetat cu succes toate decesele.", TAG);
}
public client_PreThink(id)
{
new cache = get_pcvar_num(cvar[multi_jump]);
if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
return PLUGIN_CONTINUE;
new nbut = get_user_button(id);
new obut = get_user_oldbutton(id);
if(cache != 0)
{
if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
{
if(g_JumpNum[id] < cache)
{
g_bJump[id] = true;
g_JumpNum[id]++;
return PLUGIN_CONTINUE;
}
}
if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
{
g_JumpNum[id] = 0;
return PLUGIN_CONTINUE;
}
}
if(get_pcvar_num(cvar[parachute]))
{
new Float:fallspeed = 100.0 * -1.0;
if(nbut & IN_USE)
{
new Float:velocity[3];
entity_get_vector(id, EV_VEC_velocity, velocity);
if(velocity[2] < 0.0)
{
entity_set_int(id, EV_INT_sequence, 3);
entity_set_int(id, EV_INT_gaitsequence, 1);
entity_set_float(id, EV_FL_frame, 1.0);
entity_set_float(id, EV_FL_framerate, 1.0);
velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed;
entity_set_vector(id, EV_VEC_velocity, velocity);
}
}
}
return PLUGIN_CONTINUE;
}
public client_PostThink(id)
{
new jump_num = get_pcvar_num(cvar[multi_jump]);
if(!jump_num)
return PLUGIN_CONTINUE;
if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
return PLUGIN_CONTINUE;
if(g_bJump[id])
{
new Float:fVelocity[3];
entity_get_vector(id, EV_VEC_velocity, fVelocity);
fVelocity[2] = random_float(265.0, 285.0);
entity_set_vector(id, EV_VEC_velocity, fVelocity);
g_bJump[id] = false;
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
public event_DeathMsg()
{
new killer = read_data(1), hs = read_data(3);
if(is_user_alive(killer) && is_user_vip(killer) || is_user_alive(killer) && vip_free)
{
if(killer == read_data(2)) return PLUGIN_HANDLED;
if(hs && !user_has_weapon(killer, CSW_HEGRENADE)) give_item(killer, "weapon_hegrenade");
new cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));
cache = hs ? get_pcvar_num(cvar[ap_hs]) : get_pcvar_num(cvar[ap_kill]);
if(cache != 0) set_user_armor(killer, min(get_user_armor(killer) + cache, get_pcvar_num(cvar[hp_max])));
cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));
}
return PLUGIN_CONTINUE;
}
public event_Damage(victim)
{
if(!get_pcvar_num(cvar[show_bullet_dmg]))
return PLUGIN_CONTINUE;
new id = get_user_attacker(victim);
if(is_user_valid(id))
{
if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free)
return PLUGIN_HANDLED;
if(read_data(4) || read_data(5) || read_data(6))
{
new iPos = ++g_iPlayerPos[id];
if(iPos == sizeof(g_flCoords))
iPos = g_iPlayerPos[id] = 0;
new iCol = ++g_iPlayerCol[id];
if(iCol == sizeof(g_iColors))
iCol = g_iPlayerCol[id] = 0;
set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
show_hudmessage(id, "%d", read_data(2));
}
}
return PLUGIN_CONTINUE;
}
public event_NewRound()
{
rounds++;
}
public event_textmsg()
{
rounds = 1;
}
public fw_PlayerSpawnPost(id)
{
if(is_user_vip(id) && is_user_alive(id) || is_user_alive(id) && vip_free)
{
set_task(0.25, "give_items", id + 212);
return HAM_IGNORED;
}
return HAM_IGNORED;
}
public give_items(taskid)
{
new id = taskid - 212;
if(!is_user_alive(id))
return;
new cache = get_pcvar_num(cvar[hp_spawn])
if(cache != 0) set_user_health(id, cache);
cache = get_pcvar_num(cvar[ap_spawn]);
if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);
cache = get_pcvar_num(cvar[money_spawn]);
if(cache != 0) cs_set_user_money(id, min(cs_get_user_money(id) + cache, 16000));
if(rounds >= 3) ShowVipMenu(id);
}
public msg_ScoreAttrib(msgid, dest, id)
{
if(!get_pcvar_num(cvar[show_vip_tab]))
return PLUGIN_CONTINUE;
new id = get_msg_arg_int(1);
if(is_user_connected(id) && is_user_vip(id) || is_user_connected(id) && vip_free)
set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
return PLUGIN_CONTINUE;
}
public ShowVipMenu(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED;
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
drop_weapons(id, 2);
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
new menu = menu_create("[V.I.P MENU]", "VipMenuHandler");
menu_additem(menu, "M4A1 + Echipament", "1");
menu_additem(menu, "AK-47 + Echipament", "2");
menu_additem(menu, "AWP + Echipament", "3");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
return PLUGIN_CONTINUE;
}
public VipMenuHandler(id, menu, item)
{
if(!is_user_connected(id) || item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], namei[64], access, CallBack;
menu_item_getinfo(menu, item, access, data, charsmax(data), namei, charsmax(namei), CallBack);
new key = str_to_num(data);
switch(key)
{
case 1:
{
drop_weapons(id, 1);
give_item(id, "weapon_m4a1");
cs_set_user_bpammo(id, CSW_M4A1, 120);
ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
}
case 2:
{
drop_weapons(id, 1);
give_item(id, "weapon_ak47");
cs_set_user_bpammo(id, CSW_AK47, 120);
ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
}
case 3:
{
drop_weapons(id, 1);
give_item(id, "weapon_awp");
cs_set_user_bpammo(id, CSW_AWP, 30);
ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public cached_vars()
vip_free = get_pcvar_num(cvar_freevip);
public check_time()
{
new o;
time(o, _, _);
vip_free = 1;
set_pcvar_num(cvar_freevip, 1);
if(!vip_free)
{
if(o >= vip_time[0] || o < vip_time[1])
{
vip_free = 1;
set_pcvar_num(cvar_freevip, 1);
ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este activat!", TAG);
}
}
else
{
if(o < vip_time[0] && o >= vip_time[1])
{
vip_free = 0;
set_pcvar_num(cvar_freevip, 0);
ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este dezactivat!", TAG);
}
}
}
public time_remain(id)
{
if(vip_free)
ColorChat(id, "^4%s^1 Timp ramas pana se termina vip-ul free^3 %s", TAG, time_left_vip());
else if(!vip_free)
ColorChat(id, "^4%s^1 Timp ramas pana incepe vip-ul free^3 %s", TAG, time_left_vip());
}
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, "Event V.I.P Free !");
}
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
// Get user weapons
static weapons[32], num, i, weaponid, wname[32];
num = 0; // reset passed weapons count (bugfix)
get_user_weapons(id, weapons, num);
// Loop through them and drop primaries or secondaries
for (i = 0; i < num; i++)
{
// Prevent re-indexing the array
weaponid = weapons[i];
if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
{
// Get weapon entity
get_weaponname(weaponid, wname, charsmax(wname));
engclient_cmd(id, "drop", wname);
}
}
}
stock ColorChat(id, String[], any:...)
{
static szMesage[192];
vformat(szMesage, charsmax(szMesage), String, 3);
replace_all(szMesage, charsmax(szMesage), "!1", "^1");
replace_all(szMesage, charsmax(szMesage), "!3", "^3");
replace_all(szMesage, charsmax(szMesage), "!4", "^4");
static g_msg_SayText = 0;
if(!g_msg_SayText)
g_msg_SayText = get_user_msgid("SayText");
new Players[32], iNum = 1, i;
if(id) Players[0] = id;
else get_players(Players, iNum, "ch");
for(--iNum; iNum >= 0; iNum--)
{
i = Players[iNum];
message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
write_byte(i);
write_string(szMesage);
message_end();
}
}
stock time_left_vip()
{
new timp_ramas[16], len = 0;
new h, m, lh, lm;
time(h, m, _);
switch(vip_free)
{
case 0: lh = vip_time[0] - h;
case 1:
{
new l = vip_time[1];
if(h > l)
l += add_time(h) + h;
lh = l - 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;
}
Daca te-am ajutat, lasa si tu un +1
- Alexandru P.
- Membru, skill 0
- Posts: 77
- Joined: 10 Apr 2020, 11:27
- Detinator Steam: Da
- CS Status: Citesc forumul eXtreamCS.com...!
- Detinator server CS: CS.BHZD.RO
- Fond eXtream: 0
- Has thanked: 7 times
- Contact:
Este ok acum dar nu fuctioneaza multijump, bullet, parasutarobbencsgo wrote: ↑22 Jul 2020, 14:37Code: Select all
#include <amxmodx> #include <hamsandwich> #include <engine> #include <cstrike> #include <fun> #include <fakemeta> // -------------------------------------------- // ------------- DE EDITAT --------------- // -------------------------------------------- new const TAG[] = "[V.I.P]"; // TAGUL IN CHAT CARE APARE new const CONTACT[] = "KnockOut"; #define is_user_vip(%1) (get_user_flags(%1) & read_flags("x")) // -------------------------------------------- // ------------- DE EDITAT --------------- // -------------------------------------------- #define PLUGIN_NAME "VIP System" #define PLUGIN_NAME_PAUSED "VIP System [OPRIT]" #define PLUGIN_VERSION "1.0" #define PLUGIN_AUTHOR "YONTU" #define is_user_valid(%1) (1 <= %1 <= max_players) //vip freec new const vip_time[] = {22, 10}; new g_sync, cvar_freevip; new vip_free = 0; //////////////////////// enum cvars { hp_spawn = 0, ap_spawn, money_spawn, hp_kill, hp_hs, ap_kill, ap_hs, hp_max, money_kill, money_hs, show_vip_tab, show_bullet_dmg, multi_jump, parachute } new cvar[cvars], rounds = 1; new max_players; new bool:g_bJump[33] = false, g_JumpNum[33] = 0; new g_iPlayerPos[33], g_iPlayerCol[33]; // NU SCHIMBA new const Float:g_flCoords[][] = { {0.50, 0.40}, {0.56, 0.44}, {0.60, 0.50}, {0.56, 0.56}, {0.50, 0.60}, {0.44, 0.56}, {0.40, 0.50}, {0.44, 0.44} } // NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea new const g_iColors[][] = { {0, 127, 255}, // blue {255, 127, 0}, // orange {127, 0, 255}, // purple {255, 0, 0}, // red {255, 100, 150}, // pink {0, 255, 0} // green } public plugin_init() { new path[64]; get_localinfo("amxx_configsdir", path, charsmax(path)); formatex(path, charsmax(path), "%s/vip_maps.ini", path); new file = fopen(path, "r+"); if(!file_exists(path)) { write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: "); write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor"); } new mapname[32]; get_mapname(mapname, charsmax(mapname)); new text[121], maptext[32], bool:remove_vip = false; while(!feof(file)) { fgets(file, text, charsmax(text)); trim(text); if(text[0] == ';' || !strlen(text)) { continue; } parse(text, maptext, charsmax(maptext)); if(equal(maptext, mapname)) { log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext); remove_vip = true; break; } } fclose(file); if(!remove_vip) { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR); register_event("DeathMsg", "event_DeathMsg", "a"); register_event("Damage", "event_Damage", "b", "2>0", "3=0"); register_event("HLTV", "event_NewRound", "a", "1=0", "2=0"); register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in") RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1); register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib"); register_clcmd("say /vips", "CmdVipsOnline"); register_clcmd("say_team /vips", "CmdVipsOnline"); register_clcmd("say vips", "CmdVipsOnline"); register_clcmd("say_team vips", "CmdVipsOnline"); register_clcmd("say buyvip", "CmdPrintAttributes"); register_clcmd("say_team buyvip", "CmdPrintAttributes"); register_clcmd("say /buyvip", "CmdPrintAttributes"); register_clcmd("say_team /buyvip", "CmdPrintAttributes"); register_clcmd("say /rd", "CmdResetDeaths"); register_clcmd("say_team /rd", "CmdResetDeaths"); register_clcmd("say rd", "CmdResetDeaths"); register_clcmd("say_team rd", "CmdResetDeaths"); //VIP FREE register_clcmd("say /timevip", "time_remain"); set_task(1.0, "check_time"); set_task(60.0, "check_time", _, _, _, "b"); set_task(1.0, "hud_mess", _, _, _, "b"); cvar_freevip = register_cvar("vip_free", "1"); cached_vars(); g_sync = CreateHudSyncObj(); ////////////////////////////////////////// cvar[hp_spawn] = register_cvar("vip_hp_spawn", "100"); // 0 = dezactivat cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100"); // 0 = dezactivat cvar[money_spawn] = register_cvar("vip_money_spawn", "0"); // 0 = dezactivat cvar[show_vip_tab] = register_cvar("vip_show_tab", "1"); // 0 = dezactivat cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1"); // 0 = dezactivat cvar[multi_jump] = register_cvar("vip_multijump", "0"); // 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump cvar[hp_kill] = register_cvar("vip_hp_kill", "5"); // 0 = dezactivat cvar[hp_hs] = register_cvar("vip_hp_hs", "10"); // 0 = dezactivat cvar[ap_kill] = register_cvar("vip_ap_kill", "5"); // 0 = dezactivat cvar[ap_hs] = register_cvar("vip_ap_hs", "10"); // 0 = dezactivat cvar[hp_max] = register_cvar("vip_hp_max", "120"); // 0 = viata infinita cvar[money_kill] = register_cvar("vip_money_kill", "350"); // 0 = dezactivat cvar[money_hs] = register_cvar("vip_money_hs", "450"); // 0 = dezactivat cvar[parachute] = register_cvar("vip_parachute", "0"); // 0 = dezactivat max_players = get_maxplayers(); } else { register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR); pause("ade"); } register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER); set_cvar_string("vip_", PLUGIN_VERSION); } public client_putinserver(id) { g_JumpNum[id] = 0; g_bJump[id] = false; } public CmdVipsOnline(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; new adminnames[33][32], message[256], i, count, len; len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG); for(i = 1 ; i <= max_players; i++) { if(is_user_connected(i) && is_user_vip(i)) get_user_name(i, adminnames[count++], charsmax(adminnames[])); } if(count > 0) { for(i = 0; i < count; i++) { len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : ""); } ColorChat(id, message); } else { len += format(message[len], 255 -len, "!4No one !") ColorChat(id, message); } return PLUGIN_CONTINUE; } public CmdPrintAttributes(id) { if(!is_user_connected(id)) return; show_motd(id, "vip.txt", "Beneficii VIP"); } public CmdResetDeaths(id) { if(!is_user_vip(id) || !vip_free) { ColorChat(id, "!4%s!1 Doar membri!3 VIP!1 isi pot reseta decesele.", TAG); return; } cs_set_user_deaths(id, 0); cs_set_user_deaths(id, 0); ColorChat(id, "!4%s!1 Ti-ai resetat cu succes toate decesele.", TAG); } public client_PreThink(id) { new cache = get_pcvar_num(cvar[multi_jump]); if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free) return PLUGIN_CONTINUE; new nbut = get_user_button(id); new obut = get_user_oldbutton(id); if(cache != 0) { if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP)) { if(g_JumpNum[id] < cache) { g_bJump[id] = true; g_JumpNum[id]++; return PLUGIN_CONTINUE; } } if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)) { g_JumpNum[id] = 0; return PLUGIN_CONTINUE; } } if(get_pcvar_num(cvar[parachute])) { new Float:fallspeed = 100.0 * -1.0; if(nbut & IN_USE) { new Float:velocity[3]; entity_get_vector(id, EV_VEC_velocity, velocity); if(velocity[2] < 0.0) { entity_set_int(id, EV_INT_sequence, 3); entity_set_int(id, EV_INT_gaitsequence, 1); entity_set_float(id, EV_FL_frame, 1.0); entity_set_float(id, EV_FL_framerate, 1.0); velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed; entity_set_vector(id, EV_VEC_velocity, velocity); } } } return PLUGIN_CONTINUE; } public client_PostThink(id) { new jump_num = get_pcvar_num(cvar[multi_jump]); if(!jump_num) return PLUGIN_CONTINUE; if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free) return PLUGIN_CONTINUE; if(g_bJump[id]) { new Float:fVelocity[3]; entity_get_vector(id, EV_VEC_velocity, fVelocity); fVelocity[2] = random_float(265.0, 285.0); entity_set_vector(id, EV_VEC_velocity, fVelocity); g_bJump[id] = false; return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public event_DeathMsg() { new killer = read_data(1), hs = read_data(3); if(is_user_alive(killer) && is_user_vip(killer) || is_user_alive(killer) && vip_free) { if(killer == read_data(2)) return PLUGIN_HANDLED; if(hs && !user_has_weapon(killer, CSW_HEGRENADE)) give_item(killer, "weapon_hegrenade"); new cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]); if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max]))); cache = hs ? get_pcvar_num(cvar[ap_hs]) : get_pcvar_num(cvar[ap_kill]); if(cache != 0) set_user_armor(killer, min(get_user_armor(killer) + cache, get_pcvar_num(cvar[hp_max]))); cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]); if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000)); } return PLUGIN_CONTINUE; } public event_Damage(victim) { if(!get_pcvar_num(cvar[show_bullet_dmg])) return PLUGIN_CONTINUE; new id = get_user_attacker(victim); if(is_user_valid(id)) { if(is_user_alive(id) && !is_user_vip(id) || is_user_alive(id) && !vip_free) return PLUGIN_HANDLED; if(read_data(4) || read_data(5) || read_data(6)) { new iPos = ++g_iPlayerPos[id]; if(iPos == sizeof(g_flCoords)) iPos = g_iPlayerPos[id] = 0; new iCol = ++g_iPlayerCol[id]; if(iCol == sizeof(g_iColors)) iCol = g_iPlayerCol[id] = 0; set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1); show_hudmessage(id, "%d", read_data(2)); } } return PLUGIN_CONTINUE; } public event_NewRound() { rounds++; } public event_textmsg() { rounds = 1; } public fw_PlayerSpawnPost(id) { if(is_user_vip(id) && is_user_alive(id) || is_user_alive(id) && vip_free) { set_task(0.25, "give_items", id + 212); return HAM_IGNORED; } return HAM_IGNORED; } public give_items(taskid) { new id = taskid - 212; if(!is_user_alive(id)) return; new cache = get_pcvar_num(cvar[hp_spawn]) if(cache != 0) set_user_health(id, cache); cache = get_pcvar_num(cvar[ap_spawn]); if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM); cache = get_pcvar_num(cvar[money_spawn]); if(cache != 0) cs_set_user_money(id, min(cs_get_user_money(id) + cache, 16000)); if(rounds >= 3) ShowVipMenu(id); } public msg_ScoreAttrib(msgid, dest, id) { if(!get_pcvar_num(cvar[show_vip_tab])) return PLUGIN_CONTINUE; new id = get_msg_arg_int(1); if(is_user_connected(id) && is_user_vip(id) || is_user_connected(id) && vip_free) set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0)); return PLUGIN_CONTINUE; } public ShowVipMenu(id) { if(!is_user_connected(id)) return PLUGIN_HANDLED; give_item(id, "weapon_hegrenade"); give_item(id, "weapon_flashbang"); give_item(id, "weapon_flashbang"); drop_weapons(id, 2); give_item(id, "weapon_deagle"); cs_set_user_bpammo(id, CSW_DEAGLE, 35); new menu = menu_create("[V.I.P MENU]", "VipMenuHandler"); menu_additem(menu, "M4A1 + Echipament", "1"); menu_additem(menu, "AK-47 + Echipament", "2"); menu_additem(menu, "AWP + Echipament", "3"); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); return PLUGIN_CONTINUE; } public VipMenuHandler(id, menu, item) { if(!is_user_connected(id) || item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], namei[64], access, CallBack; menu_item_getinfo(menu, item, access, data, charsmax(data), namei, charsmax(namei), CallBack); new key = str_to_num(data); switch(key) { case 1: { drop_weapons(id, 1); give_item(id, "weapon_m4a1"); cs_set_user_bpammo(id, CSW_M4A1, 120); ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG); } case 2: { drop_weapons(id, 1); give_item(id, "weapon_ak47"); cs_set_user_bpammo(id, CSW_AK47, 120); ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG); } case 3: { drop_weapons(id, 1); give_item(id, "weapon_awp"); cs_set_user_bpammo(id, CSW_AWP, 30); ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG); } } menu_destroy(menu); return PLUGIN_HANDLED; } public cached_vars() vip_free = get_pcvar_num(cvar_freevip); public check_time() { new o; time(o, _, _); vip_free = 1; set_pcvar_num(cvar_freevip, 1); if(!vip_free) { if(o >= vip_time[0] || o < vip_time[1]) { vip_free = 1; set_pcvar_num(cvar_freevip, 1); ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este activat!", TAG); } } else { if(o < vip_time[0] && o >= vip_time[1]) { vip_free = 0; set_pcvar_num(cvar_freevip, 0); ColorChat(0, "^4%s^1 Eventul^3 Free VIP^1 este dezactivat!", TAG); } } } public time_remain(id) { if(vip_free) ColorChat(id, "^4%s^1 Timp ramas pana se termina vip-ul free^3 %s", TAG, time_left_vip()); else if(!vip_free) ColorChat(id, "^4%s^1 Timp ramas pana incepe vip-ul free^3 %s", TAG, time_left_vip()); } 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, "Event V.I.P Free !"); } const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90); const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE); // Drop primary/secondary weapons stock drop_weapons(id, dropwhat) { // Get user weapons static weapons[32], num, i, weaponid, wname[32]; num = 0; // reset passed weapons count (bugfix) get_user_weapons(id, weapons, num); // Loop through them and drop primaries or secondaries for (i = 0; i < num; i++) { // Prevent re-indexing the array weaponid = weapons[i]; if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM))) { // Get weapon entity get_weaponname(weaponid, wname, charsmax(wname)); engclient_cmd(id, "drop", wname); } } } stock ColorChat(id, String[], any:...) { static szMesage[192]; vformat(szMesage, charsmax(szMesage), String, 3); replace_all(szMesage, charsmax(szMesage), "!1", "^1"); replace_all(szMesage, charsmax(szMesage), "!3", "^3"); replace_all(szMesage, charsmax(szMesage), "!4", "^4"); static g_msg_SayText = 0; if(!g_msg_SayText) g_msg_SayText = get_user_msgid("SayText"); new Players[32], iNum = 1, i; if(id) Players[0] = id; else get_players(Players, iNum, "ch"); for(--iNum; iNum >= 0; iNum--) { i = Players[iNum]; message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i); write_byte(i); write_string(szMesage); message_end(); } } stock time_left_vip() { new timp_ramas[16], len = 0; new h, m, lh, lm; time(h, m, _); switch(vip_free) { case 0: lh = vip_time[0] - h; case 1: { new l = vip_time[1]; if(h > l) l += add_time(h) + h; lh = l - 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; }
vip_hp_spawn "110"
vip_ap_spawn "100"
vip_money_spawn "800"
vip_show_tab "1"
vip_show_bullet_dmg "1"
vip_multijump "1"
vip_hp_kill "5"
vip_hp_hs "10"
vip_ap_kill "5"
vip_ap_hs "10"
vip_hp_max "130"
vip_money_kill "500"
vip_money_hs "1000"
vip_parachute "1"