Xoniks
offline
Опыт:
1,858Активность: |
Выбор и перемещение камеры к юниту после таймера
Добавьте пожалуйста в мой код чтобы после того как Герой реснулся камера в течение 0.5 переместилась к нему(ну или можно в локацию) игрок которому принадлежит реснувшийся герой мгновенно был выбран, все нужно сделать без BJ функций и если где увидите утечку исправьте пжл
» код
((код Jass
function Trig_Hero_Revive_Conditions takes nothing returns boolean
return IsUnitType(GetDyingUnit(), UNIT_TYPE_HERO) == true endfunction function Hero_Resp takes nothing returns nothing
local timer t2 = GetExpiredTimer( ) local integer tkey = GetHandleId( t2 ) local unit u = GetRevivingUnit( ) call ReviveHero(LoadUnitHandle(Hash, tkey, 0),GetLocationX(resp),GetLocationY(resp), true) call FlushChildHashtable(Hash, tkey) call DestroyTimer( t2 ) set t2 = null set u = null endfunction function TD_Destroy takes nothing returns nothing
local timer t = GetExpiredTimer( ) local integer tkey = GetHandleId( t ) call DestroyTimerDialog(LoadTimerDialogHandle(Hash, tkey, 0)) call FlushChildHashtable(Hash, tkey) call DestroyTimer( t ) set t = null endfunction function Trig_Hero_Revive_Actions takes nothing returns nothing
local unit u = GetDyingUnit( ) local timer t = CreateTimer() local timer t2 = CreateTimer() local timerdialog td = CreateTimerDialog(t) local real f = 3. local real r = ( ( I2R(GetHeroLevel(u)) * f ) + 4.) call SaveUnitHandle(Hash, GetHandleId(t), 0, u) call SaveTimerDialogHandle(Hash, GetHandleId(t2), 0, td) call TimerStart(t, r, false, function Hero_Resp) call TimerStart(t2, r, false, function TD_Destroy) call TimerDialogSetTitle(td,GetPlayerName(GetOwningPlayer(u))) if GetLocalPlayer() == GetOwningPlayer(u) then call TimerDialogDisplay(td, true) endif set u = null set t = null set t2 = null endfunction =========================================================================== function InitTrig_Hero_Revive takes nothing returns nothing set gg_trg_Hero_Revive = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Hero_Revive, EVENT_PLAYER_UNIT_DEATH ) call TriggerAddCondition( gg_trg_Hero_Revive,Condition(function Trig_Hero_Revive_Conditions ) ) call TriggerAddAction( gg_trg_Hero_Revive, function Trig_Hero_Revive_Actions ) endfunction )) |
02.03.2012, 09:32 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ty3uK
offline
Опыт:
2,469Активность: |
» Code Код:
|
02.03.2012, 13:22 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Xoniks
offline
Опыт:
1,858Активность: |
Ty3uK, не работает(((
мне нужно в этот код добавить ((код Jass
call PanCameraToTimed() call ClearSelection call SelectUnit )) и чтобы в мультиплеере для каждого игрока отдельно было а не у всех вместе перемещалась камера и юнит был выделен P.S. извеняюсь за синтаксис Отредактировано Xoniks, 02.03.2012 в 14:44. |
02.03.2012, 14:34 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ty3uK
offline
Опыт:
2,469Активность: |
Xoniks, вообще ничего не происходит?
|
02.03.2012, 14:40 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Xoniks
offline
Опыт:
1,858Активность: |
Ty3uK, почему герой ресается , создается окно таймера , не убирается кстати , камеры и выделения нет((
вот сделал сам и то не все попрежнему не выделяется юнит после воскрешения и так же БЖ функции используются от них надо избавиться как то))
» code
((код Jass
function Trig_Hero_Revive_Conditions takes nothing returns boolean
return IsUnitType(GetDyingUnit(), UNIT_TYPE_HERO) == true endfunction function Hero_Resp takes nothing returns nothing
local timer t2 = GetExpiredTimer( ) local integer tkey = GetHandleId( t2 ) local unit u = GetRevivingUnit( ) call ReviveHero(LoadUnitHandle(Hash, tkey, 0),GetLocationX(resp),GetLocationY(resp), true) call FlushChildHashtable(Hash, tkey) call DestroyTimer( t2 ) set t2 = null set u = null endfunction function TD_Destroy takes nothing returns nothing
local timer t = GetExpiredTimer( ) local integer tkey = GetHandleId( t ) call DestroyTimerDialog(LoadTimerDialogHandle(Hash, tkey, 0)) call FlushChildHashtable(Hash, tkey) call DestroyTimer( t ) set t = null endfunction function Camera_Resp takes nothing returns nothing
local timer t3 = GetExpiredTimer( ) local timer t4 = GetExpiredTimer( ) local integer tkey = GetHandleId( t3 )
local integer hid = GetHandleId( t4 ) call PanCameraToTimedForPlayer(LoadPlayerHandle(Hash, tkey, 0), GetLocationX(resp), GetLocationY(resp), 0.5 )
call ClearSelectionForPlayer(LoadPlayerHandle(Hash, hid, 0) ) call FlushChildHashtable(Hash, tkey) call FlushChildHashtable(Hash, hid) call DestroyTimer( t3 )
call DestroyTimer( t4 ) set t3 = null
set t4 = null endfunction
function Trig_Hero_Revive_Actions takes nothing returns nothing
local unit u = GetDyingUnit( ) local player p = GetLocalPlayer( ) local timer t = CreateTimer() local timer t2 = CreateTimer() local timer t3 = CreateTimer() local timerdialog td = CreateTimerDialog(t) local real r = ( ( I2R(GetHeroLevel(u)) * 3. ) + 4.) call SaveUnitHandle(Hash, GetHandleId(t), 0, u) call SaveTimerDialogHandle(Hash, GetHandleId(t2), 0, td) call SavePlayerHandle(Hash, GetHandleId(t3), 0, GetOwningPlayer( u ) ) call TimerStart(t, r, false, function Hero_Resp) call TimerStart(t2, r, false, function TD_Destroy) call TimerStart(t3, r, false, function Camera_Resp) call TimerDialogSetTitle(td,GetPlayerName(GetOwningPlayer(u))) if p == GetOwningPlayer( u ) then call TimerDialogDisplay(td, true) endif set u = null set t = null set t2 = null endfunction =========================================================================== function InitTrig_Hero_Revive takes nothing returns nothing set gg_trg_Hero_Revive = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Hero_Revive, EVENT_PLAYER_UNIT_DEATH ) call TriggerAddCondition( gg_trg_Hero_Revive,Condition(function Trig_Hero_Revive_Conditions ) ) call TriggerAddAction( gg_trg_Hero_Revive, function Trig_Hero_Revive_Actions ) endfunction )) Отредактировано Xoniks, 02.03.2012 в 14:47. |
02.03.2012, 14:42 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ty3uK
offline
Опыт:
2,469Активность: |
» code Код:
|
02.03.2012, 14:59 | #6
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Xoniks
offline
Опыт:
1,858Активность: |
Во то что нужно только окно таймера не удаляется ну его сам поправлю |
02.03.2012, 15:36 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|