Если нужно открытие карты редактором из-за совместной работы, а плюшки не нужны, то привязка будет в самый раз.
Совместная работа предполагает передачу карты в обе стороны. Т.е. это еще и парсер нужен который будет парсить wct и wtg на предмет изменений... Т.е. принял ты карту от того с кем работаеш и у кого только редактор и каждый раз надо прогнать карту через парсер чтобы подтянуть изменения в коде, чтобы они попали во внешние файлы которые редактируются в IDE. И нужно не забыть это сделать раньше первой пересборки карты из IDE иначе изменения потеряются. Как я уже говорил, крайне корявый workflow.
ИМХО, эффективнее просто заставить всех участников поставить и настроить среду разработки и передавать не только карту, но и весь проект. А время которое потратилось бы на разработку этого парсера и синхронизации папок потратить, например, на линуксовую версию тулсета.
ИМХО, единственная ценность сборки карты в режиме синхронизации папок - пилить что-то для выкладывания на сайте, не ожидая получить отредактированную карту обратно.
Добавил сборку с триггерами и поддержку линукса в рассматриваемые фичи. Правда не факт что я до них дойду.
Чтоб в редакторе нормально открывалось и сохранялось.
Как я уже говорил - с этим будут нюансы - привязка к обязательному нормальному сохранению карты из редактора это автоматическая потеря всех плюшек, которые дает возможность обрабатывать карту внешним сборщиком и компилятором.
Поэтому мой выбор - забить на валидность сохранения карты редактором если была открыта не исходная карта, а собранная через IDE.
При этом исходная карта не содержит внешнего кода и исправно сохраняется редактором, а потом используется IDE в процессе сборки.
Это адов ад, тогда либо придется эти списки компиляции вручную писать постоянно либо после каждого добавления файла кода лезть в редактор, двигать его там, сохранять карту, парсить wct и wtg и формировать новый список сборки. Очень "удобное" решение.
Опять же, мой выбор - автоматическое определение порядка сборки кода с возможностью вручную влиять на него при необходимости. В конце концов, мы не страницу собираем, а код карты - нам порядок важен только когда одна часть кода использует другую специфичным образом, для всех остальных ситуаций полностью подходит алфавитное расположение.
NazarPunk, зачем тебе тогда wct и wtg руками трогать?
А с синхронизацией структуры папок между IDE и варом есть еще одна проблема, которая не сразу бросается в глаза - в IDE строго алфавитный порядок, а в варе их можно свободно менять местами.
NazarPunk, что даст раскуривание формата, если внешние изменения в этих двух файлах не подхватываются редактором без перезагрузки карты? А вставлять код в war3map.lua вобще не имеет смысла при работе в редакторе, ведь он полностью заново генерируется редактором при сохранении карты.
NazarPunk, технически это реально, я об этом тоже думал сначала, нужно только формат файла триггеров раскурить, но есть нюанс - после редактирования в IDE придется редактором переоткрывать карту каждый раз т.к. редактор не подтянет эти изменения сам до открытия карты и перезатрет их старыми данными если сохранить карту из редактора. В общем - идея хорошая, а реализация слишком сложна и неудобна чтобы это того стоило.
Можно теоретически запилить модуль экспорта в такой формат, для желающих передать карту кому-то у кого ничего кроме обычного редактора нет, но даже так есть нюансы т.к. не все что можно реализовать во внешних файлах можно исправно перенести в редактор так чтобы оно выдавало тот-же результат при сохранении.
В итоге - за коммент спасибо, но добавить эту фичу даже в список рассматриваемых я не могу.
PT153, я ни разу не смог довести его до автоматического срабатывания на стандартных настройках, но я и не сильно старался - при автоматическом срабатывании тоже умрут с вероятностью 99%. А так - да, работают, почему бы им не работать, если их никто не пытается удалить как мусор.
Мне тоже интересно, зачем для этого принципа такую способность в пример приводить? Сразу же не о том думаешь.
Чем щит маны хуже поднятия щитов и жара преисподней, кроме того факта что о нем я вспомнил сразу, а об остальных уже после написания сообщения? Учитывая что от этого упоминания нужно было только привести пример переключаемой способности....
Повторю вопрос - как вы собираетесь тратить ману при каждом ударе если способность переключаемая и нет детекта урона? Я что-то не припоминаю ни одной такой способности, кроме автокастовых, которые не любят ближний бой.
KaneThaumaturge, 8gabriel8, я выше этот вариант предложил и даже примерно описал как можно реализовать, причем так что там даже есть куда затраты маны вывести (главное не забыть вернуть ману за ручную активацию)...
NazarPunk, нечего создавать анонимные таймеры. А сборщик мусора вызывать придется чтобы не погрязать в мусоре, либо он сам рано или поздно вызовется если у него настроены условия срабатывания и они выполнятся.
Это странно, кстати - нативные обьекты вроде не должны полностью убиваться сборщиком мусора, только ссылки на них... Что-то близы хитрое сделали.
KaneThaumaturge, я о способности работающей по принципу щита маны - у способности два состояния и активация вручную меняет состояние.
Во включеном состоянии каждая атака триггерно делает свои действия и тратит ману, а если маны недостаточно, выключает способность, а в выключеном состоянии просто ничего не происходит.
Делается через две пустышки и один яд для детекта, одна пустышка для включенного состояния, одна для выключенного, яд выдается когда способность включена, баф детектится у цели и удаляется.
NazarPunk, дело не в скорости - скорость хуже всего будет на именованных глобальных функциях и функциях в таблицах. Дороговизна анонимных функций и вложенных функций прежде всего в потреблении памяти.
Тем временем, случайно обнаружилась одна из проблем создания триггеров до инициализации - привязанные к ним события сжирает сборщик мусора, при том что тот же код перенесенный в хук InitGlobals работает исправно после сборки мусора.
Стоит исследовать как ведет себя импорт slk в карту - после изменения внутренней структуры архивов и превращения карты в модуль каск архива, возможно теперь подхватятся и slk данные вроде сетов звуков.
NazarPunk, проблема в том, что эта часть кода похоже выполняется в лобби при начальной загрузке карты, в отличии от жасса, который так не умел и код только загружал, но еще не выполнял на этом этапе.
Код не очень - создание объектов в верхнем потоке выполнения, до инициализации и полной загрузки карты. Злоупотребление анонимными функциями, которые несомненно удобны, но это дорогое удовольствие и лучше пользоваться ими только когда это реально нужно, а не ради "красивого кода".
Имхо, фича избыточная т.к.дублирует букмарки в браузере. Во времена когда синхронизация букмарков была экзотикой эти фича имела бы смысл, а сейчас как-то бледно выглядит.
Будете делать поддержку гифок, 3д моделей и вебкамер в аватарках - не забудьте дать возможность пользователям отключать это все в лес, чтобы глаза не выпадали.
Ред. prog
» Эксперименты в Пустоте / Ломаем Warcraft3 1.31 полностью: Кастомный компилятор Lua
Ред. prog
» Эксперименты в Пустоте / Ломаем Warcraft3 1.31 полностью: Кастомный компилятор Lua
При этом исходная карта не содержит внешнего кода и исправно сохраняется редактором, а потом используется IDE в процессе сборки.
» Эксперименты в Пустоте / Ломаем Warcraft3 1.31 полностью: Кастомный компилятор Lua
» Эксперименты в Пустоте / Ломаем Warcraft3 1.31 полностью: Кастомный компилятор Lua
Ред. prog
» Эксперименты в Пустоте / Ломаем Warcraft3 1.31 полностью: Кастомный компилятор Lua
Ред. prog
» WarCraft 3 / Орн из Лига Легенд
Ред. prog
» WarCraft 3 / Баг "Черных стрел"
Ред. prog
» WarCraft 3 / Баг "Черных стрел"
Ред. prog
» WarCraft 3 / Баг "Черных стрел"
Ред. prog
» WarCraft 3 / Баг "Черных стрел"
» WarCraft 3 / Орн из Лига Легенд
» WarCraft 3 / Баг "Черных стрел"
Во включеном состоянии каждая атака триггерно делает свои действия и тратит ману, а если маны недостаточно, выключает способность, а в выключеном состоянии просто ничего не происходит.
Делается через две пустышки и один яд для детекта, одна пустышка для включенного состояния, одна для выключенного, яд выдается когда способность включена, баф детектится у цели и удаляется.
» WarCraft 3 / Баг "Черных стрел"
» WarCraft 3 / Орн из Лига Легенд
Ред. prog
» WarCraft 3 / Орн из Лига Легенд
» WarCraft 3 / Как в UI\SoundInfo\UnitsAckSounds.slk добавить сет звуков?
» WarCraft 3 / Орн из Лига Легенд
» WarCraft 3 / Орн из Лига Легенд
» WarCraft 3 / Орн из Лига Легенд
» Администрация XGM / Дополнить систему Избранное
» WarCraft 3 / Хилку сделать предметом в инвентаре
» Администрация XGM / Аватарка 100 КБ и 128х128.
» WarCraft 3 / Не срабатывает точно условие сравнения
» StarCraft 2 / Несколько языков в карте
» StarCraft 2 / Несколько языков в карте