Zumbis Online
Últimos assuntos
» [ZP AMXX] CSO Shop Costumes
por Eclipse 13/12/2017, 9:32 pm

» Servidores da P[c]T eGames
por scho 3/12/2017, 4:22 pm

» (Ajuda) ZM VIP com Status do Perfect por Menssagem para Dono tambem!
por scho 26/11/2017, 9:09 am

» Voltei ao fórum
por zgd.dll 25/11/2017, 12:20 am

» plugin gamemode infection
por cancels 21/11/2017, 10:22 pm

» plugin ap force_jump
por cancels 21/11/2017, 9:29 pm

» plugin gamemode sniper
por cancels 21/11/2017, 7:58 pm

» plugin class zm_climb
por [P]erfec[T] [S]cr[@]s[H] 17/11/2017, 5:46 pm

» plugin item t-virus
por [P]erfec[T] [S]cr[@]s[H] 17/11/2017, 5:39 pm

» Hide Sheek Supply Box
por cancels 12/11/2017, 9:00 pm

Frases filosóficas Zplague:
....
Os membros mais ativos da semana
Eclipse
 

Adsense

[Plugin] Galil Suprema

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Plugin] Galil Suprema

Mensagem por Dexter em 9/10/2013, 1:44 pm

galera eu fiz esse plugin a galil suprema
Descrição: Rastro Vermelho,Dano x3.5,Ganha 150 de colete e 150 de hp e pega choque nos zombie
Créditos:Dexter | [P]erfec[T] [S]cr[@]s[H](ele sempre me ajuda nas merda q eu faço k'-')
Imagem:

Download:
mediafire.com download/j4eg6dcwdudvdaj/Galil_Suprema[Zplague


Última edição por Dexter em 9/10/2013, 1:59 pm, editado 4 vez(es)

____________________________________________

http://cs-word.blogspot.com.br/ < Blog de Zombie 1.6 :)

CSWORD
avatar
Dexter
Humano
Humano

Nick : Dexter
Masculino Número de Mensagens : 913
'-'
Ammo Packs : 1143
Honra : -3
Data de inscrição : 28/04/2013

Ver perfil do usuário http://steamcommunity.com/id/DexterMP/ http://tudo-para-seu-zm.blogspot.com.br/ sly.dexter

Voltar ao Topo Ir em baixo

Re: [Plugin] Galil Suprema

Mensagem por Lucas157 em 9/10/2013, 1:45 pm

Seria bom se mudasse de skin --'

____________________________________________


Lucas Gabriel




Ajudei + REP 
Skype Lucas.cb5:
avatar
Lucas157
Humano
Humano

Nick : Lucas CB
Masculino Número de Mensagens : 182
Ahah venham style zombie plague 4.3 add skype lucas.cb5
Ammo Packs : 1597
Honra : -7
Data de inscrição : 30/08/2013

Ver perfil do usuário lucas.cb5

Voltar ao Topo Ir em baixo

Re: [Plugin] Galil Suprema

Mensagem por S4MuR41 em 9/10/2013, 1:47 pm

Legal, vou usar no meu servidor :)

____________________________________________

.            .     
avatar
S4MuR41
Humano
Humano

Nick : TK | FreeKiLL
Masculino Número de Mensagens : 102
Dormindo
Ammo Packs : 1932
Honra : 10
Data de inscrição : 08/10/2012

Ver perfil do usuário mercenario.gabriel

Voltar ao Topo Ir em baixo

Re: [Plugin] Galil Suprema

Mensagem por [P]erfec[T] [S]cr[@]s[H] em 9/10/2013, 1:50 pm

Há Detectei um bug. Ela fica com o dmg em todas as armas e não só a galil.

Corrigi ai pra ti:
Código:
/*===============================================================================
[Includes]
=================================================================================*/
#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <zombieplague>
#include < fun >
#include <fakemeta_util>
#include <cstrike>

/*===============================================================================
[Defines & Consts]
=================================================================================*/
#define TASK_AURA 27000

new cvar_dmg
new g_itemid, cvar_health, cvar_armor, cvar_tracer, cvar_custommodel

new bool:g_has_galil_suprema[33], g_maxplayers, m_spriteTexture, cvar_lampere_eletro_dmg, cvar_eletro_time
new cvar_eletro_minhp, cvar_eletro_delay, shock_sprite
new cvar_cLampereEletrocutDmg, cvar_celetro_time, Float:cvar_celetro_delay, cvar_celetro_minhp
new bullets[33]
new Time_Eletrocuting[33]
new g_alterady_shock[33]

new GALIL_SUPREMA_V_MODEL[64] = "models/zombie_plague/v_galil_suprema.mdl"
new GALIL_SUPREMA_P_MODEL[64] = "models/zombie_plague/p_galil_suprema.mdl"
 
const galil_suprema_cost = 90

#if cellbits == 32
const OFFSET_CLIPAMMO = 51
#else
const OFFSET_CLIPAMMO = 65
#endif
const OFFSET_LINUX_WEAPONS = 4

#define IsValidUser(%1) (1 <= %1 <= g_maxplayers)

/*===============================================================================
[Registro do Plugin]
=================================================================================*/
public plugin_init()
{
   // Registro do Plugin
   register_plugin("[ZP] Extra Item: Galil [Suprema]" , "1.0", "Dexter | [P]erfec[T] [S]cr[@]s[H]") // Bote meus creditos afinal fui eu q editei
   
   // Eventos Que Ocorrera
   RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
   RegisterHam(Ham_TakeDamage, "player", "fw_lampere_power") // Farto Registra o Evento
   register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
   register_event("HLTV", "cache_cvars", "a", "1=0", "2=0")
   register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
   register_cvar ("zp_extra_damage", "1.0", FCVAR_SERVER)
   register_event("CurWeapon", "event_CurWeapon", "b", "1=1")

   // Registro do Item
   g_itemid = zp_register_extra_item("Galil [Suprema]", galil_suprema_cost, ZP_TEAM_HUMAN)
   
   // Cvars
   cvar_dmg = register_cvar ("zp_galil_suprema_dmg_wpn", "3.5")         // Dmg Das Balas
   cvar_tracer = register_cvar("zp_galil_suprema_rastro", "1")         // Rastro das Balas (0 - Desligado | 1 - Ligado)
   cvar_health = register_cvar ("zp_galil_suprema_health", "150")         // Quanto de Vida Ganhara ao Comprar o Item ?
   cvar_armor = register_cvar ("zp_galil_suprema_armor", "150")         // Quanto de Colete Ganhara ao Comprar o Item ?
   cvar_custommodel = register_cvar("zp_galil_suprema_custom_model", "1")        // Model Personalizado (0 - Desligado | 1 - Ligado)
   cvar_eletro_time = register_cvar("zp_galil_lampere_eletro_time", "12")      // Tempo que ira ficar sendo eletreocutado
   cvar_eletro_delay = register_cvar("zp_galil_lampere_eletro_delay", "4.0")   // Tempo que levara para que o zm possa ser eletreocutado de novo
   cvar_eletro_minhp = register_cvar("zp_galil_lampere_eletro_minhp", "50")      // Quantidade minima de hp para levar Choque
   cvar_lampere_eletro_dmg = register_cvar("zp_galil_lampere_eletro_dmg", "30")   // Dmg do Choque (quando eletreocuta o zm)
   
   // Prevenção de Bugs ao Finalizar o Round
   g_maxplayers = get_maxplayers()
}
/*===============================================================================
[Precache]
=================================================================================*/
public plugin_precache()
{
   m_spriteTexture = precache_model("sprites/dot.spr")
   
   // Models
   precache_model(GALIL_SUPREMA_V_MODEL)
   precache_model(GALIL_SUPREMA_P_MODEL)
   
   // Sprite do Trovao
   shock_sprite = precache_model("sprites/lgtning.spr");
   precache_sound( "ambience/thunder_clap.wav" )
}


/*===============================================================================
[Prevenções de Bugs]
=================================================================================*/

// Quando o Round Começar
public event_round_start()
{
   for(new id = 1; id <= g_maxplayers; id++)
   {
      g_has_galil_suprema[id] = false   
      remove_task(id + TASK_AURA)
   }
}

public cache_cvars()
{
   cvar_cLampereEletrocutDmg = get_pcvar_num(cvar_lampere_eletro_dmg)
   cvar_celetro_time = get_pcvar_num(cvar_eletro_time)
   cvar_celetro_delay = get_pcvar_float(cvar_eletro_delay)
   cvar_celetro_minhp = get_pcvar_num(cvar_eletro_minhp)
}

// Quando o Jogador Desconecta do Server
public client_disconnect(id)
{
   remove_task(id + TASK_AURA)  
}

// Quando o Jogador Vira ZM
public zp_user_infected_post(id, infected, infector)
{
   if (g_has_galil_suprema[id])
   {
      g_has_galil_suprema[id] = false
      remove_task(id + TASK_AURA)
   }
}

// Quando o Jogador Usa Antidoto
public zp_user_humanized_post(id, human)
{
   if (g_has_galil_suprema[id])
   {
      g_has_galil_suprema[id] = false
   }
}

// Quando o Jogador Virar Survivor ou Sniper
public zp_user_humanized_pre(id)
{
   if (g_has_galil_suprema[id])
   {
      g_has_galil_suprema[id] = false
      remove_task(id + TASK_AURA)
   }
}

// Quando o Jogador estiver Morto (Bom pra quem quer converter pra VIP)
public fw_player_killed(victim, attacker, shouldgib)
{
   if(g_has_galil_suprema[victim])
   {
      //client_printcolor(victim, "^4[ZP] ^1Voce Nao Pode Comprar o ^3Modo Brasileiro^4!!!")
      g_has_galil_suprema[victim] = false
   }
}
/*===============================================================================
[Ações ao Escolher o Item]
=================================================================================*/
public zp_extra_item_selected(player, itemid)
{
   if (itemid == g_itemid)
   {
      if(g_has_galil_suprema[player])
      {
         client_printcolor(player, "^4[ZP] ^1Voce Ja Tem a ^3Galil [Suprema]^4!!!")
         zp_set_user_ammo_packs(player, zp_get_user_ammo_packs(player) + galil_suprema_cost)
         return;
      }
      if (!zp_has_round_started())
      {
         client_printcolor(player, "^4[ZP] ^1Espere o round comecar...", player, "WAIT")
         zp_set_user_ammo_packs(player, zp_get_user_ammo_packs(player) + galil_suprema_cost)
         
         return;
      }  
      else
      {
         new name[32]
         new param[1]
         param[0] = player
         g_has_galil_suprema[player] = true
         fm_set_user_health(player, get_user_health(player) + get_pcvar_num(cvar_health));
         fm_set_user_armor(player, get_user_armor(player) + get_pcvar_num(cvar_armor));
         
         get_user_name(player, name, 31)
         client_printcolor(player, "^4[ZP] ^1Voce Comprou a ^3Galil [Suprema] ^4!!")
         client_printcolor(player, "^4[ZP] ^1Voce Ganhou 150 De Hp e 150 De Colete")
         give_item(player, "weapon_galil")
         cs_set_user_bpammo(player, CSW_GALIL, 90)
      }
   }
}
/*===============================================================================
[Fara a model aparecer]
=================================================================================*/
public event_CurWeapon(id)
{
   if ( zp_get_user_zombie(id) )
   return PLUGIN_HANDLED
  
   new g_Weapon = read_data(2)
  
   if ( g_Weapon == CSW_GALIL && g_has_galil_suprema[id] && get_pcvar_num(cvar_custommodel) )
   {
      set_pev(id, pev_viewmodel2, GALIL_SUPREMA_V_MODEL)
      set_pev(id, pev_weaponmodel2, GALIL_SUPREMA_P_MODEL)
   }
   return PLUGIN_CONTINUE
}
/*===============================================================================
[Poder do Lampere]
================================================================================*/
public fw_lampere_power(victim, inflictor, attacker, Float:damage, damage_type)
{
   if( IsValidUser( attacker ) && victim != attacker && zp_get_user_zombie( victim )
   && g_has_galil_suprema[ attacker ] && get_user_weapon( attacker ) == CSW_GALIL && !g_alterady_shock[ victim ] && get_user_health( victim ) > cvar_celetro_minhp ) // Farto Colocar a CSW_Galil Aqui Pois se n ele deixaria todas as armas a atirar choque
   {
         // Efeito da Aura
         static Float:originF[3]
         pev(victim, pev_origin, originF)
      
         // Eletrocuting / ON
         g_alterady_shock[ victim ] = true
      
         // Set Eletrocuting time
         Time_Eletrocuting[ victim ] = cvar_celetro_time
      
         // Efeito da Aura
         ShockAuraEffect(originF)
      
         // Eletrocuting victim
         Eletrocuting( victim )
   
   }
}

