-_-
I think we need a proper camera library.
Anyway, if you have JNGP, you can create a trigger, transform it into custom text (JASS script) and place this script into it (removing all other code from that trigger):
JASS:
library Camera
function ForceCameraOnCoordinate takes real x, real y returns nothing
call SetCameraBounds(x, y, x, y, x, y, x, y)
endfunction
function ForceCameraOnPoint takes location l returns nothing
call ForceCameraOnCoordinate(GetLocationX(l), GetLocationY(l))
endfunction
function ForceCameraOnPointForPlayer takes player p, location l returns nothing
if GetLocalPlayer() == p then
call ForceCameraOnCoordinate(GetLocationX(l), GetLocationY(l))
endif
endfunction
function ForceCameraOnCoordinateForPlayer takes player p, real x, real y returns nothing
if GetLocalPlayer() == p then
call ForceCameraOnCoordinate(x, y)
endif
endfunction
endlibrary
If you dont have JNGP, you just copy the functions (everything except the library Camera and endlibrary tags) and paste it into your header file.
After that you download JNGP 2.0 and praise me for telling you to do so.
Anyway, if you are unfamiliar with GetLocalPlayer() stuff, use
ForceCameraOnCoordinateForPlayer()
or
ForceCameraOnPointForPlayer()
You can use these methods in GUI using a custom script like this:
-
Test
-

Events
-


Player - Player 1 (Red) skips a cinematic sequence
-

Conditions
-

Actions
-


Set TempLocation[0] = (Position of Paladin 0000 <gen>)
-


Set TempPlayer[0] = (Owner of Paladin 0000 <gen>)
-


Custom script: call ForceCameraOnPointForPlayer(udg_TempPlayer[0], udg_TempLocation[0])
-


Custom script: call RemoveLocation(udg_TempLocation[0])
You need the player and location/coordinate to force the camera on.
Using the function without the "ForPlayer" will do this for all players.
You can reset the camera to the game camera using the normal Reset to game camera GUI action or you can update the position of the camera using this method if you want to.