Reforged: изменение характеристик боевой единицы
Предисловие: насколько я знаю, в классическом варкрафте (1.26) без танцев с бубнами и костылей невозможно было реализовать следующие фичи:
  • Уменьшить/увеличить стоимость юнита
  • Уменьшить/увеличить время строительства юнита
Вопрос: можно ли реализовать данные фичи на текущей версии WarCraft на GUI, Jass, Lui?

Лучший ответ:
Такого пока нет.


Views: 536

Astra #1 - 11 months ago 0
Голосов: +0 / -0
Заменить юнита на другого в лавке
AMark #2 - 11 months ago 0
Голосов: +0 / -0
Astra:
Заменить юнита на другого в лавке
Это я и назвал - сделать через костыли.
В Reforged для GUI ввели функции изменить имя, макс.запас здоровья и маны, броню, скин, параметры урона, скорость атаки. Но конкретно требуемых функций не нашел, я надеялся что они спрятаны в jass или lui, но судя по всему... увы
PT153 #3 - 11 months ago 0
Голосов: +1 / -1

Такого пока нет.
Extremator #4 - 11 months ago 1
Голосов: +1 / -0
А теперь: танцы с бубном
1. Изменение цены делается через набор юнитов-пустышек, чем больше надо - тем больше надо пустышек (в отдельных случаях - можно юзать абилку). Просто понизить цену на 30% - это легко, а вот менять её динамически и более "рандомно" - запарнее в плане реализии данного костыля (но делают же, те кому реально надо).
2. Время производства юнита - можно триггерно регулировать прогресс производства (вот такой костыль). Берётся необходимое время, и периодически выставляется прирост прогресса. Вполне работоспособно, за не имением других инструментов.
Nelloy #5 - 11 months ago 0
Голосов: +0 / -0
А разве BlzSetUnitIntField не работает? С критами и уворотами в абилках у меня работало
PT153 #6 - 11 months ago 0
Голосов: +0 / -0
Nelloy, работает, нужных полей нет.
» поля
    constant unitintegerfield UNIT_IF_DEFENSE_TYPE                          = ConvertUnitIntegerField('udty')
    constant unitintegerfield UNIT_IF_ARMOR_TYPE                            = ConvertUnitIntegerField('uarm')
    constant unitintegerfield UNIT_IF_LOOPING_FADE_IN_RATE                  = ConvertUnitIntegerField('ulfi')
    constant unitintegerfield UNIT_IF_LOOPING_FADE_OUT_RATE                 = ConvertUnitIntegerField('ulfo')
    constant unitintegerfield UNIT_IF_AGILITY                               = ConvertUnitIntegerField('uagc')
    constant unitintegerfield UNIT_IF_INTELLIGENCE                          = ConvertUnitIntegerField('uinc')
    constant unitintegerfield UNIT_IF_STRENGTH                              = ConvertUnitIntegerField('ustc')
    constant unitintegerfield UNIT_IF_AGILITY_PERMANENT                     = ConvertUnitIntegerField('uagm')
    constant unitintegerfield UNIT_IF_INTELLIGENCE_PERMANENT                = ConvertUnitIntegerField('uinm')
    constant unitintegerfield UNIT_IF_STRENGTH_PERMANENT                    = ConvertUnitIntegerField('ustm')
    constant unitintegerfield UNIT_IF_AGILITY_WITH_BONUS                    = ConvertUnitIntegerField('uagb')
    constant unitintegerfield UNIT_IF_INTELLIGENCE_WITH_BONUS               = ConvertUnitIntegerField('uinb')
    constant unitintegerfield UNIT_IF_STRENGTH_WITH_BONUS                   = ConvertUnitIntegerField('ustb')
    constant unitintegerfield UNIT_IF_GOLD_BOUNTY_AWARDED_NUMBER_OF_DICE    = ConvertUnitIntegerField('ubdi')
    constant unitintegerfield UNIT_IF_GOLD_BOUNTY_AWARDED_BASE              = ConvertUnitIntegerField('ubba')
    constant unitintegerfield UNIT_IF_GOLD_BOUNTY_AWARDED_SIDES_PER_DIE     = ConvertUnitIntegerField('ubsi')
    constant unitintegerfield UNIT_IF_LUMBER_BOUNTY_AWARDED_NUMBER_OF_DICE  = ConvertUnitIntegerField('ulbd')
    constant unitintegerfield UNIT_IF_LUMBER_BOUNTY_AWARDED_BASE            = ConvertUnitIntegerField('ulba')
    constant unitintegerfield UNIT_IF_LUMBER_BOUNTY_AWARDED_SIDES_PER_DIE   = ConvertUnitIntegerField('ulbs')
    constant unitintegerfield UNIT_IF_LEVEL                                 = ConvertUnitIntegerField('ulev')
    constant unitintegerfield UNIT_IF_FORMATION_RANK                        = ConvertUnitIntegerField('ufor')
    constant unitintegerfield UNIT_IF_ORIENTATION_INTERPOLATION             = ConvertUnitIntegerField('uori')
    constant unitintegerfield UNIT_IF_ELEVATION_SAMPLE_POINTS               = ConvertUnitIntegerField('uept')
    constant unitintegerfield UNIT_IF_TINTING_COLOR_RED                     = ConvertUnitIntegerField('uclr')
    constant unitintegerfield UNIT_IF_TINTING_COLOR_GREEN                   = ConvertUnitIntegerField('uclg')
    constant unitintegerfield UNIT_IF_TINTING_COLOR_BLUE                    = ConvertUnitIntegerField('uclb')
    constant unitintegerfield UNIT_IF_TINTING_COLOR_ALPHA                   = ConvertUnitIntegerField('ucal')
    constant unitintegerfield UNIT_IF_MOVE_TYPE                             = ConvertUnitIntegerField('umvt')
    constant unitintegerfield UNIT_IF_TARGETED_AS                           = ConvertUnitIntegerField('utar')
    constant unitintegerfield UNIT_IF_UNIT_CLASSIFICATION                   = ConvertUnitIntegerField('utyp')
    constant unitintegerfield UNIT_IF_HIT_POINTS_REGENERATION_TYPE          = ConvertUnitIntegerField('uhrt')
    constant unitintegerfield UNIT_IF_PLACEMENT_PREVENTED_BY                = ConvertUnitIntegerField('upar')
    constant unitintegerfield UNIT_IF_PRIMARY_ATTRIBUTE                     = ConvertUnitIntegerField('upra')
Nelloy #7 - 11 months ago 0
Голосов: +0 / -0
Любопытно... Я бы тогда менял описание юнита а золото снимал триггерно