public Eletrocuting( victim )
{
   // Get user origin
   static Origin[ 3 ] ; get_user_origin( victim, Origin )
   
   new vorigin[3],srco[3];
   get_user_origin(victim, vorigin);
   vorigin[2] -= 26
   srco[0] = vorigin[0] + 150
   srco[1] = vorigin[1] + 150
   srco[2] = vorigin[2] + 800
   
   // If Eletrocuting time is over or victim are in water
   if( Time_Eletrocuting[ victim ] <= 0 || get_entity_flags( victim ) & FL_INWATER )
   {   
      // Delay to allow Eletrocuting again
      fm_set_rendering(victim, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 16);
      set_task( cvar_celetro_delay, "Stop_Eletrocuting", victim )
      
      // Exit
      return
   }
   else
   {   
      //Glow
      fm_set_rendering(victim, kRenderFxGlowShell, 255, 255, 255, kRenderNormal, 16);
      
      ShockSpr(srco,vorigin);
      ShockSpr(srco,vorigin);
      ShockSpr(srco,vorigin);   
      
      emit_sound(victim ,CHAN_ITEM, "ambience/thunder_clap.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
      //emit_sound(attacker ,CHAN_ITEM, "ambience/thunder_clap.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
      
      // Decrease Time
      Time_Eletrocuting[ victim ]--
      
      // Decrease life (random)
      fm_set_user_health( victim, get_user_health( victim ) -  cvar_cLampereEletrocutDmg )
      
      // Stop fire if health <= min health.
      if( get_user_health( victim ) <= cvar_celetro_minhp )
      {
         g_alterady_shock[ victim ] = false
         return
      }
      // Repeat
      set_task( 0.5, "Eletrocuting", victim )
   }
}

ShockAuraEffect(const Float:originF3[3])
{
   // Efeito da Aura
   engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF3, 0)
   write_byte(TE_DLIGHT) // TE id
   engfunc(EngFunc_WriteCoord, originF3[0]) // x
   engfunc(EngFunc_WriteCoord, originF3[1]) // y
   engfunc(EngFunc_WriteCoord, originF3[2]) // z
   write_byte(50) // radio
   write_byte(255) // r
   write_byte(255) // g
   write_byte(255) // b
   write_byte(30) // vida en 0.1, 30 = 3 segundos
   write_byte(30) // velocidad de decaimiento
   message_end()
}

ShockSpr(vec1[3],vec2[3])
{
   message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
   write_byte(0);
   write_coord(vec1[0]);
   write_coord(vec1[1]);
   write_coord(vec1[2]);
   write_coord(vec2[0]);
   write_coord(vec2[1]);
   write_coord(vec2[2]);
   write_short(shock_sprite);
   write_byte(1);
   write_byte(5);
   write_byte(2);
   write_byte(20);
   write_byte(30);
   write_byte(200);
   write_byte(200);
   write_byte(200);
   write_byte(200);
   write_byte(200);
   message_end();
   
   message_begin( MSG_PVS, SVC_TEMPENTITY,vec2);
   write_byte(9);
   write_coord(vec2[0]);
   write_coord(vec2[1]);
   write_coord(vec2[2]);
   message_end();
   
}

public Stop_Eletrocuting( victim )
{
      g_alterady_shock[ victim ] = false
}
public make_tracer(id)
{
   if (get_pcvar_num(cvar_tracer))
   {
      new clip,ammo
      new wpnid = get_user_weapon(id,clip,ammo)
      new pteam[16]
      
      get_user_team(id, pteam, 15)
      
      if ((bullets[id] > clip) && (wpnid == CSW_GALIL) && g_has_galil_suprema[id])
      {
         new vec1[3], vec2[3]
         get_user_origin(id, vec1, 1) // origin; your camera point.
         get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
         
         
         //BEAMENTPOINTS
         message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
         write_byte (0)     //TE_BEAMENTPOINTS 0
         write_coord(vec1[0])
         write_coord(vec1[1])
         write_coord(vec1[2])
         write_coord(vec2[0])
         write_coord(vec2[1])
         write_coord(vec2[2])
         write_short( m_spriteTexture )
         write_byte(1) // framestart
         write_byte(5) // framerate
         write_byte(2) // life
         write_byte(10) // width
         write_byte(0) // noise
         write_byte(255)     // r, g, b
         write_byte(0)       // r, g, b
         write_byte(0)       // r, g, b
         write_byte(200) // brightness
         write_byte(150) // speed
         message_end()
      }
   
      bullets[id] = clip
   }
   
}

/*===============================================================================
[O Dmg Dos Tiros]
=================================================================================*/
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
    if (is_user_connected(attacker) && get_user_weapon(attacker) == CSW_GALIL  && g_has_galil_suprema[attacker])
    {
        SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg))
    }
}
/*===============================================================================
[Mensagem Colorida (client_printcolor)]
=================================================================================*/
stock client_printcolor(const id, const input[], any:...)
{
   new count = 1, players[32]
   static msg[191]
   vformat(msg, 190, input, 3)
   
   replace_all(msg, 190, "/g", "^4")  // Chat Verde
   replace_all(msg, 190, "/y", "^1")  // Chat Normal
   replace_all(msg, 190, "/t", "^3")  // Chat Do Time Tr=Vermelho Ct=Azul Spec=Branco
   
   if (id) players[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();
         }
      }
   }
}
/*===============================================================================
[Stocks]
=================================================================================*/
stock fm_set_weapon_ammo(entity, amount)
{
   set_pdata_int(entity, OFFSET_CLIPAMMO, amount, OFFSET_LINUX_WEAPONS);
}

