Как запретить приседания
|
|
OXIZ
|
Дата: Воскресенье, 26.02.2012, 13:09:58 | Сообщение # 1 |
|
Сообщений: 13
Репутация: 2 [ +/- ]
|
|
Доброе утро! появился некий вопрос Нужно запретить приседания для кт приседания (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"
|
|
| |