XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,259
Активность:
Баг кислотной бомбы
Я использую кислотную бомбу для скилла вроде Helfire blast из Dota allstars, дамми каст молота бурь и кислотной бомбы в юнита, но когда юнит умирает от кислотной бомбы, иногда не срабатывает триггер отлавливающий смерть юнита. Отладка показала что убивший юнит равен null.
Как подобное можно исправить?
» Дамми каст бомбы
((код jass
function Trig_Hell_Fire_Blast_Actions takes nothing returns nothing
local unit Cast = GetSpellAbilityUnit()
local unit Targ = GetSpellTargetUnit()

if GetUnitAbilityLevel( Targ, 'BNss' ) > 0 then
set Cast = null
set Targ = null
return
endif

set bj_lastCreatedUnit = CreateUnit(GetOwningPlayer(Cast),'hdum',GetUnitX(Cast),GetUnitY(Cast),GetUnitFacing(Cast))
call SetUnitPathing( bj_lastCreatedUnit,false)
call SetUnitFlyHeight( bj_lastCreatedUnit,60.00,10.00)
call SetUnitX(bj_lastCreatedUnit,GetUnitX(Cast))
call SetUnitY(bj_lastCreatedUnit,GetUnitY(Cast))
call UnitAddAbility(bj_lastCreatedUnit,'A01N')
call UnitAddAbility(bj_lastCreatedUnit,'Alsi')
call SetUnitAbilityLevel(bj_lastCreatedUnit,'A01N',GetUnitAbilityLevel(Cast,'A001'))
call IssueTargetOrder(bj_lastCreatedUnit,"acidbomb",Targ)
call UnitApplyTimedLife(bj_lastCreatedUnit,0,4.01)

set Cast = null
set Targ = null
endfunction
))
» Дебаг
((код jass
f Kpl == Player( PLAYER_NEUTRAL_AGGRESSIVE ) then
call DisplayTextToForce( bj_FORCE_ALL_PLAYERS, GetColoredPlayerName( GetPlayerId( Rpl ) ) + udg__STR_HASKILLEDBYNEUTRAL )
call DisplayTextToPlayer( Rpl, 0.00, 0.00, udgSTR_TIP + udgSTR_TIP_RESP_INFO )

set gg_bvl_PlayerDefeated[nPlayerId] = false
set zRespawnWindow[nPlayerId] = CreateTimerDialog( zRespawnTimer[nPlayerId] )
if GetLocalPlayer( ) == Rpl then
call TimerDialogDisplay( zRespawnWindow[nPlayerId], true )
call StartSound( bj_questHintSound )
else
call TimerDialogDisplay( zRespawnWindow[nPlayerId], false )
endif
call TimerDialogSetTitle( zRespawnWindow[nPlayerId], udg__STR_HEROREZ )
call TimerStart( zRespawnTimer[nPlayerId], 45.00, false, function RevivePlayerHero )
endif

if Kpl == null then
call BJDebugMsg( "|cffff0000Баг|r - Player == null! |cffC0C0C0Скиньте реплей игры автору skype quq_CCCP|r" )
if IsSlotPlayer( 6 ) then
set Kpl = Player( 6 )
else
set Kpl = Player( 7 )
endif
endif
))
  • Этот баг случается если цель герой.
  • В сингл плеере этот баг так и не удалось получить, триггер верно определял игрока который убил юнита.
  • Пока использую проверку что убивший == null и вбиваю случайного, но это не дело если фраг получит игрок который в этот момент афк стоял.

Отредактировано quq_CCCP, 28.03.2014 в 12:44.
Старый 27.03.2014, 11:46
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
делай триггерным снарядом и не парься
Старый 27.03.2014, 12:23
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
Наноси урон тригерно
Старый 27.03.2014, 19:50
Extremator

offline
Опыт: 39,428
Активность:
что могу сказать по факту
1й скилл из доты - я бы сделал триггерно
точнее, я даже сделал триггерно, и он у меня бафф вешает триггерный
и урон наношу триггерно тоже
что косаемо кислотной бомбы и null юнита
возможно у тебя даммик умирает раньше чем заканчивается эффект скилла
если это так - то урон идёт от никого... т.к. даммик умер, разложился, и вычистился из игры напроч
Что могу посоветовать
1 - как сказал выше гб, делай всё триггерно
2 - делай не всё триггерно х)
Что я имею ввиду - дай герою скилл кислотную бомбу, сделай в ней длительность 0.01 сек, урон 0, бафф там
при касте (герой будет кидать бомбу в цель) - сделай так что бы цель реагиовала на получение урона
как только цель получит урон и будет иметь бафф от бомбы - значит бомба влетела в цель
тут ты можешь сделать дамми-каст и повесить стан
+ начать наносить урон триггерно...
и не забудь в начале, сразу после проверки, снять бафф с цели
Старый 27.03.2014, 20:42
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,259
Активность:
Extremator:
возможно у тебя даммик умирает раньше чем заканчивается эффект скилла
если это так - то урон идёт от никого... т.к. даммик умер, разложился, и вычистился из игры напроч
Ага, че же на мобах работает четко, снаряд еще не долетел а дамик уже RemoveUnit(dummy) и все четко, я получаю золото за убийство, а тут нету голда даже (награда которая в РО) и тд, пробовал проявлять жизнь дамми, тоже самое. В сингле все чётко, в муи иногда вылазит дебаг строка следующего содержания - "|cffff0000Баг|r - Player == null! |cffC0C0C0Скиньте реплей игры автору skype quq_CCCP|r"
Я просто поленился делать полностью триггерно такую пустяковую способность, а видимо зря.
Про реализацию спс, я сделаю немного по другому, как сделать подобный скилл мне известно, просто я поленился разводить код на пол страницы,ну собственно результатт не заставил себя долго ждать...
Всем спасибо, поду делать триггерную версию скилла
Старый 28.03.2014, 07:51
Extremator

offline
Опыт: 39,428
Активность:
quq_CCCP:
Extremator:
возможно у тебя даммик умирает раньше чем заканчивается эффект скилла
если это так - то урон идёт от никого... т.к. даммик умер, разложился, и вычистился из игры напроч
Ага, че же на мобах работает четко, снаряд еще не долетел а дамик уже RemoveUnit(dummy) и все четко, я получаю золото за убийство, а тут нету голда даже (награда которая в РО) и тд
синглплей странная штука...
у меня раньше тоже были ситуации когда "в сингле норм, а в сети - багибагибаги"
но могу лишь сваливать на то что я был неопытен в картострое....
Всё же попробуй кидать бомбу самим героем...
Что касаемо триггерного снаряда - могу подкинуть свою тестовую карту, в ней я набрасывал своего гера...
но там без стана и дамага... просто наносит урон, режет броню, замедляет (на 4 сек.)
разумеется GUI, а я так понимаю делаешь на Jass'е, поэтому просмотри просто саму суть и сделай сам...
Прикрепленные файлы
Тип файла: w3x HT.w3x (51.6 Кбайт, 6 просмотров )
Старый 28.03.2014, 08:59
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 20:10.