____________________________________________


Dicas Para Ser um Bom Scripter:
* Pense no Plugin que ira criar (Seja Inovador)
* Crie um código SMA imaginário na cabeça de como vai ser o plugin
* Passe o Codigo mental para o AMX Studio
* Compile e Teste
* Corrija Todos os Bugs do Plugin (Caso tiver um)
* Poste o Plugin ;)

** Seguindo as Dicas você estara no Padrão [P]erfec[T] [S]cr[@]s[H] **  
Zplague24 Zplague20Zplague12 
avatar
[P]erfec[T] [S]cr[@]s[H]
Scripter
Scripter

Masculino Número de Mensagens : 558
Jogador FODA Perfect Scrash entrou na zplague
Ammo Packs : 2006
Honra : 176
Data de inscrição : 04/04/2013

Ver perfil do usuário http://www.steamcommunity.com/id/perfectscrash perfect.scrash

Voltar ao Topo Ir em baixo

Re: [Plugin] Galil Suprema

Mensagem por DIsamuel em 9/10/2013, 1:54 pm

Muito bom Zplague12

____________________________________________

avatar
DIsamuel
Humano
Humano

Nick : [DI]Samuel*
Masculino Número de Mensagens : 30
Ammo Packs : 1539
Honra : 0
Data de inscrição : 05/10/2013

Ver perfil do usuário samuel.cordeiro34

Voltar ao Topo Ir em baixo

Re: [Plugin] Galil Suprema

Mensagem por Dexter em 9/10/2013, 1:56 pm

ja arrumei no download

____________________________________________

http://cs-word.blogspot.com.br/ < Blog de Zombie 1.6 :)

CSWORD
avatar
Dexter
Humano
Humano

Nick : Dexter
Masculino Número de Mensagens : 913
'-'
Ammo Packs : 1143
Honra : -3
Data de inscrição : 28/04/2013

Ver perfil do usuário http://steamcommunity.com/id/DexterMP/ http://tudo-para-seu-zm.blogspot.com.br/ sly.dexter

Voltar ao Topo Ir em baixo

Re: [Plugin] Galil Suprema

Mensagem por S4MuR41 em 9/10/2013, 1:57 pm

entao vo muda aqui :)

____________________________________________

.            .     
avatar
S4MuR41
Humano
Humano

Nick : TK | FreeKiLL
Masculino Número de Mensagens : 102
Dormindo
Ammo Packs : 1932
Honra : 10
Data de inscrição : 08/10/2012

Ver perfil do usuário mercenario.gabriel

Voltar ao Topo Ir em baixo

Re: [Plugin] Galil Suprema

Mensagem por cabelozl em 9/10/2013, 2:01 pm

[P]erfec[T] [S]cr[@]s[H] escreveu:Há Detectei um bug. Ela fica com o dmg em todas as armas e não só a galil.

Corrigi ai pra ti:
Código:
/*===============================================================================
[Includes]
=================================================================================*/
#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <zombieplague>
#include <  fun >
#include <fakemeta_util>
#include <cstrike>

/*===============================================================================
[Defines & Consts]
=================================================================================*/
#define TASK_AURA 27000

new cvar_dmg
new g_itemid, cvar_health, cvar_armor, cvar_tracer, cvar_custommodel

new bool:g_has_galil_suprema[33], g_maxplayers, m_spriteTexture, cvar_lampere_eletro_dmg, cvar_eletro_time
new cvar_eletro_minhp, cvar_eletro_delay, shock_sprite
new cvar_cLampereEletrocutDmg, cvar_celetro_time, Float:cvar_celetro_delay, cvar_celetro_minhp
new bullets[33]
new Time_Eletrocuting[33]
new g_alterady_shock[33]

new GALIL_SUPREMA_V_MODEL[64] = "models/zombie_plague/v_galil_suprema.mdl"
new GALIL_SUPREMA_P_MODEL[64] = "models/zombie_plague/p_galil_suprema.mdl"
 
const galil_suprema_cost = 90

#if cellbits == 32
const OFFSET_CLIPAMMO = 51
#else
const OFFSET_CLIPAMMO = 65
#endif
const OFFSET_LINUX_WEAPONS = 4

#define IsValidUser(%1) (1 <= %1 <= g_maxplayers)

/*===============================================================================
[Registro do Plugin]
=================================================================================*/
public plugin_init()
{
   // Registro do Plugin
   register_plugin("[ZP] Extra Item: Galil [Suprema]" , "1.0", "Dexter | [P]erfec[T] [S]cr[@]s[H]") // Bote meus creditos afinal fui eu q editei
   
   // Eventos Que Ocorrera
   RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
   RegisterHam(Ham_TakeDamage, "player", "fw_lampere_power") // Farto Registra o Evento
   register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
   register_event("HLTV", "cache_cvars", "a", "1=0", "2=0")
   register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")
   register_cvar ("zp_extra_damage", "1.0", FCVAR_SERVER)
   register_event("CurWeapon", "event_CurWeapon", "b", "1=1")

   // Registro do Item
   g_itemid = zp_register_extra_item("Galil [Suprema]", galil_suprema_cost, ZP_TEAM_HUMAN)
   
   // Cvars
   cvar_dmg = register_cvar ("zp_galil_suprema_dmg_wpn", "3.5")         // Dmg Das Balas
   cvar_tracer = register_cvar("zp_galil_suprema_rastro", "1")         // Rastro das Balas (0 - Desligado | 1 - Ligado)
   cvar_health = register_cvar ("zp_galil_suprema_health", "150")         // Quanto de Vida Ganhara ao Comprar o Item ?
   cvar_armor = register_cvar ("zp_galil_suprema_armor", "150")         // Quanto de Colete Ganhara ao Comprar o Item ?
   cvar_custommodel = register_cvar("zp_galil_suprema_custom_model", "1")        // Model Personalizado (0 - Desligado | 1 - Ligado)
   cvar_eletro_time = register_cvar("zp_galil_lampere_eletro_time", "12")      // Tempo que ira ficar sendo eletreocutado
   cvar_eletro_delay = register_cvar("zp_galil_lampere_eletro_delay", "4.0")   // Tempo que levara para que o zm possa ser eletreocutado de novo
   cvar_eletro_minhp = register_cvar("zp_galil_lampere_eletro_minhp", "50")      // Quantidade minima de hp para levar Choque
   cvar_lampere_eletro_dmg = register_cvar("zp_galil_lampere_eletro_dmg", "30")   // Dmg do Choque (quando eletreocuta o zm)
   
   // Prevenção de Bugs ao Finalizar o Round
   g_maxplayers = get_maxplayers()
}
/*===============================================================================
[Precache]
=================================================================================*/
public plugin_precache()
{
   m_spriteTexture = precache_model("sprites/dot.spr")
   
   // Models
   precache_model(GALIL_SUPREMA_V_MODEL)
   precache_model(GALIL_SUPREMA_P_MODEL)
   
   // Sprite do Trovao
   shock_sprite = precache_model("sprites/lgtning.spr");
   precache_sound( "ambience/thunder_clap.wav" )
}


/*===============================================================================
[Prevenções de Bugs]
=================================================================================*/

// Quando o Round Começar
public event_round_start()
{
   for(new id = 1; id <= g_maxplayers; id++)
   {
      g_has_galil_suprema[id] = false   
      remove_task(id + TASK_AURA)
   }
}

public cache_cvars()
{
   cvar_cLampereEletrocutDmg = get_pcvar_num(cvar_lampere_eletro_dmg)
   cvar_celetro_time = get_pcvar_num(cvar_eletro_time)
   cvar_celetro_delay = get_pcvar_float(cvar_eletro_delay)
   cvar_celetro_minhp = get_pcvar_num(cvar_eletro_minhp)
}

// Quando o Jogador Desconecta do Server
public client_disconnect(id)
{
   remove_task(id + TASK_AURA)  
}

// Quando o Jogador Vira ZM
public zp_user_infected_post(id, infected, infector)
{
   if (g_has_galil_suprema[id])
   {
      g_has_galil_suprema[id] = false
      remove_task(id + TASK_AURA)
   }
}

// Quando o Jogador Usa Antidoto
public zp_user_humanized_post(id, human)
{
   if (g_has_galil_suprema[id])
   {
      g_has_galil_suprema[id] = false
   }
}

// Quando o Jogador Virar Survivor ou Sniper
public zp_user_humanized_pre(id)
{
   if (g_has_galil_suprema[id])
   {
      g_has_galil_suprema[id] = false
      remove_task(id + TASK_AURA)
   }
}

