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
кто подскажет что может еще сажать фпс на сервере. запускаю сервер и с каждой минутой начинает использовать памяти все больше и больше что можно с этим поделать или это стандартное поведение сервера?никаких ошибок нету в скриптах









