Page 1 of 1

Cerere plugin VIP Clasic perfect

Posted: 01 May 2019, 06:43
by sDs!?
Plugin Cerut: VIP Clasic
Descriere (adica ce face el mai exact): am conceput un plan de plugin pentru serverele clasice si am ajuns la un rezultat
Serverul ruleaza (HLDS/ReHLDS): rehlds
Versiune AMX Mod X: 1.8.3
Modul Serverului: clasic

Jucătorul cu acces VIP să primească din prima rundă a jocului:
  • deagle & pachet grenade
  • 700 gravitație
  • +100 unități viteză la toate armele, inclusiv he și knife
  • +5 hp pe kill + 500$ (de preferat să nu depășească 100 hp)
  • +7 hp pe hs + 750$ (de preferat să nu depășească 100 hp)
  • defuse kit la CT
  • să înceapă jocul(prima rundă) cu 1500$
  • pagubele produse de arme să fie amplificate cu 30 dmg.
Dacă se poate beneficiile să i se atribuie la 10 secunde de la începerea rundei și să aibă un mesaj specific ca de exemplu

Code: Select all

VIP - Salut „nume jucator”,  beneficiile VIP ti-au fost atribuite cu succes !
Flag vip: t

Re: Cerere plugin VIP Clasic perfect

Posted: 01 May 2019, 13:08
by levin

Code: Select all

#include <amxmodx>
#include <cstrike>
#include <engine>
#include <hamsandwich>
#include <fun>

#define HAM_KILLED 0	//0-event\1-ham

#pragma tabsize 0

#define VIP_ACCESS	"t"
#define is_vip(%1)	(get_user_flags(%1)&read_flags(VIP_ACCESS))

new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame
#define SPEED 100.0
new Float:gWeaponSpeed[] = {
    0.0,//null
    250.0,    // CSW_P228
    0.0,//c4?
    260.0,    // CSW_SCOUT
    250.0,    // CSW_HEGRENADE
    240.0,    // CSW_XM1014
    250.0,    // CSW_C4
    250.0,    // CSW_MAC10
    240.0,    // CSW_AUG
    250.0,    // CSW_SMOKEGRENADE
    250.0,    // CSW_ELITE
    250.0,    // CSW_FIVESEVEN
    250.0,    // CSW_UMP45
    210.0,    // CSW_SG550
    240.0,    // CSW_GALI
    240.0,    // CSW_FAMAS
    250.0,    // CSW_USP
    250.0,    // CSW_GLOCK18
    210.0,    // CSW_AWP
    250.0,    // CSW_MP5NAVY
    220.0,    // CSW_M249
    230.0,    // CSW_M3
    230.0,    // CSW_M4A1
    250.0,    // CSW_TMP
    210.0,    // CSW_G3SG1
    250.0,    // CSW_FLASHBANG
    250.0,    // CSW_DEAGLE
    235.0,    // CSW_SG552
    221.0,    // CSW_AK47
    250.0,    // CSW_KNIFE
    245.0    // CSW_P90
};
//=> 350.0

public plugin_init()
{
	RegisterHam(Ham_Spawn, "player", "PlayerPostSpawn", 1);
	#if HAM_KILLED == 1
	RegisterHam(Ham_Killed, "player", "Player_Death", 1)
	#else
	register_event("DeathMsg", "Player_Death", "a");
	#endif
	RegisterHam(Ham_Player_ResetMaxSpeed,"player","playerResetMaxSpeed", 1)//curw/think(ham/eng),norm	+	engfunc(EngFunc_SetClientMaxspeed,id,SPEED)
	RegisterHam(Ham_TakeDamage, "player", "Player_Hurt")
}

public playerResetMaxSpeed(id)
{
	if(!is_user_alive(id)||!is_vip(id))	return HAM_IGNORED
	new weapon = get_user_weapon(id)
	set_user_maxspeed(id, gWeaponSpeed[weapon]+SPEED)//pev classname&speed
	return HAM_SUPERCEDE
}
public PlayerPostSpawn(id)	if(is_user_alive(id)&&is_vip(id))	set_task(10.0,"ITEME",id)
public ITEME(id)
{
	if(!is_user_alive(id))	return
	
	give_item(id,"weapon_deagle")
	give_item(id,"weapon_hegrenade")
	give_item(id,"weapon_smokegrenade")
	give_item(id,"weapon_flashbang")
	give_item(id,"weapon_flashbang")
	cs_set_user_bpammo(id,CSW_DEAGLE,35)
	set_user_gravity(id,700.0/get_cvar_float("sv_gravity"))
	cs_set_user_money(id,1500,1)
	if(get_user_team(id)==2)	give_item(id,"item_thighpack")
	
	new name[32]
	get_user_name(id,name,charsmax(name))
	client_print(id,print_chat,"VIP - Salut %s,  beneficiile VIP ti-au fost atribuite cu succes !",name)
}

public Player_Hurt(victim, inflictor, attacker, Float:dmg, dmgbits) {
    if ( !is_user_alive(attacker)||attacker==victim ) 
        return HAM_IGNORED; 
     
    if ( is_vip(attacker) ) 
    { 
        SetHamParamFloat(4, dmg * 30.0) 
        return HAM_HANDLED; 
    } 
     
    return HAM_IGNORED; 
}

#if HAM_KILLED == 1
public Player_Death(victim, attacker, shouldgib)
#else
public Player_Death()
#endif
{
#if HAM_KILLED == 0
	static attacker; attacker = read_data( 1 );
	static victim; victim = read_data( 2 );
	static hs; hs=read_data(3)
#endif
	if(!is_user_alive(attacker)||attacker==victim)
	{
	#if HAM_KILLED == 1
		return HAM_IGNORED
		#else
		return
	#endif
	}
	
	if(is_vip(attacker))
	{
		#if HAM_KILLED == 1
		if(shouldgib==2)//hitzones	/	get_pdata_int(victim, 75, 5) == HIT_HEAD
		#else
		if(hs)
		#endif
		{
			set_user_health(attacker,min(100,get_user_health(attacker)+7))
			cs_set_user_money(attacker,cs_get_user_money(attacker)+750,1)
		}
		else
		{
			set_user_health(attacker,min(100,get_user_health(attacker)+5))
			cs_set_user_money(attacker,cs_get_user_money(attacker)+500,1)
		}
	}
	
#if HAM_KILLED == 1
	return HAM_IGNORED
#endif
}