Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- static
- o_UpdateTime[MAX_PLAYERS],
- Float:o_Pos[MAX_PLAYERS][3],
- o_LastInteriorCount[MAX_PLAYERS],
- o_Spawned[MAX_PLAYERS],
- o_LastInterior[MAX_PLAYERS];
- public OnPlayerConnect(playerid)
- {
- o_UpdateTime[playerid] = 0;
- o_Spawned[playerid] = 0;
- for(new i; i < 3; i ++)
- {
- o_Pos[playerid][i] = 0;
- }
- o_LastInterior[playerid] = 0;
- #if defined OPWTP_OnPlayerConnect
- OPWTP_OnPlayerConnect(playerid);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect OPWTP_OnPlayerConnect
- #if defined OPWTP_OnPlayerConnect
- forward OPWTP_OnPlayerConnect(playerid);
- #endif
- public OnPlayerUpdate(playerid)
- {
- if(gettime() > o_UpdateTime[playerid])
- {
- if(o_LastInterior[playerid] == GetPlayerInterior(playerid))
- {
- o_LastInteriorCount[playerid] ++;
- }
- else
- {
- o_LastInteriorCount[playerid] = 0;
- }
- if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && GetPlayerSurfingVehicleID(playerid) == INVALID_VEHICLE_ID && o_LastInteriorCount[playerid] > 2 && o_Pos[playerid][0] != 0 && floatabs(GetPlayerDistanceFromPoint(playerid, o_Pos[playerid][0], o_Pos[playerid][1], o_Pos[playerid][2])) > 75 && gettime() > o_Spawned[playerid] && o_Spawned[playerid] != 0)
- {
- for(new i; i < MAX_PLAYERS; i ++)
- {
- if(!IsPlayerConnected(i) || i == playerid) continue;
- static Float:o_PPos[3];
- GetPlayerPos(i, o_PPos[0], o_PPos[1], o_PPos[2]);
- if(IsPlayerInRangeOfPoint(playerid, 30.0, o_PPos[0], o_PPos[1], o_PPos[2]))
- {
- CallLocalFunction("OnPlayerWarpToPlayer", "ii", playerid, i);
- break;
- }
- }
- }
- o_UpdateTime[playerid] = gettime();
- o_LastInterior[playerid] = GetPlayerInterior(playerid);
- GetPlayerPos(playerid, o_Pos[playerid][0], o_Pos[playerid][1], o_Pos[playerid][2]);
- }
- #if defined OPWTP_OnPlayerUpdate
- OPWTP_OnPlayerUpdate(playerid);
- #endif
- return 1;
- }
- forward OnPlayerWarpToPlayer(playerid, i);
- #if defined _ALS_OnPlayerUpdate
- #undef OnPlayerUpdate
- #else
- #define _ALS_OnPlayerUpdate
- #endif
- #define OnPlayerUpdate OPWTP_OnPlayerUpdate
- #if defined OPWTP_OnPlayerUpdate
- forward OPWTP_OnPlayerUpdate(playerid);
- #endif
- public OnPlayerSpawn(playerid)
- {
- o_Spawned[playerid] = gettime() + 3;
- #if defined OPWTP_OnPlayerSpawn
- OPWTP_OnPlayerSpawn(playerid);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerSpawn
- #undef OnPlayerSpawn
- #else
- #define _ALS_OnPlayerSpawn
- #endif
- #define OnPlayerSpawn OPWTP_OnPlayerSpawn
- #if defined OPWTP_OnPlayerSpawn
- forward OPWTP_OnPlayerSpawn(playerid);
- #endif
- public OnPlayerDeath(playerid, killerid, reason)
- {
- o_Spawned[playerid] = 0;
- #if defined OPWTP_OnPlayerDeath
- OPWTP_OnPlayerDeath(playerid, killerid, reason);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerDeath
- #undef OnPlayerDeath
- #else
- #define _ALS_OnPlayerDeath
- #endif
- #define OnPlayerDeath OPWTP_OnPlayerDeath
- #if defined OPWTP_OnPlayerDeath
- forward OPWTP_OnPlayerDeath(playerid, killerid, reason);
- #endif
- stock OPWTP_SetPlayerPos(playerid, Float:x, Float:y, Float:z)
- {
- o_Pos[playerid][0] = 0;
- return SetPlayerPos(playerid, x, y, z);
- }
- #if defined _ALS_SetPlayerPos
- #undef SetPlayerPos
- #else
- #define _ALS_SetPlayerPos
- #endif
- #define SetPlayerPos OPWTP_SetPlayerPos
- stock OPWTP_PutPlayerInVehicle(playerid, vehicleid, seatid)
- {
- o_Pos[playerid][0] = 0;
- return PutPlayerInVehicle(playerid, vehicleid, seatid);
- }
- #if defined _ALS_PutPlayerInVehicle
- #undef PutPlayerInVehicle
- #else
- #define _ALS_PutPlayerInVehicle
- #endif
- #define PutPlayerInVehicle OPWTP_PutPlayerInVehicle
- stock OPWTP_SetPlayerPosFindZ(playerid, Float:x, Float:y, Float:z)
- {
- o_Pos[playerid][0] = 0;
- return SetPlayerPosFindZ(playerid, x, y, z);
- }
- #if defined _ALS_SetPlayerPosFindZ
- #undef SetPlayerPosFindZ
- #else
- #define _ALS_SetPlayerPosFindZ
- #endif
- #define SetPlayerPosFindZ OPWTP_SetPlayerPosFindZ
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement