Папку sql_fnc всю буду копировать
Мод выживания [OpenSource] GNU
#21 OFFLINE
Posted 04 July 2017 - 00:24
#22 OFFLINE
Posted 04 July 2017 - 00:32
все правильно, данная папка будет в каждом модуле где есть завязка на sql.
Хочешь использовать текущий sql_fnc, копируй папку в свой модуль, а может ты захочешь переписать. А делать этой папке в Core или Tools нечего.
Инструкции по всем функциям server_core перенос в Wiki по адресу
Так же есть примеры, для чего можно использовать каждую функцию.
Edited by hummer4x4, 04 July 2017 - 00:34.
#23 OFFLINE
Posted 04 July 2017 - 01:59
*fix load vechicle
sql_fnc/fn_load.sqf
["SELECT uid,name,class,is_locked,fuel,damage,hitpoints,position,direction,cargo,ammo FROM vehicle WHERE 1", [], 2, true] call SRVDB_fnc_queryBuild;
fnc/fn_loadVehicle.sqf
waitUntil { !(isNil { Call SRVDB_fnc_loaded }) }; if(SRVVehicle_cfg_DebugLevel > 0) then { diag_log format["====[VEHICLE LOADING]===="]; }; private _vehicleLoaded = Call SRVVehicle_fnc_load; { private _SRVVehicle_var_uid = _x select 0; private _SRVVehicle_var_name = _x select 1; private _SRVVehicle_var_class = _x select 2; //private _SRVVehicle_var_spawnedAt = _x select 3; private _SRVVehicle_var_isLocked = _x select 3; private _SRVVehicle_var_fuel = _x select 4; private _SRVVehicle_var_damage = _x select 5; private _SRVVehicle_var_hitPoints = _x select 6; private _SRVVehicle_var_position = _x select 7; private _SRVVehicle_var_direction = _x select 8; private _SRVVehicle_var_cargo = _x select 9; private _SRVVehicle_var_ammo = _x select 10; private _SRVVehicle_var_object = [_SRVVehicle_var_name, _SRVVehicle_var_class, _SRVVehicle_var_position, _SRVVehicle_var_direction, _SRVVehicle_var_uid] Call SRVVehicle_fnc_createPersistentVehicle; _SRVVehicle_var_object lock _SRVVehicle_var_isLocked; _SRVVehicle_var_object setDamage _SRVVehicle_var_damage; _SRVVehicle_var_object setFuel (_SRVVehicle_var_fuel); [_SRVVehicle_var_object, _SRVVehicle_var_ammo] Call SRVTools_fnc_setVehicleAmmo; [_SRVVehicle_var_object, _SRVVehicle_var_cargo] Call SRVTools_fnc_setVehicleCargo; [_SRVVehicle_var_object, _SRVVehicle_var_hitPoints] Call SRVTools_fnc_setPointsDamage; _SRVVehicle_var_name Call SRVVehicle_fnc_setVehicleTracker; } forEach _vehicleLoaded; Call SRVVehicle_fnc_spawnVehiclesLocation; Call SRVVehicle_fnc_spawnVehiclesRoad; Call SRVVehicle_fnc_spawnVehiclesRandom; { if(SRVVehicle_cfg_DebugLevel > 0) then { diag_log format["[SRV-Vehicle] %1", _x]; }; } forEach SRVVehicle_spawnedVehicleTracker;
#24 OFFLINE
Posted 04 July 2017 - 04:05
Новые возможности в SRVCore, теперь поддерживает пользовательские команды в чате.
Можно использовать SRVConfig для добавления новых команд или добавить команду из кода SRVCore_cfg_Commands pushback ["YouNameCommand", { Code_Here }];
Для примера добавлена команда #offroad создает рядом с вами внедорожник
#25 OFFLINE
Posted 04 July 2017 - 13:47
Версия от 07.04.2017 * Core - Обновлены системные команды * Core SRVCore_cfg_Commands - Список команд для чата, #offroad, #delete, #heli * Core SRVCore_cfg_CommandEnable - Включает/Выключает режим команд в чате * Core SRVCore_cfg_SpecialChar - Спец.Символ начала команды, по умолчанию # * Respawn: Исправлены ранее найденные баги * Respawn: Добавлен event обновления пользователя, ниже будет описаны детали * Respawn: Изменена общая логика спавна
Команды чата, приведены примеры использования комманд чата, как на стороне клиента, так и на стороне сервера.
#offroad, #heli (Серверные) , #delete (Клиентская) в дальнейшем обновлю базу примеров.
Обновление пользователя происходит теперь при закрытии инвентаря, что характеризует что игрок переложил вещи, добавлен ТаймАут на 5 минут, для избежание высоких нагрузок. Время таймАута можно изменить в конфигурации спавна.
Изменена логика спавна, при выходе со сервера ваш персонаж будет стоять на том месте где вы вышли определенное время, определяется настройками сколько времени нужно на выход. Можно установить на 0, означает что персонаж будет сразу выходить и сохранятся. Но если вас убьют когда вы вышли, то потеряете персонажа. + Предусмотрен вариант что игрок зайдет на вашего персонажа до завершения выхода, в таком случае ваш персонаж сохраняется и удаляется с карты минуя время на выход.
ps. В скором времени появится админский модуль, позволяющий ограничивать выполнение команд и другие вещи.
Edited by hummer4x4, 04 July 2017 - 22:31.
#26 OFFLINE
Posted 12 July 2017 - 14:55
Круто, надо будет на днях выделить время глянуть)
#27 OFFLINE
Posted 18 July 2017 - 00:49
Сейчас времени у меня не так много, но постараюсь найти время для исправления багов, если обнаружите.
Весь пока не обходимый функционал в модульности есть, если чего то не будет хватать пишите. Допишу в свободное время.
А так основа для плагинов, модов есть..
Сейчас не много другие планы, если кто готов будет взять на доработку, готов буду помочь с освоением текущих функций.
Я не забросил мод, я буду почитывать и отвечать на вопросы возникшие. Релиз на ГитХабе стабильный сделал на новой версии что бы могли использовать новые наработки. А пока разработка с моей стороны не много заморожена.
#28 OFFLINE
Posted 01 August 2017 - 22:01
Первое что обнаружил, что после рестарта сервера не загружается персонаж(это я исправил ловите фикс)
P:\SRVLastStabil\respawn\fnc\fn_loadPlayer.sqf
params["_player"]; private _loadData = _player Call SRVRespawn_fnc_load; diag_log format["_loadPlayer data = %1",_loadData]; private _playerSession = Call SRVTools_fnc_UID; _player setVariable ["Session", _playerSession, true]; [_playerSession, "UID", _loadData select 0] Call SRVCore_fnc_setVar; [_playerSession, "NAME", name _player ] Call SRVCore_fnc_setVar; [_playerSession, "OLD_NAME", _loadData select 1] Call SRVCore_fnc_setVar; _player setDamage (_loadData select 2); _player setDir (parseNumber (_loadData select 3)); _player setPosASL (_loadData select 4); [_player, (_loadData select 5)] Call SRVTools_fnc_setPointsDamage; [_player, (_loadData select 11)] Call SRVTools_fnc_setPlayerWeapons; if !((_loadData select 12) isEqualTo "") then { _player selectWeapon (_loadData select 12); }; sleep 5; [_player, (_loadData select 7)] Call SRVTools_fnc_setPlayerCargo; //[_player, _playerSession] Call SRVRespawn_fnc_update; [_player, "playerComplete"] Call SRVCore_fnc_runEvent; _player setVariable ["initSpawn", false, true];
Сохранение инвентаря игрока срабатывает 2 раза
1 раз после иницилизации jobKey
2й раз когда время > updateTime (время не обновляется и обновления больше не происходят)
#29 OFFLINE
Posted 02 August 2017 - 05:27
Также думаю стоит отказатся от запросов в БД mysql от запросов типа
SELECT *
в сторону
SELECT uid,login,cargo
При использовании запроса из первого примера(как сейчас) могут возникнуть проблемы со скриптами так как может нарушится позиция столбца в массиве данных запрашиваемых с сервера и возникнут ситуации фиксы на которые я постоянно тут выкладываю
#30 OFFLINE
Posted 03 August 2017 - 09:17
*FIX P:\SRVLastStabil\server_tools\entity\player\fn_setPlayerCargo.sqf
/* * Arguments: * 0: Player <OBJECT> * 0: Data <ARRAY> * * Return Value: * None * */ params["_player", "_data"]; //diag_log format["SetPlayerCargo = %1",_data]; { _player linkItem _x; } forEach ((_data select 0) select 0); _player addHeadgear ((_data select 0) select 1);//Helm _player addGoggles ((_data select 0) select 2); _player addWeaponGlobal ((_data select 0) select 3); if(count (_data select 1) > 0) then { _dataUniform = ((_data select 1) select 0); _dataUniformItems = ((_data select 1) select 1); _dataUniformMagazines = ((_data select 1) select 2); _dataUniformWeapons = ((_data select 1) select 3); _player forceAddUniform _dataUniform;//ADD UNIFORM sleep 1; { //diag_log format ["LoadLoot player-debug : uniform item _x: %1 , _kolvo:%2", _x,((_dataUniformItems select 1) select _forEachIndex)]; for "_i" from 1 to ((_dataUniformItems select 1) select _forEachIndex) do {(uniformContainer _player) addItemCargoGlobal [_x,1];}; } forEach (_dataUniformItems select 0); { (uniformContainer _player) addMagazineAmmoCargo [(_x select 0), 1, (_x select 1)]; //diag_log format ["LoadLoot player-debug : uniform mag _x: %1", _x]; } forEach _dataUniformMagazines; { //diag_log format ["LoadLoot player-debug : uniform weapon _x: %1 , _kolvo:%2", _x,((_dataUniformWeapons select 1) select _forEachIndex)]; for "_i" from 1 to ((_dataUniformWeapons select 1) select _forEachIndex) do {(uniformContainer _player) addWeaponCargoGlobal [_x, 1];}; } forEach (_dataUniformWeapons select 0); }; if(count (_data select 2) > 0) then { _dataVest = ((_data select 2) select 0); _dataVestItems = ((_data select 2) select 1); _dataVestMagazines = ((_data select 2) select 2); _dataVestWeapons = ((_data select 2) select 3); _player addVest _dataVest; sleep 1; { for "_i" from 1 to ((_dataVestItems select 1) select _forEachIndex) do {(vestContainer _player) addItemCargoGlobal [_x,1];}; //diag_log format ["LoadLoot player-debug : vest item _x: %1 , _kolvo:%2", _x,((_dataVestItems select 1) select _forEachIndex)]; } forEach (_dataVestItems select 0); { (vestContainer _player) addMagazineAmmoCargo [_x select 0, 1, _x select 1]; diag_log format ["LoadLoot player-debug : vest mag _x: %1", _x];} forEach _dataVestMagazines; { (vestContainer _player) addWeaponCargoGlobal [_x, ((_dataVestWeapons select 1) select _forEachIndex)]; } forEach (_dataVestWeapons select 0); }; if(count (_data select 3) > 0) then { _dataBackpack = ((_data select 3) select 0); _dataBackpackItems = ((_data select 3) select 1); _dataBackpackMagazines = ((_data select 3) select 2); _dataBackpackWeapons = ((_data select 3) select 3); _player addBackpackGlobal _dataBackpack; sleep 1; { //diag_log format ["LoadLoot player-debug : backpack item _x: %1 , _kolvo:%2", _x,((_dataBackpackItems select 1) select _forEachIndex)]; for "_i" from 1 to ((_dataBackpackItems select 1) select _forEachIndex) do {(backpackContainer _player) addItemCargoGlobal [_x,1];}; } forEach (_dataBackpackItems select 0); { (backpackContainer _player) addMagazineAmmoCargo [_x select 0, 1, _x select 1]; //diag_log format ["LoadLoot player-debug : backpack magazin _x: %1", _x]; } forEach _dataBackpackMagazines; { (backpackContainer _player) addWeaponCargoGlobal [_x, ((_dataBackpackWeapons select 1) select _forEachIndex)]; //diag_log format ["LoadLoot player-debug : backpack weapon _x: %1 , _i:%2", _x,_forEachIndex]; } forEach (_dataBackpackWeapons select 0); };
Edited by Solib, 03 August 2017 - 10:09.
#31 OFFLINE
Posted 03 August 2017 - 16:50
Дело вкуса, конечно же, но чем не устраивает этот набор команд, который, по факту, сохранит и загрузит инвентарь перса по феньшую?
и не городить такой скрипт, для сохранения и загрузки инвентаря.
#32 OFFLINE
Posted 10 August 2017 - 22:09
Я только исправил то что не работало)
#33 OFFLINE
Posted 24 August 2017 - 18:19
Я только исправил то что не работало)
Спасибо за фиксы, в ближайщее время обновлю на гитХабе твои фиксы.
В целом пользуешься (если да то как и в каком моде - Ради интереса)? как мнение относительно реализации?
#34 OFFLINE
Posted 27 August 2017 - 18:45
Не пользуюсь, система спавна лута работает но не играбельно. Считаю не корректным сначала делать рандом и лишь затем выбирать какой лут можно заспавнить с такими шансами. Получается что если поставил ограничение в одном доме не больше 5 кучек лута, то там полюбому будет 5 кучек так как редко когда выпадает меньше 20
#35 OFFLINE
Posted 11 October 2017 - 08:20
Развитие стопорнулось?
#36 OFFLINE
Posted 17 October 2017 - 20:30
Развитие стопорнулось?
автор несколькими постами выше писал, что с его стороны работа над модом "не много заморожена", но если тебя распирает от кипучей жажды созидания, могу обратить твоё внимание на не менее интересный мод, где твои руки и голова могли бы очень пригодиться.
#37 OFFLINE
Posted 30 October 2017 - 21:56
Развитие стопорнулось?
автор несколькими постами выше писал, что с его стороны работа над модом "не много заморожена", но если тебя распирает от кипучей жажды созидания, могу обратить твоё внимание на не менее интересный мод, где твои руки и голова могли бы очень пригодиться.
Так обратите уже моё внимание)))) интересно даже стало
#38 OFFLINE
Posted 31 October 2017 - 16:41
Развитие стопорнулось?
автор несколькими постами выше писал, что с его стороны работа над модом "не много заморожена", но если тебя распирает от кипучей жажды созидания, могу обратить твоё внимание на не менее интересный мод, где твои руки и голова могли бы очень пригодиться.
Так обратите уже моё внимание)))) интересно даже стало
тссс!!!!
Это тайна)
#39 OFFLINE
Posted 02 November 2017 - 03:10
Ну вот(((((
#40 OFFLINE
Posted 02 November 2017 - 11:47
тссс!!!!
Так обратите уже моё внимание)))) интересно даже стало
автор несколькими постами выше писал, что с его стороны работа над модом "не много заморожена", но если тебя распирает от кипучей жажды созидания, могу обратить твоё внимание на не менее интересный мод, где твои руки и голова могли бы очень пригодиться.
Развитие стопорнулось?
Это тайна)
Напомни мне тот момент, когда я сделал тебе предложение стать моей секретаршей и отвечать за меня людям?