Jump to content

[Plugin] Pro become VIP


Recommended Posts

kenzake powah!
Posted

Descriere: Cand un player "pro" ajunge la nr setat in cvar de fraguri acesta primeste cont VIP automat .
Descarcare: sma.gif Get Plugin Get Source inc.gif dhudmessage.inc zip.gif player.zip 

Nume: Pro become VIP
Versiune: 1.0
Autor: didoWEE

Instalare:
1. Fisierul pb_vip.sma il puneti in addons/amxmodx/scripting
2. Fisierul pb_vip.amxx il puneti in addons/amxmodx/plugins
3. Fisierul dhudmessage.inc il puneti in addons/amxmodx/scripting/modules
- doar daca doriti sa recompilati pb_vip.sma
4. Folderul VIP il puneti in cstrike/models/player
5. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
pb_vip.amxx


Cvaruri:
Needed kill to become VIP
amx_kills (default: 500)

The flags which you get when you become VIP
amx_kills_flags (default: bi)

Save type [1 - by name / 2 - by IP / 3 - by SteamID]
amx_kills_savetype (default: 3)

Expire days
amx_kills_expiredays
 (default: 10)

Module necesare:
(Ce module sunt necesare pentru folosire)

the code:

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <nvault>

// #define VIP_MODELS
// #define DHUDMESSAGE

#if defined DHUDMESSAGE
#include <dhudmessage>
#endif

new g_vault;

new g_iMaxPlayers;

new bool:g_bConnected[33];
new bool:g_bFlags[33];

new g_szFlags[22];

new g_kills[33];
new g_szSave[33][32];

new p_kills_for_vip, p_vip_flags;
new p_savetype, p_expire;

public plugin_init()
{
register_plugin("Pro Become VIP", "2.0", "didoWEE");

g_vault = nvault_open("pb_vip");
g_iMaxPlayers = get_maxplayers();

register_event("DeathMsg", "eDeath", "a")
RegisterHam(Ham_Spawn, "player", "fwdSpawn", 1);

p_kills_for_vip = register_cvar("amx_kills", "500"); // Needed kill to become VIP
p_vip_flags = register_cvar("amx_kills_flags", "bi"); // The flags which you get when you become VIP
p_savetype = register_cvar("amx_kills_savetype", "3"); // Save type [1 - by name / 2 - by IP / 3 - by SteamID]
p_expire = register_cvar("amx_kills_expiredays", "10"); // Expire days
}

public plugin_cfg()
{
nvault_prune(g_vault, 0, get_systime() - (86400 * get_pcvar_num(p_expire)));
get_pcvar_string(p_vip_flags, g_szFlags, charsmax(g_szFlags));
}

#if defined VIP_MODELS
public plugin_precache()
{
precache_model("models/player/VIP/Tvip/Tvip.mdl");
precache_model("models/player/VIP/CTvip/CTvip.mdl");
}
#endif

LoadData(id)
{
new data[16];
if(nvault_get(g_vault, g_szSave[id], data, charsmax(data))) g_kills[id] = str_to_num(data);
else g_kills[id] = 0;
}

SaveData(id)
{
new data[16];
num_to_str(g_kills[id], data, charsmax(data));
nvault_set(g_vault, g_szSave[id], data);
}

ShowHud(id)
{
#if defined DHUDMESSAGE
set_dhudmessage(195, 195, 0, 0.25, 0.50, 0, 3.0, 5.0, 0.0, 0.0);
show_dhudmessage(id, "Reach %i kills and become VIP^nYour have: %i kills", get_pcvar_num(p_kills_for_vip), g_kills[id]);
#else
set_hudmessage(195, 195, 0, 0.25, 0.50, 0, 3.0, 5.0, 0.0, 0.0, -1);
show_hudmessage(id, "Reach %i kills and become VIP^nYour have: %i kills", get_pcvar_num(p_kills_for_vip), g_kills[id]);
#endif
}

FlaggingFunc(id)
{
set_user_flags(id, read_flags(g_szFlags));
g_bFlags[id] = true;
}

public eDeath()
{
new killer = read_data(1);

if(killer && killer <= g_iMaxPlayers)
{
if(g_bConnected[killer])
{
if(killer != read_data(2))
{
if(!g_bFlags[killer])
{
g_kills[killer]++;

if(g_kills[killer] < get_pcvar_num(p_kills_for_vip)) ShowHud(killer);
else
if(g_kills[killer] == get_pcvar_num(p_kills_for_vip))
{
FlaggingFunc(killer);

#if defined DHUDMESSAGE
set_dhudmessage(235, 0, 235, 0.25, 0.65, 1, 7.5, 15.0, 0.0, 0.0);
show_dhudmessage(killer, "Congratilations^nYou are VIP");
#else
set_hudmessage(235, 0, 235, 0.25, 0.65, 1, 7.5, 15.0, 0.0, 0.0, -1);
show_hudmessage(killer, "Congratilations^nYou are VIP");
#endif
}
}
}
}
}
}

public fwdSpawn(id)
{
if(g_bConnected[id])
{
if (g_kills[id] < get_pcvar_num(p_kills_for_vip)) ShowHud(id);

#if defined VIP_MODELS
{
if(g_bFlags[id])
{
new CsTeams:team = cs_get_user_team(id);
switch(team)
{
case CS_TEAM_T: cs_set_user_model(id, "Tvip");
case CS_TEAM_CT: cs_set_user_model(id, "CTvip");
}
}
}
#endif
}
}

public client_connect(id)
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
g_bConnected[id] = true;

new savetype = get_pcvar_num(p_savetype);
switch(savetype)
{
case 1: get_user_name(id, g_szSave[id], charsmax(g_szSave[]));
case 2: get_user_ip(id, g_szSave[id], charsmax(g_szSave[]));
case 3: get_user_authid(id, g_szSave[id], charsmax(g_szSave[]));
}

LoadData(id);

if(get_user_flags(id) & read_flags(g_szFlags)) g_bFlags[id] = true;
else
{
if(g_kills[id] >= get_pcvar_num(p_kills_for_vip)) FlaggingFunc(id);
else g_bFlags[id] = false;
}
}
}

public client_disconnect(id)
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
g_bConnected[id] = false;
if(g_kills[id] > 0) SaveData(id);
}
}

public plugin_end()
{
for(new id=1; id <= g_iMaxPlayers; id++)
{
if(g_bConnected[id])
{
if(!(is_user_bot(id) && is_user_hltv(id)))
{
if(g_kills[id] > 0) SaveData(id);
}
}
}
nvault_close(g_vault);
}
 

 

Guest
This topic is now closed to further replies.
×
×
  • Create New...