Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 2
  • 1
  • 2
  • »
Как запретить приседания
OXIZ Дата: Воскресенье, 26.02.2012, 13:09:58 | Сообщение # 1
Сообщений: 13
Репутация: 2 [ +/- ]
Доброе утро! появился некий вопрос dumaem
Нужно запретить приседания для кт приседания (client известен) будет работать через меню как осуществить ?
 
_wS_ Дата: Воскресенье, 26.02.2012, 14:26:53 | Сообщение # 2
Code
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
     buttons &= ~IN_DUCK;
     return Plugin_Changed;
}


Осталось только добавить нужные условия, например:

Code
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
     if (client == индекс_твоего_игрока || GetClientTeam(client) == 3)
     {
         buttons &= ~IN_DUCK;
         return Plugin_Changed;
     }
     return Plugin_Continue;
}
 
OXIZ Дата: Воскресенье, 26.02.2012, 14:48:41 | Сообщение # 3
Сообщений: 13
Репутация: 2 [ +/- ]
большое спасибо!
 
IceMeN Дата: Среда, 09.05.2012, 10:08:21 | Сообщение # 4
Сообщений: 47
Репутация: 5 [ +/- ]
_wS_, а где можно посмотреть обозначения кнопок?
Пример: buttons &= ~IN_DUCK - приседание
buttons &= ~IN_JUMP - прыжок.
 
_wS_ Дата: Среда, 09.05.2012, 10:16:07 | Сообщение # 5
http://docs.sourcemod.net/api/index.php?fastload=file&id=47&file=&

Code
// These defines are for client button presses.
#define IN_ATTACK  (1 << 0)
#define IN_JUMP   (1 << 1)
#define IN_DUCK   (1 << 2)
#define IN_FORWARD  (1 << 3)
#define IN_BACK   (1 << 4)
#define IN_USE   (1 << 5)
#define IN_CANCEL  (1 << 6)
#define IN_LEFT   (1 << 7)
#define IN_RIGHT  (1 << 8)
#define IN_MOVELEFT  (1 << 9)
#define IN_MOVERIGHT  (1 << 10)
#define IN_ATTACK2  (1 << 11)
#define IN_RUN   (1 << 12)
#define IN_RELOAD  (1 << 13)
#define IN_ALT1   (1 << 14)
#define IN_ALT2   (1 << 15)
#define IN_SCORE  (1 << 16)    // Used by client.dll for when scoreboard is held down
#define IN_SPEED  (1 << 17)    // Player is holding the speed key
#define IN_WALK   (1 << 18)    // Player holding walk key
#define IN_ZOOM   (1 << 19)    // Zoom key for HUD zoom
#define IN_WEAPON1  (1 << 20)    // weapon defines these bits
#define IN_WEAPON2  (1 << 21)    // weapon defines these bits
#define IN_BULLRUSH  (1 << 22)
#define IN_GRENADE1  (1 << 23)    // grenade 1
#define IN_GRENADE2  (1 << 24)    // grenade 2
 
IceMeN Дата: Среда, 09.05.2012, 17:45:05 | Сообщение # 6
Сообщений: 47
Репутация: 5 [ +/- ]
Спасибо!
 
gamer-killer Дата: Понедельник, 01.04.2013, 10:38:04 | Сообщение # 7
Сообщений: 12
Репутация: 0 [ +/- ]
А как например добавтиь условие нельзя садитсья опредленным оружием, зачем вообще в функции присуствует weapon, как ег оиспользовтаь можно
 
TEIN Дата: Понедельник, 01.04.2013, 11:15:21 | Сообщение # 8
Сообщений: 563
Репутация: 78 [ +/- ]
Сравниваешь функцией strcmp оружия
 
BeatMaker_R1KO_ Дата: Понедельник, 08.07.2013, 19:09:44 | Сообщение # 9
Сообщений: 60
Репутация: 0 [ +/- ]
_wS_, а это работает пока игрок держит кнопку или только когда нажал ?
Код
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)  
  {  
      buttons &= ~IN_DUCK;  
      return Plugin_Changed;  
  }
 
_wS_ Дата: Понедельник, 08.07.2013, 19:14:14 | Сообщение # 10
Это работает всегда.
 
BeatMaker_R1KO_ Дата: Понедельник, 08.07.2013, 21:13:42 | Сообщение # 11
Сообщений: 60
Репутация: 0 [ +/- ]
тоесть если я сделаю так:
Код
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)    
{    
        buttons &= ~IN_USE;
        // код
        return Plugin_Continue;    
}


код будет выполнятся пока игрок не отпустит кнопку ?

И сразу еще вопрос, OnPlayerRunCmd меньше нагружает чем OnGameFrame ?


Сообщение отредактировал BeatMaker_R1KO_ - Понедельник, 08.07.2013, 21:13:57
 
_wS_ Дата: Понедельник, 08.07.2013, 22:03:01 | Сообщение # 12
Цитата (BeatMaker_R1KO_)
код будет выполнятся пока игрок не отпустит кнопку ?

Я же говорю, выполняется всегда (пока игрок на сервере), вставь PrintToServer("->") и смотри.

Цитата (BeatMaker_R1KO_)
И сразу еще вопрос, OnPlayerRunCmd меньше нагружает чем OnGameFrame ?

Точно сказать не могу, бывает лучше использовать то, а бывает это, или даже CreateTimer. Например, в OnGameFrame нужно циклом игроков находить и использовать IsClientInGame, а в OnPlayerRunCmd не нужно. Думаю разницу можно конечно понять, есть такая штука Profiler - делаешь два плагина и сравниваешь производительность (никогда этого не делал, но судя по статье, это возможно).
 
BeatMaker_R1KO_ Дата: Понедельник, 08.07.2013, 23:19:50 | Сообщение # 13
Сообщений: 60
Репутация: 0 [ +/- ]
_wS_, просто хочу парашют переделать, незнаю как лучше сделать.
 
Samil Дата: Пятница, 15.08.2014, 12:47:06 | Сообщение # 14
Сообщений: 59
Репутация: 11 [ +/- ]
Подскажите кнопку shift
 
Meow_1337 Дата: Пятница, 15.08.2014, 15:25:43 | Сообщение # 15
Сообщений: 207
Репутация: 11 [ +/- ]
Цитата Samil ()
Подскажите кнопку shift

#define IN_SPEED (1 << 17)
bind "SHIFT" "+speed"
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: