Вы вообще о чём? Героя никуда не перебрасывает до момента окончания воскрешения.
Вот пришёл в голову более простой вариант (для интерактивной работы, с программной всё прозрачнее и там таких проблем нет):
Второй вариант. Определять текущий алтарь через выбранный пользователем (по событию "EVENT_PLAYER_HERO_REVIVE_START")
//На самом деле этот метод фильтра не нужен - без него ничего не изменится (в группе априори будет один нужный алтарь... ну не совсем, но фильтр ничего не изменит)
fucntion FindAltarCond takes nothing returns boolean
return (GetUnitTypeId(GetFilterUnit())=='t321' and IsUnitAliveBJ(GetFilterUnit()))
endfucntion
fucntion FindAltar takes player p returns Unit
local group g
local unit u
set g = CreateGroup()
call SyncSelections()
call GroupEnumUnitsSelected(g, p, Filter(function FindAltarCond))
set u = FirstOfGroup(g)
if (u != null) then
call BJDebugMsg("Reviving altar "+GetUnitName(u))
endif
call DestroyGroup(g)
set g = null
return u
endfucntion
Но.... увы... это оказалось плохой идеей - ведь герои могут стоять в очереди и к моменту очереди воскрешения очередного героя алтарь нужный скорее всего не будет выбран :-(
Так что пока остаётся первый вариант с дамми-абилкой (ниже текущая предварительная версия), да и есть проблема с событием "EVENT_PLAYER_HERO_REVIVE_CANCEL" - кажется не срабатывает при отмене воскрешения по клику на иконку исключения из очереди (текущего обрабатываемого элемента)
Сделал на одном триггере (по событию "EVENT_PLAYER_HERO_REVIVE_START") с небольшим ожиданием обработки команды
Открыть
static method FindAltar takes player p, integer state returns Unit
local integer aid = 't321'
local group g
local group g2
local unit u
local string comName
local boolean ok = false
set g2 = GetUnitsOfPlayerAndTypeId(p, aid)
set g = CreateGroup()
loop
set u = FirstOfGroup(g2)
exitwhen (u==null)
call GroupRemoveUnit(g2, u)
if (IsUnitAliveBJ(u) and IsNotBusy(u)) then //IsNotBasy - некая кастомная функция проверки пометки, что алтарь ранее уже был занят
set comName = GetLastCommand(u) //Некая кастомная функция, получающая последнюю сохранённую команду
if (comName=="roar") then
debug BJDebugMsg("FLUSH "+GetUnitName(u)
call FlushOrder(u) //Некая кастомная функция очистки последний сохранённой команды
endif
call GroupAddUnit(g, u)
endif
endloop
loop
set u = FirstOfGroup(g)
exitwhen (u==null)
call GroupRemoveUnit(g, u)
if (IsUnitAliveBJ(u) and IsNotBusy(u)) then
debug BJDebugMsg("ROAR "+GetUnitName(u))
call IssueImmediateOrder(u,"roar")
call GroupAddUnit(g2, u)
endif
endloop
call DestroyGroup(g)
call TriggerSleepAction(0.2)
loop
set u = FirstOfGroup(g2)
exitwhen (u==null)
call GroupRemoveUnit(g2, u)
if (IsUnitAliveBJ(u)) then
set comName = GetLastCommand(u) //Некая кастомная функция, получающая последнюю сохранённую команду
if (comName=="roar") then
call BJDebugMsg("ROAR COMPLETED")
call FlushOrder(u)
else
call BJDebugMsg("Reviving altar "+GetUnitName(u))
set ok = true
endif
endif
exitwhen (ok==true)
endloop
call DestroyGroup(g2)
set g = null
set g2 = null
call MarkBusy(u) //u - алтарь надо ещё пометить как теперь уже занятый
return u
endmethod
Все доп данные можно хранить в hashtable с привязкой по юниту (этот код опускаю - у меня более сложная система хранения доп данных по юниту со структурами на vJass - а в хештаблицах только привязка юнитов к индексам структур vJass)
Slonick, как написал - алатрей может быть много. Нужно достоверное определение
Darkmen500,
1. Делать триггерное воскрешение - над этим можно подумать, хотя чувствую, что очень геморно это и цель не оправдает средства - это надо делать свою абилку алтаря для каждого героя (добавляя её всем алтарям по событию "EVENT_PLAYER_HERO_REVIVABLE" и убирая по событию "EVENT_PLAYER_HERO_REVIVE_START" и возвращать по событию "EVENT_PLAYER_HERO_REVIVE_CANCEL" - но тогда придётся ещё как-то эмулировать сам процесс воскрешения - начиная от правильного определения ресурсов и времени (причём в подсказке текстом это заранее не показать) и до полосы прогресса (стандартный не сделать) и обработки отмены.
Хотя нет, события "EVENT_PLAYER_HERO_REVIVE_*" не подойдут – если эмулировать сам процесс воскрешения (их не будет), да и обрабатывать нужно именно события самой аблики (ведь именно событие абилки будет на алтаре).
Выполнить процесс воскрешение на подставном алтаре видимо тоже не получится – такой команды (и нативной функции), судя по всему, просто нет. А функция ReviveHero воскрешает немедленно!
2. Как вариант добавлять абилку при начале строительства, но с отменой и завершением удалять - вот тут не понял о чём речь. Причём здесь строительство? Герой как и алтарь могут вообще быть на карте не от строительства.
nazarpunk, "Насколько я помню, алтарю будет отдан приказ с равкодом героя" - только при найме, при воскрешении нет приказа :-( Есть события - но все он от героя, который остаётся даже лежать где пал, а не переносится к алтарю (собственно первым делом и хотелось бы сделать этот самый перенос горя к алтарю)
Вот мом размышления "на свежую голову":
Найти алтарь, выполняющий воскрешение, наверное, не большая проблема - достаточно пройтись по всем живым алтарям, программно добавить им дамми-абилку и попробовать дать ей команду - думаю, что занятый алтарь не выполнит команду - это можно отследить (но не факт, что не выполнит); останется отфильтровать только алтари, занятые процессом найма (но это как раз отслеживается по команде найма).
Проблема в том, что если будет несколько алтарей, одновременно воскрешающих героя - то как определить нужный?
Но, думаю это тоже решаемо - алтари же не начинают этот процесс одновременно - всё-равно сначала начнёт один, затем начнёт второй и т.д.
Поэтому надо отслеживать, указанным мною способом, алтарь, который только что начал воскрешение, и помечать его занятым, при следующей "команде" на воскрешение исключать его до завершения воскрешения.
Остаётся понять какого героя алтарь начал воскрешать (если мёртвых было несколько)?
Но это уже по событию "EVENT_PLAYER_HERO_REVIVE_START" определить можно (отмену тоже надо отслеживать) - собственно с него и надо начинать - сразу получаем героя, ищем занятный (но ещё не обработанный/связанный с другим героем - воскрешаемым или нанимаемым) алтарь через дамми-абилку, вуа-ля - нашли нужный алтарь - связали его с нужным героем. По событиям "EVENT_PLAYER_HERO_REVIVE_CANCEL" и "EVENT_PLAYER_HERO_REVIVE_FINISH" освобождаем связь алтаря и героя (находя её по герою).
Осталось проверить сработает ли приказ дамми-абилки на занятом воскрешением алтаре - какую лучше абилку для этого взять, посоветуете?
Ну и система обработки событий сразу двух триггеров параллельно выходит не очень простая (события от героя и от дамми-аблики, что нужно совместить с одним набором данных)
У меня тоже не работает. Никаких русских букв в путях нет
D:\W3\Maps\(2)OgreMound.w3x
D:\W3\Maps\WE\Objects\war3map.w3u (тут и другие файлы)
D:\Games\Jass New Gen Pack Rebuild\NewGen WE.exe
D:\Games\WarCraft3\Warcraft III\World Editor.exe
Сначала был какой-то визуальный процесс - что-то обрабатывалось, но ничего не происходило
А теперь вообще ноль реакции на эти команды!
Редактор и ОС перезагружал - не помогает!
Экспорт в файлы в принципе работает - файлы создаются (но при экспорте происходит ошибка - что с ней делать не понятно - скриншот ошибки прилагаю)
nazarpunk,
М-да, вот слепой - не увидел сам (да и никто не увидел - хотя всё в тесте сабжа так указано)- а ведь верно - всё дело было в этом долбанном nohing - в упор не увидел - а ошибка то прям в статье на xgm - поправил и заработало - итоговый jass прилагаю
сам код триггера ниже
function Trig_Library_Actions takes nothing returns nothing
endfunction
//===========================================================================
function InitTrig_Library takes nothing returns nothing
set gg_trg_Library = CreateTrigger( )
call TriggerAddAction( gg_trg_Library, function Trig_Library_Actions )
endfunction
library NAME initializer Init
globals
public real X
endglobals
private function Init takes nothing returns nothing
endfunction
endlibrary
я так полагаю. что от function InitTrig_Library takes nothing returns nothing сейчас избавиться нельзя - ранее у меня в триггерах (что библиотеки) не было вроде таких обязаловок?
Прилагаю файлы (карта и 2 jass файла - тот что "clean" без library, и три скриншота).
Впрочем тут и "без бутылки ясно", что vJass не отработал, хотя JassHelper включён а vJass синтаксис не выключен
nazarpunk,
Конечно vJass\Enable JassHelper включён, я достаточно продвинутый, просто давно не использовал Jass New Gen Pack - раньше то активно использовал и vJass и cJass - подозреваю что проблема где-то более глобальная - может что-то с ОС WIndows - хочу сейчас попробовать на виртуалке поднять старую ОС Windows 7 и на ней попробовать (ранее то я на ней разрабатывал на JASS - хоть и было это почти 10 лет назад)
Код, тут в постах, я заключал в блоки "((код .... ))" - что нет так? Или вы про спойлеры ">> ... <<"?
Поставь актуальную сборку JNGP, удали после установки папку AdicHelper. Ну и переустанови начисто лицензионный 1.27а.
Сделал всё что сказали - не помогло :-(
Тестирую на пустой карте. Вот такой вот триггер с именем Library
function Trig_Library_Actions takes nothing returns nothing
endfunction
//===========================================================================
function InitTrig_Library takes nothing returns nothing
set gg_trg_Library = CreateTrigger( )
call TriggerAddAction( gg_trg_Library, function Trig_Library_Actions )
endfunction
library NAME initializer Init
globals
public real X
endglobals
private function Init takes nothing returns nohing
endfunction
endlibrary
Приводит к тому, что карта не стартует
В строке
function NAME__Init takes nothing returns nohing
ошибка: Undefined type nothing
и затем в строке ниже: Missing return
globals
//globals from NAME:
constant boolean LIBRARY_NAME=true
real NAME_X
//endglobals from NAME
// Generated
trigger gg_trg_Library= null
trigger l__library_init
//JASSHelper struct globals:
endglobals
//library NAME:
function NAME__Init takes nothing returns nohing
endfunction
//library NAME ends
Плюсую, воина может возьму себе на замену обычного вровского скелета - у меня как раз он производится на базе ;) а обыцчный останется для подымаемых трупов
вот только с тим колором вопрос решить надо
Распределить все профессии по "сторонам силы", а именно на "Тёмных" и "Светлых" (при желании - выделить и "Нейтральных" атеистов), при этом это не разделяет персонажа на злого/доброго, и сделать так, чтобы был баланс противоположностей; можно так же отделить (классифицировать по группам) чистых воинов от чистых магов, а так же выделить средний класс - типа ведьмаков - воинов, практикующих магию, и сделать их не такими сильными и выносливыми как воины, но и не сильными магами, способными одеваться и как воин и как маг; неплохо бы ещё разнести персонажей по классам живые организмы, нежить и демоны, духи-ангелы, "механические" неживые субстанции (например каменные исполины), и сделать некоторые способности со специфическими бонусами при применении к определённым классам, или наоборот - уменьшать или вовсе исключать эффект от применения (это касается не только героев но и вызываемых существ и крипов); сделать доп. изменяющееся состояние кармы - злой/добрый/циник - переменная величина, меняющаяся во время игры от поступков (независимо от класса) и дающая доп плюсы/минусы при взаимодействиях с другими персонажами (эти бонусы уже могут зависеть не только от стороны величины кармы, но и от класса; например светлый паладин и рыцарь тьмы могут получить разные бонусы если будут с доброй кармой, при этом этм бонусы так же могут быть различны при взаимодействии с другим персонажем с ткаой же или противоположной кармой).
Отделить Убийцу от Охотника (как две различные противоположности)
Финт убийцы - предлагаю чуть модернизировать: в момент применения убийца создаёт свою иллюзию (незаметно визуально) на месте своей последней позиции (не более 1 сек жизни), а сам, переместившись за спину врага, становится невидимым до атаки или не более 1 сек - будет очень круто - вражеская цель не сразу среагирует на переместившегося убицу, будучи думать, что он ещё перед ней, а он уже будет за спиной.
Вампирические способности смертельный укус и вампиризм - как мне кажется, одновременно это слишком круто.
Волк и вампир обычно не совместимы друг с другом -волк - оборотень - всегда был врагом вампиров - летучих мышей.
Паладин - способности ветки света - не слишком ли много видов лечения на одного персонажа.
Что там с печатями паладина - как они действуют, почему их несколько?
И что там с несколькими аурами паладина - это как?
Ангел хранитель паладина - как мне кажется, лучше привязывать ангела только к одной цели до её смерти (а вмести с ней исчезает и ангел) на опр. время, без всяких прыжков по целям.
Жрец и лечение - целитель/сфинкс (наверное под сфинксом именуется стандартная обсидиановая статуя) - это два разных заклинания по способу действия. Вы ещё выбираете? Из личного опыта не рекомендую целилку обсидианки - не эффективна и не очень хорошо работает, хотя если всё сделать самостоятельно на тригерах - может выйти толк).
Опять таки слишком много лечения у жреца.
Что там с использованием креста перерождения у жрецов - как планируется этот процесс - Вы имеете в виду выборочное воскрешение?
Кара небесная - потенциально читерская способность серафима.
Зловоние и скелеты - по моему мнени - вещи не совместимые - у скелетов просто нечему разлагаться, то же про некроз - у костяных клеток такого эффекта нет; как и взрывы скелетов - нечему взрываться, конечно кости - это осколочная начинка - но ни запала, ни энергетической "батареи" для взрыва у них нет. Может лучше тогда не скелетов подымать, а зомби - да и не так "замылено" для некромантов это будет, как скелеты. Сметельный союз для скелетов тоже не очень логичен - у них уже нет остатков жизненной энергии - подняты они исключительно за счет магической энергии, но это не энергия жизни.
Костяная броня у некроманта - бред какой-то
Что такое stun-lightning?
Стихи воздуха друида - что очень запутано со смерчем и вихрями - нужно бы пояснить зависимости, да и как-то всё уж очень однотипно
Горящий след - что там происходит с дорожкой из пламени, остающейся в следах пиромана и почему только если здоровье ниже 30%? Может лучше превратить её в переключатель, совместив с жаром преисподней?
Гидра пироманта - идея с гидрой не очень нравится - да и гидра - это водяное существо. Предлагаю при применении заклинания порождать огненный вихрь (дух), который будет одноразово атаковать применившего заклинание врага (можно сделать как активку/автокаст/так и пассивку)
Колдун и Мир духов / Освобожденпе душ - быстрое накопление душ убиенных врагов - это врят ли получится (разве что около героя не идёт крутой замес из бстродохнущих тварей). Говорю по своему опыту, т.к. сам имею подобную абилку у одного из своих героев (но у меня накопление душ идёт постоянно, в качестве пассивки - обычно более 20-30 вообще не накапливается за всю игру, если их конечно иногда всё же тратить; так ещё и пришлось сделать, что вызванные но не уничтоженные души поступают обратно в копилку, если хозяин рядом; я Вам рекомендую такой же подход).
Что там с призванниками Колдуна - почему несколько разных - хочется пояснений?
Предсмертный вопль - идея интересная, но, как мне кажется, не удачная - тут конечно тестить нужно, да и сделать такое будет несколько труднова-то
Чесотка - самому интересно что это такое за абилка ;) Неприятная, наверное
И что за массовые корни при параличе?
Что там с тотемами шамана - всё запутано - хочется пояснений?
Зелье невидимости как пассивка и с зависимостью от здоровья - по-моему это полный бред
Трупы и трупный яд для знахаря - не самые подходящие способности - хотя если сделать два разных героя тёмного и светлого...
JaBeN_Симфер, Просто очень любопытно - неужели проект за 2.5 года не продвинулся и на 0.01 эээ %
Какое же должно быть продвижение, чтобы достичь версии.... ну... хотя бы 0.80 ;) т.е. в 10 раз больший номер!
хм... 2.5 года назад версия было 0.08 - и сейчас версия 0.08 (буковки только в конце добавились) - а продвижение - колоссальное, а номерочек версии очень скромненький - может номер версии пора тоже чуть поднять. Всё равно пока не 1.0 и до единицы ещё очень много чисел ;)
или я ошибся с тем, что версия 0.08 была уже 2.5 года назад
Супер! Уже более двух лет я вынашиваю планы по созданию подобного мода, очень сильно похожего по своей концепции к данному. Структура геймплея уже очень хорошо проработана. Но... реализация была лишь пилотная - не дальше альфа версии. Нет времени заниматься. Тем более что у меня в разработке есть два других проекта, два очень давних долгостроя другого жанра - и они съедают всё свободное время. Я рад что кто-то нашёл силы и сделал то, о чём я только грезил ;) Респект автору!
Сейчас добавится требование, чтобы ещё и корпус юнита частично был повёрнут в сторону атаки - и всё получится "башенная" модель (с отдельно вращающейся башней атаки) и задача станет совсем нетривиальной. Хотя, вот есть Древа у ночных эльфов - так у них спец абилка есть для поворота "башни" (но сама по себе она неработает - тут всё
... тут всё-таки анимации нужно покручивать.
Steal nerves, О да, действительно всё сложно. И тут даже уже дело не кривых функциях стандартного Blight API (с некоторой погрешностью им всё же можно пользоваться, наводя поручу "точечно" небольшими радиусами и оптимизируя на больших площадях непрерывной порчи) и, даже не в сложности математического аппарата (да не простой, но всё же это лишь 2D плоскость - геометрия здесь не шибко сложная - можно всё просчитать), а сложность в том, что для такой схемы, как у вас, требуется достаточно гибкая система хранения параметров порчи (хранить её только на карте уже будет недостаточно). ИМХО тут без подключения своих native функций уже будет очень сложно обойтись. А в этих native придётся строить свои структуры хранения (лучше в виде матриц или графических канвасов) и размещать ресурсоёмкие расчеты порчи. Как-то так.
Steal nerves, используй функцию native SetBlight takes player whichPlayer, real x, real y, real radius, boolean addBlight returns nothing для постепенного расширения радиусов.
Как написано в статье - она работает более менее хорошо, особенно для больших радиусов. Использовать абилку статического наведения порчи, учитывая желания иметь варды (интересно, что за слово такое), снимающие порчу, не рекомендую, т.к. порча от этих абилок (на юнитах) не рассеивается, пока действуют эти абилки.
С другой стороны, у вас, явно должно быть посложнее - а именно, если рассеяние порчи сильно и неравномерно углубилось в распространённую порчу, то должен быть восстановлен не весь текущий радиус порчи, а постепенно порча должна как бы затягиваться изнутри к внешней границе.
Верно и обратное - если здание, распространившее порчу уничтожено - то порча должна постепенно уменьшаться в радиусе распространения (как у Зергов в SC).
Поэтому я написал выше, о том, что неплохо бы иметь более расширенную библиотеку по работе с порчей, раз автор затронул эту тему.
Отредактирован Darklight
» WarCraft 3 / Как определить алтарь, который воскрешает героя
Вот пришёл в голову более простой вариант (для интерактивной работы, с программной всё прозрачнее и там таких проблем нет):
Второй вариант. Определять текущий алтарь через выбранный пользователем (по событию "EVENT_PLAYER_HERO_REVIVE_START")
Сделал на одном триггере (по событию "EVENT_PLAYER_HERO_REVIVE_START") с небольшим ожиданием обработки команды
Отредактирован Darklight
» WarCraft 3 / Как определить алтарь, который воскрешает героя
1. Делать триггерное воскрешение - над этим можно подумать, хотя чувствую, что очень геморно это и цель не оправдает средства - это надо делать свою абилку алтаря для каждого героя (добавляя её всем алтарям по событию "EVENT_PLAYER_HERO_REVIVABLE" и убирая по событию "EVENT_PLAYER_HERO_REVIVE_START" и возвращать по событию "EVENT_PLAYER_HERO_REVIVE_CANCEL" - но тогда придётся ещё как-то эмулировать сам процесс воскрешения - начиная от правильного определения ресурсов и времени (причём в подсказке текстом это заранее не показать) и до полосы прогресса (стандартный не сделать) и обработки отмены.
Хотя нет, события "EVENT_PLAYER_HERO_REVIVE_*" не подойдут – если эмулировать сам процесс воскрешения (их не будет), да и обрабатывать нужно именно события самой аблики (ведь именно событие абилки будет на алтаре).
Выполнить процесс воскрешение на подставном алтаре видимо тоже не получится – такой команды (и нативной функции), судя по всему, просто нет. А функция ReviveHero воскрешает немедленно!
Найти алтарь, выполняющий воскрешение, наверное, не большая проблема - достаточно пройтись по всем живым алтарям, программно добавить им дамми-абилку и попробовать дать ей команду - думаю, что занятый алтарь не выполнит команду - это можно отследить (но не факт, что не выполнит); останется отфильтровать только алтари, занятые процессом найма (но это как раз отслеживается по команде найма).
Но, думаю это тоже решаемо - алтари же не начинают этот процесс одновременно - всё-равно сначала начнёт один, затем начнёт второй и т.д.
Поэтому надо отслеживать, указанным мною способом, алтарь, который только что начал воскрешение, и помечать его занятым, при следующей "команде" на воскрешение исключать его до завершения воскрешения.
Но это уже по событию "EVENT_PLAYER_HERO_REVIVE_START" определить можно (отмену тоже надо отслеживать) - собственно с него и надо начинать - сразу получаем героя, ищем занятный (но ещё не обработанный/связанный с другим героем - воскрешаемым или нанимаемым) алтарь через дамми-абилку, вуа-ля - нашли нужный алтарь - связали его с нужным героем. По событиям "EVENT_PLAYER_HERO_REVIVE_CANCEL" и "EVENT_PLAYER_HERO_REVIVE_FINISH" освобождаем связь алтаря и героя (находя её по герою).
Осталось проверить сработает ли приказ дамми-абилки на занятом воскрешением алтаре - какую лучше абилку для этого взять, посоветуете?
» WarCraft 3 / Не работает вкладка extensions в jass new gen pack
D:\W3\Maps\(2)OgreMound.w3x
D:\W3\Maps\WE\Objects\war3map.w3u (тут и другие файлы)
D:\Games\Jass New Gen Pack Rebuild\NewGen WE.exe
D:\Games\WarCraft3\Warcraft III\World Editor.exe
Сначала был какой-то визуальный процесс - что-то обрабатывалось, но ничего не происходило
А теперь вообще ноль реакции на эти команды!
Редактор и ОС перезагружал - не помогает!
Отредактирован Darklight
» WarCraft 3 / Не работает vJass и cJass в Warcatf 3 Jass New Gen Pack
М-да, вот слепой - не увидел сам (да и никто не увидел - хотя всё в тесте сабжа так указано)- а ведь верно - всё дело было в этом долбанном nohing - в упор не увидел - а ошибка то прям в статье на xgm - поправил и заработало - итоговый jass прилагаю
сам код триггера ниже
» WarCraft 3 / Не работает vJass и cJass в Warcatf 3 Jass New Gen Pack
Впрочем тут и "без бутылки ясно", что vJass не отработал, хотя JassHelper включён а vJass синтаксис не выключен
» WarCraft 3 / Не работает vJass и cJass в Warcatf 3 Jass New Gen Pack
Конечно vJass\Enable JassHelper включён, я достаточно продвинутый, просто давно не использовал Jass New Gen Pack - раньше то активно использовал и vJass и cJass - подозреваю что проблема где-то более глобальная - может что-то с ОС WIndows - хочу сейчас попробовать на виртуалке поднять старую ОС Windows 7 и на ней попробовать (ранее то я на ней разрабатывал на JASS - хоть и было это почти 10 лет назад)
Отредактирован Darklight
» WarCraft 3 / Не работает vJass и cJass в Warcatf 3 Jass New Gen Pack
function NAME__Init takes nothing returns nohing
ошибка: Undefined type nothing
и затем в строке ниже: Missing return
» WarCraft 3 / Не работает vJass и cJass в Warcatf 3 Jass New Gen Pack
» Война в Школе РПГ / Главная страница
» WarCraft 3 / Иконки умений с улучшениями
» Модели из World Of WarCraft / Скелеты
вот только с тим колором вопрос решить надо
» JaBeN's Project / Классификация героев
» JaBeN's Project / Скачать последнюю версию
Какое же должно быть продвижение, чтобы достичь версии.... ну... хотя бы 0.80 ;) т.е. в 10 раз больший номер!
» JaBeN's Project / Скачать последнюю версию
или я ошибся с тем, что версия 0.08 была уже 2.5 года назад
» JaBeN's Project / Главная страница
» WarCraft 3 / Система отлова нанесённого урона
ведь реально больше есть потребность не просто зарегистрировать получения урона, но и определить:
» Ретро-игры / Castle Wolfenstein
» WarCraft 3 / Юнит атакует в движении...
... тут всё-таки анимации нужно покручивать.
» WarCraft 3 / Исследование порчи (Blight)
» PsiLab / RtC. Первые шаги
» В гостях у Эльрата / N'Y 2013 Naga Model Contest
А так - ОЧЕНЬ НЕПЛОХО!
» WarCraft 3 / N'Y 2013 Naga Model Contest: участник Эльрат, модель Нага-искоренитель
» WarCraft 3 / Исследование порчи (Blight)
Как написано в статье - она работает более менее хорошо, особенно для больших радиусов. Использовать абилку статического наведения порчи, учитывая желания иметь варды (интересно, что за слово такое), снимающие порчу, не рекомендую, т.к. порча от этих абилок (на юнитах) не рассеивается, пока действуют эти абилки.
С другой стороны, у вас, явно должно быть посложнее - а именно, если рассеяние порчи сильно и неравномерно углубилось в распространённую порчу, то должен быть восстановлен не весь текущий радиус порчи, а постепенно порча должна как бы затягиваться изнутри к внешней границе.
Верно и обратное - если здание, распространившее порчу уничтожено - то порча должна постепенно уменьшаться в радиусе распространения (как у Зергов в SC).
Поэтому я написал выше, о том, что неплохо бы иметь более расширенную библиотеку по работе с порчей, раз автор затронул эту тему.
» WarCraft 3 / Исследование порчи (Blight)
» WarCraft II: The Rebirth / Скриншоты проекта (09.01.13)
А так - респект!