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[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar Empty[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
Classe:Zumbi Tank
Habilidade:Aura e Força

Obs:Gente esse meu 1 zm e acho q ta cheio de bugs pq eu nunca fis plugin do 0 se tiver bugs quem poder corigir agradeço.

Creditos:Soukito/esse tutorial https://zplague.forumeiro.com/t6157-como-criar-um-classe-zumbi

Dowloand:
https://www.mediafire.com/?l2tz61ma0klv14l

obs:Zumbi ta bem basico ainda acho q com tempo vou melhorar ele.




Metas
[Postar 20 ClassesZM]
[Criar 5 ClassesZM]
[Criar 1 inten extra!]
[killingflorservers.webs.com]

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
Cara só uma sugestão, seria bonito pra tu melhorar esse português, só uma sugestão mesmo, se quiser acatar beleza, senão beleza. Fora isso tudo beleza.

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
Verdade, você é um cara bacana, posta altas classes aqui na zplague, só melhorar o português.

@Sobre o Tópico
Quando eu chegar em casa irei testar.

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
ok vcs ajudaram  mais olha e pq eu sofri um acidente ai eu n digito direito mais vc proxima ves vou tenta escrever melhor

@edit
sobre proximo zumbi acho q vou postar zumbi subzero so tenho q achar ele eu sei q tem por ai.

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
Este daqui amigo esta sem bugs, pode fazer bom uso :D

Código:

#include <amxmodx>
#include <zombieplague>
#include <fakemeta>
#include <engine>
#include < fun >
#include <hamsandwich>

/*                      L4D Tank Zombie
            by x[L]eoNNN
   
   #Description :
   
      this is a Zombie Class of Famous Game, "L4d" with the ability to throw rocks at enemies,
      either killing him, infecting taking life, etc. (controlled by a cvar)
   
   #Cvars :
   
      zp_tank_rockspeed 700 // Rock Speed Launched by Tank
      zp_tank_rockdamage 70 // damage done by the rock
      zp_tank_rockreward 1 // Ammo Pack's Reward by touching the enemy with the rock
      zp_tank_rockmode 1 // Rock Mode :
               1 = Take Damage
               2 = Killing
               3 = Infect
               4 = Bad Aim
      zp_tank_rock_energynesesary 20 // energy nesesary to launch a rock

   #Changelog :
   
      v1.0: public release
      v1.1: print messages changed to hudmessages (for spam), fix time reload bug,add effect touching rock
      v1.2: fix a survivor bugs', To break an entity "func_breakable" when the rock touches the entity,
            fix a problem with logs : native error : get_user_origin.
*/
new const zclass_name[] = { "Zumbi Tank" }
new const zclass_info[] = { "\r[ Joga Pedras ]" }
new const zclass_model[] = { "Zumbi_source" }
new const zclass_clawmodel[] = { "v_knife_zombie.mdl" }
const zclass_health = 3100
const zclass_speed = 240
const Float:zclass_gravity = 1.0
const Float:zclass_knockback = 1.0 

new g_L4dTank

new g_trailSprite, rockmodel
new g_trail[] = "sprites/xbeam3.spr"
new rock_model[] = "models/rockgibs.mdl"
new rock_model2[] = "models/rockgibs.mdl"
new tank_rocklaunch[] = "zombie_plague/tank_rocklaunch.wav"


new g_power[33]

new cvar_rock_damage, cvar_rock_reward, cvar_rockmode, cvar_rockEnergyNesesary, cvar_rock_speed, cvar_reloadpower

public plugin_init()
{
   register_plugin("[ZP] Zombie Class: L4D Tank Zombie", "1.2", "x[L]eoNNN")
 
   cvar_rock_speed = register_cvar("zp_tank_rockspeed", "700")
   cvar_rock_damage = register_cvar("zp_tank_rockdamage", "70")
   cvar_rock_reward = register_cvar("zp_tank_rockreward", "1")
   cvar_rockmode = register_cvar("zp_tank_rockmode", "1")
   cvar_rockEnergyNesesary = register_cvar("zp_tank_rock_energynesesary", "20")
   cvar_reloadpower = register_cvar("zp_tank_reload_power", "1")
   register_touch("rock_ent","*","RockTouch")
   register_forward(FM_CmdStart, "CmdStart" )
}

public plugin_precache()
{
   g_L4dTank = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)
   g_trailSprite = precache_model(g_trail)
   rockmodel = precache_model(rock_model)
   precache_sound(tank_rocklaunch)
}
   
public zp_user_infected_post ( id, infector )
{
            if (zp_get_user_zombie_class(id) == g_L4dTank)
            {
      print_chatColor(id, "\g[ZP]\n You Are A \gL4D Tank\n, You Cant Launch Rock With \tIN_USE [+E]")
      g_power[id] = get_pcvar_num(cvar_rockEnergyNesesary)
      set_task(get_pcvar_float(cvar_reloadpower), "power1", id, _, _, "b")
            }


public CmdStart( const id, const uc_handle, random_seed )
{
   if(!is_user_alive(id))
      return FMRES_IGNORED;
   
   if(!zp_get_user_zombie(id) || zp_get_user_nemesis(id))
      return FMRES_IGNORED;
      
   new button = pev(id, pev_button)
   new oldbutton = pev(id, pev_oldbuttons)
   
   if (zp_get_user_zombie(id) && (zp_get_user_zombie_class(id) == g_L4dTank))
      if(oldbutton & IN_USE && !(button & IN_USE))
      {
         if(g_power[id] >= get_pcvar_num(cvar_rockEnergyNesesary))
         {
            MakeRock(id)
            emit_sound(id, CHAN_STREAM, tank_rocklaunch, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
            g_power[id] = 0
         }
         else
         {
            set_hudmessage(255, 0, 0, 0.0, 0.6, 0, 6.0, 3.0)
            show_hudmessage(id, "[ZP] Energy Nesesary To Launch Rock [%d] || You Energy [%d]", get_pcvar_num(cvar_rockEnergyNesesary), g_power[id])
         }
         
      }
         
   return FMRES_IGNORED
}

public power1(id)
{
   g_power[id] += 1
   
   if( g_power[id] > get_pcvar_num(cvar_rockEnergyNesesary) )
   {
      g_power[id] = get_pcvar_num(cvar_rockEnergyNesesary)
   }
}

public RockTouch( RockEnt, Touched )
{
   if ( !pev_valid ( RockEnt ) )
      return
      
   static Class[ 32 ]
   entity_get_string( Touched, EV_SZ_classname, Class, charsmax( Class ) )
   new Float:origin[3]
      
   pev(Touched,pev_origin,origin)
   
   if( equal( Class, "player" ) )
      if (is_user_alive(Touched))
      {
         if(!zp_get_user_zombie(Touched))
         {
            new TankKiller = entity_get_edict( RockEnt, EV_ENT_owner )
            
            switch(get_pcvar_num(cvar_rockmode))
            {
               case 1: // Health
               {
                  new iHealth = get_user_health(Touched)

                  if( iHealth >= 1 && iHealth <= get_pcvar_num(cvar_rock_damage))
                  {
                     ExecuteHamB( Ham_Killed, Touched, TankKiller, 0 )
                     print_chatColor(TankKiller, "\g[ZP]\n You Receive \t%d\n Ammo Packs To Reach a Rock a Enemy", get_pcvar_num(cvar_rock_reward))
                     zp_set_user_ammo_packs(TankKiller, zp_get_user_ammo_packs(TankKiller) + get_pcvar_num(cvar_rock_reward))
                  }
                  else
                  {
                     set_user_health(Touched, get_user_health(Touched) - get_pcvar_num(cvar_rock_damage))
                     print_chatColor(TankKiller, "\g[ZP]\n You Receive \t%d\n Ammo Packs To Reach a Rock a Enemy", get_pcvar_num(cvar_rock_reward))
                     zp_set_user_ammo_packs(TankKiller, zp_get_user_ammo_packs(TankKiller) + get_pcvar_num(cvar_rock_reward))
                  }
               }
               case 2: // Kill
               {
                  if(zp_get_user_survivor(Touched))
                     return
                        
                  ExecuteHamB( Ham_Killed, Touched, TankKiller, 0 )
                  zp_set_user_ammo_packs(TankKiller, zp_get_user_ammo_packs(TankKiller) + get_pcvar_num(cvar_rock_reward))
                  print_chatColor(TankKiller, "\g[ZP]\n You Receive \t%d\n Ammo Packs To Reach a Rock a Enemy", get_pcvar_num(cvar_rock_reward))
               }
               case 3: //infect
               {
                  if(zp_get_user_survivor(Touched))
                     return
                     
                  zp_infect_user(Touched, TankKiller, 1, 1)
                  print_chatColor(TankKiller, "\g[ZP]\n You Receive \t%d\n Ammo Packs To Reach a Rock a Enemy", get_pcvar_num(cvar_rock_reward))
                  zp_set_user_ammo_packs(TankKiller, zp_get_user_ammo_packs(TankKiller) + get_pcvar_num(cvar_rock_reward))

               }
               case 4: //BadAim
               {
                  new Float:vec[3] = {100.0,100.0,100.0}
                  
                  entity_set_vector(Touched,EV_VEC_punchangle,vec) 
                  entity_set_vector(Touched,EV_VEC_punchangle,vec)
                  entity_set_vector(Touched,EV_VEC_punchangle,vec)
                  
                  print_chatColor(TankKiller, "\g[ZP]\n You Receive \t%d\n Ammo Packs To Reach a Rock a Enemy", get_pcvar_num(cvar_rock_reward))
                  zp_set_user_ammo_packs(TankKiller, zp_get_user_ammo_packs(TankKiller) + get_pcvar_num(cvar_rock_reward))
                  set_task(1.50, "EndVictimAim", Touched)
               }
            }
         }
      }
      
   if(equal(Class, "func_breakable") && entity_get_int(Touched, EV_INT_solid) != SOLID_NOT)
      force_use(RockEnt, Touched)
      
   remove_entity(RockEnt)
   
   if(!is_user_alive(Touched))
      return
      
   static origin1[3]
   get_user_origin(Touched, origin1)
   
   message_begin(MSG_BROADCAST,SVC_TEMPENTITY, origin1);
   write_byte(TE_BREAKMODEL);
   write_coord(origin1[0]); 
   write_coord(origin1[1]);
   write_coord(origin1[2] + 24);
   write_coord(16);
   write_coord(16);
   write_coord(16);
   write_coord(random_num(-50,50));
   write_coord(random_num(-50,50));
   write_coord(25);
   write_byte(10);
   write_short(rockmodel);
   write_byte(10);
   write_byte(25);
   write_byte(0x01);
   message_end();
}

public EndVictimAim(Touched)
{
   new Float:vec[3] = {-100.0,-100.0,-100.0}
   entity_set_vector(Touched,EV_VEC_punchangle,vec) 
   entity_set_vector(Touched,EV_VEC_punchangle,vec)
   entity_set_vector(Touched,EV_VEC_punchangle,vec)
}

public MakeRock(id)
{
         
   new Float:Origin[3]
   new Float:Velocity[3]
   new Float:vAngle[3]

   new RockSpeed = get_pcvar_num(cvar_rock_speed)

   entity_get_vector(id, EV_VEC_origin , Origin)
   entity_get_vector(id, EV_VEC_v_angle, vAngle)

   new NewEnt = create_entity("info_target")

   entity_set_string(NewEnt, EV_SZ_classname, "rock_ent")

   entity_set_model(NewEnt, rock_model2)

   entity_set_size(NewEnt, Float:{-1.5, -1.5, -1.5}, Float:{1.5, 1.5, 1.5})

   entity_set_origin(NewEnt, Origin)
   entity_set_vector(NewEnt, EV_VEC_angles, vAngle)
   entity_set_int(NewEnt, EV_INT_solid, 2)

   entity_set_int(NewEnt, EV_INT_rendermode, 5)
   entity_set_float(NewEnt, EV_FL_renderamt, 200.0)
   entity_set_float(NewEnt, EV_FL_scale, 1.00)

   entity_set_int(NewEnt, EV_INT_movetype, 5)
   entity_set_edict(NewEnt, EV_ENT_owner, id)

   velocity_by_aim(id, RockSpeed  , Velocity)
   entity_set_vector(NewEnt, EV_VEC_velocity ,Velocity)

   message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
   write_byte(TE_BEAMFOLLOW)
   write_short(NewEnt)
   write_short(g_trailSprite)
   write_byte(10)
   write_byte(10)
   write_byte(255)
   write_byte(0)
   write_byte(0)
   write_byte(200)
   message_end()
   
   return PLUGIN_HANDLED
}

stock print_chatColor(const id,const input[], any:...)
{
   new msg[191], players[32], count = 1;
   vformat(msg,190,input,3);
   replace_all(msg,190,"\g","^4");// green
   replace_all(msg,190,"\n","^1");// normal
   replace_all(msg,190,"\t","^3");// team
   
   if (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();
   }
}

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
amigo meu zumbi tank ta diferente esse ele ganho uns pedra pa taca nos humanos meu ganha aura

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
o Nome do zumbi deve ser só zumbi aura.

Ainda não entendi a aura é para os humanos ver o zumbi de longe e matar mais rapido?

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
obs não critique fasa melhor!

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
Nossa eu gostei boa classe de zm achei bem interresante ^_^

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
Concordo com oque o Biel falo

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
Foda-se, o moleque postou a classe dele, não gostou, não use, esses cara que se acha fodão me da nojo.

Primeira classe de zm do cara e ainda quer criticar.

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
!@#$, se não quer criticas, não poste nada, simples. Criticas sempre vão existir, aprenda a lidar com ela.
E sim, este código esta ruim.

Não cheguei a testar, mais dei uma arrumada básica no código

Código:

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

#define TASK_TRAIL 100
#define ID_TRAIL (taskid - TASK_TRAIL)

new g_ZClassID

new const g_zclass_name[] = "Tank"    
new const g_zclass_info[] = "Força e Aura"    
new const g_zclass_model[] = "zm_tank"
new const g_zclass_clawmodel[] = "v_tank.mdl"
const g_zclass_health = 5005            
const g_zclass_speed = 250
const Float:g_zclass_gravity = 1.0        
const Float:g_zclass_knockback = 0.8

public plugin_precache()
{
   register_plugin("[ZP 4.3] Class Zombie: Tank", "0.1", "Soukito")
   
   g_ZClassID = zp_register_zombie_class(g_zclass_name, g_zclass_info, g_zclass_model, g_zclass_clawmodel, g_zclass_health, g_zclass_speed, g_zclass_gravity, g_zclass_knockback)
}

public client_disconnect(id)
{
   if (task_exists(id+TASK_TRAIL))
      remove_task(id+TASK_TRAIL)
}

public zp_user_humanized_post(id, survivor)
   set_user_rendering(id)

public zp_user_infected_post(id, infector, nemesis)
{
   if (!nemesis && zp_get_user_zombie_class(id) == g_ZClassID)
   {
      set_user_rendering(id, kRenderFxGlowShell, 255, 99, 71, kRenderNormal, 8)
      set_task(0.1, "task_trail", id+TASK_TRAIL, _, _, "b")
   }
}

public task_trail(taskid)
{
   new id = ID_TRAIL
   
   if (!is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_zombie_class(id) != g_ZClassID)
   {
      remove_task(id+TASK_TRAIL)
      return;
   }
   
   message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
   write_byte(TE_BEAMFOLLOW)
   write_short(id)
   write_byte(10) // life
   write_byte(10) // width
   write_byte(255) // r
   write_byte(99) // g
   write_byte(71) // b
   write_byte(200) // brightness
   message_end()
}

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

more_horiz
vlw amigo por aruma codigo

@edit vou posta classe zumbi subzero jaja so presiso aruma ele

description[ZP]Zumbi Tank #1 plugin se tiver bugs pode falar EmptyRe: [ZP]Zumbi Tank #1 plugin se tiver bugs pode falar

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