Сейчас 07:58:16 Пятница, 29 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Юниты создаются не впереди лица.
demon_nrtДата: Понедельник, 02 Сентября 2013, 17:20:17 | Сообщение # 1
6 уровень
Группа: Проверенные
Сообщений: 193
Награды: 0
Репутация: 2
Блокировки:
Помогите исправить ошибку. У меня по коду должны создаваться 3 юнита которые идут друг за другом на расстояние 360 ед. Но юниты создаются от лица и еще перемещаются во время создание в зависимости от лица юнита, хоть я сохранил его лицо на момент каста, то есть юниты должно создаваться строго по сохраненной реальной, но увы они двигаются не от сохраненной а от действующей. Помогите найти ошибку, буду благодарен.
Код

function Trig_Dragoncry_Conditions takes nothing returns boolean
     if ( not ( GetSpellAbilityId() == 'A00U' ) ) then
         return false
     endif
     return true
endfunction
function Trig_Dragoncry_timer_Actions takes nothing returns nothing
     local timer Drt = GetExpiredTimer()             
     local integer h = GetHandleId(Drt)  
     local unit Dcu = LoadUnitHandle(udg_Hash,h,1)
     local real x = GetWidgetX(Dcu)
     local real y = GetWidgetY(Dcu)
     local integer i = LoadInteger(udg_Hash,h,3)
     local real Dru1 = LoadReal(udg_Hash,h,2)
     local unit Dcu1
     set i = i + 360
     call SaveInteger(udg_Hash,h,3,i)
     set Dcu1 = CreateUnit( GetOwningPlayer (Dcu), 'e00E',x+i * Cos(Dru1 * 0.0174532),y+i * Sin(Dru1 * 0.0174532),Dru1)
     call UnitApplyTimedLifeBJ( 1.00, 'BTLF', Dcu1 )
     call SetUnitAbilityLevelSwapped( 'A00V', Dcu1, GetUnitAbilityLevelSwapped('A00U', Dcu) )
     call IssueImmediateOrderBJ( Dcu1, "thunderclap" )
     set Dcu = null
     set Dcu1 = null
     endfunction
function Trig_Dragoncry_Actions takes nothing returns nothing
     local timer Drt = CreateTimer()      
     local integer h = GetHandleId(Drt)
     local unit Dcu = GetSpellAbilityUnit()
     local real Dru = GetUnitFacing(Dcu)
     local real x = GetWidgetX(Dcu)
     local real y = GetWidgetY(Dcu)
     local unit Dcu2 = CreateUnit( GetOwningPlayer (Dcu), 'e007',x,y,Dru)
     local real Dru1 = GetUnitFacing (Dcu2)
     call UnitApplyTimedLifeBJ( 2.00, 'BTLF', Dcu2)
     call SaveUnitHandle(udg_Hash,h,1,Dcu)
     call SaveReal(udg_Hash,h,2,Dru1)
     call TimerStart(Drt,0.50,true,function  Trig_Dragoncry_timer_Actions )  
     call PolledWait( 1.50 )
     call PauseTimer (Drt)
     call DestroyTimer (Drt)
     set Drt = null
     set Dcu = null
     set Dcu2 = null
     call FlushChildHashtable(udg_Hash,h)
     endfunction
//===========================================================================
function InitTrig_Dragoncry takes nothing returns nothing
     set gg_trg_Dragoncry = CreateTrigger(  )
     call TriggerRegisterAnyUnitEventBJ( gg_trg_Dragoncry, EVENT_PLAYER_UNIT_SPELL_EFFECT )
     call TriggerAddCondition( gg_trg_Dragoncry, Condition( function Trig_Dragoncry_Conditions ) )
     call TriggerAddAction( gg_trg_Dragoncry, function Trig_Dragoncry_Actions )
endfunction
 

[SeKtOR]Дата: Понедельник, 02 Сентября 2013, 19:39:36 | Сообщение # 2
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Как я понял ты хочешь способность, которая создает круг из дамиков заставляет их кастовать громовую поступь и убивает?

 

demon_nrtДата: Вторник, 03 Сентября 2013, 17:57:42 | Сообщение # 3
6 уровень
Группа: Проверенные
Сообщений: 193
Награды: 0
Репутация: 2
Блокировки:
Цитата (|SeKtOR|)
Как я понял ты хочешь способность, которая создает круг из дамиков заставляет их кастовать громовую поступь и убивает?

Нет, у меня уже она есть( способность) она сделана, но в ней проблема в том что работает она слегка не так. А способность такова : При использовании способности, создается юнит на расстояние 350 ед. от лица героя скастовавшего, через 0.50 сек, появляется второй от лица героя, но именно в тот момент когда появилась первая. То есть юниты двигаются цепочкой от одного лица, которое задано с начала каста, при этом оно не должно меняться, если герой начинает двигаться. А еще через 0.50 сек появляется еще один юнит. Общее расстояние 1050 ед. У меня все работает но если герой начинает движение то последующие юниты создаются от движущегося героя а не от начального его лица, хоть его я сохранил и использую именно сохраненное лицо.

Добавлено (03 Сентября 2013, 17:57:42)
---------------------------------------------
Все спасибо всем за помощь исправил сам.

 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz