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


Фотография

Знаю как исправить лютый баг Армы, отравляющий жизнь, но не могу!


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

#1 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 19 October 2021 - 03:24

Доброго дня!

 

Ищу доброго человека понимающего в управлении и анимациях Арма3. У меня есть простое решение как исправить ужасный баг Армы, от которого периодически глупо умирает игрок.

 

Чрезмерно устал от этого бага Армы, Как же Бесит!!! 

 

В общем ситуация бывает такой:

 

игрок с пусковой установкой - Титан Лаунчером в руках, ставит верхний режим огня и выцеливает танк.

Бахх - это выстрел -  игрок выстрелил в танк! После выстрела из пусковой, почти все противники видят игрока (так устроена Арма3) противники замечают выстрел и начинают стрелять в игрока, а игрок после выстрела пытается лечь, чтобы спастись от ответного огня противника НО в этот момент, когда игрок нажимает кнопку "Лечь", персонаж игрока ложится и снова автоматически встает, беря в руки пусковую установку Titan! В этот момент в лицо игрока летит шквал пуль и он погибает!

Беда, в том, что Нет никакого способа остановить анимацию автоматического вставания!

 

 

Проблема появилась после DLC Tanks, когда бесы добавили верхний режим огня и сделали так - "если игрок с пусковой в руках ложится он должен лечь в режиме без оружия" т.е. ложится с пустыми руками, а карабин и пусковая у него остаются на спине.

Эта дичь и создает этот баг! 

 

Все что нужно сделать это то, чтобы игрок который ложится с любой пусковой установкой в руках, всегда автоматически переключался бы на любое оружие. Если есть карабин то сначала на карабин, а если нет карабина, но есть пистолет то на пистолет. Всегда всегда! 

 

 

И только если нет другого оружия кроме пусковой, тогда чтобы игрок ложился безоружным! Так и было в Арме3 до Tanks DLC, но потом какой то дурак привнес. Друзья, кто понимает в создании аддонов или в настройках и управлении Армы, попробуйте создать такой мини аддон. Он бы сэкономил кучу нервов у игроков. 

Или просто подскажите как его сделать, это будет наверно самый полезный аддон для Арма3!

 

 

 

Простое воспроизведение беды, воспроизводит 100%:

 

1. Стреляйте из Titan Launcher (обязательно режим "Top Fire") без верхнего режима огня проблемы не будет.
2. После выстрела Нажмите Z (лечь)
Или можно даже не стрелять, просто возьмите в руки Titan Launcher переведите его в Top режим и жмите кнопку "Z" (лечь)
 

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

 
ЗЫ; Похожая проблема возникает и с РПГ! Игрок будет вставать, но здесь не всегда стабильно. Игрок выстрелил из РПГ, потом  ложится, но Бац, он опять встанет, чтобы в итоге снова лечь с пустыми руками!
 

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

 
Если создать аддон о котором я говорю то это напрочь решить обе проблемы!

Сообщение отредактировал mickeymen: 21 October 2021 - 14:32

  • 0

#2 OFFLINE   Ibragim

Ibragim

    Сержант

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

Отправлено 19 October 2021 - 10:25

Я потестировал и написал вот такой обработчик. Работает нормально как с позиции стоя, так и с колена.

this addEventHandler ["AnimChanged", 
	{
		params ["_unit", "_anim"];
		
		if (_anim in ["amovppnemstpsnonwnondnon"] && currentWeapon _unit isEqualTo secondaryWeapon _unit && secondaryWeaponMagazine _unit isEqualTo []) then 
			{         						   
				if (primaryWeapon _unit isNotEqualTo "") exitWith 
					{
						_unit selectWeapon (primaryWeapon _unit);
					};
					
				if (handgunWeapon _unit isNotEqualTo "") exitWith 
					{
						_unit selectWeapon (handgunWeapon _unit);
					};
					
				if (binocular _unit isNotEqualTo "") exitWith 
					{
						_unit selectWeapon (binocular _unit);
					};
					
				_unit action ["SwitchWeapon", _unit, _unit, 100];				
			};
	}];

  • 1

#3 OFFLINE   TopDen

TopDen

    Мл. лейтенант

  • Пользователи
  • 803 сообщений
  • Откуда:Москва
  • Отряд:[АТР] АРМАТОП

Отправлено 19 October 2021 - 23:43

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


  • 0

#4 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 20 October 2021 - 00:57


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

Конечно спасибо за участие, но стрельба из лаунчера лежа - это нонсенс. Такая стрельба в реале поколечила бы стреляющего посредством Back Blast, сожгла бы жопу и ноги стреляющему. Видел эту глупость в PIR моде и др отдельных модах. Мне не подходит.

 

 

 


Я потестировал и написал вот такой обработчик. Работает нормально как с позиции стоя, так и с колена.

 

Огромное Спасибо


Сообщение отредактировал mickeymen: 20 October 2021 - 02:24

  • 0

#5 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 20 October 2021 - 01:37

 

 


Я потестировал и написал вот такой обработчик
 Для тестов, мне нужно создать аддон. Я пробовал его создать, с помощью PBO Menager.
Заархивировал файл, добавил этот скриптовой блок с своим небольшим корректировкам игры. Получилось так:
 
 
this addEventHandler ["AnimChanged",  
 { 
  params ["_unit", "_anim"]; 
   
  if (_anim in ["amovppnemstpsnonwnondnon"] && currentWeapon _unit isEqualTo secondaryWeapon _unit && secondaryWeaponMagazine _unit isEqualTo []) then  
   {                   
    if (primaryWeapon _unit isNotEqualTo "") exitWith  
     { 
      _unit selectWeapon (primaryWeapon _unit); 
     }; 
      
    if (handgunWeapon _unit isNotEqualTo "") exitWith  
     { 
      _unit selectWeapon (handgunWeapon _unit); 
     }; 
      
    if (binocular _unit isNotEqualTo "") exitWith  
     { 
      _unit selectWeapon (binocular _unit); 
     }; 
      
    _unit action ["SwitchWeapon", _unit, _unit, 100];     
   }; 
 }];


player setUnitRecoilCoefficient 1.4;
player setCustomAimCoef 1.4;
enableEnvironment [false, true];

Касаемо раскачки и отдачи, отключения животных я использовал это прежде. Теперь добавил твой блок.

 

Но игра выдает ошибку:

 

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

 
Я бы хотел понять, как грамотно создать такой аддон, чтобы он работал всегда, и без проблем, для любого игрока у кого он будет установлен. @Ibragim покажи пожалуйста как он должен выглядеть, этот аддон. Я бы хотел в будущем добавлять в него свои будущие изменения, которые мне удастся сделать для Арма3

Сообщение отредактировал mickeymen: 20 October 2021 - 02:25

  • 0

#6 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 20 October 2021 - 02:01

Ibragim 

Подскажи пожалуйста я могу все в один файл скинуть? Или лучше создать отдельные архивы Pbo для каждой настройки?

Например для раскачки оружия и отдачи один файл, для окружения животными другой файл и для переключения оружия третий файл?

 

Например назову свой аддон mymod, это будет префикс, а дельше будет имя того что делает архив:

 

mymod_reloil&sway.pbo

mymod_animals.pbo

mymod_pronewithlauncher.pbo

 

Так будет правильней? Или лучше все сделать в одном файле? Я никогда не делал своих аддонов, кроме простейших, с небольшими корректировками. Хочу понять как граммотно создать аддон, в которы можно будет добавлять со временем новые исправления или фишки для Арма3


Сообщение отредактировал mickeymen: 20 October 2021 - 02:04

  • 0

#7 OFFLINE   Ibragim

Ibragim

    Сержант

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

Отправлено 20 October 2021 - 06:56

Я тоже никогда не делал аддоны такого типа. Поэтому помочь с аддоном вряд ли смогу. Напиши в ютубе arma 3 haw to make addon и посмотри пару видео.


  • 0

#8 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 20 October 2021 - 15:34


Я тоже никогда не делал аддоны такого типа. Поэтому помочь с аддоном вряд ли смогу. Напиши в ютубе arma 3 haw to make addon и посмотри пару видео

Благодарю, я поищу как делать аддон.

 

Однако я пробовал протестить твой скриптовой блок и он не сработал в итоге.

Я вставлял его как в init юнита, так и в debug panel редактора и в триггеры.

Как мне правильно протестить твой скриптовый блок? 

 

Сначала мне показалось что это работает но потом я вспомнил что пробовал назначать клавишу "Лечь" и "выбрать первичное оружие" одной и той же кнопкой.

Что работало но оказалось нежелательным для геймплея. Игрок с пистолетом будет автоматически переключаться на карабин


Сообщение отредактировал mickeymen: 20 October 2021 - 15:54

  • 0

#9 OFFLINE   Ibragim

Ibragim

    Сержант

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

Отправлено 20 October 2021 - 16:14

Благодарю, я поищу как делать аддон.

 

Однако я пробовал протестить твой скриптовой блок и он не сработал в итоге.

Я вставлял его как в init юнита, так и в debug panel редактора и в триггеры.

Как мне правильно протестить твой скриптовый блок? 

 

Сначала мне показалось что это работает но потом я вспомнил что пробовал назначать клавишу "Лечь" и "выбрать первичное оружие" одной и той же кнопкой.

Что работало но оказалось нежелательным для геймплея. Игрок с пистолетом будет автоматически переключаться на карабин

 

Как тестировал я:

Зашел в ВР, поставил натовца с Титаном и в стах метрах от него обычный фургон.

Прописал весь скрипт в init натовца.

Переключая на вертикальный выстрел запускал ракету в фургон и сразу нажимал на Z.
Скрипт переключает на первичное оружие как с позиции стоя, так и с позиции с колена.

Если выбросить первичное оружие, будет переключать на пистолет.

Если выбросить и первичное, и пистолет, будет переключать на бинокль.

Если нет ничего из этого, то будет просто вешать вторичное оружие (Титан в данной ситуации) на спину.


Сообщение отредактировал Ibragim: 20 October 2021 - 16:15

  • 0

#10 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 20 October 2021 - 21:40


Как тестировал я: Зашел в ВР, поставил натовца с Титаном и в стах метрах от него обычный фургон. Прописал весь скрипт в init натовца. Переключая на вертикальный выстрел запускал ракету в фургон и сразу нажимал на Z. Скрипт переключает на первичное оружие как с позиции стоя, так и с позиции с колена. Если выбросить первичное оружие, будет переключать на пистолет. Если выбросить и первичное, и пистолет, будет переключать на бинокль. Если нет ничего из этого, то будет просто вешать вторичное оружие (Титан в данной ситуации) на спину

 

 

Я повторил весь алгоритм выстрелил и лег - сработало. Но сразу после этого остановился, взял в руки Титан перключился вновь в режим верхнего огня. И дальше не работает.

 

Самый простой тест - не нужно никуда стрелять - просто поставь бойца с Титан-Лаунчер в карту, переключит в "Top Fire Mode" и нажми кнопку "Z", ты увидишь что скрипт не сработает( Боец ляжет и встанет одновременно. Скорее всего твой код работает, но не стабильно

 

Позже: мне кажется твой код работает только при движении. В первый раз у меня сработало, когда я выстрелил и сделал пару шагов и потом нажал Z. А если не делать движения то не сработает. 


Сообщение отредактировал mickeymen: 20 October 2021 - 21:49

  • 0

#11 OFFLINE   Ibragim

Ibragim

    Сержант

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

Отправлено 20 October 2021 - 22:02

Код работает во всех случаях, в которых выполняется три условия:

1) игрок переходит в положение лежа

2) у игрока в руках пусковая установка

3) пусковая установка разряжена (только что был произведен выстрел)

 

Следовательно, если ложиться с заряженной установкой, код не будет работать.

Если хочешь, чтобы игрок всегда вешал пусковую установку на за плечо, используй этот код:
 

this addEventHandler ["AnimChanged", 
	{
		params ["_unit", "_anim"];
		
		if (_anim in ["amovppnemstpsnonwnondnon"] && currentWeapon _unit isEqualTo secondaryWeapon _unit) then 
			{         				
				_unit action ["SwitchWeapon", _unit, _unit, 100];				
			};
	}];

  • 0

#12 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 20 October 2021 - 22:09


Код работает во всех случаях, в которых выполняется три условия: 1) игрок переходит в положение лежа 2) у игрока в руках пусковая установка 3) пусковая установка разряжена (только что был произведен выстрел)

вот и ошибка! А зачем пусковой быть разряженой? Игрок может прицелится, но передумать стрелять!

Или его может вынудить враг, отменить свой огонь. Например подавить или танк может скрыться из зоны видимости да там куча причин может быть

 

 


Следовательно, если ложиться с заряженной установкой, код не будет работать.

сделай пожалуйста чтобы всегда работал код! Совершенно не важно заряжена пусковая или нет. Просто игрок с пусковой в руках должен лечь и переключится на стрелковое оружие, в зависимости от его наличия.  


Сообщение отредактировал mickeymen: 20 October 2021 - 22:11

  • 0

#13 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 20 October 2021 - 22:16


Если хочешь, чтобы игрок всегда вешал пусковую установку на за плечо, используй этот код

Здесь я не понял, как это "не за плечо" может быть ты предложил мне именно то о чем я прошу выше? Ошибся, хотел написать "за плечо"? 

 

ДА Я ВИЖУ! теперь это работает всегда, нужно время для тестов.

Спасибо большое дружище! Очень благодарен

 

PS: только с РПГ не работает


Сообщение отредактировал mickeymen: 20 October 2021 - 22:20

  • 0

#14 OFFLINE   Ibragim

Ibragim

    Сержант

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

Отправлено 20 October 2021 - 22:33

Выше изложенный кода работает при двух условиях:

1) в руках пусковая установка

2) переход в положение лежа

 

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

this addEventHandler ["AnimChanged", 
	{
		params ["_unit", "_anim"];
		
		if (_anim in ["amovppnemstpsnonwnondnon"] && currentWeapon _unit isEqualTo secondaryWeapon _unit) then 
			{         						   
				if (primaryWeapon _unit isNotEqualTo "") exitWith 
					{
						_unit selectWeapon (primaryWeapon _unit);
					};
					
				if (handgunWeapon _unit isNotEqualTo "") exitWith 
					{
						_unit selectWeapon (handgunWeapon _unit);
					};
					
				if (binocular _unit isNotEqualTo "") exitWith 
					{
						_unit selectWeapon (binocular _unit);
					};
					
				_unit action ["SwitchWeapon", _unit, _unit, 100];				
			};
	}];

  • 0

#15 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 21 October 2021 - 00:35


Выше изложенный кода работает при двух условиях: 1) в руках пусковая установка 2) переход в положение лежа

 

 

Спасибо Ibragim, я проверил это с другими установками кроме Титана, но все же с ними не работает. Код, по действию  аналогичен предидущему, хотя предидущий был намного короче

Только с Титаном AT в руках все работает безупречно.

Ты сказал что должен работать с любой пусковой, странно но работает только с Титаном!

Почему так?

 

Как я уже говорил если игрок с другой пусковой то тоже может произойти баг с авто-вставанием.

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

Так же это может случится со с всеми другими пусковыми, которых много в Арма3, особенно с модами.


Сообщение отредактировал mickeymen: 21 October 2021 - 00:44

  • 0

#16 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 21 October 2021 - 00:41

Кстати если в руках у игрока Titan AA, то тоже не работает! Персонаж не будет переключаться на первичное оружие!

Вот странно, ты же не указываешь в коде конкретное оружие!

 

В общем твой код у меня работает ТОЛЬКО если в руках игрока Titan AT


Сообщение отредактировал mickeymen: 21 October 2021 - 00:42

  • 0

#17 OFFLINE   Ibragim

Ibragim

    Сержант

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

Отправлено 21 October 2021 - 20:27

Надо попробовать кое-что.

_unit action ["SwitchWeapon", _unit, _unit, 100];

Эта команда (убрать за спину) отключает действие обработчика, которая возобновляется сразу после того, как игрок опять в руки берет оружие.


  • 0

#18 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 22 October 2021 - 00:30

Извини я не понял, ты слишком краток. 

Я пробовал вставить это в инит бойцов (Ракетчик AT и стрелок AT)

_unit action ["SwitchWeapon", _unit, _unit, 100];

, но ничего не происходит. По крайней мере я не заметил.

 

Ты не понял почему прежний код работал только для Ракетчика AT? 

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


  • 0

#19 OFFLINE   mickeymen

mickeymen

    Ст. Прапорщик

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

Отправлено 22 October 2021 - 01:09

_unit action ["SwitchWeapon", _unit, _unit, 100];

мне интересно что значит 100?


  • 0

#20 OFFLINE   Ibragim

Ibragim

    Сержант

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

Отправлено 22 October 2021 - 14:20

В общем, обработчик "AnimChanged" по мне не понятной причине полностью перестает работать после того, как игрок вешает оружие за спину как по команде через скрипт, так и автоматически, если использует те ПУ, при выстреле из которых и последующем падении на землю игра это делает автоматически (например, с Титаном в топ режиме игра этого не делает).
Поэтому скрипт работает с Титаном, но не работает с многими другими ПУ.

Придется менять концепт обработки (скрипт с циклом) или сам обработчик.


  • 0




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