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[DUVIDA] Aki Rapaziada Empty[DUVIDA] Aki Rapaziada

more_horiz
Ola Rapaziada Hoje estou aki pedindo ajuda pra voces arrumarei algumas sma's pra min !!
Entao vamo la Primeiro e botando limite de compras nesse plugin da vida extra..



Código:

 #include <amxmodx>
#include < fun >
#include <zombieplague>
#include <cstrike>

new const item_name[] = "Vida extra"
new g_itemid_buyhp
new hpamount_z, hpamount_h

new g_fire
new const heal_effect[] = "cso/zm_heal.wav"
new const human_buy[] = "cso/hm_heal.wav"
 
public plugin_precache()
{
    g_fire = precache_model("sprites/cso_heal.spr")
    precache_sound(heal_effect)
    precache_sound(human_buy)
}

public plugin_init()
{
    register_plugin("Vida extra", "1.0", "Extra Vida")
    hpamount_z = register_cvar("zp_buyhp_zombie", "1000")
    hpamount_h = register_cvar("zp_buyhp_human", "350")
    g_itemid_buyhp = zp_register_extra_item(item_name,20, ZP_TEAM_HUMAN & ZP_TEAM_ZOMBIE)
}

public onHealth()
{
    new victim=read_data(2)
 
   new CsTeams:team=cs_get_user_team(victim)
    if(team==CS_TEAM_T)
    {
        set_task(3.0,"fire",victim)
   }
}

fire_zombie(origin[3])
{
    message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
    write_byte(TE_SPRITE)
    write_coord(origin[0])
    write_coord(origin[1])
    write_coord(origin[2]+=30)
    write_short(g_fire)
    write_byte(8)
    write_byte(255)
    message_end()
}

public fire(victim)
{
    new origin[3]
    get_user_origin(victim,origin)
 
   fire_zombie(origin)
}
 
public zp_extra_item_selected(id,itemid)
{
    if (!is_user_alive(id))
    return PLUGIN_HANDLED;
 
   if (itemid==g_itemid_buyhp)
    {
        if (zp_get_user_ammo_packs(id) < 5)
        {
            client_print(id, print_chat,"[ZP] Voce nao tem Ammo Packs Suficiente !!");
            return PLUGIN_HANDLED;
        }
        if (zp_get_user_zombie(id))
        {
            set_user_health(id,get_user_health(id)+get_pcvar_num(hpamount_z));
            client_print(id, print_chat,"[ZP] Voce comprou 1.000 de HP !");
            emit_sound(id, CHAN_ITEM, heal_effect, 0.6, ATTN_NORM, 0, PITCH_NORM)
            fire(id);
        }
        if (!zp_get_user_zombie(id))
        {
            set_user_health(id,get_user_health(id)+get_pcvar_num(hpamount_h));
            client_print(id, print_chat,"[ZP] Voce comprou 350 de HP !");
            emit_sound(id, CHAN_ITEM, human_buy, 0.6, ATTN_NORM, 0, PITCH_NORM)
        }
    }
    return PLUGIN_CONTINUE;
}



:


Segundo plugin essa da bomba de anti. se alguem puder dexa ela igual da bomba de infecçao
Tipo a bomba de anti e bugada . tipo eu vo la e compro todas as bombas de anti derrepente um outro player vai la
e pode compra mais ai fica foda

