Advertisement
Guest User

Anti-AirBreak

a guest
Nov 10th, 2014
1,212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.63 KB | None | 0 0
  1. //----------------------------------------------
  2. //--- Anti AirBreak por: dimmy_scarface/ForT ---
  3. //-----------------09/11/2014-------------------
  4. //----------------------------------------------
  5.  
  6.  
  7.  
  8. #if defined aB_Include
  9.     #endinput
  10. #endif
  11. #define aB_Include
  12.  
  13.  
  14.  
  15. #include <a_samp>
  16. #include <foreach>
  17.  
  18.  
  19. #define AIRBREAK_DISTANCIA  105.0
  20. #define aB_Func:%0(%1)\
  21.         forward %0(%1);public %0(%1)
  22.  
  23. enum A_B
  24. {
  25.     aB_Aguardo,
  26.     Float:aB_Pos[3],
  27.     Float:aB_SetPos[3],
  28. };
  29.  
  30. new
  31.     aB_Info[MAX_PLAYERS][A_B]
  32.     ;
  33.  
  34. aB_Func: aB_Timer(){
  35.  
  36.     new
  37.         aB_SurfVehicle,
  38.         aB_SurfObject,
  39.         aB_State,
  40.         Float:aB_AtualPos[3],
  41.         Float:aB_Range
  42.     ;
  43.  
  44.     foreach(Player, aB_Player){
  45.  
  46.  
  47.         GetPlayerPos(aB_Player, aB_AtualPos[0], aB_AtualPos[1], aB_AtualPos[2]);
  48.  
  49.         aB_SurfVehicle  = GetPlayerSurfingVehicleID(aB_Player);
  50.         aB_SurfObject   = GetPlayerSurfingObjectID(aB_Player);
  51.         aB_State        = GetPlayerState(aB_Player);
  52.         aB_Range        = AIRBREAK_DISTANCIA;
  53.  
  54.         if(aB_State == PLAYER_STATE_DRIVER || GetPlayerPing(aB_Player) > 500){
  55.  
  56.             aB_Range += 45.0;
  57.         }
  58.  
  59.         if(aB_SurfVehicle == INVALID_VEHICLE_ID && aB_SurfObject == INVALID_OBJECT_ID && (aB_State == 1 || aB_State == 2)){
  60.  
  61.             if(!IsPlayerInRangeOfPoint(aB_Player, aB_Range, aB_Info[aB_Player][aB_Pos][0], aB_Info[aB_Player][aB_Pos][1], aB_Info[aB_Player][aB_Pos][2])
  62.             && !IsPlayerInRangeOfPoint(aB_Player, 10.0, aB_Info[aB_Player][aB_SetPos][0], aB_Info[aB_Player][aB_SetPos][1], aB_Info[aB_Player][aB_SetPos][2])){
  63.  
  64.                 if(gettime() > aB_Info[aB_Player][aB_Aguardo])CallLocalFunction("OnPlayerAirBreak", "i", aB_Player);
  65.             }
  66.         }
  67.  
  68.         aB_SavePos(aB_Player, aB_AtualPos[0], aB_AtualPos[1], aB_AtualPos[2]);
  69.     }
  70. }
  71.  
  72. stock aB_SavePos(playerid, Float:x, Float:y, Float:z){
  73.  
  74.     aB_Info[playerid][aB_Pos][0] = x;
  75.     aB_Info[playerid][aB_Pos][1] = y;
  76.     aB_Info[playerid][aB_Pos][2] = z;
  77.  
  78.     aB_Info[playerid][aB_Aguardo] = gettime() + 2;
  79. }
  80.  
  81. aB_Func: aB_SetPlayerPos(playerid, Float:x, Float:y, Float:z){
  82.  
  83.     aB_SavePos(playerid, x, y, z);
  84.  
  85.     aB_Info[playerid][aB_SetPos][0] = x;
  86.     aB_Info[playerid][aB_SetPos][1] = y;
  87.     aB_Info[playerid][aB_SetPos][2] = z;
  88.  
  89.     return SetPlayerPos(playerid, x, y, z);
  90. }
  91.  
  92. aB_Func: aB_PutPlayerInVehicle(playerid, vehicleid, seatid){
  93.  
  94.     static
  95.         Float:aB_VehiclePos[3]
  96.     ;
  97.  
  98.     GetVehiclePos(vehicleid, aB_VehiclePos[0], aB_VehiclePos[1], aB_VehiclePos[2]);
  99.  
  100.     aB_SavePos(playerid, aB_VehiclePos[0], aB_VehiclePos[1], aB_VehiclePos[2]);
  101.  
  102.     aB_Info[playerid][aB_SetPos][0] = aB_VehiclePos[0];
  103.     aB_Info[playerid][aB_SetPos][1] = aB_VehiclePos[1];
  104.     aB_Info[playerid][aB_SetPos][2] = aB_VehiclePos[2];
  105.  
  106.     return PutPlayerInVehicle(playerid, vehicleid, seatid);
  107. }
  108.  
  109.  
  110.  
  111. public OnGameModeInit(){
  112.  
  113.     SetTimer("aB_Timer", 1000, 1);
  114.  
  115.     return CallLocalFunction("aB_OnGameModeInit", #);
  116. }
  117. forward aB_OnGameModeInit();
  118. #if defined _ALS_OnGameModeInit
  119.     #undef OnGameModeInit
  120. #else
  121.     #define _ALS_OnGameModeInit
  122. #endif
  123. #define OnGameModeInit aB_OnGameModeInit
  124.  
  125.  
  126.  
  127. public OnPlayerSpawn(playerid){
  128.  
  129.     aB_Info[playerid][aB_Aguardo] = gettime() + 4;
  130.  
  131.     return CallLocalFunction("aB_OnPlayerSpawn", "i", playerid);
  132. }
  133. forward aB_OnPlayerSpawn(playerid);
  134. #if defined _ALS_OnPlayerSpawn
  135.     #undef OnPlayerSpawn
  136. #else
  137.     #define _ALS_OnPlayerSpawn
  138. #endif
  139. #define OnPlayerSpawn aB_OnPlayerSpawn
  140.  
  141.  
  142. #if defined _ALS_SetPlayerPos
  143.     #undef SetPlayerPos
  144. #else
  145.     #define _ALS_SetPlayerPos
  146. #endif
  147.  
  148. #if defined _ALS_PutPlayerInVehicle
  149.     #undef PutPlayerInVehicle
  150. #else
  151.     #define _ALS_PutPlayerInVehicle
  152. #endif
  153.  
  154. #define SetPlayerPos            aB_SetPlayerPos
  155. #define PutPlayerInVehicle      aB_PutPlayerInVehicle
  156.  
  157. forward OnPlayerAirBreak(playerid);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement