Raised This Month: $ Target: $400
 0% 

cooldown problem


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
alexclaudiu2003
Senior Member
Join Date: Aug 2011
Location: Romania
Old 01-12-2016 , 10:38   cooldown problem
Reply With Quote #1

after three or four rounds the cooldown energy don't respect time, spitting at second

PHP Code:
#include <amxmodx>
#include <zombie_plague_advance>
#include <fakemeta>
#include <engine>
#include <fun>
#include <hamsandwich>
/*                      L4D Spitt Zombie
    by x[L]eoNNN
 
 #Description :
 
  this is a Zombie Class of Famous Game, "L4d" with the ability to throw spitts at enemies,
  either killing him, infecting taking life, etc. (controlled by a cvar)
 
 #Cvars :
 
  zp_Spitt_spittspeed 700 // spitt Speed Launched by Spitt
  zp_Spitt_spittdamage 70 // damage done by the spitt
  zp_Spitt_spittreward 1 // Ammo Pack's Reward by touching the enemy with the spitt
  zp_Spitt_spittmode 1 // spitt Mode :
     1 = Take Damage
     2 = Killing
     3 = Infect
     4 = Bad Aim
  zp_Spitt_spitt_energynesesary 20 // energy nesesary to launch a spitt
 #Changelog :
 
  v1.0: public release
  v1.1: print messages changed to hudmessages (for spam), fix time reload bug,add effect touching spitt
  v1.2: fix a survivor bugs', To break an entity "func_breakable" when the spitt touches the entity, 
        fix a problem with logs : native error : get_user_origin.
*/
new const zclass_name[] = { "Spitter" 
new const 
zclass_info[] = { "Acid Spit" 
new const 
zclass_model[] = { "SpitterL4D2" 
new const 
zclass_clawmodel[] = { "v_Spitter_manos.mdl" 
const 
zclass_health 8500 
const zclass_speed 250
const Float:zclass_gravity 1.0 
const Float:zclass_knockback 1.0  
new g_spitter
new g_trailSpritespittmodel
new g_trail[] = "sprites/xbeam3.spr"
new spitt_model[] = "models/spit.mdl"
new spitt_model2[] = "models/spit.mdl"
new Spitt_spittlaunch[] = "zombie_plague/spitter_vomit1.wav"

new g_power[33]
new 
cvar_spitt_damagecvar_spitt_rewardcvar_spittmodecvar_spittEnergyNesesarycvar_spitt_speedcvar_reloadpower
public plugin_init()
{
 
register_plugin("[ZP] Zombie Class: Spitter""1.2""x[L]eoNNN"
 
 
cvar_spitt_speed register_cvar("zp_Spitt_spittspeed""1400")
 
cvar_spitt_damage register_cvar("zp_Spitt_spittdamage""20")
 
cvar_spitt_reward register_cvar("zp_Spitt_spittreward""1")
 
cvar_spittmode register_cvar("zp_Spitt_spittmode""4")
 
cvar_spittEnergyNesesary register_cvar("zp_Spitt_spitt_energynesesary""15")
 
cvar_reloadpower register_cvar("zp_Spitt_reload_power""1")
 
register_touch("spitt_ent","*","spittTouch")
 
register_forward(FM_CmdStart"CmdStart" )

public 
plugin_precache()
{
 
g_spitter zp_register_zombie_class(zclass_namezclass_infozclass_modelzclass_clawmodelzclass_healthzclass_speedzclass_gravityzclass_knockback
 
g_trailSprite precache_model(g_trail)
 
spittmodel precache_model(spitt_model)
 
precache_sound(Spitt_spittlaunch)
}
 
public 
zp_user_infected_post idinfector )
{
             if (
zp_get_user_zombie_class(id) == g_spitter)
             {
  
print_chatColor(id"\g[ZP]\n You Are A \gSpitter\n, You Cant spitt acid \tIN_USE [+E]"
  
g_power[id] = get_pcvar_num(cvar_spittEnergyNesesary)
  
set_task(get_pcvar_float(cvar_reloadpower), "power1"id__"b")
             }
}  
public 
CmdStart( const id, const uc_handlerandom_seed )
{
 if(!
is_user_alive(id))
  return 
FMRES_IGNORED;
 
 if(!
zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_assassin(id))
  return 
FMRES_IGNORED;
  
 new 
button pev(idpev_button)
 new 
oldbutton pev(idpev_oldbuttons)
 
 if (
zp_get_user_zombie(id) && (zp_get_user_zombie_class(id) == g_spitter))
  if(
oldbutton IN_USE && !(button IN_USE))
  {
   if(
g_power[id] >= get_pcvar_num(cvar_spittEnergyNesesary))
   {
    
Makespitt(id)
    
emit_sound(idCHAN_STREAMSpitt_spittlaunchVOL_NORMATTN_NORM0PITCH_NORM)
    
g_power[id] = 0
   
}
   else
   {
    
set_hudmessage(255000.00.606.03.0)
    
show_hudmessage(id"[ZP] Energy Nesesary To spitt [%d] || You Energy [%d]"get_pcvar_num(cvar_spittEnergyNesesary), g_power[id])
   }
   
  }
   
 return 
FMRES_IGNORED
}
public 
power1(id)
{
 
g_power[id] += 1
 
 
if( g_power[id] > get_pcvar_num(cvar_spittEnergyNesesary) )
 {
  
g_power[id] = get_pcvar_num(cvar_spittEnergyNesesary)
 }
}
public 
spittTouchspittEntTouched )
{
 if ( !
pev_valid spittEnt ) )
  return
  
 static Class[ 
32 ]
 
entity_get_stringTouchedEV_SZ_classname, Class, charsmax( Class ) )
 new 
Float:origin[3]
  
 
pev(Touched,pev_origin,origin)
 
 if( 
equal( Class, "player" ) )
  if (
is_user_alive(Touched))
  {
   if(!
zp_get_user_zombie(Touched))
   {
    new 
SpittKiller entity_get_edictspittEntEV_ENT_owner )
    
    switch(
get_pcvar_num(cvar_spittmode))
    {
     case 
1// Health
     
{
      new 
iHealth get_user_health(Touched)
      if( 
iHealth >= && iHealth <= get_pcvar_num(cvar_spitt_damage))
      {
       
ExecuteHamBHam_KilledTouchedSpittKiller)
       
print_chatColor(SpittKiller"\g[ZP]\n You Receive \t%d\n Ammo Packs"get_pcvar_num(cvar_spitt_reward))
       
zp_set_user_ammo_packs(SpittKillerzp_get_user_ammo_packs(SpittKiller) + get_pcvar_num(cvar_spitt_reward))
      }
      else
      {
       
set_user_health(Touchedget_user_health(Touched) - get_pcvar_num(cvar_spitt_damage))
       
print_chatColor(SpittKiller"\g[ZP]\n You Receive \t%d\n Ammo Packs"get_pcvar_num(cvar_spitt_reward))
       
zp_set_user_ammo_packs(SpittKillerzp_get_user_ammo_packs(SpittKiller) + get_pcvar_num(cvar_spitt_reward))
      }
     }
     case 
2// Kill
     
{
      if(
zp_get_user_survivor(Touched))
       return
        
      
ExecuteHamBHam_KilledTouchedSpittKiller)
      
zp_set_user_ammo_packs(SpittKillerzp_get_user_ammo_packs(SpittKiller) + get_pcvar_num(cvar_spitt_reward))
      
print_chatColor(SpittKiller"\g[ZP]\n You Receive \t%d\n Ammo"get_pcvar_num(cvar_spitt_reward))
     }
     case 
3//infect
     
{
      if(
zp_get_user_survivor(Touched))
       return
       
      
zp_infect_user(TouchedSpittKiller11)
      
print_chatColor(SpittKiller"\g[ZP]\n You Receive \t%d\n Ammo Packs"get_pcvar_num(cvar_spitt_reward))
      
zp_set_user_ammo_packs(SpittKillerzp_get_user_ammo_packs(SpittKiller) + get_pcvar_num(cvar_spitt_reward))
     }
     case 
4//BadAim
     
{
      new 
Float:vec[3] = {100.0,100.0,100.0}
      
      
entity_set_vector(Touched,EV_VEC_punchangle,vec)  
      
entity_set_vector(Touched,EV_VEC_punchangle,vec)
      
entity_set_vector(Touched,EV_VEC_punchangle,vec
      
      
print_chatColor(SpittKiller"\g[ZP]\n You Receive \t%d\n Ammo Packs"get_pcvar_num(cvar_spitt_reward))
      
zp_set_user_ammo_packs(SpittKillerzp_get_user_ammo_packs(SpittKiller) + get_pcvar_num(cvar_spitt_reward))
      
set_task(1.50"EndVictimAim"Touched)
     }
    }
   }
  }
  
 if(
equal(Class, "func_breakable") && entity_get_int(TouchedEV_INT_solid) != SOLID_NOT)
  
force_use(spittEntTouched)
  
 
remove_entity(spittEnt)
 
 if(!
is_user_alive(Touched))
  return
  
 static 
origin1[3]
 
get_user_origin(Touchedorigin1)
 
 
message_begin(MSG_BROADCAST,SVC_TEMPENTITYorigin1);
 
write_byte(TE_BREAKMODEL); 
 
write_coord(origin1[0]);  
 
write_coord(origin1[1]);
 
write_coord(origin1[2] + 24); 
 
write_coord(16); 
 
write_coord(16); 
 
write_coord(16); 
 
write_coord(random_num(-50,50)); 
 
write_coord(random_num(-50,50)); 
 
write_coord(25);
 
write_byte(10); 
 
write_short(spittmodel); 
 
write_byte(10); 
 
write_byte(25);
 
write_byte(0x01); 
 
message_end();
}
public 
EndVictimAim(Touched)
{
 new 
Float:vec[3] = {-100.0,-100.0,-100.0}
 
entity_set_vector(Touched,EV_VEC_punchangle,vec)  
 
entity_set_vector(Touched,EV_VEC_punchangle,vec)
 
entity_set_vector(Touched,EV_VEC_punchangle,vec)
}
public 
Makespitt(id)
{
   
 new 
Float:Origin[3]
 new 
Float:Velocity[3]
 new 
Float:vAngle[3]
 new 
spittSpeed get_pcvar_num(cvar_spitt_speed)
 
entity_get_vector(idEV_VEC_origin Origin)
 
entity_get_vector(idEV_VEC_v_anglevAngle)
 new 
NewEnt create_entity("info_target")
 
entity_set_string(NewEntEV_SZ_classname"spitt_ent")
 
entity_set_model(NewEntspitt_model2)
 
entity_set_size(NewEntFloat:{-1.5, -1.5, -1.5}, Float:{1.51.51.5})
 
entity_set_origin(NewEntOrigin)
 
entity_set_vector(NewEntEV_VEC_anglesvAngle)
 
entity_set_int(NewEntEV_INT_solid2)
 
entity_set_int(NewEntEV_INT_rendermode5)
 
entity_set_float(NewEntEV_FL_renderamt200.0)
 
entity_set_float(NewEntEV_FL_scale1.00)
 
entity_set_int(NewEntEV_INT_movetype5)
 
entity_set_edict(NewEntEV_ENT_ownerid)
 
velocity_by_aim(idspittSpeed  Velocity)
 
entity_set_vector(NewEntEV_VEC_velocity ,Velocity)
 
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
 
write_byte(TE_BEAMFOLLOW
 
write_short(NewEnt
 
write_short(g_trailSprite
 
write_byte(10
 
write_byte(10
 
write_byte(255
 
write_byte(0
 
write_byte(0
 
write_byte(200
 
message_end()
 
 return 
PLUGIN_HANDLED
}
stock print_chatColor(const id,const input[], any:...)
{
 new 
msg[191], players[32], count 1;
 
vformat(msg,190,input,3);
 
replace_all(msg,190,"\g","^4");// green
 
replace_all(msg,190,"\n","^1");// normal
 
replace_all(msg,190,"\t","^3");// team
 
 
if (idplayers[0] = id; else get_players(players,count,"ch");
 for (new 
i=0;i<count;i++)
 if (
is_user_connected(players[i]))
 {
  
message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("SayText"),_,players[i]);
  
write_byte(players[i]);
  
write_string(msg);
  
message_end();
 }

alexclaudiu2003 is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 09:30.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode