Guest User

Tuning System v1.1 by Captive

a guest
Jun 5th, 2013
1,172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.27 KB | None | 0 0
  1. /*
  2. ________________________________________________________________________________
  3.  
  4.                              Tuning System 1.1
  5.                                 by Captive
  6.  
  7.                                * Crediti:
  8.  
  9.                       - Drake1994 per dFile
  10.                       - Zeex per ZCMD
  11. --------------------------------------------------------------------------------
  12. Si prega agli utilizzatori di questo FS di inserire gli appositi crediti,
  13. grazie.
  14.  
  15. ATTENZIONE: è altamente importate avere dfile.inc e zcmd nella cartella
  16. pawno ---> include e avere FileManager nella cartella plugins e sulla voce
  17. plugins nel server.cfg .
  18.  
  19. Descizione:
  20. Questo Filterscript salva automaticamente all'uscita del Mod Shop tutti le
  21. modifiche apportate sul veicolo, compreso colore e verniciatura.
  22. Non c'è alcun bisogno creare cartelle in scriptfiles, grazie alle funzioni dfile
  23. se inesistente la cartella (Tuning) verrà creata automaticamente.
  24.  
  25. Comandi:
  26. - /resetveicolo : Resetta ogni componente del veicolo escluso il colore e la
  27. verniciatura, e quindi cancella anche il file ormai inutile.
  28. N.B. Il colore e la verniciatura non verranno resettati ma al respawn, il
  29. veicolo spawnerà con il colore originale del codice della GM.
  30. - /tuning : Permette, tramite un dialog di aggiungere Ruote, Nitro, Idraulica,
  31. Stereo e cambiare colore al proprio veicolo.
  32. ________________________________________________________________________________
  33. */
  34.  
  35. #include <a_samp>
  36. #include "../include/gl_common.inc"
  37. #define USE_PLUGIN_FUNCTIONS
  38. #include <dfile>
  39. #include <zcmd>
  40.  
  41. #define COLOR_ERROR 0x800000FF //Rosso scuro
  42. #define COLOR_INFO 0xFFFF00FF //Giallo
  43.  
  44. #define MAX_VEHICLE_COMPONENTS 14
  45.  
  46. #define DIALOG_TUNING_MENU 1000
  47. #define DIALOG_TUNING_WHEELS 1100
  48. #define DIALOG_TUNING_NITRO 1200
  49. #define DIALOG_TUNING_HYDRAULICS 1300
  50. #define DIALOG_TUNING_COLOR 1400
  51. #define DIALOG_TUNING_COLOR_ID 1410
  52.  
  53. public OnFilterScriptInit()
  54. {
  55.     print("TuningSystem by Captive Loaded");
  56.     if(!dfile_DirectoryExists("/Tuning/"))dfile_CreateDirectory("/Tuning/");
  57.     return 1;
  58. }
  59.  
  60. public OnFilterScriptExit()
  61. {
  62.     return 1;
  63. }
  64.  
  65. public OnPlayerConnect(playerid)
  66. {
  67.     SendClientMessage(playerid, COLOR_INFO, "Tuning System v1.1 by Captive: /tuning, /resetveicolo");
  68.     return 1;
  69. }
  70.  
  71. public OnEnterExitModShop(playerid, enterexit, interiorid)
  72. {
  73.     if(enterexit == 1)
  74.     {
  75.         if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return 0;
  76.         new vehicleid = GetPlayerVehicleID(vehicleid);
  77.         if(!dfile_FileExists(TuningFile(vehicleid)))dfile_Create(TuningFile(vehicleid));
  78.         new str[32];
  79.         dfile_Open(TuningFile(vehicleid));
  80.         for(new i; i < MAX_VEHICLE_COMPONENTS; i++)
  81.         {
  82.             format(str, sizeof(str), "Componente_%d", i);
  83.             dfile_WriteInt(str, GetVehicleComponentInSlot(vehicleid, i));
  84.         }
  85.         dfile_SaveFile();
  86.         dfile_CloseFile();
  87.     }
  88.     return 1;
  89. }
  90.  
  91. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  92. {
  93.     if(!dfile_FileExists(TuningFile(vehicleid)))dfile_Create(TuningFile(vehicleid));
  94.     dfile_Open(TuningFile(vehicleid));
  95.     dfile_WriteInt("Colore_1", color1);
  96.     dfile_WriteInt("Colore_2", color2);
  97.     dfile_SaveFile();
  98.     dfile_CloseFile();
  99.     return 1;
  100. }
  101.  
  102. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  103. {
  104.     if(!dfile_FileExists(TuningFile(vehicleid)))dfile_Create(TuningFile(vehicleid));
  105.     dfile_Open(TuningFile(vehicleid));
  106.     dfile_WriteInt("Verniciatura", paintjobid);
  107.     dfile_SaveFile();
  108.     dfile_CloseFile();
  109.     return 1;
  110. }
  111.  
  112. public OnVehicleSpawn(vehicleid)
  113. {
  114.     if(!dfile_FileExists(TuningFile(vehicleid)))return 1;
  115.     new str[32];
  116.     dfile_Open(TuningFile(vehicleid));
  117.     for(new i; i < MAX_VEHICLE_COMPONENTS; i++)
  118.     {
  119.         format(str, sizeof(str), "Componente_%d", i);
  120.         AddVehicleComponent(vehicleid, dfile_ReadInt(str));
  121.     }
  122.     ChangeVehicleColor(vehicleid, dfile_ReadInt("Colore_1"), dfile_ReadInt("Colore_2"));
  123.     ChangeVehiclePaintjob(vehicleid, dfile_ReadInt("Verniciatura"));
  124.     dfile_CloseFile();
  125.     return 1;
  126. }
  127.  
  128. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  129. {
  130.     new vehicleid;
  131.     switch(dialogid)
  132.     {
  133.         case DIALOG_TUNING_MENU:
  134.         {
  135.             if(response)
  136.             {
  137.                 if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return 0;
  138.                 vehicleid = GetPlayerVehicleID(playerid);
  139.                 switch(listitem)
  140.                 {
  141.                     case 0: ShowPlayerDialog(playerid, DIALOG_TUNING_WHEELS, DIALOG_STYLE_LIST, "Ruote", "Shadow\nMega\nRimshine\n{FFF1AA}Wires\n{FFFFFF}Classic\n{FFF1AA}Twist\n{FFFFFF}Cutter\n{FFF1AA}Switch\nGrove\nImport\n{FFF1AA}Dollar\nTrance\nAtomic\n{FFFFFF}Ahab\nVirtual\nAcces\nOffroad", "Ok", "Indietro");
  142.                     case 1: ShowPlayerDialog(playerid, DIALOG_TUNING_COLOR, DIALOG_STYLE_LIST, "Scegli il colore", "Nero\nGrigio\nBianco\n{FF0000}Rosso\n{FFAA00}Arancione\n{FFFF00}Giallo\n{00FF00}Verde\n{00FFFF}Azzurro\n{0000FF}Blu\nInserisci ID", "Ok", "Indietro");
  143.                     case 2: ShowPlayerDialog(playerid, DIALOG_TUNING_NITRO, DIALOG_STYLE_LIST, "Nitro", "Nitro x2\nNitro x5\nNitro x10", "Ok", "Indietro");
  144.                     case 3:
  145.                     {
  146.                         AddVehicleComponent(vehicleid, 1087);
  147.                         if(!dfile_FileExists(TuningFile(vehicleid)))dfile_Create(TuningFile(vehicleid));
  148.                         dfile_Open(TuningFile(vehicleid));
  149.                         dfile_WriteInt("Componente_9", GetVehicleComponentInSlot(vehicleid, CARMODTYPE_HYDRAULICS));
  150.                         dfile_SaveFile();
  151.                         dfile_CloseFile();
  152.                         SendClientMessage(playerid, COLOR_INFO, "[Info:] {FFFFFF}Idraulica Installato con successo");
  153.                     }
  154.                     case 4:
  155.                     {
  156.                         AddVehicleComponent(vehicleid, 1086);
  157.                         if(!dfile_FileExists(TuningFile(vehicleid)))dfile_Create(TuningFile(vehicleid));
  158.                         dfile_Open(TuningFile(vehicleid));
  159.                         dfile_WriteInt("Componente_8", GetVehicleComponentInSlot(vehicleid, CARMODTYPE_STEREO));
  160.                         dfile_SaveFile();
  161.                         dfile_CloseFile();
  162.                         SendClientMessage(playerid, COLOR_INFO, "[Info:] {FFFFFF}Stereo Installato con successo");
  163.                     }
  164.                 }
  165.             }
  166.         }
  167.         case DIALOG_TUNING_WHEELS:
  168.         {
  169.             if(!response)return ShowPlayerDialog(playerid, DIALOG_TUNING_MENU, DIALOG_STYLE_LIST, "Tuning Menu", "Ruote\nCambia Colore\nNitro\nIdraulica\nStereo", "Ok", "Annulla");
  170.             if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return 0;
  171.             vehicleid = GetPlayerVehicleID(playerid);
  172.             switch(listitem)
  173.             {
  174.                 case 0: AddVehicleComponent(vehicleid, 1073);
  175.                 case 1: AddVehicleComponent(vehicleid, 1074);
  176.                 case 2: AddVehicleComponent(vehicleid, 1075);
  177.                 case 3: AddVehicleComponent(vehicleid, 1076);
  178.                 case 4: AddVehicleComponent(vehicleid, 1077);
  179.                 case 5: AddVehicleComponent(vehicleid, 1078);
  180.                 case 6: AddVehicleComponent(vehicleid, 1079);
  181.                 case 7: AddVehicleComponent(vehicleid, 1080);
  182.                 case 8: AddVehicleComponent(vehicleid, 1081);
  183.                 case 9: AddVehicleComponent(vehicleid, 1082);
  184.                 case 10: AddVehicleComponent(vehicleid, 1083);
  185.                 case 11: AddVehicleComponent(vehicleid, 1084);
  186.                 case 12: AddVehicleComponent(vehicleid, 1085);
  187.                 case 13: AddVehicleComponent(vehicleid, 1096);
  188.                 case 14: AddVehicleComponent(vehicleid, 1097);
  189.                 case 15: AddVehicleComponent(vehicleid, 1098);
  190.                 case 16: AddVehicleComponent(vehicleid, 1025);
  191.             }
  192.             if(!dfile_FileExists(TuningFile(vehicleid)))dfile_Create(TuningFile(vehicleid));
  193.             dfile_Open(TuningFile(vehicleid));
  194.             dfile_WriteInt("Componente_7", GetVehicleComponentInSlot(vehicleid, CARMODTYPE_WHEELS));
  195.             dfile_SaveFile();
  196.             dfile_CloseFile();
  197.             SendClientMessage(playerid, COLOR_INFO, "[Info:] {FFFFFF}Nuove Ruote Installate con successo");
  198.         }
  199.         case DIALOG_TUNING_NITRO:
  200.         {
  201.             if(!response)return ShowPlayerDialog(playerid, DIALOG_TUNING_MENU, DIALOG_STYLE_LIST, "Tuning Menu", "Ruote\nCambia Colore\nNitro\nIdraulica\nStereo", "Ok", "Annulla");
  202.             if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return 0;
  203.             vehicleid = GetPlayerVehicleID(playerid);
  204.             switch(listitem)
  205.             {
  206.                 case 0: AddVehicleComponent(vehicleid, 1008);
  207.                 case 1: AddVehicleComponent(vehicleid, 1009);
  208.                 case 2: AddVehicleComponent(vehicleid, 1010);
  209.             }
  210.             if(!dfile_FileExists(TuningFile(vehicleid)))dfile_Create(TuningFile(vehicleid));
  211.             dfile_Open(TuningFile(vehicleid));
  212.             dfile_WriteInt("Componente_5", GetVehicleComponentInSlot(vehicleid, CARMODTYPE_NITRO));
  213.             dfile_SaveFile();
  214.             dfile_CloseFile();
  215.             SendClientMessage(playerid, COLOR_INFO, "[Info:] {FFFFFF}Nitro Installato con successo");
  216.         }
  217.         case DIALOG_TUNING_COLOR:
  218.         {
  219.             if(!response)return ShowPlayerDialog(playerid, DIALOG_TUNING_MENU, DIALOG_STYLE_LIST, "Tuning Menu", "Ruote\nCambia Colore\nNitro\nIdraulica\nStereo", "Ok", "Annulla");
  220.             if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return 0;
  221.             vehicleid = GetPlayerVehicleID(playerid);
  222.             new col = -1;
  223.             switch(listitem)
  224.             {
  225.                 case 0: col = 0;
  226.                 case 1: col = 11;
  227.                 case 2: col = 1;
  228.                 case 3: col = 3;
  229.                 case 4: col = 158;
  230.                 case 5: col = 6;
  231.                 case 6: col = 86;
  232.                 case 7: col = 2;
  233.                 case 8: col = 79;
  234.                 case 9: ShowPlayerDialog(playerid, DIALOG_TUNING_COLOR_ID, DIALOG_STYLE_INPUT, "Inserisci l'ID del colore", "Compreso tra 0 e 255", "Ok", "Indietro");
  235.             }
  236.             if(col != -1)
  237.             {
  238.                 ChangeVehicleColor(vehicleid, col, col);
  239.                 SendClientMessage(playerid, COLOR_INFO, "[Info:] {FFFFFF}Colore Cambiato con successo");
  240.             }
  241.         }
  242.         case DIALOG_TUNING_COLOR_ID:
  243.         {
  244.             if(!response)return ShowPlayerDialog(playerid, DIALOG_TUNING_COLOR, DIALOG_STYLE_LIST, "Scegli il colore", "Nero\nGrigio\nBianco\n{FF0000}Rosso\n{FFAA00}Arancione\n{FFFF00}Giallo\n{00FF00}Verde\n{00FFFF}Azzurro\n{0000FF}Blu\nInserisci ID", "Ok", "Indietro");
  245.             if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return 0;
  246.             vehicleid = GetPlayerVehicleID(playerid);
  247.             if(!isNumeric(inputtext) || strval(inputtext) < 0 || strval(inputtext) > 255)
  248.             {
  249.                 SendClientMessage(playerid, COLOR_ERROR, "[Errore:] {FFFFFF}Devi inserire un numero compreso tra 0 e 255");
  250.                 return ShowPlayerDialog(playerid, DIALOG_TUNING_COLOR_ID, DIALOG_STYLE_INPUT, "Inserisci l'ID del colore", "Compreso tra 0 e 255", "Ok", "Indietro");
  251.             }
  252.             ChangeVehicleColor(vehicleid, strval(inputtext), strval(inputtext));
  253.         }
  254.     }
  255.     return 1;
  256. }
  257.  
  258. CMD:resetveicolo(playerid, params[])
  259. {
  260.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid, COLOR_ERROR, "[Errore:] {FFFFFF}non stai guidando un veicolo");
  261.     new vehicleid = GetPlayerVehicleID(playerid);
  262.     for(new i; i < MAX_VEHICLE_COMPONENTS; i++)RemoveVehicleComponent(vehicleid, GetVehicleComponentInSlot(vehicleid, i));
  263.     if(dfile_FileExists(TuningFile(vehicleid)))dfile_Delete(TuningFile(vehicleid));
  264.     SendClientMessage(playerid, COLOR_INFO, "[Info:] {FFFFFF}Componenti disinstallati con successo");
  265.     return 1;
  266. }
  267.  
  268. CMD:tuning(playerid, params[])
  269. {
  270.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid, COLOR_ERROR, "Errore: {FFFFFF}non stai guidando un veicolo");
  271.     ShowPlayerDialog(playerid, DIALOG_TUNING_MENU, DIALOG_STYLE_LIST, "Tuning Menu", "Ruote\nCambia Colore\nNitro\nIdraulica\nStereo", "Ok", "Annulla");
  272.     return 1;
  273. }
  274.  
  275. stock TuningFile(vehicleid)
  276. {
  277.     new sfile[64];
  278.     format(sfile, sizeof(sfile), "/Tuning/Veicolo_%d.ini", vehicleid);
  279.     return sfile;
  280. }
Advertisement
Add Comment
Please, Sign In to add comment