AMX MOD X
Четверг, 25.04.2024, 11:48:36



Приветствую Вас Гость | RSS
[ Главная ] [ UT Dodge - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Плагины » Обсуждение сторонних плагинов » UT Dodge
UT Dodge
[NegativkO]Дата: Воскресенье, 15.11.2009, 20:20:46 | Сообщение # 1
Полковник
Группа: Пользователи
Сообщений: 243
Репутация: 3
Статус: Не в сети
Скачал я тут плагин Dodge... Поставил на GunGame. Можно ли как-то сделать так тчобы додж не работал во время freezetime? Ото все игроки его охотно используют до начала раунда.
Прикрепления: amx_dodge.sma (3.6 Kb)
 
bot131642Дата: Воскресенье, 15.11.2009, 20:37:24 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 2
Репутация: 1
Статус: Не в сети
зачем фризтайм в гангейме ?
 
PomanoBДата: Воскресенье, 15.11.2009, 20:39:01 | Сообщение # 3
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Code

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Amx Dodge"
#define VERSION "0.1.2"
#define AUTHOR "PomanoB"

#define TIME_INTERVAL 0.35
#define TIME_RESET 2.0

#define TIME_RESET_JUMP 7.0
#define JUMP_VEL 500.0

#define ADD_BUTTON(%1,%2) g_key[%1][0]=g_key[id][1];g_key[%1][1]=%2;
#define RESET_BUTTON(%1) g_key[%1][0]=0;g_key[%1][1]=0;  

new bool:g_dodge[33];
new Float:g_time[33];
new g_key[33][2];
new bool:g_is_jump_used[33];

new bool:g_freezetime

public plugin_init()
{
  register_plugin(PLUGIN, VERSION, AUTHOR)
  register_logevent("freezeTimeEnd", 2, "1=Round_Start")
  register_event("freezeTimeStart", "event", "a", "1=0", "2=0")
}

public freezeTimeStart() g_freezetime = true
public freezeTimeEnd() g_freezetime = false

public client_PreThink(id)
{
   
   
   
  if (g_dodge[id] || g_freezetime)
   return PLUGIN_CONTINUE
     
   
  new button=pev(id,pev_button)
  if (button==0)
   return PLUGIN_CONTINUE
   
  new oldbutton=pev(id,pev_oldbuttons);
   
  if ((button & IN_JUMP) && !(oldbutton & IN_JUMP) && !g_is_jump_used[id])
  {
   new fvel;
   pev(id,pev_flFallVelocity,fvel);
   if (fvel)
   {
    new Float:vel[3];
    pev(id,pev_velocity,vel);
    vel[2] = JUMP_VEL;
    set_pev(id, pev_velocity, vel);
    g_is_jump_used[id]=true;
    set_task(TIME_RESET_JUMP,"reset_jump",4567+id);
     
   }
  }
   
   
  if ((button & IN_FORWARD) && !(oldbutton & IN_FORWARD))
  {
   ADD_BUTTON(id,'w')
  }
  else if ((button & IN_BACK) && !(oldbutton & IN_BACK))
  {
   ADD_BUTTON(id,'s')
  }
  else if ((button & IN_MOVELEFT) && !(oldbutton & IN_MOVELEFT))
  {
   ADD_BUTTON(id,'a')
  }
  else if ((button & IN_MOVERIGHT) && !(oldbutton & IN_MOVERIGHT))
  {
   ADD_BUTTON(id,'d')
  }
  else  
   return PLUGIN_CONTINUE;
    
  new Float:time_out=get_gametime();
    
  if ( (!g_time[id]) || (time_out-g_time[id] >TIME_INTERVAL))
  {
   g_time[id]=time_out
   RESET_BUTTON(id)
   return PLUGIN_CONTINUE;
  }
  g_time[id]=time_out;
   
   
  if (equali(g_key[id],"ww"))
  {
    
   g_dodge[id]=true
   RESET_BUTTON(id)
   g_time[id]=0.0;
   give_dodge(id,0);
   set_task(TIME_RESET,"reset_dodge",id)
    
    
  }
  else if (equali(g_key[id],"ss"))
  {
    
   g_dodge[id]=true
   RESET_BUTTON(id)
   g_time[id]=0.0;
   give_dodge(id,1);
   set_task(TIME_RESET,"reset_dodge",id)
    
  }
  else if (equali(g_key[id],"aa"))
  {
    
   g_dodge[id]=true
   RESET_BUTTON(id)
   g_time[id]=0.0;
   give_dodge(id,3);
   set_task(TIME_RESET,"reset_dodge",id)
    
  }
  else if (equali(g_key[id],"dd"))
  {
    
   g_dodge[id]=true
   RESET_BUTTON(id)
   g_time[id]=0.0;
   give_dodge(id,2);
   set_task(TIME_RESET,"reset_dodge",id)
    
  }
    
   
  return PLUGIN_CONTINUE;
}

public give_dodge(id,n)
{
  new coord[3];
  new aiming[3];
   
  get_user_origin(id,coord)
  get_user_origin(id,aiming,3);
   
  new Float:orign[3];
   
  new Float:len=floatabs(floatsqroot (float((aiming[0]-coord[0])*(aiming[0]-coord[0])+(aiming[1]-coord[1])*(aiming[1]-coord[1])+(aiming[2]-coord[2])*(aiming[2]-coord[2]))))/10;
   
   
  new i;
   
  new Float:temp;
  for (i=0;i<3;i++)
  {
   orign[i]=float(aiming[i]-coord[i])/len;

    
  }
   
  if (n==1)
  {
   orign[0]=-orign[0];
   orign[1]=-orign[1];
  }
  else if (n==2)
  {
   temp=orign[0];
   orign[0]=orign[1];
   orign[1]=-temp;
  }
  else if (n==3)
  {
   temp=orign[0];
   orign[0]=-orign[1];
   orign[1]=temp;
  }
   
  new Float:vel[3];
   
   
   

  vel[0] = orign[0]*60.0;
  vel[1] = orign[1]*60.0;
  vel[2] = 250.0;
   

  set_pev(id, pev_velocity, vel)
   
}

public reset_dodge(id)
{
  g_dodge[id]=false;
   
}

public reset_jump(id)
{
  g_is_jump_used[id-4567]=false;
  client_print(id-4567,print_chat,"Now you have double djump!");
}

Между прочим у этого плагина сдесь есть официальная тема <_<

Добавлено (15.11.2009, 20:39:01)
---------------------------------------------

Quote (bot131642)
зачем фризтайм в гангейме ?

Тоже интересует)


