Kwarde

Vehicle pick lock

Jan 19th, 2011
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.55 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define COLOR_GREEN 0x00FF00AA
  4. #define COLOR_RED   0xFF0000AA
  5.  
  6. #define CB:%0(%1) forward %0(%1); public %0(%1)
  7.  
  8. new bool:VehicleLocked[MAX_VEHICLES];
  9. new HackStatus[MAX_PLAYERS];
  10. new bool:HasWires[MAX_PLAYERS];
  11. new HackTimer[MAX_PLAYERS];
  12.  
  13. public OnFilterScriptInit()
  14. {
  15.     for(new i = 0; i < MAX_VEHICLES; i++)
  16.         VehicleLocked[i] = true;
  17.     return 1;
  18. }
  19.  
  20. public OnFilterScriptExit() return 1;
  21.  
  22. public OnPlayerConnect(playerid)
  23. {
  24.     HackStatus[playerid] = 0;
  25.     HasWires[playerid] = false;
  26.     KillTimer(HackTimer[playerid]);
  27.     HackTimer[playerid] = (-1);
  28.     return 1;
  29. }
  30.  
  31. public OnPlayerDisconnect(playerid)
  32. {
  33.     HackStatus[playerid] = 0;
  34.     HasWires[playerid] = false;
  35.     KillTimer(HackTimer[playerid]);
  36.     HackTimer[playerid] = (-1);
  37.     return 1;
  38. }
  39.  
  40. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  41. {
  42.     if(newkeys & 512){ //Key "LOOK_BEHIND"
  43.         if(IsPlayerInAnyVehicle(playerid)) return 0;
  44.         if(HackStatus[playerid] > 0) return 0;
  45.         if(!HasWires[playerid]) return SendClientMessage(playerid, COLOR_RED, "* You don't have wires to pick locks!");
  46.         new Float:X, Float:Y, Float:Z;
  47.         for(new v = 0; v < MAX_VEHICLES; v++){
  48.             if(IsIsVehicleStreamedIn(v, playerid)){
  49.                 GetVehiclePos(v, X, Y, Z);
  50.                 if(IsPlayerInRangeOfPoint(playerid, 3, X, Y, Z)){
  51.                     HackTimer[playerid] = SetTimerEx("HackVehicle", 1100, true, "ii", playerid, vehicleid);
  52.                     SendClientMessage(playerid, COLOR_GREEN, "* You're picking the locks.");
  53.                     break;
  54.                 }
  55.                 else continue;
  56.             }
  57.             else continue;
  58.         }
  59.     }
  60.     return 1;
  61. }
  62.  
  63. CB:HackVehicle(playerid, vehicleid)
  64. {
  65.     HackVehicle[playerid]++;
  66.     if(HackVehicle[playerid] >= 5){
  67.         new engine, lights, alarm, doors, bonnet, boot, objective;
  68.         VehicleLocked[vehicleid] = false;
  69.         SendClientMessage(playerid, COLOR_GREEN, "* You've picked the lock. You can now enter the vehicle");
  70.         HackVehicle[playerid] = 0;
  71.         GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  72.         SetVehicleParamsEx(vehicleid, engine, lights, 1, doors, bonnet, boot, objective);
  73.     }
  74.     return 1;
  75. }
  76.  
  77. CB:AlarmOff(vehicleid)
  78. {
  79.     new engine, lights, alarm, doors, bonnet, boot, objective;
  80.     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  81.     SetVehicleParamsEx(vehicleid, engine, lights, 0, doors, bonnet, boot, objective);
  82.     return 1;
  83. }
Add Comment
Please, Sign In to add comment