Потому что ты не понимаешь как работает сфера, ты пытаешься скрыть блин иконку самой сферы, у которой иконки нету в природе... Ты видишь иконку способности которую ты запихал в сферу, и она вручается именно движком игры юниту и подвергается сайленсу чтобы не работала сама по себе, абилка сферы же делает принудительный каст (его и руны используют).
В целом очень хреновый кастыль, что мешает дамми каст или каст руной сделать?
WilliamBz, ну так это писание своего мили ии, так или иначе. К слову всё микро, применение спеллов раелизованно в движке игры, поэтому с кастом героями поосторожнее.
К слову можно ИИ написать и в обычном редакторе триггеров, но это муторно да и самому микро реализовать не так уж и просто.
В скрипте четко прописано какого героя брать и как его качать, поэтому подмена в процессе игры всё ломает. Стандартный ии разыгрывает только заранее заготовленные шаблоны, которые определяются рандомом при старте и в процессе игры не меняются.
Придется писать ИИ ручками с нуля.
Разрушаемый обьект - то что имеет хп и может быть разрушено, является родителем для всех остальных типов с хп.
К этому типу обьектов относятся деревья, ворота, юниты, предметы.
Просто 'h003' пиши, ибо у него ID - 'h003', ро код юнита это на самом деле целое число, и всегда из 4х символов ASC2, через двоеточие указана основа, её писать ненужно.
GetUnitOfTypeIdAll('h003')
Давно замечал, пропажу абилок. Оно так же падает если у вас описание чуть длинее, или какие то символы непонравятся.
Карту из слк в обж оно не всегда корректно преобразует, поэтому не надейтесь на софт, всё тщательно проверяйте. К слову багами грешат все слк оптимизаторы\деоптимизаторы...
Канал, время подготовки 1 сек, если каст закончен создает N х число дамми юнитов и вручает им стаю повелителя ужаса и приказывает кинуть, в точку в радиусе, вычесленную по формуле 360 деленное на число душ, т.е по кругу, Так же ищет всех юнитов в радиусе 1000 и кидает на низ увечье некроманта, как дебафф замедления.
function RequiemFilter takes nothing returns boolean
set bj_lastFilterUnit = GetFilterUnit( )
return IsUnitEnemy( bj_lastFilterUnit, bj_groupEnumOwningPlayer )and not( IsUnitDead( bj_lastFilterUnit )or IsUnitType( bj_lastFilterUnit, UNIT_TYPE_STRUCTURE )or IsUnitWard( bj_lastFilterUnit )or IsUnitInGroup( bj_lastFilterUnit, LoadGroupHandle( HashData, GetHandleId( GetExpiredTimer( ) ), 0 ) )or GetUnitAbilityLevel( bj_lastFilterUnit, 'A04R' ) > 0 )
endfunction
function Timer_SoulCrippile_Expires takes nothing returns nothing
local timer t = GetExpiredTimer( )
local integer id = GetHandleId( t )
local group grp = LoadGroupHandle( HashData, id, 0 )
local player pl = LoadPlayerHandle( HashData, id, 1 )
local real cx = LoadReal( HashData, id, 2 )
local real cy = LoadReal( HashData, id, 3 )
local real rad = LoadReal( HashData, id, 4 )
local integer level = LoadInteger( HashData, id, 5 )
local unit enemy
if rad > 1024.00 then
call ReleaseTimer( t )
call FlushChildHashtable( HashData, id )
call NSI( grp )
call DestroyTimer( t )
else
set rad = rad + 32.00
set bj_groupEnumOwningPlayer = pl
call GroupClear( bj_TempGroup )
call GroupEnumUnitsInRange( bj_TempGroup, cx, cy, rad, Condition( function RequiemFilter ) )
call GroupAddGroup( bj_TempGroup, grp )
loop
set enemy = FirstOfGroup( bj_TempGroup )
exitwhen( enemy == null )
call GroupRemoveUnit( bj_TempGroup, enemy )
set bj_lastCreatedUnit = CreateUnit( GetOwningPlayer( enemy ), DUMMY, GetUnitX( enemy ), GetUnitY( enemy ), GetUnitFacing( enemy ) )
call SetUnitPathing( bj_lastCreatedUnit, false )
call UnitApplyTimedLife( bj_lastCreatedUnit, 'BTLF', 3.00 )
call SetUnitX( bj_lastCreatedUnit, GetUnitX( enemy ) )
call SetUnitY( bj_lastCreatedUnit, GetUnitY( enemy ) )
call UnitAddAbility( bj_lastCreatedUnit, 'A0HH' )
call SetUnitAbilityLevel( bj_lastCreatedUnit, 'A0HH', level )
call UnitShareVision( enemy, pl, true )
call IssueTargetOrder( bj_lastCreatedUnit, "cripple", enemy )
call UnitShareVision( enemy, pl, false )
endloop
set enemy = null
call SaveReal( HashData, id, 4, rad )
endif
set grp = null
set t = null
endfunction
function DarkSouls takes unit fiend, integer soulcount returns boolean
local real cx = GetUnitX( fiend )
local real cy = GetUnitY( fiend )
local player pl = GetOwningPlayer( fiend )
local real facing
local real dx
local real dy
local integer lines = 0
local integer nIndex = 1
local integer level = GetUnitAbilityLevel( fiend, 'A29J' )
local timer t
if soulcount < 1 or level == 0 then
return false
endif
set lines = IMaxBJ( R2I( soulcount / 2 ), 1 )
loop
exitwhen nIndex > lines
set facing = ( I2R( nIndex ) * ( 360.00 / lines ) )
set bj_lastCreatedUnit = CreateUnit( pl, DUMMY, cx, cy, facing )
set facing = facing * bj_DEGTORAD
set dx = cx + 64.00 * Cos( facing )
set dy = cy + 64.00 * Sin( facing )
call SetUnitPathing( bj_lastCreatedUnit, false )
call SetUnitX( bj_lastCreatedUnit, cx )
call SetUnitY( bj_lastCreatedUnit, cy )
call UnitApplyTimedLife( bj_lastCreatedUnit, 'BTLF', 2.00 )
call UnitAddAbility( bj_lastCreatedUnit, 'A0HG' )
call SetUnitAbilityLevel( bj_lastCreatedUnit, 'A0HG', level )
if not IssuePointOrder( bj_lastCreatedUnit, "carrionswarm", dx, dy ) then
call IssuePointOrder( bj_lastCreatedUnit, "carrionswarm", cx + 256.00 * Cos( facing ), cy + 256.00 * Sin( facing ) )
endif
set nIndex = nIndex + 1
endloop
set t = NewTimer( )
set nIndex = GetHandleId( t )
call SaveGroupHandle( HashData, nIndex, 0, NTI( ) )
call SavePlayerHandle( HashData, nIndex, 1, pl )
call SaveReal( HashData, nIndex, 2, cx )
call SaveReal( HashData, nIndex, 3, cy )
call SaveReal( HashData, nIndex, 4, 64.00 )
call SaveInteger( HashData, nIndex, 5, level )
call TimerStart( t, 0.03125, true, function Timer_SoulCrippile_Expires )
set t = null
return true
endfunction
ScorpioT1000, chuwi 10 pro котрый был куплен на али лет 10 назад, на атоме сходу был с вин 10 и андройдом, на котором работало) Ну учитывая что проц там был не топовый и в некоторых смартфонах были и покруче, думаю там бы 10 стартанула без проблем с варкравтами, думами и еще кучей игр из этой нулевых. Да уровень был бы как на дешовеньком ноуте, процик то по производительности как при, от тех же интел.
Баян, на intel atom была еще лет 10 назад поиграть на смартфоне или планшете в варкравт 3, оригинальный.
Потом RTS на мобильные устройства без физической клавиатуры - уже бред, ну и добавим всякие библиотеки. Ну и в теории эмулировать win xp для современных телефончиков не проблема, учитывая что те же игровые консоли эмулируются очень давно.
» WarCraft 3 / В какие моменты имя функции конвертируется в число?
» WarCraft 3 / Пассивные способности через сферы
В целом очень хреновый кастыль, что мешает дамми каст или каст руной сделать?
» WarCraft 3 / Возможно ли получить область триггера? - [Jass]
» WarCraft 3 / Возможно ли получить область триггера? - [Jass]
» WarCraft 3 / Способность "сторожевая сова"
» WarCraft 3 / Почему не работает локальный триггер?
Ред. quq_CCCP
» WarCraft 3 / Как грамотно отредактировать ИИ скрипт, чтобы он выбирал кастомного героя, который не всегда может быть доступен
К слову можно ИИ написать и в обычном редакторе триггеров, но это муторно да и самому микро реализовать не так уж и просто.
» WarCraft 3 / Как грамотно отредактировать ИИ скрипт, чтобы он выбирал кастомного героя, который не всегда может быть доступен
Придется писать ИИ ручками с нуля.
» WarCraft 3 / Респавн мобов
» WarCraft 3 / Помогите снять защиту с карты!
» WarCraft 3 / помогите с war3map.shd
» WarCraft 3 / Независимый художник показывает свой вариант HD-ремастера классических моделей
» WarCraft 3 / помогите с war3map.shd
» WarCraft 3 / Функция RemoveItem() не удаляет предмет
» WarCraft 3 / Чем является Widget в варкрафте?
К этому типу обьектов относятся деревья, ворота, юниты, предметы.
» WarCraft 3 / Нормальная ли система применения способностей? - [Jass]
» WarCraft 3 / Почему программа отказывается принимать существование этого типа юнитов?
GetUnitOfTypeIdAll('h003')
» WarCraft 3 / Как сделать MUI через глобалки? - [Jass]
» WarCraft 3 / World editor
» WarCraft 3 / Лидерборд
» WarCraft 3 / SLK оптимизация при помощи w3x2lni
Карту из слк в обж оно не всегда корректно преобразует, поэтому не надейтесь на софт, всё тщательно проверяйте. К слову багами грешат все слк оптимизаторы\деоптимизаторы...
» WarCraft 3 / Анимация юнита при нажатии способности
» WarCraft 3 / Событие пинга на карте
» WarCraft 3 / Warcraft III портировали на Android
» WarCraft 3 / Warcraft III портировали на Android
Потом RTS на мобильные устройства без физической клавиатуры - уже бред, ну и добавим всякие библиотеки. Ну и в теории эмулировать win xp для современных телефончиков не проблема, учитывая что те же игровые консоли эмулируются очень давно.