TriggerHappy
...
- Reaction score
- 341
I made this system a while ago , except it was in GUI and had alot of leaks. Now i have re-made it in JASS and made it more efficient and faster. What it does is it moves the camera around your unit using the arrow keys.
Anyways Code..
Demo
Download
Video ... Poor Quality
[YOUTUBE]<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/_zycqC4AD8c&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/_zycqC4AD8c&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>[/YOUTUBE]
Download
Video ... Poor Quality
[YOUTUBE]<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/_zycqC4AD8c&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/_zycqC4AD8c&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>[/YOUTUBE]
Anyways Code..
JASS:
scope AKC initializer InitTrig
globals
private boolean array Left
private boolean array Right
private boolean array Up
private boolean array Down
private real array AOA
private real array Rot
private boolean array on
private constant real time = 0.01 // refresh rate.
private constant real rate = 1.00 // how fast the camera turns
endglobals
private function Init takes nothing returns nothing
local integer i = 0
loop
exitwhen i > 11
set AOA<i> = -20
set Rot<i> = GetUnitFacing(udg_PlayersHero[i + 1])
set on<i> = true
set i = i + 1
endloop
endfunction
function ToggleCam takes player p returns nothing
set on[GetPlayerId(p)] = not on[GetPlayerId(p)]
endfunction
private function LockCam takes nothing returns nothing
local integer i = 0
loop
exitwhen i > 11
if on<i> == true then
if udg_PlayersHero[i + 1] != null then
if Player(i) == GetLocalPlayer() then
call SetCameraTargetController(udg_PlayersHero[i + 1], 0, 0, true)
call SetCameraField(CAMERA_FIELD_ROTATION, Rot<i>, 0.00)
call SetCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK, AOA<i>, 0)
endif
if Left<i> == true then
set Rot<i> = Rot<i> + rate
endif
if Right<i> == true then
set Rot<i> = Rot<i> - rate
endif
if Up<i> == true then
if AOA<i> < -9 then
if AOA<i> > -165 then
set AOA<i> = AOA<i> - rate
endif
endif
endif
if Down<i> == true then
if AOA<i> < -9 then
if AOA<i> > -165 then
set AOA<i> = AOA<i> + rate
endif
endif
endif
endif
endif
set i = i + 1
endloop
endfunction
private function Left_Actions takes nothing returns nothing
local integer i = GetPlayerId(GetTriggerPlayer())
if on<i> == true then
if udg_PlayersHero[i + 1] != null then
if Left[GetPlayerId(GetTriggerPlayer())] == false then
set Left[GetPlayerId(GetTriggerPlayer())] = true
set Rot<i> = Rot<i> + rate
call SetCameraFieldForPlayer( Player(i), CAMERA_FIELD_ROTATION, Rot<i>, 0.00)
else
set Left[GetPlayerId(GetTriggerPlayer())] = false
endif
endif
endif
endfunction
private function Right_Actions takes nothing returns nothing
local integer i = GetPlayerId(GetTriggerPlayer())
if on<i> == true then
if udg_PlayersHero[i + 1] != null then
if Right[GetPlayerId(GetTriggerPlayer())] == false then
set Right[GetPlayerId(GetTriggerPlayer())] = true
set Rot<i> = Rot<i> - rate
call SetCameraFieldForPlayer( Player(i), CAMERA_FIELD_ROTATION, Rot<i>,time)
else
set Right[GetPlayerId(GetTriggerPlayer())] = false
endif
endif
endif
endfunction
private function Up_Actions takes nothing returns nothing
local integer i = GetPlayerId(GetTriggerPlayer())
if on<i> == true then
if udg_PlayersHero[i + 1] != null then
if Up[GetPlayerId(GetTriggerPlayer())] == false then
set Up[GetPlayerId(GetTriggerPlayer())] = true
set AOA<i> = AOA<i> - rate
call SetCameraFieldForPlayer( Player(i), CAMERA_FIELD_ROTATION, Rot<i>, time)
else
set Up[GetPlayerId(GetTriggerPlayer())] = false
endif
endif
endif
endfunction
private function Down_Actions takes nothing returns nothing
local integer i = GetPlayerId(GetTriggerPlayer())
if on<i> == true then
if udg_PlayersHero[i + 1] != null then
if Down[GetPlayerId(GetTriggerPlayer())] == false then
set Down[GetPlayerId(GetTriggerPlayer())] = true
set AOA<i> = AOA<i> + rate
call SetCameraFieldForPlayer( Player(i), CAMERA_FIELD_ROTATION, Rot<i>, time)
else
set Down[GetPlayerId(GetTriggerPlayer())] = false
endif
endif
endif
endfunction
//===========================================================================
private function InitTrig takes nothing returns nothing
local trigger t = CreateTrigger( )
local integer i = 0
loop
exitwhen i > 11
call TriggerRegisterPlayerEvent(t, Player(i), EVENT_PLAYER_ARROW_LEFT_DOWN)
call TriggerRegisterPlayerEvent(t, Player(i), EVENT_PLAYER_ARROW_LEFT_UP)
set i = i + 1
endloop
call TriggerAddAction( t, function Left_Actions )
set i = 0
set t = CreateTrigger()
loop
exitwhen i > 11
call TriggerRegisterPlayerEvent(t, Player(i), EVENT_PLAYER_ARROW_RIGHT_DOWN)
call TriggerRegisterPlayerEvent(t, Player(i), EVENT_PLAYER_ARROW_RIGHT_UP)
set i = i + 1
endloop
call TriggerAddAction( t, function Right_Actions )
set i = 0
set t = CreateTrigger()
loop
exitwhen i > 11
call TriggerRegisterPlayerEvent(t, Player(i), EVENT_PLAYER_ARROW_UP_DOWN)
call TriggerRegisterPlayerEvent(t, Player(i), EVENT_PLAYER_ARROW_UP_UP)
set i = i + 1
endloop
call TriggerAddAction( t, function Up_Actions )
set i = 0
set t = CreateTrigger()
loop
exitwhen i > 11
call TriggerRegisterPlayerEvent(t, Player(i), EVENT_PLAYER_ARROW_DOWN_UP)
call TriggerRegisterPlayerEvent(t, Player(i), EVENT_PLAYER_ARROW_DOWN_DOWN)
set i = i + 1
endloop
call TriggerAddAction( t, function Down_Actions )
set t = CreateTrigger()
call TriggerRegisterTimerEvent( t, time, true)
call TriggerAddAction(t, function LockCam)
set t = CreateTrigger()
call TriggerRegisterTimerEvent( t, 0.00, false)
call TriggerAddAction(t, function Init)
endfunction
endscope
</i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i>