AndY56

Untitled

Jan 16th, 2019 (edited)
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.00 KB | None | 0 0
  1. #if defined _frobj_included
  2. #endinput
  3. #endif
  4. #define _frobj_included
  5.  
  6. static playerNewTimer[MAX_PLAYERS];
  7. static playerDelTimer[MAX_PLAYERS];
  8. static playerSupObject0[MAX_PLAYERS];
  9. static playerSupObject1[MAX_PLAYERS];
  10.  
  11. static stock SetPlayerPosN(playerid, Float:pos_x, Float:pos_y, Float:pos_z, suppobj, type)
  12. {
  13. if(!IsPlayerConnected(playerid)) return 0;
  14. if(!suppobj)
  15. {
  16. if(!type) SetPlayerPos(playerid, pos_x, pos_y, pos_z);
  17. else SetPlayerPosFindZ(playerid, pos_x, pos_y, pos_z);
  18. return 1;
  19. }
  20. TogglePlayerControllable(playerid, 0);
  21. SetPlayerObjectPos(playerid, playerSupObject0[playerid], pos_x, pos_y, (pos_z - 1.15));
  22.  
  23. new ping = GetPlayerPing(playerid);
  24. if(ping > 1000) ping = 1000;
  25. if(playerDelTimer[playerid]) KillTimer(playerDelTimer[playerid]);
  26. playerDelTimer[playerid] = SetTimerEx("fr_NextDel", (ping * 10) + 2000, 0, "ii", playerid, 0);
  27.  
  28. if(playerNewTimer[playerid]) KillTimer(playerNewTimer[playerid]);
  29. playerNewTimer[playerid] = SetTimerEx("fr_NextTp", (ping + 100), 0, "iifff", playerid, type, pos_x, pos_y, pos_z);
  30. return 1;
  31. }
  32.  
  33. forward fr_NextDel(playerid, objmod);
  34. public fr_NextDel(playerid, objmod)
  35. {
  36. playerDelTimer[playerid] = 0;
  37. TogglePlayerControllable(playerid, 1);
  38.  
  39. new Float:pos_x, Float:pos_y, Float:pos_z;
  40. if(!objmod)
  41. {
  42. GetPlayerObjectPos(playerid, playerSupObject0[playerid], pos_x, pos_y, pos_z);
  43. SetPlayerObjectPos(playerid, playerSupObject0[playerid], 5000.0, 5000.0, 5000.0);
  44. }
  45. else
  46. {
  47. GetPlayerObjectPos(playerid, playerSupObject1[playerid], pos_x, pos_y, pos_z);
  48. SetPlayerObjectPos(playerid, playerSupObject1[playerid], 5000.0, 5000.0, 5000.0);
  49. }
  50. if(pos_x != 5000.0) SetPlayerPos(playerid, pos_x, pos_y, (pos_z + 1.15));
  51. }
  52.  
  53. forward fr_NextTp(playerid, type, Float:pos_x, Float:pos_y, Float:pos_z);
  54. public fr_NextTp(playerid, type, Float:pos_x, Float:pos_y, Float:pos_z)
  55. {
  56. playerNewTimer[playerid] = 0;
  57. if(!type) SetPlayerPos(playerid, pos_x, pos_y, pos_z);
  58. else SetPlayerPosFindZ(playerid, pos_x, pos_y, pos_z);
  59. }
  60.  
  61. public OnPlayerConnect(playerid)
  62. {
  63. playerDelTimer[playerid] = 0;
  64. playerNewTimer[playerid] = 0;
  65. playerSupObject0[playerid] = CreatePlayerObject(playerid, 19356, 5000.0, 5000.0, 5000.0, 0.0, 90.0, 0.0, 20000.0);
  66. playerSupObject1[playerid] = CreatePlayerObject(playerid, 19356, 5000.0, 5000.0, 5000.0, 0.0, 90.0, 0.0, 20000.0);
  67. #if defined fr_OnPlayerConnect
  68. return fr_OnPlayerConnect(playerid);
  69. #else
  70. return 1;
  71. #endif
  72. }
  73. #if defined _ALS_OnPlayerConnect
  74. #undef OnPlayerConnect
  75. #else
  76. #define _ALS_OnPlayerConnect
  77. #endif
  78. #define OnPlayerConnect fr_OnPlayerConnect
  79. #if defined fr_OnPlayerConnect
  80. forward fr_OnPlayerConnect(playerid);
  81. #endif
  82.  
  83. public OnPlayerDisconnect(playerid, reason)
  84. {
  85. if(playerDelTimer[playerid]) KillTimer(playerDelTimer[playerid]);
  86. if(playerNewTimer[playerid]) KillTimer(playerNewTimer[playerid]);
  87. #if defined fr_OnPlayerDisconnect
  88. return fr_OnPlayerDisconnect(playerid, reason);
  89. #else
  90. return 1;
  91. #endif
  92. }
  93. #if defined _ALS_OnPlayerDisconnect
  94. #undef OnPlayerDisconnect
  95. #else
  96. #define _ALS_OnPlayerDisconnect
  97. #endif
  98. #if defined fr_OnPlayerDisconnect
  99. forward fr_OnPlayerDisconnect(playerid, reason);
  100. #endif
  101. #define OnPlayerDisconnect fr_OnPlayerDisconnect
  102.  
  103. public OnPlayerSpawn(playerid)
  104. {
  105. new ping = GetPlayerPing(playerid);
  106. if(ping > 1000) ping = 1000;
  107. if(playerDelTimer[playerid]) KillTimer(playerDelTimer[playerid]);
  108. playerDelTimer[playerid] = SetTimerEx("fr_NextDel", (ping * 10) + 2000, 0, "ii", playerid, 1);
  109.  
  110. TogglePlayerControllable(playerid, 0);
  111. #if defined fr_OnPlayerSpawn
  112. return fr_OnPlayerSpawn(playerid);
  113. #else
  114. return 1;
  115. #endif
  116. }
  117. #if defined _ALS_OnPlayerSpawn
  118. #undef OnPlayerSpawn
  119. #else
  120. #define _ALS_OnPlayerSpawn
  121. #endif
  122. #if defined fr_OnPlayerSpawn
  123. forward fr_OnPlayerSpawn(playerid);
  124. #endif
  125. #define OnPlayerSpawn fr_OnPlayerSpawn
  126.  
  127. stock fr_SetSpawnInfo(playerid, team, skin, Float:pos_x, Float:pos_y, Float:pos_z, Float:pos_a, weap0, ammo0, weap1, ammo1, weap2, ammo2)
  128. {
  129. if(!IsPlayerConnected(playerid)) return 0;
  130. SetPlayerObjectPos(playerid, playerSupObject1[playerid], pos_x, pos_y, (pos_z - 1.15));
  131. return SetSpawnInfo(playerid, team, skin, pos_x, pos_y, pos_z, pos_a, weap0, ammo0, weap1, ammo1, weap2, ammo2);
  132. }
  133. #if defined _ALS_SetSpawnInfo
  134. #undef SetSpawnInfo
  135. #else
  136. #define _ALS_SetSpawnInfo
  137. #endif
  138. #define SetSpawnInfo fr_SetSpawnInfo
  139.  
  140. stock fr_SetPlayerPos(playerid, Float:pos_x, Float:pos_y, Float:pos_z, suppobj = 1) return SetPlayerPosN(playerid, pos_x, pos_y, pos_z, suppobj, 0);
  141. #if defined _ALS_SetPlayerPos
  142. #undef SetPlayerPos
  143. #else
  144. #define _ALS_SetPlayerPos
  145. #endif
  146. #define SetPlayerPos fr_SetPlayerPos
  147.  
  148. stock fr_SetPlayerPosFindZ(playerid, Float:pos_x, Float:pos_y, Float:pos_z, suppobj = 1) return SetPlayerPosN(playerid, pos_x, pos_y, pos_z, suppobj, 1);
  149. #if defined _ALS_SetPlayerPosFindZ
  150. #undef SetPlayerPosFindZ
  151. #else
  152. #define _ALS_SetPlayerPosFindZ
  153. #endif
  154. #define SetPlayerPosFindZ fr_SetPlayerPosFindZ
Add Comment
Please, Sign In to add comment