Архив прилагается.

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

вылет при попытке чтения данных абилки из таблиц, почему-то передали вместо ссылки на адрес уровня 0. ты нигде там не сломал ссылку на актуальный уровень? Там же перелинковка через каждые 0x60 - ссылка на адрес следущего уровня. возможно, нужный уровень был там, где почему-то в адресе осталось 0
0
21
7 лет назад
Отредактирован ClotPh
0
Если кому интересно, это игра за все ту же Психопомпу, но в этот раз фатал ингейм (хз, связано с ней или нет, но 90%, что да).
Насчёт Линзы - в последнем варианте кода еще игры уже с ней были, фаталов не было.
Бтв, пометка тут себе - попробую сделать, чтобы кушка менялась не глобально от всех героев, а только от ближайших. Это все равно по-хорошему правильнее будет.
///////////////////
Просто если вдруг кому интересно, 5 игр в BFS в майский праздник после прогулки. )))
Первая игра - за Ah Muzen Cab, Бог Пчёл из SMITE. Всё хорошо, всё весело, ничего особенного.
Вторая игра - за Ryze из League of Legends, была куплена шмотка Aether Lens типа из DotA, которую срочно патчем пришлось пофиксить. Пятая игра подряд с ней с последним кодом (другие четыре были раньше, не в этот день) без каких-либо проблем. Все отлично. Настроение взлетает.
Третья игра за Psychopomp, своего героя, ну известно о проблемах с ней, но фатал после игры не так страшно, а загадано, что если уж и после игры с ней фатала не будет, то вообще в небеса настроение взлетит. ШОК. Фатал ингейм. Просто на автокасте немедленно создается эта тема. Руки трясутся. Как будто у алкаша в третьей бутылке пива вместо пива внезапно оказалась моча.
Четвертая игра. За Psychopomp. Доигрывается до конца хоть без ингейм фатала. Становится чуть легче. Выхожу из игры. Фатал. Ну это ладно, настроение чуть ухудшается, но все равно остается лучше, чем после третьей игры.
Пятая игра. За Psychopomp. Чтобы хоть убедиться, что ингейм фаталы для нее в целом и игры в частности нормой не стали. Доигрывается, причём дольше третьей и тем более четвёртой игры. Фаталов ингейм нет. Выхожу из игры. Фатала после выхода из игры нет. Настроение не до небес улучшается, но позитивно-успокаивается...
Вот так и живём... :D
0
26
7 лет назад
0
Как-то раз я здесь видел, что парень назвал по логу причину фатала, потому что ему много раз приходилось с этим фаталом сталкиваться. А вообще здесь не такие гики, чтобы компьютеры по логам ошибок чинить)
4
16
7 лет назад
4
вылет при попытке чтения данных абилки из таблиц, почему-то передали вместо ссылки на адрес уровня 0. ты нигде там не сломал ссылку на актуальный уровень? Там же перелинковка через каждые 0x60 - ссылка на адрес следущего уровня. возможно, нужный уровень был там, где почему-то в адресе осталось 0
Принятый ответ
0
21
7 лет назад
0
8gabriel8, я знаю, что по крайней мере драколич всегда может причину назвать.
DracoL1ch, понятно, спасибо, а как вообще возможно это сделать - сломать ссылку на уровень?
Вот, может быть, как-то Q и W взаимодействовать так могут, коды их под катами тут?
= Q - меняет свои перезарядку и манакост в зависимости от перезарядки скастованного спелла, при W-шке перезарядка может измениться. Integer нормальная, у абилы 5 уровней
function MadBreathParametersChange takes nothing returns nothing
local integer i = 6
local real newcd = GetAbilityCD(GetSpellAbilityId(), GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()))
if (GetAbilityCD(GetSpellAbilityId(), GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) >= 1) then
ЗАДАЕМ ПЕРЕЗАРЯДКУ И МАНАКОСТ БЕЗУМНОГО ДЫХАНИЯ, УРОН УЖЕ ОТ НИХ ПОТОМ
loop
exitwhen i < 1
set i = i-1
call SetAbilityCD ('A27Q', i, newcd)
call SetAbilityManaCost('A27Q',i,R2I(newcd) * (2 + i))
endloop
ЗАДАЕМ ПЕРЕЗАРЯДКУ И МАНАКОСТ БЕЗУМНОГО ДЫХАНИЯ, УРОН УЖЕ ОТ НИХ ПОТОМ - ЗАКРЫТО.
else
endif
endfunction
= W - реагирует на каст любого спелла того, кто рядом под аурой
function BendingEffect takes nothing returns nothing
local real percent = 1.00
local real percent2 = 0.00
local integer i = GetAbilityMaxLevel(GetSpellAbilityId()) + 1
local integer percentchange = 0
if ( GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()) >= 1 ) and (GetAbilityCD(GetSpellAbilityId(), GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) >= 1) then
УВЕЛИЧЕНИЕ НА 1%
if UnitHasBuffBJ(GetTriggerUnit(),'B0H8') == true then
set percent = 1.01
endif
НА 1% - ЗАКРЫТО.
УВЕЛИЧЕНИЕ НА 2%
if UnitHasBuffBJ(GetTriggerUnit(),'B0H9') == true then
set percent = 1.02
endif
НА 2% - ЗАКРЫТО.
УВЕЛИЧЕНИЕ НА 3%
if UnitHasBuffBJ(GetTriggerUnit(),'B0HA') == true then
set percent = 1.03
endif
НА 3% - ЗАКРЫТО.
УВЕЛИЧЕНИЕ НА 4%
if UnitHasBuffBJ(GetTriggerUnit(),'B0HB') == true then
set percent = 1.04
endif
НА 4% - ЗАКРЫТО.
УВЕЛИЧЕНИЕ НА 5%
if UnitHasBuffBJ(GetTriggerUnit(),'B0HC') == true then
set percent = 1.05
endif
НА 5% - ЗАКРЫТО.
ТАЛАНТ СИЛЬНОЕ ИСКРИВЛЕНИЕ
set i = 0
set percent = percent - 1
loop
set i = i + 1
exitwhen i > 12
if ( GetUnitAbilityLevelSwapped('A281', udg_Circle[i]) == 2 ) then
set percent = percent * 2
set i = 12
endif
endloop
set percent = percent + 1
ТАЛАНТ СИЛЬНОЕ ИСКРИВЛЕНИЕ - ЗАКРЫТО.
if (percent > 1.00) then
call AddSpecialEffectTargetUnitBJ( "chest", GetTriggerUnit(), "Psychopomp2.mdl" )
call ConditionalTriggerExecute( gg_trg_destroyspeceffect )
loop
exitwhen i < 1
set i = i-1
ОКРУГЛЕНИЕ ДО СОТЫХ (ИНАЧЕ МОГУТ ЗАПИСАТЬСЯ ДОП. ЦИФРЫ НЕ В ТЕ ЯЧЕЙКИ)
loop
exitwhen i < 1
set i=i - 1
set percent2 = GetAbilityCD(GetSpellAbilityId(), i) * percent
set percent2 = percent2 * 100
set percentchange = R2I(percent2)
set percent2 = I2R(percentchange)
set percent2 = percent2 * 0.01
call SetAbilityCD(GetSpellAbilityId() , i , percent2)
endloop
ОКРУГЛЕНИЕ ДО СОТЫХ - ЗАКРЫТО.
endloop
else
endif
else
endif
endfunction
Всё-таки 90%, что это Психопомпа, все ее текущие коды здесь, тут только продублированы в очередной раз последние версии наиболее подозрительных имхо... xgm.guru/p/wc3/190174?postid=349213#comment25 С ней так же фатал, кстати, и после выхода из игры вот иногда остался.
Напрашивается сремувить ее и успокоиться, но принципиально не хочется, лучше уж фаталы признать психофичей героя :D , по крайней мере, сейчас, да и столько вложено.
0
16
7 лет назад
0
вызывалась стандартная функция получения данных уровня, не представляю. Это как записать через мх в ссылку 0, возможно - по ошибке, хотел куда-нибудь в длительность в многоуровневой абилке, а попал в поле со ссылкой. Не думаю, что найду по исходникам.
0
21
7 лет назад
0
Хорошо, спасибо.
Наверное, будет так: буду по мере сил и желания играть игры с Психопомпой в таких вариантах: с прокачкой только кушки, с прокачкой только вэшки, без прокачки и кушки, и вэшки. Информацию о том, был ли после выхода из каждой игры фатал или нет и что качалось/не качалось, буду сразу заносить в основную тему с Психопомпой xgm.guru/p/wc3/190174?postid=349213#comment25 и делать выводы как минимум самостоятельно, если там еще кому что будет отписать, пусть пишут.
А если вдруг внезапно снова словится фатал с ней прямо ингейм, то просмотрю реплей и изучу, что в этот момент делал каждый герой (в этот раз реплей сразу del по глупости).
Чтобы оставить комментарий, пожалуйста, войдите на сайт.