| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- public OnFilterScriptInit() {
- for(new playerid, max_playerid = GetPlayerPoolSize(); playerid <= max_playerid; playerid ++) {
- if( IsPlayerConnected(playerid) ) {
- DefaultCamModeData(playerid);
- }
- }
- g_CamModeTimer = SetTimer("OnCamModeUpdate", CAMMODE_UPDATE_INTERVAL_MS, true);
- #if defined cmode_OnFilterScriptInit
- cmode_OnFilterScriptInit();
- #endif
- }
- #if defined _ALS_OnFilterScriptInit
- #undef OnFilterScriptInit
- #else
- #define _ALS_OnFilterScriptInit
- #endif
- #define OnFilterScriptInit cmode_OnFilterScriptInit
- #if defined cmode_OnFilterScriptInit
- forward cmode_OnFilterScriptInit();
- #endif
- public OnFilterScriptExit() {
- KillTimer(g_CamModeTimer);
- for(new playerid, max_playerid = GetPlayerPoolSize(); playerid <= max_playerid; playerid ++) {
- if( !IsPlayerConnected(playerid) ) {
- continue;
- }
- if( g_CamModeData[playerid][CAMMODE_DATA_TOGGLE] ) {
- ToggleCam(playerid, false);
- }
- }
- #if defined cmode_OnFilterScriptExit
- cmode_OnFilterScriptExit();
- #endif
- }
- #if defined _ALS_OnFilterScriptExit
- #undef OnFilterScriptExit
- #else
- #define _ALS_OnFilterScriptExit
- #endif
- #define OnFilterScriptExit cmode_OnFilterScriptExit
- #if defined cmode_OnFilterScriptExit
- forward cmode_OnFilterScriptExit();
- #endif
- public OnPlayerConnect(playerid) {
- DefaultCamModeData(playerid);
- #if defined cmode_OnPlayerConnect
- return cmode_OnPlayerConnect(playerid);
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect cmode_OnPlayerConnect
- #if defined cmode_OnPlayerConnect
- forward cmode_OnPlayerConnect(playerid);
- #endif
- public OnPlayerSpawn(playerid) {
- if( g_CamModeData[playerid][CAMMODE_DATA_TOGGLE] && IsValidPlayerObject(playerid, g_CamModeData[playerid][CAMMODE_DATA_POID]) ) {
- TogglePlayerSpectating(playerid, true);
- AttachCameraToPlayerObject(playerid, g_CamModeData[playerid][CAMMODE_DATA_POID]);
- }
- #if defined cmode_OnPlayerSpawn
- return cmode_OnPlayerSpawn(playerid);
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnPlayerSpawn
- #undef OnPlayerSpawn
- #else
- #define _ALS_OnPlayerSpawn
- #endif
- #define OnPlayerSpawn cmode_OnPlayerSpawn
- #if defined cmode_OnPlayerSpawn
- forward cmode_OnPlayerSpawn(playerid);
- #endif
- public OnPlayerStateChange(playerid, newstate, oldstate) {
- if( !g_CamModeData[playerid][CAMMODE_DATA_TOGGLE] && g_CamModeData[playerid][CAMMODE_DATA_SPAWN_SAVED] && newstate == PLAYER_STATE_ONFOOT ) {
- SetPlayerPos(playerid, g_CamModeData[playerid][CAMMODE_DATA_SPAWN_X], g_CamModeData[playerid][CAMMODE_DATA_SPAWN_Y], g_CamModeData[playerid][CAMMODE_DATA_SPAWN_Z]);
- g_CamModeData[playerid][CAMMODE_DATA_SPAWN_SAVED] = false;
- }
- #if defined cmode_OnPlayerStateChange
- cmode_OnPlayerStateChange(playerid, newstate, oldstate);
- #endif
- }
- #if defined _ALS_OnPlayerStateChange
- #undef OnPlayerStateChange
- #else
- #define _ALS_OnPlayerStateChange
- #endif
- #define OnPlayerStateChange cmode_OnPlayerStateChange
- #if defined cmode_OnPlayerStateChange
- forward cmode_OnPlayerStateChange(playerid, newstate, oldstate);
- #endif
- public OnCamModeUpdate() {
- for(new playerid, max_playerid = GetPlayerPoolSize(); playerid <= max_playerid; playerid ++) {
- if( !IsPlayerConnected(playerid) ) {
- continue;
- }
- if( !g_CamModeData[playerid][CAMMODE_DATA_TOGGLE] ) {
- continue;
- }
- new keys, ud, lr;
- GetPlayerKeys(playerid, keys, ud, lr);
- if(ud == 0 && lr == 0) {
- if(g_CamModeData[playerid][CAMMODE_DATA_MOVING]) {
- StopPlayerObject(playerid, g_CamModeData[playerid][CAMMODE_DATA_POID]);
- g_CamModeData[playerid][CAMMODE_DATA_MOVING] = false;
- g_CamModeData[playerid][CAMMODE_DATA_MULTIPLIER] = 0.0;
- }
- } else {
- new
- Float:x,
- Float:y,
- Float:z,
- Float:vx,
- Float:vy,
- Float:vz,
- Float:speed
- ;
- GetPlayerCameraPos(playerid, x, y, z);
- GetPlayerCameraFrontVector(playerid, vx, vy, vz);
- if(ud < 0) {
- x += (vx * CAMMODE_MOVE_DISTANCE);
- y += (vy * CAMMODE_MOVE_DISTANCE);
- z += (vz * CAMMODE_MOVE_DISTANCE);
- } else if(ud > 0) {
- x -= (vx * CAMMODE_MOVE_DISTANCE);
- y -= (vy * CAMMODE_MOVE_DISTANCE);
- z -= (vz * CAMMODE_MOVE_DISTANCE);
- }
- if(lr > 0) {
- x += (vy * CAMMODE_MOVE_DISTANCE);
- y -= (vx * CAMMODE_MOVE_DISTANCE);
- } else if(lr < 0) {
- x -= (vy * CAMMODE_MOVE_DISTANCE);
- y += (vx * CAMMODE_MOVE_DISTANCE);
- }
- g_CamModeData[playerid][CAMMODE_DATA_MULTIPLIER] += CAMMODE_MULTIPLIER_ADD;
- if(g_CamModeData[playerid][CAMMODE_DATA_MULTIPLIER] > CAMMODE_MULTIPLIER_LIMIT) {
- g_CamModeData[playerid][CAMMODE_DATA_MULTIPLIER] = CAMMODE_MULTIPLIER_LIMIT;
- }
- if(keys & KEY_JUMP) {
- speed = g_CamModeData[playerid][CAMMODE_DATA_MULTIPLIER] * CAMMODE_SPEED_FAST;
- } else if(keys & KEY_WALK) {
- speed = g_CamModeData[playerid][CAMMODE_DATA_MULTIPLIER] * CAMMODE_SPEED_SLOW;
- } else {
- speed = g_CamModeData[playerid][CAMMODE_DATA_MULTIPLIER] * CAMMODE_SPEED_NORMAL;
- }
- MovePlayerObject(playerid, g_CamModeData[playerid][CAMMODE_DATA_POID], x, y, z, speed, 0.0, 0.0, 0.0);
- g_CamModeData[playerid][CAMMODE_DATA_MOVING] = true;
- }
- }
- #if defined cmode_OnCamModeUpdate
- cmode_OnCamModeUpdate();
- #endif
- }
- #if defined _ALS_OnCamModeUpdate
- #undef OnCamModeUpdate
- #else
- #define _ALS_OnCamModeUpdate
- #endif
- #define OnCamModeUpdate cmode_OnCamModeUpdate
- #if defined cmode_OnCamModeUpdate
- forward cmode_OnCamModeUpdate();
- #endif
|