Código:

   #include <amxmodx>
    #include <amxmisc>
    #include <fakemeta>
    #include <zombieplague>
    #include <hamsandwich>
    #include <fakemeta_util>

    #define PLUGIN "Nowy Plugin"
    #define VERSION "1.0"
    #define AUTHOR "Sn!ff3r"

    new const NADE_TYPE_ANTIDOTEBOMB = 6969
    new const Float:RADIUS = 240.0
    new const sprite_grenade_trail[] = "sprites/laserbeam.spr"
    new const sprite_grenade_ring[] = "sprites/shockwave.spr"
    new const item_cost = 70
    new const item_name[] = "Bomba antidoto"
    new const model_grenade_infect[] = "models/zombie_plague/v_grenade_infect.mdl"

    new item_id
    new has_bomb[33]
    new cvar_enabled, cvar_fragsinfect, cvar_ammoinfect, cvar_humanbonushp, cvar_flaregrenades
    new g_trailSpr, g_exploSpr, g_msgScoreInfo, g_msgDeathMsg, g_msgScoreAttrib
    new bought_limit[33], cvar_limit_bought

    public plugin_init()
    {
       register_plugin(PLUGIN, VERSION, AUTHOR)
      
      RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade")
       RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
      
      register_forward(FM_SetModel, "fw_SetModel")  
      register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
       register_message(get_user_msgid("CurWeapon"), "message_cur_weapon")
      
      cvar_enabled = register_cvar("zp_antidote_bomb","1")
       cvar_fragsinfect = get_cvar_pointer("zp_zombie_frags_for_infect")
       cvar_ammoinfect = get_cvar_pointer("zp_zombie_infect_reward")
       cvar_humanbonushp = register_cvar("zp_antidote_bomb_extra_hp","50")  
      cvar_flaregrenades = get_cvar_pointer("zp_flare_grenades")
       cvar_limit_bought = register_cvar("zp_antidote_bomb_limit", "3")
      
      g_msgScoreInfo = get_user_msgid("ScoreInfo")
       g_msgDeathMsg = get_user_msgid("DeathMsg")
       g_msgScoreAttrib = get_user_msgid("ScoreAttrib")
    }

    public event_round_start()
    {
       for(new id = 1; id <= get_maxplayers(); id++)
       {
          bought_limit[id] = 0
       }
    }

    public plugin_precache()
    {
       g_trailSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_trail)
       g_exploSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_ring)
      
      engfunc(EngFunc_PrecacheModel, model_grenade_infect)
      
      item_id = zp_register_extra_item(item_name,item_cost,ZP_TEAM_HUMAN)
    }

    public client_disconnect(id)
    {
       has_bomb[id] = 0
    }

    public zp_extra_item_selected(player, itemid)
    {
       if(itemid == item_id)
       {
          if(bought_limit[player] >= get_pcvar_num(cvar_limit_bought))
          {
             client_print(player, print_chat, "[ZP] Ja tacaram muitas bombas antidotos e nao podera atacar mais ")
             zp_set_user_ammo_packs(player, zp_get_user_ammo_packs(player) + item_cost)
             return;
          }
          else
          {
             has_bomb[player] = 1  
            bought_limit[player]++
             fm_strip_user_gun(player,9)
             fm_give_item(player,"weapon_smokegrenade")
          }
       }
      
   }

    public fw_PlayerKilled(victim, attacker, shouldgib)
    {
       has_bomb[victim] = 0  
   }

    public fw_ThinkGrenade(entity)
    {
       static Float:dmgtime
       pev(entity, pev_dmgtime, dmgtime)
      
      if (dmgtime > get_gametime())
          return HAM_IGNORED  
         
       if(pev(entity, pev_flTimeStepSound) == NADE_TYPE_ANTIDOTEBOMB)
          antidote_explode(entity)
      
      return HAM_SUPERCEDE
    }

    public fw_SetModel(entity, const model[])
    {
       if(!get_pcvar_num(cvar_enabled))
          return  
     
      static Float:dmgtime
       pev(entity, pev_dmgtime, dmgtime)
      
      if (dmgtime == 0.0)
          return
      
      if (equal(model[7], "w_sm", 4))
       {      
          new owner = pev(entity, pev_owner)      
          
          if(!zp_get_user_zombie(owner) && has_bomb[owner])
          {
             set_pcvar_num(cvar_flaregrenades,0)        
           
            fm_set_rendering(entity, kRenderFxGlowShell, 255, 128, 0, kRenderNormal, 16)
            
            message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
             write_byte(TE_BEAMFOLLOW) // TE id
             write_short(entity) // entity
             write_short(g_trailSpr) // sprite
             write_byte(10) // life
             write_byte(10) // width
             write_byte(255) // r
             write_byte(128) // g
             write_byte(0) // b
             write_byte(200) // brightness
             message_end()
            
            set_pev(entity, pev_flTimeStepSound, NADE_TYPE_ANTIDOTEBOMB)
          }
       }
      
   }


    public antidote_explode(ent)
    {
       if (!zp_has_round_started()) return
      
      set_pcvar_num(cvar_flaregrenades,1)
      
      static Float:originF[3]
       pev(ent, pev_origin, originF)
      
      create_blast(originF)  
     
      //engfunc(EngFunc_EmitSound, ent, CHAN_WEAPON, grenade_infect[random_num(0, sizeof grenade_infect - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
      
      static attacker
       attacker = pev(ent, pev_owner)
      
      has_bomb[attacker] = 0
          
       static victim
       victim = -1
       while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, originF, RADIUS)) != 0)
       {
          if (!is_user_alive(victim) || !zp_get_user_zombie(victim) || zp_get_user_nemesis(victim) || zp_get_user_first_zombie(victim) || zp_get_user_last_zombie(victim))
             continue
          
          SendDeathMsg(attacker, victim)
          FixDeadAttrib(victim)
          UpdateFrags(attacker, victim, get_pcvar_num(cvar_fragsinfect), 1, 1)
          zp_disinfect_user(victim)
          zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker) + get_pcvar_num(cvar_ammoinfect))
          fm_set_user_health(attacker, pev(attacker, pev_health)+get_pcvar_num(cvar_humanbonushp))
          
       }
      
      engfunc(EngFunc_RemoveEntity, ent)
    }

    public create_blast(const Float:originF[3])
    {
       engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
       write_byte(TE_BEAMCYLINDER) // TE id
       engfunc(EngFunc_WriteCoord, originF[0]) // x
       engfunc(EngFunc_WriteCoord, originF[1]) // y
       engfunc(EngFunc_WriteCoord, originF[2]) // z
       engfunc(EngFunc_WriteCoord, originF[0]) // x axis
       engfunc(EngFunc_WriteCoord, originF[1]) // y axis
       engfunc(EngFunc_WriteCoord, originF[2]+385.0) // z axis
       write_short(g_exploSpr) // sprite
       write_byte(0) // startframe
       write_byte(0) // framerate
       write_byte(4) // life
       write_byte(60) // width
       write_byte(0) // noise
       write_byte(255) // red
       write_byte(128) // green
       write_byte(0) // blue
       write_byte(200) // brightness
       write_byte(0) // speed
       message_end()
      
      engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
       write_byte(TE_BEAMCYLINDER) // TE id
       engfunc(EngFunc_WriteCoord, originF[0]) // x
       engfunc(EngFunc_WriteCoord, originF[1]) // y
       engfunc(EngFunc_WriteCoord, originF[2]) // z
       engfunc(EngFunc_WriteCoord, originF[0]) // x axis
       engfunc(EngFunc_WriteCoord, originF[1]) // y axis
       engfunc(EngFunc_WriteCoord, originF[2]+470.0) // z axis
       write_short(g_exploSpr) // sprite
       write_byte(0) // startframe
       write_byte(0) // framerate
       write_byte(4) // life
       write_byte(60) // width
       write_byte(0) // noise
       write_byte(255) // red
       write_byte(164) // green
       write_byte(0) // blue
       write_byte(200) // brightness
       write_byte(0) // speed
       message_end()
      
      engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
       write_byte(TE_BEAMCYLINDER) // TE id
       engfunc(EngFunc_WriteCoord, originF[0]) // x
       engfunc(EngFunc_WriteCoord, originF[1]) // y
       engfunc(EngFunc_WriteCoord, originF[2]) // z
       engfunc(EngFunc_WriteCoord, originF[0]) // x axis
       engfunc(EngFunc_WriteCoord, originF[1]) // y axis
       engfunc(EngFunc_WriteCoord, originF[2]+555.0) // z axis
       write_short(g_exploSpr) // sprite
       write_byte(0) // startframe
       write_byte(0) // framerate
       write_byte(4) // life
       write_byte(60) // width
       write_byte(0) // noise
       write_byte(255) // red
       write_byte(200) // green
       write_byte(0) // blue
       write_byte(200) // brightness
       write_byte(0) // speed
       message_end()
    }

    public UpdateFrags(attacker, victim, frags, deaths, scoreboard)
    {
       set_pev(attacker, pev_frags, float(pev(attacker, pev_frags) + frags))
      
      fm_set_user_deaths(victim, fm_get_user_deaths(victim) + deaths)
      
      if (scoreboard)
       {  
         message_begin(MSG_BROADCAST, g_msgScoreInfo)
          write_byte(attacker) // id
          write_short(pev(attacker, pev_frags)) // frags
          write_short(fm_get_user_deaths(attacker)) // deaths
          write_short(0) // class?
          write_short(fm_get_user_team(attacker)) // team
          message_end()
          
          message_begin(MSG_BROADCAST, g_msgScoreInfo)
          write_byte(victim) // id
          write_short(pev(victim, pev_frags)) // frags
          write_short(fm_get_user_deaths(victim)) // deaths
          write_short(0) // class?
          write_short(fm_get_user_team(victim)) // team
          message_end()
       }
    }

    stock fm_set_user_deaths(id, value)
    {
       set_pdata_int(id, 444, value, 5)
    }

    stock fm_get_user_deaths(id)
    {
       return get_pdata_int(id, 444, 5)
    }


    stock fm_get_user_team(id)
    {
       return get_pdata_int(id, 114, 5)
    }

    public SendDeathMsg(attacker, victim)
    {
       message_begin(MSG_BROADCAST, g_msgDeathMsg)
       write_byte(attacker) // killer
       write_byte(victim) // victim
       write_byte(1) // headshot flag
       write_string("grenade") // killer's weapon
       message_end()
    }

    public FixDeadAttrib(id)
    {
       message_begin(MSG_BROADCAST, g_msgScoreAttrib)
       write_byte(id) // id
       write_byte(0) // attrib
       message_end()
    }

    public replace_models(id)
    {
       if (!is_user_alive(id))
          return
      
      if(get_user_weapon(id) == CSW_SMOKEGRENADE && has_bomb[id])
       {
          set_pev(id, pev_viewmodel2, model_grenade_infect)
          
       }
    }

    public message_cur_weapon(msg_id, msg_dest, msg_entity)
    {
       replace_models(msg_entity)
    }


Última edição por Systemplayer em 10/12/2013, 6:25 pm, editado 2 vez(es)

description[DUVIDA] Aki Rapaziada EmptyRe: [DUVIDA] Aki Rapaziada

more_horiz
São duas smas iguais, e mesmo assim nao entendir, voce não colocou o valor de quantas pessoas podem comprar, eo titulo do tópico esta incorreto coloque [Duvida] Antes de escrever.

description[DUVIDA] Aki Rapaziada EmptyRe: [DUVIDA] Aki Rapaziada

more_horiz
Da uma arrumada no título do tópico

Aqui está um tutorial de como colocar um limite de compra em um item extra 

E em baixa tem a sma pronta da granada de antidoto de uma olhada:

https://zplague.forumeiro.com/t5293-tutorial-colocando-limite-de-compras-em-um-item-extra?highlight=colocando+limite

description[DUVIDA] Aki Rapaziada EmptyRe: [DUVIDA] Aki Rapaziada

more_horiz
A Bomba de antidoto e do Perfect Scrash eu queria que arrumasei.
E o plugin da vida extra eu queria que botassem esse tutorial do perfect scrash
por que nao sou bom de scripter !

description[DUVIDA] Aki Rapaziada EmptyRe: [DUVIDA] Aki Rapaziada

