Joma, ты удаляешь героя. Наверное бага движка, многие абилки имеют скрыте баффы которые следят за юнитом, к примеру Apos possesion тоже фаталит, если каст отменить и кастер умрет и разложится.
Оно там еще делает перманентным или нет. Можешь попробовать морф медведя, в настройках морфа указываешь нормальную форму героя - которую хочешь получить (летающий), а альтернативную героя - которая у него по дефолту. Вручаешь и тут же удаляешь морф, герой превратится в летуна. Опять же проверять на смерть, перед врученим UnitAlive.
Вручение 'ANeg' и её клона не героям, абилка попытается настроить иконки для изучения но не найдет их, так как она тупо идет по смещению Адресс юнита + оффсет, по которому лежит 'Aher' способность героя (красный плюс), поэтому её нельзя вручать не героям (да близарды редиски), аналогично ведут себя книги на увеличение характеристик героя, игра падает с фаталом. Обычные предметы на + к статам, проверяют является ли владелец героем.
потому что иллюзии во первых наследуют только врожденные способности юнита а не добавленные триггерно, во вторых у иллюзий сайленс на способности накладывается, чтобы они не могли их использовать - т.к технически иллюзии это те же самые юниты, только у них особый флаг что они иллюзии и сайленс на все способности.
Да это тупо декорация, там их много видов, как и лужи и кубики воды, чтобы делать водопады, затопления низин и многое другое. В купе с блокираторами пути и смены типа тайлов, можно добится весьма сложной логики затопления и осушения ландшафта.
Ну просто накладывает сайленс на способности, так 100500 способностей делают.
Напиши свою гальванизацию в редакторе триггеров, благо способность очень простая.
Ну смотри как двигать молнии нормально, уже не раз выкладывали, можно в стркутуре пребирать циклом все молнии на карте и двигать их 1 таймером. Так же меняем плавно прозрачность и берем GetUnitImpactZ
struct LightningData
private static constant timer period = CreateTimer( )
private thistype prev
private thistype next
private lightning bolt
private unit a1
private unit a2
private real ax1
private real ay1
private real ax2
private real ay2
private real alpha
private real ticks
private real time
private boolean flag
private stub method destroy takes nothing returns nothing
call SetLightningColor( this.bolt, 0.00, 0.00, 0.00, 0.00 )
call DestroyLightning( this.bolt )
set this.a1 = null
set this.a2 = null
set this.bolt = null
set this.alpha = 0.00
set this.prev.next = this.next
set this.next.prev = this.prev
if ( thistype( 0 ).next == 0 ) then
call PauseTimer( thistype.period )
endif
call thistype.deallocate( this )
endmethod
private static method iterate takes nothing returns nothing
local thistype this = thistype( 0 ).next
loop
exitwhen ( this == 0 )
if not IsUnitDead( this.a1 ) then
set this.ax1 = GetUnitX( this.a1 )
set this.ay1 = GetUnitY( this.a1 )
if this.flag then
set this.ax1 = this.ax1 + 25.00
set this.ay1 = this.ay1 - 25.00
endif
endif
if not IsUnitDead( this.a2 ) then
set this.ax2 = GetUnitX( this.a2 )
set this.ay2 = GetUnitY( this.a2 )
endif
set TempAZ = GetLocationZ( bj_TempPoint ) + GetUnitFlyHeight( this.a1 ) + GetUnitImpactZ( this.a1 ) + 1.00
call MoveLocation( bj_TempPoint, this.ax2, this.ay2 )
set TempBZ = GetLocationZ( bj_TempPoint ) + GetUnitFlyHeight( this.a2 ) + GetUnitImpactZ( this.a2 ) + 1.00
call MoveLightningEx( this.bolt, true, this.ax1, this.ay1, TempAZ, this.ax2, this.ay2, TempBZ )
if GetLightningColorA( this.bolt ) > this.alpha then
call SetLightningColor( this.bolt, GetLightningColorR( this.bolt ), GetLightningColorG( this.bolt ), GetLightningColorB( this.bolt ), GetLightningColorA( this.bolt ) - this.alpha )
endif
set this.ticks = ( this.ticks + 0.03125 ) * 1.00
if this.ticks > this.time then
call this.destroy( )
endif
set this = this.next
endloop
endmethod
static method CreateBolt takes unit a, unit b, string CodeName, real timeout, boolean IsCaster returns thistype
local thistype this = thistype.allocate( )
set this.next = thistype( 0 )
set this.prev = thistype( 0 ).prev
set this.next.prev = this
set this.prev.next = this
set this.a1 = a
set this.a2 = b
set this.ax1 = GetUnitX( this.a1 )
set this.ay1 = GetUnitY( this.a1 )
set this.ax2 = GetUnitX( this.a2 )
set this.ay2 = GetUnitY( this.a2 )
set this.alpha = ( 1.00 / ( timeout / 0.03125 ) )
set this.ticks = 0
set this.time = timeout
set this.flag = IsCaster
call MoveLocation( bj_TempPoint, this.ax1, this.ay1 )
set TempAZ = GetLocationZ( bj_TempPoint ) + GetUnitFlyHeight( this.a1 ) + GetUnitHeight( this.a1 )
call MoveLocation( bj_TempPoint, this.ax2, this.ay2 )
set TempBZ = GetLocationZ( bj_TempPoint ) + GetUnitFlyHeight( this.a2 ) + GetUnitHeight( this.a2 )
if this.flag then
set this.ax1 = this.ax1 + 25.00
set this.ay1 = this.ay1 - 25.00
endif
set this.bolt = AddLightningEx( CodeName, true, this.ax1, this.ay1, TempAZ, this.ax2, this.ay2, TempBZ )
if ( this.prev == 0 ) then
call TimerStart( thistype.period, 0.03125, true, function thistype.iterate )
endif
return this
endmethod
endstruct
Для Impaxt X\Y\Z нужен либо мемхак либо база данных.
Потому что чтобы можно было удалить триггерно юнита или предмет из магазина, его нужно туда добавить триггерно, т.е изначально магазин должен быть пуст.
еще раз - логика работы ИИ описана в game.dll и никак её не поменять, все что можно редактировать в ИИ скриптах экономику и последовательность и состав атак, всё. Никакого микро, никаких финтов с микроконтролем для окружения врагов или пулинга нейтрального сильного крипа и прочих чудес. Точно так же с юнитами, у ИИ должны быть в доступе юниты, если чо в кампании дирижабли продаются у ИИ в ратуше, он не идите покупать рабочим или пехотинцем дирижабль - почему? Наверное не просто так.
Так что либо в коде карты сами пишем ИИ доступными способами - либо довольствуемся багами близардовского ИИ.
весь микроконтроль и правила применения дефолтных способностей описаны в Game.dll и в ии скрипте никак не управляются.
Поэтому описываем всё это дело сами...
Ну вот это башни:
if (( GetUnitCount( 'hwtw' ) <= 2 )) then
call SetBuildAll( BUILD_UNIT, 1, 'hwtw', -1 )
call SetBuildAll( BUILD_UNIT, 2, 'hwtw', -1 )
call SetBuildAll( BUILD_UNIT, 3, 'hwtw', -1 )
endif
если их меньше или равно 2, то строит 3... Но это просто не апнутые башни,разбирайся, смотри в редакторе обьектов к чему эти РО коды относятся.
Он виджет, т.е имеет запас здоровья, как и деревья (юниты). Чем больше, тем дольше его будут ломать атакой юниты. По дефолту 75 здоровья у всех предметов, у них защиты нету, 100% урона от атак получают.
Это лимит для хостинга карты в мультиплеере, тебе не дадут хостануть эту карту, а вот в уже хостанутую зайти и скачать и играть можно.
Обычно юзают спец софт или патченую game.dll в рефаунде поднимали несколько раз лимит, не слежу, какой он там, но давно больше 8 мегабайт.
» WarCraft 3 / Причины FATAL ERROR?
» WarCraft 3 / Причины FATAL ERROR?
Ред. quq_CCCP
» WarCraft 3 / Причины FATAL ERROR?
» WarCraft 3 / Есть способность Дух видимый "Aeth" влияющая на проходимость.…
» WarCraft 3 / Как сделать такие водопады на клиффах, как в картах близзов?…
» WarCraft 3 / Возможноли осуществить с помощью триггеров снабжение, смена времен года со сменой ландшафта, от которого будет зав доход, бунты
» WarCraft 3 / Гальванизация блокирует способности юнитов
» WarCraft 3 / Гальванизация блокирует способности юнитов
Напиши свою гальванизацию в редакторе триггеров, благо способность очень простая.
» WarCraft 3 / Функции варкрафта связанные с действиями над молнией, к…
» WarCraft 3 / Как триггерно убавить обзор видимости юниту
» WarCraft 3 / Почему через триггер удалить наемника из лагеря наемника, юнит…
» WarCraft 3 / MapHack Dota 1, Warcraft 3, 12.6a
» WarCraft 3 / Хочу немного отредактировать карту DOTA 6.83d но там защита
» WarCraft 3 / Хочу немного отредактировать карту DOTA 6.83d но там защита
» WarCraft 3 / Здравствуйте! Кто разбирается в МХ, скажите пожалуйста, как…
» WarCraft 3 / Здравствуйте! Кто разбирается в МХ, скажите пожалуйста, как…
» WarCraft 3 / Здравствуйте форумчане! Вопрос такой: как определить на МХ, что…
» WarCraft 3 / Можно ли как-то пофиксить фризы ИИ?Суть причины фризов ИИ…
Так что либо в коде карты сами пишем ИИ доступными способами - либо довольствуемся багами близардовского ИИ.
» WarCraft 3 / Изменение названия гандикапа (Форы) в игре.
» WarCraft 3 / Всем привет, дайте совет, ии не хочет использовать некоторые…
» WarCraft 3 / Всем привет, дайте совет, ии не хочет использовать некоторые…
Поэтому описываем всё это дело сами...
» WarCraft 3 / Подскажите как немного отредактировать фаил .AI через блокнот.…
» WarCraft 3 / Подскажите как немного отредактировать фаил .AI через блокнот.…
if (( GetUnitCount( 'hwtw' ) <= 2 )) then
call SetBuildAll( BUILD_UNIT, 1, 'hwtw', -1 )
call SetBuildAll( BUILD_UNIT, 2, 'hwtw', -1 )
call SetBuildAll( BUILD_UNIT, 3, 'hwtw', -1 )
endif
если их меньше или равно 2, то строит 3... Но это просто не апнутые башни,разбирайся, смотри в редакторе обьектов к чему эти РО коды относятся.
» WarCraft 3 / Прочность предмета
» WarCraft 3 / Лимит веса сохранения
Обычно юзают спец софт или патченую game.dll в рефаунде поднимали несколько раз лимит, не слежу, какой он там, но давно больше 8 мегабайт.