/*================================================================================
-----------------------------------
-*- [BB] Default Zombie Classes -*-
-----------------------------------
~~~~~~~~~~~~~~~
- Description -
~~~~~~~~~~~~~~~
This plugin adds the default zombie classes from Zombie Plague
into Base Builder. All credit belongs to MeRcyLeZZ.
All classes have been balanced, but feel free to edit them if
you are not satisfied.
================================================================================*/
#include <amxmodx>
#include <basebuilder>
#include <hamsandwich>
#include <fun>
#include <cstrike>
#include <engine>
/*================================================================================
[Plugin Customization]
=================================================================================*/
new jumpnum[33] = 0
new bool:dojump[33] = false
// Alap Zombie Attributes
new const zclass1_name[] = { "Alap Zombie" }
new const zclass1_info[] = { "Alap kepeseg" }
new const zclass1_model[] = { "bb_classic" }
new const zclass1_clawmodel[] = { "v_bloodyhands" }
const zclass1_health = 4000
const zclass1_speed = 260
const Float:zclass1_gravity = 1.0
const zclass1_adminflags = ADMIN_ALL
// Gyors Zombie Attributes
new const zclass2_name[] = { "Gyors Zombie" }
new const zclass2_info[] = { "Gyosran megy" }
new const zclass2_model[] = { "bb_fast" }
new const zclass2_clawmodel[] = { "v_bloodyhands" }
const zclass2_health = 2500
const zclass2_speed = 425
const Float:zclass2_gravity = 1.0
const zclass2_adminflags = ADMIN_ALL
// Ugro Zombie Attributes
new const zclass3_name[] = { "Ugro Zombie" }
new const zclass3_info[] = { "Nagyobb ugras" }
new const zclass3_model[] = { "bb_jumper" }
new const zclass3_clawmodel[] = { "v_bloodyhands" }
const zclass3_health = 2500
const zclass3_speed = 285
const Float:zclass3_gravity = 0.5
const zclass3_adminflags = ADMIN_ALL
// Tanker Zombie Attributes
new const zclass4_name[] = { "Tanker Zombie" }
new const zclass4_info[] = { "Sok hp" }
new const zclass4_model[] = { "bb_tanker" }
new const zclass4_clawmodel[] = { "v_bloodyhands" }
const zclass4_health = 6500
const zclass4_speed = 210
const Float:zclass4_gravity = 1.0
const zclass4_adminflags = ADMIN_ALL
#define TANK_ARMOR 200
//10 et ugró zombi
new const neve[] = {"10 Ugro"}
new const info[] = {"10 et tud ugrani"}
new const model[] = {"bb_classic"}
new const kes[] = {"v_bloodyhands"}
const elet = 2500
const seb = 250
const Float:grav = 1.0
const jog = ADMIN_ALL
/*============================================================================*/
new g_zclass_tanker
new g_zclass_ugro
// Zombie Classes MUST be registered on plugin_precache
public plugin_precache()
{
register_plugin("[BB] Default Zombie Classes", "6.5", "Tirant")
// Register all classes
bb_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, 0.0, zclass1_adminflags)
bb_register_zombie_class(zclass2_name, zclass2_info, zclass2_model, zclass2_clawmodel, zclass2_health, zclass2_speed, zclass2_gravity, 0.0, zclass2_adminflags)
bb_register_zombie_class(zclass3_name, zclass3_info, zclass3_model, zclass3_clawmodel, zclass3_health, zclass3_speed, zclass3_gravity, 0.0, zclass3_adminflags)
g_zclass_tanker = bb_register_zombie_class(zclass4_name, zclass4_info, zclass4_model, zclass4_clawmodel, zclass4_health, zclass4_speed, zclass4_gravity, 0.0, zclass4_adminflags)
g_zclass_ugro = bb_register_zombie_class(neve, info, model, kes, elet, seb, grav, 0.0, jog)
}
#if defined TANK_ARMOR
public plugin_init()
{
RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1)
}
public ham_PlayerSpawn_Post(id)
{
if (!is_user_alive(id))
return ;
if (bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_tanker)
{
give_item(id, "item_assaultsuit");
cs_set_user_armor(id, TANK_ARMOR, CS_ARMOR_VESTHELM);
}
}
#endif
public client_PreThink(id)
{
if (bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_ugro)
{
if(!is_user_alive(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] < 9)
{
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 (bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_ugro)
{
if(!is_user_alive(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 client_putinserver(id)
{
jumpnum[id] = 0
dojump[id] = false
}
public client_disconnect(id)
{
jumpnum[id] = 0
dojump[id] = false
}