Фатал после выхода из игры на новом герое.
После, т. е. доигрывается нормально, реплей сохраняется нормально, не смертельно, но лучше бы исправить.
Герой своими способностями увеличивает атаку крипам, массово.
Но у всех точно уже есть атака, иначе сразу бы фаталило.
Архив из папки Errors приложен.
Это точно из-за атаки? И если да, то почему?
Функция на атаку пока "старая" еще, на новую поменяю позже.
После, т. е. доигрывается нормально, реплей сохраняется нормально, не смертельно, но лучше бы исправить.
Герой своими способностями увеличивает атаку крипам, массово.
Но у всех точно уже есть атака, иначе сразу бы фаталило.
Архив из папки Errors приложен.
Это точно из-за атаки? И если да, то почему?
Функция на атаку пока "старая" еще, на новую поменяю позже.
Принятый ответ
падает при чистке памяти, строки нигде не перезаписываешь из мемхака? Это точно не с цифрами работа
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
строки - это что? перезаписать мемхаком строковой параметр в РО, что ли?
Используется StringHash, но вроде без связи с мемхаком...
Это точно он, после игры с ним в англ карту был фатал после выхода из игры и после игры в русскую карту то же самое, всегда с ним фатал походу
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t2, u5, u6, u7, p, p2, elfs, crystals, heroes
local timer t2 = GetExpiredTimer()
local unit u5 = LoadUnitHandle(udg_Hash,GetHandleId(t2),2)
local unit u6
local unit u7
local location p
local location p2
local group elfs = GetUnitsInRectAll(GetPlayableMapRect())
local group crystals = GetUnitsInRectAll(GetPlayableMapRect())
local group heroes = GetUnitsInRectAll(GetPlayableMapRect())
local integer i = LoadInteger(udg_Hash, GetHandleId(t2),3)
local integer count = 0
local integer count2 = 0
local real elf_creaturetype = 0
local real crystal_might = 0
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
call SaveInteger(udg_Hash,GetHandleId(t2),3,i)
call PauseTimer(t2)
call DestroyTimer(t2)
call FlushChildHashtable(udg_Hash, GetHandleId(t2))
loop
exitwhen u6==null
call GroupRemoveUnit(heroes,u6)
if ( IsUnitType((u6), UNIT_TYPE_HERO) == true ) and IsDead (u6) == false then
set p = GetUnitLoc(u6)
set count = 0
exitwhen u7==null
call GroupRemoveUnit(crystals,u7)
set p2 = GetUnitLoc(u7)
set crystal_might = LoadReal(udg_Hash,GetHandleId(u7),StringHash("crystal_might"))
loop
exitwhen crystal_might == 0
set crystal_might = crystal_might - 1
ЭФФЕКТ И ДОБАВКА МАКС. МАНЫ ТРИЖДЫ - ЗАКРЫТО.
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\Polymorph\\PolyMorphTarget.mdl.mdx", u6, "chest"))
call UnitAddAbilityBJ('A25P', u6)
call SetUnitAbilityLevelSwapped('A25P', u6, 2)
call UnitRemoveAbilityBJ('A25P', u6)
call UnitAddAbilityBJ('A25P', u6)
call SetUnitAbilityLevelSwapped('A25P', u6, 2)
call UnitRemoveAbilityBJ('A25P', u6)
call UnitAddAbilityBJ('A25P', u6)
call SetUnitAbilityLevelSwapped('A25P', u6, 2)
call UnitRemoveAbilityBJ('A25P', u6)
ЭФФЕКТ И ДОБАВКА МАКС. МАНЫ ТРИЖДЫ - ЗАКРЫТО.
endloop
call RemoveUnit(u7)
call RemoveLocation(p2)
endif
else
endif
call GroupAddGroup( elfs, crystals )
ГРУППА КРИСТАЛЛОВ ПОЛНОСТЬЮ ОЧИЩЕНА, НУЖНО ДОБАВИТЬ В НЕЕ ВСЕХ
else
endif
ГЕРОИ БЕРУТ КРИСТАЛЛЫ - ЗАКРЫТО.
call SaveInteger(udg_Hash,GetHandleId(t2),3,i)
set u6=FirstOfGroup(elfs)
exitwhen u6==null
set elf_creaturetype = LoadReal(udg_Hash,GetHandleId(u6),StringHash("elf_creaturetype"))
call GroupRemoveUnit(elfs,u6)
set count = count + 1
else
endif
call UnitApplyTimedLifeBJ( 4.00, 'BTLF', u6 )
set crystal_might = 0
loop
exitwhen count==0
set crystal_might = crystal_might + 1
set count = count-1
endloop
call SaveReal(udg_Hash,GetHandleId(u6),StringHash("crystal_might"),crystal_might)
call DestroyGroup (crystals)
call DestroyGroup (heroes)
set t2 = null
set u5 = null
set u6 = null
set u7 = null
set p = null
set p2 = null
set elfs = null
set crystals = null
set heroes = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5
local timer t = GetExpiredTimer()
local unit u5 = LoadUnitHandle(udg_Hash,GetHandleId(t),2)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
call IssueImmediateOrderBJ( u5, "stop" )
ТУТ СТОП, Т. К. ЭТО ПОСЛЕ АВТОКАСТА НА ОСНОВЕ ХИЛКИ СТАТУИ - ЗАКРЫТО.
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
set t = null
set u5 = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, t2, u5, u6
local timer t = CreateTimer()
local timer t2 = CreateTimer()
local unit u5=GetTriggerUnit()
local unit u6
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
local integer i = 0
local real priestoftitania = 0
set priestoftitania = LoadReal(udg_Hash,GetHandleId(u5),StringHash("priestoftitania"))
call SaveReal(udg_Hash,GetHandleId(u5),StringHash("priestoftitania"),1)
call UnitApplyTimedLifeBJ( 120.00, 'BTLF', u6 )
call SaveReal(udg_Hash,GetHandleId(u6),StringHash("elf_creaturetype"),1)
ХЭШ ЭЛЬФА - ЗАКРЫТО.
call DestroyEffect(AddSpecialEffectTarget("MaroSorcerer2.mdx",u6,"chest"))
call AddUnitHPRegen (u6,10.00*GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()))
ХП РЕГ ВНОВЬ СОЗДАННОМУ ПО ЛВЛУ СКАСТОВАННОЙ АБИЛЫ - ЗАКРЫТО.
call TimerStart(t,0.19,false,function PriestOfTitania2)
call SaveUnitHandle(udg_Hash, GetHandleId(t2),2,u6)
call SaveInteger(udg_Hash, GetHandleId(t2),3,i)
call TimerStart(t2,1,true,function PriestOfTitaniaCrystals)
else
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash, GetHandleId(t))
call PauseTimer(t2)
call DestroyTimer(t2)
call FlushChildHashtable(udg_Hash, GetHandleId(t2))
endif
set t = null
set t2 = null
set u5 = null
set u6 = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5
local timer t = GetExpiredTimer()
local unit u5 = LoadUnitHandle(udg_Hash,GetHandleId(t),2)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
set t = null
set u5 = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6
local timer t = CreateTimer()
local unit u5=GetTriggerUnit()
local unit u6
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
local integer i = 0
local real elvishfighters = 0
set elvishfighters = LoadReal(udg_Hash,GetHandleId(u5),StringHash("elvishfighters"))
if ( GetSpellAbilityId() == 'A33B' ) or ( GetSpellAbilityId() == 'A33E' ) then
call SaveReal(udg_Hash,GetHandleId(u5),StringHash("elvishfighters"),1)
call SetPlayerAbilityAvailableBJ( false, 'A33H', GetOwningPlayer(u6) )
call UnitAddAbilityBJ('A33H', u6)
call UnitMakeAbilityPermanent(u6, true, 'A33H')
call UnitMakeAbilityPermanent(u6, true, 'A33G')
ДОБАВКА СПЛЕША U6 - ЗАКРЫТО.
call SaveReal(udg_Hash,GetHandleId(u6),StringHash("elf_creaturetype"),1)
ХЭШ ЭЛЬФА - ЗАКРЫТО.
call DestroyEffect(AddSpecialEffectTarget("MaroSorcerer2.mdx",u6,"chest"))
call AddUnitHPRegen (u6,10.00*GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()))
ХП РЕГ ВНОВЬ СОЗДАННОМУ ПО ЛВЛУ СКАСТОВАННОЙ АБИЛЫ - ЗАКРЫТО.
call TimerStart(t,0.15,false,function ElvishFighters2)
else
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash, GetHandleId(t))
endif
else
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash, GetHandleId(t))
endif
set t = null
set u5 = null
set u6 = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5
local timer t = GetExpiredTimer()
local unit u5 = LoadUnitHandle(udg_Hash,GetHandleId(t),2)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
set t = null
set u5 = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6, alliedcreeps
local timer t = CreateTimer()
local unit u5=GetTriggerUnit()
local unit u6
local group alliedcreeps = GetUnitsInRectAll(GetPlayableMapRect())
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
local integer i = 0
local real overrun = 0
set overrun = LoadReal(udg_Hash,GetHandleId(u5),StringHash("overrun"))
call SaveReal(udg_Hash,GetHandleId(u5),StringHash("overrun"),1)
loop
set u6=FirstOfGroup(alliedcreeps)
exitwhen u6==null
call GroupRemoveUnit(alliedcreeps,u6)
else
call DestroyEffect(AddSpecialEffectTarget("MaroSorcerer3.mdx",u6,"chest"))
call SetPlayerAbilityAvailableBJ( false, 'A33H', GetOwningPlayer(u6) )
call UnitAddAbilityBJ('A33H', u6)
call UnitMakeAbilityPermanent(u6, true, 'A33H')
call UnitMakeAbilityPermanent(u6, true, 'A33G')
ДОБАВКА СПЛЕША U6 - ЗАКРЫТО.
call SetUnitBaseDamage ( u6,(GetUnitBaseDamage(u6) + 30 ))
loop
exitwhen i >= 100
call UnitAddAbilityBJ('A25H', u6)
call SetUnitAbilityLevelSwapped('A25H', u6, 2)
call UnitRemoveAbilityBJ('A25H', u6)
set i=i+1
endloop
ПОВЫШЕНИЕ АТАКИ НА 30 И ЗДОРОВЬЯ НА 300 - ЗАКРЫТО.
set i = 0
endif
ВСЕ ДЕЙСТВИЯ С ГРУППОЙ СОЮЗНЫХ КРИПОВ - ЗАКРЫТО.
call TimerStart(t,0.15,false,function Overrun2)
else
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash, GetHandleId(t))
set t = null
set u5 = null
set u6 = null
set alliedcreeps = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5
local timer t = GetExpiredTimer()
local unit u5 = LoadUnitHandle(udg_Hash,GetHandleId(t),2)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
set t = null
set u5 = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
local timer t = CreateTimer()
local unit u5=GetSpellAbilityUnit()
local group g=CreateGroup()
local unit u7
local unit temp_unit
local real r1=999999.9
local real x
local real y
local real giantgrowth = 0
local integer i = 0
set giantgrowth = LoadReal(udg_Hash,GetHandleId(u5),StringHash("giantgrowth"))
if ( GetSpellAbilityId() == 'A33C' ) and giantgrowth == 0 then
call PlaySoundOnUnitBJ( gg_snd_MaroSorcererGiantGrowth, 100, u5 )
call SaveReal(udg_Hash,GetHandleId(u5),StringHash("giantgrowth"),1)
call GroupEnumUnitsInRect(g, GetPlayableMapRect(), null)
loop
set temp_unit=FirstOfGroup(g)
exitwhen temp_unit==null
if IsUnitAlly(temp_unit, GetOwningPlayer(u5)) and IsDead(temp_unit) == false and (not IsUnitType(temp_unit, UNIT_TYPE_ANCIENT)) and (not IsUnitType(temp_unit, UNIT_TYPE_STRUCTURE)) and (not IsUnitType(temp_unit, UNIT_TYPE_HERO)) and GetUnitAbilityLevelSwapped('Avul', temp_unit) != 1 then
set x=GetUnitX(temp_unit)-GetUnitX(u5)
set y=GetUnitY(temp_unit)-GetUnitY(u5)
if SquareRoot(x*x+y*y) < r1 then
set r1=SquareRoot(x*x+y*y)
set u7=temp_unit
endif
endif
call GroupRemoveUnit(g, temp_unit)
endloop
if u7!=null then
call DestroyEffect(AddSpecialEffectTarget("MaroSorcerer3.mdx", u7, "chest"))
ПОВЫШЕНИЕ АТАКИ НА 30 И ЗДОРОВЬЯ НА 300
call SetUnitBaseDamage ( u7,(GetUnitBaseDamage(u7) + 30 ))
loop
exitwhen i >= 100
call UnitAddAbilityBJ('A25H', u7)
call SetUnitAbilityLevelSwapped('A25H', u7, 2)
call UnitRemoveAbilityBJ('A25H', u7)
set i=i+1
endloop
ПОВЫШЕНИЕ АТАКИ НА 30 И ЗДОРОВЬЯ НА 300 - ЗАКРЫТО.
endif
call SaveUnitHandle(udg_Hash, GetHandleId(t),2,u5)
call TimerStart(t,0.15,false,function GiantGrowth2)
else
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash, GetHandleId(t))
endif
call DestroyGroup(g)
set t = null
set u5=null
set g=null
set u7=null
set temp_unit=null
endfunction
Если так, то надо пару уточнений/условий вписать, только четко правильно там, где надо...
///////
sic!!! Там вот еще что: создается очень много крипов, на каждого пишется
call SaveReal(udg_Hash,GetHandleId(u6),StringHash("elf_creaturetype"),1)
и, более того, часто запускаются ежесекундные таймеры, загружающие call SaveReal(udg_Hash,GetHandleId(u6),StringHash("elf_creaturetype"),1)
для КАЖДОГО существа раз в 5 секунд на карте вообще
Тогда мб лучше по старинке для таких часто считываемых вещей абилку "маркер сущности эльфа" вешать?
походу, не используешь, тогда не знаю. От изменения чисел такого быть не может, от переполнения хештаблиц тоже не встречал такого эффекта.
ни один другой так не делает
я попробую все-таки тут подсократить количество этого дела (уже позже) и отпишусь
потому что тут ни одной новой функции не используется, но вот все старые юзаются очень активно, похоже, дело все-таки в количестве
/////
Просто у меня вообще уже была мысль убирать все абилки-маркеры на юнитах и заменять их на записи строкового хэша
Теперь вот уже спешить не буду, пока не разберусь здесь
(маркеры - абилки фактически пустышки, нужные для отметки, что с этим юнитом что-то делается, например, он классифицируется как эльф или на нем осталось висеть столько-то секунд такого-то триггерного дебаффа).
///
Включу режим без кд и манакоста
Пикну героя, поставлю макс лвл синглплеерной командой
Каждый спелл отдельно его и только его прокастую по овердохрена раз
Буду выходить и проверять, будет фатал или нет
////
О_О так, любопытно, проверен первый спелл, были наставлены одновременно десятки пристов (в норм режиме их больше 4-7 одновременно не создается), все утонуло в лагах, т. к. там на каждого таймер периодический односекундный, но... фатала не было после 2 минут проверки и выхода из игры, а у меня была высокая уверенность, что там и будет.
///////
Ничего не понимаю. Продрочил кучу раз 4-й спелл, 100 секунд с начала игры, больше уже не смог, т. к. крипы все снесли, у них атака получилась под XXXX, а здоровье под XXXXX :D
Без лагов. Но тоже без фатала.
В 2 и 3 практически те же самые функции, только меньше...
/////////////
Уже была сыграна полная катка другим героем. Без фатала.
///
Опять катка за Мултани. После выхода из игры - фатал.
Придётся походу менять Priest of Titania на
ну мб да а мб и нет крч решим
ну и/или оптимайзнуть там код...
Отредактирован ClotPh
Прикол в том, что это предусмотрено и их в обычной игре без "втф мода" не будет стоять больше 2-3 сразу, но тем не менее... вообще еще подозреваю в том триге утечку, надо пересмотреть, т. к. лаги начинались не сразу, а после того, как наставишь двадцать, пять умрут и еще пять вылезут, что ли...
/////
///
А знаю!!! Прям ща сыграну катку за Мултани и не кастану ни одного приста. Если фатала не будет - все ясно, менять 1й скилл - вообще или программно.
////
Да, всё, без пристов фатала не было. Ну всё, значит, реворкать приста, но код оставлю, просто спрячу в комментах, если буду взамен спелл делать...