Advertisement
Guest User

OnPlayerWarpToPlayer

a guest
Oct 11th, 2014
766
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.08 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. static
  4.     o_UpdateTime[MAX_PLAYERS],
  5.     Float:o_Pos[MAX_PLAYERS][3],
  6.     o_LastInteriorCount[MAX_PLAYERS],
  7.     o_Spawned[MAX_PLAYERS],
  8.     o_LastInterior[MAX_PLAYERS];
  9.  
  10. public OnPlayerConnect(playerid)
  11. {
  12.     o_UpdateTime[playerid] = 0;
  13.     o_Spawned[playerid] = 0;
  14.     for(new i; i < 3; i ++)
  15.     {
  16.         o_Pos[playerid][i] = 0;
  17.     }
  18.     o_LastInterior[playerid] = 0;
  19.     #if defined OPWTP_OnPlayerConnect
  20.         OPWTP_OnPlayerConnect(playerid);
  21.     #endif
  22.     return 1;
  23. }
  24.  
  25. #if defined _ALS_OnPlayerConnect
  26.     #undef OnPlayerConnect
  27. #else
  28.     #define _ALS_OnPlayerConnect
  29. #endif
  30. #define OnPlayerConnect OPWTP_OnPlayerConnect
  31. #if defined OPWTP_OnPlayerConnect
  32.     forward OPWTP_OnPlayerConnect(playerid);
  33. #endif
  34.  
  35. public OnPlayerUpdate(playerid)
  36. {
  37.     if(gettime() > o_UpdateTime[playerid])
  38.     {
  39.         if(o_LastInterior[playerid] == GetPlayerInterior(playerid))
  40.         {
  41.             o_LastInteriorCount[playerid] ++;
  42.         }
  43.         else
  44.         {
  45.             o_LastInteriorCount[playerid] = 0;
  46.         }
  47.         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)
  48.         {
  49.             for(new i; i < MAX_PLAYERS; i ++)
  50.             {
  51.                 if(!IsPlayerConnected(i) || i == playerid) continue;
  52.                 static Float:o_PPos[3];
  53.                 GetPlayerPos(i, o_PPos[0], o_PPos[1], o_PPos[2]);
  54.                 if(IsPlayerInRangeOfPoint(playerid, 30.0, o_PPos[0], o_PPos[1], o_PPos[2]))
  55.                 {
  56.                     CallLocalFunction("OnPlayerWarpToPlayer", "ii", playerid, i);
  57.                     break;
  58.                 }
  59.             }
  60.         }
  61.         o_UpdateTime[playerid] = gettime();
  62.         o_LastInterior[playerid] = GetPlayerInterior(playerid);
  63.         GetPlayerPos(playerid, o_Pos[playerid][0], o_Pos[playerid][1], o_Pos[playerid][2]);
  64.     }
  65.     #if defined OPWTP_OnPlayerUpdate
  66.         OPWTP_OnPlayerUpdate(playerid);
  67.     #endif
  68.     return 1;
  69. }
  70.  
  71. forward OnPlayerWarpToPlayer(playerid, i);
  72. #if defined _ALS_OnPlayerUpdate
  73.     #undef OnPlayerUpdate
  74. #else
  75.     #define _ALS_OnPlayerUpdate
  76. #endif
  77. #define OnPlayerUpdate OPWTP_OnPlayerUpdate
  78. #if defined OPWTP_OnPlayerUpdate
  79.     forward OPWTP_OnPlayerUpdate(playerid);
  80. #endif
  81.  
  82. public OnPlayerSpawn(playerid)
  83. {
  84.     o_Spawned[playerid] = gettime() + 3;
  85.     #if defined OPWTP_OnPlayerSpawn
  86.         OPWTP_OnPlayerSpawn(playerid);
  87.     #endif
  88.     return 1;
  89. }
  90.  
  91. #if defined _ALS_OnPlayerSpawn
  92.     #undef OnPlayerSpawn
  93. #else
  94.     #define _ALS_OnPlayerSpawn
  95. #endif
  96. #define OnPlayerSpawn OPWTP_OnPlayerSpawn
  97. #if defined OPWTP_OnPlayerSpawn
  98.     forward OPWTP_OnPlayerSpawn(playerid);
  99. #endif
  100.  
  101. public OnPlayerDeath(playerid, killerid, reason)
  102. {
  103.     o_Spawned[playerid] = 0;
  104.     #if defined OPWTP_OnPlayerDeath
  105.         OPWTP_OnPlayerDeath(playerid, killerid, reason);
  106.     #endif
  107.     return 1;
  108. }
  109.  
  110. #if defined _ALS_OnPlayerDeath
  111.     #undef OnPlayerDeath
  112. #else
  113.     #define _ALS_OnPlayerDeath
  114. #endif
  115. #define OnPlayerDeath OPWTP_OnPlayerDeath
  116. #if defined OPWTP_OnPlayerDeath
  117.     forward OPWTP_OnPlayerDeath(playerid, killerid, reason);
  118. #endif
  119.  
  120. stock OPWTP_SetPlayerPos(playerid, Float:x, Float:y, Float:z)
  121. {
  122.     o_Pos[playerid][0] = 0;
  123.     return SetPlayerPos(playerid, x, y, z);
  124. }
  125. #if defined _ALS_SetPlayerPos
  126.     #undef SetPlayerPos
  127. #else
  128.     #define _ALS_SetPlayerPos
  129. #endif
  130. #define SetPlayerPos OPWTP_SetPlayerPos
  131.  
  132. stock OPWTP_PutPlayerInVehicle(playerid, vehicleid, seatid)
  133. {
  134.     o_Pos[playerid][0] = 0;
  135.     return PutPlayerInVehicle(playerid, vehicleid, seatid);
  136. }
  137. #if defined _ALS_PutPlayerInVehicle
  138.     #undef PutPlayerInVehicle
  139. #else
  140.     #define _ALS_PutPlayerInVehicle
  141. #endif
  142. #define PutPlayerInVehicle OPWTP_PutPlayerInVehicle
  143.  
  144. stock OPWTP_SetPlayerPosFindZ(playerid, Float:x, Float:y, Float:z)
  145. {
  146.     o_Pos[playerid][0] = 0;
  147.     return SetPlayerPosFindZ(playerid, x, y, z);
  148. }
  149. #if defined _ALS_SetPlayerPosFindZ
  150.     #undef SetPlayerPosFindZ
  151. #else
  152.     #define _ALS_SetPlayerPosFindZ
  153. #endif
  154. #define SetPlayerPosFindZ OPWTP_SetPlayerPosFindZ
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement