Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
- 0
-
Похожие публикации
-
Автор: aimlock
Всем привет, я заметил что некоторые люди не до конца понимают что такое регистрация анимаций для предметов в руках, как ее правильно делать и для чего она нужна?
Для чего это нужно? Допустим вы добавляете предмет в игру и не привязываете его ни к какому объекту (создаете полностью с нуля, задаете свойства) и сталкиваетесь с тем что ваш объект без привязки не имеет должной анимации. А имеет стандартную анимацию банки консервы (в том числе и для предметов которые должны держаться в 2 руках), ну или вовсе предмет находиться в ногах у персонажа (примеры прикрепил скриншоты). Именно для этого и нужно привязывать анимацию положения объекта в руках через скрипт.
На момент написания этого поста я знаю 3 вида регистрации анимаций для предметов в руках:
1. PlayerBase
2. JMAnimRegister
3. ModItemRegisterCallbacks
До создания последних 2 способов все использовали PlayerBase :
modded class PlayerBase { override void Init() { DayzPlayerItemBehaviorCfg fireArmsItemBehaviour = new DayzPlayerItemBehaviorCfg; fireArmsItemBehaviour.SetFirearms(); GetDayZPlayerType().AddItemInHandsProfileIK("MyModdedWeapon", "dz/anims/workspaces/player/player_main/weapons/player_main_cz527.asi", fireArmsItemBehaviour, "dz/anims/anm/player/ik/weapons/cz527.anm", "dz/anims/anm/player/reloads/cz527/w_CZ527_states.anm"); super.Init(); } } Но у этого способа есть очень большой минус, это очень нестабильная штука. Нередко крашила сервера и имела ограничения на кол-во регистрации анимаций.
С такими большими минусами, мододеллы начали искать решения как можно сделать это более стабильно и оптимизированно. И такой способ нашли.
DayZPlayerTypeRegisterItems(DayZPlayerType Type) вот наше спасение, но тут тоже не все так просто, полумолчание это функция внутри класса, а для поставленной задачи (иметь возможность безопасно и стабильно вносить новую регистрацию предметов) это не подходит. Тогда разработчики мода CF создали кастомный класс с использованием схожих функций для регистрации анимаций положений предметов в руках. Этим классом является JMAnimRegister. Стабильная и оптимизированная функция, которой очень просто пользоваться. Разумеется использовать вы сможете этот класс только при наличии в своей сборке CF . Как им пользоваться?
modded class JMAnimRegister { override void OnRegisterFireArms( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) { super.OnRegisterFireArms( pType, pBehavior ); pType..AddItemInHandsProfileIK("MyModdedWeapon", "dz/anims/workspaces/player/player_main/weapons/player_main_cz527.asi", pBehavior, "dz/anims/anm/player/ik/weapons/cz527.anm", "dz/anims/anm/player/reloads/cz527/w_CZ527_states.anm"); } }; Как самый простой пример. И так можно задавать любому количеству предметов положение в руках :
modded class JMAnimRegister { override void OnRegisterFireArms( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) { super.OnRegisterFireArms( pType, pBehavior ); pType..AddItemInHandsProfileIK("MyModdedWeapon", "dz/anims/workspaces/player/player_main/weapons/player_main_cz527.asi", pBehavior, "dz/anims/anm/player/ik/weapons/cz527.anm", "dz/anims/anm/player/reloads/cz527/w_CZ527_states.anm"); pType..AddItemInHandsProfileIK("MyModdedWeapon2", "dz/anims/workspaces/player/player_main/weapons/player_main_cz527.asi", pBehavior, "dz/anims/anm/player/ik/weapons/cz527.anm", "dz/anims/anm/player/reloads/cz527/w_CZ527_states.anm"); } }; Прошу обратить внимание, что мы используем modded, мы модифицируем уже существующий класс внутри
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
-
Автор: Miduznya
Всем привет, чет не нашел не где как можно в ручную обновить через .bat или .cmd файл
если есть у кого такой поделитесь плиз. Прошу сильно не пинать если есть такая тема дайте ссылку
-
Автор: RedLink
Всем Привет.
Представляю вам систему логирования действий игроков и т.д. по принципу InfiSTAR.
Для установки вам понадобятся кастомный compiles.sqf (тем кто не знает как это сделать, -> поиск по форуму).
1. Открываем в серверной части файл dayz_server\init\server_functions.sqf и в самом низу вставляем:
"SK_log" addPublicVariableEventHandler {(_this select 1) call fnc_Log;}; 2. Теперь открываем в папке с миссией файл compiles.sqf и ищем что-то в этом плане:
if (!isDedicated) then { блаблабла }; и после него вставляем
fnc_log = { private ["_fileName","_message","_dll","_dll2","_display"]; _fileName = toLower (_this select 0); _message = _this select 1; _display = if (count _this > 2) then {_this select 2} else {false}; if (!isDedicated) then { SK_Log = [_fileName,if (typeName _message == "ARRAY") then {_message} else {toArray _message},_display]; publicVariableServer "SK_Log"; } else { _message = if (typeName _message == "ARRAY") then {toString _message} else {_message}; if (_display) then {diag_log format ["[%1] %2",toUpper (_fileName),_message];}; _dll2 = format["!InfiSTAR_Logs~%1~%2",_fileName,_message]; "LogDLL" callExtension _dll2; }; }; где "!InfiSTAR_Logs" - ваша папка, куда вы хотите складировать логи.
3. Открываем файл publicVariable.txt в фильтрах Battleye и в первой строке "5 !=блаблабла" в конце добавляем "!=SK_Log" (пример ниже)
5 !"donn_heli_monitor" !"fnc_log" !=fnc_log !"redHunter" !=redHunter !"cad_pvar_s" !"PVDZE_veh_Update" !="PVDZE_veh_Update" !="PVDZE_adminevents" !="PVDZ_plr_Death" !"PVDZ_plr_Death" !="PVDZE_atp" !"PVDZE_atp" !"PVDZ_plr_LoginRecord" !="PVDZ_plr_LoginRecord" !"PVDZE_log_lockUnlock" !=PVDZE_log_lockUnlock !"redHunter" !=redHunter !"redDiagLog" !=redDiagLog !="PVDZE_atp" !=(remExField|remExFP) !=(PVCDZ_obj_GutBody|drn_AskServerDynamicWeatherEventArgs|BIS_effects_gepv|achievement|dayzFlies) !=PVDZ_(drg_(RaDrag|RaLW|RLact)|getTickTime|hlt_Bleed|obj_(Delete|Publish|RoadFlare|Destroy|Fire)|veh_Save|veh_SF) !=PVDZ_(plr_(Death|Login[12]|LoginRecord|Save|SwitchMove)|Server(_Simulation|StoreVar)|sec_atp) !=PVDZ_(playerMedicalSync|object_replace|groupInvite) !=PVDZ_(send(|Unconscious)) !=PVDZ_Server_(buildLock|LogIt|UpdateGroup) !=PVDZ_Server_process(Code|SetAccessCode) !=PVDZ_objgather_(Delete|Knockdown) !=PVDZE_(obj_(Delete|Publish|Swap|Trade)|fullobj_Publish|maintainArea|veh_(Lock|Publish2|Upgrade)|handleSafeGear|plr_(DeathB|FriendRQ|TradeMenu)) !=PVAH_AdminReq !=PVAH_WriteLogReq !=PVAHR_0_[a-zA-Z0-9]{20,40} !"PVAHR_" !="PVAH_AdminReq" !="PVAH_WriteLogReq" !=PVAHR_0_[a-zA-Z0-9]{20,40} !="PVDZE_(query|store|spawn)Vehicle" !="PVDZE_PingSend" !="PVDZE_veh_Init" !"SK_Log" !=SK_Log
4. А теперь самое главное.
Пример вывода лога в отдельный файл. Возьмем для примера файл смерти игрока от тех или иных причин.
Открываем в серверной части файл server_playerDied.sqf и ищем там строку
diag_log format["%1 (%2) %3 @%4 %5",_playerName,_playerID,_message,mapGridPosition _pos,_pos]; после нее вставляем
["DEATHS",format ["%1 (%2) %3 @%4 %5",_playerName,_playerID,_message,mapGridPosition _pos,_pos],true] call fnc_log; Таким образом в указанной в папке в п. 2 создатся файл deaths_блаблабла.txt, в котором будет отображен лог о смерти игрока по тем или иным причинам.
Формат записи лога выглядит следующим образом:
_message = format ["Что хочу то и пишу и хочу видеть значение %1",_значение%1]; ["ИМЯ_ФАЙЛА_ЛОГА",_message,true] call fnc_log; или напрямую
["Имя_файла_лога",format ["тут будет то что в значении %1",_значение%1],true] call fnc_log;
Представляю варианты 4-х DLL, которые работают для этой системы (качаете любую из них и переименовываете в LogDLL.dll). Эту DLL необходимо закинуть в папку с игрой (например в C:\Games\Arma 2 Operation Arrowhead).
LogDLL.dll создает в папке с логами отдельную папку по названию лога.
LogDLL_-_dd-MM-yyyy и иные ее интерпретации - создает в папке с логами отдельную папку с датой, в которой хранятся все логи за эту дату.
Если есть вопросы, задавайте.
Оригинал данного скрипта и ссылки на разработчика ниже.
Копирайта
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
-
Автор: RedLink
Всем привет.
Возник один вопрос, который пока не могу догнать как решить.
Суть следующая. В последней версии Инфистара есть код, который выводит логи в отдельную папку
Путем нехитрых манипуляций добавляем ему вывод лог в отдельную папку с датой (ибо надоел тот кошмар, что там за 5 дней скапливается)
А вот теперь сам вопрос.
Если переменная dayz_ForcefullmoonNights = true;
то создается папка с датой, которая указана в server_monitor.sqf - т.е. 2012,8,2 - что в принципе логично.
А вот если dayz_ForcefullmoonNights = false; - то создается папка с датой, которая указана в mission.sqf (в моем случае это 2008,10,1. Хотя по логике должна присваиваться реальная дата, которая берется из того-же server_monitor при проверке на dayz_ForcefullmoonNights, т.к. в логе сервера мы видим, что TIME SYNC текущая дата сервера.
Почему так происходит и как это можно поправить?
-
-
Наш выбор
-
Создаем свой серверный мод. [DayZ 1.4 to Discontined]
123new опубликовал тему в Версия 1.0 и выше,
-
Увеличение карты х2
vitacite опубликовал тему в Картостроение,
Всем доброго вечера!
Подскажите как сделать, что бы инфистар показывал предметы только с пропиской _DZ
например:
SUV_DZ и т.д. и т. п.
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах