View Single Post
Author Message
alexclaudiu2003
Senior Member
Join Date: Aug 2011
Location: Romania
Old 10-17-2015 , 15:32   Biohazard crow zombie
Reply With Quote #1

Hello,
This is crow zombie, flying all the time if you click on space.
it is possible to make it fall if zombie recives damage ?
PHP Code:
#include <amxmodx>
#include <biohazard>
#include <hamsandwich>
#include <fakemeta_util>
#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]
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)
 {
  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);
  }
 }
 return 
HAM_IGNORED
}
/*
Float:getillumination(id) {
 static Float:i ; i = float(engfunc(EngFunc_GetEntityIllum, id))
 if (i > 75.0) i = 75.0
 return (100.0 * xs_sqrt(i / 75.0));
}*/ 
alexclaudiu2003 is offline