fn_createLoot = { _pos = _this select 0; _marker =_this select 1; _pos set [2,0]; _name ="fn_createLoot" + (str _marker); _str = ([diag_activeSQFScripts,{(_x select 0) == _name}]call BIS_fnc_conditionalSelect)select 0; if(_str == _name)exitWith{}; scriptName _name; _array = [ "Land_CerealsBox_F", "Land_Can_V1_F", "Land_Can_V2_F", "Land_Can_V3_F", "B_AssaultPack_khk", "B_Kitbag_rgr", "Land_Ricebox_F", "Land_TacticalBacon_F", "Land_Camping_Light_F", "Land_BakedBeans_F", "B_FieldPack_khk", "Land_BottlePlastic_V2_F", "Land_Canteen_F", "B_OutdoorPack_blk", "Land_Bandage_F", "Land_Basketball_01_F", "Land_CanisterFuel_F", "Land_Football_01_F", "Land_Suitcase_F", "B_TacticalPack_rgr", "Land_GamingSet_01_console_F", "Land_CarBattery_02_F", "Land_GamingSet_01_camera_F", "Land_FMradio_F", "arifle_Katiba_F", "arifle_Katiba_C_F", "arifle_Mk20_F", "arifle_Mk20C_F", "Land_PowderedMilk_F", "Land_CarBattery_01_F", "Land_Laptop_F", "Land_MobilePhone_old_F", "Land_GamingSet_01_controller_F", "Land_HandyCam_F", "Land_MobilePhone_smart_F" ]; _deleteobjs = nearestObjects [_pos,_array,300]; if((count _deleteobjs) != 0 )then{ { _done = _x spawn{ uisleep 1; if(!isnull _this)then{ deletevehicle _this }; }; waitUntil {scriptDone _done}; }foreach _deleteobjs }; _buildings = nearestObjects [_pos, ["building"],300]; { _done = [_x,_array] spawn{ uisleep 5; { _pos = _x; _classname = selectRandom (_this select 1); if(_classname isKindOf "Bag_Base" or _classname isKindOf ["Rifle", configFile >> "CfgWeapons"])then{ _holder = createVehicle [ "GroundWeaponHolder_Scripted",[0,0,0], [], 0, "CAN_COLLIDE"]; _holder setpos _pos; if(_classname isKindOf ["Rifle", configFile >> "CfgWeapons"])exitWith{ _ammo = getArray (configFile >> "CfgWeapons" >> _classname >> "magazines"); _holder addMagazineCargoGlobal [ selectRandom _ammo,3]; _holder addWeaponCargoGlobal [_classname, 1]; }; _holder addBackpackCargoGlobal [_classname, 1]; }else{ _item = _classname createVehicle [0,0,0]; _item setpos _pos } }foreach ((_this select 0) buildingpos -1) }; waitUntil {scriptDone _done}; }foreach _buildings; ["лут заспавнился","hint"]call bis_fnc_mp; };
#1021 OFFLINE
Отправлено 09 January 2018 - 20:24
#1022 OFFLINE
Отправлено 09 January 2018 - 21:00
запускаю долгий поиск и собирание в массив
[] spawn {FFA_MOST = (nearestObjects[getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition"), [], 10000]) call compile preprocessFileLineNumbers("server\functions2\fnc_fnc_most.sqf");};
хочу собрать все мосты в массив, но это долго и затратно
решил обмануть судьбу: один раз просканировать, скопировать и уже готовый массив добавить в миссию
FFA_MOST = [135221: ibrmost1.p3d,135187: ibrmost1.p3d,135195: ibrmost1.p3d,135201: ibrmost1.p3d,134896: ibrmost1.p3d,135204: ibrmost1.p3d,...]
но тут проблема: при считывании этого массива игра выдает ошибку
2018/01/09, 19:42:31 Error in expression < exitwith {FFA_MOST = [135221: ibrmost1.p3d,135187: ibrmost1.p3d,135195: ibrmos> 2018/01/09, 19:42:31 Error position: <.p3d,135187: ibrmost1.p3d,135195: ibrmos> 2018/01/09, 19:42:31 Error Missing ] 2018/01/09, 19:42:31 File mpmissions\__cur_mp.lingor\config.sqf, line 69
есть ли варианты как подружить массив с игрой, чтобы уйти от постоянного ресурсозатратного сканирования при каждом рестарте?
#1024 OFFLINE
Отправлено 09 January 2018 - 21:40
не понимаю - как можно обратиться к обьекту по его айди?
интересно а есть ли варианты как-нить выдернуть обьекты и занести в массив из аддона острова?
глупо конечно: для того чтобы найти все мосты нужно сканировать абсолютно всё: каждую комаху
Не понятно: когда в игре массив создается - он игрой читается, когда я тот же массив прописываю - уже не читается. Мне кажется есть какой-то способ подружить массив обьектов с его считыванием игрой
Сообщение отредактировал Dimon UA: 10 January 2018 - 04:51
#1025 OFFLINE
Отправлено 09 January 2018 - 22:01
запускаю долгий поиск и собирание в массив
[] spawn {FFA_MOST = (nearestObjects[getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition"), [], 10000]) call compile preprocessFileLineNumbers("server\functions2\fnc_fnc_most.sqf");};хочу собрать все мосты в массив, но это долго и затратно
решил обмануть судьбу: один раз просканировать, скопировать и уже готовый массив добавить в миссию
FFA_MOST = [135221: ibrmost1.p3d,135187: ibrmost1.p3d,135195: ibrmost1.p3d,135201: ibrmost1.p3d,134896: ibrmost1.p3d,135204: ibrmost1.p3d,...]но тут проблема: при считывании этого массива игра выдает ошибку
2018/01/09, 19:42:31 Error in expression < exitwith {FFA_MOST = [135221: ibrmost1.p3d,135187: ibrmost1.p3d,135195: ibrmos> 2018/01/09, 19:42:31 Error position: <.p3d,135187: ibrmost1.p3d,135195: ibrmos> 2018/01/09, 19:42:31 Error Missing ] 2018/01/09, 19:42:31 File mpmissions\__cur_mp.lingor\config.sqf, line 69есть ли варианты как подружить массив с игрой, чтобы уйти от постоянного ресурсозатратного сканирования при каждом рестарте?
нужен массив из мостов обектов?
нужен массив из мостов обектов?и в целом какая цель просто вопрос не оч понятен что с чем дружить и на какой карте=))просто то что ты добовляешь в миску для нее не значит ни какой инфы кроме как набора букв в массиве. тебе надо глобально вернуть все мосты если он есть как объекты(классы) в конфиге можно через "worldsize * sqrt 2"
вот напримере так:
-----"bridge_base_F" придумаyный класс----
_мосты = nearestObjects [[0,0,0],["bridge_base_F"],worldsize * sqrt 2];
Сообщение отредактировал lopster102: 09 January 2018 - 22:13
#1026 OFFLINE
Отправлено 09 January 2018 - 22:05
не понимаю - как можно обратиться к обьекту по его айди?
А далее пользуемся альтернативным синтаксисом №3 команды .
Мне кажется есть какой-то способ подружить массив обьектов с его считыванием игрой
Вряд ли. Это не простой массив, содержащий числа или строки, а массив ссылок на объекты, которые только для удобства восприятия выглядят как "135221: ibrmost1.p3d".
P. S.
Кстати, если не ошибаюсь, то 135221 -- ID.
Сообщение отредактировал Schatten: 09 January 2018 - 22:09
#1027 OFFLINE
Отправлено 09 January 2018 - 22:13
nearRoads видит мост как обьект - всем спасибо: вопрос решен
Сообщение отредактировал Dimon UA: 09 January 2018 - 22:15
#1030 OFFLINE
Отправлено 09 January 2018 - 22:19
_мосты = nearestObjects [[0,0,0],["bridge_base_F"],worldsize * sqrt 2];
Лучше так:
_worldHalfSize = worldSize / 2; _bridges = nearestObjects [[_worldHalfSize, _worldHalfSize], ["bridge_base_F"], (sqrt 2) * _worldHalfSize];
Dimon UA, а не дорожное полотно на нём?
ну там обьект и есть кусок моста сразу уже с дорожным полотном - одно целое
Ясно.
Сообщение отредактировал Schatten: 09 January 2018 - 22:23
#1031 OFFLINE
Отправлено 09 January 2018 - 22:23
_мосты = nearestObjects [[0,0,0],["bridge_base_F"],worldsize * sqrt 2];Так ты меньше четверти карты просканируешь.
да тут прикол - что на лингоре мост не имеет класса
#1032 OFFLINE
Отправлено 09 January 2018 - 22:25
да тут прикол - что на лингоре мост не имеет класса
Тогда по ID. Или nearRoads видит?
#1033 OFFLINE
Отправлено 09 January 2018 - 22:27
_мосты = nearestObjects [[0,0,0],["bridge_base_F"],worldsize * sqrt 2];Так ты меньше четверти карты просканируешь.
да тут прикол - что на лингоре мост не имеет класса
не ну в целом просто интересно че там у тебя творится=))как бы в чем твоя идея была?
#1034 OFFLINE
Отправлено 09 January 2018 - 22:45
не ну в целом просто интересно че там у тебя творится=))как бы в чем твоя идея была?
#1035 OFFLINE
Отправлено 09 January 2018 - 22:50
не ну в целом просто интересно че там у тебя творится=))как бы в чем твоя идея была
топчик арма 2=) ну там все посложней....
Сообщение отредактировал lopster102: 09 January 2018 - 22:50
#1036 OFFLINE
Отправлено 10 January 2018 - 16:04
Вопрос небольшой...
Вот допустим есть сервер, к которому есть доступ с открытой консолью.
Получаем админа, заходим зевсом. Создаем какой то объект командой _veh = "C_Offroad_01_F" createVehicle [100,100,0];
На карте появляется машинка, но Зевсом с ней ничего нельзя поделать, ни поменять ни передвинуть. Она недоступна для изменения. Как спавнить объекты, чтобы потом Зевс мог их менять? Ну кроме того, чтобы просто их из инвентаря достать?
#1037 OFFLINE
Отправлено 10 January 2018 - 16:40
#1038 OFFLINE
Отправлено 10 January 2018 - 18:02
Доброго времени суток. Я думаю, все уже знают про модификацию Лайф, в конкретном случае АлтисЛайф.
Существует слот полиции, медиков и гражданский слот. В гражданском слоте можно делать группировки с "лицензиями", которые дают возможность носить определенное оружие только членам данных группировок и т.д. Так вот, для слота полиции (синего слота) можно прописать наручники, т.е. возможность связывать людей в зоне, где нельзя связать гражданскому слоту. Возник вопрос, как прописать такую же возможность гражданской группировке? Ибо в случае с синим слотом эта возможность на весь слот, а как сделать это только одной группировке в гражданском слоте?
#1039 OFFLINE
Отправлено 11 January 2018 - 19:40
fn_createLoot = { _pos = _this select 0; _marker =_this select 1; _pos set [2,0]; _name ="fn_createLoot" + (str _marker); _str = ([diag_activeSQFScripts,{(_x select 0) == _name}]call BIS_fnc_conditionalSelect)select 0; if(_str == _name)exitWith{}; scriptName _name; _array = [ "Land_CerealsBox_F", "Land_Can_V1_F", "Land_Can_V2_F", "Land_Can_V3_F", "B_AssaultPack_khk", "B_Kitbag_rgr", "Land_Ricebox_F", "Land_TacticalBacon_F", "Land_Camping_Light_F", "Land_BakedBeans_F", "B_FieldPack_khk", "Land_BottlePlastic_V2_F", "Land_Canteen_F", "B_OutdoorPack_blk", "Land_Bandage_F", "Land_Basketball_01_F", "Land_CanisterFuel_F", "Land_Football_01_F", "Land_Suitcase_F", "B_TacticalPack_rgr", "Land_GamingSet_01_console_F", "Land_CarBattery_02_F", "Land_GamingSet_01_camera_F", "Land_FMradio_F", "arifle_Katiba_F", "arifle_Katiba_C_F", "arifle_Mk20_F", "arifle_Mk20C_F", "Land_PowderedMilk_F", "Land_CarBattery_01_F", "Land_Laptop_F", "Land_MobilePhone_old_F", "Land_GamingSet_01_controller_F", "Land_HandyCam_F", "Land_MobilePhone_smart_F" ]; _deleteobjs = nearestObjects [_pos,_array,300]; if((count _deleteobjs) != 0 )then{ { _done = _x spawn{ uisleep 1; if(!isnull _this)then{ deletevehicle _this }; }; waitUntil {scriptDone _done}; }foreach _deleteobjs }; _buildings = nearestObjects [_pos, ["building"],300]; { _done = [_x,_array] spawn{ uisleep 5; { _pos = _x; _classname = selectRandom (_this select 1); if(_classname isKindOf "Bag_Base" or _classname isKindOf ["Rifle", configFile >> "CfgWeapons"])then{ _holder = createVehicle [ "GroundWeaponHolder_Scripted",[0,0,0], [], 0, "CAN_COLLIDE"]; _holder setpos _pos; if(_classname isKindOf ["Rifle", configFile >> "CfgWeapons"])exitWith{ _ammo = getArray (configFile >> "CfgWeapons" >> _classname >> "magazines"); _holder addMagazineCargoGlobal [ selectRandom _ammo,3]; _holder addWeaponCargoGlobal [_classname, 1]; }; _holder addBackpackCargoGlobal [_classname, 1]; }else{ _item = _classname createVehicle [0,0,0]; _item setpos _pos } }foreach ((_this select 0) buildingpos -1) }; waitUntil {scriptDone _done}; }foreach _buildings; ["лут заспавнился","hint"]call bis_fnc_mp; };
Сообщение отредактировал lopster102: 11 January 2018 - 20:55
#1040 OFFLINE
Отправлено 13 January 2018 - 06:11
кто подскажет что может еще сажать фпс на сервере. запускаю сервер и с каждой минутой начинает использовать памяти все больше и больше что можно с этим поделать или это стандартное поведение сервера?никаких ошибок нету в скриптах