BendeR
|
Пятница, 14.05.2021, 19:12
|
|
небольшая тулза для скрипта выбора техники из этого поста
АРХИВ с ПБОшкой
добавляет в эден эдиторе в меню "Tool" ("Инструменты") опцию Export vehicle setup
Используется для быстрого экспорта в виде скрипта сетапов техники и ее основных настроек (лок, топливо, хп, аммо). Для использования расставить то что будет спавнить в сетапе, выделить и нажать на пункт меню. В буфер обмена будет скопирован код вида:
Код // _veh=createVehicle["B_Boat_Armed_01_minigun_F",[1694.57,5949.27,-0.0854356],[],0,"CAN_COLLIDE"]; vehicle_list pushBack _veh; _veh setDir 82.5019; clearItemCargoGlobal _veh; clearMagazineCargoGlobal _veh; clearWeaponCargoGlobal _veh; clearBackpackCargoGlobal _veh;
_veh lock 1; _veh setDamage 1; _veh setFuel 1; _veh setVehicleAmmo 1;
//AFV-4 Gorgon _veh=createVehicle["B_APC_Wheeled_03_cannon_F",[1751.64,5917.95,0],[],0,"CAN_COLLIDE"]; vehicle_list pushBack _veh; _veh setDir 0; clearItemCargoGlobal _veh; clearMagazineCargoGlobal _veh; clearWeaponCargoGlobal _veh; clearBackpackCargoGlobal _veh;
_veh lock 0; _veh setDamage 0.783802; _veh setFuel 0.415283; _veh setVehicleAmmo 0.529651;
(в целом работает на любые объекты кроме ботов-те на укрепления и тп. в примере выше-лодка и горгона)
!Важно: не экспортится инвентарь, сетапы пилонов и не создается бот для беспилотников. Это пока нужно дописывать в получившийся файл самому (про то как-в оригинальном посте)
Проверить получившийся код можно выполнив его из консоли отладки запустив миссию
Сообщение отредактировал BendeR - Суббота, 15.05.2021, 14:48
|
|
Автор темы
|
|
|
|
|
BendeR
|
Пятница, 27.08.2021, 19:47
|
|
Продолжение развития темы с томагавкми. Теперь оживляем корабельную и любую другую арту (те можно повтыкать условных нейтральных градов и тп) Скрипт брать ТУТ примеры вызова: Код [[arty1, arty2, arty3],target1] execVM "artillery.sqf"; [[arty1, arty2],target2,2,10,"magazine_ShipCannon_120mm_HE_cluster_shells_x2",0.5,4] execVM "artillery.sqf";
spawn { [[arty1],target1] call compile preprocessfilelinenumbers "artillery.sqf"; [[arty1],target1] call compile preprocessfilelinenumbers "artillery.sqf"; };
(3й пример чисто чтобы показать как последовательно вызвать 2 и больше залпов) Селить можно в тригеры, единственное но-выполнять на стороне сервера (в тригере галочка "только сервер"), в иниты со всякими "waituntil" и тд
По параметрам: Два обязательных: 1) Массив арт (каждой арте присвоили имя, если надо в инит поставили this setVariable ["WMT_Side", sideLogic]; чтоб не отображалась в списках техники). Можно в теории использовать любую арту-минометы, самоходки, рсзо и тп 2) Цель. одна цель, можно пустой тригер, любой объект и тп у которого можно вернуть положение функцией position
Опциональные: 1) Количество залпов. По умолчанию каждая арта стрельнет по разу и успокоится 2) Дополнительный разлет (в десятках метров. те ставим 10-получаем сто). По-дефолту многая ванильная арта ужасно точная. Позволяет решить эту проблему или создать вид обстрела большой области 3) класснейм снаряда. У каждого свои. По-умолчанию-ХЕ-шки от ванильных корабельных орудий, в примере выше-касеты от них же разные классы снарядом (магазинов если быть точным, количество указано) для той же корабельной арты: Код "magazine_ShipCannon_120mm_HE_shells_x32","magazine_ShipCannon_120mm_HE_guided_shells_x2","magazine_ShipCannon_120mm_HE_LG_shells_x2","magazine_ShipCannon_120mm_HE_cluster_shells_x2","magazine_ShipCannon_120mm_mine_shells_x6","magazine_ShipCannon_120mm_smoke_shells_x6","magazine_ShipCannon_120mm_AT_mine_shells_x6"
4) задержка между выстрелами отдельных орудий, с 5) задержка между залпами, с
Общий принцип работы: создать в арте ботов-экипажников, отстреляться, удалить ботов. Так что перезарядка между длительными залпами или при стрельбе "штучными" зарядами типа тех же касет на совести картодела
Сообщение отредактировал BendeR - Суббота, 28.08.2021, 11:40
|
|
Автор темы
|
|
|
|
|
BendeR
|
Вторник, 09.11.2021, 17:35
|
|
Экспортилка слотинга в CSV под формат таблички RBC Работает для фиксированного формата названий отделений заданных после символа "@" у командира Примеры: Код 1. Командир отделения РХБЗ (MX GL, RCO) @Альфа 1-5 РХБЗ пехота [Березино]
1. КО, оператор РЭБ (Mk20, ARCO) @Альфа 1-2 Инженеры (Tempest Ammo+Fuel+Repair, БПА РЭБ) [Южнее Зеленогорска]
Формат: Код @Альфа 1-1 Тип отделения (транспорт1, транспорт 2... ) [Место респаун]
HowTO: Необходимо запустить миссию в мультиплеере (это важно, скрипт использует переменную playableUnits доступную только в МП), встать на любой слот запустить миссию и стартануть в игру с брифинга Скопировать содержимое скрипта в консоль отладки и выполнить. Если все наименования отделений правильны-в буфер обмена будет скопировано содержимое для CSV-файла вида: Код Альфа 1-1,Штаб,"Tempest РЭБ",2,,,Северее Лопатино Альфа 1-2,Инженеры,"Tempest Ammo+Fuel+Repair, БПА РЭБ",4,,,Южнее Зеленогорска Альфа 1-3,Экипаж,"Т-100 Varsuk",3,,,Южнее Зеленогорска Альфа 1-4,Экипаж,"Т-100 Varsuk",3,,,Северее Лопатино Альфа 1-5,Мотопехота,"MSE-3 Marid",10,,,Северее Лопатино Альфа 1-6,Мотопехота,"Marid невооруженный",8,,,Северее Лопатино Альфа 2-1,Мотопехота,"MSE-3 Marid",10,,,Южнее Зеленогорска Альфа 2-2,Мотопехота,"Marid невооруженный",8,,,Южнее Зеленогорска Альфа 2-3,Легкая мотопехота,"Quilin ПТ",7,,,Северее Лопатино Альфа 2-4,РХБЗ пехота,"Quilin миниган",6,,,Севернее Лопатино Альфа 2-5,РХБЗ пехота,"Quilin миниган",6,,,Севернее Лопатино Альфа 2-6,Легкая мотопехота,"Quilin ПТ",7,,,Южнее Зеленогорска Альфа 3-1,РХБЗ пехота,"Quilin миниган",6,,,Южнее Зеленогорска Альфа 3-2,РХБЗ пехота,"Quilin миниган",6,,,Южнее Зеленогорска Альфа 3-4,Водолазы-диверсанты,"SDV",4,,, на выбор СВ/ЮВ в море Альфа 3-5,Водолазы-диверсанты,"SDV",4,,, на выбор СВ/ЮВ в море ,,,,,, Альфа 1-1,Штаб,"БПА Stomper",4,,,Березино Альфа 1-2,Медики,"Нет транспорта",3,,,Березино Альфа 1-3,Инженеры,"Инж. машина CRV-6e Bobcat",3,,,Березино Альфа 1-4,Экипаж,"Истребитель танков Rhino MGS UP",3,,,Березино Альфа 1-5,РХБЗ пехота,"Нет транспорта",5,,,Березино Альфа 1-6,РХБЗ пехота,"Нет транспорта",5,,,Березино Альфа 2-1,РХБЗ пехота,"Нет транспорта",5,,,Березино Альфа 2-2,Разведчики,"Hunter невооруженный",4,,,Березино Альфа 2-3,Мотопехота,"БТР AMV-7 Marshall",11,,,Клён Альфа 2-4,Пехота,"Zamak",8,,,Клён Альфа 2-5,Пехота,"Zamak",8,,,Клён Альфа 2-6,Пехота,"Zamak",8,,,Клён Альфа 3-1,Пехота,"Zamak",8,,,Клён Альфа 3-2,Пехота,"Zamak",8,,,Клён Альфа 3-3,Пехота,"Zamak",8,,,Клён
Если где то косяк-скрипт в сообщение покажет номер отделения где что то указано не верно Так же подсчитывается количество игровых слотов в отделениях, отделения типа БПА и тп где нет игровых слотов в итоговую таблицу не попадают
Дальше сохраняем в текстовый файл и импортируем его хоть в гуглдокс, хоть в гребаный эксель-любые таблицы понимают CSV (пример готовой таблички)
LINK
Сообщение отредактировал BendeR - Вторник, 09.11.2021, 17:41
|
|
Автор темы
|
|
|
|
|
BendeR
|
Воскресенье, 14.11.2021, 19:08
|
|
немного пошаманив склепал хорошую альтернативу всех задолбавшей функции BIS_fnc_establishingShot для катсцен на миссиях. Ионка использована только как демо возможности делать катсцены на движке во время пролетов камеры Код if(!hasInterface) exitWith {};
cam_effect_on_deep_freeze=false;
private _cams=[ [[2842.92,1142.97,15],[2852.72,1217.53,0],0, 0.4], [[2949.41,1330.05,15],[2976.87,1363.44,0],10, 0.7], [[2928.88,1829,25],[2922.67,1474.73,0],15,1] ];
waitUntil {uisleep 1;!isNil "WMT_pub_frzState"}; if(WMT_pub_frzState>=3) exitWith {};
_cams spawn { if (isNil "cam_effect_camera") then { cam_effect_camera = "Camera" camCreate [10,10,10]; };
{ cam_effect_camera camPrepareTarget (_x select 1); cam_effect_camera camPreparePos (_x select 0); cam_effect_camera camPrepareFOV (_x select 3); if(_forEachIndex==0) then { cam_effect_camera camPreload 3; uisleep 3; if(cam_effect_on_deep_freeze) then { waituntil {uisleep 0.5;!isNil("WMT_pub_deepFrzTimeLeft")}; waituntil {uisleep 0.5;WMT_pub_deepFrzTimeLeft<60}; } else { waitUntil {uisleep 0.5;(!isNil("WMT_pub_frzTimeLeft"))&&(!isNil("wmt_param_PrepareTime"))&&(!isNil("WMT_pub_frzState"))};//START AFTER FREEZTIME ENDS waitUntil {uisleep 0.5;(WMT_pub_frzTimeLeft<(wmt_param_PrepareTime*60))&&(WMT_pub_frzState<3)}; }; showCinemaBorder false; cam_effect_camera cameraEffect ["INTERNAL", "BACK"]; }; cam_effect_camera camCommitPrepared (_x select 2); uisleep (_x select 2); } forEach _this;
player switchCamera "INTERNAL"; cam_effect_camera cameraEffect ["TERMINATE", "BACK"]; camDestroy cam_effect_camera; };
[] spawn { //INIT CUTSCENE //create units&other staff if(cam_effect_on_deep_freeze) then { waituntil {uisleep 0.5;!isNil("WMT_pub_deepFrzTimeLeft")}; waituntil {uisleep 0.5;WMT_pub_deepFrzTimeLeft<60}; } else { waitUntil {uisleep 0.5;(!isNil("WMT_pub_frzTimeLeft"))&&(!isNil("wmt_param_PrepareTime"))&&(!isNil("WMT_pub_frzState"))};//START AFTER FREEZTIME ENDS waitUntil {uisleep 0.5;(WMT_pub_frzTimeLeft<(wmt_param_PrepareTime*60))&&(WMT_pub_frzState<3)}; }; //ACTION uisleep 15; [[2922.67,1474.73]] call fnc_ic_fire; //DELETE EVERYTHING };
_cams-массивчик элементов формата : [[координата камеры], [куда смотрит камера],время для перехода от предыдущего вида к этому, угол обзора камеры] cam_effect_on_deep_freeze=false; не забыть выставить в true-тогда катсцена начнет работать за 60с до конца дипфриза. если false-то после начала фриза (не важно-дипфриз или нет) нужны только пролеты камеры-последний спавн можно спокойно удалить updt: вызывать в initplayerlocal
Сообщение отредактировал BendeR - Понедельник, 15.11.2021, 18:34
|
|
Автор темы
|
|
|
|
|