// Quando o Jogador estiver Morto (Bom pra quem quer converter pra VIP)
public fw_player_killed(victim, attacker, shouldgib)
{
   if(g_has_galil_suprema[victim])
   {
      //client_printcolor(victim, "^4[ZP] ^1Voce Nao Pode Comprar o ^3Modo Brasileiro^4!!!")
      g_has_galil_suprema[victim] = false
   }
}
/*===============================================================================
[Ações ao Escolher o Item]
=================================================================================*/
public zp_extra_item_selected(player, itemid)
{
   if (itemid == g_itemid)
   {
      if(g_has_galil_suprema[player])
      {
         client_printcolor(player, "^4[ZP] ^1Voce Ja Tem a ^3Galil [Suprema]^4!!!")
         zp_set_user_ammo_packs(player, zp_get_user_ammo_packs(player) + galil_suprema_cost)
         return;
      }
      if (!zp_has_round_started())
      {
         client_printcolor(player, "^4[ZP] ^1Espere o round comecar...", player, "WAIT")
         zp_set_user_ammo_packs(player, zp_get_user_ammo_packs(player) + galil_suprema_cost)
         
         return;
      }  
      else
      {
         new name[32]
         new param[1]
         param[0] = player
         g_has_galil_suprema[player] = true
         fm_set_user_health(player, get_user_health(player) + get_pcvar_num(cvar_health));
         fm_set_user_armor(player, get_user_armor(player) + get_pcvar_num(cvar_armor));
         
         get_user_name(player, name, 31)
         client_printcolor(player, "^4[ZP] ^1Voce Comprou a ^3Galil [Suprema] ^4!!")
         client_printcolor(player, "^4[ZP] ^1Voce Ganhou 150 De Hp e 150 De Colete")
         give_item(player, "weapon_galil")
         cs_set_user_bpammo(player, CSW_GALIL, 90)
      }
   }
}
/*===============================================================================
[Fara a model aparecer]
=================================================================================*/
public event_CurWeapon(id)
{
   if ( zp_get_user_zombie(id) )
   return PLUGIN_HANDLED
  
   new g_Weapon = read_data(2)
  
   if ( g_Weapon == CSW_GALIL && g_has_galil_suprema[id] && get_pcvar_num(cvar_custommodel) )
   {
      set_pev(id, pev_viewmodel2, GALIL_SUPREMA_V_MODEL)
      set_pev(id, pev_weaponmodel2, GALIL_SUPREMA_P_MODEL)
   }
   return PLUGIN_CONTINUE
}
/*===============================================================================
[Poder do Lampere]
================================================================================*/
public fw_lampere_power(victim, inflictor, attacker, Float:damage, damage_type)
{
   if( IsValidUser( attacker ) && victim != attacker && zp_get_user_zombie( victim )
   && g_has_galil_suprema[ attacker ] && get_user_weapon( attacker ) == CSW_GALIL && !g_alterady_shock[ victim ] && get_user_health( victim ) > cvar_celetro_minhp ) // Farto Colocar a CSW_Galil Aqui Pois se n ele deixaria todas as armas a atirar choque
   {
         // Efeito da Aura
         static Float:originF[3]
         pev(victim, pev_origin, originF)
      
         // Eletrocuting / ON
         g_alterady_shock[ victim ] = true
      
         // Set Eletrocuting time
         Time_Eletrocuting[ victim ] = cvar_celetro_time
      
         // Efeito da Aura
         ShockAuraEffect(originF)
      
         // Eletrocuting victim
         Eletrocuting( victim )
   
   }
}

public Eletrocuting( victim )
{
   // Get user origin
   static Origin[ 3 ] ; get_user_origin( victim, Origin )
   
   new vorigin[3],srco[3];
   get_user_origin(victim, vorigin);
   vorigin[2] -= 26
   srco[0] = vorigin[0] + 150
   srco[1] = vorigin[1] + 150
   srco[2] = vorigin[2] + 800
   
   // If Eletrocuting time is over or victim are in water
   if( Time_Eletrocuting[ victim ] <= 0 || get_entity_flags( victim ) & FL_INWATER )
   {   
      // Delay to allow Eletrocuting again
      fm_set_rendering(victim, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 16);
      set_task( cvar_celetro_delay, "Stop_Eletrocuting", victim )
      
      // Exit
      return
   }
   else
   {   
      //Glow
      fm_set_rendering(victim, kRenderFxGlowShell, 255, 255, 255, kRenderNormal, 16);
      
      ShockSpr(srco,vorigin);
      ShockSpr(srco,vorigin);
      ShockSpr(srco,vorigin);   
      
      emit_sound(victim ,CHAN_ITEM, "ambience/thunder_clap.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
      //emit_sound(attacker ,CHAN_ITEM, "ambience/thunder_clap.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
      
      // Decrease Time
      Time_Eletrocuting[ victim ]--
      
      // Decrease life (random)
      fm_set_user_health( victim, get_user_health( victim ) -  cvar_cLampereEletrocutDmg )
      
      // Stop fire if health <= min health.
      if( get_user_health( victim ) <= cvar_celetro_minhp )
      {
         g_alterady_shock[ victim ] = false
         return
      }
      // Repeat
      set_task( 0.5, "Eletrocuting", victim )
   }
}

ShockAuraEffect(const Float:originF3[3])
{
   // Efeito da Aura
   engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF3, 0)
   write_byte(TE_DLIGHT) // TE id
   engfunc(EngFunc_WriteCoord, originF3[0]) // x
   engfunc(EngFunc_WriteCoord, originF3[1]) // y
   engfunc(EngFunc_WriteCoord, originF3[2]) // z
   write_byte(50) // radio
   write_byte(255) // r
   write_byte(255) // g
   write_byte(255) // b
   write_byte(30) // vida en 0.1, 30 = 3 segundos
   write_byte(30) // velocidad de decaimiento
   message_end()
}

