Advertisement
gamer931215

OnPlayerJackVehicle 1.1

Aug 20th, 2011
1,289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.89 KB | None | 0 0
  1. /*
  2.     OPJV - OnPlayerJackVehicle by Gamer931215
  3.     Inspired by OnPlayerShootPlayer and OnPlayerDamageVehicle by Wups
  4.  
  5.     Free to use/distribute as long you keep these credits on top!
  6. */
  7.  
  8. #include <a_samp>
  9.  
  10. #if defined OPJV_INC
  11.     #endinput
  12. #endif
  13. #define OPJV_INC
  14. #define HOLDING(%0) \
  15.     ((newkeys & (%0)) == (%0))
  16. #define RELEASED(%0) \
  17.     (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
  18. #define PRESSED(%0) \
  19.     (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  20. #tryinclude <foreach>
  21.  
  22. #if !defined foreach
  23.     #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  24.     #define __SSCANF_FOREACH__
  25. #endif
  26.  
  27. enum _pInfo
  28. {
  29.     bool:IsPlayerHoldingNinjaKeys,
  30.     PlayerJackingPlayerid
  31. }
  32. new JackDetails[MAX_PLAYERS][_pInfo];
  33. forward OnPlayerJackVehicle(playerid,victimid,vehicleid,bool:ninjajack);
  34. forward OnPlayerGotJacked(playerid,jackerid,vehicleid);
  35.  
  36. public OnPlayerConnect(playerid)
  37. {
  38.     JackDetails[playerid][PlayerJackingPlayerid] = -1;
  39.     JackDetails[playerid][IsPlayerHoldingNinjaKeys] = false;
  40.     return CallLocalFunction("OPJV_OnPlayerConnect","i",playerid);
  41. }
  42. #if defined _ALS_OnPlayerConnect
  43.     #undef OnPlayerConnect
  44. #else
  45.     #define _ALS_OnPlayerConnect
  46. #endif
  47. #define OnPlayerConnect OPJV_OnPlayerConnect
  48. forward OPJV_OnPlayerConnect(playerid);
  49.  
  50. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  51. {
  52.     if(!ispassenger)
  53.     {
  54.         foreach(Player,i)
  55.         {
  56.             if(!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i)) continue;
  57.             if(playerid != i && GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  58.             {
  59.                 JackDetails[i][PlayerJackingPlayerid] = playerid;
  60.                 CallLocalFunction("OnPlayerJackVehicle","iiib",playerid,i,vehicleid,JackDetails[playerid][IsPlayerHoldingNinjaKeys]);
  61.                 SetTimerEx("OPJV_ResetPlayerJack",15000,false,"i",i);
  62.             }
  63.         }
  64.     }
  65.     return CallLocalFunction("OPJV_OnPlayerEnterVehicle","iii",playerid,vehicleid,ispassenger);
  66. }
  67. #if defined _ALS_OnPlayerEnterVehicle
  68.     #undef OnPlayerEnterVehicle
  69. #else
  70.     #define _ALS_OnPlayerEnterVehicle
  71. #endif
  72. #define OnPlayerEnterVehicle OPJV_OnPlayerEnterVehicle
  73. forward OPJV_OnPlayerEnterVehicle(playerid,vehicleid,ispassenger);
  74.  
  75. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  76. {
  77.     if (HOLDING(KEY_SPRINT) || PRESSED(KEY_SPRINT) || RELEASED(KEY_SPRINT))
  78.     {
  79.         if(JackDetails[playerid][IsPlayerHoldingNinjaKeys] == false)
  80.         {
  81.             JackDetails[playerid][IsPlayerHoldingNinjaKeys] = true;
  82.             SetTimerEx("OPJV_ResetPlayerKeys",2000,false,"i",playerid);
  83.         }
  84.     }
  85.     return CallLocalFunction("OPJV_OnPlayerKeyStateChange","iii",playerid,newkeys,oldkeys);
  86. }
  87. #if defined _ALS_OnPlayerKeyStateChange
  88.     #undef OnPlayerKeyStateChange
  89. #else
  90.     #define _ALS_OnPlayerKeyStateChange
  91. #endif
  92. #define OnPlayerKeyStateChange OPJV_OnPlayerKeyStateChange
  93. forward OPJV_OnPlayerKeyStateChange(playerid,newkeys,oldkeys);
  94.  
  95. public OnPlayerStateChange(playerid,newstate,oldstate)
  96. {
  97.     if(oldstate == PLAYER_STATE_DRIVER && JackDetails[playerid][PlayerJackingPlayerid] > -1 && GetPlayerVehicleID(JackDetails[playerid][PlayerJackingPlayerid]) == GetPlayerVehicleID(playerid))
  98.     {
  99.         CallLocalFunction("OnPlayerGotJacked","iii",playerid,JackDetails[playerid][PlayerJackingPlayerid],GetPlayerVehicleID(playerid));
  100.     }
  101.     return CallLocalFunction("OPJV_OnPlayerStateChange","iii",playerid,newstate,oldstate);
  102. }
  103. #if defined _ALS_OnPlayerStateChange
  104.     #undef OnPlayerStateChange
  105. #else
  106.     #define _ALS_OnPlayerStateChange
  107. #endif
  108. #define OnPlayerStateChange OPJV_OnPlayerStateChange
  109. forward OPJV_OnPlayerStateChange(playerid,newstate,oldstate);
  110.  
  111. forward OPJV_ResetPlayerJack(playerid);
  112. public OPJV_ResetPlayerJack(playerid)
  113. {
  114.     JackDetails[playerid][PlayerJackingPlayerid] = -1;
  115. }
  116.  
  117. forward OPJV_ResetPlayerKeys(playerid);
  118. public OPJV_ResetPlayerKeys(playerid)
  119. {
  120.     JackDetails[playerid][IsPlayerHoldingNinjaKeys] = false;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement