главная турниры статьи wiki карта сайта логин

Автор Тема: EffectWML и... вообще WML :)  (Прочитано 1686 раз)

0 Пользователей и 1 Гость просматривают эту тему.

FallenPhoenix

  • level 2
  • **
  • Сообщений: 126
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 11.64 Opera 11.64
    • Просмотр профиля
    • Phoenix Lair
  • Раса: Эльф
EffectWML и... вообще WML :)
« : Январь 04, 2013, 13:34:08 »
Пытаюсь как следует разобраться в EffectWML - как для правки косяков в некоторых аддоных, так и для нормального перевода соответствующей статьи справочника (тыц).

Что неясно:
  • Описания тегов [object] и [effect] в офф вики явно противоречат друг другу: в первом значится, что бойцу выделяется какой-то специальный объект (вместо прямой правки, как я понимаю?) и дополняется сие дело атрибутом duration, но в самом начале статьи об эффктах пишут прямо противоположное: "Modifications are permanent changes to a unit; currently there is no way of removing a modification."
  • В чем смысл наличия тега [filter] сразу в двух экземплярах: и в [object], и в [effect]? Чем они отличаются?
  • Не пойму, почему в оглавлении EffectWML не поместили под DirectActionsWML. Оно может еще где-то использоваться?
  • Модификация бойцов через эффекты и через переменные ([story unit] - [unstore unit]), по сути, лишь альтернативы друг другу. Как по оптимизации, и вообще что для чего в целом лучше подходит?

Кстати, касательно оптимизации очень волнует еще другой вопрос. Аддоны прилично увеличивают время загрузки мультиплеера, а некоторые и сами по себе тормозят нехило (как вона SXRPG, особенно под виндой). При этом часть данных движок явно обрабатывает сразу, а часть - уже во время загрузки карты и собственно игры. Ну и собственно непомешало бы этот момент понять поподробней: когда точно вызывается препроцессор, сколько это времени занимает, что насчет скриптов на Lua, есть ли какие-то встроенные средства отладки производительности (чтоб в файл например писало, сколько миллисекунд ушло на какую операцию) и т.п. Заморачиваться ради каждой миллисекунды, конечно, не буду, но узкие места кое-где хотелось бы проработать.
« Последнее редактирование: Январь 04, 2013, 13:43:08 от FallenPhoenix »
Spoiler (click to show/hide)


ShuricK

  • Эксперт
  • level 3
  • ***
  • Сообщений: 369
  • Shas'La Kel'Shan
  • OS:
  • Mac OS X Mac OS X
  • Browser:
  • Safari 5.0 Safari 5.0
    • ICQ клиент - 574278280
    • Просмотр профиля

  • Раса: Механизм
Re: EffectWML и... вообще WML :)
« Ответ #1 : Январь 04, 2013, 14:44:22 »
1 - имели в виду что перманентно в пределах карты или уровня.
2 - effect - одно изменение, а object может нести не одно, так что в effect просто уточнение. Ветвление в духе switch case также.
3 - не критично
4 - store гораздо тяжелее, полезно если
    а - нехило перелопачиваем юнит
    b - применяем изменения не сразу, накапливаем до определенного момента
    с - дебажим

про луа - качаи дев версию, спрашиваи на форуме, смотри src. Время выполнения скорее всего через профаилер


FallenPhoenix

  • level 2
  • **
  • Сообщений: 126
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 11.64 Opera 11.64
    • Просмотр профиля
    • Phoenix Lair
  • Раса: Эльф
Re: EffectWML и... вообще WML :)
« Ответ #2 : Январь 05, 2013, 10:31:14 »
3 - не критично
Но любопытно, в большей степени для справочника, исключительно ли это подтег [object], или отдельная стуктура, используемая в нескольких местах.

4 - store гораздо тяжелее
Хм, а от эффектов юниты распухают однако, ибо кроме изменения базовых переменных, появляются эти самые объекты наподобие лога (см. :debug - :inspect); сами чистятся, походу, исключительно через duration, а вручную - только через все то же store. Видать, это и имели в виду под перманентностью... извращенцы =\
Этак добавил атаку, потом удалил - и у юнита 2 новых объекта в modifications. А в РПГшках с возможностью смены оружия так вообще герои могут "растолстеть" что трындец... Т.е. store - простые изменения, за которыми и следить нужно самостоятельно при всяких там левелапах, а object - патчи, за которыми автоматически следит сам движок, этакая встроенная система контроля версий ;D. Так получается? Однако, разницу в производительности все ж непомешало бы как-нить потестить...
« Последнее редактирование: Январь 06, 2013, 09:19:21 от FallenPhoenix »
Spoiler (click to show/hide)