/* Credits
GhosT *** - Crearea pluginului
twistedeuphoria - Cod pentru Multi Jumps
Dunno - Primul creator al "sistemului de add HP" daca ii pot spune asa.
*/
//include
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta_util>
#include <fun>
#include <colorchat>
#include <hamsandwich>
#include <engine>
// define
#define PLUGIN "VIP"
#define VERSION "1.0"
#define AUTHOR "GhosT"
#define VIP_LEVEL ADMIN_LEVEL_H
#define player_is_vip(%1) (get_user_flags(%1) & VIP_LEVEL)
new jumpnum[33] = 0
new bool:dojump[33] = false
new nKiller
new nKiller_hp
new nHp_add
new nHp_max
new kill, kill_hs, max_hp;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "vip_spawn", 1);
RegisterHam(Ham_TakeDamage, "player", "damage");
register_message(get_user_msgid("ScoreAttrib"),"vip_scoreboard");
register_event("DeathMsg", "hp_add", "a", "1>0")
register_cvar("amx_maxjumps","1")
register_cvar("amx_mjadminonly","1")
kill = register_cvar("kill_hp", "10")
kill_hs = register_cvar("kill_hs_hp", "15")
max_hp = register_cvar("max_hp_add", "150")
}
public client_putinserver(id)
{
jumpnum[id] = 0
dojump[id] = false
}
public client_connect(id)
{
client_putinserver(id)
if(player_is_vip(id))
{
new name[33];
get_user_name(id, name, 33)
ColorChat(id, GREEN, "[VIP]^x03 VIP %s se connecteaza pe server !", name)
}
}
public client_disconnect(id)
{
client_putinserver(id)
new name[33];
get_user_name(id, name, 33)
ColorChat(id, GREEN, "[VIP]^x03 VIP %s a iesit de pe server !", name)
}
public vip_spawn(id)
{
if(get_user_team(id) == 1 && player_is_vip(id))
{
set_task(2.0, "spawn_te", id)
}
if(get_user_team(id) == 2 && player_is_vip(id))
{
set_task(2.0, "spawn_ct", id)
}
}
public spawn_te(id)
{
fm_set_user_armor(id, get_user_armor(id) + 100)
fm_set_user_health(id, 120)
fm_set_user_gravity(id, 700.0)
fm_set_user_maxspeed(id, 300.0)
set_user_footsteps(id, 0)
}
public spawn_ct(id)
{
fm_set_user_armor(id, get_user_armor(id) + 100)
fm_set_user_health(id, 120)
fm_set_user_gravity(id, 700.0)
fm_set_user_maxspeed(id, 300.0)
set_user_footsteps(id, 0)
}
public damage(id, iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
if(player_is_vip(id))
{
if(get_user_weapon(iAttacker) == CSW_AK47)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_AUG)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_AWP)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_DEAGLE)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_ELITE)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_FAMAS)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_FIVESEVEN)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_G3SG1)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_GALI)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_GLOCK18)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_HEGRENADE)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_KNIFE)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_M3)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_M4A1)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_M249)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_MAC10)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_MP5NAVY)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_P90)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_P228)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_SCOUT)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_SG550)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_SG552)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_TMP)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_UMP45)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
else if(get_user_weapon(iAttacker) == CSW_USP)
{
SetHamParamFloat(4, fDamage * 1.5);
return HAM_HANDLED;
}
}
return HAM_IGNORED;
}
public vip_scoreboard(const MsgId, const MsgType, const MsgDest)
{
static id;
id = get_msg_arg_int(1);
if(player_is_vip(id))
set_msg_arg_int(2, ARG_BYTE, (1 << 2 ));
}
public client_PreThink(id)
{
if(!is_user_alive(id)) return PLUGIN_CONTINUE
if(get_cvar_num("amx_mjadminonly") && (!access(id,player_is_vip(id)))) return PLUGIN_CONTINUE
new nbut = get_user_button(id)
new obut = get_user_oldbutton(id)
if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
{
if(jumpnum[id] < get_cvar_num("amx_maxjumps"))
{
dojump[id] = true
jumpnum[id]++
return PLUGIN_CONTINUE
}
}
if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
{
jumpnum[id] = 0
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
public client_PostThink(id)
{
if(!is_user_alive(id)) return PLUGIN_CONTINUE
if(get_cvar_num("amx_mjadminonly") && (!access(id,player_is_vip(id)))) return PLUGIN_CONTINUE
if(dojump[id] == true)
{
new Float:velocity[3]
entity_get_vector(id,EV_VEC_velocity,velocity)
velocity[2] = random_float(265.0,285.0)
entity_set_vector(id,EV_VEC_velocity,velocity)
dojump[id] = false
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
public hp_add(id)
{
nKiller = read_data(1)
if ( (read_data(3) == 1) && (read_data(5) == 0) )
{
nHp_add = get_pcvar_num (kill)
}
else
nHp_add = get_pcvar_num (kill_hs)
nHp_max = get_pcvar_num (max_hp)
if(!(get_user_flags(nKiller) & VIP_LEVEL))
return;
nKiller_hp = get_user_health(nKiller)
nKiller_hp += nHp_add
if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
set_user_health(nKiller, nKiller_hp)
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(0)
write_byte(0)
write_byte(200)
write_byte(75)
message_end()
}