Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- MP2's camera system (hud-less)
- © MP2 2012
- */
- /*
- native SetPlayerCamera(playerid, Float:x, Float:y, Float:z, Float:x2, Float:y2, Float:z2, sets=5);
- */
- enum E_OPU_CAM_DATA
- {
- Float:opu_cam_pos[3],
- Float:opu_cam_look[3],
- opu_cam_updates
- }
- new OPU_CAM_DATA[MAX_PLAYERS][E_OPU_CAM_DATA];
- public OnPlayerUpdate(playerid)
- {
- // OPU Cameras
- if(OPU_CAM_DATA[playerid][opu_cam_updates] != 0) // Still updates to process
- {
- // Set the camera's position
- SetPlayerCameraPos(playerid,
- OPU_CAM_DATA[playerid][opu_cam_pos][0],
- OPU_CAM_DATA[playerid][opu_cam_pos][1],
- OPU_CAM_DATA[playerid][opu_cam_pos][2]);
- // Set the camera's 'lookat' point
- SetPlayerCameraLookAt(playerid,
- OPU_CAM_DATA[playerid][opu_cam_look][0],
- OPU_CAM_DATA[playerid][opu_cam_look][1],
- OPU_CAM_DATA[playerid][opu_cam_look][2]);
- OPU_CAM_DATA[playerid][opu_cam_updates]--; // We've processed one update
- }
- return CallLocalFunction("cam_OnPlayerUpdate", "i", playerid); // Hooking method
- }
- #if defined _ALS_OnPlayerUpdate
- #undef OnPlayerUpdate
- #else
- #define _ALS_OnPlayerUpdate
- #endif
- #define OnPlayerUpdate cam_OnPlayerUpdate
- forward cam_OnPlayerUpdate(playerid);
- stock SetPlayerCamera(playerid, Float:x, Float:y, Float:z, Float:x2, Float:y2, Float:z2, sets=5)
- {
- OPU_CAM_DATA[playerid][opu_cam_updates] = sets;
- TogglePlayerSpectating(playerid, true);
- OPU_CAM_DATA[playerid][opu_cam_pos][0] = x;
- OPU_CAM_DATA[playerid][opu_cam_pos][1] = y;
- OPU_CAM_DATA[playerid][opu_cam_pos][2] = z;
- OPU_CAM_DATA[playerid][opu_cam_look][0] = x2;
- OPU_CAM_DATA[playerid][opu_cam_look][1] = y2;
- OPU_CAM_DATA[playerid][opu_cam_look][2] = z2;
- return 1;
- }
- stock x_SetCameraBehindPlayer(playerid)
- {
- OPU_CAM_DATA[playerid][opu_cam_updates] = 0;
- SetCameraBehindPlayer(playerid);
- return 1;
- }
- #if defined _ALS_SetCameraBehindPlayer
- #undef SetCameraBehindPlayer
- #else
- #define _ALS_SetCameraBehindPlayer
- #endif
- #define SetCameraBehindPlayer x_SetCameraBehindPlayer
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement