Zumbis Online
Últimos assuntos
» 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

» Voltei ao fórum
por Biel-oGrande 13/11/2017, 8:24 am

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

» Painel gamecp ou outros
por cancels 12/11/2017, 10:34 am

» [ZP AMXX] CSO Shop Costumes
por hygorr 11/11/2017, 11:42 am

» (Ajuda) ZM VIP com Status do Perfect por Menssagem para Dono tambem!
por [Dk]Serial-Killer 6/11/2017, 12:56 pm

Frases filosóficas Zplague:
....
Os membros mais ativos da semana
cancels
 
Biel-oGrande
 
[P]erfec[T] [S]cr[@]s[H]
 

Adsense

Ajuda paraquedas para vips

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

Ajuda paraquedas para vips

Mensagem por gesielossuna em 5/10/2013, 8:46 pm

ola tenho um plugin de paraquedas gostaria de saber como faço para restringir o uso do paraquedas apenas para vips. obrigado

Código:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

new const paramodel[] = "models/paraquedas/paraquedas_h.mdl"

new bool:has_parachute[33], para_ent[33];

enum pcvar
{
   humans=1,
   survivors=1,
   zombies=1,
   nemesis=1,
   fallspeed,
   detach
}

new pcvars[pcvar]

public plugin_init()
{
   register_plugin("[ZP] Sub-Plugin: Parachute", "1.1", "Random1, 93()|29!/<")
   
   pcvars[humans] =   register_cvar("zp_parachute_humans", "1")
   pcvars[survivors] =   register_cvar("zp_parachute_survivors", "1")
   pcvars[zombies] =    register_cvar("zp_parachute_zombies", "0")
   pcvars[nemesis] =    register_cvar("zp_parachute_nemesis", "0")
   pcvars[fallspeed] =   register_cvar("zp_parachute_fallspeed", "75")
   pcvars[detach] =   register_cvar("zp_parachute_detach", "1")
   
   register_forward(FM_PlayerPreThink, "fw_PreThink")
   RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
}

public plugin_precache()
   engfunc(EngFunc_PrecacheModel, paramodel)

public client_connect(id)
   parachute_reset(id)

public client_disconnect(id)
   parachute_reset(id)

parachute_reset(id, keep = 0)
{
   if(para_ent[id] > 0)
      if (pev_valid(para_ent[id]))
         engfunc(EngFunc_RemoveEntity, para_ent[id]);
   
   if (!keep)
      has_parachute[id] = false;
   
   para_ent[id] = 0
   
   if (!has_parachute[id])
      has_parachute[id] = true;
}

// Ham Player Killed Forward
public fw_PlayerKilled(victim, attacker, shouldgib)
{
   engfunc(EngFunc_RemoveEntity, para_ent[victim]);
   para_ent[victim] = 0;
}

public fw_PreThink(id)
{
   //Parachute model animation information
   //0 - deploy - 84 frames
   //1 - idle - 39 frames
   //2 - detach - 29 frames
   
   if (!is_user_alive(id) || !has_parachute[id]
   || !get_pcvar_num(pcvars[humans]) && !zp_get_user_zombie(id)
   && !zp_get_user_survivor(id) || !get_pcvar_num(pcvars[survivors])
   && zp_get_user_survivor(id)   || !get_pcvar_num(pcvars[zombies])
   && zp_get_user_zombie(id) && !zp_get_user_nemesis(id)
   || !get_pcvar_num(pcvars[nemesis]) && zp_get_user_nemesis(id))
      return;
   
   new Float:fallingspeed = get_pcvar_float(pcvars[fallspeed]) * -1.0;
   new Float:frame;
   
   new button = pev(id, pev_button);
   new oldbutton = pev(id, pev_oldbuttons);
   new flags = pev(id, pev_flags);
   
   if (para_ent[id] > 0 && (flags & FL_ONGROUND))
   {
      if (get_pcvar_num(pcvars[detach]))
      {
         if (pev(para_ent[id],pev_sequence) != 2)
         {
            set_pev(para_ent[id], pev_sequence, 2);
            set_pev(para_ent[id], pev_gaitsequence, 1);
            set_pev(para_ent[id], pev_frame, 0.0);
            set_pev(para_ent[id], pev_fuser1, 0.0);
            set_pev(para_ent[id], pev_animtime, 0.0);
            return;
         }
         
         pev(para_ent[id],pev_fuser1, frame);
         frame += 2.0;
         set_pev(para_ent[id],pev_fuser1,frame);
         set_pev(para_ent[id],pev_frame,frame);

         if (frame > 254.0)
         {
            engfunc(EngFunc_RemoveEntity, para_ent[id]);
            para_ent[id] = 0;
         }
      }
      else
      {
         engfunc(EngFunc_RemoveEntity, para_ent[id]);
         para_ent[id] = 0;
      }
      
      return;
   }

   if (button & IN_USE)
   {

      new Float:velocity[3];
      pev(id, pev_velocity, velocity);

      if (velocity[2] < 0.0)
      {
         if(para_ent[id] <= 0)
         {
            para_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
            
            if(para_ent[id] > 0)
            {
               set_pev(para_ent[id],pev_classname,"parachute");
               set_pev(para_ent[id], pev_aiment, id)
               set_pev(para_ent[id], pev_owner, id);
               set_pev(para_ent[id], pev_movetype, MOVETYPE_FOLLOW);
               engfunc(EngFunc_SetModel, para_ent[id], paramodel);
               set_pev(para_ent[id], pev_sequence, 0);
               set_pev(para_ent[id], pev_gaitsequence, 1);
               set_pev(para_ent[id], pev_frame, 0.0);
               set_pev(para_ent[id], pev_fuser1, 0.0);
            }
         }
         
         if (para_ent[id] > 0)
         {
            set_pev(id, pev_sequence, 3)
            set_pev(id, pev_gaitsequence, 1)
            set_pev(id, pev_frame, 1.0)
            set_pev(id, pev_framerate, 1.0)

            velocity[2] = (velocity[2] + 40.0 < fallingspeed) ? velocity[2] + 40.0 : fallingspeed
            set_pev(id, pev_velocity, velocity)

            if (pev(para_ent[id],pev_sequence) == 0)
            {

               pev(para_ent[id],pev_fuser1, frame);
               frame += 1.0;
               set_pev(para_ent[id],pev_fuser1,frame);
               set_pev(para_ent[id],pev_frame,frame);

               if (frame > 100.0)
               {
                  set_pev(para_ent[id], pev_animtime, 0.0);
                  set_pev(para_ent[id], pev_framerate, 0.4);
                  set_pev(para_ent[id], pev_sequence, 1);
                  set_pev(para_ent[id], pev_gaitsequence, 1);
                  set_pev(para_ent[id], pev_frame, 0.0);
                  set_pev(para_ent[id], pev_fuser1, 0.0);
               }
            }
         }
      }
      else if (para_ent[id] > 0)
      {
         engfunc(EngFunc_RemoveEntity, para_ent[id]);
         para_ent[id] = 0;
      }
   }
   else if ((oldbutton & IN_USE) && para_ent[id] > 0)
   {
      engfunc(EngFunc_RemoveEntity, para_ent[id]);
      para_ent[id] = 0;
   }
}

public zp_user_infected_post(id, nemesis)
{
   if (!nemesis && get_pcvar_num(pcvars[zombies])
   || nemesis && get_pcvar_num(pcvars[nemesis]))
      return;
   
   engfunc(EngFunc_RemoveEntity, para_ent[id]);
   para_ent[id] = 0;
}

public zp_user_humanized_post(id, survivor)
{
   if (!survivor && get_pcvar_num(pcvars[humans])
   || survivor   && get_pcvar_num(pcvars[survivors]))
      return;
   
   engfunc(EngFunc_RemoveEntity, para_ent[id]);
   para_ent[id] = 0;
}
avatar
gesielossuna
Humano
Humano

Masculino Número de Mensagens : 22
Ammo Packs : 1506
Honra : 0
Data de inscrição : 05/10/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Ajuda paraquedas para vips

Mensagem por Leozinho em 5/10/2013, 10:08 pm

Testa ai

Código:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#include <zmvip>

new const paramodel[] = "models/paraquedas/paraquedas_h.mdl"

new bool:has_parachute[33], para_ent[33];

enum pcvar
{
   humans=1,
   survivors=1,
   zombies=1,
   nemesis=1,
   fallspeed,
   detach
}

new pcvars[pcvar]

public plugin_init()
{
   register_plugin("[ZP] Sub-Plugin: Parachute", "1.1", "Random1, 93()|29!/<")
   
   pcvars[humans] =   register_cvar("zp_parachute_humans", "1")
   pcvars[survivors] =   register_cvar("zp_parachute_survivors", "1")
   pcvars[zombies] =    register_cvar("zp_parachute_zombies", "0")
   pcvars[nemesis] =    register_cvar("zp_parachute_nemesis", "0")
   pcvars[fallspeed] =   register_cvar("zp_parachute_fallspeed", "75")
   pcvars[detach] =   register_cvar("zp_parachute_detach", "1")
   
   register_forward(FM_PlayerPreThink, "fw_PreThink")
   RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
}

public plugin_precache()
   engfunc(EngFunc_PrecacheModel, paramodel)

public client_connect(id)
   parachute_reset(id)

public client_disconnect(id)
   parachute_reset(id)

parachute_reset(id, keep = 0)
{
   if(para_ent[id] > 0) 
      if (pev_valid(para_ent[id])) 
         engfunc(EngFunc_RemoveEntity, para_ent[id]);
   
   if (!keep)
      has_parachute[id] = false;
   
   para_ent[id] = 0
   
   if (!has_parachute[id])
      has_parachute[id] = true;
}

// Ham Player Killed Forward
public fw_PlayerKilled(victim, attacker, shouldgib)
{
   engfunc(EngFunc_RemoveEntity, para_ent[victim]);
   para_ent[victim] = 0;
}

public fw_PreThink(id)
{
   //Parachute model animation information
   //0 - deploy - 84 frames
   //1 - idle - 39 frames
   //2 - detach - 29 frames
   
   if (!is_user_alive(id) || !has_parachute[id]
   || !get_pcvar_num(pcvars[humans]) && !zp_get_user_zombie(id)
   && !zp_get_user_survivor(id) || !get_pcvar_num(pcvars[survivors])
   && zp_get_user_survivor(id)   || !get_pcvar_num(pcvars[zombies])
   && zp_get_user_zombie(id) && !zp_get_user_nemesis(id)
   || !get_pcvar_num(pcvars[nemesis]) && zp_get_user_nemesis(id) && !zv_get_user_flags(id))
      return;
   
   new Float:fallingspeed = get_pcvar_float(pcvars[fallspeed]) * -1.0;
   new Float:frame;
   
   new button = pev(id, pev_button);
   new oldbutton = pev(id, pev_oldbuttons);
   new flags = pev(id, pev_flags);
   
   if (para_ent[id] > 0 && (flags & FL_ONGROUND))
   {
      if (get_pcvar_num(pcvars[detach]))
      {
         if (pev(para_ent[id],pev_sequence) != 2)
         {
            set_pev(para_ent[id], pev_sequence, 2);
            set_pev(para_ent[id], pev_gaitsequence, 1);
            set_pev(para_ent[id], pev_frame, 0.0);
            set_pev(para_ent[id], pev_fuser1, 0.0);
            set_pev(para_ent[id], pev_animtime, 0.0);
            return;
         }
         
         pev(para_ent[id],pev_fuser1, frame);
         frame += 2.0;
         set_pev(para_ent[id],pev_fuser1,frame);
         set_pev(para_ent[id],pev_frame,frame);

         if (frame > 254.0)
         {
            engfunc(EngFunc_RemoveEntity, para_ent[id]);
            para_ent[id] = 0;
         }
      }
      else
      {
         engfunc(EngFunc_RemoveEntity, para_ent[id]);
         para_ent[id] = 0;
      }
      
      return;
   }

   if (button & IN_USE)
   {

      new Float:velocity[3];
      pev(id, pev_velocity, velocity);

      if (velocity[2] < 0.0)
      {
         if(para_ent[id] <= 0)
         {
            para_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
            
            if(para_ent[id] > 0)
            {
               set_pev(para_ent[id],pev_classname,"parachute");
               set_pev(para_ent[id], pev_aiment, id)
               set_pev(para_ent[id], pev_owner, id);
               set_pev(para_ent[id], pev_movetype, MOVETYPE_FOLLOW);
               engfunc(EngFunc_SetModel, para_ent[id], paramodel);
               set_pev(para_ent[id], pev_sequence, 0);
               set_pev(para_ent[id], pev_gaitsequence, 1);
               set_pev(para_ent[id], pev_frame, 0.0);
               set_pev(para_ent[id], pev_fuser1, 0.0);
            }
         }
         
         if (para_ent[id] > 0)
         {
            set_pev(id, pev_sequence, 3)
            set_pev(id, pev_gaitsequence, 1)
            set_pev(id, pev_frame, 1.0)
            set_pev(id, pev_framerate, 1.0)

            velocity[2] = (velocity[2] + 40.0 < fallingspeed) ? velocity[2] + 40.0 : fallingspeed
            set_pev(id, pev_velocity, velocity)

            if (pev(para_ent[id],pev_sequence) == 0)
            {

               pev(para_ent[id],pev_fuser1, frame);
               frame += 1.0;
               set_pev(para_ent[id],pev_fuser1,frame);
               set_pev(para_ent[id],pev_frame,frame);

               if (frame > 100.0)
               {
                  set_pev(para_ent[id], pev_animtime, 0.0);
                  set_pev(para_ent[id], pev_framerate, 0.4);
                  set_pev(para_ent[id], pev_sequence, 1);
                  set_pev(para_ent[id], pev_gaitsequence, 1);
                  set_pev(para_ent[id], pev_frame, 0.0);
                  set_pev(para_ent[id], pev_fuser1, 0.0);
               }
            }
         }
      }
      else if (para_ent[id] > 0)
      {
         engfunc(EngFunc_RemoveEntity, para_ent[id]);
         para_ent[id] = 0;
      }
   }
   else if ((oldbutton & IN_USE) && para_ent[id] > 0)
   {
      engfunc(EngFunc_RemoveEntity, para_ent[id]);
      para_ent[id] = 0;
   }
}

public zp_user_infected_post(id, nemesis)
{
   if (!nemesis && get_pcvar_num(pcvars[zombies])
   || nemesis && get_pcvar_num(pcvars[nemesis]))
      return;
   
   engfunc(EngFunc_RemoveEntity, para_ent[id]);
   para_ent[id] = 0;
}

public zp_user_humanized_post(id, survivor)
{
   if (!survivor && get_pcvar_num(pcvars[humans])
   || survivor   && get_pcvar_num(pcvars[survivors]))
      return;
   
   engfunc(EngFunc_RemoveEntity, para_ent[id]);
   para_ent[id] = 0;
}

____________________________________________

avatar
Leozinho
Administrador
Administrador

Masculino Número de Mensagens : 2856
Ammo Packs : 2854
Honra : 75
Data de inscrição : 20/11/2011

Ver perfil do usuário leozinho.zp

Voltar ao Topo Ir em baixo

Re: Ajuda paraquedas para vips

Mensagem por gesielossuna em 5/10/2013, 10:28 pm

Não deu certo. eu ja tinha tentado incluir o #include igual ao da mudança de item extra para item vip.

eu achei um topico mais nao consigo inserir os codigos. 
bom ainda nao consegui fazer funcionar.
 esse codigo permite a troca da bandeira, preciso colocar a B



 if ( get_user_flags ID ) &&  ADMIN_KICK 

seu código 

mais 

client_print id ,  "Você tem que ser VIP" 
}  
avatar
gesielossuna
Humano
Humano

Masculino Número de Mensagens : 22
Ammo Packs : 1506
Honra : 0
Data de inscrição : 05/10/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Ajuda paraquedas para vips

Mensagem por Leozinho em 5/10/2013, 10:31 pm

Fiz com isso ai que você passou.

Código:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

new const paramodel[] = "models/paraquedas/paraquedas_h.mdl"

new bool:has_parachute[33], para_ent[33];

enum pcvar
{
  humans=1,
  survivors=1,
  zombies=1,
  nemesis=1,
  fallspeed,
  detach
}

new pcvars[pcvar]

public plugin_init()
{
  register_plugin("[ZP] Sub-Plugin: Parachute", "1.1", "Random1, 93()|29!/<")
 
  pcvars[humans] =  register_cvar("zp_parachute_humans", "1")
  pcvars[survivors] =  register_cvar("zp_parachute_survivors", "1")
  pcvars[zombies] =    register_cvar("zp_parachute_zombies", "0")
  pcvars[nemesis] =    register_cvar("zp_parachute_nemesis", "0")
  pcvars[fallspeed] =  register_cvar("zp_parachute_fallspeed", "75")
  pcvars[detach] =  register_cvar("zp_parachute_detach", "1")
 
  register_forward(FM_PlayerPreThink, "fw_PreThink")
  RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
}

public plugin_precache()
  engfunc(EngFunc_PrecacheModel, paramodel)

public client_connect(id)
  parachute_reset(id)

public client_disconnect(id)
  parachute_reset(id)

parachute_reset(id, keep = 0)
{
  if(para_ent[id] > 0)
      if (pev_valid(para_ent[id]))
        engfunc(EngFunc_RemoveEntity, para_ent[id]);
 
  if (!keep)
      has_parachute[id] = false;
 
  para_ent[id] = 0
 
  if (!has_parachute[id])
      has_parachute[id] = true;
}

// Ham Player Killed Forward
public fw_PlayerKilled(victim, attacker, shouldgib)
{
  engfunc(EngFunc_RemoveEntity, para_ent[victim]);
  para_ent[victim] = 0;
}

public fw_PreThink(id)
{
   if(get_user_flags(id) && ADMIN_LEVEL_B)
   {
      //Parachute model animation information
      //0 - deploy - 84 frames
      //1 - idle - 39 frames
      //2 - detach - 29 frames
      
      if (!is_user_alive(id) || !has_parachute[id]
      || !get_pcvar_num(pcvars[humans]) && !zp_get_user_zombie(id)
      && !zp_get_user_survivor(id) || !get_pcvar_num(pcvars[survivors])
      && zp_get_user_survivor(id)  || !get_pcvar_num(pcvars[zombies])
      && zp_get_user_zombie(id) && !zp_get_user_nemesis(id)
      || !get_pcvar_num(pcvars[nemesis]) && zp_get_user_nemesis(id))
      return;
      
      new Float:fallingspeed = get_pcvar_float(pcvars[fallspeed]) * -1.0;
      new Float:frame;
      
      new button = pev(id, pev_button);
      new oldbutton = pev(id, pev_oldbuttons);
      new flags = pev(id, pev_flags);
      
      if (para_ent[id] > 0 && (flags & FL_ONGROUND))
      {
         if (get_pcvar_num(pcvars[detach]))
         {
            if (pev(para_ent[id],pev_sequence) != 2)
            {
               set_pev(para_ent[id], pev_sequence, 2);
               set_pev(para_ent[id], pev_gaitsequence, 1);
               set_pev(para_ent[id], pev_frame, 0.0);
               set_pev(para_ent[id], pev_fuser1, 0.0);
               set_pev(para_ent[id], pev_animtime, 0.0);
               return;
            }
            
            pev(para_ent[id],pev_fuser1, frame);
            frame += 2.0;
            set_pev(para_ent[id],pev_fuser1,frame);
            set_pev(para_ent[id],pev_frame,frame);
            
            if (frame > 254.0)
            {
               engfunc(EngFunc_RemoveEntity, para_ent[id]);
               para_ent[id] = 0;
            }
         }
         else
         {
            engfunc(EngFunc_RemoveEntity, para_ent[id]);
            para_ent[id] = 0;
         }
         
         return;
      }
      
      if (button & IN_USE)
      {
         
         new Float:velocity[3];
         pev(id, pev_velocity, velocity);
         
         if (velocity[2] < 0.0)
         {
            if(para_ent[id] <= 0)
            {
               para_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
               
               if(para_ent[id] > 0)
               {
                  set_pev(para_ent[id],pev_classname,"parachute");
                  set_pev(para_ent[id], pev_aiment, id)
                  set_pev(para_ent[id], pev_owner, id);
                  set_pev(para_ent[id], pev_movetype, MOVETYPE_FOLLOW);
                  engfunc(EngFunc_SetModel, para_ent[id], paramodel);
                  set_pev(para_ent[id], pev_sequence, 0);
                  set_pev(para_ent[id], pev_gaitsequence, 1);
                  set_pev(para_ent[id], pev_frame, 0.0);
                  set_pev(para_ent[id], pev_fuser1, 0.0);
               }
            }
            
            if (para_ent[id] > 0)
            {
               set_pev(id, pev_sequence, 3)
               set_pev(id, pev_gaitsequence, 1)
               set_pev(id, pev_frame, 1.0)
               set_pev(id, pev_framerate, 1.0)
               
               velocity[2] = (velocity[2] + 40.0 < fallingspeed) ? velocity[2] + 40.0 : fallingspeed
               set_pev(id, pev_velocity, velocity)
               
               if (pev(para_ent[id],pev_sequence) == 0)
               {
                  
                  pev(para_ent[id],pev_fuser1, frame);
                  frame += 1.0;
                  set_pev(para_ent[id],pev_fuser1,frame);
                  set_pev(para_ent[id],pev_frame,frame);
                  
                  if (frame > 100.0)
                  {
                     set_pev(para_ent[id], pev_animtime, 0.0);
                     set_pev(para_ent[id], pev_framerate, 0.4);
                     set_pev(para_ent[id], pev_sequence, 1);
                     set_pev(para_ent[id], pev_gaitsequence, 1);
                     set_pev(para_ent[id], pev_frame, 0.0);
                     set_pev(para_ent[id], pev_fuser1, 0.0);
                  }
               }
            }
         }
         else if (para_ent[id] > 0)
         {
            engfunc(EngFunc_RemoveEntity, para_ent[id]);
            para_ent[id] = 0;
         }
      }
      else if ((oldbutton & IN_USE) && para_ent[id] > 0)
      {
         engfunc(EngFunc_RemoveEntity, para_ent[id]);
         para_ent[id] = 0;
      }
   }
   else
   {
      client_print(id, print_chat, "Voce nao e vip")
   }
}

public zp_user_infected_post(id, nemesis)
{
  if (!nemesis && get_pcvar_num(pcvars[zombies])
  || nemesis && get_pcvar_num(pcvars[nemesis]))
      return;
 
  engfunc(EngFunc_RemoveEntity, para_ent[id]);
  para_ent[id] = 0;
}

public zp_user_humanized_post(id, survivor)
{
  if (!survivor && get_pcvar_num(pcvars[humans])
  || survivor  && get_pcvar_num(pcvars[survivors]))
      return;
 
  engfunc(EngFunc_RemoveEntity, para_ent[id]);
  para_ent[id] = 0;
}

____________________________________________

avatar
Leozinho
Administrador
Administrador

Masculino Número de Mensagens : 2856
Ammo Packs : 2854
Honra : 75
Data de inscrição : 20/11/2011

Ver perfil do usuário leozinho.zp

Voltar ao Topo Ir em baixo

Re: Ajuda paraquedas para vips

Mensagem por gesielossuna em 5/10/2013, 11:59 pm

tentei de tudo nao deu certo. vo procura mais.
avatar
gesielossuna
Humano
Humano

Masculino Número de Mensagens : 22
Ammo Packs : 1506
Honra : 0
Data de inscrição : 05/10/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Ajuda paraquedas para vips

Mensagem por Biel-oGrande em 6/10/2013, 9:37 am

Está aqui amigo !!!!

Código:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

new const paramodel[] = "models/93parachute2.mdl"

new bool:has_parachute[33], para_ent[33];

enum pcvar
{
   humans = 1,
   survivors,
   zombies,
   nemesis,
   fallspeed,
   detach
}

new pcvars[pcvar]

public plugin_init()
{
   
   register_plugin("[ZP] Sub-Plugin: Parachute", "1.1", "Random1, 93()|29!/<")
   
   pcvars[humans] =   register_cvar("zp_parachute_humans", "1")
   pcvars[survivors] =   register_cvar("zp_parachute_survivors", "1")
   pcvars[zombies] =    register_cvar("zp_parachute_zombies", "0")
   pcvars[nemesis] =    register_cvar("zp_parachute_nemesis", "0")
   pcvars[fallspeed] =   register_cvar("zp_parachute_fallspeed", "75")
   pcvars[detach] =   register_cvar("zp_parachute_detach", "1")
   
   register_forward(FM_PlayerPreThink, "fw_PreThink")
   RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
}

public plugin_precache()
   engfunc(EngFunc_PrecacheModel, paramodel)

public client_connect(id)
   parachute_reset(id)

public client_disconnect(id)
   parachute_reset(id)

parachute_reset(id, keep = 0)
{
   if(para_ent[id] > 0)
      if (pev_valid(para_ent[id]))
         engfunc(EngFunc_RemoveEntity, para_ent[id]);
   
   if (!keep)
      has_parachute[id] = false;
   
   para_ent[id] = 0
   
   if (!has_parachute[id])
      has_parachute[id] = true;
}

// Ham Player Killed Forward
public fw_PlayerKilled(victim, attacker, shouldgib)
{
   engfunc(EngFunc_RemoveEntity, para_ent[victim]);
   para_ent[victim] = 0;
}

