Перейти к содержимому


Фотография

Как запретить/отключить передвижение игрока.


Лучший Ответ Schatten , 08 June 2019 - 19:58

kolyanya, добавь нужные действия в моё решение.

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 22

#1 OFFLINE   kolyanya

kolyanya

    Мл.сержант

  • Пользователи
  • 107 сообщений
  • Откуда:улан-удэ

Отправлено 06 June 2019 - 17:29

Доброго времени суток, у меня вопрос, как запретить/отключить передвижение для игрока, чтобы он мог только целиться и стрелять из оружия, а ходить, менять положение тела не мог?


  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 06 June 2019 - 18:11

Каждый кард выполнять на клиенте игрока:
player setPos [0, 0, 0];          // Телепорт на позицию, на которой игрок должен "зависнуть"

// Вызов действия смены положения
player playAction "PlayerStand";  // Стоя
player playAction "PlayerCrouch"; // Сидя
player playAction "PlayerProne";  // Лежа

Сообщение отредактировал vlad333000: 06 June 2019 - 18:11

  • 0

#3 OFFLINE   kolyanya

kolyanya

    Мл.сержант

  • Пользователи
  • 107 сообщений
  • Откуда:улан-удэ

Отправлено 07 June 2019 - 07:03

Каждый кард выполнять на клиенте игрока:

player setPos [0, 0, 0];          // Телепорт на позицию, на которой игрок должен "зависнуть"

// Вызов действия смены положения
player playAction "PlayerStand";  // Стоя
player playAction "PlayerCrouch"; // Сидя
player playAction "PlayerProne";  // Лежа

Спасибо, всё работает, но ствол оружия гуляет нереально.


  • 0

#4 OFFLINE   nIkRon

nIkRon

    Сержант

  • Пользователи
  • 195 сообщений
  • Откуда:Донецк

Отправлено 07 June 2019 - 07:14

Каждый кард выполнять на клиенте игрока:

player setPos [0, 0, 0];          // Телепорт на позицию, на которой игрок должен "зависнуть"

// Вызов действия смены положения
player playAction "PlayerStand";  // Стоя
player playAction "PlayerCrouch"; // Сидя
player playAction "PlayerProne";  // Лежа

А не лучше будет заблокировать ненужные кнопки ? 


  • 0

#5 OFFLINE   kolyanya

kolyanya

    Мл.сержант

  • Пользователи
  • 107 сообщений
  • Откуда:улан-удэ

Отправлено 07 June 2019 - 07:33

Эх, если бы я знал, как их заблокировать.
  • 0

#6 OFFLINE   kolyanya

kolyanya

    Мл.сержант

  • Пользователи
  • 107 сообщений
  • Откуда:улан-удэ

Отправлено 07 June 2019 - 09:34

Попробовал решить проблему с гулянием ствола командой  player setCustomAimCoef 0; Ствол перестал гулять, но появились мелкие дёргания, вправо-влево, при выстреле пуля летит правее или левее цели.

Так что это не вариант. А как блокировать кнопки игрока.


  • 0

#7 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 сообщений
  • Откуда:SPB

Отправлено 07 June 2019 - 10:28


А как блокировать кнопки игрока.

disableUserInput true;


  • 0

#8 OFFLINE   moroz89

moroz89

    Мл.сержант

  • Пользователи
  • 116 сообщений

Отправлено 07 June 2019 - 10:40

А как блокировать кнопки игрока.

disableUserInput true;
Эта команда так же отключает мышку
  • 0

#9 OFFLINE   moroz89

moroz89

    Мл.сержант

  • Пользователи
  • 116 сообщений

Отправлено 07 June 2019 - 10:50

waitUntil {!isNull (findDisplay 46)};
downKeyEH = (findDisplay 46) displayAddEventHandler ["KeyDown",{
_return = false;
if ((_this # 1) in [17,30,31,32]) then {
_return = true;
};
_return
}];
  • 0

#10 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 07 June 2019 - 11:00

Каждый кард выполнять на клиенте игрока:

player setPos [0, 0, 0];          // Телепорт на позицию, на которой игрок должен "зависнуть"

// Вызов действия смены положения
player playAction "PlayerStand";  // Стоя
player playAction "PlayerCrouch"; // Сидя
player playAction "PlayerProne";  // Лежа
А не лучше будет заблокировать ненужные кнопки ?
Это могло быть лучшим вариантом, если бы БИСы это правильно реализовали, а так этот механизм имеет кучу способов обхода
  • 0

#11 OFFLINE   nIkRon

nIkRon

    Сержант

  • Пользователи
  • 195 сообщений
  • Откуда:Донецк

Отправлено 07 June 2019 - 21:55

vlad333000,Какие именно способы ? Я просто не сталкивался еще с багами в них. 


  • 0

#12 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1780 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 07 June 2019 - 22:48

kolyanya,

(findDisplay 46) displayAddEventHandler ["KeyDown", {
    _key = _this select 1;

    ["MoveForward", "MoveBack", "MoveLeft", "MoveRight", "GetOver"] findIf {_key in (actionKeys _x)} >= 0
}]; 

  • 0

#13 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 08 June 2019 - 13:43

nIkRon, во-первых, таким способом ты не запретишь действия назначенные не на клавиатуре (Например, геймпаде, мышке, джойстике) (В арме просто нет механизма для этого)
во-вторых, а что если были назначены не WASD? (У меня в друзьях даже есть человек, у которого это именно так). В таком случае нужно прибегнуть к способу:

kolyanya,

(findDisplay 46) displayAddEventHandler ["KeyDown", {
    _key = _this select 1;

    ["MoveForward", "MoveBack", "MoveLeft", "MoveRight", "GetOver"] findIf {_key in (actionKeys _x)} >= 0
}]; 
Но в данном случае мы должны доверится игроку в том, что он не назначит на эти действия комбинации клавиш иначе придется немного попотеть с этой командой -

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание



PS Я пытался одно время реализовать скрипт "передач" с помощью этого, это был просто адд, и в итоге не получилось
  • 0

#14 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1780 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 08 June 2019 - 14:00

Но в данном случае мы должны доверится игроку в том, что он не назначит на эти действия комбинации клавиш иначе придется немного попотеть с этой командой - actionKeysNames

Судя по

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

, команда actionKeys нормально отработает, даже если действия назначены на комбинации клавиш:

Returns Array containing dikCodes of keys, buttons and combos assigned to the given user action.

Неужели это не так?


  • 0

#15 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 08 June 2019 - 14:25

Schatten, прочитайте первый комментарий к этой команде или попробуйте сами
  • 1

#16 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1780 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 08 June 2019 - 14:34

vlad333000, ясно, спасибо. 


  • 0

#17 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 08 June 2019 - 14:38

kolyanya, так вам нужно отключить только передвижение или еще и смену положения тела игроком? Если первое, то убираете смену положения из моего кода и все прекрасно будет работать, если второе, то да проблему понял исправить можно, но где решение "запрета смены положения" в "решении вопроса"?

Сообщение отредактировал vlad333000: 08 June 2019 - 14:40

  • 0

#18 OFFLINE   kolyanya

kolyanya

    Мл.сержант

  • Пользователи
  • 107 сообщений
  • Откуда:улан-удэ

Отправлено 08 June 2019 - 19:45

kolyanya, так вам нужно отключить только передвижение или еще и смену положения тела игроком? Если первое, то убираете смену положения из моего кода и все прекрасно будет работать, если второе, то да проблему понял исправить можно, но где решение "запрета смены положения" в "решении вопроса"?

Ну да, смену положения это не решило, а ещё игрок сможет пользоваться перекатом.


  • 0

#19 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1780 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 08 June 2019 - 19:58   Лучший Ответ

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

в моё решение.


  • 0

#20 OFFLINE   kolyanya

kolyanya

    Мл.сержант

  • Пользователи
  • 107 сообщений
  • Откуда:улан-удэ

Отправлено 08 June 2019 - 20:18

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

в моё решение.

Пробовал ваш вариант, вперёд-назад отключилось но по бокам почему-то ходит.


  • 0




Яндекс.Метрика