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

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

Закрытая тема
 
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
Не удаляется эффект и не наосится урон
Все работает кроме удаления эффекта и нанесения урона, я не знаю почему....
function Trig_warrior_chardge_Conditions takes nothing returns boolean
        return GetSpellAbilityId() == 'A05H'
endfunction

function SR5 takes real xa, real ya, real xb, real yb returns real
return SquareRoot((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb))
endfunction

function Trig_warrior_chardge_Actions2 takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local integer id = GetHandleId(t)
    local unit u = LoadUnitHandle(udg_Hash,id,0)
    local unit c = LoadUnitHandle(udg_Hash,id,1)
    local effect e = LoadEffectHandle(udg_Hash,id,2)
    local real Angle
    local real x = GetUnitX(u)
    local real y = GetUnitY(u)
    local real x1 = GetUnitX(c)
    local real y1 = GetUnitY(c)
    local real f = GetUnitFacing(u)
    local unit dc
    local string s = "thunderbolt"
  if(SR5(x,y,x1,y1) > 26.00)then
    set Angle = Atan2( y - y1 , x - x1 )
    call SetUnitX(u,GetUnitX(u)- 12 *Cos(Angle))
    call SetUnitY(u,GetUnitY(u)- 12 *Sin(Angle))
  else
    call UnitDamageTarget(u,c,I2R(GetUnitAbilityLevel(u,'A05H') * GetHeroStr(u,true)),true,false,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL,WEAPON_TYPE_CLAW_LIGHT_SLICE )
    call SetUnitManaBJ(u,( GetUnitStateSwap(UNIT_STATE_MANA, u) + 15.00 ) )
    set dc = CreateUnit(GetOwningPlayer(u),'hspt',x1,y1,f)
    call IssueTargetOrder( dc, s, c )
    call UnitApplyTimedLife( dc, 'BTLF' , 3.00 )
    call DestroyEffect(e)
    call DestroyTimer(t)
    set dc = null
    call FlushChildHashtable(udg_Hash,id)
  endif
  set u = null
  set c = null
  set t = null
  set s = null
  set e = null
endfunction

function Trig_warrior_chardge_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit()
    local unit c = GetSpellTargetUnit()
    local timer t = CreateTimer()
    local integer id = GetHandleId(t)
    local real x = GetUnitX(u)
    local real y = GetUnitY(u)
    local real f = GetUnitFacing(u)
    local string s1 = "chest"
    local string s2 = "Abilities\\Spells\\NightElf\\SpiritOfVengeance\\SpiritOfVengeanceBirthMissile.mdl"
    local string s3 = "attack"
    local effect e = AddSpecialEffectTarget(s2,u,s1)
    call SaveEffectHandle(udg_Hash,id,2,e)
    call SaveUnitHandle(udg_Hash,id,0,u)
    call SaveUnitHandle(udg_Hash,id,1,c)
    call IssueTargetOrder(u,s3,c)
    call TimerStart(t,0.01,true,function Trig_warrior_chardge_Actions2)
    set s1 = null
    set s2 = null
    set s3 = null
    set u = null
    set c = null
    set e = null
endfunction

//===========================================================================
function InitTrig_warrior_chardge takes nothing returns nothing
    set gg_trg_warrior_chardge = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_warrior_chardge, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_warrior_chardge, Condition( function Trig_warrior_chardge_Conditions ) )
    call TriggerAddAction( gg_trg_warrior_chardge, function Trig_warrior_chardge_Actions )
endfunction

Отредактировано Vadik29, 28.03.2012 в 12:34.
Старый 28.03.2012, 12:17
DaeDR

offline
Опыт: 8,074
Активность:
call SaveEffectHandle(udg_Hash,id,0,e)
call SaveUnitHandle(udg_Hash,id,0,u)
call SaveUnitHandle(udg_Hash,id,1,c)
У меня смутное сомнение, что ты записываешь в (id,0) два раза разные переменные
Старый 28.03.2012, 12:28
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
DaeDR, Как бе было и 1,2,3 и и 2,4,3 и щас 1,0,0 и все время одно и тоже... поменял теперь 0,1,2 но ничего не изменилось
Старый 28.03.2012, 12:30
DaeDR

offline
Опыт: 8,074
Активность:
А данная часть вообще срабатывает?
» Часть
else
    call UnitDamageTarget(u,c,I2R(GetUnitAbilityLevel(u,'A05H') * GetHeroStr(u,true)),true,false,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL,WEAPON_TYPE_CLAW_LIGHT_SLICE )
    call SetUnitManaBJ(u,( GetUnitStateSwap(UNIT_STATE_MANA, u) + 15.00 ) )
    set dc = CreateUnit(GetOwningPlayer(u),'hspt',x1,y1,f)
    call IssueTargetOrder( dc, s, c )
    call UnitApplyTimedLife( dc, 'BTLF' , 3.00 )
    call DestroyEffect(e)
    call DestroyTimer(t)
    set dc = null
    call FlushChildHashtable(udg_Hash,id)
Старый 28.03.2012, 12:42
Doc

offline
Опыт: 63,163
Активность:
Давай карту.
Старый 28.03.2012, 12:48
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
Короче там был баг в самой способности я разобрался, код полностью рабочий
Старый 28.03.2012, 13:09
Закрытая тема

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

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

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

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



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