NilasAran_39, ну понятно, то есть не так чтобы сильно было мощный комп и надо... вот и... так, наверное, всегда и бывает... и не только с компами... сорри за оффтоп...
NilasAran_39, вы точно ноут от всего г**на в автозагрузке прочистили, винде убрали все финтифлюшки для красоты? Еще часть функций винды можно отключить (да, рискованно, но сильно повлияет на производительность). Мой ноут сразу после покупки работал тоже не ахти...
KingMaximax, посмотри, пожалуйста, мои ПОСЛЕДНИЕ образцы под катами, все понятно? Выполнять так сможешь?
Вместо равкодов абил AXXX, вместо равкодов даммиков nxxx. Нужные равкоды вставлю и впишу в систему самостоятельно.
P. S. Там выше код для Картуса clawbfs.ucoz.ru/forum/3-1827-1 на альфа-тест, он уже изменяется (в частности, крики, если Картусов два, только к одному герою летели, это уже исправлено), но как образцы должны быть понятны. Сможешь так делать?
Нужда в кодере. Самостоятельно уже задолбалось, потому что так никогда много героев не сделать.
Жезл нужное количество раз + триггерно эффекты и мена местами - это очевидное решение.
А попроще не придумать? Я вот думаю, нельзя ли просто дать после применения дамми-спелла с автокастом спеллбук с дефолтным mirror image, "распрятать" его, приказать скастовать, а потом сразу спрятать? По идее mirror image у героя останется, хоть и в скрытой форме и глаз его не заметит...
Тут единственный серьезный недостаток - что будет триггериться, что героем скастовано не 1 спелл, а два. Но это уж как-то можно пережить и даже прописать в подсказке, типа применение этого заклинания считается за применение двух. Зато mirror image будет "сымитирован" идеально, потому что это, собственно, он и есть.
А если в руну впихнуть mirror image? Руна, ятп, точно фейлится, т. к. способности от руны у героя у самого нет и иллюзии сразу отлетят.
/////
А, да-да. Кстати, сразу уточняю: у жезла-то надо еще будет триггерно прописать уничтожение предыдущих иллюзий с миррор имейджа, еще усложнение. Жезл - приемлемый вариант, но я как раз вот и ищу, нет ли способа получше.
Вот, короче, образцы
Мне так и с таким оформлением надо
Буду или самостоятельно постепенно втч тут, или как получится
Devastating Magic
function DevastatingMagic takes nothing returns nothing ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: p, u5, u6, enemies
local location p
local unit u5 = GetTriggerUnit()
local unit u6
local group enemies = CreateGroup()
local real damage = 0
local real cdreduct = 0 ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
УРОН
set u6=FirstOfGroup(enemies)
exitwhen u6==null
call GroupRemoveUnit(enemies,u6)
if ( GetUnitAbilityLevelSwapped('Avul', u6) != 1 ) and ( IsUnitAliveBJ(u6) == true ) and ( IsUnitEnemy(u6,GetOwningPlayer(u5))==true ) then
set damage = 70 + 80 * (GetUnitAbilityLevelSwapped ('A296', u5))
call UnitDamageTargetBJ( u5, u6, damage, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
endif
endloop
call RemoveLocation (p) УРОН - ЗАКРЫТО.
else
endif
call DestroyGroup (enemies)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: p, u5, u6, enemies
set p = null
set u5 = null
set u6 = null
set enemies = null ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
Death Screams
function DeathScreams2 takes nothing returns nothing ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6, u7, p, p2, p3, enemies
local timer t = GetExpiredTimer()
local unit u5=LoadUnitHandle(udg_Hash,GetHandleId(t),2)
local unit u6=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local unit u7=LoadUnitHandle(udg_Hash,GetHandleId(t),4)
local location p = GetUnitLoc (u6)
local location p2
local location p3
local group enemies = CreateGroup()
local integer i = LoadInteger(udg_Hash,GetHandleId(t),3)
local real damage = LoadReal(udg_Hash,GetHandleId(t),5) ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
set i = i+1
call SaveInteger (udg_Hash, GetHandleId(t),3,i)
ПЕРЕМЕЩЕНИЕ ВВЕРХ-ВНИЗ
if (i>0) and (i<13) and (u6!= null) then
call SetUnitFlyHeightBJ( u6, ( GetUnitFlyHeight(u6) + 50.00 ), 10000.00 )
else
call SetUnitFlyHeightBJ( u6, ( GetUnitFlyHeight(u6) - 50.00 ), 10000.00 )
endif ПЕРЕМЕЩЕНИЕ ВВЕРХ-ВНИЗ - ЗАКРЫТО.
ПРОЛЁТ КРИКОВ ОТ ПОГИБШЕГО К ПЕВЦУ
if (u6!=null) then
set p2 = GetUnitLoc(u5)
set p3 = PolarProjectionBJ(p, ( DistanceBetweenPoints (p, p2) / 12.50 ), AngleBetweenPoints(p, p2))
call SetUnitPositionLoc (u6, p3)
call RemoveLocation (p2)
call RemoveLocation (p3)
endif ПРОЛЁТ КРИКОВ ОТ ПОГИБШЕГО К ПЕВЦУ - ЗАКРЫТО.
if (i>24) then
set i = 0
call SaveInteger (udg_Hash, GetHandleId(t),3,i)
call RemoveUnit(u6)
ЕСЛИ ТОТ ОЖИЛ, ТО ВСЁ
if IsUnitAliveBJ(u7) == true or IsUnitDeadBJ(u7) == false or GetUnitState(u7,UNIT_STATE_LIFE)>0 then
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
else
endif
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6, u7, p, p2, p3, enemies
set t = null
set u5 = null
set u6 = null
set u7 = null
set p = null
set p2 = null
set p3 = null
set enemies = null ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
function DeathScreamsDamage takes nothing returns nothing ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6, u7, p
local timer t = CreateTimer()
local unit u5=GetTriggerUnit()
local unit u6
local unit u7=GetEventDamageSource()
local location p = GetUnitLoc(u7) ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
local real damage = 20 + 10 * ( GetUnitAbilityLevelSwapped('A297', u5))
local integer i = 0
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6, u7, p
set t = null
set u5 = null
set u6 = null
set u7 = null
set p = null ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
function DeathScreams takes nothing returns nothing ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: u5, u6, heroes, heroadded, heroaction
local unit u5 = GetTriggerUnit()
local unit u6
local group heroes = GetUnitsInRectAll(GetPlayableMapRect())
local trigger heroadded
local triggeraction heroaction ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
if ( IsUnitType(u5, UNIT_TYPE_HERO) == true ) then
set heroadded=CreateTrigger()
set heroaction=TriggerAddAction(heroadded,function DeathScreamsDamage)
loop
set u6=FirstOfGroup(heroes)
exitwhen u6==null
call GroupRemoveUnit(heroes,u6)
if ( IsUnitType(u6, UNIT_TYPE_HERO) == true ) and ( GetUnitAbilityLevelSwapped('A297', u6) >= 1 ) then
call TriggerRegisterUnitEvent(heroadded, u6, EVENT_UNIT_DAMAGED)
call UnitDamageTargetBJ(u5,u6,0.00,ATTACK_TYPE_HERO,DAMAGE_TYPE_NORMAL)
else
endif
endloop
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: u5, u6, heroes, heroadded, heroaction
set u5 = null
set u6 = null
set heroes = null
set heroadded = null
set heroaction = null ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
Dead Mana
function DeadMana takes nothing returns nothing ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5
local timer t=GetExpiredTimer()
local unit u5=LoadUnitHandle(udg_Hash,GetHandleId(t),2) ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
Если героя нет, то разрушить таймер, чтобы не крутился и не жрал ресурсы.
if (u5 == null) then
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5
set t=null
set u5=null ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
Requiem
function Requiem takes nothing returns nothing ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: u5, u6, enemyheroes, alliedheroes
local unit u5 = GetTriggerUnit()
local unit u6
local group enemyheroes = GetUnitsInRectAll(GetPlayableMapRect())
local group alliedheroes = GetUnitsInRectAll(GetPlayableMapRect())
local real enemiesfordeath = 0 ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
if ( GetSpellAbilityId() == 'A299' ) then
СПЕРВА ВСЕ С СОЮЗАМИ И СЧИТАЕМ ИХ
loop
set u6=FirstOfGroup(enemyheroes)
exitwhen u6==null
call GroupRemoveUnit(enemyheroes,u6)
if IsUnitType(u6, UNIT_TYPE_HERO) == true and IsUnitAliveBJ(u6) == true and IsUnitAlly(u6,GetOwningPlayer(u5)) == true and GetUnitStateSwap(UNIT_STATE_LIFE, u6) > 0.00 then
call DestroyEffect(AddSpecialEffectTarget("SingerOfDeath4.mdx",u6,"origin"))
set enemiesfordeath = enemiesfordeath + 1
if (u5 != u6) then
call KillUnit (u6)
else
endif
endif
endloop СПЕРВА ВСЕ С СОЮЗАМИ И СЧИТАЕМ ИХ - ЗАКРЫТО.
ТЕПЕРЬ ВСЕ С ВРАГАМИ, ПРЕРВАТЬ РАНЬШЕ, ЕСЛИ СОЮЗОВ МАЛО
loop
set u6=FirstOfGroup(alliedheroes)
exitwhen u6==null or enemiesfordeath==0
call GroupRemoveUnit(alliedheroes,u6)
if IsUnitType(u6, UNIT_TYPE_HERO) == true and IsUnitAliveBJ(u6) == true and IsUnitEnemy(u6,GetOwningPlayer(u5)) == true and GetUnitStateSwap(UNIT_STATE_LIFE, u6) > 0.00 then
call DestroyEffect(AddSpecialEffectTarget("SingerOfDeath4.mdx",u6,"origin"))
set enemiesfordeath = enemiesfordeath - 1
call KillUnit (u6)
else
endif
endloop ТЕПЕРЬ ВСЁ С ВРАГАМИ - ЗАКРЫТО.
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: u5, u6, enemyheroes, alliedheroes
set u5 = null
set u6 = null
set enemyheroes = null
set alliedheroes = null ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ledoed, лайк за старания, но мной уже выполнено 60% дела самостоятельно + включена новая глобалка, короче, так по коду пока не сработаемся, вот я доделаю, выложу демонстрационные образцы сюда мб, чтобы было всем понятно, как в моей системе код пишется, и тогда посмотрим... хотя мб посмотрю, мб куски твоего кода пригодятся
Мышкоблудка, там всё равно приказ сбиваться будет, а это главное
у Драколича самое норм решение, если оно действует (а причин не верить ему я не вижу, просто неохота ща в РО лезть)
FrigatPlay, бред.
Действия с переносимым предметом - это carried или как-то так.
А "герой манипулирует предметом" следует читать как "герой, который манипулирует предметом".
Вообще другое интересно, чувак без проблем с баблом прикалывается по варкрафту.
Что лишний раз доказывает, что варкрафт далеко не так мёртв, как многим кажется, во всяком случае, для криэйторов он до сих пор один из лучших способов самореализации.
Bornikkeny,
попробуй прямо карту взять из 128 сообщения здесь (что-то прямая ссылка не действует)
и пересохранить.
Если всё норм запускается, открывается и действует - то просто копипасти потом нужные функции с гитхаба в кастом код и юзай. Для импорта мемхака в карты - целиком кастом код и либы.
Ток это "старый" мемхак, уже "новый" есть.
» WarCraft 3 / Нексус Демонов 2.0
» WarCraft 3 / Нексус Демонов 2.0
» WarCraft 3 / Способности и алгоритмы на заказ
Вместо равкодов абил AXXX, вместо равкодов даммиков nxxx. Нужные равкоды вставлю и впишу в систему самостоятельно.
P. S. Там выше код для Картуса clawbfs.ucoz.ru/forum/3-1827-1 на альфа-тест, он уже изменяется (в частности, крики, если Картусов два, только к одному герою летели, это уже исправлено), но как образцы должны быть понятны. Сможешь так делать?
Нужда в кодере. Самостоятельно уже задолбалось, потому что так никогда много героев не сделать.
» WarCraft 3 / Типа иллюзий мастера клинка, но с автокастом.
/////
» WarCraft 3 / Способности и алгоритмы на заказ
Мне так и с таким оформлением надо
Буду или самостоятельно постепенно втч тут, или как получится
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: p, u5, u6, enemies
local location p
local unit u5 = GetTriggerUnit()
local unit u6
local group enemies = CreateGroup()
local real damage = 0
local real cdreduct = 0
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
set cdreduct = 7
else
set cdreduct = udg_deadheroes
endif
call SetAbilityCD ('A296', 1, 8 - cdreduct)
call SetAbilityCD ('A296', 2, 8 - cdreduct)
call SetAbilityCD ('A296', 3, 8 - cdreduct)
call SetAbilityCD ('A296', 4, 8 - cdreduct)
call SetAbilityCD ('A296', 5, 8 - cdreduct)
ЗАДАЁМ КД - ЗАКРЫТО.
set u6=FirstOfGroup(enemies)
exitwhen u6==null
call GroupRemoveUnit(enemies,u6)
if ( GetUnitAbilityLevelSwapped('Avul', u6) != 1 ) and ( IsUnitAliveBJ(u6) == true ) and ( IsUnitEnemy(u6,GetOwningPlayer(u5))==true ) then
set damage = 70 + 80 * (GetUnitAbilityLevelSwapped ('A296', u5))
call UnitDamageTargetBJ( u5, u6, damage, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
endif
endloop
УРОН - ЗАКРЫТО.
else
endif
set p = null
set u5 = null
set u6 = null
set enemies = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6, u7, p, p2, p3, enemies
local timer t = GetExpiredTimer()
local unit u5=LoadUnitHandle(udg_Hash,GetHandleId(t),2)
local unit u6=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local unit u7=LoadUnitHandle(udg_Hash,GetHandleId(t),4)
local location p = GetUnitLoc (u6)
local location p2
local location p3
local group enemies = CreateGroup()
local integer i = LoadInteger(udg_Hash,GetHandleId(t),3)
local real damage = LoadReal(udg_Hash,GetHandleId(t),5)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
call SaveInteger (udg_Hash, GetHandleId(t),3,i)
if (i>0) and (i<13) and (u6!= null) then
call SetUnitFlyHeightBJ( u6, ( GetUnitFlyHeight(u6) + 50.00 ), 10000.00 )
else
call SetUnitFlyHeightBJ( u6, ( GetUnitFlyHeight(u6) - 50.00 ), 10000.00 )
endif
ПЕРЕМЕЩЕНИЕ ВВЕРХ-ВНИЗ - ЗАКРЫТО.
if (u6!=null) then
set p2 = GetUnitLoc(u5)
set p3 = PolarProjectionBJ(p, ( DistanceBetweenPoints (p, p2) / 12.50 ), AngleBetweenPoints(p, p2))
call SetUnitPositionLoc (u6, p3)
call RemoveLocation (p2)
call RemoveLocation (p3)
endif
ПРОЛЁТ КРИКОВ ОТ ПОГИБШЕГО К ПЕВЦУ - ЗАКРЫТО.
call SaveInteger (udg_Hash, GetHandleId(t),3,i)
call RemoveUnit(u6)
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
else
endif
call AddSpecialEffectTargetUnitBJ( "chest", u5, "SingerOfDeath2.mdl" )
call ConditionalTriggerExecute( gg_trg_destroyspeceffect )
endif
УРОН
loop
set u6=FirstOfGroup(enemies)
exitwhen u6==null
call GroupRemoveUnit(enemies,u6)
if ( GetUnitAbilityLevelSwapped('Avul', u6) != 1 ) and ( IsUnitAliveBJ(u6) == true ) and ( IsUnitEnemy(u6,GetOwningPlayer(u5))==true ) then
call UnitDamageTargetBJ( u5, u6, damage, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
endif
endloop
УРОН - ЗАКРЫТО.
ЭФФЕКТЫ НА ПЕВЦЕ И УРОН ВРАГАМ - ЗАКРЫТО.
endif
call DestroyGroup(enemies)
set t = null
set u5 = null
set u6 = null
set u7 = null
set p = null
set p2 = null
set p3 = null
set enemies = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6, u7, p
local timer t = CreateTimer()
local unit u5=GetTriggerUnit()
local unit u6
local unit u7=GetEventDamageSource()
local location p = GetUnitLoc(u7)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
local real damage = 20 + 10 * ( GetUnitAbilityLevelSwapped('A297', u5))
local integer i = 0
call CreateNUnitsAtLocFacingLocBJ( 1, 'n393', GetOwningPlayer(u5), p, p)
set u6 = GetLastCreatedUnit()
call SaveUnitHandle(udg_Hash,GetHandleId(t),2,u5)
call SaveInteger(udg_Hash,GetHandleId(t),3,i)
call SaveUnitHandle(udg_Hash,GetHandleId(t),4,u7)
call SaveReal(udg_Hash,GetHandleId(t),5,damage)
call TimerStart(t,0.04,true,function DeathScreams2)
call RemoveLocation (p)
set t = null
set u5 = null
set u6 = null
set u7 = null
set p = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: u5, u6, heroes, heroadded, heroaction
local unit u5 = GetTriggerUnit()
local unit u6
local group heroes = GetUnitsInRectAll(GetPlayableMapRect())
local trigger heroadded
local triggeraction heroaction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
set heroaction=TriggerAddAction(heroadded,function DeathScreamsDamage)
set u6=FirstOfGroup(heroes)
exitwhen u6==null
call GroupRemoveUnit(heroes,u6)
if ( IsUnitType(u6, UNIT_TYPE_HERO) == true ) and ( GetUnitAbilityLevelSwapped('A297', u6) >= 1 ) then
call TriggerRegisterUnitEvent(heroadded, u6, EVENT_UNIT_DAMAGED)
call UnitDamageTargetBJ(u5,u6,0.00,ATTACK_TYPE_HERO,DAMAGE_TYPE_NORMAL)
else
endif
endloop
endif
call TriggerRemoveAction (heroadded, heroaction)
call DestroyTrigger (heroadded)
set u5 = null
set u6 = null
set heroes = null
set heroadded = null
set heroaction = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5
local timer t=GetExpiredTimer()
local unit u5=LoadUnitHandle(udg_Hash,GetHandleId(t),2)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
if (u5 == null) then
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call DestroyEffect(AddSpecialEffectTarget("SingerOfDeath3.mdx",u5,"chest"))
call SetUnitState(u5, UNIT_STATE_MANA, GetUnitState(u5, UNIT_STATE_MANA) + GetUnitAbilityLevelSwapped('A298',u5) + GetUnitAbilityLevelSwapped('A298',u5) * udg_deadheroes )
ДОБАВЛЯЕМ МАНУ + ЗА МЁРТВЫХ - ЗАКРЫТО
set t=null
set u5=null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: u5, u6, enemyheroes, alliedheroes
local unit u5 = GetTriggerUnit()
local unit u6
local group enemyheroes = GetUnitsInRectAll(GetPlayableMapRect())
local group alliedheroes = GetUnitsInRectAll(GetPlayableMapRect())
local real enemiesfordeath = 0
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
loop
set u6=FirstOfGroup(enemyheroes)
exitwhen u6==null
call GroupRemoveUnit(enemyheroes,u6)
if IsUnitType(u6, UNIT_TYPE_HERO) == true and IsUnitAliveBJ(u6) == true and IsUnitAlly(u6,GetOwningPlayer(u5)) == true and GetUnitStateSwap(UNIT_STATE_LIFE, u6) > 0.00 then
call DestroyEffect(AddSpecialEffectTarget("SingerOfDeath4.mdx",u6,"origin"))
set enemiesfordeath = enemiesfordeath + 1
if (u5 != u6) then
call KillUnit (u6)
else
endif
endif
endloop
СПЕРВА ВСЕ С СОЮЗАМИ И СЧИТАЕМ ИХ - ЗАКРЫТО.
loop
set u6=FirstOfGroup(alliedheroes)
exitwhen u6==null or enemiesfordeath==0
call GroupRemoveUnit(alliedheroes,u6)
if IsUnitType(u6, UNIT_TYPE_HERO) == true and IsUnitAliveBJ(u6) == true and IsUnitEnemy(u6,GetOwningPlayer(u5)) == true and GetUnitStateSwap(UNIT_STATE_LIFE, u6) > 0.00 then
call DestroyEffect(AddSpecialEffectTarget("SingerOfDeath4.mdx",u6,"origin"))
set enemiesfordeath = enemiesfordeath - 1
call KillUnit (u6)
else
endif
endloop
ТЕПЕРЬ ВСЁ С ВРАГАМИ - ЗАКРЫТО.
endif
call DestroyGroup (alliedheroes)
set u5 = null
set u6 = null
set enemyheroes = null
set alliedheroes = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
» WarCraft 3 / Помогите сделать заклинание
» WarCraft 3 / Подсветка своих функций
» WarCraft 3 / не срабатывают триггеры инициализации (или вообще триггеры)
» WarCraft 3 / Способности и алгоритмы на заказ
» WarCraft 3 / Способности и алгоритмы на заказ
Ну вот, уже не редактируется, безобразие, ладно, фиг с ним, уже просто коды готовятся...
» WarCraft 3 / Я делаю карту по типу Гладиаторы мне нужна помощь с Тригерами
» WarCraft 3 / Я делаю карту по типу Гладиаторы мне нужна помощь с Тригерами
А население растет
» WarCraft 3 / Герой который не атакует
» WarCraft 3 / Герой который не атакует
» WarCraft 3 / Скрыть иконку героя сверху или удалить с него геройность
Можно, думаю, закрыть, ответ лучше вряд ли будет
Ред. ClotPh
» WarCraft 3 / Скрыть иконку героя сверху или удалить с него геройность
» WarCraft 3 / Способы изменения скорости атаки не в процентах?
Все функции на гитхабе есть
» WarCraft 3 / Подскажите пожалуйста мгновенно используемые способности
у Драколича самое норм решение, если оно действует (а причин не верить ему я не вижу, просто неохота ща в РО лезть)
» WarCraft 3 / Подскажите пожалуйста мгновенно используемые способности
» WarCraft 3 / Скапировать вещи войско заклинания
» WarCraft 3 / Переменные, утечки, стабильность
Действия с переносимым предметом - это carried или как-то так.
А "герой манипулирует предметом" следует читать как "герой, который манипулирует предметом".
» WarCraft 3 / Конкурс карт Warcraft 3, Новости
инфа к размышлению
сорри за оффтоп
» WarCraft 3 / Конкурс карт Warcraft 3, Новости
Что лишний раз доказывает, что варкрафт далеко не так мёртв, как многим кажется, во всяком случае, для криэйторов он до сих пор один из лучших способов самореализации.
Ред. ClotPh
» WarCraft 3 / Хак на память Warcraft3
попробуй прямо карту взять из 128 сообщения здесь (что-то прямая ссылка не действует)
и пересохранить.
Если всё норм запускается, открывается и действует - то просто копипасти потом нужные функции с гитхаба в кастом код и юзай. Для импорта мемхака в карты - целиком кастом код и либы.
Ток это "старый" мемхак, уже "новый" есть.