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


Фотография

magazinesAmmo и пустые магазины


Лучший Ответ Schatten , 20 September 2015 - 16:35

_magazines = [];
     
{
	if (_x != "") then {
		_container = switch (_forEachIndex) do {
			case 0: {uniformContainer player};
			case 1: {vestContainer player};
			case 2: {backpackContainer player};
		};

		_magazines append (magazinesAmmoCargo _container);
	};
}
forEach [
	uniform player,
	vest player,
	backpack player
];

Мне нужно получить список всех магазинов, включая пустые в виде [classname, ammo].

Пустые магазины? Такое возможно?

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


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

#1 OFFLINE   ruPal

ruPal

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

  • HMG-RO
  • 914 сообщений

Отправлено 20 September 2015 - 14:52

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

Мне нужно получить список всех магазинов, включая пустые в виде [classname, ammo].
Может есть другие варианты это сделать?

 

UPD: Нашел вариант получить classname с помощью itemsWithMagazines, но как определить количество патронов в них?


Сообщение отредактировал ruPal: 20 September 2015 - 14:59

  • 0

#2 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 20 September 2015 - 16:35   Лучший Ответ

_magazines = [];
     
{
	if (_x != "") then {
		_container = switch (_forEachIndex) do {
			case 0: {uniformContainer player};
			case 1: {vestContainer player};
			case 2: {backpackContainer player};
		};

		_magazines append (magazinesAmmoCargo _container);
	};
}
forEach [
	uniform player,
	vest player,
	backpack player
];

Мне нужно получить список всех магазинов, включая пустые в виде [classname, ammo].

Пустые магазины? Такое возможно?


Сообщение отредактировал Schatten: 20 September 2015 - 16:48

  • 0

#3 OFFLINE   ruPal

ruPal

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

  • HMG-RO
  • 914 сообщений

Отправлено 20 September 2015 - 17:01

Большое спасибо! Работает!


Пустые магазины? Такое возможно?

Да, это возможно:

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


Конечно, есть кое-какие баги, возникающие при перемещении магазинов в ящики. Но внтури инвентаря и на земле проблем нет.
Я хочу скрестить несколько скриптов в итоге дать возможность перепаковывать пустые магазины, возможно, даже перепаковывать пустые магазины из коробок для пулеметных лент.
  • 0

#4 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 03 October 2015 - 18:55

Вот я давно как то сделал для стороннего перепаковщика

/*
	Эта функция производит поиск пустых магазинов в инвенторе юнита, и возвращает массив найденных элементов.
	
	Вызов:
	_unit call PTm_fnc_getMagazinesEmpty
	
	Параметры:
	_unit  = Объект в инвенторе которого необходимо произвести поиск
	
	Пример:
	_countEmpty = player call PTm_fnc_getMagazinesEmpty;
	
	Возвращаемое значение имеет формат:
	_countEmpty = [["Class",0],["Class",0],["Class",0], ....]
	
	Created by SteelRat ( ProjectTeam )
*/

Private ["_unit","_magazinesEmpty","_item","_items","_index","_return"];

_unit =				_this;
_return =			[];
_magazinesEmpty = 	[];
_items = 			(uniformItems _unit) + (vestItems _unit) + (backpackItems _unit);

{
	_isOK = isClass(configFile >> "CfgMagazines" >> _x);
	if (_isOK) then {
		_magazinesEmpty set [count _magazinesEmpty, _x];
	};
} forEach _items;

{
	if (typeName _x == "ARRAY") then {
		_item = _x select 0;
	} else {
		_item = _x;
	};
	
	_index = _magazinesEmpty find _item;
	if (_index != -1) then {
		_magazinesEmpty SET [_index, ""];
	};
} forEach magazines _unit;

{
	if (_x != "") then {
		_return set [count _return, [_x, 0]];
	};
} forEach _magazinesEmpty;

_return

да позже отключил этот функционал, из за того что с ящиками проходилось делать ход через одно, всем известное место)

http://arma3.ru/foru...saniiu/?p=22183


  • 0




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