Заставить игрока приседать

x330122

Участник
Сообщения
357
Реакции
152
Можно ли как-то сделать так чтобы игрок якобы зажал кнопку приседания ?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
можно при нажатии игроком кнопок на клавиатуре добавлять к используемым IN_DUCK
ещё можно попробовать менять значение параметров m_bDucked или m_bDucking (в КСГО приседание в прыжке вроде m_bInDuckJump)
 

gibs

Фитиль народного волненья
Сообщения
722
Реакции
407
Мошенник
Нет, нельзя. Из-за предикции клиента у игрока будет такое себе лагарево
 

x330122

Участник
Сообщения
357
Реакции
152
Ну я менял значения параметров через OnGameFrame, там игрок просто приседает очень быстро и встает. Но работает :to_babruysk:
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@Tetragromaton, ещё есть параметры m_nDuckTimeMsecs, m_nDuckJumpTimeMsecs и m_bDuckEnabled, только что они делают я хз.
То ли сколько ещё должен игрок сидеть, то ли сколько уже просидел.
А m_flLastDuckTime возможно показывает время прошедшее от предыдущего приседания.
 

Max Rhine

Участник
Сообщения
176
Реакции
30
@Grey83, возможно заставить игрока прыгнуть? Пробовал через FakeClientCommand, не работает. CSS v34
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@Max Rhine, добавить IN_JUMP к нажатым кнопкам на несколько тиков, наверное.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@Max Rhine, либо создаёшь массив булевых переменных, для которых меняешь значение игроку на true когда требуется прыжок и в OnPlayerRunCmd() сверяешься с этим значением и при true добавляешь IN_JUMP.

Либо придумываешь какой-то другой способ.
 

Max Rhine

Участник
Сообщения
176
Реакции
30
OnPlayerRunCmd() сверяешься с этим значением и при true добавляешь IN_JUMP
Делал почти тоже самое. На своей практике, впервые вижу чтоб OnPlayerRunCmd не работал. Какой-то древний sm на винде. Второй момент, после каждого нажатия кнопки нужно пропускать 2 тика. Иначе условие не работает)
Всё же спасибо, натолкнул на правильную мысль.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
после каждого нажатия кнопки нужно пропускать 2 тика. Иначе условие не работает)
Можно счётчик добавить в таком случае.
Массив static int num[MAX_PLAYERS+1]; внутри функции или глобальный без static. И каждый тик делать инкремент значения с проверкой, когда требуется задействовать прыжок: if(!(num[client]++ % 3)) buttons |= IN_JUMP.
 

Max Rhine

Участник
Сообщения
176
Реакции
30
Делал глобальный. Где-то слышал, static дорогостоящий по циклу выходит.
Неплохо)) Никогда не понимал, как работает данное условие))
Обычно делаю так: (++num[client] >= 3). Максимально простое и понятное условие. Вопрос, как будет работать плагин ( сбора статистики, наподобие античита ) на разном тикрейте, если писать под 100 tik, а использовать на 66-33 или как в кс го, на 128)))
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
Где-то слышал, static дорогостоящий по циклу выходит.
Массивы дорогостоящими по циклу выходят, а static - это глобальные переменный, видимые только внутри одной функции (даже одного блока кода).
Сообщения автоматически склеены:

Вот ещё про массивы (самый последний абзац сообщения):
 

Max Rhine

Участник
Сообщения
176
Реакции
30
Последний вопрос)) Будет ли применяться static к каждой переменной, таким образом:
C-подобный:
static int x[MAXPLAYERS + 1], y[MAXPLAYERS + 1];
Заранее спасибо за помощь))
 
Последнее редактирование:

DarkerZ

Участник
Сообщения
405
Реакции
183
@Grey83, возможно заставить игрока прыгнуть? Пробовал через FakeClientCommand, не работает. CSS v34
на картах как аналог прыжка используется:
C-подобный:
player,AddOutput,basevelocity 0 0 256
насчёт CSS v34 не знаю, но вот на обычной CSS подобное работает
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@DarkerZ, ну так и в плагине двойного прыжка этот же метод задействован.
 
Сверху Снизу