public fw_PreThink(id)
{
   //Parachute model animation information
   //0 - deploy - 84 frames
   //1 - idle - 39 frames
   //2 - detach - 29 frames
   
   if (!is_user_alive(id) || !has_parachute[id]
   || !get_pcvar_num(pcvars[humans]) && !zp_get_user_zombie(id)
   && !zp_get_user_survivor(id) || !get_pcvar_num(pcvars[survivors])
   && zp_get_user_survivor(id)   || !get_pcvar_num(pcvars[zombies])
   && zp_get_user_zombie(id) && !zp_get_user_nemesis(id)
   || !get_pcvar_num(pcvars[nemesis]) && zp_get_user_nemesis(id))
      return;
      
   if(get_user_flags(id) & ADMIN_RESERVATION)
   {
   
   new Float:fallingspeed = get_pcvar_float(pcvars[fallspeed]) * -1.0;
   new Float:frame;
   
   new button = pev(id, pev_button);
   new oldbutton = pev(id, pev_oldbuttons);
   new flags = pev(id, pev_flags);
   
   if (para_ent[id] > 0 && (flags & FL_ONGROUND))
   {
      if (get_pcvar_num(pcvars[detach]))
      {
         if (pev(para_ent[id],pev_sequence) != 2)
         {
            set_pev(para_ent[id], pev_sequence, 2);
            set_pev(para_ent[id], pev_gaitsequence, 1);
            set_pev(para_ent[id], pev_frame, 0.0);
            set_pev(para_ent[id], pev_fuser1, 0.0);
            set_pev(para_ent[id], pev_animtime, 0.0);
            return;
         }
         
         pev(para_ent[id],pev_fuser1, frame);
         frame += 2.0;
         set_pev(para_ent[id],pev_fuser1,frame);
         set_pev(para_ent[id],pev_frame,frame);

         if (frame > 254.0)
         {
            engfunc(EngFunc_RemoveEntity, para_ent[id]);
            para_ent[id] = 0;
         }
      }
      else
      {
         engfunc(EngFunc_RemoveEntity, para_ent[id]);
         para_ent[id] = 0;
      }
      
      return;
   }

   if (button & IN_USE)
   {

      new Float:velocity[3];
      pev(id, pev_velocity, velocity);

      if (velocity[2] < 0.0)
      {
         if(para_ent[id] <= 0)
         {
            para_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
            
            if(para_ent[id] > 0)
            {
               set_pev(para_ent[id],pev_classname,"parachute");
               set_pev(para_ent[id], pev_aiment, id)
               set_pev(para_ent[id], pev_owner, id);
               set_pev(para_ent[id], pev_movetype, MOVETYPE_FOLLOW);
               engfunc(EngFunc_SetModel, para_ent[id], paramodel);
               set_pev(para_ent[id], pev_sequence, 0);
               set_pev(para_ent[id], pev_gaitsequence, 1);
               set_pev(para_ent[id], pev_frame, 0.0);
               set_pev(para_ent[id], pev_fuser1, 0.0);
            }
         }
         
         if (para_ent[id] > 0)
         {
            set_pev(id, pev_sequence, 3)
            set_pev(id, pev_gaitsequence, 1)
            set_pev(id, pev_frame, 1.0)
            set_pev(id, pev_framerate, 1.0)

            velocity[2] = (velocity[2] + 40.0 < fallingspeed) ? velocity[2] + 40.0 : fallingspeed
            set_pev(id, pev_velocity, velocity)

            if (pev(para_ent[id],pev_sequence) == 0)
            {

               pev(para_ent[id],pev_fuser1, frame);
               frame += 1.0;
               set_pev(para_ent[id],pev_fuser1,frame);
               set_pev(para_ent[id],pev_frame,frame);

               if (frame > 100.0)
               {
                  set_pev(para_ent[id], pev_animtime, 0.0);
                  set_pev(para_ent[id], pev_framerate, 0.4);
                  set_pev(para_ent[id], pev_sequence, 1);
                  set_pev(para_ent[id], pev_gaitsequence, 1);
                  set_pev(para_ent[id], pev_frame, 0.0);
                  set_pev(para_ent[id], pev_fuser1, 0.0);
               }
            }
         }
      }
      else if (para_ent[id] > 0)
      {
         engfunc(EngFunc_RemoveEntity, para_ent[id]);
         para_ent[id] = 0;
      }
   }
   else if ((oldbutton & IN_USE) && para_ent[id] > 0)
   {
      engfunc(EngFunc_RemoveEntity, para_ent[id]);
      para_ent[id] = 0;
   }
}
}

public zp_user_infected_post(id, nemesis)
{
   if (!nemesis && get_pcvar_num(pcvars[zombies])
   || nemesis && get_pcvar_num(pcvars[nemesis]))
      return;
   
   engfunc(EngFunc_RemoveEntity, para_ent[id]);
   para_ent[id] = 0;
}

public zp_user_humanized_post(id, survivor)
{
   if (!survivor && get_pcvar_num(pcvars[humans])
   || survivor   && get_pcvar_num(pcvars[survivors]))
      return;
   
   engfunc(EngFunc_RemoveEntity, para_ent[id]);
   para_ent[id] = 0;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1046\\ f0\\ fs16 \n\\ par }
*/
:D

Obs* importante que o vip esteja registrado no users.ini com a flag "b".

____________________________________________


Visite
avatar
Biel-oGrande
Humano
Humano

Nick : Biel-oGrande
Masculino Número de Mensagens : 301
Ammo Packs : 1925
Honra : -4
Data de inscrição : 05/09/2012

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Ajuda paraquedas para vips

Mensagem por gesielossuna em 6/10/2013, 10:15 am

Funcionou perfeitamente Biel, apenas ADM E VIPS tem asas.  muito obrigado Biel.

se voce puder passar seu face ou algum meio de contato, tenho interresse em comprar algumas atualizações. 

pode  fechar o topico moderador. vlw
avatar
gesielossuna
Humano
Humano

Masculino Número de Mensagens : 22
Ammo Packs : 1506
Honra : 0
Data de inscrição : 05/10/2013

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Ajuda paraquedas para vips

Mensagem por Dexter em 6/10/2013, 10:27 am

Fechado!!

____________________________________________

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 : 1122
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: Ajuda paraquedas para vips

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