crank.pwn 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Kareemtastics Change
  2. #include <a_samp>
  3. #include <foreach>
  4. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2])))))return 1
  5. forward IsPlayerInInvalidNosVehicle(playerid,vehicleid);
  6. forward CrankTick();
  7. new cranked[MAX_PLAYERS];
  8. public OnFilterScriptInit()
  9. {
  10. SetTimer("CrankTick", 3500, 1);
  11. }
  12. public OnPlayerCommandText(playerid, cmdtext[])
  13. {
  14. dcmd(crank, 5, cmdtext);
  15. return 0;
  16. }
  17. public OnPlayerStateChange(playerid, newstate, oldstate)
  18. {
  19. if(newstate==PLAYER_STATE_ONFOOT&&oldstate==PLAYER_STATE_DRIVER)
  20. {
  21. cranked[playerid]=0;
  22. }
  23. }
  24. dcmd_crank(playerid, params[])
  25. {
  26. #pragma unused params
  27. if(IsPlayerInInvalidNosVehicle(playerid, GetPlayerVehicleID(playerid))==1){SendClientMessage(playerid,0xAAAAAAAA, "You can't crank this.");return 1;}
  28. AddVehicleComponent(GetPlayerVehicleID(playerid),1087);
  29. AddVehicleComponent(GetPlayerVehicleID(playerid),1075);
  30. AddVehicleComponent(GetPlayerVehicleID(playerid),1010);
  31. SendClientMessage(playerid, 0xFFFFFFFF, "CRANKED");
  32. cranked[playerid]=1;
  33. return 1;
  34. }
  35. public IsPlayerInInvalidNosVehicle(playerid,vehicleid)
  36. {
  37. #define MAX_INVALID_NOS_VEHICLES 30
  38. new InvalidNosVehicles[MAX_INVALID_NOS_VEHICLES] =
  39. {
  40. 581,523,462,521,463,522,461,448,468,586,
  41. 509,481,510,472,473,493,595,484,430,453,
  42. 452,446,454,590,569,537,538,570,449,520
  43. };
  44. vehicleid = GetPlayerVehicleID(playerid);
  45. if(IsPlayerInVehicle(playerid,vehicleid)) {
  46. for(new i = 0; i < MAX_INVALID_NOS_VEHICLES; i++) {
  47. if(GetVehicleModel(vehicleid) == InvalidNosVehicles[i])
  48. {
  49. return true;
  50. }
  51. }
  52. }
  53. return 0;
  54. }
  55. public CrankTick()
  56. {
  57. foreach(Player, i)
  58. {
  59. if(!cranked[i]) continue;
  60. {
  61. if(!IsPlayerInInvalidNosVehicle(i, GetPlayerVehicleID(i))){AddVehicleComponent(GetPlayerVehicleID(i),1010);}
  62. }
  63. }
  64. }