26

» WarCraft 3 / Из за чего сломался варик?


Как оказалось проблема, как подсказал Dazz_Lighter:
Лечится банальной перезагрузкой. Не вкл/выкл, а именно перезагрузкой.
26

» WarCraft 3 / Из за чего сломался варик?

Кажется словил тот же баг.. Перестали работать эффекты у которых только одна анимация Birth.
Ничего не устанавливал даже
26

» WarCraft 3 / Криво отображается высота юнита (1.26)

Bergi_Bear:
Не, смерть/воскрешение не помогают, по крайней мере с героями это не сработало. Ну в любом случае вроде как фикс страхует от подобных ситуаций, если пробрасывать его на спавне и воскрешении.
26

» WarCraft 3 / Криво отображается высота юнита (1.26)

Bergi_Bear:
Кажется я понял в чем дело.

Такое ощущение, что корни/сеть как то фиксируют максимальную высоту полета.
Те. если юнит до корней не поднимался в воздух или поднимался на слишком низкую высоту,
то после корней он забагуется.

Лечиться подъемом юнита верх/вниз сразу после спавна.
После воскрешения нужно повторять фикс.
Как вылечить уже сломавшегося юнита пока не нашел

код
  boolean is_fix = false
  u = CreateUnit(Player(0),'opeo',x,y,0)                   //Создан юнит
  UnitAddAbility(u,'A000'); UnitRemoveAbility(u,'A000')    //Добавление удаление сфинкса
  
  //==========!!fix
   if is_fix {  //После восскрешения следует применить снова
    SetUnitFlyHeight (u,99999,0)
    SetUnitFlyHeight (u,0,0)
   } 
  //==========!!end_fix

  //==========!!BUG
   SetUnitFlyHeight   (u,0,0)                        //До корней высота должна измениться высота хотябы раз (высота должна быть меньше x в моем случае < 100, возможно зависит от высоты рельефа)
   TriggerSleepAction ( 2 )                          //Задержка может быть любой
   DummyAbilityCastL  (u,'A048',1,"entanglingroots") //Дамми каст корней
  //==========!!end_BUG
  
  
  //==========!!ПРОВЕРЯЕМ
   TriggerSleepAction ( 3 )                         //Задержка что бы корни успели кастануться  
   SetUnitFlyHeight(u,40,0)                         //Пробуем поднять юнита () 
   TriggerSleepAction( 1 )                          //Юнит остается на земле
   Msg("GetUnitZ = "+R2S(GetUnitFlyHeight(u)))      //Запрашиваем высоту - высота всегда корректная (и с багом, и без)
26

» Hunter or Victim / Hunter or Victim

DayZ:
Вообще у дерева есть лимит в 100 единиц. Получается что баг был в том, что каким то образом лимит был превышен (либо читы)
В новой версии дополнительные действия уложены в обычный спеллбук, так что баги с иконками должны отпасть.

95 минут без сейвов, мощно)
26

» Hunter or Victim / Hunter or Victim

DayZ:
Спасибо за отзыв.

Продолжение будет! Я налил много новых фич и отладил множество проблем.
Сейчас осталось самому поиграть и забалансировать.
Камеру кстати удалось сделать более отзывчивой, так как раньше была сильная задержка для вращения.
Плюс я вернул возможность фокусится на дальней точке.

На счет бесконечного режима, вполне возможно. Я попробую прикрутить.
В сингле кстати можно включать автосохранения во время сна в начале игры.
26

» WarCraft 3 / Редактирование рельефа средствами jass

map_maiker:
Лучше не поднимать рельеф из воды (т.к все равно пена и проходимость не будут работать), а использовать декор воды, как в ссылке выше.

Самый простой способ, это продавливать водоемы, параллельно спавня в эти места декор с текстурой проходимости "вода" (не помню какой цвет) соответствующий размеру кисти.

Второй способ, это таймером проверять высоту под юнитами и топить (или выполнять другие действия) если глубоко.
Для оптимизации можно делать это в 2 таймера. Первый таймер обновляется редко 1 раз в сек,
проверяет юнитов на высоте > 200 от воды, иначе перебрасывает их во второй таймер,
который обновляется чаще (< 0.1 сек).
Так же придется дополнительно обрабатывать разнообразные телепортации, проверки при строительстве и прочее.
Можно оптимизировать еще сильнее если заменить первый таймер на области с событием входа/выхода.
Тут нужно что бы области спавнились вместе с кистью которой ты проминаешь водоемы.



Еще момент, это процедурная расскраска рельефа не сохраняется при сохранении карты. Тобишь нужно будет создать событие загрузки карты, которое будет заного расскрашивать тайлы.

Так же лучше отказаться от способностей вроде stamp и wave, которые времено деформируют рельеф.

Летающих юнитов придется заменить на пеших с дамми способностью полет и отключить им коллизии. Иначе онибудут летать сквозь поднятый рельеф.
26

» WarCraft 3 / Зависания крипов при больших скоплениях

Можно фейкать дальних мобов, и превращать их в реальных, когда они оказываются близко к пехотинцу, через "стадо". youtu.be/ShVFHuc6-AU
26

» WarCraft 3 / Как лучше организовать обработку кастов?

PT153:
Doc, можно сохранить имя функции и вызывать её потом через ExecuteFunc. А можно воспользоваться vJass и сохранить как число.


CodeSendUnitAttr (source,target)
RunCode  (hash,"my_spell")
можно в одну строку, если добавить дефайн
 define CastSpellST   (spellname,source,target)   = {CodeUnitSource = source; CodeUnitTarget = target ;RunCode  (hash,s); }
26

» Game Dev / Создаем игры вместе

Год назад начинал пока было время, потом неудачно форматнул диск.
26

» WarCraft 3 / Критическая ошибка в карте

модель может спокойно крашить вар/редактор, если у нее есть анимация в 0 кадров.
26

» Hunter or Victim / Hunter or Victim

Bornikkeny:
Спасибо.
У меня есть небольшой список трудно воспроизводимых багов. Надеюсь не помешают.