View Single Post
SkumTomteN
Veteran Member
Join Date: Oct 2013
Location: Asgard
Old 10-22-2015 , 11:38   Re: Biohazard crow zombie
Reply With Quote #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_speedg_smokecvar_minillumcvar_damagecvar_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_NAMED_ZOMBIE_DESC)
    if(
g_class != -1)
    {
        
set_class_data(g_classDATA_HEALTH333.0)
        
set_class_data(g_classDATA_SPEED280.0)
        
set_class_data(g_classDATA_GRAVITY0.8)
        
set_class_data(g_classDATA_REGENDLY0.3)
        
set_class_pmodel(g_classD_PLAYER_MODEL)
        
set_class_wmodel(g_classD_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(idworld) {
    
    if(!
is_user_alive(id) || g_class != get_user_class(id))
        return 
HAM_IGNORED
    
    
new classname[STR_T]
    
pev(worldpev_classnameclassname, (STR_T-1))
    
    if(
equal(classname"worldspawn") || equal(classname"func_wall") || equal(classname"func_breakable"))
        
pev(idpev_origing_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(idpev_light_leveltest
    
    
// Player has not our zombie class
    
if(g_class != get_user_class(id)) {
        return 
HAM_IGNORED
    
}
    static 
Float:origin[3]
    
pev(idpev_originorigin)
    
    if (
get_gametime() > g_nextdmg[id]) {
        static 
Float:lightlevelpev(id,pev_light_levellightlevel)
        
        if (
lightlevel get_pcvar_float(cvar_minillum)) { 
            
fm_fakedamage(id"light"get_pcvar_float(cvar_damage), DMG_BURN)
            
            
// do some smokes
            
message_beginMSG_BROADCASTSVC_TEMPENTITY )
            
write_byteTE_SMOKE )
            
engfunc(EngFunc_WriteCoordorigin] )
            
engfunc(EngFunc_WriteCoordorigin] )
            
engfunc(EngFunc_WriteCoordorigin] )
            
write_shortg_smoke )
            
write_byte20 )
            
write_byte10 )
            
message_end()
            
g_nextdmg[id] = get_gametime() + 1.0
        
}
    }
    
    
// from Cheap_Suit's  Upgrades Mod eXtended
    
static button button pev(idpev_button)
    if(
button IN_JUMP && !g_bCantFly[id])
    {
        static 
Float:velocity[3]
        
velocity_by_aim(idget_pcvar_num(cvar_speed), velocity)
        
fm_set_user_velocity(idvelocity)
    } 
    
    
    return 
HAM_IGNORED
}
public 
event_infect(victimattacker) {
    
g_nextdmg[victim] = 0.0
    g_shoottime
[victim] = 0.0 
}
public 
cheese_takedamage(victiminflictorattackerFloat:damagedamagetype)
{
    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(idg_bCantFly[id] = false
__________________
Contact: Steam
Videos: Youtube

Last edited by SkumTomteN; 10-22-2015 at 11:38.
SkumTomteN is offline