Jack-of-shadow #1 - 13 часов назад (отредактировано ) 1

» WarCraft 3 / фунция SetUnitLookAt

OVOgenez:
Как минимум делать наклон снарядов через SetUnitLockAt непроизводительно, так как понадобится еще один дамми таргет юнит. А если таргетить на цель, то вопервых будет неправильный наклон, а во вторых если цель телепортируется, то снаряд вобще перекрутится.

На даммика можно прикрепить сверху любую модель. Делать анимации не нужно, скачай готового даммика. Если не найдешь могу скинуть.
Jack-of-shadow #2 - 16 часов назад 0

» WarCraft 3 / фунция SetUnitLookAt

Лучше использовать дамми модель снаряда, где для наклона используется анимация и прикреплять к нему нужный эффект.
На сайте есть множество наработок.
Jack-of-shadow #3 - 2 дня назад 0

» WarCraft 3 / Триггерные атрибуты

Да, есть ещё дальность получения приказа (дальность автокаста) её можно спокойно менять, и останется только ограничить дальность ручного каста.
Jack-of-shadow #4 - 2 дня назад 0

» WarCraft 3 / Триггерные атрибуты

Bergi_Bear:
Jack-of-shadow, но она будет единожды фиксирована же...
Зато можно отменить

Кстати можно еще извратица, дать 9999 дальности, отключть автонаподение и делать его триггерно.
А если приказ атаковать дальше чем "дальность атаки", то приказывать двигаться в в сторону цели.
Jack-of-shadow #5 - 2 дня назад 2
Jack-of-shadow #6 - 4 дня назад 0

» WarCraft 3 / Как найти ближайший разрушаемый объект?

Obelick:
Делать небольшой рект, и смещать его вокруг точки. Тогда за раз будет обрабатывается не большое количество декора. А за 2 секунды можно безболезненно обработать огромные площади.
Jack-of-shadow #7 - 4 дня назад (отредактировано ) 0

» WarCraft 3 / Как найти ближайший разрушаемый объект?

Пример выше должен помочь, если перебирать не 900 декораций сразу, а например по 90 каждые 0.1. Если равномерно распределить, то по примерно по 5 декораций выбираться будет за кадр.

Я правильно понимаю тебе нужно отсортировать декорации по дальности от базы?
Jack-of-shadow #8 - 4 дня назад (отредактировано ) 0

» WarCraft 3 / Как найти ближайший разрушаемый объект?

Obelick:
Все таки сколько одновременно юнитов выбираеют декор?
Возможно лагает какраз от того, что у тебя много юнитов делают enum одновременно в одном тике.
В таком случае неважно какая периодичность - лагать будет одинаково. Можно решить примерно
» так

Очень утрированный пример:

таймер 0.01
выборка для unit[index]
index++
if index > 200 { index = 1}
на 200 юнитов хватит и будет периодичность 2 секунды.

Потом какие нибудь важные декорации которые ты ищешь можно найти один раз при загрузке карты, тем более что она у тебя генерируемая. Например создать отсортированные массивы определенного типа по которым можно делать более быстрый перебор, чем по всем декорациям на карте.
Jack-of-shadow #9 - 4 дня назад (отредактировано ) 0

» WarCraft 3 / Как найти ближайший разрушаемый объект?

Obelick:
Лагать не должно, если правильно отсеивать.
У меня в карте более 30 к разрушаемых пропсов, заспавненных во время игры (около 30 декораций на радиус 500 ед.) Через енум и стрелы летят и проверка на зрение работает и все норм.
То что предложил Bergi_Bear самое оно, только ректы можно глобальные подготовить разных размеров заранее.

Obelick:
В 512 думаю около 10, интервал 2 секунды. Но фишка в том, что в этом радиусе может и не быть подходящих объектов.
Что то мне подсказывает что именно при "ненахождении" объектов возникают проблемы. Возможно вы что то упустили в этом месте.
Jack-of-shadow #10 - 1 неделю назад (отредактировано ) 0

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b


Окончательно доломал коментарий. Файлы не открепляются и новые не заливаются.
Даже в какой-то момент чужой скриншот вылез.
прикреплены файлы
Jack-of-shadow #11 - 1 неделю назад (отредактировано ) 1

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

KaneThaumaturge:
это текустурка в импорте. UI\Feedback\XPBar\human-bigbar-fill.blp Хотел показать, что можно свою текстурку прописать.
Ааа блин, а я уже себе мозг сломал.
А что именно не нравится, вы хоть аргументируйте.
Согласен. Жаль только, что система потеряла свою основную фишку - это возможность скрывать нужные бары для локального игрока, и помимо манабаров она уже не так интересна.
Jack-of-shadow #12 - 1 неделю назад (отредактировано ) 2

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

KaneThaumaturge:
вроде нашел в чем проблема, но modulate смешивание в редакторе как то странно отображается.
хотя издалека вроде и невидно точек.
прикреплены файлы
Jack-of-shadow #13 - 1 неделю назад (отредактировано ) 0

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

pro100master:
Модельки уже есть, просто я их в редакторе не проверял когда делал. Там что-то пофиксить надо.
прикреплены файлы
Jack-of-shadow #14 - 1 неделю назад (отредактировано ) 0

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

Clamp:
А как ты на тимколоре планируешь покраснение полоски при снижении хп делать?
а надо ли оно?
KaneThaumaturge:
ща гляну, почему в редакторе полосок не видно
Jack-of-shadow #15 - 1 неделю назад 0

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

KaneThaumaturge:
Rusvermilion, да, это будет корректно работать только в одиночной игре.
Либо все таки вернуться к эфектам избавивившись от создания кучи способностей обвесов, отлавливая каст проблемных абилок.
Jack-of-shadow #16 - 1 неделю назад (отредактировано ) 0

» WarCraft 3 / Вопрос по поводу отлова точки

pro100master:
Надо погрешность учитывать, примерно 0.5 ед.
     boolean IsTerrainPathableTrue(real x, real y){
      boolean b = true
      SetUnitPosition  (PathableUnit,x,y) 
      if (RAbsBJ (GetUnitX(PathableUnit) - x)>0.5)or(RAbsBJ (GetUnitY(PathableUnit) - y)>0.5){
       b = false 
      }
      return b 
     }  
» PathableLib
 //Для работы библиотеки нужно:
    //1. Указать ид в переменной PathableUnitId
    //2. Инициализировать библиотеку PathableIni()
    library PathableLib
     globals
      private integer PathableUnitId = 'h000' //ид даммика
      private unit    PathableUnit
      private real    PathableX
      private real    PathableY
     endglobals 

     boolean IsTerrainPathableTrue(real x,real y){
      SetUnitPosition   (PathableUnit,x,y) 
      PathableX = GetUnitX(PathableUnit) - x
      PathableY = GetUnitY(PathableUnit) - y
      if PathableX <= 0 {PathableX = -PathableX} //RAbsBJ
      if PathableY <= 0 {PathableY = -PathableY} //RAbsBJ   
      return PathableX < 0.5 or PathableY < 0.5
     }  
      
     define IsTerrainPathableFalse(x,y) = not(IsTerrainPathableTrue(x,y))     
     
    nothing PathableIni(){ 
     PathableUnit = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE),PathableUnitId,0,0,0) 
     ShowUnit (PathableUnit, false)
    }
    
    endlibrary
    
прикреплены файлы
Jack-of-shadow #17 - 1 неделю назад 0

» WarCraft 3 / Если unit == null

Чет мистика какая то. Все должно работать.
Jack-of-shadow #18 - 1 неделю назад (отредактировано ) 0

» WarCraft 3 / Вопрос по поводу отлова точки

IsTerrainPathable криво работает с разрушаемыми объектами.

Однако можно написать свою функцию на даммике, перемещая его в точку и проверяя его смещение относительно заданных координат.
Jack-of-shadow #19 - 1 неделю назад (отредактировано ) 0

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

KaneThaumaturge:
Не не, все норм вроде. Подвисания только вначале. Это походу абилки подгружаются в первый раз. Надо прелоадить просто.

кстати, мб мне показалось, но у хп бара где то в середине моделька не отображается
у тебя br_abilityHP[11] пропущен
Jack-of-shadow #20 - 1 неделю назад (отредактировано ) 0

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

KaneThaumaturge:
Нафиг ифы:
 UnitRemoveAbility(br_unit[i], HP_Ability[br_indHP[i]])
 UnitAddAbility   (br_unit[i],  HP_Ability[br_indHP[i]])
Jack-of-shadow #21 - 1 неделю назад (отредактировано ) 0

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

Может из просто отслеживать тогда.
Jack-of-shadow #22 - 1 неделю назад 0

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

quq_CCCP:
Эмм, после ветров, шипов и прочих абилк с хайдом, моделька не будет отображатся
Почему? щас дал виндвалк все норм вроде.
Jack-of-shadow #23 - 2 недели назад (отредактировано ) 2

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

KaneThaumaturge:
Можешь такие потестить. Сам щас проверить не могу.
там 20'я моделька хп и мп без скейлинга. И еще один уменьшенный мп бар с оффсетом.

Кстати большинстве карт (особенно мили) основную часть времени юниты ходят с полным хп, и их можно не обрабатывать. Тобиш в рабочую группу по идее юнитов можно добавлять при получении урона и удалять, когда хп полное. Исключение конечно триггерное изменение здоровья. Но как опцию можно добавить.
прикреплены файлы
Jack-of-shadow #24 - 2 недели назад (отредактировано ) 1

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

Bergi_Bear:
Ну принципе можно отскейлить, хотя такое мясо по мне так точно перебор:
можно, еще зафиксировать масштаб, что бы не зависел от размера юнита и поставить оверлап материал.

KaneThaumaturge:
Вот, мб еще сдвинуть надо будет повыше все. Попробуй так пока.
прикреплены файлы
Jack-of-shadow #25 - 2 недели назад (отредактировано ) 1

» WarCraft 3 / Нестандартные полоски здоровья и маны v1.4b

KaneThaumaturge:
Оперативно) Давай уж мп бары тогда тоже замутим.
Jack-of-shadow #26 - 2 недели назад 0
Jack-of-shadow #27 - 2 недели назад (отредактировано ) 0

» WarCraft 3 / Красивые хп/мана бары

Во первых, если просадка идет не от цикла, а от многократного удаления/создания эффекта, то достаточно запоминать старое значение и сменять эффект, только если хп изменилось на 5%.
Если проблема все-таки в переборе большого кол-ва юнитов в циклом, то:

1.Попробовать событие "юнит хп изменилось".
Возможно тоже тяжело для каждого будет, надо тестить.

2.Свой таймер на каждого юнита, а лучше на небольшую группу (10+). Чтобы грубо говоря не 100 юнитов в один тик перебрались, а по 10 со смещением.

З. Не считать юнитов с полным хп.
Jack-of-shadow #28 - 2 недели назад (отредактировано ) 1

» WarCraft 3 / Красивые хп/мана бары

Вот поделюсь примером, единственное они у меня ниже 0 слегка, надо мешь поднять наверно будет в mdlvis

менять модель примерно так:
 DestroyEffect(HpBar[i]) 
 HpBar[i] = AddSpecialEffectTarget("HpBar_"+I2S(R2I(GetUnitLifePercent(u)/5))+".mdx","o​verhead")
прикреплены файлы
Jack-of-shadow #29 - 2 недели назад (отредактировано ) 0

» WarCraft 3 / Красивые хп/мана бары

кстати прогресс бар там нормально масштабируется.
а нет, он по дефолту выше
А так самый простой вариант это делать на эффектах, как советовал темой ниже и прикреплять на "overhead", тогда всегда на месте будет. Да и легче производительности, так как двигать их не надо будет.
Jack-of-shadow #30 - 2 недели назад 0

» WarCraft 3 / Красивые хп/мана бары

Можно поменять порядок рендера материала для хп бара в его модели, тогда он будет рисоваться всегда поверх юнита.
кстати прогресс бар там нормально масштабируется.
прикреплены файлы
Jack-of-shadow #31 - 2 недели назад (отредактировано ) 0

» WarCraft 3 / Есть ли расширение для красных хп-баров?

Bergi_Bear:
ну если 20 то ещё куда не шло.. я та понял каждый % новый эффект даJack-of-shadow, ?
По 1 на каждые 5 %. Общий вес, около 50 кб. получается. В узкой полоске юнита самое то.
Bergi_Bear:
но War Fortress что под 130 патч заточен?
Может и заточен, я не пробовал. Пока что управление на wasd не вводил. Все на стандарте так то, без хаков.
Jack-of-shadow #32 - 2 недели назад (отредактировано ) 0

» WarCraft 3 / Есть ли расширение для красных хп-баров?

Bergi_Bear:
Так это надо даммиков иметь, много не поюзаешь
можно на эффектах аналог сделать.
большой плюс в том, что при движении апдейтить не надо.
20 моделей хватит, для плавного перехода.
» развернуть
низковато правда повесил
Jack-of-shadow #33 - 2 недели назад 0
Jack-of-shadow #34 - 2 недели назад (отредактировано ) 2

» WarCraft 3 / Hunter_or_Victim

Обновление 0.83

» подробнее

ИНТЕРФЕЙС
Добавлены описания приказов.
Изменены иконки.

КРИТИЧЕСКИЕ БАГИ И ОПТИМИЗАЦИЯ
Полностью переписано 70% кода карты
Большинство функций раньше были рассчитаны только на одного игрока, теперь все переписано под мультиплеер.
Раньше множество тяжелых функций, отвечающих за камеру, туман и звуки перебирались циклом для всех игроков, теперь функции не требующие синхронизации рассчитываются локально.
Убрано множество утечек памяти.
Исправлен баг прицельного выстрела ломающий анимацию и скорость передвижения.

ГЕНЕРАЦИЯ ТЕРРЕЙНА
Исправлены коллидеры пней.
Добавлены падающие листья.
Исправлен баг при котором всегда генерировался смешанный тип ландшафта вместо выбранного игроком.

ТУМАН И НЕБО
Теперь на карте генерируются до 20 зон тумана разных размеров, на кол-во зон влияет тип ландшафта.

ПРОКЛЯТЫЕ ЗОНЫ
Исправлено поведение тумана в проклятой зоне.
Временно выключен эффект потери создания.
Темный туман наносит урон.
Внутри зоны спавнятся тени.

ЗВУКИ
Теперь громкость всех звуков зависит от дальности источника.
Добавлены звуки шагов и плеск воды.

СКРЫТНОСТЬ И СИСТЕМА ШУМА
  • Добавлены индикаторы на миникарте показывающие красным цветом звуки врагов и желтым звуки героя.
  • Передвигаясь по лесу герой может встретить множество опасностей, избежать которые поможет осторожность и скрытность.
  • Шум привлекает хищников рядом с вами, и выдает ваше местоположение другим игрокам.

СУЩЕСТВА

Враждебные:
Кабан, Большой кабан Волк, Медведь, Морлок, Паук.
  • Избегают встречи с игроком. Нападают при близком контакте или агрессии игрока.
  • Не нападают если игрок преследуется существом другого типа.

Нейтральные:
Лань, Олень, Кабан (детеныш), Кролик, Енот, Краб, Рак, Крыса, Черепаха, Ящерица, Бабочки, Срекозы.
  • Прячутся услышав шум поблизости. Убегают при приближении.
  • После смерти животного может остаться мясо (тест), поедая которое герой может восстановить сытость и здоровье. Кол-во восстановленных очков зависит от уровня животного.

СИСТЕМА ГОЛОДА (Тест)
Герой имеет 100 очков сытости.
Ежесекундно значение сытости падает на некоторое кол-во очков.
Когда кол-во очков упадет до 0, герой начнет терять здоровье.
Для восстановления сытости можно поедать (пока что сырые) грибы или мясо.

ТРЯСИНА
Теперь проваливаясь в трясину герой теряет 10 ед. здоровья.

ГЕРОЙ
Исправлена скорость, при переключении состояний плаванья и скрытности.
Добавлен 5% шанс на кровотечение при получении урона. Любое лечение останавливает кровотечение.

НОВЫЕ КОМАНДЫ
Добавлены команды отображения объектов на миникарте:
showroad - отобразить дороги.
showriver - отобразить реки.
showswamp - отобразить болота.
shpwfog - отобразить туман.
showhero - отобразить героев.

Jack-of-shadow #35 - 3 недели назад 0

» WarCraft 3 / Crazy Dwarf Race

VetsaN:
Да, с фарами намного круче будет. Но есть техническое ограничение.
Поскольку превышение 3 источников света на квадрат в радиусе 500+- вызывает проблемы рендера. Лампочки могут не отображаться, мигать и так далее. Для фар одной машины нужно как минимум 5 ламп вряд. От 10 машин будет уже 50. Возможно в рефордж версии источники света будут работать нормально. Но пока я ищу способ решить проблему. Возможно единственный пока способ - отключать все остальные источники света на карте и оставлять только фары, и то локально, только для машины на которой едешь.
Есть ещё вариант - делать лампы из юнитов, удаляя лампы при пересечении, но это выглядит слегка кривовато, да очень прожорливо по ресурсам.
Jack-of-shadow #36 - 4 недели назад 0

» WarCraft 3 / Мемхак - смена миникарты во время игры

Bergi_Bear:
Кажется в RenderEdge fbx грузить можно, может так
Jack-of-shadow #37 - 4 недели назад (отредактировано ) 0

» WarCraft 3 / Мемхак - смена миникарты во время игры

Bergi_Bear:
Дык в том и дело она не порезанная даже)
Jack-of-shadow #38 - 4 недели назад (отредактировано ) 0

» WarCraft 3 / Мемхак - смена миникарты во время игры

миникарту я у лича не нашел, зато лоадскрин 1920x1080 O_O. Это как вобще?
Jack-of-shadow #39 - 4 недели назад (отредактировано ) 0

» WarCraft 3 / Ошибка Missing endblock, cJass

Проблема в Coordinate functions
Jack-of-shadow #41 - 4 недели назад 0

» WarCraft 3 / Ошибка Missing endblock, cJass

UrsaBoss:
я себе еще такую тему сделал)
» развернуть
define for_i (max) = {integer i = 1;loop;exitwhen i > max}
define end_i () = {i ++;endloop}
define for_n (max) = {integer n = 1;loop;exitwhen n > max}
define end_n () = {n ++;endloop}
Jack-of-shadow #42 - 4 недели назад 0

» WarCraft 3 / Ошибка Missing endblock, cJass

KaneThaumaturge:
Я из вопроса код пробовал, а в карте да странно
Jack-of-shadow #43 - 4 недели назад 0

» WarCraft 3 / Ошибка Missing endblock, cJass

В общем я убрал заменил все твои глобалки (типо таких g_timeWater[]) из других либ на простые значения и все хорошо компилится.
Jack-of-shadow #44 - 4 недели назад (отредактировано ) 0

» WarCraft 3 / Ошибка Missing endblock, cJass

Во втором все норм
Jack-of-shadow #45 - 4 недели назад 2
Jack-of-shadow #46 - 4 недели назад (отредактировано ) 0

» WarCraft 3 / Ошибка Missing endblock, cJass

Реплейсер чутка не доделаный.. Тоже на глаз не вижу проблемы. В таких случаях если не понятно где потеряна скобка, начиная просто все закомичивать.

Стоп там вроде путь эффекта зафаршмачен
Jack-of-shadow #47 - 4 недели назад 0

» WarCraft 3 / Мемхак - смена миникарты во время игры

Bergi_Bear:
UrsaBoss, а теперь объясни это Джеку, чтобы он забил =)
Ну да оно не стоит таких усилий, просто думал что проще будет, а потом уже просто интересно стало)
Jack-of-shadow #48 - 4 недели назад 0

» WarCraft 3 / Мемхак - смена миникарты во время игры

Bergi_Bear:
как жаль что нет таких же функций для трёх других кнопок
мда помучаю я еще пару вариантов, если что все таки придеца копать в этом направлении.
Jack-of-shadow #49 - 4 недели назад 0

» WarCraft 3 / Мемхак - смена миникарты во время игры

вопрос, а как ты узнаешь текущее состояние этой кнопки? как я понял оно сохраняется из карты в карту
Вот это я че то не подумал
Jack-of-shadow #50 - 4 недели назад 0

» WarCraft 3 / Мемхак - смена миникарты во время игры

Bergi_Bear:
Измененная стандартная не заменялась, щас портанул текстуру от феникса и все норм. Мб сжатие какое то специальное надо