ScorpioT1000, избегать итераций по хешмапам чрез pairs - сами хешмапы работают отлично, проблемы начинаются только если полагаться на не гарантированный порядок ключей и это стандартно для многих реализаций хешмапы, не только в луа.
SNART, ну так у тебя есть координаты кости-аттача, есть координаты накладки в желаемом положении, посчитай разницу и воспроизведи в том файле где только накладка, исходя из того, что ноль координат это так точка, за которую твоя накладка будет крепиться к аттачу...
ScorpioT1000, ipairs же только для целочисленных ключей и, насколько я помню, от 1 до первой пустой ячейки. В то время как pairs это для перебора по ключам хештаблицы, которые могут быть произвольными.
Если коротко - самом в луа не синкается принудительно ничего. Все что синкается и, соответственно, может привести к десинку - находится дальше, на уровне движка и логики игры.
Из вещей на которые стоит обратить внимание - перебор таблицы через pairs - поскольку таблицы в луа не гарантируют порядок хранения ключей, это может потенциально привести к тому, что перебор на разных машинах произойдет в разном порядке. В сферическом вакууме это не опасно, но если внутри перебора используется что-то подлежащее синку - здравствуй потенциальный рандомный десинк. Близы вроде как собирались это починить, но я бы не рисковал на это ставить и избегал бы перебора через pairs в местах где важен порядок выполнения итераций.
Что касается ручной синхронизации - близы завезли новые нативки и события для этого. Если упростить, регается триггер, который ловит события синхронизации и может вынуть из них переданные данные и затем используются нативки для передачи данных на синхронизацию.
Важный нюанс, на который также стоит обратить внимание - фреймы и некоторые действия с ними, скорее всего, частично синхронизированы - я видел репорты что реакция на нажатие кнопок в фреймах происходит с задержкой на пинг и синхронизацию. Но это может быть особенностями реализации конкретных видов фреймов или вобще кривым кодом на стороне автора этих репортов - сам я не проверял.
Проще? Можно импортировать модель юнита и накладку в мдлвиз, подогнать накладку относительно юнита, вычислить нужное смещение относительно используемого аттача. Потом берется модель накладки отдельно от юнита, к ней применяется вычисленное смещение из предыдущего пункта, экспортируется, профит. Не знаю проще ли это, я знаю людей которые сломаются на попытке вычислить смещение.
А что мешает получить базовую белую защиту для этого типа юнита через новые нативки и добавить защиту по известной формуле от статов? Если не менять защиту триггерно - это единственные источники белой защиты, насколько я помню. А если менять триггерно - еще хранить и учитывать информацию об этих изменениях.
да гуй не слишком сложный и редактор похож на вариковский и игра тоже похоже на варик
Ты сильно недооцениваешь местный редактор данных, он же редактор объектов. Многих ломает уже тот факт, что юнит состоит из двух частей - логическая и визуальная, каждая из которых настраивается отдельно на разных вкладках редактора данных.
Вот только большой необходимости писать на чистом Galaxy нет, в отличии от варкрафта. Местный ГУИ достаточно хорошо реализован, а большую часть задач можно и нужно решать в местном редакторе объектов, а не в триггерах.
А с чего ты взял, что спустя время вейта у тебя юнит-цель заклинания по прежнему доступен к получению?
Записывай его в локальную переменную, если хочешь использовать вейт.
N7 Molot, Так уж получилось, что среди моих отложеных на потом проектов есть один, в котором среди прочего была тестовая сцена очень похожая на представленную в этой статье по методам построения. С корявым недоделанным инстансингом, избыточно дорогими материалами, динамическим редактированием домов, без множества необходимых оптимизаций добавленых позже, сцена с десятком девятиэтажных модульных домов выдавала 80 фпс в редакторе на моем ведре с древним i5 и не менее древним gtx760. Сомневаюсь что анрил энжайн и мои самопальные алгоритмы инстансинга настолько круче юнити и платных ассетов.
DarkLigthing, вставки кастомного кода отдельными строками никто не отменял, а конвертация гуи триггеров в код никак не помогает освоить локальные переменные - пользователю всеравно нужно где-то найти пример как это делается.
» WarCraft 3 / Как подогнать одеваемый доспех под нужную часть юнита?
» WarCraft 3 / Синхронизация в Lua
» WarCraft 3 / Синхронизация в Lua
» WarCraft 3 / Как подогнать одеваемый доспех под нужную часть юнита?
» WarCraft 3 / Синхронизация в Lua
Ред. prog
» WarCraft 3 / Синхронизация в Lua
» WarCraft 3 / Как подогнать одеваемый доспех под нужную часть юнита?
» WarCraft 3 / Мгновенный каст способностей ? или без сбивания приказа
» WarCraft 3 / Изменение отката способности [Reforge]
» WarCraft 3 / Изменение отката способности [Reforge]
» WarCraft 3 / Белая защита юнита [Reforge]
» WarCraft 3 / Белая защита юнита [Reforge]
Ред. prog
» StarCraft 2 / какой код используется в редакторе galaxy
» StarCraft 2 / какой код используется в редакторе galaxy
» StarCraft 2 / какой код используется в редакторе galaxy
» WarCraft 3 / Не удаляется способность
Записывай его в локальную переменную, если хочешь использовать вейт.
» WarCraft 3 / World Editor FileImport FIX
» WarCraft 3 / World Editor FileImport FIX
» WarCraft 3 / Warcraft 3 Reforged: Патч 1.32.9
» Project: «Anger» / Окна и балконы + опрос
» Project: «Anger» / Окна и балконы + опрос
» Project: «Anger» / Окна и балконы + опрос
» WarCraft 3 / [Lua] Событие получения урона перестает срабатывать
» WarCraft 3 / Lua или jass?