Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной

Таблица лидеров


Популярные публикации

Отображаются публикации с наибольшей репутацией на 03/26/21 во всех областях

  1. 5 баллов
    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, мы модифицируем уже существующий класс внутри мода CF . Как изначально и playerbase JMAnimRegister находиться в директории 4_World. Позже класс был доработан и добавлены более тонкие настройки : void OnRegisterEmptyHanded( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ){} void OnRegisterTwoHanded( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) {} void OnRegisterOneHanded( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) {} void OnRegisterRestrained( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) {} void OnRegisterSurrender( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) {} void OnRegisterHeavy( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) {} void OnRegisterPistol( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) {} void OnRegisterFireArms( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) {} void OnRegisterArcheryItem( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) {} void OnRegisterLauncher( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) {} void OnBoneRemapping( DayZPlayerType pType ) {} Думаю комментировать не нужно и так понятно что за что отвечает! Тогда для чего нужен класс ModItemRegisterCallbacks ? Это класс, который был добавлен в v1.08, следовательно, он работает без любых модификаций, на чистом DayZ. modded class ModItemRegisterCallbacks { void RegisterEmptyHanded(DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior); void RegisterOneHanded(DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior); void RegisterTwoHanded(DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior); void RegisterRestrained(DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior); void RegisterSurrender(DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior); void RegisterHeavy(DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior); void RegisterPistol(DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior); void RegisterFireArms(DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior); void RegisterArcheryItem(DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior); void RegisterLauncher(DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior); void RegisterCustom(DayZPlayerType pType); void CustomBoneRemapping(DayZPlayerType pType); } Пример использования : modded class ModItemRegisterCallbacks { override void RegisterOneHanded(DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior) { super.RegisterOneHanded(pType, pBehavior); pType.AddItemInHandsProfileIK("твой предмет", "dz/anims/workspaces/player/player_main/props/player_main_1h_matchbox.asi", pBehavior, "dz/anims/anm/player/ik/gear/book.anm"); pType.AddItemInHandsProfileIK("твой предмет 2", "dz/anims/workspaces/player/player_main/props/player_main_1h_matchbox.asi", pBehavior, "dz/anims/anm/player/ik/gear/book.anm"); } } "dz/anims/workspaces/player/player_main/props/player_main_1h_matchbox.asi" "dz/anims/anm/player/ik/gear/book.anm" это пути до анимаций, почему 2? Одна для положения предмета в руке, вторая для анимации самой кисти персонажа. И в заключении : какой из способов наиболее эффективен? Это зависит от вас, используйте то что удобно для вас (главное не через playerbase).
  2. 2 балла
    aimlock

    Отключение переломов ног на сервере

    В теории достаточно : modded class BrokenLegsMdfr: ModifierBase { override bool ActivateCondition(PlayerBase player) { return false; } }; 4_World
  3. 1 балл
    DOPHAMINE

    Отключение переломов ног на сервере

    модить надо серверным модом, а не изменением родного файла.
  4. 1 балл
    Короче сделал максимально просто и все работает хорошо, фпс не проседает override bool ActionCondition ( PlayerBase player, ActionTarget target, ItemBase item ) { if (player.FireInInventory() || player.IsPlayerNearbyGasObject() || player.IsPlayerNearbyFireplace()) { return true; } return false; } Добавил проверку на наличие рядом источников огня, можно объединить в 1 функцию, но мне нужно 2. В общем вопрос закрыт, спасибо что собрались. Поставил всем кто поучаствовал +rep
  5. 1 балл
    в override bool ActionCondition сделайте условие для выполнения override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item ) { private EntityAI itemInHands_pl = player.GetHumanInventory().GetEntityInHands(); PA_key key = PA_key.Cast(itemInHands_pl); if(key) { return true; } return false; }
  6. 1 балл
    У меня нету привязки к крафту, следовательно и использовать класс для модификации я не могу. Только создавать с нуля в своем акшине.
  7. 1 балл
    array<EntityAI> itemsArray = new array<EntityAI>; m_Player.GetInventory().EnumerateInventory(InventoryTraversalType.PREORDER, itemsArray); itemsArray - массив будет содержать ВСЕ предметы (начиная от одежды и заканчивая предметов в инвентаре (и в одежде и в рюкзаке) и вообще все предметы которые есть у персонажа Дальше сами разберетесь как действовать
×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка