Jump to content


Photo

Вопросы по скриптингу

Arma3 как плотформа для созда Скритпы

  • Please log in to reply
1486 replies to this topic

#1481 OFFLINE   TopDen

TopDen

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

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

Posted 08 October 2022 - 03:22

подскажите парни как сделать чтобы игрок положив оружие на землю не смог его поднять или оно просто удалилось. скриптами или есть какой-то евентхендлер для этого или еще как?


  • 0

#1482 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1844 posts

Posted 08 October 2022 - 12:28

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

, похоже, даже подходящий пример есть для удаления WeaponHolder'а.
Для блокировки нужно использовать обработку событий

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

, где, например, присваивать GUID игрока WeaponHolder'у, и

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

, где проверять GUID и, если он совпадает с GUID игрока, закрывать инвентарь. Плюс надо добавить с помощью 

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

 обработчик события Rearm, где тоже проверять GUID.


Edited by Schatten, 08 October 2022 - 12:48.

  • 0

#1483 OFFLINE   TopDen

TopDen

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

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

Posted 08 October 2022 - 14:48

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

, похоже, даже подходящий пример есть для удаления WeaponHolder'а.
Для блокировки нужно использовать обработку событий

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

, где, например, присваивать GUID игрока WeaponHolder'у, и

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

, где проверять GUID и, если он совпадает с GUID игрока, закрывать инвентарь. Плюс надо добавить с помощью 

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

 обработчик события Rearm, где тоже проверять GUID.

Спасибо Schatten. не совсем подходит

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

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

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

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

["Take", {

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

["_unit", "_container", "_item"]; }];

т е чтобы в момент "взятия" чего либо откуда угодно шел запрет или удаление. я правильно понимаю этот эвентхендлер?


Edited by TopDen, 08 October 2022 - 15:25.

  • 0

#1484 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1844 posts

Posted 08 October 2022 - 19:39

не совсем подходит InventoryClosed потому что игрок может взять оружие с земли пока у другого игрока "открыто" снаряжение

Тогда:
1 Если нужно удалять, то нужно обрабатывать события Put, где удалять вещь, и InventoryClosed, где удалять WeaponHolder.
2 Если нужно запрещать, то нужно обрабатывать события Put, где присваивать GUID, и InventoryOpened, где проверять GUID. Плюс inGameUISetEventHandler + Rearm.


  • 0

#1485 OFFLINE   TopDen

TopDen

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

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

Posted 09 October 2022 - 16:49


Тогда: 1 Если нужно удалять, то нужно обрабатывать события Put, где удалять вещь, и InventoryClosed, где удалять WeaponHolder.

спасибо. это подходит


  • 0

#1486 OFFLINE   TopDen

TopDen

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

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

Posted 11 October 2022 - 18:14

Schatten, подскажи пожалуйста. у меня есть такая конструкция для создания 3Д надписи над ящиком.
 

addMissionEventHandler ["Draw3D", //десант
{
		private _distance = positionCameraToWorld [0,0,0] distance desant;
		
		if ( _distance < 15 ) then
		{
			private _iconSize = 1 max ( 3 / ( _distance / 3 ) ) min 2;
			private _iconPos = getPos desant;
			_iconPos set [2, _iconPos#2 + 20];
			
			drawIcon3D
			[
				"",
				[0.06, 0.63, 0.02, 1],
				
				_iconPos,
				_iconSize/2,
				_iconSize/2,
				0,
				"Десантирование",
				true,
				_iconSize / 30,
				"PuristaSemiBold",
				"center",
				true
			];
		};
}];

т е когда подходишь к ящику ближе 15м то над ни светиться 3д надпись "десантирование". Но эта надпись привязана по выслте от земли, а надо привязать высоту от ящика (не важно на какой он высоте находился бы сам) Сейчас там  написано _iconPos set [2, _iconPos#2 + 20];  20 -это высота от земли потому что ящик стоит на авианосце на воде соответсвенно. Можно поправить это как-то? название ящика "desant"


Edited by TopDen, 11 October 2022 - 18:18.

  • 0

#1487 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1844 posts

Posted 11 October 2022 - 20:04

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

. А при передаче скорректированной позиции

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

, как написано в описании, конвертировать её в 

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

с помощью

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

.
Можно также воспользоваться командой

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

.


  • 0




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