Продолжение xgm.guru/p/100/208276
Экспериментальным путём удалось выяснить, что фатал из-за переполнения памяти после выхода из игры вызывает заклинание Priest of Titania.
В крайнем случае заменю его на другое, но, может, всё-таки кто отыщет возможную причину?
function PriestOfTitaniaCrystals takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: 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
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
set i = i+1
call SaveInteger(udg_Hash,GetHandleId(t2),3,i)
if IsDead(u5) == true or u5 == null then
call PauseTimer(t2)
call DestroyTimer(t2)
call FlushChildHashtable(udg_Hash, GetHandleId(t2))
else
ГЕРОИ БЕРУТ КРИСТАЛЛЫ...
loop
set u6=FirstOfGroup(heroes)
exitwhen u6==null
call GroupRemoveUnit(heroes,u6)
if ( IsUnitType((u6), UNIT_TYPE_HERO) == true ) and IsDead (u6) == false then
set p = GetUnitLoc(u6)
set count2 = CountUnitsInGroup(crystals)
set count = 0
ТУТ ПОД ПЕРВЫМ УСЛОВИЕМ УЖЕ ЦИКЛ ДЛЯ КРИСТАЛЛОВ, СВЕРХУ НАМ НУЖНО ТОЛЬКО U6 И P...
loop
set u7=FirstOfGroup(crystals)
exitwhen u7==null
call GroupRemoveUnit(crystals,u7)
if ( GetUnitTypeId(u7) == 'n416' ) and IsDead(u7) == false then
set p2 = GetUnitLoc(u7)
if DistanceBetweenPoints (p, p2) < 120 then
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.&#8203;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
endloop
ТУТ ПJД ПЕРВЫМ УСЛОВИЕМ УЖЕ ЦИКЛ ДЛЯ КРИСТАЛЛОВ - ЗАКРЫТО.
ГРУППА КРИСТАЛЛОВ ПОЛНОСТЬЮ ОЧИЩЕНА, НУЖНО ДОБАВИТЬ В НЕЕ ВСЕХ
call GroupAddGroup( elfs, crystals )
ГРУППА КРИСТАЛЛОВ ПОЛНОСТЬЮ ОЧИЩЕНА, НУЖНО ДОБАВИТЬ В НЕЕ ВСЕХ
call RemoveLocation(p)
else
endif
endloop
ГЕРОИ БЕРУТ КРИСТАЛЛЫ - ЗАКРЫТО.
ЖРЕЦ СПАВНИТ КРИСТАЛЛ МОЩЬЮ ПО КОЛ-ВУ ЭЛЬФОВ - ПРОВЕРКА ПО ХЭШУ С ЗАПИСЬЮ В ПЕРЕМЕННУЮ! - СО ВРЕМЕНЕМ ЖИЗНИ 4 СЕК КАЖДЫЙ (РАЗ В 5 СЕКУНД)
if i >=5 then
set i = 0
call SaveInteger(udg_Hash,GetHandleId(t2),3,i)
loop 
set u6=FirstOfGroup(elfs)
exitwhen u6==null
set elf_creaturetype = LoadReal(udg_Hash,GetHandleId(u6),StringHash("elf_creaturetype"))
call GroupRemoveUnit(elfs,u6)
if elf_creaturetype == 1 and IsDead (u6) == false then
set count = count + 1
else
endif
endloop
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\Polymorph\\PolyMorphTarget.mdl.&#8203;mdx",u5,"chest"))
set u6=CreateUnit(Player(PLAYER_NEUTRAL_AGGRESSIVE), 'n416', GetUnitX(u5), GetUnitY(u5), bj_RADTODEG * Atan2(GetUnitY(u5) - GetUnitY(u5), GetUnitX(u5) - GetUnitX(u5)))
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)
endif
ЖРЕЦ СПАВНИТ КРИСТАЛЛ МОЩЬЮ ПО КОЛ-ВУ ЭЛЬФОВ СО ВРЕМЕНЕМ ЖИЗНИ 4 СЕК КАЖДЫЙ - ЗАКРЫТО.
endif
call DestroyGroup (elfs)
call DestroyGroup (crystals)
call DestroyGroup (heroes)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t2, u5, u6, u7, p, p2, elfs, crystals, 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
function PriestOfTitania2 takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5
local timer t = GetExpiredTimer()
local unit u5 = LoadUnitHandle(udg_Hash,GetHandleId(t),2)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
ТУТ СТОП, Т. К. ЭТО ПОСЛЕ АВТОКАСТА НА ОСНОВЕ ХИЛКИ СТАТУИ, НО И ТАЙМЕР ЧУТЬ ПОДОЛЬШЕ
call IssueImmediateOrderBJ( u5, "stop" )
ТУТ СТОП, Т. К. ЭТО ПОСЛЕ АВТОКАСТА НА ОСНОВЕ ХИЛКИ СТАТУИ - ЗАКРЫТО.
call SaveReal(udg_Hash,GetHandleId(u5),StringHash("priestoftitania"),0)
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5
set t = null
set u5 = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
function PriestOfTitania takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: 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"))
if ( GetSpellAbilityId() == 'A33A' ) and priestoftitania == 0 then
call SaveReal(udg_Hash,GetHandleId(u5),StringHash("priestoftitania"),1)
call PlaySoundOnUnitBJ( gg_snd_MaroSorcererPriestOfTitania, 100, u5 )
set u6=CreateUnit(GetOwningPlayer(u5), 'n413', GetUnitX(u5), GetUnitY(u5), bj_RADTODEG * Atan2(GetUnitY(u5) - GetUnitY(u5), GetUnitX(u5) - GetUnitX(u5)))
call UnitApplyTimedLifeBJ( 120.00, 'BTLF', u6 )
ХЭШ ЭЛЬФА
call SaveReal(udg_Hash,GetHandleId(u6),StringHash("elf_creaturetype"),1)
ХЭШ ЭЛЬФА - ЗАКРЫТО.
call DestroyEffect(AddSpecialEffectTarget("MaroSorcerer2.mdx",u6,"origin"))
call DestroyEffect(AddSpecialEffectTarget("MaroSorcerer2.mdx",u6,"chest"))
ХП РЕГ ВНОВЬ СОЗДАННОМУ ПО ЛВЛУ СКАСТОВАННОЙ АБИЛЫ
call AddUnitHPRegen (u6,10.00*GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()))
ХП РЕГ ВНОВЬ СОЗДАННОМУ ПО ЛВЛУ СКАСТОВАННОЙ АБИЛЫ - ЗАКРЫТО.
call SaveUnitHandle(udg_Hash, GetHandleId(t),2,u5)
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
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, t2, u5, u6
set t = null
set t2 = null
set u5 = null
set u6 = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction

Принятый ответ

Все.
Проблема была НЕ в коде.
Код абилы вообще выключен, но после игры с ней фаталит. Просто за активацию дефолтной абилы.
Проблема в РО. ФАТАЛ ПОСЛЕ ИГРЫ ВЫЗЫВАЕТ НАСТРОЙКА АБИЛЫ В РО.
Для меня это звучит как "девочка с бородой" - в принципе возможно, но довольно удивительно, поэтому сразу в голову и не пришло.
Че-то нашаманено, ща перераспакую архив с "чистыми" картами и буду разбираться, что. Но т. к. эта абила пастилась на основе другой, сделанной на основе replenishlife, а там фатала не наблюдалось - разберусь.
///////////////////
Ну или другой вариант еще остался - РО в принципе настолько раздут до опупения, что любая дефолтная абила, созданная после момента X, начинает фаталить, если часто юзать ее в игре.
Но это крайне сомнительно, ибо:
  1. Довольно бредово;
  2. Первая из двух фаталящих абил на основе replenishlife была создана ДО трех последующих за ней абил у своего героя.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
21
6 лет назад
Отредактирован ClotPh
0
prog, я не хочу исп. глобалки без крайней необходимости
и ща мой мозг не выдержит такого, он уже хочет отдыхать, а релизить хочется
так, О_О, фатал
тут реально проклятие Qшки какое-то, пока она сверх простая, ничего не происходит
при попытках че-то в нее добавить - фатал
может, какое-то "переполнение кастом кода", что ли? Тоже бредовато...
Вообще ничего не понятно
Вот ща эльфы НЕ считались и все равно фатал
Просто фатал при попытках в Qшку добавить действия
////
Ну будем курить дальше, что делать.
0-53. Из последнего варианта кода убрано все после последнего дестройэффекта и начиная с сохранения хэндла.
Т. е. спелл ща все равно "пустышка", но хоть кроме звука еще эффекты спавнит. И переменная count таки невинно просто ОБЪЯВЛЯЕТСЯ.
Сыграю так. Хоть компиляция долгая, а катки быстрые...
////////////////
Еще раз, пока получается так: фатала после игры нет, пока Q - "спелл-пустышка". Т. е. просто издает звук и запускает таймер UntamedWilds2, где невинно перезаписывает блокирующий себя при касте хэш (как делают все спеллы новые в системе).
Как только пытаюсь приписать или добавку маны без подсчёта эльфов, или подсчёт эльфов без добавки маны - фатал.
//////
В общем, сейчас добавляю к "пустышке" объявление переменной count целочисленной без использования и спецэффекты.
Если фатала не будет - уже что-то довольно интересное.
Если будет - значит, дело не в конкретной части кода, а что-то в системе опять поперек себя шире или хрен поймешь. Надо будет тогда все-таки весь код PriestOfTitania неактивный стереть, что ли, но это все равно получится лишь временная панацея...
/////////////////
Может, "нестандартный код до глобальных триггеров" стал слишком большим? Но тоже бредовато. Во-первых, раньше он был еще больше до некоторой последней реструктуризации. Во-вторых, игра по идее все равно видит весь код нестандартным. Чушь крч...
/////////////
"вылет на функции, которая чистит данные о скиллах из таблиц"
"вылет на функции, которая чистит данные о скиллах из таблиц"
"вылет на функции, которая чистит данные о скиллах из таблиц"
"вылет на функции, которая чистит данные о скиллах из таблиц"
что же тут можно почерпнуть...
0
26
6 лет назад
0
что за ненависть к глобалкам?
0
21
6 лет назад
0
/////////////
была еще мысль, что дело тупо в ... переполнении РО, что ли, но те скиллы, которые типа как не юзаются, о них и данные типа как не чистятся, поэтому если не юзать последних новосозданных, то типа все в порядке... но это само по себе бред и опровергается тем, что с "пустым" кодом Q-шка нормально юзается и доигрывается
///////////////////
Hate, неудобно ее создавать в трех картах, проверять везде верные значения и не повредились ли при создании по ошибке значения других глобалок, и вообще, как понимаю, глобалка хоть и ничтожно мало, но отнимает ресурс
сильной ненависти нет, но не так уж хорошо
и ща не в глобалке дело вообще ни разу
тут вообще вот к чему ща сводится пока что:
ЧТО Я НИ ПЫТАЮСЬ ДОПИСАТЬ В ФУНКЦИЮ UntamedWilds - СРАЗУ НАЧИНАЮТСЯ ФАТАЛЫ
ЧТО Я НИ ПЫТАЮСЬ ДОПИСАТЬ В ФУНКЦИЮ UntamedWilds - СРАЗУ НАЧИНАЮТСЯ ФАТАЛЫ
ЧТО Я НИ ПЫТАЮСЬ ДОПИСАТЬ В ФУНКЦИЮ UntamedWilds - СРАЗУ НАЧИНАЮТСЯ ФАТАЛЫ
Что угодно, отдельно подсчет эльфов пробовался без добора маны, отдельно добор маны без подсчета эльфов!
0
24
6 лет назад
0
ClotPh, код пережимаеш оптимизатором? может у него мозги от чего-то едут? попробуй без оптимизатора по тестить для проверки.
0
21
6 лет назад
0
prog, если без оптимизатора тестить, карта будет грузиться полчаса. Буквально.
Ну вот, голимый бред уже - в "пустой" работоспособный вариант добавляю только:
local integer count= 0
Даже не объявляю ей дальше никакие др. значения, ничего!!!
и добавляю
call DestroyEffect(AddSpecialEffectTarget("MaroSorcerer1New.mdx", u5, "origin"))
call DestroyEffect(AddSpecialEffectTarget("MaroSorcerer1New.mdx", u5, "chest"))
call DestroyEffect(AddSpecialEffectTarget("MaroSorcerer1New.mdx", u5, "hand left"))
call DestroyEffect(AddSpecialEffectTarget("MaroSorcerer1New.mdx", u5, "hand right"))
ФАТАЛ.
Из-за задания целочисленной переменной и вывода спецэффектов?!
Бред же сивейшей кобылы.
0
26
6 лет назад
0
спецэффект проверь, может из-за него фаталит
0
21
6 лет назад
0
///////
Но вообще пока все фаталящие версии объединяет эта строчка:
local integer count= 0
И ????????????????????????????????????????????????????????????????????????????????????
может, название такое не хорошее, видится как действие функции какое-то?
пока единственное предположение, которое видится разумным.
НО... в другом заклинании есть такое назв. переменной... ничего не замечалось... хотя мб оно гораздо реже просто юзается, а у этого кд 15 сек и это на что-то влияет. Надо будет посмотреть.
В общем, удалено, теперь остались только спецэффекты добавлены к работоспособному варианту.
Ща проверим...рекомпиляция - 1-49.
Hate, версия без спецэффекта с фаталом уже была
да и спецэффект невинный абсолютно, у меня такой же другого цвета есть давно
ПОКА ВСЕ ВЕРСИИ С ФАТАЛОМ ОБЪЕДИНЯЕТ ОДНА СТРОЧКА:
local integer count= 0
ПОКА ВСЕ ВЕРСИИ С ФАТАЛОМ ОБЪЕДИНЯЕТ ОДНА СТРОЧКА:
local integer count= 0
ПОКА ВСЕ ВЕРСИИ С ФАТАЛОМ ОБЪЕДИНЯЕТ ОДНА СТРОЧКА:
local integer count= 0
ПОКА ВСЕ ВЕРСИИ С ФАТАЛОМ ОБЪЕДИНЯЕТ ОДНА СТРОЧКА:
local integer count= 0
////////////
УЖЕ НЕТ.
Только с эффектами - тоже фатал.
Полный бред, крч, как только пытаюсь что-то хоть добавить в функцию - фатал.
А ну-ка снова удалю эффекты, снова сделаю пустую, может, 1 игра была случайность?
/////////
Ресейв и рекомпиляция 2-40...
///////////////////////////////////////
все пока опять сводится вот к чему:
тут вообще вот к чему ща сводится пока что:
ЧТО Я НИ ПЫТАЮСЬ ДОПИСАТЬ В ФУНКЦИЮ UntamedWilds - СРАЗУ НАЧИНАЮТСЯ ФАТАЛЫ
ЧТО Я НИ ПЫТАЮСЬ ДОПИСАТЬ В ФУНКЦИЮ UntamedWilds - СРАЗУ НАЧИНАЮТСЯ ФАТАЛЫ
ЧТО Я НИ ПЫТАЮСЬ ДОПИСАТЬ В ФУНКЦИЮ UntamedWilds - СРАЗУ НАЧИНАЮТСЯ ФАТАЛЫ
ЧТО Я НИ ПЫТАЮСЬ ДОПИСАТЬ В ФУНКЦИЮ UntamedWilds - СРАЗУ НАЧИНАЮТСЯ ФАТАЛЫ
ЧТО Я НИ ПЫТАЮСЬ ДОПИСАТЬ В ФУНКЦИЮ UntamedWilds - СРАЗУ НАЧИНАЮТСЯ ФАТАЛЫ
ЧТО Я НИ ПЫТАЮСЬ ДОПИСАТЬ В ФУНКЦИЮ UntamedWilds - СРАЗУ НАЧИНАЮТСЯ ФАТАЛЫ
УЖЕ НИ ОДНОЙ общей строчки не осталось!!!
УЖЕ НИ ОДНОЙ общей строчки не осталось!!!
УЖЕ НИ ОДНОЙ общей строчки не осталось!!!
///////
Значит, так: буду енто делать и параллельно делами заниматься, т. к. компилируется долго, зато проверяется и грузится относительно быстро
upd 3-16
0
24
6 лет назад
0
а если её переименовать? функцию эту
0
21
6 лет назад
Отредактирован ClotPh
0
prog, хм... раньше же была другая Qшка прист оф титаниа, с которой этот тред и начался
тоже же фаталила...
все-таки мб дело в ОБЪЁМЕ... но, с др. стороны, даже с пустой новой Qшкой объём больше, чем был
потому что функции бывшей Qшки пока из custom code не удалены - просто не вызываются
уже была мысль, что Qшка как-то некорректно регистрируется, но это тоже уже проверялось
короче я вообще ниче не понимаю от слова совсем
///
вообще там огромная функция, которая проверяет множество ифзенэлсов
у нее одно событие - герой учит скилл
далее проверяется куча ифзенэлсов - выше отдельно отделено с самодокументированием и понятными для каждого героя названиями
и в самих действиях в зависимости от выученного скилла все они регают те или иные функции для выучившего
предполагалось, что это будет так разрастаться бесконечно и постепенно при необходимости все старые герои будут переписаны в эту систему
не срослось и что-то треснуло от переобъёма?
/////////////////
вот это кстати имеющее смысл объяснение
т. к. симптом один - некорректно действует последнее заклинание
вообще если так... ну я знаю тогда, все вообще по-другому теперь будет, хорошо, что это сейчас вскрылось тогда
уже другой вариант есть, даже удобнее, кстати
на 1 героя - один триг на выучивание спеллов, но не глобальный, а локальный, инициализирующийся в дополнительном потоке
///////////////
если так, то походу сращивать все надо в этот вариант
2
24
6 лет назад
2
когда-то давно у меня забаговали данные где-то в РО по одной из способностей и творилась недевомая хрень пока я все не перенес все на чистую карту без изменений не считая забагованой способности, но симптомы другие были - в основном фаталило сразу как способность в игру попадала
ClotPh:
не срослось и что-то треснуло от переобъёма?
есть предел операций в потоке, но там иначе все бы выглядело - код бы просто не выполнялся с какого-то момента
0
21
6 лет назад
Отредактирован ClotPh
0
prog, хм... ты навел меня на мысль
у меня же 2 игровые карты
и даже не проверялось вообще, пашет ли без фатала после игры в англ карте, с момента выявления этого фатала! Просто в англ карте все параллельно правилось и все
надо прям ща посмотреть
ну т. е. не все правилось, а все что типа уже готовилось как однозначно утвержденное
ща-то я тока русскую мучаю, а вот в англ первый Untamed Wilds ща первозданный!
НУ-КА, вот он момент истины (мб)
****. Ай, блин, не совсем.
Уже потерта закомпилированная английская с первозданным UW.
Но он остался в сорсе. Ладно, ща запущу компиляцию английской, а пока посмотрю, фаталит ли с пустой функцией русская, еще раз. А то только один раз была отметка, что пустая не зафаталила, может, и пустая все-таки фаталит.
prog, да про предел операций в потоке-то я знаю
у меня из-за этого давно инициализируются триггеры в разных
хм, а вот может быть так, что просто код не выполняется, тупо не обнуляет переменные в конце и фатал из-за перезаполнения памяти? можно отладкой проверить... хотя как я проверю, блин, обнуление же В КОНЦЕ должно быть переменных, я отладку ниже не вставлю?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.