more_horiz
Systemplayer escreveu:
A Bomba de antidoto e do Perfect Scrash eu queria que arrumasei.
E o plugin da vida extra eu queria que botassem esse tutorial do perfect scrash
por que nao sou bom de scripter !


Manda a SMA pra eu ajudar.

description[DUVIDA] Aki Rapaziada EmptyRe: [DUVIDA] Aki Rapaziada

more_horiz
Bom pessoal vô fazer um tutorial de como colcar limite em um item extra. Diferente do outro (que limita pela quantidade de players usando o mesmo item) esse dai var ser por limites de compra por round.

1º Passo: Escolha uma sma de algum item extra (eu usarei a antidote bomb como exemplo)

2º Passo: Abra a sma e coloque isso junto com as news

new bought_limit[33], cvar_limit_bought

3º Passo: Registrando a cvar.

Coloque isso em dentro do plugin_init()

cvar_limit_bought = register_cvar("zp_antidote_bomb_limit", "(Quantia)")

OBS: A quantia pode ser alterada pra 1, 2, 3 e por ai vai.

4º Passo: Fazendo o Limite Funcionar.

Vai ate o zp_extra_item_selected e coloque isso em dentro dele:

if(bought_limit[player] >= get_pcvar_num(cvar_limit_boughts))
{
              client_print(player, print_chat, "[ZP] Ja tacaram muitas bombas antidotos e nao podera atacar mais ")                                   zp_set_user_ammo_packs(player, zp_get_user_ammo_packs(player) + item_cost)
              return;
}

Feito isso vai ate onde fica os g_has[player] = true no extra_item_selected e coloque isso abaixo:

bought_limit[player]++

5º Passo: Zerando o contador

Feito isso vai ate o event_round_start e coloque isso de baixo na parte em que tem os g_has[player] = false OBS: Não é no infected_post ou outros que tenha g_has[player] = false sempre tem que ser na public do round_start.

for(new id = 1; id <= get_maxplayers(); id++) 
{
g_has[id] = false
bought_limit[id] = 0
}

Caso na sma não tenha esse event_round_start coloque isso em dentro do plugin_init():

register_event("HLTV", "event_round_start", "a", "1=0", "2=0")

E depois coloque isso em qualquer parte do plugin (de preferencia no final):

public event_round_start() 
{
for(new id = 1; id <= g_maxplayers; id++) 
{
bought_limit[id] = 0
}
}

E pronto.

OBS: Caso queira colocar o limite de compras por mapa o 5º Passo não sera necessario só ate o 4º Passo o limite conta por mapa.


SMA PRONTA:

Código:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <zombieplague>
#include <hamsandwich>
#include <fakemeta_util>

#define PLUGIN "Nowy Plugin"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"

new const NADE_TYPE_ANTIDOTEBOMB = 6969
new const Float:RADIUS = 240.0
new const sprite_grenade_trail[] = "sprites/laserbeam.spr"
new const sprite_grenade_ring[] = "sprites/shockwave.spr"
new const item_cost = 60
new const item_name[] = "Bomba antidoto"
new const model_grenade_infect[] = "models/zombie_plague/v_grenade_infect.mdl"

new item_id
new has_bomb[33]
new cvar_enabled, cvar_fragsinfect, cvar_ammoinfect, cvar_humanbonushp, cvar_flaregrenades
new g_trailSpr, g_exploSpr, g_msgScoreInfo, g_msgDeathMsg, g_msgScoreAttrib
new bought_limit[33], cvar_limit_bought

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
  
   RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade")
   RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
  
   register_forward(FM_SetModel, "fw_SetModel")  
   register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
   register_message(get_user_msgid("CurWeapon"), "message_cur_weapon")
  
   cvar_enabled = register_cvar("zp_antidote_bomb","1")
   cvar_fragsinfect = get_cvar_pointer("zp_zombie_frags_for_infect")
   cvar_ammoinfect = get_cvar_pointer("zp_zombie_infect_reward")
   cvar_humanbonushp = register_cvar("zp_antidote_bomb_extra_hp","10")  
   cvar_flaregrenades = get_cvar_pointer("zp_flare_grenades")
   cvar_limit_bought = register_cvar("zp_antidote_bomb_limit", "3")
  
   g_msgScoreInfo = get_user_msgid("ScoreInfo")
   g_msgDeathMsg = get_user_msgid("DeathMsg")
   g_msgScoreAttrib = get_user_msgid("ScoreAttrib")
}

public event_round_start()
{
   for(new id = 1; id <= get_maxplayers(); id++)
   {
      bought_limit[id] = 0
   }
}

public plugin_precache()
{
   g_trailSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_trail)
   g_exploSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_ring)
  
   engfunc(EngFunc_PrecacheModel, model_grenade_infect)
  
   item_id = zp_register_extra_item(item_name,item_cost,ZP_TEAM_HUMAN)
}

public client_disconnect(id)
{
   has_bomb[id] = 0
}

public zp_extra_item_selected(player, itemid)
{
   if(itemid == item_id)
   {
      if(bought_limit[player] >= get_pcvar_num(cvar_limit_bought))
      {
         client_print(player, print_chat, "[ZP] Ja tacaram muitas bombas antidotos e nao podera atacar mais ")
         zp_set_user_ammo_packs(player, zp_get_user_ammo_packs(player) + item_cost)
         return;
      }
      else
      {
         has_bomb[player] = 1  
         bought_limit[player]++
         fm_strip_user_gun(player,9)
         fm_give_item(player,"weapon_smokegrenade")
      }
   }
  
}

public fw_PlayerKilled(victim, attacker, shouldgib)
{
   has_bomb[victim] = 0  
}

public fw_ThinkGrenade(entity)
{
   static Float:dmgtime
   pev(entity, pev_dmgtime, dmgtime)
  
   if (dmgtime > get_gametime())
      return HAM_IGNORED  
      
   if(pev(entity, pev_flTimeStepSound) == NADE_TYPE_ANTIDOTEBOMB)
      antidote_explode(entity)
  
   return HAM_SUPERCEDE
}

public fw_SetModel(entity, const model[])
{
   if(!get_pcvar_num(cvar_enabled))
      return  
  
   static Float:dmgtime
   pev(entity, pev_dmgtime, dmgtime)
  
   if (dmgtime == 0.0)
      return
  
   if (equal(model[7], "w_sm", 4))
   {      
      new owner = pev(entity, pev_owner)      
      
      if(!zp_get_user_zombie(owner) && has_bomb[owner])
      {
         set_pcvar_num(cvar_flaregrenades,0)        
        
         fm_set_rendering(entity, kRenderFxGlowShell, 255, 128, 0, kRenderNormal, 16)
        
         message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
         write_byte(TE_BEAMFOLLOW) // TE id
         write_short(entity) // entity
         write_short(g_trailSpr) // sprite
         write_byte(10) // life
         write_byte(10) // width
         write_byte(255) // r
         write_byte(128) // g
         write_byte(0) // b
         write_byte(200) // brightness
         message_end()
        
         set_pev(entity, pev_flTimeStepSound, NADE_TYPE_ANTIDOTEBOMB)
      }
   }
  
}


public antidote_explode(ent)
{
   if (!zp_has_round_started()) return
  
   set_pcvar_num(cvar_flaregrenades,1)
  
   static Float:originF[3]
   pev(ent, pev_origin, originF)
  
   create_blast(originF)  
  
   //engfunc(EngFunc_EmitSound, ent, CHAN_WEAPON, grenade_infect[random_num(0, sizeof grenade_infect - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
  
   static attacker
   attacker = pev(ent, pev_owner)
  
   has_bomb[attacker] = 0
      
   static victim
   victim = -1
   while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, originF, RADIUS)) != 0)
   {
      if (!is_user_alive(victim) || !zp_get_user_zombie(victim) || zp_get_user_nemesis(victim) || zp_get_user_first_zombie(victim) || zp_get_user_last_zombie(victim))
         continue
      
      SendDeathMsg(attacker, victim)
      FixDeadAttrib(victim)
      UpdateFrags(attacker, victim, get_pcvar_num(cvar_fragsinfect), 1, 1)
      zp_disinfect_user(victim)
      zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker) + get_pcvar_num(cvar_ammoinfect))
      fm_set_user_health(attacker, pev(attacker, pev_health)+get_pcvar_num(cvar_humanbonushp))
      
   }
  
   engfunc(EngFunc_RemoveEntity, ent)
}