http://romanov4400.mybrute.com
 
[NegativkO]Дата: Вторник, 17.11.2009, 04:24:36 | Сообщение # 4
Полковник
Группа: Пользователи
Сообщений: 243
Репутация: 3
Статус: Не в сети
Quote (bot131642)
зачем фризтайм в гангейме ?

Затем чтобы ты спросил.

1 раунд длиться 9 минут, и бесконечное мясо что не слышно ничего. Freezetime нужен для того чтобы сделать перерыв игре на 6-5 секунд. Народ играет, не жалуется.

Добавлено (16.11.2009, 03:08:08)
---------------------------------------------

Code
/* Plugin generated by AMXX-Studio */  

#include <amxmodx>  
#include <fakemeta>  

#define PLUGIN "Amx Dodge"  
#define VERSION "0.1.2"  
#define AUTHOR "PomanoB"  

#define TIME_INTERVAL 0.35  
#define TIME_RESET 2.0  

#define TIME_RESET_JUMP 7.0  
#define JUMP_VEL 500.0  

#define ADD_BUTTON(%1,%2) g_key[%1][0]=g_key[id][1];g_key[%1][1]=%2;  
#define RESET_BUTTON(%1) g_key[%1][0]=0;g_key[%1][1]=0;   

new bool:g_dodge[33];  
new Float:g_time[33];  
new g_key[33][2];  
new bool:g_is_jump_used[33];  

new bool:g_freezetime  

public plugin_init()  
{  
   register_plugin(PLUGIN, VERSION, AUTHOR)  
   register_logevent("freezeTimeEnd", 2, "1=Round_Start")  
   register_event("freezeTimeStart", "event", "a", "1=0", "2=0")  
}  

public freezeTimeStart() g_freezetime = true  
public freezeTimeEnd() g_freezetime = false  

public client_PreThink(id)  
{  
     
     
     
   if (g_dodge[id] || g_freezetime)  
    return PLUGIN_CONTINUE  
       
     
   new button=pev(id,pev_button)  
   if (button==0)  
    return PLUGIN_CONTINUE  
     
   new oldbutton=pev(id,pev_oldbuttons);  
     
   if ((button & IN_JUMP) && !(oldbutton & IN_JUMP) && !g_is_jump_used[id])  
   {  
    new fvel;  
    pev(id,pev_flFallVelocity,fvel);  
    if (fvel)  
    {  
     new Float:vel[3];  
     pev(id,pev_velocity,vel);  
     vel[2] = JUMP_VEL;  
     set_pev(id, pev_velocity, vel);  
     g_is_jump_used[id]=true;  
     set_task(TIME_RESET_JUMP,"reset_jump",4567+id);  
       
    }  
   }  
     
     
   if ((button & IN_FORWARD) && !(oldbutton & IN_FORWARD))  
   {  
    ADD_BUTTON(id,'w')  
   }  
   else if ((button & IN_BACK) && !(oldbutton & IN_BACK))  
   {  
    ADD_BUTTON(id,'s')  
   }  
   else if ((button & IN_MOVELEFT) && !(oldbutton & IN_MOVELEFT))  
   {  
    ADD_BUTTON(id,'a')  
   }  
   else if ((button & IN_MOVERIGHT) && !(oldbutton & IN_MOVERIGHT))  
   {  
    ADD_BUTTON(id,'d')  
   }  
   else   
    return PLUGIN_CONTINUE;  
      
   new Float:time_out=get_gametime();  
      
   if ( (!g_time[id]) || (time_out-g_time[id] >TIME_INTERVAL))  
   {  
    g_time[id]=time_out  
    RESET_BUTTON(id)  
    return PLUGIN_CONTINUE;  
   }  
   g_time[id]=time_out;  
     
     
   if (equali(g_key[id],"ww"))  
   {  
      
    g_dodge[id]=true  
    RESET_BUTTON(id)  
    g_time[id]=0.0;  
    give_dodge(id,0);  
    set_task(TIME_RESET,"reset_dodge",id)  
      
      
   }  
   else if (equali(g_key[id],"ss"))  
   {  
      
    g_dodge[id]=true  
    RESET_BUTTON(id)  
    g_time[id]=0.0;  
    give_dodge(id,1);  
    set_task(TIME_RESET,"reset_dodge",id)  
      
   }  
   else if (equali(g_key[id],"aa"))  
   {  
      
    g_dodge[id]=true  
    RESET_BUTTON(id)  
    g_time[id]=0.0;  
    give_dodge(id,3);  
    set_task(TIME_RESET,"reset_dodge",id)  
      
   }  
   else if (equali(g_key[id],"dd"))  
   {  
      
    g_dodge[id]=true  
    RESET_BUTTON(id)  
    g_time[id]=0.0;  
    give_dodge(id,2);  
    set_task(TIME_RESET,"reset_dodge",id)  
      
   }  
      
     
   return PLUGIN_CONTINUE;  
}  

public give_dodge(id,n)  
{  
   new coord[3];  
   new aiming[3];  
     
   get_user_origin(id,coord)  
   get_user_origin(id,aiming,3);  
     
   new Float:orign[3];  
     
   new Float:len=floatabs(floatsqroot (float((aiming[0]-coord[0])*(aiming[0]-coord[0])+(aiming[1]-coord[1])*(aiming[1]-coord[1])+(aiming[2]-coord[2])*(aiming[2]-coord[2]))))/10;  
     
     
   new i;  
     
   new Float:temp;  
   for (i=0;i<3;i++)  
   {  
    orign[i]=float(aiming[i]-coord[i])/len;  

      
   }  
     
   if (n==1)  
   {  
    orign[0]=-orign[0];  
    orign[1]=-orign[1];  
   }  
   else if (n==2)  
   {  
    temp=orign[0];  
    orign[0]=orign[1];  
    orign[1]=-temp;  
   }  
   else if (n==3)  
   {  
    temp=orign[0];  
    orign[0]=-orign[1];  
    orign[1]=temp;  
   }  
     
   new Float:vel[3];  
     
     
     

   vel[0] = orign[0]*60.0;  
   vel[1] = orign[1]*60.0;  
   vel[2] = 250.0;  
     

   set_pev(id, pev_velocity, vel)  
     
}  

public reset_dodge(id)  
{  
   g_dodge[id]=false;  
     
}  

public reset_jump(id)  
{  
   g_is_jump_used[id-4567]=false;  
   client_print(id-4567,print_chat,"Now you have double djump!");  
}

Не помогло...

Добавлено (17.11.2009, 04:24:36)
---------------------------------------------
UP! Кто-то поможет? Плагин то нада исправить - вот вам и репорт баг. Во время freezetime можно использывать додж, а так не правельно!

Сообщение отредактировал [NegativkO] - Воскресенье, 15.11.2009, 22:18:41
 
PomanoBДата: Вторник, 17.11.2009, 14:20:40 | Сообщение # 5
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
register_event("freezeTimeStart", "event", "a", "1=0", "2=0")
замени на
register_event("HLTV", "freezeTimeStart", "a", "1=0", "2=0")


http://romanov4400.mybrute.com

Сообщение отредактировал PomanoB - Вторник, 17.11.2009, 14:20:51
 
AMX Mod X Форум » Плагины » Обсуждение сторонних плагинов » UT Dodge
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024