И снова, Здравствуйте!
Тему сегодняшнего извращения мне подкинул один пост на этом форуме.
И так, коллеги, давайте реализуем такую фишку, загрузим инвентарём униформу, разгрузку и мешок, лежащие ну например в вапон боксе, тоже самое будет применительно к инвентарю техники, или к классу WeaponHolder, лежащему на земле и содержащему в себе интересующие нас предметы.
Начнём
Создайте в папке с миссией папку
functionsесли у вас её ещё нет
В этой папке создайте текстовый файл с названием
fn_loadWeaponHolder.sqfИ скопируйте в этот файл код
/* Загрузка инвентаря в униформы, разгрузки и мешки лежащие в вапон боксах и технике. Пример вызова: [_box, (missionConfigFile/"CfgLoadWeaponHolder")] execVM "Functions\fn_loadWeaponHolder.sqf"; created by SteelRat */ _holder = _this select 0; // Объект контейнер if (isNull _holder) exitWith {}; // Если объект не существует завершаем работу функции _config = _this select 1; // Конфигурационный файл с данными для загрузки if !(isClass _config) exitWith {}; // Если конфиг не существует завершаем работу функции { _contClass = _x select 0; // Класс контейнера, который будем загружать инвентарём _contObj = _x select 1; // Объект контейнер, с которым будем работать { _item = _x; if (typename _item == typename []) then {_contObj addWeaponCargoGlobal _item}; } foreach (getarray (_config/_contClass/"weapons")); { _item = _x; if (typename _item == typename []) then {_contObj addMagazineCargoGlobal _item}; } foreach (getarray (_config/_contClass/"magazines")); { _item = _x; if (typename _item == typename []) then {_contObj addItemCargoGlobal _item}; } foreach (getarray (_config/_contClass/"items")); } foreach (everyContainer _holder);Далее, я уверен, многими самое обожаемое), конфиг, в папке с миссией создайте текстовый файл с названием
CfgLoadWeaponHolder.hppИ скопируйте в него это
class CfgLoadWeaponHolder { // В этой части можно определить базовое содержимое для всех перечисленных классов конкретного типа class Uniform_Base { items[] = {{"FirstAidKit", 1}}; }; class Vest_Base { }; class Backpack_Base { }; // Далее описываете какой класс что будет содержать в себе class U_B_CombatUniform_mcam: Uniform_Base { magazines[] = {{"SmokeShell", 1}}; }; class V_PlateCarrier1_rgr: Vest_Base { weapons[] = {{"hgun_P07_F", 1}}; magazines[] = {{"16Rnd_9x21_Mag", 5}, {"HandGrenade", 3}}; items[] = {{"ItemWatch", 1}}; }; class B_Carryall_cbr: Backpack_Base { weapons[] = {{"arifle_MX_ACO_F", 1}}; magazines[] = {{"30Rnd_65x39_caseless_mag", 5}, {"Chemlight_green", 3}}; items[] = {{"NVGoggles", 1}, {"ItemCompass", 1}}; }; };В файл description.ext добавьте это
#include "CfgLoadWeaponHolder.hpp"Ну и на десерт код, для практических упражнений
_box = createVehicle ["Box_NATO_Wps_F", [0,0,0], [], 0, "NONE"]; clearBackpackCargoGlobal _box; clearItemCargoGlobal _box; clearMagazineCargoGlobal _box; clearWeaponCargoGlobal _box; _box addBackpackCargoGlobal ["B_Carryall_cbr",1]; _box addItemCargoGlobal ["U_B_CombatUniform_mcam",1]; _box addItemCargoGlobal ["V_PlateCarrier1_rgr",1]; [_box, (missionConfigFile/"CfgLoadWeaponHolder")] execVM "Functions\fn_loadWeaponHolder.sqf"; _box setPosATL (player modelToWorld [0,2,0]);Приятного аппетита, коллеги, и как всегда не стесняемся задавать вопросы, если таковые будут.
а в игре что и куда потом прописать, что бы это заработало?