public create_blast(const Float:originF[3])
{
   engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
   write_byte(TE_BEAMCYLINDER) // TE id
   engfunc(EngFunc_WriteCoord, originF[0]) // x
   engfunc(EngFunc_WriteCoord, originF[1]) // y
   engfunc(EngFunc_WriteCoord, originF[2]) // z
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+385.0) // z axis
   write_short(g_exploSpr) // sprite
   write_byte(0) // startframe
   write_byte(0) // framerate
   write_byte(4) // life
   write_byte(60) // width
   write_byte(0) // noise
   write_byte(255) // red
   write_byte(128) // green
   write_byte(0) // blue
   write_byte(200) // brightness
   write_byte(0) // speed
   message_end()
  
   engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
   write_byte(TE_BEAMCYLINDER) // TE id
   engfunc(EngFunc_WriteCoord, originF[0]) // x
   engfunc(EngFunc_WriteCoord, originF[1]) // y
   engfunc(EngFunc_WriteCoord, originF[2]) // z
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+470.0) // z axis
   write_short(g_exploSpr) // sprite
   write_byte(0) // startframe
   write_byte(0) // framerate
   write_byte(4) // life
   write_byte(60) // width
   write_byte(0) // noise
   write_byte(255) // red
   write_byte(164) // green
   write_byte(0) // blue
   write_byte(200) // brightness
   write_byte(0) // speed
   message_end()
  
   engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
   write_byte(TE_BEAMCYLINDER) // TE id
   engfunc(EngFunc_WriteCoord, originF[0]) // x
   engfunc(EngFunc_WriteCoord, originF[1]) // y
   engfunc(EngFunc_WriteCoord, originF[2]) // z
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+555.0) // z axis
   write_short(g_exploSpr) // sprite
   write_byte(0) // startframe
   write_byte(0) // framerate
   write_byte(4) // life
   write_byte(60) // width
   write_byte(0) // noise
   write_byte(255) // red
   write_byte(200) // green
   write_byte(0) // blue
   write_byte(200) // brightness
   write_byte(0) // speed
   message_end()
}

public UpdateFrags(attacker, victim, frags, deaths, scoreboard)
{
   set_pev(attacker, pev_frags, float(pev(attacker, pev_frags) + frags))
  
   fm_set_user_deaths(victim, fm_get_user_deaths(victim) + deaths)
  
   if (scoreboard)
   {  
      message_begin(MSG_BROADCAST, g_msgScoreInfo)
      write_byte(attacker) // id
      write_short(pev(attacker, pev_frags)) // frags
      write_short(fm_get_user_deaths(attacker)) // deaths
      write_short(0) // class?
      write_short(fm_get_user_team(attacker)) // team
      message_end()
      
      message_begin(MSG_BROADCAST, g_msgScoreInfo)
      write_byte(victim) // id
      write_short(pev(victim, pev_frags)) // frags
      write_short(fm_get_user_deaths(victim)) // deaths
      write_short(0) // class?
      write_short(fm_get_user_team(victim)) // team
      message_end()
   }
}

stock fm_set_user_deaths(id, value)
{
   set_pdata_int(id, 444, value, 5)
}

stock fm_get_user_deaths(id)
{
   return get_pdata_int(id, 444, 5)
}


stock fm_get_user_team(id)
{
   return get_pdata_int(id, 114, 5)
}

public SendDeathMsg(attacker, victim)
{
   message_begin(MSG_BROADCAST, g_msgDeathMsg)
   write_byte(attacker) // killer
   write_byte(victim) // victim
   write_byte(1) // headshot flag
   write_string("grenade") // killer's weapon
   message_end()
}

public FixDeadAttrib(id)
{
   message_begin(MSG_BROADCAST, g_msgScoreAttrib)
   write_byte(id) // id
   write_byte(0) // attrib
   message_end()
}

public replace_models(id)
{
   if (!is_user_alive(id))
      return
  
   if(get_user_weapon(id) == CSW_SMOKEGRENADE && has_bomb[id])
   {
      set_pev(id, pev_viewmodel2, model_grenade_infect)
      
   }
}

public message_cur_weapon(msg_id, msg_dest, msg_entity)
{
   replace_models(msg_entity)
}



Última edição por [D]etonado[R] em 10/12/2013, 6:27 pm, editado 1 vez(es) (Motivo da edição : Creditos ao: [P]erfec[T] [S]cr[@]s[H])

description[DUVIDA] Aki Rapaziada EmptyRe: [DUVIDA] Aki Rapaziada

more_horiz
Ta ai o link dos plugins

https://www.dropbox.com/s/j7qf5ywar6z9jbe/plugins%20sma.rar

description[DUVIDA] Aki Rapaziada EmptyRe: [DUVIDA] Aki Rapaziada

more_horiz
Lixeira, titulo do tópico incorreto.

description[DUVIDA] Aki Rapaziada EmptyRe: [DUVIDA] Aki Rapaziada

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