Zplague
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Zplague Entrar

Seu portal de Zombie Plague no Brasil


description[Erro de compilação] [Alguém ajuda] Empty[Erro de compilação] [Alguém ajuda]

more_horiz
Hola vim portal aqui um erro que esta ocorrendo um certo erro de compilação nesse plugin aqui e queria saber se algum de vocês poderia arrumar ele para mim...

[Erro de compilação] [Alguém ajuda] Sepm

Código:

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <zmvip>
#include <hamsandwich>
#include <zombieplague>
#include <cstrike>

new const fire_classname[] = "fire_salamander"
new const fire_spr_name[] = "sprites/fire_salamander.spr"

new const v_model[] = "models/zombie_plague/v_salamander.mdl"
new const p_model[] = "models/zombie_plague/p_salamander.mdl"
new const w_model[] = "models/zombie_plague/w_salamander.mdl"

new const fire_sound[] = "weapons/flamegun-2.wav"

// HARD CODE
#define CSW_SALAMANDER CSW_M249
#define PEV_ENT_TIME pev_fuser1
#define TASK_FIRE 3123123
#define TASK_RELOAD 2342342
new g_had_salamander[33], bool:is_firing[33], bool:is_reloading[33], Float:g_last_fire[33],
bool:can_fire[33], g_reload_ammo[33], g_ammo[33]

enum
{
   IDLE_ANIM = 0,
   DRAW_ANIM = 4,
   RELOAD_ANIM = 3,
   SHOOT_ANIM = 1,
   SHOOT_END_ANIM = 2
}

new g_salamander
new cvar_dmgrd_start, cvar_dmgrd_end, cvar_fire_delay, cvar_max_clip

public plugin_init()
{
   register_plugin("*VIP* Extra Item: Salamander", "1.0", "Dias")
   
   register_event("CurWeapon", "event_curweapon", "be", "1=1")
   register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
   RegisterHam(Ham_Spawn, "player", "fw_spawn", 1)
   RegisterHam(Ham_Weapon_Reload, "weapon_m249", "fw_weapon_reload", 1)
   RegisterHam(Ham_Item_Deploy, "weapon_m249", "fw_weapon_deploy", 1)
   RegisterHam(Ham_Item_PostFrame, "weapon_m249", "fw_item_postframe", 1)
   RegisterHam(Ham_Item_AddToPlayer, "weapon_m249", "fw_item_addtoplayer", 1)
   register_forward(FM_CmdStart, "fw_cmdstart")
   register_touch(fire_classname, "*", "fw_touch")
   register_think(fire_classname, "fw_think")
   register_forward(FM_SetModel, "fw_SetModel")
   
   register_clcmd("lastinv", "check_lastinv")
   
   g_salamander = zv_register_extra_item("Salamander", 30, ZV_TEAM_HUMAN)
   
   cvar_dmgrd_start = register_cvar("zp_salamander_dmgrandom_start", "65.0")
   cvar_dmgrd_end = register_cvar("zp_salamander_dmgrandom_end", "90.0")
   cvar_fire_delay = register_cvar("zp_salamander_fire_delay", "0.1")
   cvar_max_clip = register_cvar("zp_salamander_max_clip", "100")
}

public plugin_precache()
{
   precache_model(v_model)
   precache_model(p_model)
   precache_model(w_model)
   
   precache_model(fire_spr_name)
   precache_sound(fire_sound)
   
   precache_sound("weapons/flamegun-1.wav")
   precache_sound("weapons/flamegun_clipin1.wav")
   precache_sound("weapons/flamegun_clipout1.wav")
   precache_sound("weapons/flamegun_clipout2.wav")
   precache_sound("weapons/flamegun_draw.wav")
}

public fw_spawn(id)
{
   if(g_had_salamander[id])
      g_had_salamander[id] = false
      
   if(task_exists(id+TASK_FIRE)) remove_task(id+TASK_FIRE)
   if(task_exists(id+TASK_RELOAD)) remove_task(id+TASK_RELOAD)
   
   remove_entity_name(fire_classname)
}

public zv_extra_item_selected(id, itemid)
{
   if(itemid == g_salamander)
   {
      g_had_salamander[id] = true
      is_reloading[id] = false
      is_firing[id] = false
      can_fire[id] = true
      
      fm_give_item(id, "weapon_m249")
      g_ammo[id] = 100
      cs_set_user_bpammo(id, CSW_SALAMANDER, 200)
   }
}

public fw_item_postframe(ent)
{
   if(!is_valid_ent(ent))
      return HAM_IGNORED
   
   static id
   id = pev(ent, pev_owner)
   
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return HAM_IGNORED
   
   if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
      return HAM_IGNORED
      
   if(!is_reloading[id])
   {
      static iAnim
      iAnim = pev(id, pev_weaponanim)
      
      if(iAnim == RELOAD_ANIM)
         play_weapon_anim(id, IDLE_ANIM)
   }
      
   static salamander
   salamander = fm_find_ent_by_class(-1, "weapon_m249")
   
   set_pdata_int(salamander, 54, 0, 4)
   
   return HAM_HANDLED
}

public fw_item_addtoplayer(ent, id)
{
   if(!is_valid_ent(ent))
      return HAM_IGNORED
      
   if(zp_get_user_zombie(id))
      return HAM_IGNORED
         
   if(entity_get_int(ent, EV_INT_impulse) == 701)
   {
      g_had_salamander[id] = true
      g_ammo[id] = pev(ent, pev_iuser3)
      entity_set_int(id, EV_INT_impulse, 0)
      
      play_weapon_anim(id, DRAW_ANIM)
      set_task(1.0, "make_wpn_canfire", id)
      
      return HAM_HANDLED
   }      

   return HAM_HANDLED
}

public check_lastinv(id)
{
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return PLUGIN_HANDLED
      
   if(get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id])
   {
      set_task(0.5, "start_check_draw", id)
   }
   
   return PLUGIN_CONTINUE
}

public start_check_draw(id)
{
   if(can_fire[id])
      can_fire[id] = false
}

public event_curweapon(id)
{
   if(is_user_alive(id) && get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id] && !zp_get_user_zombie(id))
   {
      set_pev(id, pev_viewmodel2, v_model)
      set_pev(id, pev_weaponmodel2, p_model)
   }
}

public fw_weapon_deploy(ent)
{
   static id
   id = pev(ent, pev_owner)
   
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return HAM_IGNORED
   
   if(!g_had_salamander[id])
      return HAM_IGNORED
      
   can_fire[id] = false
   
   play_weapon_anim(id, DRAW_ANIM)
   set_task(1.0, "make_wpn_canfire", id)
      
   return HAM_HANDLED
}

public make_wpn_canfire(id)
{
   can_fire[id] = true
}

public fw_weapon_reload(ent)
{
   static id
   id = pev(ent, pev_owner)
   
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return HAM_IGNORED
   
   if(get_user_weapon(id) != CSW_SALAMANDER && !g_had_salamander[id])
      return HAM_IGNORED
      
   return HAM_SUPERCEDE
}

public client_PostThink(id)
{
   if(is_user_alive(id) && is_user_connected(id) && !zp_get_user_zombie(id))
   {
      if(g_had_salamander[id] && get_user_weapon(id) != CSW_SALAMANDER)
      {
         if(can_fire[id])
            can_fire[id] = false
            
         if(is_reloading[id])
         {
            is_reloading[id] = false
            if(task_exists(id+TASK_RELOAD)) remove_task(id+TASK_RELOAD)
         }         
      } else if(g_had_salamander[id] && get_user_weapon(id) == CSW_SALAMANDER) {
         static salamander
         salamander = fm_get_user_weapon_entity(id, CSW_M249)
         
         cs_set_weapon_ammo(salamander, g_ammo[id])
      }
   }
}

public fw_SetModel(entity, model[])
{
   if(!is_valid_ent(entity))
      return FMRES_IGNORED;
   
   static szClassName[33]
   entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
   
   if(!equal(szClassName, "weaponbox"))
      return FMRES_IGNORED;
   
   static iOwner
   iOwner = entity_get_edict(entity, EV_ENT_owner)
   
   if(equal(model, "models/w_m249.mdl"))
   {
      static iStoredAugID
      iStoredAugID = find_ent_by_owner(-1, "weapon_m249", entity)
      
      if(!is_valid_ent(iStoredAugID))
         return FMRES_IGNORED;
      
      if(g_had_salamander[iOwner])
      {
         entity_set_int(iStoredAugID, EV_INT_impulse, 701)
         g_had_salamander[iOwner] = false
         set_pev(iStoredAugID, pev_iuser3, g_ammo[iOwner])
         entity_set_model(entity, w_model)
         
         return FMRES_SUPERCEDE;
      }
   }
   
   return FMRES_IGNORED;
}

public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return FMRES_IGNORED
   
   if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
      return FMRES_IGNORED
      
   set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001)  

   return FMRES_HANDLED
}

public fw_cmdstart(id, uc_handle, seed)
{
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return FMRES_IGNORED
   
   if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
      return FMRES_IGNORED
   
   static Button
   Button = get_uc(uc_handle, UC_Buttons)
   
   if(Button & IN_ATTACK)
   {
      if((get_gametime() - get_pcvar_float(cvar_fire_delay) > g_last_fire[id]))
      {
         if(can_fire[id] && !is_reloading[id])
         {
            if(g_ammo[id] > 0)
            {
               if(pev(id, pev_weaponanim) != SHOOT_ANIM)
                  play_weapon_anim(id, SHOOT_ANIM)
               
               if(task_exists(id+TASK_FIRE)) remove_task(id+TASK_FIRE)
               is_firing[id] = true
               throw_fire(id)
               emit_sound(id, CHAN_WEAPON, "weapons/flamegun-2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
               g_ammo[id]--
            }

         }
         g_last_fire[id] = get_gametime()
      }
   } else {
      if(is_firing[id])
      {
         if(!task_exists(id+TASK_FIRE))
         {
            set_task(0.1, "stop_fire", id+TASK_FIRE)
            emit_sound(id, CHAN_WEAPON, "weapons/flamegun-2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
         }
      }
      
   }
   
   if(Button & IN_RELOAD)
   {
      if(!is_reloading[id] && !is_firing[id])
      {
         static curammo, require_ammo, bpammo
         
         curammo = g_ammo[id]
         bpammo = cs_get_user_bpammo(id, CSW_SALAMANDER)
         require_ammo = get_pcvar_num(cvar_max_clip) - curammo
         
         if(bpammo > require_ammo)
         {
            g_reload_ammo[id] = require_ammo
         } else {
            g_reload_ammo[id] = bpammo
         }
         
         if(g_ammo[id] < get_pcvar_num(cvar_max_clip) && bpammo > 0)
         {
            is_reloading[id] = true
            play_weapon_anim(id, RELOAD_ANIM)
         
            set_task(5.0, "finish_reload", id+TASK_RELOAD)
         }
      }
   }
   
   Button &= ~IN_ATTACK
   set_uc(uc_handle, UC_Buttons, Button)
   
   Button &= ~IN_RELOAD
   set_uc(uc_handle, UC_Buttons, Button)
   
   return FMRES_HANDLED
}

public finish_reload(id)
{
   id -= TASK_RELOAD

   g_ammo[id] += g_reload_ammo[id]
   cs_set_user_bpammo(id, CSW_SALAMANDER, cs_get_user_bpammo(id, CSW_SALAMANDER) - g_reload_ammo[id])
   is_reloading[id] = false
}

public stop_fire(id)
{
   id -= TASK_FIRE
   
   is_firing[id] = false
   if(pev(id, pev_weaponanim) != SHOOT_END_ANIM)
      play_weapon_anim(id, SHOOT_END_ANIM)   
}

public throw_fire(id)
{
   new iEnt = create_entity("env_sprite")
   new Float:vfVelocity[3]
   
   velocity_by_aim(id, 500, vfVelocity)
   xs_vec_mul_scalar(vfVelocity, 0.4, vfVelocity)
   
   // add velocity of Owner for ent
   new Float:fOwnerVel[3], Float:vfAttack[3], Float:vfAngle[3]
   pev(id, pev_angles, vfAngle)
   //pev(id, pev_origin, vfAttack)
   get_weapon_attackment(id, vfAttack, 20.0)
   vfAttack[2] -= 7.0
   //vfAttack[1] += 7.0
   pev(id, pev_velocity, fOwnerVel)
   fOwnerVel[2] = 0.0
   xs_vec_add(vfVelocity, fOwnerVel, vfVelocity)
   
   // set info for ent
   set_pev(iEnt, pev_movetype, MOVETYPE_FLY)
   set_pev(iEnt, pev_rendermode, kRenderTransAdd)
   set_pev(iEnt, pev_renderamt, 150.0)
   set_pev(iEnt, PEV_ENT_TIME, get_gametime() + 1.5)   // time remove
   set_pev(iEnt, pev_scale, 0.2)
   set_pev(iEnt, pev_nextthink, halflife_time() + 0.05)
   
   set_pev(iEnt, pev_classname, fire_classname)
   engfunc(EngFunc_SetModel, iEnt, fire_spr_name)
   set_pev(iEnt, pev_mins, Float:{-1.0, -1.0, -1.0})
   set_pev(iEnt, pev_maxs, Float:{1.0, 1.0, 1.0})
   set_pev(iEnt, pev_origin, vfAttack)
   set_pev(iEnt, pev_gravity, 0.01)
   set_pev(iEnt, pev_velocity, vfVelocity)
   vfAngle[1] += 30.0
   set_pev(iEnt, pev_angles, vfAngle)
   set_pev(iEnt, pev_solid, SOLID_BBOX)
   set_pev(iEnt, pev_owner, id)
   set_pev(iEnt, pev_iuser2, 1)
}

public fw_think(iEnt)
{
   if ( !pev_valid(iEnt) ) return;
   
   new Float:fFrame, Float:fScale, Float:fNextThink
   pev(iEnt, pev_frame, fFrame)
   pev(iEnt, pev_scale, fScale)
   
   // effect exp
   new iMoveType = pev(iEnt, pev_movetype)
   if (iMoveType == MOVETYPE_NONE)
   {
      fNextThink = 0.015
      fFrame += 1.0
      
      if (fFrame > 21.0)
      {
         engfunc(EngFunc_RemoveEntity, iEnt)
         return
      }
   }
   
   // effect normal
   else
   {
      fNextThink = 0.045
      fFrame += 1.0
      fFrame = floatmin(21.0, fFrame)
   }
   
   fScale = (entity_range(iEnt, pev(iEnt, pev_owner)) / 500) * 3.0
   
   set_pev(iEnt, pev_frame, fFrame)
   set_pev(iEnt, pev_scale, fScale)
   set_pev(iEnt, pev_nextthink, halflife_time() + fNextThink)
   
   
   // time remove
   new Float:fTimeRemove
   pev(iEnt, PEV_ENT_TIME, fTimeRemove)
   if (get_gametime() >= fTimeRemove)
   {
      engfunc(EngFunc_RemoveEntity, iEnt)
      return;
   }
}

public fw_touch(ent, id)
{
   set_pev(ent, pev_movetype, MOVETYPE_NONE)
   set_pev(ent, pev_solid, SOLID_NOT)   
   
   if(!is_valid_ent(id))
      return FMRES_IGNORED
   
   if(!is_user_alive(id) || !is_user_connected(id) || !zp_get_user_zombie(id))
      return FMRES_IGNORED
   
   if(pev(ent, pev_iuser2) == 1)
   {
      set_pev(ent, pev_iuser2, 0)
      
      static attacker, ent_kill
      
      attacker = pev(ent, pev_owner)
      ent_kill = fm_get_user_weapon_entity(id, CSW_KNIFE)
      
      
      ExecuteHam(Ham_TakeDamage, id, ent_kill, attacker, random_float(get_pcvar_float(cvar_dmgrd_start), get_pcvar_float(cvar_dmgrd_end)), DMG_BULLET)      
   }
   return FMRES_HANDLED
}

stock play_weapon_anim(player, anim)
{
   set_pev(player, pev_weaponanim, anim)
   message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, player)
   write_byte(anim)
   write_byte(pev(player, pev_body))
   message_end()
}

stock get_weapon_attackment(id, Float:output[3], Float:fDis = 40.0)
{
   new Float:vfEnd[3], viEnd[3]
   get_user_origin(id, viEnd, 3)  
   IVecFVec(viEnd, vfEnd)
   
   new Float:fOrigin[3], Float:fAngle[3]
   
   pev(id, pev_origin, fOrigin)
   pev(id, pev_view_ofs, fAngle)
   
   xs_vec_add(fOrigin, fAngle, fOrigin)
   
   new Float:fAttack[3]
   
   xs_vec_sub(vfEnd, fOrigin, fAttack)
   xs_vec_sub(vfEnd, fOrigin, fAttack)
   
   new Float:fRate
   
   fRate = fDis / vector_length(fAttack)
   xs_vec_mul_scalar(fAttack, fRate, fAttack)
   
   xs_vec_add(fOrigin, fAttack, output)
}

description[Erro de compilação] [Alguém ajuda] EmptyRe: [Erro de compilação] [Alguém ajuda]

more_horiz
Tenta ver se não esta faltando alguma include para compilar...

description[Erro de compilação] [Alguém ajuda] EmptyRe: [Erro de compilação] [Alguém ajuda]

more_horiz
o erro e aki:

Código:

g_salamander = zv_register_extra_item("Salamander", 30, ZV_TEAM_HUMAN)
esta em  "zv" mude pra "zp" nessa parte:

Código:

zv_register_extra_item

e nessa tb

Código:

ZV_TEAM_HUMAN

description[Erro de compilação] [Alguém ajuda] EmptyRe: [Erro de compilação] [Alguém ajuda]

more_horiz
Dexter escreveu:
o erro e aki:

Código:

g_salamander = zv_register_extra_item("Salamander", 30, ZV_TEAM_HUMAN)
esta em  "zv" mude pra "zp" nessa parte:

Código:

zv_register_extra_item
e nessa tb

Código:

ZV_TEAM_HUMAN
Verdade, testei aqui e era isso mesmo... mas acho que ele quer o item para vips/adm, não?

@edit

pelo que o Dexter disse eu arrumei para você, só não sei se vai ficar somente para vips porque quando modifica a linha: 

Código:

zp_register_extra_item
para:

Código:

zv_register_extra_item

ele da erro na compilação, mas qualquer coisa ta ai: 

Código:

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <zmvip>
#include <hamsandwich>
#include <zombieplague>
#include <cstrike>

new const fire_classname[] = "fire_salamander"
new const fire_spr_name[] = "sprites/fire_salamander.spr"

new const v_model[] = "models/zombie_plague/v_salamander.mdl"
new const p_model[] = "models/zombie_plague/p_salamander.mdl"
new const w_model[] = "models/zombie_plague/w_salamander.mdl"

new const fire_sound[] = "weapons/flamegun-2.wav"

// HARD CODE
#define CSW_SALAMANDER CSW_M249
#define PEV_ENT_TIME pev_fuser1
#define TASK_FIRE 3123123
#define TASK_RELOAD 2342342
new g_had_salamander[33], bool:is_firing[33], bool:is_reloading[33], Float:g_last_fire[33],
bool:can_fire[33], g_reload_ammo[33], g_ammo[33]

enum
{
  IDLE_ANIM = 0,
  DRAW_ANIM = 4,
  RELOAD_ANIM = 3,
  SHOOT_ANIM = 1,
  SHOOT_END_ANIM = 2
}

new g_salamander
new cvar_dmgrd_start, cvar_dmgrd_end, cvar_fire_delay, cvar_max_clip

public plugin_init()
{
  register_plugin("*VIP* Extra Item: Salamander", "1.0", "Dias")
 
  register_event("CurWeapon", "event_curweapon", "be", "1=1")
  register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
  RegisterHam(Ham_Spawn, "player", "fw_spawn", 1)
  RegisterHam(Ham_Weapon_Reload, "weapon_m249", "fw_weapon_reload", 1)
  RegisterHam(Ham_Item_Deploy, "weapon_m249", "fw_weapon_deploy", 1)
  RegisterHam(Ham_Item_PostFrame, "weapon_m249", "fw_item_postframe", 1)
  RegisterHam(Ham_Item_AddToPlayer, "weapon_m249", "fw_item_addtoplayer", 1)
  register_forward(FM_CmdStart, "fw_cmdstart")
  register_touch(fire_classname, "*", "fw_touch")
  register_think(fire_classname, "fw_think")
  register_forward(FM_SetModel, "fw_SetModel")
 
  register_clcmd("lastinv", "check_lastinv")
 
  g_salamander = zp_register_extra_item("Salamander", 30, ZV_TEAM_HUMAN)
 
  cvar_dmgrd_start = register_cvar("zp_salamander_dmgrandom_start", "65.0")
  cvar_dmgrd_end = register_cvar("zp_salamander_dmgrandom_end", "90.0")
  cvar_fire_delay = register_cvar("zp_salamander_fire_delay", "0.1")
  cvar_max_clip = register_cvar("zp_salamander_max_clip", "100")
}

public plugin_precache()
{
  precache_model(v_model)
  precache_model(p_model)
  precache_model(w_model)
 
  precache_model(fire_spr_name)
  precache_sound(fire_sound)
 
  precache_sound("weapons/flamegun-1.wav")
  precache_sound("weapons/flamegun_clipin1.wav")
  precache_sound("weapons/flamegun_clipout1.wav")
  precache_sound("weapons/flamegun_clipout2.wav")
  precache_sound("weapons/flamegun_draw.wav")
}

public fw_spawn(id)
{
  if(g_had_salamander[id])
      g_had_salamander[id] = false
     
  if(task_exists(id+TASK_FIRE)) remove_task(id+TASK_FIRE)
  if(task_exists(id+TASK_RELOAD)) remove_task(id+TASK_RELOAD)
 
  remove_entity_name(fire_classname)
}

public zv_extra_item_selected(id, itemid)
{
  if(itemid == g_salamander)
  {
      g_had_salamander[id] = true
      is_reloading[id] = false
      is_firing[id] = false
      can_fire[id] = true
     
      fm_give_item(id, "weapon_m249")
      g_ammo[id] = 100
      cs_set_user_bpammo(id, CSW_SALAMANDER, 200)
  }
}

public fw_item_postframe(ent)
{
  if(!is_valid_ent(ent))
      return HAM_IGNORED
 
  static id
  id = pev(ent, pev_owner)
 
  if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return HAM_IGNORED
 
  if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
      return HAM_IGNORED
     
  if(!is_reloading[id])
  {
      static iAnim
      iAnim = pev(id, pev_weaponanim)
     
      if(iAnim == RELOAD_ANIM)
        play_weapon_anim(id, IDLE_ANIM)
  }
     
  static salamander
  salamander = fm_find_ent_by_class(-1, "weapon_m249")
 
  set_pdata_int(salamander, 54, 0, 4)
 
  return HAM_HANDLED
}

public fw_item_addtoplayer(ent, id)
{
  if(!is_valid_ent(ent))
      return HAM_IGNORED
     
  if(zp_get_user_zombie(id))
      return HAM_IGNORED
       
  if(entity_get_int(ent, EV_INT_impulse) == 701)
  {
      g_had_salamander[id] = true
      g_ammo[id] = pev(ent, pev_iuser3)
      entity_set_int(id, EV_INT_impulse, 0)
     
      play_weapon_anim(id, DRAW_ANIM)
      set_task(1.0, "make_wpn_canfire", id)
     
      return HAM_HANDLED
  }     

  return HAM_HANDLED
}

public check_lastinv(id)
{
  if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return PLUGIN_HANDLED
     
  if(get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id])
  {
      set_task(0.5, "start_check_draw", id)
  }
 
  return PLUGIN_CONTINUE
}

public start_check_draw(id)
{
  if(can_fire[id])
      can_fire[id] = false
}

public event_curweapon(id)
{
  if(is_user_alive(id) && get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id] && !zp_get_user_zombie(id))
  {
      set_pev(id, pev_viewmodel2, v_model)
      set_pev(id, pev_weaponmodel2, p_model)
  }
}

public fw_weapon_deploy(ent)
{
  static id
  id = pev(ent, pev_owner)
 
  if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return HAM_IGNORED
 
  if(!g_had_salamander[id])
      return HAM_IGNORED
     
  can_fire[id] = false
 
  play_weapon_anim(id, DRAW_ANIM)
  set_task(1.0, "make_wpn_canfire", id)
     
  return HAM_HANDLED
}

public make_wpn_canfire(id)
{
  can_fire[id] = true
}

public fw_weapon_reload(ent)
{
  static id
  id = pev(ent, pev_owner)
 
  if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return HAM_IGNORED
 
  if(get_user_weapon(id) != CSW_SALAMANDER && !g_had_salamander[id])
      return HAM_IGNORED
     
  return HAM_SUPERCEDE
}

public client_PostThink(id)
{
  if(is_user_alive(id) && is_user_connected(id) && !zp_get_user_zombie(id))
  {
      if(g_had_salamander[id] && get_user_weapon(id) != CSW_SALAMANDER)
      {
        if(can_fire[id])
            can_fire[id] = false
           
        if(is_reloading[id])
        {
            is_reloading[id] = false
            if(task_exists(id+TASK_RELOAD)) remove_task(id+TASK_RELOAD)
        }       
      } else if(g_had_salamander[id] && get_user_weapon(id) == CSW_SALAMANDER) {
        static salamander
        salamander = fm_get_user_weapon_entity(id, CSW_M249)
       
        cs_set_weapon_ammo(salamander, g_ammo[id])
      }
  }
}

public fw_SetModel(entity, model[])
{
  if(!is_valid_ent(entity))
      return FMRES_IGNORED;
 
  static szClassName[33]
  entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
 
  if(!equal(szClassName, "weaponbox"))
      return FMRES_IGNORED;
 
  static iOwner
  iOwner = entity_get_edict(entity, EV_ENT_owner)
 
  if(equal(model, "models/w_m249.mdl"))
  {
      static iStoredAugID
      iStoredAugID = find_ent_by_owner(-1, "weapon_m249", entity)
     
      if(!is_valid_ent(iStoredAugID))
        return FMRES_IGNORED;
     
      if(g_had_salamander[iOwner])
      {
        entity_set_int(iStoredAugID, EV_INT_impulse, 701)
        g_had_salamander[iOwner] = false
        set_pev(iStoredAugID, pev_iuser3, g_ammo[iOwner])
        entity_set_model(entity, w_model)
       
        return FMRES_SUPERCEDE;
      }
  }
 
  return FMRES_IGNORED;
}

public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
  if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return FMRES_IGNORED
 
  if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
      return FMRES_IGNORED
     
  set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001) 

  return FMRES_HANDLED
}

public fw_cmdstart(id, uc_handle, seed)
{
  if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return FMRES_IGNORED
 
  if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
      return FMRES_IGNORED
 
  static Button
  Button = get_uc(uc_handle, UC_Buttons)
 
  if(Button & IN_ATTACK)
  {
      if((get_gametime() - get_pcvar_float(cvar_fire_delay) > g_last_fire[id]))
      {
        if(can_fire[id] && !is_reloading[id])
        {
            if(g_ammo[id] > 0)
            {
              if(pev(id, pev_weaponanim) != SHOOT_ANIM)
                  play_weapon_anim(id, SHOOT_ANIM)
             
              if(task_exists(id+TASK_FIRE)) remove_task(id+TASK_FIRE)
              is_firing[id] = true
              throw_fire(id)
              emit_sound(id, CHAN_WEAPON, "weapons/flamegun-2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
              g_ammo[id]--
            }

        }
        g_last_fire[id] = get_gametime()
      }
  } else {
      if(is_firing[id])
      {
        if(!task_exists(id+TASK_FIRE))
        {
            set_task(0.1, "stop_fire", id+TASK_FIRE)
            emit_sound(id, CHAN_WEAPON, "weapons/flamegun-2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
        }
      }
     
  }
 
  if(Button & IN_RELOAD)
  {
      if(!is_reloading[id] && !is_firing[id])
      {
        static curammo, require_ammo, bpammo
       
        curammo = g_ammo[id]
        bpammo = cs_get_user_bpammo(id, CSW_SALAMANDER)
        require_ammo = get_pcvar_num(cvar_max_clip) - curammo
       
        if(bpammo > require_ammo)
        {
            g_reload_ammo[id] = require_ammo
        } else {
            g_reload_ammo[id] = bpammo
        }
       
        if(g_ammo[id] < get_pcvar_num(cvar_max_clip) && bpammo > 0)
        {
            is_reloading[id] = true
            play_weapon_anim(id, RELOAD_ANIM)
       
            set_task(5.0, "finish_reload", id+TASK_RELOAD)
        }
      }
  }
 
  Button &= ~IN_ATTACK
  set_uc(uc_handle, UC_Buttons, Button)
 
  Button &= ~IN_RELOAD
  set_uc(uc_handle, UC_Buttons, Button)
 
  return FMRES_HANDLED
}

public finish_reload(id)
{
  id -= TASK_RELOAD

  g_ammo[id] += g_reload_ammo[id]
  cs_set_user_bpammo(id, CSW_SALAMANDER, cs_get_user_bpammo(id, CSW_SALAMANDER) - g_reload_ammo[id])
  is_reloading[id] = false
}

public stop_fire(id)
{
  id -= TASK_FIRE
 
  is_firing[id] = false
  if(pev(id, pev_weaponanim) != SHOOT_END_ANIM)
      play_weapon_anim(id, SHOOT_END_ANIM) 
}

public throw_fire(id)
{
  new iEnt = create_entity("env_sprite")
  new Float:vfVelocity[3]
 
  velocity_by_aim(id, 500, vfVelocity)
  xs_vec_mul_scalar(vfVelocity, 0.4, vfVelocity)
 
  // add velocity of Owner for ent
  new Float:fOwnerVel[3], Float:vfAttack[3], Float:vfAngle[3]
  pev(id, pev_angles, vfAngle)
  //pev(id, pev_origin, vfAttack)
  get_weapon_attackment(id, vfAttack, 20.0)
  vfAttack[2] -= 7.0
  //vfAttack[1] += 7.0
  pev(id, pev_velocity, fOwnerVel)
  fOwnerVel[2] = 0.0
  xs_vec_add(vfVelocity, fOwnerVel, vfVelocity)
 
  // set info for ent
  set_pev(iEnt, pev_movetype, MOVETYPE_FLY)
  set_pev(iEnt, pev_rendermode, kRenderTransAdd)
  set_pev(iEnt, pev_renderamt, 150.0)
  set_pev(iEnt, PEV_ENT_TIME, get_gametime() + 1.5)  // time remove
  set_pev(iEnt, pev_scale, 0.2)
  set_pev(iEnt, pev_nextthink, halflife_time() + 0.05)
 
  set_pev(iEnt, pev_classname, fire_classname)
  engfunc(EngFunc_SetModel, iEnt, fire_spr_name)
  set_pev(iEnt, pev_mins, Float:{-1.0, -1.0, -1.0})
  set_pev(iEnt, pev_maxs, Float:{1.0, 1.0, 1.0})
  set_pev(iEnt, pev_origin, vfAttack)
  set_pev(iEnt, pev_gravity, 0.01)
  set_pev(iEnt, pev_velocity, vfVelocity)
  vfAngle[1] += 30.0
  set_pev(iEnt, pev_angles, vfAngle)
  set_pev(iEnt, pev_solid, SOLID_BBOX)
  set_pev(iEnt, pev_owner, id)
  set_pev(iEnt, pev_iuser2, 1)
}

public fw_think(iEnt)
{
  if ( !pev_valid(iEnt) ) return;
 
  new Float:fFrame, Float:fScale, Float:fNextThink
  pev(iEnt, pev_frame, fFrame)
  pev(iEnt, pev_scale, fScale)
 
  // effect exp
  new iMoveType = pev(iEnt, pev_movetype)
  if (iMoveType == MOVETYPE_NONE)
  {
      fNextThink = 0.015
      fFrame += 1.0
     
      if (fFrame > 21.0)
      {
        engfunc(EngFunc_RemoveEntity, iEnt)
        return
      }
  }
 
  // effect normal
  else
  {
      fNextThink = 0.045
      fFrame += 1.0
      fFrame = floatmin(21.0, fFrame)
  }
 
  fScale = (entity_range(iEnt, pev(iEnt, pev_owner)) / 500) * 3.0
 
  set_pev(iEnt, pev_frame, fFrame)
  set_pev(iEnt, pev_scale, fScale)
  set_pev(iEnt, pev_nextthink, halflife_time() + fNextThink)
 
 
  // time remove
  new Float:fTimeRemove
  pev(iEnt, PEV_ENT_TIME, fTimeRemove)
  if (get_gametime() >= fTimeRemove)
  {
      engfunc(EngFunc_RemoveEntity, iEnt)
      return;
  }
}

public fw_touch(ent, id)
{
  set_pev(ent, pev_movetype, MOVETYPE_NONE)
  set_pev(ent, pev_solid, SOLID_NOT) 
 
  if(!is_valid_ent(id))
      return FMRES_IGNORED
 
  if(!is_user_alive(id) || !is_user_connected(id) || !zp_get_user_zombie(id))
      return FMRES_IGNORED
 
  if(pev(ent, pev_iuser2) == 1)
  {
      set_pev(ent, pev_iuser2, 0)
     
      static attacker, ent_kill
     
      attacker = pev(ent, pev_owner)
      ent_kill = fm_get_user_weapon_entity(id, CSW_KNIFE)
     
     
      ExecuteHam(Ham_TakeDamage, id, ent_kill, attacker, random_float(get_pcvar_float(cvar_dmgrd_start), get_pcvar_float(cvar_dmgrd_end)), DMG_BULLET)     
  }
  return FMRES_HANDLED
}

stock play_weapon_anim(player, anim)
{
  set_pev(player, pev_weaponanim, anim)
  message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, player)
  write_byte(anim)
  write_byte(pev(player, pev_body))
  message_end()
}

stock get_weapon_attackment(id, Float:output[3], Float:fDis = 40.0)
{
  new Float:vfEnd[3], viEnd[3]
  get_user_origin(id, viEnd, 3) 
  IVecFVec(viEnd, vfEnd)
 
  new Float:fOrigin[3], Float:fAngle[3]
 
  pev(id, pev_origin, fOrigin)
  pev(id, pev_view_ofs, fAngle)
 
  xs_vec_add(fOrigin, fAngle, fOrigin)
 
  new Float:fAttack[3]
 
  xs_vec_sub(vfEnd, fOrigin, fAttack)
  xs_vec_sub(vfEnd, fOrigin, fAttack)
 
  new Float:fRate
 
  fRate = fDis / vector_length(fAttack)
  xs_vec_mul_scalar(fAttack, fRate, fAttack)
 
  xs_vec_add(fOrigin, fAttack, output)
}

description[Erro de compilação] [Alguém ajuda] EmptyRe: [Erro de compilação] [Alguém ajuda]

more_horiz
sim ele esqueceu de por a descriçao do plugin
olha ela aki pronta:

Código:

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <zmvip>
#include <hamsandwich>
#include <zombieplague>
#include <cstrike>

new const fire_classname[] = "fire_salamander"
new const fire_spr_name[] = "sprites/fire_salamander.spr"

new const v_model[] = "models/zombie_plague/v_salamander.mdl"
new const p_model[] = "models/zombie_plague/p_salamander.mdl"
new const w_model[] = "models/zombie_plague/w_salamander.mdl"

new const fire_sound[] = "weapons/flamegun-2.wav"

// HARD CODE
#define CSW_SALAMANDER CSW_M249
#define PEV_ENT_TIME pev_fuser1
#define TASK_FIRE 3123123
#define TASK_RELOAD 2342342
new g_had_salamander[33], bool:is_firing[33], bool:is_reloading[33], Float:g_last_fire[33],
bool:can_fire[33], g_reload_ammo[33], g_ammo[33]

enum
{
   IDLE_ANIM = 0,
   DRAW_ANIM = 4,
   RELOAD_ANIM = 3,
   SHOOT_ANIM = 1,
   SHOOT_END_ANIM = 2
}

new g_salamander
new cvar_dmgrd_start, cvar_dmgrd_end, cvar_fire_delay, cvar_max_clip

public plugin_init()
{
   register_plugin("*VIP* Extra Item: Salamander", "1.0", "Dias")
  
   register_event("CurWeapon", "event_curweapon", "be", "1=1")
   register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
   RegisterHam(Ham_Spawn, "player", "fw_spawn", 1)
   RegisterHam(Ham_Weapon_Reload, "weapon_m249", "fw_weapon_reload", 1)
   RegisterHam(Ham_Item_Deploy, "weapon_m249", "fw_weapon_deploy", 1)
   RegisterHam(Ham_Item_PostFrame, "weapon_m249", "fw_item_postframe", 1)
   RegisterHam(Ham_Item_AddToPlayer, "weapon_m249", "fw_item_addtoplayer", 1)
   register_forward(FM_CmdStart, "fw_cmdstart")
   register_touch(fire_classname, "*", "fw_touch")
   register_think(fire_classname, "fw_think")
   register_forward(FM_SetModel, "fw_SetModel")
  
   register_clcmd("lastinv", "check_lastinv")
  
   g_salamander = zv_register_extra_item("Salamander", "Queima o toba dos ZMs", 30, ZV_TEAM_HUMAN)
  
   cvar_dmgrd_start = register_cvar("zp_salamander_dmgrandom_start", "65.0")
   cvar_dmgrd_end = register_cvar("zp_salamander_dmgrandom_end", "90.0")
   cvar_fire_delay = register_cvar("zp_salamander_fire_delay", "0.1")
   cvar_max_clip = register_cvar("zp_salamander_max_clip", "100")
}

public plugin_precache()
{
   precache_model(v_model)
   precache_model(p_model)
   precache_model(w_model)
  
   precache_model(fire_spr_name)
   precache_sound(fire_sound)
  
   precache_sound("weapons/flamegun-1.wav")
   precache_sound("weapons/flamegun_clipin1.wav")
   precache_sound("weapons/flamegun_clipout1.wav")
   precache_sound("weapons/flamegun_clipout2.wav")
   precache_sound("weapons/flamegun_draw.wav")
}

public fw_spawn(id)
{
   if(g_had_salamander[id])
      g_had_salamander[id] = false
      
   if(task_exists(id+TASK_FIRE)) remove_task(id+TASK_FIRE)
   if(task_exists(id+TASK_RELOAD)) remove_task(id+TASK_RELOAD)
  
   remove_entity_name(fire_classname)
}

public zv_extra_item_selected(id, itemid)
{
   if(itemid == g_salamander)
   {
      g_had_salamander[id] = true
      is_reloading[id] = false
      is_firing[id] = false
      can_fire[id] = true
      
      fm_give_item(id, "weapon_m249")
      g_ammo[id] = 100
      cs_set_user_bpammo(id, CSW_SALAMANDER, 200)
   }
}

public fw_item_postframe(ent)
{
   if(!is_valid_ent(ent))
      return HAM_IGNORED
  
   static id
   id = pev(ent, pev_owner)
  
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return HAM_IGNORED
  
   if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
      return HAM_IGNORED
      
   if(!is_reloading[id])
   {
      static iAnim
      iAnim = pev(id, pev_weaponanim)
      
      if(iAnim == RELOAD_ANIM)
         play_weapon_anim(id, IDLE_ANIM)
   }
      
   static salamander
   salamander = fm_find_ent_by_class(-1, "weapon_m249")
  
   set_pdata_int(salamander, 54, 0, 4)
  
   return HAM_HANDLED
}

public fw_item_addtoplayer(ent, id)
{
   if(!is_valid_ent(ent))
      return HAM_IGNORED
      
   if(zp_get_user_zombie(id))
      return HAM_IGNORED
        
   if(entity_get_int(ent, EV_INT_impulse) == 701)
   {
      g_had_salamander[id] = true
      g_ammo[id] = pev(ent, pev_iuser3)
      entity_set_int(id, EV_INT_impulse, 0)
      
      play_weapon_anim(id, DRAW_ANIM)
      set_task(1.0, "make_wpn_canfire", id)
      
      return HAM_HANDLED
   }      

   return HAM_HANDLED
}

public check_lastinv(id)
{
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return PLUGIN_HANDLED
      
   if(get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id])
   {
      set_task(0.5, "start_check_draw", id)
   }
  
   return PLUGIN_CONTINUE
}

public start_check_draw(id)
{
   if(can_fire[id])
      can_fire[id] = false
}

public event_curweapon(id)
{
   if(is_user_alive(id) && get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id] && !zp_get_user_zombie(id))
   {
      set_pev(id, pev_viewmodel2, v_model)
      set_pev(id, pev_weaponmodel2, p_model)
   }
}

public fw_weapon_deploy(ent)
{
   static id
   id = pev(ent, pev_owner)
  
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return HAM_IGNORED
  
   if(!g_had_salamander[id])
      return HAM_IGNORED
      
   can_fire[id] = false
  
   play_weapon_anim(id, DRAW_ANIM)
   set_task(1.0, "make_wpn_canfire", id)
      
   return HAM_HANDLED
}

public make_wpn_canfire(id)
{
   can_fire[id] = true
}

public fw_weapon_reload(ent)
{
   static id
   id = pev(ent, pev_owner)
  
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return HAM_IGNORED
  
   if(get_user_weapon(id) != CSW_SALAMANDER && !g_had_salamander[id])
      return HAM_IGNORED
      
   return HAM_SUPERCEDE
}

public client_PostThink(id)
{
   if(is_user_alive(id) && is_user_connected(id) && !zp_get_user_zombie(id))
   {
      if(g_had_salamander[id] && get_user_weapon(id) != CSW_SALAMANDER)
      {
         if(can_fire[id])
            can_fire[id] = false
            
         if(is_reloading[id])
         {
            is_reloading[id] = false
            if(task_exists(id+TASK_RELOAD)) remove_task(id+TASK_RELOAD)
         }        
      } else if(g_had_salamander[id] && get_user_weapon(id) == CSW_SALAMANDER) {
         static salamander
         salamander = fm_get_user_weapon_entity(id, CSW_M249)
        
         cs_set_weapon_ammo(salamander, g_ammo[id])
      }
   }
}

public fw_SetModel(entity, model[])
{
   if(!is_valid_ent(entity))
      return FMRES_IGNORED;
  
   static szClassName[33]
   entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  
   if(!equal(szClassName, "weaponbox"))
      return FMRES_IGNORED;
  
   static iOwner
   iOwner = entity_get_edict(entity, EV_ENT_owner)
  
   if(equal(model, "models/w_m249.mdl"))
   {
      static iStoredAugID
      iStoredAugID = find_ent_by_owner(-1, "weapon_m249", entity)
      
      if(!is_valid_ent(iStoredAugID))
         return FMRES_IGNORED;
      
      if(g_had_salamander[iOwner])
      {
         entity_set_int(iStoredAugID, EV_INT_impulse, 701)
         g_had_salamander[iOwner] = false
         set_pev(iStoredAugID, pev_iuser3, g_ammo[iOwner])
         entity_set_model(entity, w_model)
        
         return FMRES_SUPERCEDE;
      }
   }
  
   return FMRES_IGNORED;
}

public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return FMRES_IGNORED
  
   if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
      return FMRES_IGNORED
      
   set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001)  

   return FMRES_HANDLED
}

public fw_cmdstart(id, uc_handle, seed)
{
   if(!is_user_alive(id) || !is_user_connected(id) || zp_get_user_zombie(id))
      return FMRES_IGNORED
  
   if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
      return FMRES_IGNORED
  
   static Button
   Button = get_uc(uc_handle, UC_Buttons)
  
   if(Button & IN_ATTACK)
   {
      if((get_gametime() - get_pcvar_float(cvar_fire_delay) > g_last_fire[id]))
      {
         if(can_fire[id] && !is_reloading[id])
         {
            if(g_ammo[id] > 0)
            {
               if(pev(id, pev_weaponanim) != SHOOT_ANIM)
                  play_weapon_anim(id, SHOOT_ANIM)
              
               if(task_exists(id+TASK_FIRE)) remove_task(id+TASK_FIRE)
               is_firing[id] = true
               throw_fire(id)
               emit_sound(id, CHAN_WEAPON, "weapons/flamegun-2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
               g_ammo[id]--
            }

         }
         g_last_fire[id] = get_gametime()
      }
   } else {
      if(is_firing[id])
      {
         if(!task_exists(id+TASK_FIRE))
         {
            set_task(0.1, "stop_fire", id+TASK_FIRE)
            emit_sound(id, CHAN_WEAPON, "weapons/flamegun-2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
         }
      }
      
   }
  
   if(Button & IN_RELOAD)
   {
      if(!is_reloading[id] && !is_firing[id])
      {
         static curammo, require_ammo, bpammo
        
         curammo = g_ammo[id]
         bpammo = cs_get_user_bpammo(id, CSW_SALAMANDER)
         require_ammo = get_pcvar_num(cvar_max_clip) - curammo
        
         if(bpammo > require_ammo)
         {
            g_reload_ammo[id] = require_ammo
         } else {
            g_reload_ammo[id] = bpammo
         }
        
         if(g_ammo[id] < get_pcvar_num(cvar_max_clip) && bpammo > 0)
         {
            is_reloading[id] = true
            play_weapon_anim(id, RELOAD_ANIM)
        
            set_task(5.0, "finish_reload", id+TASK_RELOAD)
         }
      }
   }
  
   Button &= ~IN_ATTACK
   set_uc(uc_handle, UC_Buttons, Button)
  
   Button &= ~IN_RELOAD
   set_uc(uc_handle, UC_Buttons, Button)
  
   return FMRES_HANDLED
}

public finish_reload(id)
{
   id -= TASK_RELOAD

   g_ammo[id] += g_reload_ammo[id]
   cs_set_user_bpammo(id, CSW_SALAMANDER, cs_get_user_bpammo(id, CSW_SALAMANDER) - g_reload_ammo[id])
   is_reloading[id] = false
}

public stop_fire(id)
{
   id -= TASK_FIRE
  
   is_firing[id] = false
   if(pev(id, pev_weaponanim) != SHOOT_END_ANIM)
      play_weapon_anim(id, SHOOT_END_ANIM)  
}

public throw_fire(id)
{
   new iEnt = create_entity("env_sprite")
   new Float:vfVelocity[3]
  
   velocity_by_aim(id, 500, vfVelocity)
   xs_vec_mul_scalar(vfVelocity, 0.4, vfVelocity)
  
   // add velocity of Owner for ent
   new Float:fOwnerVel[3], Float:vfAttack[3], Float:vfAngle[3]
   pev(id, pev_angles, vfAngle)
   //pev(id, pev_origin, vfAttack)
   get_weapon_attackment(id, vfAttack, 20.0)
   vfAttack[2] -= 7.0
   //vfAttack[1] += 7.0
   pev(id, pev_velocity, fOwnerVel)
   fOwnerVel[2] = 0.0
   xs_vec_add(vfVelocity, fOwnerVel, vfVelocity)
  
   // set info for ent
   set_pev(iEnt, pev_movetype, MOVETYPE_FLY)
   set_pev(iEnt, pev_rendermode, kRenderTransAdd)
   set_pev(iEnt, pev_renderamt, 150.0)
   set_pev(iEnt, PEV_ENT_TIME, get_gametime() + 1.5)   // time remove
   set_pev(iEnt, pev_scale, 0.2)
   set_pev(iEnt, pev_nextthink, halflife_time() + 0.05)
  
   set_pev(iEnt, pev_classname, fire_classname)
   engfunc(EngFunc_SetModel, iEnt, fire_spr_name)
   set_pev(iEnt, pev_mins, Float:{-1.0, -1.0, -1.0})
   set_pev(iEnt, pev_maxs, Float:{1.0, 1.0, 1.0})
   set_pev(iEnt, pev_origin, vfAttack)
   set_pev(iEnt, pev_gravity, 0.01)
   set_pev(iEnt, pev_velocity, vfVelocity)
   vfAngle[1] += 30.0
   set_pev(iEnt, pev_angles, vfAngle)
   set_pev(iEnt, pev_solid, SOLID_BBOX)
   set_pev(iEnt, pev_owner, id)
   set_pev(iEnt, pev_iuser2, 1)
}

public fw_think(iEnt)
{
   if ( !pev_valid(iEnt) ) return;
  
   new Float:fFrame, Float:fScale, Float:fNextThink
   pev(iEnt, pev_frame, fFrame)
   pev(iEnt, pev_scale, fScale)
  
   // effect exp
   new iMoveType = pev(iEnt, pev_movetype)
   if (iMoveType == MOVETYPE_NONE)
   {
      fNextThink = 0.015
      fFrame += 1.0
      
      if (fFrame > 21.0)
      {
         engfunc(EngFunc_RemoveEntity, iEnt)
         return
      }
   }
  
   // effect normal
   else
   {
      fNextThink = 0.045
      fFrame += 1.0
      fFrame = floatmin(21.0, fFrame)
   }
  
   fScale = (entity_range(iEnt, pev(iEnt, pev_owner)) / 500) * 3.0
  
   set_pev(iEnt, pev_frame, fFrame)
   set_pev(iEnt, pev_scale, fScale)
   set_pev(iEnt, pev_nextthink, halflife_time() + fNextThink)
  
  
   // time remove
   new Float:fTimeRemove
   pev(iEnt, PEV_ENT_TIME, fTimeRemove)
   if (get_gametime() >= fTimeRemove)
   {
      engfunc(EngFunc_RemoveEntity, iEnt)
      return;
   }
}

public fw_touch(ent, id)
{
   set_pev(ent, pev_movetype, MOVETYPE_NONE)
   set_pev(ent, pev_solid, SOLID_NOT)  
  
   if(!is_valid_ent(id))
      return FMRES_IGNORED
  
   if(!is_user_alive(id) || !is_user_connected(id) || !zp_get_user_zombie(id))
      return FMRES_IGNORED
  
   if(pev(ent, pev_iuser2) == 1)
   {
      set_pev(ent, pev_iuser2, 0)
      
      static attacker, ent_kill
      
      attacker = pev(ent, pev_owner)
      ent_kill = fm_get_user_weapon_entity(id, CSW_KNIFE)
      
      
      ExecuteHam(Ham_TakeDamage, id, ent_kill, attacker, random_float(get_pcvar_float(cvar_dmgrd_start), get_pcvar_float(cvar_dmgrd_end)), DMG_BULLET)      
   }
   return FMRES_HANDLED
}

stock play_weapon_anim(player, anim)
{
   set_pev(player, pev_weaponanim, anim)
   message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, player)
   write_byte(anim)
   write_byte(pev(player, pev_body))
   message_end()
}

stock get_weapon_attackment(id, Float:output[3], Float:fDis = 40.0)
{
   new Float:vfEnd[3], viEnd[3]
   get_user_origin(id, viEnd, 3)  
   IVecFVec(viEnd, vfEnd)
  
   new Float:fOrigin[3], Float:fAngle[3]
  
   pev(id, pev_origin, fOrigin)
   pev(id, pev_view_ofs, fAngle)
  
   xs_vec_add(fOrigin, fAngle, fOrigin)
  
   new Float:fAttack[3]
  
   xs_vec_sub(vfEnd, fOrigin, fAttack)
   xs_vec_sub(vfEnd, fOrigin, fAttack)
  
   new Float:fRate
  
   fRate = fDis / vector_length(fAttack)
   xs_vec_mul_scalar(fAttack, fRate, fAttack)
  
   xs_vec_add(fOrigin, fAttack, output)
}

description[Erro de compilação] [Alguém ajuda] EmptyRe: [Erro de compilação] [Alguém ajuda]

more_horiz
kkkkkkkkk



   g_salamander = zv_register_extra_item("Salamander", "Queima o toba dos ZMs", 30, ZV_TEAM_HUMAN)

mati jk cg [Erro de compilação] [Alguém ajuda] 3902505996 [Erro de compilação] [Alguém ajuda] 2677847194 [Erro de compilação] [Alguém ajuda] 110486816 style pç

description[Erro de compilação] [Alguém ajuda] EmptyRe: [Erro de compilação] [Alguém ajuda]

more_horiz
privacy_tip Permissões neste sub-fórum
Não podes responder a tópicos
power_settings_newInicie sessão para responder