Plugin-uri[ZP] Class: Islave

Moderatori: Moderators, Founder

Mesaj

Avatar utilizator
CEO
Posts
3802
Descriere: Cand apesi pe E ataci cu o raza ,raza respectiva scade hp la human.

Descarcare: LINK RESURSE!

Cod: Selectaţi tot

#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <zombie_plague_special>

#define ULTIMATESEARCHTIME 2
#define CHAINLIGHTNING_COOLDOWN 3.0
#define fm_get_user_button(%1) pev(%1, pev_button)

new const zclass_name[] = { "Islave Creature" }
new const zclass_info[] = { "[E]" }
new const zclass_model[] = { "islave" }
new const zclass_clawmodel[] = { "v_islave.mdl" }
const zclass_health = 5800 // 
const zclass_speed = 350 // 
const Float:zclass_gravity = 0.6 // 
const Float:zclass_knockback = 1.0 // 

new g_zclass_light
new bool:ultimateused[33]
new bool:issearching[33]
new bool:lightninghit[33]
new lightning

public plugin_init()
{
	register_plugin("Zombie Class islave", "1.0", "[Grief.QQ] , Bill=Thailand=[UP]")
	register_forward(FM_PlayerPreThink, 	"fwd_playerprethink")
	register_logevent("round_start", 2, "1=Round_Start")
	register_logevent("round_end", 2, "1=Round_End")
}

public plugin_precache()
{
	precache_sound("debris/beamstart9.wav")
	precache_sound("turret/tu_ping.wav")
	lightning = precache_model("sprites/lgtning.spr")
	g_zclass_light = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)	
}

public zp_user_infected_post(id, infector)
{
	if (zp_get_user_zombie(id) && zp_get_user_zombie_class(id) == g_zclass_light)
	{
		//client_print(id,print_chat,"[ZP] Press E to enemy,cooldown 5,damage 10HP !")
	}
}

public fwd_playerprethink(id) 
{
	new button = fm_get_user_button(id)
	new parm[2]
	parm[0]=id
	parm[1]=ULTIMATESEARCHTIME
	if((is_user_alive(id) == 1) && (button & IN_USE) && (zp_get_user_zombie(id) && zp_get_user_zombie_class(id) == g_zclass_light) && !ultimateused[id] && !issearching[id])
	lightsearchtarget(parm)

	return FMRES_IGNORED
}

public lightsearchtarget(parm[2])
{
	new id = parm[0]
	new enemy, body
	get_user_aiming(id,enemy,body)
	if ( 0<enemy<=32 && !zp_get_user_zombie(enemy))
	{
		ultimateused[id]=true
		new linewidth = 160
		new damage = 20
		issearching[id]=false
		lightningeffect(id,enemy,linewidth,damage,id)
		new lightparm[4]
		lightparm[0]=enemy
		lightparm[1]=damage
		lightparm[2]=linewidth
		lightparm[3]=id
		new cooldownparm[1]
		cooldownparm[0]=id
		set_task(CHAINLIGHTNING_COOLDOWN,"cooldown",5,cooldownparm,1)
	}
	else
	{
		issearching[id]=true
		new counter = parm[1]
		while (counter >= 0)
		{
			counter -= 30
			if (counter==0)
				emit_sound(id,CHAN_ITEM, "turret/tu_ping.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
		}
		--parm[1]
		if (parm[1]>0 && get_user_health(id)>=0)
			set_task(0.1,"lightsearchtarget",26,parm,2)
		else
			issearching[id]=false
	}
	return PLUGIN_CONTINUE
}

public lightningeffect(id,targetid,linewidth,damage,caster)
{

	new bool:targetdied
	new bool:targetdead
	lightninghit[targetid]=true
	targetdead=false

	if (is_user_alive(targetid))
		targetdead=false
	else
		targetdead=true

	if (get_user_health(targetid)-damage<=0)
		targetdied=true

	set_user_health(targetid,get_user_health(targetid)-damage)
	if (get_user_armor(targetid)-damage<=0)
		set_user_armor(targetid,0)
	else
		set_user_armor(targetid,get_user_armor(targetid)-damage)

	if (targetdied && !targetdead)
	{
		set_user_frags(caster, get_user_frags(caster)+1)
		set_user_frags(targetid, get_user_frags(targetid)+1)
	}

	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BEAMENTS );
	write_short(id);	// ????
	write_short(targetid);	// ????
	write_short(lightning );	// ????
	write_byte( 0 ); // starting frame
	write_byte( 20 );  // frame rate
	write_byte( 10 );  // life
	write_byte( linewidth );  // line width
	write_byte( 20 );  // ??
	write_byte( 0 );	// r, g, b
	write_byte( 255 );	// r, g, b
	write_byte( 0 );	// r, g, b
	write_byte( 120 );	// brightness
	write_byte( 0 );	// scroll speed
	message_end();

	new origin[3]
	get_user_origin(targetid,origin)

	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_ELIGHT );
	write_short(targetid);	// entity
	write_coord(origin[0])  // initial position
	write_coord(origin[1])  // initial position
	write_coord(origin[2])  // initial position
	write_coord(150)	  // radius
	write_byte( 255 );	// r, g, b
	write_byte( 255 );	// r, g, b
	write_byte( 255 );	// r, g, b
	write_byte( 120 );  // life
	write_coord(0)	// decay rate
	message_end();

	emit_sound(id,CHAN_ITEM, "debris/beamstart9.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

	return PLUGIN_CONTINUE
}

public cooldown(parm[1])
{
	ultimateused[parm[0]]=false
	return PLUGIN_CONTINUE
}

public client_connect(id)
{
	ultimateused[id]=false
	return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
	ultimateused[id]=false
	return PLUGIN_CONTINUE
}

public round_start(id)
{
	ultimateused[id]=false
}

public round_end(id)
{
	ultimateused[id]=false
}
Nume: [ZP] Class: Islave
Versiune: 1.0
Link oficial: -

Instalare:
1. Fisierul zombie_creature_islave.sma il puneti in addons/amxmodx/scripting
2. Fisierul zombie_creature_islave.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:

Cod: Selectaţi tot

zombie_creature_islave.amxx
4. Alti pasi necesari....

Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): -

Imagini: -
========================
CONTACT : diliulro@yahoo.com
========================
Scrie răspuns