Advertisement
Guest User

Knight Rider Mod v0.2 By RoamPT

a guest
Apr 9th, 2010
1,207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 10.92 KB | None | 0 0
  1. //------------------------------------------------------------------------------------------//
  2. //                                                                                          //
  3. //                         Knight Rider Mod v0.2 by RoamPT                                  //
  4. //                                 More to come                                             //
  5. //  Credits to: SA-MP for their Velocity Function System and RoamPT for doing this sh*t...  //
  6. //                                                                                          //
  7. //------------------------------------------------------------------------------------------//
  8.  
  9. #include <a_samp>
  10.  
  11. #define COLOR_WHITE 0xFFFFFFFF
  12. #define COLOR_GREEN 0x9EC73DAA
  13. #define COLOR_LIGHTRED 0xFF6347AA
  14. #define COLOR_YELLOW 0xDABB3EAA
  15.  
  16. #define FILTERSCRIPT
  17.  
  18. #define PRESSED(%0) \
  19.     (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  20.  
  21. #if defined FILTERSCRIPT
  22.  
  23. new
  24.     TurboBoost[MAX_PLAYERS],
  25.     Attackmod[MAX_PLAYERS],
  26.     kitt[1];
  27.  
  28. forward TurboBoostTime(playerid);
  29. forward AutoRepair();
  30.  
  31. public OnFilterScriptInit()
  32. {
  33.     print("\n--------------------------------------");
  34.     print(" Knight Rider Mod by RoamPT");
  35.     print("--------------------------------------\n");
  36.  
  37.     kitt[0] = AddStaticVehicle(603, 677.4329, -1411.2749, 13.1716, 270.3696, 0, 13); // Knight Industries Three Thousand
  38.     SetTimer("AutoRepair", 500, 1);
  39.     return 1;
  40. }
  41.  
  42. public OnFilterScriptExit()
  43. {
  44.     return 1;
  45. }
  46.  
  47. #else
  48.  
  49. #endif
  50.  
  51. public OnPlayerConnect(playerid)
  52. {
  53.     SendClientMessage(playerid,COLOR_YELLOW,"Knight Rider Mod by RoamPT");
  54.     SendClientMessage(playerid,COLOR_YELLOW,"Type /attackmod to turn your car to the attack mode! Use the Sub-Mission key for the Turbo Boost!");
  55.     SendClientMessage(playerid,COLOR_YELLOW,"Also use Numpad 2 Key for 4x4 Mode and Numpad 8 Key for Normal Mode!");
  56.     return 1;
  57. }
  58.  
  59. public OnPlayerDisconnect(playerid, reason)
  60. {
  61.     return 1;
  62. }
  63.  
  64. public OnPlayerSpawn(playerid)
  65. {
  66.     return 1;
  67. }
  68.  
  69. public OnVehicleDeath(vehicleid, killerid)
  70. {
  71.     Attackmod[vehicleid] = 0;
  72.     return 1;
  73. }
  74.  
  75. public OnVehicleSpawn(vehicleid)
  76. {
  77.     return 1;
  78. }
  79.  
  80. public OnPlayerText(playerid, text[])
  81. {
  82.     return 1;
  83. }
  84.  
  85. public OnPlayerCommandText(playerid, cmdtext[])
  86. {
  87.     if(!strcmp(cmdtext, "/kitt", true))
  88.     {
  89.         SetPlayerPos(playerid, 677.4329, -1411.2749, 13.1716);
  90.         return 1;
  91.     }
  92.     if (strcmp("/attackmod", cmdtext, true, 10) == 0)
  93.     {
  94.         if(IsPlayerInVehicle(playerid, kitt[0]) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  95.         {
  96.             if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 603)
  97.             {
  98.                 if(Attackmod[playerid] == 0)
  99.                 {
  100.                     AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); // Nitro
  101.                     AddVehicleComponent(GetPlayerVehicleID(playerid), 1087); // Hydraulics
  102.                     AddVehicleComponent(GetPlayerVehicleID(playerid), 1001); // Spoiler
  103.                     AddVehicleComponent(GetPlayerVehicleID(playerid), 1006); // Roof Scoop
  104.                     AddVehicleComponent(GetPlayerVehicleID(playerid), 1019); // Exhaust
  105.                     AddVehicleComponent(GetPlayerVehicleID(playerid), 1007); // Left Side Skirt
  106.                     AddVehicleComponent(GetPlayerVehicleID(playerid), 1017); // Right Side Skirt
  107.                     AddVehicleComponent(GetPlayerVehicleID(playerid), 1074); // Mega Wheels
  108.                     PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
  109.                     SendClientMessage(playerid,COLOR_GREEN,"You have activated the Attack Mode!");
  110.                     Attackmod[playerid] = 1;
  111.                  }
  112.                  else if(Attackmod[playerid] == 1)
  113.                  {
  114.                     RemoveVehicleComponent(GetPlayerVehicleID(playerid),1010); // Removes Nitro
  115.                     RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1087); // Removes Hydraulics
  116.                     RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1001); // Removes Spoiler
  117.                     RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1006); // Removes Roof Scoop
  118.                     RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1019); // Removes Exhaust
  119.                     RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1007); // Removes Left Side Skirt
  120.                     RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1017); // Removes Right Side Skirt
  121.                     RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1074); // Removes Mega Wheels
  122.                     SendClientMessage(playerid,COLOR_GREEN,"You have deactivated the Attack Mode!");
  123.                     Attackmod[playerid] = 0;
  124.                     return 1;
  125.                 }
  126.             }
  127.             else
  128.             {
  129.                 SendClientMessage(playerid, COLOR_LIGHTRED, "You can't use attack mode while your in 4x4 mode!");
  130.             }
  131.         }
  132.         return 1;
  133.     }
  134.     return 0;
  135. }
  136.  
  137. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  138. {
  139.     new string[256];
  140.     new plname[MAX_PLAYER_NAME];
  141.     GetPlayerName(playerid, plname, sizeof(plname));
  142.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER, kitt[0])
  143.     {
  144.         format(string, sizeof(string), "KITT: Welcome %s, you can use /attackmode(for more speed) and Sub-Mission key for the Turbo Boost!", plname);
  145.         SendClientMessage(playerid, COLOR_WHITE, string);
  146.         SendClientMessage(playerid,COLOR_WHITE,"Use Numpad 2 Key for 4x4 Mode and Numpad 8 Key for Normal Mode!");
  147.     }
  148.     return 1;
  149. }
  150.  
  151. public OnPlayerExitVehicle(playerid, vehicleid)
  152. {
  153.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER, kitt[0])
  154.     {
  155.         if(Attackmod[playerid] == 1)
  156.         {
  157.             RemoveVehicleComponent(GetPlayerVehicleID(playerid),1010); // Removes Nitro
  158.             RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1087); // Removes Hydraulics
  159.             RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1001); // Removes Spoiler
  160.             RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1006); // Removes Roof Scoop
  161.             RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1019); // Removes Exhaust
  162.             RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1007); // Removes Left Side Skirt
  163.             RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1017); // Removes Right Side Skirt
  164.             RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1074); // Removes Mega Wheels
  165.             SendClientMessage(playerid,COLOR_LIGHTRED,"Attack Mode deactivated!");
  166.             Attackmod[playerid] = 0;
  167.         }
  168.         return 1;
  169.     }
  170.     return 1;
  171. }
  172.  
  173. public OnPlayerStateChange(playerid, newstate, oldstate)
  174. {
  175.     return 1;
  176. }
  177.  
  178. public OnVehicleMod(playerid, vehicleid, componentid)
  179. {
  180.     return 1;
  181. }
  182.  
  183. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  184. {
  185.     return 1;
  186. }
  187.  
  188. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  189. {
  190.     return 1;
  191. }
  192.  
  193. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  194. {
  195.     if(IsPlayerInVehicle(playerid, kitt[0]) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  196.     {
  197.         if (PRESSED(KEY_SUBMISSION))
  198.         {
  199.             if(TurboBoost[playerid] == 1)
  200.             {
  201.                 SendClientMessage(playerid, COLOR_LIGHTRED, "Wait 15 seconds before using the Turbo Boost again!");
  202.                 return 1;
  203.             }
  204.             TurboBoost[playerid] = 1;
  205.             SetTimerEx("TurboBoostTime", 15000, false, "i", playerid);
  206.             new Float:x, Float:y, Float:z;
  207.             GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
  208.             SetVehicleVelocity(GetPlayerVehicleID(playerid) ,x ,y ,z+0.3);
  209.             SendClientMessage(playerid,COLOR_GREEN,"You have activated the Turbo Boost!");
  210.             GameTextForPlayer(playerid, "~g~Turbo Boost!", 5000, 3);
  211.         }
  212.     }
  213.     if(IsPlayerInVehicle(playerid, kitt[0]) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  214.     {
  215.         if(Attackmod[playerid] == 1)
  216.         {
  217.             new Keys,up,down;
  218.             GetPlayerKeys(playerid,Keys,up,down);
  219.             new Float:x,Float:y,Float:z;
  220.             if(Keys &= 4)
  221.             {
  222.                 GetVehicleVelocity(GetPlayerVehicleID(playerid),x,y,z);
  223.                 SetVehicleVelocity(GetPlayerVehicleID(playerid),x*1.5,y*1.5,z*1.5);
  224.             }
  225.         }
  226.     }
  227.     if (newkeys & KEY_ANALOG_DOWN) // Change it to 4x4 mode, numpad 2 key
  228.     {
  229.         if(IsPlayerInVehicle(playerid, kitt[0]) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  230.         {
  231.             new
  232.                 Float:info[7],
  233.                 seat;
  234.  
  235.             for(new v=0; v<MAX_PLAYERS; v++)
  236.             {
  237.                 if(IsPlayerInVehicle(v, kitt[0]))
  238.                 {
  239.                     seat = GetPlayerVehicleSeat(v);
  240.                     GetVehicleVelocity(kitt[0],info[4],info[5],info[6]);
  241.                     GetVehiclePos(kitt[0],info[0],info[1],info[2]);
  242.                     GetVehicleZAngle(kitt[0],info[3]);
  243.                     DestroyVehicle(kitt[0]);
  244.                     kitt[0] = AddStaticVehicle(554,info[0],info[1],info[2],info[3],0, 0);
  245.                     PutPlayerInVehicle(playerid,kitt[0],0);
  246.                     PlayerPlaySound(playerid,1133,0,0,0);
  247.                     PutPlayerInVehicle(v, kitt[0], seat);
  248.                     SetVehicleVelocity(kitt[0],info[4],info[5],info[6]);
  249.                     SendClientMessage(playerid,COLOR_GREEN,"You have switched to 4x4 mode!");
  250.                 }
  251.                 if(Attackmod[playerid] == 1)
  252.                 {
  253.                     SendClientMessage(playerid,COLOR_LIGHTRED,"Attack Mode deactivated!");
  254.                     Attackmod[playerid] = 0;
  255.                 }
  256.             }
  257.         }
  258.         return 1;
  259.     }
  260.     if (newkeys & KEY_ANALOG_UP) // Change it to normal mode, numpad 8 key
  261.     {
  262.         if(IsPlayerInVehicle(playerid, kitt[0]) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  263.         {
  264.             new
  265.                 Float:info[7],
  266.                 seat;
  267.  
  268.             for(new v=0; v<MAX_PLAYERS; v++)
  269.             {
  270.                 if(IsPlayerInVehicle(v, kitt[0]))
  271.                 {
  272.                     seat = GetPlayerVehicleSeat(v);
  273.                     GetVehicleVelocity(kitt[0],info[4],info[5],info[6]);
  274.                     GetVehiclePos(kitt[0],info[0],info[1],info[2]);
  275.                     GetVehicleZAngle(kitt[0],info[3]);
  276.                     DestroyVehicle(kitt[0]);
  277.                     kitt[0] = AddStaticVehicle(603,info[0],info[1],info[2],info[3],0, 13);
  278.                     PutPlayerInVehicle(playerid,kitt[0],0);
  279.                     PlayerPlaySound(playerid,1133,0,0,0);
  280.                     PutPlayerInVehicle(v, kitt[0], seat);
  281.                     SetVehicleVelocity(kitt[0],info[4],info[5],info[6]);
  282.                     SendClientMessage(playerid,COLOR_GREEN,"You have switched to the Normal mode!");
  283.                 }
  284.                 if(Attackmod[playerid] == 1)
  285.                 {
  286.                     SendClientMessage(playerid,COLOR_LIGHTRED,"Attack Mode deactivated!");
  287.                     Attackmod[playerid] = 0;
  288.                 }
  289.             }
  290.         }
  291.     }
  292.     return 1;
  293. }
  294.  
  295. public TurboBoostTime(playerid) // This is for the turbo boost waiting time (15 seconds default)
  296. {
  297.     if(IsPlayerConnected(playerid))
  298.     {
  299.         if(TurboBoost[playerid] == 1)
  300.         {
  301.             TurboBoost[playerid] = 0;
  302.         }
  303.     }
  304. }
  305.  
  306. public AutoRepair() // Repairs everytime the car health drops to 900
  307. {
  308.     for(new playerid=0; playerid<MAX_PLAYERS; playerid++)
  309.     {
  310.         if(IsPlayerConnected(playerid))
  311.         {
  312.             new Float:health, veh;
  313.             if (IsPlayerInAnyVehicle(playerid))
  314.             {
  315.                 veh = GetPlayerVehicleID(playerid);
  316.                 GetVehicleHealth(veh, health);
  317.                 if (health < 900)
  318.                 {
  319.                     RepairVehicle(GetPlayerVehicleID(playerid));
  320.                 }
  321.             }
  322.         }
  323.     }
  324.     return 1;
  325. }
  326.  
  327. public OnPlayerUpdate(playerid)
  328. {
  329.     return 1;
  330. }
  331.  
  332. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  333. {
  334.     return 1;
  335. }
  336.  
  337. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  338. {
  339.     return 1;
  340. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement