Plugin-uri[ZP] Class: Trapper

Moderatori: Moderators, Founder

Mesaj

Avatar utilizator
CEO
Posts
3802
Descriere: Cand apesi pe G pui o capcana pe jos unde human raman blocati

Descarcare: LINK RESURSE!

Cod: Selectaţi tot

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

new const zclass_name[] = "Trapper Creature"
new const zclass_info[] = "[G]"
new const zclass_model[] = "zombieLV5"
new const zclass_clawmodel[] = "v_knifeLV5.mdl"
const zclass_health = 4400
const zclass_speed = 210
const Float:zclass_gravity = 0.8
const Float:zclass_knockback = 1.0

// Main Trap Vars
new g_zquark
new bool:can_make_trap[33]
new bool:player_trapped[33]

new const trap_string[] = "trap"
new const trap_model[] = "models/zombie_plague/zombie_capcana.mdl"

new cvar_cooldown
new cvar_trap_hp
new cvar_trap_time

public plugin_init()
{
register_plugin("[ZP] Zombie Class: Quark", "1.2", "Dias")
register_clcmd("drop", "use_skill")
register_logevent("event_roundend", 2, "1=Round_End")
register_touch(trap_string, "*", "fw_touch")
register_forward(FM_PlayerPreThink, "fw_think", 0);

cvar_register()
}

public cvar_register()
{
cvar_cooldown = register_cvar("qz_cooldown", "20")
cvar_trap_time = register_cvar("qz_trap_time", "25")
cvar_trap_hp = register_cvar("qz_trap_hp", "1500")
}

public plugin_precache()
{
g_zquark = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)	
precache_model(trap_model)
}

public event_roundend(id)
{
can_make_trap[id] = false
player_trapped[id] = false
	
remove_entity_name(trap_string)
}

public zp_user_infected_post(victim, attacker)
{
if(zp_get_user_zombie_class(victim) == g_zquark)
{
can_make_trap[victim] = true
}
if(player_trapped[victim] == true)
{
player_trapped[victim] = false
remove_entity_name(trap_string)
remove_task(victim)
}
}

public use_skill(id)
{
if(is_user_alive(id) && zp_get_user_zombie(id) && zp_get_user_zombie_class(id) == g_zquark)
{
if(can_make_trap[id])
{
create_trap(id)
}
}
}

public create_trap(id)
{
new Float:Origin[3]
entity_get_vector(id, EV_VEC_origin, Origin)
	
Origin[2] -= 35.0
	
new trap = create_entity("info_target")
entity_set_vector(trap, EV_VEC_origin, Origin)
//Origin[2] += 70.0
//entity_set_vector(id, EV_VEC_origin, Origin)
	
entity_set_float(trap, EV_FL_takedamage, 1.0)
entity_set_float(trap, EV_FL_health, get_pcvar_float(cvar_trap_hp))
	
entity_set_string(trap, EV_SZ_classname, trap_string)
entity_set_model(trap, trap_model)	
entity_set_int(trap, EV_INT_solid, 1)
	
entity_set_byte(trap,EV_BYTE_controller1,125);
entity_set_byte(trap,EV_BYTE_controller2,125);
entity_set_byte(trap,EV_BYTE_controller3,125);
entity_set_byte(trap,EV_BYTE_controller4,125);
	
new Float:size_max[3] = {5.0,5.0,5.0}
new Float:size_min[3] = {-5.0,-5.0,-5.0}
entity_set_size(trap, size_min, size_max)

entity_set_float(trap, EV_FL_animtime, 2.0)
entity_set_float(trap, EV_FL_framerate, 1.0)
entity_set_int(trap, EV_INT_sequence, 0)
	
drop_to_floor(trap)
	
can_make_trap[id] = false
set_task(get_pcvar_float(cvar_cooldown), "reset_cooldown", id)
}

public reset_cooldown(id)
{
if(is_user_alive(id) && zp_get_user_zombie(id) && zp_get_user_zombie_class(id) == g_zquark)
{
if(can_make_trap[id] == false)
{
can_make_trap[id] = true
}
}	
}

public fw_touch(trap, id)
{
if(!pev_valid(trap))
return	
	
if(is_user_alive(id) && !zp_get_user_zombie(id))
{
new ent = find_ent_by_class(0, trap_string)
entity_set_int(ent, EV_INT_sequence, 1)
		
player_trapped[id] = true
set_task(get_pcvar_float(cvar_trap_time), "remove_trap", id)
}
}

public remove_trap(id) 
{ 
if(is_user_alive(id)) 
{ 
set_user_maxspeed(id, -1.0) 
set_user_gravity(id, 1.0) 
player_trapped[id] = false 

new ent = find_ent_by_class(0, trap_string) 

remove_entity(ent) 
remove_task(id)  
} 
} 

public spawn_post(id)
{
if(is_user_alive(id))
{
player_trapped[id] = false

}
}  

public fw_think(id)
{
if(is_user_alive(id) && player_trapped[id] == true)
{
set_user_maxspeed(id, 0.1)
set_user_gravity(id, 10000.0)
}
}
Nume: [ZP] Class: Trapper
Versiune: 1.0
Link oficial: -

Instalare:
1. Fisierul zombie_creature_trapper.sma il puneti in addons/amxmodx/scripting
2. Fisierul zombie_creature_trapper.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_trapper.amxx
4. Alti pasi necesari....

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

Cod: Selectaţi tot

cvar_cooldown = register_cvar("qz_cooldown", "20")
cvar_trap_time = register_cvar("qz_trap_time", "25")
cvar_trap_hp = register_cvar("qz_trap_hp", "1500")
Imagini: -
========================
CONTACT : diliulro@yahoo.com
========================
Scrie răspuns