vehauto.pwn 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #include <YSI\y_hooks>
  2. #define VEHICLE_PARAMS_TOG 10030
  3. hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
  4. new vehicleid = GetPlayerVehicleID(playerid);
  5. szMiscArray[0] = 0;
  6. if((newkeys & KEY_YES) && vehicleid != INVALID_VEHICLE_ID && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
  7. //if(!AC_KeySpamCheck(playerid)) return 1;
  8. new engine,lights,alarm,doors,bonnet,boot,objective;
  9. if(GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 510 || DynVeh[vehicleid] != -1 && DynVehicleInfo[DynVeh[vehicleid]][gv_iType] == 1 && GetVehicleModel(vehicleid) == 592) return SendClientMessageEx(playerid,COLOR_WHITE,"This command can't be used in this vehicle.");
  10. if(WheelClamp{vehicleid}) return SendClientMessageEx(playerid,COLOR_WHITE,"(( This vehicle has a wheel camp on its front tire, you will not be able to drive away with it. ))");
  11. GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
  12. if(engine == VEHICLE_PARAMS_ON)
  13. {
  14. SetVehicleEngine(vehicleid, playerid);
  15. format(szMiscArray, sizeof(szMiscArray), "{FF8000}** {C2A2DA}%s turns the key in the ignition and the engine stops.", GetPlayerNameEx(playerid));
  16. ProxDetector(30.0, playerid, szMiscArray, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  17. }
  18. else if((engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET))
  19. {
  20. if (GetPVarInt(playerid, "Refueling")) return SendClientMessageEx(playerid, COLOR_WHITE, "You can't do this while refueling.");
  21. // if(!Vehicle_LockCheck(playerid, vehicleid)) return 1;
  22. format(szMiscArray, sizeof(szMiscArray), "{FF8000}** {C2A2DA}%s turns the key in the ignition and the engine starts.", GetPlayerNameEx(playerid));
  23. ProxDetector(30.0, playerid, szMiscArray, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  24. SendClientMessageEx(playerid, COLOR_WHITE, "Vehicle engine starting, please wait...");
  25. SetTimerEx("SetVehicleEngine", 1000, 0, "dd", vehicleid, playerid);
  26. RemoveVehicleFromMeter(vehicleid);
  27. }
  28. }
  29. if((newkeys & KEY_LOOK_BEHIND) && vehicleid != INVALID_VEHICLE_ID && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
  30. if(!IsAPlane(vehicleid)) {
  31. ShowVehicleMenu(playerid, vehicleid);
  32. }
  33. }
  34. return 1;
  35. }
  36. stock Vehicle_LockCheck(playerid, iVehID) {
  37. new v;
  38. foreach(new i: Player) {
  39. v = GetPlayerVehicle(i, iVehID);
  40. if(v != -1) {
  41. if(IsABike(iVehID)) {
  42. if(PlayerVehicleInfo[i][v][pvLocked] == 1 && PlayerVehicleInfo[i][v][pvLock] > 0 && PlayerVehicleInfo[i][v][pvLocksLeft] > 0) {
  43. SendClientMessageEx(playerid, COLOR_WHITE, "This bike is currently locked.");
  44. return 0;
  45. }
  46. }
  47. }
  48. }
  49. return 1;
  50. }
  51. ShowVehicleMenu(playerid, vehicleid) {
  52. szMiscArray[0] = 0;
  53. new engine, lights, alarm, doors, bonnet, boot, objective;
  54. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  55. format(szMiscArray, sizeof(szMiscArray), "Item\tStatus\n\
  56. Seatbelt or Helmet\t%s\n\
  57. Lights\t%s\n\
  58. Bonnet\t%s\n\
  59. Boot\t%s",
  60. ((Seatbelt[playerid] == 0) ? ("Off") : ("On")),
  61. ((lights == VEHICLE_PARAMS_OFF) ? ("Off") : ("On")),
  62. ((bonnet == VEHICLE_PARAMS_OFF) ? ("Closed") : ("Open")),
  63. ((boot == VEHICLE_PARAMS_OFF) ? ("Closed") : ("Open"))
  64. );
  65. ShowPlayerDialogEx(playerid, VEHICLE_PARAMS_TOG, DIALOG_STYLE_TABLIST_HEADERS, "Vehicle Options", szMiscArray, "Select", "Cancel");
  66. }
  67. hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  68. if(arrAntiCheat[playerid][ac_iFlags][AC_DIALOGSPOOFING] > 0) return 1;
  69. switch(dialogid) {
  70. case VEHICLE_PARAMS_TOG: {
  71. if(!response) return 1;
  72. new vehicleid = GetPlayerVehicleID(playerid);
  73. switch(listitem) {
  74. case 0: {
  75. if(IsABike(vehicleid)) {
  76. cmd_hm(playerid, "");
  77. }
  78. else cmd_sb(playerid, "");
  79. }
  80. case 1: SetVehicleLights(vehicleid, playerid);// lights
  81. case 2: SetVehicleHood(vehicleid, playerid);// bonnet
  82. case 3: SetVehicleTrunk(vehicleid, playerid);// boot
  83. }
  84. }
  85. }
  86. return 0;
  87. }