ShockSpr(vec1[3],vec2[3])
{
   message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
   write_byte(0);
   write_coord(vec1[0]);
   write_coord(vec1[1]);
   write_coord(vec1[2]);
   write_coord(vec2[0]);
   write_coord(vec2[1]);
   write_coord(vec2[2]);
   write_short(shock_sprite);
   write_byte(1);
   write_byte(5);
   write_byte(2);
   write_byte(20);
   write_byte(30);
   write_byte(200);
   write_byte(200);
   write_byte(200);
   write_byte(200);
   write_byte(200);
   message_end();
   
   message_begin( MSG_PVS, SVC_TEMPENTITY,vec2);
   write_byte(9);
   write_coord(vec2[0]);
   write_coord(vec2[1]);
   write_coord(vec2[2]);
   message_end();
   
}

public Stop_Eletrocuting( victim )
{
      g_alterady_shock[ victim ] = false
}
public make_tracer(id)
{
   if (get_pcvar_num(cvar_tracer))
   {
      new clip,ammo
      new wpnid = get_user_weapon(id,clip,ammo)
      new pteam[16]
      
      get_user_team(id, pteam, 15)
      
      if ((bullets[id] > clip) && (wpnid == CSW_GALIL) && g_has_galil_suprema[id])
      {
         new vec1[3], vec2[3]
         get_user_origin(id, vec1, 1) // origin; your camera point.
         get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
         
         
         //BEAMENTPOINTS
         message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
         write_byte (0)     //TE_BEAMENTPOINTS 0
         write_coord(vec1[0])
         write_coord(vec1[1])
         write_coord(vec1[2])
         write_coord(vec2[0])
         write_coord(vec2[1])
         write_coord(vec2[2])
         write_short( m_spriteTexture )
         write_byte(1) // framestart
         write_byte(5) // framerate
         write_byte(2) // life
         write_byte(10) // width
         write_byte(0) // noise
         write_byte(255)     // r, g, b
         write_byte(0)       // r, g, b
         write_byte(0)       // r, g, b
         write_byte(200) // brightness
         write_byte(150) // speed
         message_end()
      }
   
      bullets[id] = clip
   }
   
}

/*===============================================================================
[O Dmg Dos Tiros]
=================================================================================*/
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
    if (is_user_connected(attacker) && get_user_weapon(attacker) == CSW_GALIL  && g_has_galil_suprema[attacker])
    {
        SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg))
    }
}
/*===============================================================================
[Mensagem Colorida (client_printcolor)]
=================================================================================*/
stock client_printcolor(const id, const input[], any:...)
{
   new count = 1, players[32]
   static msg[191]
   vformat(msg, 190, input, 3)
   
   replace_all(msg, 190, "/g", "^4")  // Chat Verde
   replace_all(msg, 190, "/y", "^1")  // Chat Normal
   replace_all(msg, 190, "/t", "^3")  // Chat Do Time Tr=Vermelho Ct=Azul Spec=Branco
   
   if (id) players[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();
         }
      }
   }
}
/*===============================================================================
[Stocks]
=================================================================================*/
stock fm_set_weapon_ammo(entity, amount)
{
   set_pdata_int(entity, OFFSET_CLIPAMMO, amount, OFFSET_LINUX_WEAPONS);
}
mano pra que serve o id

por exemblo 

public NomeDoPlugin(id)


de ves enquando eles coloca public sem o id eles coloca assim

public NomeDoPlugin()

pra que server id ?
avatar
cabelozl
Humano
Humano

Masculino Número de Mensagens : 44
Ammo Packs : 1541
Honra : 3
Data de inscrição : 30/09/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [Plugin] Galil Suprema

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum