Veteran Member
Join Date: Oct 2013
Location: Asgard
|
10-22-2015
, 11:38
Re: Biohazard crow zombie
|
#10
|
Try this, Cant compile since i dont have biohazard, but it should work fine.
Use DISABLE_TIME to control how long its gonna be deactivated.
PHP Code:
#include <amxmodx> #include <biohazard> #include <hamsandwich> #include <fakemeta_util>
#define DISABLE_TIME 2.0 #define STR_T 32 #define MAX_PLAYERS 32 #define D_ZOMBIE_NAME "Witch (Zboara)" #define D_ZOMBIE_DESC "Jump+Mouse" #define D_PLAYER_MODEL "models/alex/babayaga/babayaga.mdl" #define D_CLAWS "models/3.mdl"
new g_class new cvar_speed, g_smoke, cvar_minillum, cvar_damage, cvar_delay
new Float:g_wallorigin[33][3] new Float:g_nextdmg[33] new Float:g_shoottime[33] new bool:g_bCantFly[33]
public plugin_init() { register_plugin("bio_crowzombie","1.2b","bipbip") is_biomod_active() ? plugin_init2() : pause("ad") } public plugin_precache() { precache_model(D_PLAYER_MODEL) precache_model(D_CLAWS) g_smoke = precache_model( "sprites/steam1.spr" ) }
public plugin_init2() { g_class = register_class(D_ZOMBIE_NAME, D_ZOMBIE_DESC) if(g_class != -1) { set_class_data(g_class, DATA_HEALTH, 333.0) set_class_data(g_class, DATA_SPEED, 280.0) set_class_data(g_class, DATA_GRAVITY, 0.8) set_class_data(g_class, DATA_REGENDLY, 0.3) set_class_pmodel(g_class, D_PLAYER_MODEL) set_class_wmodel(g_class, D_CLAWS) } cvar_speed = register_cvar("bh_zm_climbingspeed", "220") cvar_minillum = register_cvar("bh_zm_minlight", "300") cvar_damage = register_cvar("bh_zm_lightdamage", "0") cvar_delay = register_cvar("bh_zm_climbdelay", "0") RegisterHam(Ham_Touch, "player", "cheese_player_touch", 1) RegisterHam(Ham_Player_PreThink, "player", "cheese_player_prethink", 1) RegisterHam(Ham_TakeDamage, "player", "cheese_takedamage", 1) }
public cheese_player_touch(id, world) { if(!is_user_alive(id) || g_class != get_user_class(id)) return HAM_IGNORED new classname[STR_T] pev(world, pev_classname, classname, (STR_T-1)) if(equal(classname, "worldspawn") || equal(classname, "func_wall") || equal(classname, "func_breakable")) pev(id, pev_origin, g_wallorigin[id]) return HAM_IGNORED } public cheese_player_prethink(id) { // Player not alive or not zombie if(!is_user_alive(id) || !is_user_zombie(id)) { return HAM_IGNORED } static Float:test ; pev(id, pev_light_level, test) // Player has not our zombie class if(g_class != get_user_class(id)) { return HAM_IGNORED } static Float:origin[3] pev(id, pev_origin, origin) if (get_gametime() > g_nextdmg[id]) { static Float:lightlevel; pev(id,pev_light_level, lightlevel) if (lightlevel > get_pcvar_float(cvar_minillum)) { fm_fakedamage(id, "light", get_pcvar_float(cvar_damage), DMG_BURN) // do some smokes message_begin( MSG_BROADCAST, SVC_TEMPENTITY ) write_byte( TE_SMOKE ) engfunc(EngFunc_WriteCoord, origin[ 0 ] ) engfunc(EngFunc_WriteCoord, origin[ 1 ] ) engfunc(EngFunc_WriteCoord, origin[ 2 ] ) write_short( g_smoke ) write_byte( 20 ) write_byte( 10 ) message_end() g_nextdmg[id] = get_gametime() + 1.0 } } // from Cheap_Suit's Upgrades Mod eXtended static button ; button = pev(id, pev_button) if(button & IN_JUMP && !g_bCantFly[id]) { static Float:velocity[3] velocity_by_aim(id, get_pcvar_num(cvar_speed), velocity) fm_set_user_velocity(id, velocity) } return HAM_IGNORED } public event_infect(victim, attacker) { g_nextdmg[victim] = 0.0 g_shoottime[victim] = 0.0 } public cheese_takedamage(victim, inflictor, attacker, Float:damage, damagetype) { if (is_user_alive(victim)) { if (g_class == get_user_class(victim)) { g_shoottime[victim] = get_gametime() + get_pcvar_float(cvar_delay); g_bCantFly[victim] = true; set_task(DISABLE_TIME, "Reset", victim) } } return HAM_IGNORED } public Reset(id) g_bCantFly[id] = false;
__________________
Last edited by SkumTomteN; 10-22-2015 at 11:38.
|
|