PDA

Просмотр полной версии : [Вопрос] Запрет прыжка и бега.



MARVEL
10.02.2017, 21:33
Как сделать так, чтоб при нажатии на копку прыжка или кнопку бега - не происходило никаких действий?
То есть, например, бегу я просто на W, потом нажимаю на прыжок или бег, а никаких действий не происходит, игрок продолжает бежать дальше и все.

Alpano
10.02.2017, 22:18
Как сделать так, чтоб при нажатии на копку прыжка или кнопку бега - не происходило никаких действий?
То есть, например, бегу я просто на W, потом нажимаю на прыжок или бег, а никаких действий не происходит, игрок продолжает бежать дальше и все.

попробуй отследить анимации, и сбрасывать при сочитании клавиш.

MARVEL
10.02.2017, 22:24
попробуй отследить анимации, и сбрасывать при сочитании клавиш.

Если сбрасывать анимацию персонаж будет как-бы приостанавливаться на мгновение и дальше бежать, ведь так?
Если так, то такой способ мне не подходит) Мне нужно, чтоб вообще никаких действий не происходило.

Alpano
10.02.2017, 22:54
Если сбрасывать анимацию персонаж будет как-бы приостанавливаться на мгновение и дальше бежать, ведь так?
Если так, то такой способ мне не подходит) Мне нужно, чтоб вообще никаких действий не происходило.
пробуй, экспериментируй с анимациями.
в сампе такие штуки только через костыли)

vovandolg
11.02.2017, 09:46
в каллбеке OnPlayerKeyStateChange прописать условие в виде конструкции
если нажата клавиша прыжка проверить нажаты ли стрелки GetPlayerKeys(или я бы замерил скорость при прыжке в движении и отслеживал по скорости, я всё равно компановал с античитами так что скорость проверялась сама собой)
и потом уже давать анимацию бега, правда у каждого скина своя анимация если не юзаешь бег сиджея.

Pe4en9
13.02.2017, 15:37
Что-то типо такого...

if(newkeys & KEY_JUMP && newkeys & KEY_SPRINT)
{
if(!IsPlayerInAnyVehicle(playerid))
{
new index = GetPlayerAnimationIndex(playerid);
if(index == 1224 || index == 1247 || index == 1257 || index == 1249 || index == 1196 || index == 1249)
{
new keys,ud,lr;
GetPlayerKeys(playerid,keys,ud,lr);
if(ud != 0 || lr != 0) ClearAnimations(playerid);
}
}
}

vovandolg
14.02.2017, 05:54
Что-то типо такого...

if(newkeys & KEY_JUMP && newkeys & KEY_SPRINT)
{
if(!IsPlayerInAnyVehicle(playerid))
{
new index = GetPlayerAnimationIndex(playerid);
if(index == 1224 || index == 1247 || index == 1257 || index == 1249 || index == 1196 || index == 1249)
{
new keys,ud,lr;
GetPlayerKeys(playerid,keys,ud,lr);
if(ud != 0 || lr != 0) ClearAnimations(playerid);
}
}
}

Зная как работает эта функция, получится дёрганый нарк +1

Pe4en9
14.02.2017, 12:21
Зная как работает эта функция, получится дёрганый нарк +1

Что просил, то дал . Ну поверь, уж лучше глупых анимок типо ты упал, или отступа назад на пару шагов. Пусть уж чистится анимка.

vovandolg
14.02.2017, 20:36
Что просил, то дал . Ну поверь, уж лучше глупых анимок типо ты упал, или отступа назад на пару шагов. Пусть уж чистится анимка.

Создаёшь вареник с размером массива под кол-во скинов, каждой группе скинов свой флажок(типо walk_gang, walk_civi и т.п.)
Проверяешь ID анимаций у каждой походки и потом уже применяешь в условии какую анимацию тебе надо и будет он дальше проигрывать то что по скину положено.
Не каких сбросов и кувырков)