Код:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#include <fun>
#define PLUGIN "VIP private"
#define VERSION "1.0"
#define AUTHOR "icq 551931"
#define VIP(%0) (get_user_flags(%0) & ADMIN_LEVEL_A)
#define alive(%0) (is_user_alive(%0))
#define m_iAccount 115
#define mn(%0) get_pdata_int(%0,m_iAccount,5)
#define set_money(%0,%1) set_pdata_int(%0,m_iAccount, mn(%0) %1)
#define m_LastHitGroup 75
#define IsHs(%0) ( get_pdata_int( %0, m_LastHitGroup , 5 ) == HIT_HEAD )
#define m_iHealth 359
#define Hp(%0) get_pdata_int( %0, m_iHealth, 5)
#define m_lastDamageAmount 334
#define real_dmg(%0) get_pdata_int(%0, m_lastDamageAmount, 5)
#define BP 246
#define dj(%0) ((get_pdata_int(%0, BP ) & IN_JUMP))
#define flags(%0) (pev(%0,pev_flags) & FL_ONGROUND)
new hp_head,hp_kill, gMsgMoney
new g_MsgSync1, g_MsgSync2
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn,"player","spawn1",1)
RegisterHam(Ham_Killed,"player","Killed",1)
RegisterHam(Ham_TakeDamage, "player", "damage1",1)
RegisterHam(Ham_Player_PreThink, "player", "fw_prethink")
hp_head = register_cvar("amx_heal_head","25")
hp_kill = register_cvar("amx_heal_kill","15")
gMsgMoney = get_user_msgid( "Money" )
register_message( get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib" )
g_MsgSync1 = CreateHudSyncObj()
g_MsgSync2 = CreateHudSyncObj()
}
public msgScoreAttrib(const MsgId, const MsgType, const MsgDest)
{
#define adm(%1) ( get_user_flags(%1) & ADMIN_LEVEL_A )
#define VIP_TAG (1<<2)
#define ARG_PLAYER_ID 1
#define ARG_SCOREBOARD_TAG 2
if( adm( get_msg_arg_int(ARG_PLAYER_ID) ) && !get_msg_arg_int(ARG_SCOREBOARD_TAG) )
set_msg_arg_int( ARG_SCOREBOARD_TAG, ARG_BYTE, VIP_TAG )
}
public spawn1(id)
{
if(!alive(id) || !VIP(id)) return HAM_IGNORED
set_pev(id,pev_health,130.0)
set_pev(id,pev_armorvalue,130.0)
return HAM_IGNORED
}
public Killed(vic,att)
{
if( !alive(att) || !VIP(att) ) return HAM_IGNORED
if(IsHs(vic))
{
set_pev( att, pev_health, float( min ( Hp(att) + get_pcvar_num(hp_head), 130 ) ) );
set_money(att, +600)
message_begin( MSG_ONE_UNRELIABLE, gMsgMoney, {0, 0, 0}, att );
write_long( mn(att) );
write_byte( 0 );
message_end();
}
set_pev( att, pev_health, float( min ( Hp(att) + get_pcvar_num(hp_kill), 130 ) ) );
return HAM_IGNORED
}
public damage1( vic, weapon, att, Float:damage, damagebits )
{
if(!alive(att) || !VIP(att)) return HAM_IGNORED
set_hudmessage(12, 12, 255, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(att, g_MsgSync1, "%d" , real_dmg(vic))
set_hudmessage(255, 10, 10, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(vic, g_MsgSync2, "%d" , real_dmg(att))
return HAM_IGNORED
}
new num[33]
public fw_prethink(id) {
if( !is_user_alive(id) || !VIP(id)) return HAM_IGNORED
if(flags(id)) num[id] = 0
if(dj(id) && num[id] < 2)
{
num[id]++
new Float:velocity[3]
entity_get_vector(id,EV_VEC_velocity,velocity)
velocity[2] = 285.0
entity_set_vector(id,EV_VEC_velocity,velocity)
}
return HAM_IGNORED
}