Advertisement
Guest User

Modif de gveh par brian turner

a guest
Jan 26th, 2011
1,503
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 91.28 KB | None | 0 0
  1. // Systeme de gestion de vehicules par Mr Fredo
  2. // Mise a jour avec les nouvelles fonctions de la 0.3c par Brian Price
  3. // Fonction ajouter: Une vraie alarme, systeme de piratage, commande pour changer de proprietaire IG, On/off des phares, et autre a venir
  4.  
  5. #include <a_samp.inc>
  6.  
  7.  
  8. // Options
  9. #define USE_MENU // Decomenter pour utiliser la gestion par menu
  10. //#define USE_CALLCAR //Decomenter pour avoir la posibiliter d'appeler un de nos vehicule
  11. //#define FILTERSCRIPT //Decomenter pour utiliser le script comme un FilterScripts
  12.  
  13.  
  14. // Parametres
  15. #define MAX_PLAYER_VEHICLES 1  //Nombre de vehicules par joueur
  16. #define PRIX_ESSENCE        5  //Prix du litre d'essence
  17. #define SECONDE_LITRE       20 // Nombre de seconde pour retirer 1 litre d'essence au vehicule
  18. #define RESPAWN_DELAY       7200000 // Temps de respawn en seconde (-1 = Pas de respawn, 7200000 = Respawn toutes les 2 heures)
  19. #define TIMESAVE            1800000 // Temps en MS du timer de sauvegarde des vehicule (1800000 = Sauvegarde toute les 30 minutes)
  20. //#define DOSSIERLOGS       "Gveh/Logs/" // Dans une futur version
  21. #define VEH_FILENAME        "vehinfo.cfg"
  22.  
  23. // PARAMETRE FILTERSCRIPTS
  24. #if defined FILTERSCRIPT
  25.     #define Script_OnGameModeInit OnFilterScriptInit
  26.     #define Script_OnGameModeExit OnFilterScriptExit
  27.     #define Script_OnPlayerPickUpPickup OnPlayerPickUpPickup
  28.     #define Script_OnPlayerConnect OnPlayerConnect
  29.     #define Script_OnPlayerDisconnect OnPlayerDisconnect
  30.     #define Script_OnVehicleDeath OnVehicleDeath
  31.     #define Script_OnPlayerCommandText OnPlayerCommandText
  32.     #define Script_OnPlayerExitVehicle OnPlayerExitVehicle
  33.     #define Script_OnPlayerKeyStateChange OnPlayerKeyStateChange
  34.     #define Script_OnPlayerStateChange OnPlayerStateChange
  35.     #define Script_OnPlayerText OnPlayerText
  36.     #define Script_OnPlayerSelectedMenuRow OnPlayerSelectedMenuRow
  37.     #define Script_OnPlayerExitedMenu OnPlayerExitedMenu
  38.     #define Script_OnVehicleMod OnVehicleMod
  39.     #define Script_OnVehiclePaintjob OnVehiclePaintJob
  40.     #define Script_OnVehicleRespray OnVehicleRespray
  41. #endif
  42.  
  43. // Couleurs
  44. #define COL_WHITE       0xFFFFFFFF
  45. #define COL_LIGHTRED    0xFF2F35FF
  46. #define COL_GREEN       0x429D3DFF
  47. #define COL_YELLOW      0xF2FB25FF
  48. #define COL_RED         0xBD0000FF
  49. #define COL_PURPLE      0xC2A2DAAA
  50.  
  51. #define INVALID_VEH_ID      0
  52.  
  53. // Forwards
  54. forward Script_OnGameModeInit();
  55. forward Script_OnGameModeExit();
  56. forward Script_OnPlayerPickUpPickup(playerid, pickupid);
  57. forward Script_OnPlayerConnect(playerid);
  58. forward Script_OnPlayerDisconnect(playerid);
  59. forward Script_OnVehicleDeath(vehicleid);
  60. forward Script_OnPlayerCommandText(playerid,cmdtext[]);
  61. forward Script_OnPlayerExitVehicle(playerid);
  62. forward Script_OnPlayerKeyStateChange(playerid, newkeys);
  63. forward Script_OnPlayerStateChange(playerid, newstate);
  64. forward Script_OnPlayerText(playerid, text[]);
  65. forward Script_OnPlayerSelectedMenuRow(playerid, row);
  66. forward Script_OnPlayerExitedMenu(playerid);
  67. forward Script_OnVehicleMod(playerid, vehicleid, componentid);
  68. forward Script_OnVehiclePaintjob(playerid, vehicleid, paintjobid);
  69. forward Script_OnVehicleRespray(playerid, vehicleid, color1, color2);
  70. forward SauvegardeVeh();
  71. forward Remplisage(playerid);
  72. forward Vitesse();
  73. forward DestroyVeh(vehicleid);
  74. forward RestartVeh(vehicleid);
  75. forward CallCar(playerid,vehicleid);
  76. forward CreateVeh(vehicleid,Float:x,Float:y,Float:z,Float:a);
  77. forward ChargerVehicules();
  78. forward TimerTempsCircuit(playerid);
  79. forward TimerTempsAlarm(playerid);
  80. forward StopAlarm(car);
  81. forward PirateAlarm(playerid);
  82. forward PirateVehicle(playerid);
  83. forward ClignotePhare(car);
  84. forward ProxDetectorVeh(Float:radi, playerid, string[],col1,col2,col3,col4,col5); // C'est le proxdetector du GF mais rename pour eviter des conflits
  85.  
  86. // Creation des variables
  87. new BigEarr[MAX_PLAYERS];
  88. new NbVeh = 1;
  89. new TimerCourCircuit[MAX_PLAYERS] = 0;
  90. new TimerAlarmCircuit[MAX_PLAYERS] = 0;
  91. new ClignotePhareVar[MAX_VEHICLES] = 0;
  92. new LalarmeEstOn[MAX_VEHICLES] = 0;
  93. new TimerPhare[MAX_VEHICLES];
  94.  
  95. static Field[32][64];
  96. static TimerSave;
  97. static TimerVitesse;
  98.  
  99. // Position de pompe a essence
  100. static Float:Pompe[22][3] = {
  101. {2109.2126,917.5845,10.8203},
  102. {2640.1831,1103.9224,10.8203},
  103. {611.8934,1694.7921,6.7193},
  104. {-1327.5398,2682.9771,49.7896},
  105. {-2413.7427,975.9317,45.0031},
  106. {-1672.3597,414.2950,6.8866},
  107. {-2244.1365,-2560.6294,31.6276},
  108. {-1603.0166,-2709.3589,48.2419},
  109. {1939.3275,-1767.6813,13.2787},
  110. {-94.7651,-1174.8079,1.9979},
  111. {1381.6699,462.6467,19.8540},
  112. {657.8167,-559.6507,16.0630},
  113. {-1478.2916,1862.8318,32.3617},
  114. {2147.3054,2744.9377,10.5263},
  115. {2204.9602,2480.3494,10.5278},
  116. {1590.9493,2202.2637,10.5247},
  117. {1561.5695,1448.6895,10.3636},
  118. {366.4071,2535.3784,16.8363},
  119. {1969.3317,-2303.8423,13.2547},
  120. {1587.3940,-2182.4717,13.5547},
  121. {-2029.4491,156.7627,28.8359},
  122. {-1818.9652,-1618.8468,23.0156}
  123. };
  124.  
  125. static PickupPompe[sizeof(Pompe)];
  126.  
  127. enum VehInfo
  128. {
  129.     VehID,
  130.     Model,
  131.     Float:XSpawn,
  132.     Float:YSpawn,
  133.     Float:ZSpawn,
  134.     Float:ASpawn,
  135.     Couleur1,
  136.     Couleur2,
  137.     Prix,
  138.     Status,
  139.     Alarme,
  140.     Tuning1,
  141.     Tuning2,
  142.     Tuning3,
  143.     Tuning4,
  144.     Tuning5,
  145.     Tuning6,
  146.     Tuning7,
  147.     Tuning8,
  148.     Tuning9,
  149.     Tuning10,
  150.     Tuning11,
  151.     Tuning12,
  152.     Tuning13,
  153.     Tuning14,
  154.     Tuning15,
  155.     Tuning16,
  156.     Tuning17,
  157.     Peinture,
  158.     MaxEssence,
  159.     Proprio[MAX_PLAYER_NAME],
  160.     Nom[64],
  161.     Essence,
  162.     Plaque[64],
  163.     PiraAlarm,
  164.     Moteur,
  165.     Phares,
  166. }
  167. new VehiculeInfo[MAX_VEHICLES][VehInfo];
  168.  
  169. static EssenceCount[MAX_VEHICLES];
  170.  
  171. new VehicleName[212][64] = {
  172.    "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana",
  173.    "Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat",
  174.    "Mr Whoopee","BF Injection","Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife",
  175.    "Trailer","Previon","Coach","Cabbie","Stallion","Rumpo","RCBandit","Romero","Packer","Monster Truck","Admiral","Squalo",
  176.    "Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van",
  177.    "Skimmer","PCJ600","Faggio","Freeway","RCBaron","RCRaider","Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard",
  178.    "Dinghy","Hermes","Sabre","Rustler","ZR350","Walton","Regina","Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick",
  179.    "News Chopper","Rancher","(FBI)Rancher","Virgo","Greenwood","Jetmax","Hotring","Sandking","Blista Compact","(Police)Maverick","Boxville",
  180.    "Benson","Mesa","RCGoblin","Hotring Racer 1","Hotring Racer 2","Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike",
  181.    "Beagle","Cropdust","Stunt","Tanker","RoadTrain","Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR900","NRG500","HPV1000",
  182.    "Cement Truck","Tow Truck","Fortune","Cadrona","(FBI)Truck","Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade",
  183.    "Freight","Streak","Vortex","Vincent","Bullet","Clover","Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise",
  184.    "Merit","Utility","Nevada","Yosemite","Windsor","Monster Truck","Monster Truck","Uranus","Jester","Sultan","Stratum","Elegy","Raindance",
  185.    "RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer","Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400",
  186.    "DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer","Emperor","Wayfarer","Euros","Hotdog","Club","Trailer","Trailer","Andromada",
  187.    "Dodo","RC Cam","Launch","(LSPD)Police Car","(SFPD)Police Car","(LVPD)Police Car","Police Ranger","Picador","SWAT Van","Alpha",
  188.    "Phoenix","Glendale","Sadler","Luggage Trailer","Luggage Trailer","Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  189. };
  190.  
  191. #if defined USE_MENU
  192.     static Menu:MenuJoueur;
  193.     static Menu:MenuAdmin;
  194.     static DefinirPrix[MAX_PLAYERS];
  195.     static DefinirEssence[MAX_PLAYERS];
  196. #endif
  197.  
  198. static PompeEssence[MAX_PLAYERS];
  199. static TimerEssence[MAX_PLAYERS];
  200. static TableauActive[MAX_PLAYERS];
  201. static EnPanne[MAX_PLAYERS];
  202. static Float:PlayerPos[MAX_PLAYERS][3];
  203. static EchangeVeh[MAX_PLAYERS][3];
  204.  
  205. #if defined USE_CALLCAR
  206.     static MyVehicleID[MAX_PLAYERS][MAX_PLAYER_VEHICLES];
  207. #endif
  208.  
  209. public Script_OnGameModeInit()
  210. {
  211.     ChargerVehicules();
  212.     #if defined USE_MENU
  213.  
  214.         MenuJoueur = CreateMenu("Menu Joueur",1,440,140,150,40);
  215.         AddMenuItem(MenuJoueur,0,"Acheter");
  216.         AddMenuItem(MenuJoueur,0,"Vendre");
  217.         AddMenuItem(MenuJoueur,0,"Garer");
  218.         AddMenuItem(MenuJoueur,0,"Alarme");
  219.         AddMenuItem(MenuJoueur,0,"Essence");
  220.         AddMenuItem(MenuJoueur,0,"Tableau de bord");
  221.         #if defined USE_CALLCAR
  222.             AddMenuItem(MenuJoueur,0,"CallCar");
  223.         #endif
  224.         AddMenuItem(MenuJoueur,0,"Exit");
  225.  
  226.         MenuAdmin = CreateMenu("Menu Admin",1,440,140,150,40);
  227.         AddMenuItem(MenuAdmin,0,"Prix");
  228.         AddMenuItem(MenuAdmin,0,"Alarme Admin");
  229.         AddMenuItem(MenuAdmin,0,"Vendre");
  230.         AddMenuItem(MenuAdmin,0,"Status");
  231.         AddMenuItem(MenuAdmin,0,"Garer");
  232.         AddMenuItem(MenuAdmin,0,"Essence");
  233.         AddMenuItem(MenuAdmin,0,"MaxEssence");
  234.         AddMenuItem(MenuAdmin,0,"Reset Tuning");
  235.         AddMenuItem(MenuAdmin,0,"Exit");
  236.  
  237.     #endif
  238.  
  239.     for(new p=0;p<sizeof(Pompe);p++)
  240.     {
  241.         PickupPompe[p] = CreatePickup(1239,1,Pompe[p][0],Pompe[p][1],Pompe[p][2]);
  242.     }
  243.     TimerSave = SetTimer("SauvegardeVeh",TIMESAVE,1);
  244.     TimerVitesse = SetTimer("Vitesse", 300, 1);
  245.     #if defined FILTERSCRIPT
  246.         print(" --------------------------------------------");
  247.         print("|   [FS] Gestion Vehicule | By mister-fred   |");
  248.         print("|   [FS] Mise a jour by Brian Price          |");
  249.         print(" --------------------------------------------\n");
  250.     #else
  251.         print(" --------------------------------------------");
  252.         print("|   [INC] Gestion Vehicule | By mister-fred   |");
  253.         print("|   [INC] Mise a jour by Brian Price          |");
  254.         print(" --------------------------------------------\n");
  255.     #endif
  256.  
  257.     return 1;
  258. }
  259.  
  260. public Script_OnGameModeExit()
  261. {
  262.     SauvegardeVeh();
  263.  
  264.     #if defined USE_MENU
  265.  
  266.         DestroyMenu(MenuJoueur);
  267.         DestroyMenu(MenuAdmin);
  268.  
  269.     #endif
  270.  
  271.     KillTimer(TimerSave);
  272.     KillTimer(TimerVitesse);
  273.  
  274.     for(new i=0;i<MAX_PLAYERS;i++)
  275.     {
  276.         if(IsPlayerConnected(i) && PompeEssence[i] != 255)
  277.         {
  278.             KillTimer(TimerEssence[i]);
  279.         }
  280.     }
  281.     #if defined FILTERSCRIPT
  282.         print(" --------------------------------------------");
  283.         print("|   [FS] Gestion Vehicule | By mister-fred   |");
  284.         print("|   [FS] Mise a jour by Brian Price          |");
  285.         print(" --------------------------------------------\n");
  286.     #else
  287.         print(" --------------------------------------------");
  288.         print("|   [INC] Gestion Vehicule | By mister-fred   |");
  289.         print("|   [INC] Mise a jour by Brian Price          |");
  290.         print(" --------------------------------------------\n");
  291.     #endif
  292.     return 1;
  293. }
  294.  
  295. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  296. {
  297.     return 1;
  298. }
  299. public Script_OnPlayerPickUpPickup(playerid, pickupid)
  300. {
  301.     for(new p=0;p<sizeof(Pompe);p++)
  302.     {
  303.         if(PickupPompe[p] == pickupid)
  304.         {
  305.             #if defined USE_MENU
  306.                 SendClientMessage(playerid,COL_GREEN,"Bienvenu a la pompe a essence. Pour remplir votre vehicule taper /vmenu et selectioner 'Essence'");
  307.             #else
  308.                 SendClientMessage(playerid,COL_GREEN,"Bienvenu a la pompe a essence. Pour remplir votre vehicule taper /vessence");
  309.             #endif
  310.         }
  311.     }
  312.     return 1;
  313. }
  314.  
  315. public Script_OnPlayerConnect(playerid)
  316. {
  317.     new playername[MAX_PLAYER_NAME],string[128];
  318.     GetPlayerName(playerid,playername,sizeof(playername));
  319.     format(string,sizeof(string),"Bienvenu %s, systeme de vehicule par Mr Fredo mise a jour par Brian Price",playername);
  320.     SendClientMessage(playerid,COL_LIGHTRED,string);
  321.     PlayerPos[playerid][0] = 0; PlayerPos[playerid][1] = 0; PlayerPos[playerid][2] = 0;
  322.     PompeEssence[playerid] = 255;
  323.     TableauActive[playerid] = 1;
  324.     EnPanne[playerid] = 0;
  325.     EchangeVeh[playerid][0] = 255; EchangeVeh[playerid][1] = 0; EchangeVeh[playerid][2] = 0;
  326.     #if defined USE_MENU
  327.         DefinirPrix[playerid] = 0;
  328.         DefinirEssence[playerid] = 0;
  329.     #endif
  330.     #if defined USE_CALLCAR
  331.         for(new c=0;c<MAX_PLAYER_VEHICLES;c++)
  332.         {
  333.             MyVehicleID[playerid][c] = 0;
  334.         }
  335.     #endif
  336.     for(new m=0;m<sizeof(Pompe);m++)
  337.     {
  338.         SetPlayerMapIcon(playerid,m,Pompe[m][0],Pompe[m][1],Pompe[m][2],51,1);
  339.     }
  340.     return 1;
  341. }
  342.  
  343. public Script_OnPlayerDisconnect(playerid)
  344. {
  345.     if(PompeEssence[playerid] != 255)
  346.     {
  347.         KillTimer(TimerEssence[playerid]);
  348.     }
  349.     return 1;
  350. }
  351.  
  352. public Script_OnVehicleDeath(vehicleid)
  353. {
  354.     SetTimerEx("RestartVeh",10000,0,"i",vehicleid);
  355.     return 1;
  356. }
  357.  
  358. public Script_OnPlayerCommandText(playerid,cmdtext[])
  359. {
  360.     new cmd[128],string[128],tmp[128];
  361.     new idx;
  362.     cmd = strtok2(cmdtext, idx);
  363.  
  364.     #if defined USE_MENU
  365.  
  366.         if(strcmp(cmd, "/avmenu", true) == 0)
  367.         {
  368.             if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  369.             {
  370.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  371.                 {
  372.                     ShowMenuForPlayer(MenuAdmin,playerid);
  373.                     TogglePlayerControllable(playerid, 0);
  374.                 }
  375.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  376.             }
  377.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  378.             return 1;
  379.         }
  380.         if(strcmp(cmd, "/vlist", true) == 0)
  381.         {
  382.             if(IsPlayerConnected(playerid))
  383.             {
  384.                 SendClientMessage(playerid,COL_WHITE,"------[LIST DES COMMANDE VEHICULE]------");
  385.                 SendClientMessage(playerid,COL_WHITE,"/vechange /acceptveh");
  386.                 SendClientMessage(playerid,COL_WHITE,"----------------------------------------");
  387.             }
  388.             return 1;
  389.         }
  390.         if(strcmp(cmd, "/avlist", true) == 0)
  391.         {
  392.             if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  393.             {
  394.                 SendClientMessage(playerid,COL_WHITE,"------[LIST ADMIN DES COMMANDE VEHICULE]------");
  395.                 SendClientMessage(playerid,COL_WHITE," /avmenu , /veh, /vehsave , /vehdestroy , /avcolor, /avrenamep");
  396.                 SendClientMessage(playerid,COL_WHITE," /allessence , /avsave , /convert , /avgoto , /avmodel");
  397.                 SendClientMessage(playerid,COL_WHITE,"----------------------------------------------");
  398.             }
  399.             return 1;
  400.         }
  401.     #else
  402.         if(strcmp(cmd, "/vlist", true) == 0)
  403.         {
  404.             if(IsPlayerConnected(playerid))
  405.             {
  406.                 ShowPlayerDialog(playerid, VEHMENU, DIALOG_STYLE_LIST, "Menu des commandes de gestion de véhicule","Acheter\nVendre\nGarer\nAlarme\nEssence\nTableau\nEchanger\nAccepeter Vehicle", "Selectionnez", "Annuler");
  407.             }
  408.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas autoriser a utiliser cette commande!");
  409.             return 1;
  410.         }
  411.         if(strcmp(cmd, "/vmenu", true) == 0)
  412.         {
  413.             if(IsPlayerConnected(playerid))
  414.             {
  415.                 ShowPlayerDialog(playerid, VEHMENU, DIALOG_STYLE_LIST, "Menu des commandes de gestion de véhicule","Acheter une Voiture\nVendre\nGarer\nAlarme\nEssence\nTableau\nAccepeter Vehicule", "Selectionnez", "Annuler");
  416.             }
  417.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas autoriser a utiliser cette commande!");
  418.             return 1;
  419.         }
  420.         if(strcmp(cmd, "/avlist", true) == 0)
  421.         {
  422.             if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  423.             {
  424.                 SendClientMessage(playerid,COL_WHITE,"------[LIST ADMIN DES COMMANDE VEHICULE]------");
  425.                 SendClientMessage(playerid,COL_WHITE,"/avprix , /avalarme , /avvendre , /avstatus, /avrenamep");
  426.                 SendClientMessage(playerid,COL_WHITE,"/avgarer , /avessence , /avmaxessence , /avsave ");
  427.                 SendClientMessage(playerid,COL_WHITE,"/vehsave , /vehdestroy , /allessence, /avtuning");
  428.                 SendClientMessage(playerid,COL_WHITE,"/veh , /convert , /avgoto , /avmodel , /avcolor");
  429.                 SendClientMessage(playerid,COL_WHITE,"----------------------------------------------");
  430.             }
  431.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  432.             return 1;
  433.         }
  434.         if(strcmp(cmd, "/vacheter", true) == 0)
  435.         {
  436.             if(IsPlayerConnected(playerid))
  437.             {
  438.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  439.                 {
  440.                     AcheterVehicule(playerid);
  441.                 }
  442.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  443.             }
  444.             return 1;
  445.         }
  446.         if(strcmp(cmd, "/vvendre", true) == 0)
  447.         {
  448.             if(IsPlayerConnected(playerid))
  449.             {
  450.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  451.                 {
  452.                     VendreVehicule(playerid, 0);
  453.                 }
  454.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  455.             }
  456.             return 1;
  457.         }
  458.         if(strcmp(cmd, "/vgarer", true) == 0)
  459.         {
  460.             if(IsPlayerConnected(playerid))
  461.             {
  462.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  463.                 {
  464.                     GarerVehicule(playerid, 0);
  465.                 }
  466.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  467.             }
  468.             return 1;
  469.         }
  470.         if(strcmp(cmd, "/valarme", true) == 0)
  471.         {
  472.             if(IsPlayerConnected(playerid))
  473.             {
  474.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  475.                 {
  476.                     AlarmeVehicule(playerid, 0);
  477.                 }
  478.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  479.             }
  480.             return 1;
  481.         }
  482.         if(strcmp(cmd, "/vessence", true) == 0)
  483.         {
  484.             if(IsPlayerConnected(playerid))
  485.             {
  486.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  487.                 {
  488.                     EssenceVehicule(playerid, 0);
  489.                 }
  490.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  491.             }
  492.             return 1;
  493.         }
  494.         if(strcmp(cmd, "/vtableau", true) == 0)
  495.         {
  496.             if(IsPlayerConnected(playerid))
  497.             {
  498.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  499.                 {
  500.                     TableauDeBord(playerid);
  501.                 }
  502.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  503.             }
  504.             return 1;
  505.         }
  506.         if(strcmp(cmd, "/callcar", true) == 0)
  507.         {
  508.             if(IsPlayerConnected(playerid))
  509.             {
  510.                 #if defined USE_CALLCAR
  511.                     new count = 0;
  512.                     new playername[MAX_PLAYER_NAME];
  513.                     GetPlayerName(playerid,playername,sizeof(playername));
  514.                     for(new v=1;v<NbVeh;v++)
  515.                     {
  516.                         if(VehiculeInfo[v][VehID] != INVALID_VEH_ID)
  517.                         {
  518.                             if(strcmp(VehiculeInfo[v][Proprio],playername,true) == 0)
  519.                             {
  520.                                 MyVehicleID[playerid][count] = v;
  521.                                 count++;
  522.                             }
  523.                         }
  524.                     }
  525.                     tmp = strtok2(cmdtext, idx);
  526.                     if(!strlen(tmp))
  527.                     {
  528.                         SendClientMessage(playerid,COL_WHITE,"UTILISATION: /callcar [numero]");
  529.                         count = 0;
  530.                         for(new v=1;v<NbVeh;v++)
  531.                         {
  532.                             if(VehiculeInfo[v][VehID] != INVALID_VEH_ID)
  533.                             {
  534.                                 if(strcmp(VehiculeInfo[v][Proprio],playername,true) == 0)
  535.                                 {
  536.                                     format(string,sizeof(string),"%d: %s",count+1,VehiculeInfo[v][Nom]);
  537.                                     SendClientMessage(playerid,COL_WHITE,string);
  538.                                     count++;
  539.                                 }
  540.                             }
  541.                         }
  542.                         return 1;
  543.                     }
  544.                     new veh = strval(tmp);
  545.                     if(veh < 1 || veh > MAX_PLAYER_VEHICLES)
  546.                     {
  547.                         format(string,sizeof(string),"Le numero du vehicule ne peux être inferieur a 1 ou superieur a %d",MAX_PLAYER_VEHICLES);
  548.                         SendClientMessage(playerid,COL_LIGHTRED,string);
  549.                         return 1;
  550.                     }
  551.                     new vehicleid = MyVehicleID[playerid][veh-1];
  552.                     if(vehicleid == 0)
  553.                     {
  554.                         SendClientMessage(playerid,COL_LIGHTRED,"Vous n'avez pas de vehicule a se numéro");
  555.                         return 1;
  556.                     }
  557.                     format(string,sizeof(string),"Ce vehicule (%s) a été appeler par sont proprietaire (%s)!",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Proprio]);
  558.                     for(new i=0;i<MAX_PLAYERS;i++)
  559.                     {
  560.                         if(IsPlayerConnected(i))
  561.                         {
  562.                             if(IsPlayerInAnyVehicle(i) && GetPlayerVehicleID(i) == vehicleid)
  563.                             {
  564.                                 SendClientMessage(i,COL_LIGHTRED,string);
  565.                                 RemovePlayerFromVehicle(i);
  566.                             }
  567.                         }
  568.                     }
  569.                     for(new m=0;m<MAX_PLAYER_VEHICLES;m++)
  570.                     {
  571.                         MyVehicleID[playerid][m] = 0;
  572.                     }
  573.                     SetTimerEx("DestroyVeh",2500,0,"i",vehicleid);
  574.                     SetTimerEx("CallCar",3000,0,"ii",playerid,vehicleid);
  575.                     format(string,sizeof(string),"Votre vehicule (%s) arrivera dans quelque seconde veuillez patienter!",VehiculeInfo[vehicleid][Nom]);
  576.                     SendClientMessage(playerid,COL_LIGHTRED,string);
  577.                 #else
  578.                     SendClientMessage(playerid,COL_LIGHTRED,"Cette option a été desactiver!");
  579.                 #endif
  580.             }
  581.             return 1;
  582.         }
  583.  
  584.         if(strcmp(cmd, "/avprix", true) == 0)
  585.         {
  586.             if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  587.             {
  588.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  589.                 {
  590.                     tmp = strtok2(cmdtext, idx);
  591.                     if(!strlen(tmp))
  592.                     {
  593.                         SendClientMessage(playerid,COL_WHITE,"UTILISATION: /avprix [prix]");
  594.                         return 1;
  595.                     }
  596.                     new vehicleid = GetPlayerVehicleID(playerid);
  597.                     VehiculeInfo[vehicleid][Prix] = strval(tmp);
  598.                     format(string,sizeof(string),"Vous avez changer le prix de ce vehicule (%s). Nouveau prix: %d$",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Prix]);
  599.                     SendClientMessage(playerid,COL_GREEN,string);
  600.                 }
  601.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  602.             }
  603.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  604.             return 1;
  605.         }
  606.         if(strcmp(cmd, "/avalarme", true) == 0)
  607.         {
  608.             if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  609.             {
  610.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  611.                 {
  612.                     AlarmeVehicule(playerid, 1);
  613.                 }
  614.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas au volant d'un vehicule!");
  615.             }
  616.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  617.             return 1;
  618.         }
  619.         if(strcmp(cmd, "/avvendre", true) == 0)
  620.         {
  621.             if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  622.             {
  623.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  624.                 {
  625.                     VendreVehicule(playerid, 1);
  626.                 }
  627.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  628.             }
  629.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  630.             return 1;
  631.         }
  632.         if(strcmp(cmd, "/avstatus", true) == 0)
  633.         {
  634.             if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  635.             {
  636.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  637.                 {
  638.                     StatusVehicule(playerid);
  639.                 }
  640.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  641.             }
  642.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  643.             return 1;
  644.         }
  645.         if(strcmp(cmd, "/avgarer", true) == 0)
  646.         {
  647.             if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  648.             {
  649.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  650.                 {
  651.                     GarerVehicule(playerid, 1);
  652.                 }
  653.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  654.             }
  655.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  656.             return 1;
  657.         }
  658.         if(strcmp(cmd, "/avessence", true) == 0)
  659.         {
  660.             if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  661.             {
  662.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  663.                 {
  664.                     EssenceVehicule(playerid, 1);
  665.                 }
  666.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  667.             }
  668.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  669.  
  670.             return 1;
  671.         }
  672.         if(strcmp(cmd, "/avmaxessence", true) == 0)
  673.         {
  674.             if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  675.             {
  676.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  677.                 {
  678.                     tmp = strtok2(cmdtext, idx);
  679.                     if(!strlen(tmp))
  680.                     {
  681.                         SendClientMessage(playerid,COL_WHITE,"UTILISATION: /avmaxessence [litres]");
  682.                         return 1;
  683.                     }
  684.                     new vehicleid = GetPlayerVehicleID(playerid);
  685.                     VehiculeInfo[vehicleid][MaxEssence] = strval(tmp);
  686.                     format(string,sizeof(string),"Vous avez changer le reservoir de ce vehicule (%s). Nouvelle quantiter maxiumum d'essence: %d$",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][MaxEssence]);
  687.                     SendClientMessage(playerid,COL_GREEN,string);
  688.                 }
  689.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  690.             }
  691.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  692.             return 1;
  693.         }
  694.         if(strcmp(cmd, "/avtuning", true) == 0)
  695.         {
  696.             if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  697.             {
  698.                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  699.                 {
  700.                     ResetTuning(playerid);
  701.                 }
  702.                 else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  703.             }
  704.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  705.             return 1;
  706.         }
  707.     #endif
  708.     if(strcmp(cmd, "/avrenamep", true) == 0)
  709.     {
  710.         if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  711.         {
  712.             if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  713.             {
  714.                 new length = strlen(cmdtext);
  715.                 while ((idx < length) && (cmdtext[idx] <= ' '))
  716.                 {
  717.                     idx++;
  718.                 }
  719.                 new offset = idx;
  720.                 new result[64];
  721.                 while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  722.                 {
  723.                     result[idx - offset] = cmdtext[idx];
  724.                     idx++;
  725.                 }
  726.                 result[idx - offset] = EOS;
  727.                 if(!strlen(result))
  728.                 {
  729.                     SendClientMessage(playerid, COL_RED, "USAGE: /avrenamep [nom du proprietaire]");
  730.                     return 1;
  731.                 }
  732.                 new vehicleid = GetPlayerVehicleID(playerid);
  733.                 strmid(VehiculeInfo[vehicleid][Proprio],result,0,strlen(result),MAX_PLAYER_NAME);
  734.                 format(string,sizeof(string),"Vous avez changer le proprietaire de ce vehicule (%s) a %s",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Proprio]);
  735.                 SendClientMessage(playerid,COL_GREEN,string);
  736.             }
  737.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  738.         }
  739.         else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  740.         return 1;
  741.     }
  742.     if(strcmp(cmd, "/vechange", true) == 0)
  743.     {
  744.         if(IsPlayerConnected(playerid))
  745.         {
  746.             if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  747.             {
  748.                 tmp = strtok2(cmdtext, idx);
  749.                 if(!strlen(tmp))
  750.                 {
  751.                     SendClientMessage(playerid,COL_WHITE,"UTILISATION: /vechange [id]");
  752.                     return 1;
  753.                 }
  754.                 new giveplayerid = strval(tmp);
  755.                 if(playerid == giveplayerid)
  756.                 {
  757.                     SendClientMessage(playerid,COL_GREEN,"id incorect!");
  758.                     return 1;
  759.                 }
  760.                 if(IsPlayerConnected(playerid))
  761.                 {
  762.                     if(GetPlayerState(giveplayerid) != PLAYER_STATE_DRIVER)
  763.                     {
  764.                         SendClientMessage(playerid,COL_LIGHTRED,"Ce joueur n'est pas dans un vehicule");
  765.                         return 1;
  766.                     }
  767.                     new playername[MAX_PLAYER_NAME];
  768.                     new vehicleid = GetPlayerVehicleID(playerid);
  769.                     GetPlayerName(playerid,playername,sizeof(playername));
  770.                     if(strcmp(VehiculeInfo[vehicleid][Proprio],playername, true) != 0)
  771.                     {
  772.                         SendClientMessage(playerid,COL_LIGHTRED,"Ce vehicule ne vous appartient pas!");
  773.                         return 1;
  774.                     }
  775.                     new giveplayername[MAX_PLAYER_NAME];
  776.                     new givevehicleid = GetPlayerVehicleID(giveplayerid);
  777.                     GetPlayerName(giveplayerid,giveplayername,sizeof(giveplayername));
  778.                     if(strcmp(VehiculeInfo[givevehicleid][Proprio],giveplayername, true) != 0)
  779.                     {
  780.                         SendClientMessage(playerid,COL_LIGHTRED,"Le vehicule dans lequel est ce joueur ne lui appartient pas!");
  781.                         return 1;
  782.                     }
  783.                     format(string,sizeof(string),"Vous proposer a %s d'echanger sont vehicule (%s) contre votre vehicule (%s)",giveplayername,VehiculeInfo[givevehicleid][Nom],VehiculeInfo[vehicleid][Nom]);
  784.                     SendClientMessage(playerid,COL_GREEN,string);
  785.                     format(string,sizeof(string),"%s vous propose d'echanger sont vehicule (%s) contre votre vehicule (%s). Taper /acceptveh pour accepter l'echange!",playername,VehiculeInfo[vehicleid][Nom],VehiculeInfo[givevehicleid][Nom]);
  786.                     SendClientMessage(giveplayerid,COL_GREEN,string);
  787.                     EchangeVeh[giveplayerid][0] = playerid;
  788.                     EchangeVeh[giveplayerid][1] = vehicleid;
  789.                     EchangeVeh[giveplayerid][2] = givevehicleid;
  790.                 }
  791.                 else SendClientMessage(playerid,COL_LIGHTRED,"Ce joueur n'est pas connecter!");
  792.             }
  793.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  794.         }
  795.         return 1;
  796.     }
  797.     if(strcmp(cmd, "/acceptveh", true) == 0)
  798.     {
  799.         if(IsPlayerConnected(playerid))
  800.         {
  801.             if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  802.             {
  803.                 if(EchangeVeh[playerid][0] == 255)
  804.                 {
  805.                     SendClientMessage(playerid,COL_LIGHTRED,"Vous n'avez pas de proposition d'echange de vehicule");
  806.                     return 1;
  807.                 }
  808.                 new giveplayerid = EchangeVeh[playerid][0];
  809.                 if(!IsPlayerConnected(giveplayerid))
  810.                 {
  811.                     SendClientMessage(playerid,COL_LIGHTRED,"Le joueur qui vous a proposer d'echanger de vehicule c'est deconecter");
  812.                     EchangeVeh[playerid][0] = 255;
  813.                     EchangeVeh[playerid][1] = 0;
  814.                     EchangeVeh[playerid][2] = 0;
  815.                     return 1;
  816.                 }
  817.                 if(GetPlayerState(giveplayerid) != PLAYER_STATE_DRIVER)
  818.                 {
  819.                     SendClientMessage(playerid,COL_LIGHTRED,"Le joueur qui propose l'echange n'est plus dans un vehicule!");
  820.                     EchangeVeh[playerid][0] = 255;
  821.                     EchangeVeh[playerid][1] = 0;
  822.                     EchangeVeh[playerid][2] = 0;
  823.                     return 1;
  824.                 }
  825.                 new vehicleid = GetPlayerVehicleID(playerid);
  826.                 if(vehicleid != EchangeVeh[playerid][2])
  827.                 {
  828.                     SendClientMessage(playerid,COL_LIGHTRED,"Vous avez changer de vehicule!");
  829.                     EchangeVeh[playerid][0] = 255;
  830.                     EchangeVeh[playerid][1] = 0;
  831.                     EchangeVeh[playerid][2] = 0;
  832.                     return 1;
  833.                 }
  834.                 new givevehicleid = GetPlayerVehicleID(giveplayerid);
  835.                 if(givevehicleid != EchangeVeh[playerid][1])
  836.                 {
  837.                     SendClientMessage(playerid,COL_LIGHTRED,"Le joueur qui vous a proposer l'echange a changer de vehicule!");
  838.                     EchangeVeh[playerid][0] = 255;
  839.                     EchangeVeh[playerid][1] = 0;
  840.                     EchangeVeh[playerid][2] = 0;
  841.                     return 1;
  842.                 }
  843.                 new playername[MAX_PLAYER_NAME],giveplayername[MAX_PLAYER_NAME];
  844.                 GetPlayerName(playerid,playername,sizeof(playername));
  845.                 GetPlayerName(giveplayerid,giveplayername,sizeof(giveplayername));
  846.                 strmid(VehiculeInfo[vehicleid][Proprio],giveplayername,0,strlen(giveplayername),MAX_PLAYER_NAME);
  847.                 strmid(VehiculeInfo[givevehicleid][Proprio],playername,0,strlen(playername),MAX_PLAYER_NAME);
  848.                 format(string,sizeof(string),"%s a accepter l'echange de vehicule!",playername);
  849.                 SendClientMessage(giveplayerid,COL_GREEN,string);
  850.                 format(string,sizeof(string),"Vous avez accepter l'echange de vehicule avec %s",giveplayername);
  851.                 SendClientMessage(giveplayerid,COL_GREEN,string);
  852.                 EchangeVeh[playerid][0] = 255;
  853.                 EchangeVeh[playerid][1] = 0;
  854.                 EchangeVeh[playerid][2] = 0;
  855.             }
  856.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  857.         }
  858.         return 1;
  859.     }
  860.     if(strcmp(cmd, "/avsave", true) == 0)
  861.     {
  862.         if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  863.         {
  864.             SauvegardeVeh();
  865.             SendClientMessage(playerid,COL_GREEN,"Sauvegarde vehicule reussie!");
  866.         }
  867.         else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  868.         return 1;
  869.     }
  870.     if(strcmp(cmd, "/avcolor", true) == 0)
  871.     {
  872.         if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  873.         {
  874.             if(!IsPlayerInAnyVehicle(playerid))
  875.             {
  876.                 SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas dans un vehicule!");
  877.                 return 1;
  878.             }
  879.             tmp = strtok2(cmdtext,idx);
  880.             if(!strlen(tmp))
  881.             {
  882.                 SendClientMessage(playerid,COL_WHITE,"UTILISATION: /avcolor [color1] [color2]");
  883.                 return 1;
  884.             }
  885.             new col1 = strval(tmp);
  886.             tmp = strtok2(cmdtext,idx);
  887.             if(!strlen(tmp))
  888.             {
  889.                 SendClientMessage(playerid,COL_WHITE,"UTILISATION: /avcolor [color1] [color2]");
  890.                 return 1;
  891.             }
  892.             new col2 = strval(tmp);
  893.             new vehicleid = GetPlayerVehicleID(playerid);
  894.             ChangeVehicleColor(vehicleid,col1,col2);
  895.             VehiculeInfo[vehicleid][Couleur1] = col1;
  896.             VehiculeInfo[vehicleid][Couleur2] = col2;
  897.             SendClientMessage(playerid,COL_GREEN,"Vehicule repeint!");
  898.         }
  899.         else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  900.         return 1;
  901.     }
  902.     if(strcmp(cmd, "/avmodel", true) == 0)
  903.     {
  904.         if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  905.         {
  906.             if(!IsPlayerInAnyVehicle(playerid))
  907.             {
  908.                 SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas dans un vehicule!");
  909.                 return 1;
  910.             }
  911.             tmp = strtok2(cmdtext,idx);
  912.             if(!strlen(tmp))
  913.             {
  914.                 SendClientMessage(playerid, COL_WHITE, "UTILISATION: /avmodel [nom/moedelid]");
  915.                 return 1;
  916.             }
  917.             new modelid = ReturnModelByName(tmp);
  918.             if(modelid == 0)
  919.             {
  920.                 SendClientMessage(playerid, COL_WHITE, "Modelid incorect! Assurer vous d'avoir mit un nom de vehicule existant ou d'un modelid corect!");
  921.                 return 1;
  922.             }
  923.             new vehicleid = GetPlayerVehicleID(playerid);
  924.             new Float:x,Float:y,Float:z,Float:a;
  925.             GetVehiclePos(vehicleid,x,y,z);
  926.             GetVehicleZAngle(vehicleid,a);
  927.             RemoveAllPlayerFromVehicle(vehicleid);
  928.             VehiculeInfo[vehicleid][Model] = modelid;
  929.             strmid(VehiculeInfo[vehicleid][Nom],VehicleName[VehiculeInfo[vehicleid][Model]-400],0,strlen(VehicleName[VehiculeInfo[vehicleid][Model]-400]),64);
  930.             SetTimerEx("DestroyVeh",1500,0,"i",vehicleid);
  931.             SetTimerEx("CreateVeh",2000,0,"iffff",vehicleid,x,y,z,a);
  932.             SauvegardeVeh();
  933.             SendClientMessage(playerid,COL_GREEN,"Model du vehicule changer!");
  934.         }
  935.         else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  936.         return 1;
  937.     }
  938.     if(strcmp(cmd, "/avgoto", true) == 0)
  939.     {
  940.         if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  941.         {
  942.             tmp = strtok2(cmdtext,idx);
  943.             if(!strlen(tmp))
  944.             {
  945.                 SendClientMessage(playerid,COL_WHITE,"UTILISATION: /avgoto [VehID]");
  946.                 SendClientMessage(playerid,COL_LIGHTRED,"INFO: Utiliser le VehID pour vous teleporter sur un vehicule!");
  947.                 return 1;
  948.             }
  949.             new vehid = strval(tmp);
  950.             new Float:x,Float:y,Float:z;
  951.             for(new v=1;v<NbVeh;v++)
  952.             {
  953.                 if(VehiculeInfo[v][VehID] != INVALID_VEH_ID && VehiculeInfo[v][VehID] == vehid)
  954.                 {
  955.                     GetVehiclePos(v,x,y,z);
  956.                     SetPlayerPos(playerid,x,y,z+1.5);
  957.                     return 1;
  958.                 }
  959.             }
  960.             SendClientMessage(playerid,COL_GREEN,"Ce VehID est incorect!");
  961.         }
  962.         else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  963.         return 1;
  964.     }
  965.     if(strcmp(cmd, "/vehsave", true) ==0 )
  966.     {
  967.         if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  968.         {
  969.             if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  970.             {
  971.                 new vehicleid = GetPlayerVehicleID(playerid);
  972.                 if(VehiculeInfo[vehicleid][VehID] != INVALID_VEH_ID)
  973.                 {
  974.                     SendClientMessage(playerid,COL_LIGHTRED,"Ce vehicule est deja sauvegarder!");
  975.                     return 1;
  976.                 }
  977.                 new Float:x,Float:y,Float:z,Float:a;
  978.                 GetVehiclePos(vehicleid,x,y,z);
  979.                 GetVehicleZAngle(vehicleid,a);
  980.  
  981.                 VehiculeInfo[vehicleid][VehID]      = vehicleid;
  982.                 VehiculeInfo[vehicleid][Model]      = GetVehicleModel(vehicleid);
  983.                 VehiculeInfo[vehicleid][XSpawn]     = x;
  984.                 VehiculeInfo[vehicleid][YSpawn]     = y;
  985.                 VehiculeInfo[vehicleid][ZSpawn]     = z;
  986.                 VehiculeInfo[vehicleid][ASpawn]     = a;
  987.                 VehiculeInfo[vehicleid][Prix]       = 0;
  988.                 VehiculeInfo[vehicleid][Status]     = 0;
  989.                 VehiculeInfo[vehicleid][Alarme]     = 2;
  990.                 VehiculeInfo[vehicleid][Tuning1]    = 0;
  991.                 VehiculeInfo[vehicleid][Tuning2]    = 0;
  992.                 VehiculeInfo[vehicleid][Tuning3]    = 0;
  993.                 VehiculeInfo[vehicleid][Tuning4]    = 0;
  994.                 VehiculeInfo[vehicleid][Tuning5]    = 0;
  995.                 VehiculeInfo[vehicleid][Tuning6]    = 0;
  996.                 VehiculeInfo[vehicleid][Tuning7]    = 0;
  997.                 VehiculeInfo[vehicleid][Tuning8]    = 0;
  998.                 VehiculeInfo[vehicleid][Tuning9]    = 0;
  999.                 VehiculeInfo[vehicleid][Tuning10]   = 0;
  1000.                 VehiculeInfo[vehicleid][Tuning11]   = 0;
  1001.                 VehiculeInfo[vehicleid][Tuning12]   = 0;
  1002.                 VehiculeInfo[vehicleid][Tuning13]   = 0;
  1003.                 VehiculeInfo[vehicleid][Tuning14]   = 0;
  1004.                 VehiculeInfo[vehicleid][Tuning15]   = 0;
  1005.                 VehiculeInfo[vehicleid][Tuning16]   = 0;
  1006.                 VehiculeInfo[vehicleid][Tuning17]   = 0;
  1007.                 VehiculeInfo[vehicleid][Peinture]   = 0;
  1008.                 VehiculeInfo[vehicleid][MaxEssence] = 50;
  1009.                 VehiculeInfo[vehicleid][Essence]    = 50;
  1010.                 strmid(VehiculeInfo[vehicleid][Proprio],"Aucun", 0, strlen("Aucun"),MAX_PLAYER_NAME);
  1011.                 strmid(VehiculeInfo[vehicleid][Nom],VehicleName[VehiculeInfo[vehicleid][Model]-400],0,strlen(VehicleName[VehiculeInfo[vehicleid][Model]-400]),64);
  1012.                 VehiculeInfo[vehicleid][Essence] = VehiculeInfo[vehicleid][MaxEssence];
  1013.                 EssenceCount[vehicleid] = 0;
  1014.                 NbVeh++;
  1015.  
  1016.                 format(string,sizeof(string),"Ce vehicule (%s) a bien été sauvegarder!",VehiculeInfo[vehicleid][Nom]);
  1017.                 SendClientMessage(playerid,COL_GREEN,string);
  1018.                 SauvegardeVeh();
  1019.             }
  1020.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  1021.         }
  1022.         else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  1023.         return 1;
  1024.     }
  1025.     if(strcmp(cmd, "/vehdestroy", true) ==0 )
  1026.     {
  1027.         if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  1028.         {
  1029.             if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1030.             {
  1031.                 new vehicleid = GetPlayerVehicleID(playerid);
  1032.                 format(string,sizeof(string),"Ce vehicule (%s) a bien été suprimer!",VehiculeInfo[vehicleid][Nom]);
  1033.                 SendClientMessage(playerid,COL_GREEN,string);
  1034.                 VehiculeInfo[vehicleid][VehID] = INVALID_VEH_ID;
  1035.                 RemoveAllPlayerFromVehicle(vehicleid);
  1036.                 SetTimerEx("DestroyVeh",5000,0,"i",vehicleid);
  1037.                 SauvegardeVeh();
  1038.             }
  1039.             else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas au volant d'un vehicule!");
  1040.         }
  1041.         else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  1042.         return 1;
  1043.     }
  1044.     if(strcmp(cmd, "/allessence", true) ==0 )
  1045.     {
  1046.         if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  1047.         {
  1048.             for(new v=1;v<NbVeh;v++)
  1049.             {
  1050.                 VehiculeInfo[v][Essence] = VehiculeInfo[v][MaxEssence];
  1051.             }
  1052.             SendClientMessage(playerid,COL_GREEN,"Tout les vehicule on été remplis!");
  1053.         }
  1054.         else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'ête pas autoriser a utiliser cette commande!");
  1055.         return 1;
  1056.     }
  1057.     if(strcmp(cmd, "/veh", true) ==0 )
  1058.     {
  1059.         if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  1060.         {
  1061.             tmp = strtok2(cmdtext, idx);
  1062.             if(!strlen(tmp))
  1063.             {
  1064.                 SendClientMessage(playerid, COL_WHITE, "UTILISATION: /veh [nom/moedelid] [color1] [color2]");
  1065.                 return 1;
  1066.             }
  1067.             new modelid = ReturnModelByName(tmp);
  1068.             if(modelid == 0)
  1069.             {
  1070.                 SendClientMessage(playerid, COL_WHITE, "Modelid incorect! Assurer vous d'avoir mit un nom de vehicule existant ou d'un modelid corect!");
  1071.                 return 1;
  1072.             }
  1073.             new color1 = 0;
  1074.             tmp = strtok2(cmdtext, idx);
  1075.             if(strlen(tmp)) color1 = strval(tmp);
  1076.             new color2 = 0;
  1077.             tmp = strtok2(cmdtext, idx);
  1078.             if(strlen(tmp)) color2 = strval(tmp);
  1079.  
  1080.             new Float:x,Float:y,Float:z,Float:a;
  1081.             GetPlayerPos(playerid,x,y,z);
  1082.             GetPlayerFacingAngle(playerid,a);
  1083.             GetXYFront(x, y, a, 3.0);
  1084.             new Cveh = CreateVehicle(modelid,x,y,z,a,color1,color2,RESPAWN_DELAY);
  1085.  
  1086.             VehiculeInfo[Cveh][VehID]       = INVALID_VEH_ID;
  1087.             VehiculeInfo[Cveh][Model]       = modelid;
  1088.             VehiculeInfo[Cveh][XSpawn]      = x;
  1089.             VehiculeInfo[Cveh][YSpawn]      = y;
  1090.             VehiculeInfo[Cveh][ZSpawn]      = z;
  1091.             VehiculeInfo[Cveh][ASpawn]      = a;
  1092.             VehiculeInfo[Cveh][Couleur1]    = color1;
  1093.             VehiculeInfo[Cveh][Couleur2]    = color2;
  1094.             VehiculeInfo[Cveh][Prix]        = 0;
  1095.             VehiculeInfo[Cveh][Status]      = 0;
  1096.             VehiculeInfo[Cveh][Alarme]      = 2;
  1097.             VehiculeInfo[Cveh][Tuning1]     = 0;
  1098.             VehiculeInfo[Cveh][Tuning2]     = 0;
  1099.             VehiculeInfo[Cveh][Tuning3]     = 0;
  1100.             VehiculeInfo[Cveh][Tuning4]     = 0;
  1101.             VehiculeInfo[Cveh][Tuning5]     = 0;
  1102.             VehiculeInfo[Cveh][Tuning6]     = 0;
  1103.             VehiculeInfo[Cveh][Tuning7]     = 0;
  1104.             VehiculeInfo[Cveh][Tuning8]     = 0;
  1105.             VehiculeInfo[Cveh][Tuning9]     = 0;
  1106.             VehiculeInfo[Cveh][Tuning10]    = 0;
  1107.             VehiculeInfo[Cveh][Tuning11]    = 0;
  1108.             VehiculeInfo[Cveh][Tuning12]    = 0;
  1109.             VehiculeInfo[Cveh][Tuning13]    = 0;
  1110.             VehiculeInfo[Cveh][Tuning14]    = 0;
  1111.             VehiculeInfo[Cveh][Tuning15]    = 0;
  1112.             VehiculeInfo[Cveh][Tuning16]    = 0;
  1113.             VehiculeInfo[Cveh][Tuning17]    = 0;
  1114.             VehiculeInfo[Cveh][Peinture]    = 0;
  1115.             VehiculeInfo[Cveh][MaxEssence]  = 50;
  1116.             VehiculeInfo[Cveh][Essence]     = 50;
  1117.             strmid(VehiculeInfo[Cveh][Proprio],"Aucun", 0, strlen("Aucun"),128);
  1118.             strmid(VehiculeInfo[Cveh][Nom],VehicleName[modelid-400],0,strlen(VehicleName[modelid-400]),128);
  1119.  
  1120.             format(string,sizeof(string),"Vehicule (%s) cree!",VehiculeInfo[Cveh][Nom]);
  1121.             SendClientMessage(playerid,COL_GREEN,string);
  1122.             SendClientMessage(playerid,COL_LIGHTRED,"Pour ajouter ce vehicule a la liste des vehicule sauvegarder taper /vehsave ");
  1123.         }
  1124.         else SendClientMessage(playerid,COL_WHITE,"Vous n'ête pas autoriser a utiliser cette commande!");
  1125.         return 1;
  1126.     }
  1127.     if(strcmp(cmd,"/convert", true) == 0)
  1128.     {
  1129.         if(IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
  1130.         {
  1131.             tmp = strtok2(cmdtext, idx);
  1132.             if(!strlen(tmp))
  1133.             {
  1134.                 SendClientMessage(playerid,COL_WHITE,"UTILISATION: /convert [nom fichier]");
  1135.                 return 1;
  1136.             }
  1137.             if(!fexist(tmp))
  1138.             {
  1139.                 format(string,sizeof(string),"Le fichier %s n'existe pas!",tmp);
  1140.                 SendClientMessage(playerid,COL_LIGHTRED,string);
  1141.                 return 1;
  1142.             }
  1143.             new File:convert = fopen(tmp, io_read);
  1144.             new filestring[256];
  1145.             new CountConvert = 1;
  1146.             while(fread(convert, filestring))
  1147.             {
  1148.                 if(strfind(filestring,"AddStaticVehicle(") != -1 && strfind(filestring,")") != -1)
  1149.                 {
  1150.                     new find = strfind(filestring,"(");
  1151.                     new find2 = strfind(filestring,")");
  1152.                     new info[128];
  1153.                     strmid(info,filestring,find+1,find2,128);
  1154.                     split2(info, Field, ',');
  1155.  
  1156.                     new CVeh = CreateVehicle(strval(Field[0]),floatstr(Field[1]),floatstr(Field[2]),floatstr(Field[3]),floatstr(Field[4]),strval(Field[5]),strval(Field[6]),RESPAWN_DELAY);
  1157.  
  1158.                     VehiculeInfo[CVeh][VehID]       = CVeh;
  1159.                     VehiculeInfo[CVeh][Model]       = strval(Field[0]);
  1160.                     VehiculeInfo[CVeh][XSpawn]      = floatstr(Field[1]);
  1161.                     VehiculeInfo[CVeh][YSpawn]      = floatstr(Field[2]);
  1162.                     VehiculeInfo[CVeh][ZSpawn]      = floatstr(Field[3]);
  1163.                     VehiculeInfo[CVeh][ASpawn]      = floatstr(Field[4]);
  1164.                     VehiculeInfo[CVeh][Couleur1]    = strval(Field[5]);
  1165.                     VehiculeInfo[CVeh][Couleur2]    = strval(Field[6]);
  1166.                     VehiculeInfo[CVeh][Prix]        = 0;
  1167.                     VehiculeInfo[CVeh][Status]      = 0;
  1168.                     VehiculeInfo[CVeh][Alarme]      = 2;
  1169.                     VehiculeInfo[CVeh][Tuning1]     = 0;
  1170.                     VehiculeInfo[CVeh][Tuning2]     = 0;
  1171.                     VehiculeInfo[CVeh][Tuning3]     = 0;
  1172.                     VehiculeInfo[CVeh][Tuning4]     = 0;
  1173.                     VehiculeInfo[CVeh][Tuning5]     = 0;
  1174.                     VehiculeInfo[CVeh][Tuning6]     = 0;
  1175.                     VehiculeInfo[CVeh][Tuning7]     = 0;
  1176.                     VehiculeInfo[CVeh][Tuning8]     = 0;
  1177.                     VehiculeInfo[CVeh][Tuning9]     = 0;
  1178.                     VehiculeInfo[CVeh][Tuning10]    = 0;
  1179.                     VehiculeInfo[CVeh][Tuning11]    = 0;
  1180.                     VehiculeInfo[CVeh][Tuning12]    = 0;
  1181.                     VehiculeInfo[CVeh][Tuning13]    = 0;
  1182.                     VehiculeInfo[CVeh][Tuning14]    = 0;
  1183.                     VehiculeInfo[CVeh][Tuning15]    = 0;
  1184.                     VehiculeInfo[CVeh][Tuning16]    = 0;
  1185.                     VehiculeInfo[CVeh][Tuning17]    = 0;
  1186.                     VehiculeInfo[CVeh][Peinture]    = 0;
  1187.                     VehiculeInfo[CVeh][MaxEssence]  = 50;
  1188.                     VehiculeInfo[CVeh][Essence]     = 50;
  1189.                     strmid(VehiculeInfo[CVeh][Proprio],"Aucun", 0, strlen("Aucun"),128);
  1190.                     strmid(VehiculeInfo[CVeh][Nom],VehicleName[VehiculeInfo[CVeh][Model]-400],0,strlen(VehicleName[VehiculeInfo[CVeh][Model]-400]),128);
  1191.  
  1192.                     format(string,sizeof(string),"Vehicule (%s) cree!",VehiculeInfo[CVeh][Nom]);
  1193.                     SendClientMessage(playerid,COL_GREEN,string);
  1194.  
  1195.                     CVeh++;
  1196.                     CountConvert++;
  1197.                 }
  1198.             }
  1199.             if(CountConvert > 1)
  1200.             {
  1201.                 format(string,sizeof(string),"%d vehicule on été converti et ajouter!",CountConvert);
  1202.                 SendClientMessage(playerid,COL_LIGHTRED,string);
  1203.                 SauvegardeVeh();
  1204.             }
  1205.             else SendClientMessage(playerid,COL_LIGHTRED,"Il n'ya pas de ligne 'AddStaticVehicle' dans ce fichier!");
  1206.         }
  1207.         else SendClientMessage(playerid,COL_WHITE,"Vous n'ête pas autoriser a utiliser cette commande!");
  1208.         return 1;
  1209.     }
  1210.     return 0;
  1211. }
  1212.  
  1213. public Script_OnPlayerExitVehicle(playerid)
  1214. {
  1215.     if(PompeEssence[playerid] != 255)
  1216.     {
  1217.         KillTimer(TimerEssence[playerid]);
  1218.         PompeEssence[playerid] = 255;
  1219.         SendClientMessage(playerid,COL_GREEN,"Vous êtes sortis du vehicule pendant le remplisage du reservoir. Le remplisage c'est arreter!");
  1220.     }
  1221.     if(TableauActive[playerid] == 1 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1222.     {
  1223.         TableauActive[playerid] = 6;
  1224.     }
  1225.     return 1;
  1226. }
  1227. public Script_OnPlayerKeyStateChange(playerid, newkeys)
  1228. {
  1229.     new car = GetPlayerVehicleID(playerid);
  1230.     if(IsPlayerConnected(playerid))
  1231.     {
  1232.         if(newkeys & KEY_SECONDARY_ATTACK)
  1233.         {
  1234.             if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && EnPanne[playerid] == 1)
  1235.             {
  1236.                 TogglePlayerControllable(playerid,1);
  1237.                 RemovePlayerFromVehicle(playerid);
  1238.                 EnPanne[playerid] = 5;
  1239.             }
  1240.         }
  1241.     }
  1242.     if(newkeys == KEY_FIRE)
  1243.     {
  1244.         if(IsPlayerInAnyVehicle(playerid))
  1245.         {
  1246.             if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1247.             {
  1248.                 if(IsPlayerConnected(playerid))
  1249.                 {
  1250.                     new sendername[32];
  1251.                     new string[126];
  1252.                     new engine,lighttss,alarm,doors,bonnet,boot,objective;
  1253.                     GetPlayerName(playerid, sendername, sizeof(sendername));
  1254.                     if(VehiculeInfo[car][Phares] == 0)
  1255.                     {
  1256.                         format(string, sizeof(string), "* %s allume les phares du vehicule.", sendername);
  1257.                         ProxDetectorVeh(30.0, playerid, string, COL_PURPLE,COL_PURPLE,COL_PURPLE,COL_PURPLE,COL_PURPLE);
  1258.                         GetVehicleParamsEx(car,engine,lighttss,alarm,doors,bonnet,boot,objective);
  1259.                         SetVehicleParamsEx(car,engine,1,alarm,doors,bonnet,boot,objective);
  1260.                         GameTextForPlayer(playerid, "~w~Phares Allumes...",3500,3);
  1261.                         VehiculeInfo[car][Phares] = 1;
  1262.                         return 1;
  1263.                     }
  1264.                     else
  1265.                     {
  1266.                         format(string, sizeof(string), "* %s eteind les phares du vehicule.", sendername);
  1267.                         ProxDetectorVeh(30.0, playerid, string, COL_PURPLE,COL_PURPLE,COL_PURPLE,COL_PURPLE,COL_PURPLE);
  1268.                         GetVehicleParamsEx(car,engine,lighttss,alarm,doors,bonnet,boot,objective);
  1269.                         SetVehicleParamsEx(car,engine,0,alarm,doors,bonnet,boot,objective);
  1270.                         GameTextForPlayer(playerid, "~w~Phares Eteinds...",3500,3);
  1271.                         VehiculeInfo[car][Phares] = 0;
  1272.                         return 1;
  1273.                     }
  1274.                 }
  1275.             }
  1276.         }
  1277.     }
  1278.     return 1;
  1279. }
  1280.  
  1281. public Script_OnPlayerStateChange(playerid, newstate)
  1282. {
  1283.     if(IsPlayerConnected(playerid))
  1284.     {
  1285.         if(newstate == PLAYER_STATE_DRIVER)
  1286.         {
  1287.             new vehicleid = GetPlayerVehicleID(playerid);
  1288.             new playername[MAX_PLAYER_NAME],string[128];
  1289.             new Float:x,Float:y,Float:z;
  1290.             GetPlayerName(playerid,playername,sizeof(playername));
  1291.             GetPlayerPos(playerid,x,y,z);
  1292.             PlayerPos[playerid][0] = x;
  1293.             PlayerPos[playerid][1] = y;
  1294.             PlayerPos[playerid][2] = z;
  1295.             if(VehiculeInfo[vehicleid][VehID] == INVALID_VEH_ID && IsPlayerAdmin(playerid))
  1296.             {
  1297.                 format(string,sizeof(string),"Ce vehicule (%s) n'est pas un vehicule sauvegarder pour le sauvegarder taper /vehsave",VehiculeInfo[vehicleid][Nom]);
  1298.                 SendClientMessage(playerid,COL_LIGHTRED,string);
  1299.             }
  1300.             if(VehiculeInfo[vehicleid][Alarme] == 2)
  1301.             {
  1302.                 if(!IsPlayerAdmin(playerid))
  1303.                 {
  1304.                     format(string,sizeof(string),"Ce vehicule (%s) est reserver au admin. Vous ne pouvez pas l'utiliser!",VehiculeInfo[vehicleid][Nom]);
  1305.                     SendClientMessage(playerid,COL_LIGHTRED,string);
  1306.                     RemovePlayerFromVehicle(playerid);
  1307.                     return 1;
  1308.                 }
  1309.                 else
  1310.                 {
  1311.                     format(string,sizeof(string),"Ce vehicule (%s) est reserver au admin. Vous pouvez l'utiliser!",VehiculeInfo[vehicleid][Nom]);
  1312.                     SendClientMessage(playerid,COL_GREEN,string);
  1313.                 }
  1314.             }
  1315.             if(strcmp(VehiculeInfo[vehicleid][Proprio],"Aucun",true) == 0)
  1316.             {
  1317.                 if(VehiculeInfo[vehicleid][Status] == 1)
  1318.                 {
  1319.                     #if defined USE_MENU
  1320.                         format(string,sizeof(string),"Ce vehicule (%s) peux être acheter pour %d$! Pour l'acheter taper /vmenu et selectioner 'Acheter'",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Prix]);
  1321.                     #else
  1322.                         format(string,sizeof(string),"Ce vehicule (%s) peux être acheter pour %d$! Pour l'acheter taper /vacheter!",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Prix]);
  1323.                     #endif
  1324.                     SendClientMessage(playerid,COL_YELLOW,string);
  1325.                 }
  1326.             }
  1327.             else if(strcmp(VehiculeInfo[vehicleid][Proprio],playername,true) == 0)
  1328.             {
  1329.                 format(string,sizeof(string),"Bienvenu dans votre vehicule (%s)",VehiculeInfo[vehicleid][Nom]);
  1330.                 SendClientMessage(playerid,COL_GREEN,string);
  1331.                 if(VehiculeInfo[vehicleid][Alarme] == 0)
  1332.                 {
  1333.                     SendClientMessage(playerid,COL_GREEN,"L'alarme de votre vehicule est desactivé!");
  1334.                 }
  1335.                 else if(VehiculeInfo[vehicleid][Alarme] == 1)
  1336.                 {
  1337.                     SendClientMessage(playerid,COL_GREEN,"L'alarme de votre vehicule est activé!");
  1338.                 }
  1339.                 else if(VehiculeInfo[vehicleid][Alarme] == 2)
  1340.                 {
  1341.                     SendClientMessage(playerid,COL_GREEN,"Ce vehicule est proteger par l'alarme admin!");
  1342.                 }
  1343.             }
  1344.             else
  1345.             {
  1346.                 if(VehiculeInfo[vehicleid][Alarme] == 0)
  1347.                 {
  1348.                     format(string,sizeof(string),"Ce vehicule (%s) appartient a %s",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Proprio]);
  1349.                     SendClientMessage(playerid,COL_GREEN,string);
  1350.                 }
  1351.                 else if(VehiculeInfo[vehicleid][Alarme] == 1)
  1352.                 {
  1353.                     format(string,sizeof(string),"Ce vehicule (%s) appartient a %s et est proteger par une alarme!",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Proprio]);
  1354.                     SendClientMessage(playerid,COL_GREEN,string);
  1355.                     RemovePlayerFromVehicle(playerid);
  1356.                     return 1;
  1357.                 }
  1358.                 else if(VehiculeInfo[vehicleid][Alarme] == 2)
  1359.                 {
  1360.                     format(string,sizeof(string),"Ce vehicule (%s) appartient a %s et est proteger par l'alarme admin!",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Proprio]);
  1361.                     SendClientMessage(playerid,COL_GREEN,string);
  1362.                 }
  1363.             }
  1364.             if(VehiculeInfo[vehicleid][Essence] <= 0 && EnPanne[playerid] == 0)
  1365.             {
  1366.                 format(string,sizeof(string),"Le reservoir de ce vehicule (%s) est vide!",VehiculeInfo[vehicleid][Nom]);
  1367.                 SendClientMessage(playerid,COL_LIGHTRED,string);
  1368.                 new engine,lighttss,alarm,doors,bonnet,boot,objective;
  1369.                 GetVehicleParamsEx(vehicleid,engine,lighttss,alarm,doors,bonnet,boot,objective);
  1370.                 SetVehicleParamsEx(vehicleid,0,lighttss,alarm,doors,bonnet,boot,objective);
  1371.                 EnPanne[playerid] = 1;
  1372.             }
  1373.         }
  1374.     }
  1375.     return 1;
  1376. }
  1377.  
  1378. public Script_OnPlayerText(playerid, text[])
  1379. {
  1380.     #if defined USE_MENU
  1381.         new tmp[128],string[128],idx;
  1382.         if(DefinirPrix[playerid] == 1)
  1383.         {
  1384.             tmp = strtok2(text, idx);
  1385.             if(!strlen(tmp))
  1386.             {
  1387.                 SendClientMessage(playerid,COL_LIGHTRED,"Veuillez entrer un prix pour ce vehicule!");
  1388.                 return 1;
  1389.             }
  1390.             if(!IsNumeric2(tmp))
  1391.             {
  1392.                 SendClientMessage(playerid,COL_LIGHTRED,"Veuillez entrer un nombre correct!");
  1393.                 return 1;
  1394.             }
  1395.             new vehicleid = GetPlayerVehicleID(playerid);
  1396.             VehiculeInfo[vehicleid][Prix] = strval(tmp);
  1397.             format(string,sizeof(string),"Vous avez changer le prix de ce vehicule (%s). Nouveau prix: %d$",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Prix]);
  1398.             SendClientMessage(playerid,COL_GREEN,string);
  1399.             TogglePlayerControllable(playerid,1);
  1400.             DefinirPrix[playerid] = 0;
  1401.             return 1;
  1402.         }
  1403.         if(DefinirEssence[playerid] == 1)
  1404.         {
  1405.             tmp = strtok2(text, idx);
  1406.             if(!strlen(tmp))
  1407.             {
  1408.                 SendClientMessage(playerid,COL_LIGHTRED,"Veuillez entrer un valeur maxium d'essence pour ce vehicule!");
  1409.                 return 1;
  1410.             }
  1411.             if(!IsNumeric2(tmp))
  1412.             {
  1413.                 SendClientMessage(playerid,COL_LIGHTRED,"Veuillez entrer un nombre correct!");
  1414.                 return 1;
  1415.             }
  1416.             new vehicleid = GetPlayerVehicleID(playerid);
  1417.             VehiculeInfo[vehicleid][MaxEssence] = strval(tmp);
  1418.             format(string,sizeof(string),"Vous avez changer le reservoir de ce vehicule (%s). Nouvelle quantiter maxiumum d'essence: %d$",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][MaxEssence]);
  1419.             SendClientMessage(playerid,COL_GREEN,string);
  1420.             TogglePlayerControllable(playerid,1);
  1421.             DefinirEssence[playerid] = 0;
  1422.             return 1;
  1423.         }
  1424.         #if defined USE_CALLCAR
  1425.             if(MyVehicleID[playerid][0] != 0)
  1426.             {
  1427.                 tmp = strtok2(text, idx);
  1428.                 if(!strlen(tmp))
  1429.                 {
  1430.                     SendClientMessage(playerid,COL_WHITE,"Veuillez entrer un numero de vehicule!");
  1431.                     return 1;
  1432.                 }
  1433.                 new veh = strval(tmp);
  1434.                 if(veh < 1 || veh > MAX_PLAYER_VEHICLES)
  1435.                 {
  1436.                     format(string,sizeof(string),"Le numero du vehicule ne peux être inferieur a 1 ou superieur a %d",MAX_PLAYER_VEHICLES);
  1437.                     SendClientMessage(playerid,COL_LIGHTRED,string);
  1438.                     return 1;
  1439.                 }
  1440.                 new vehicleid = MyVehicleID[playerid][veh-1];
  1441.                 if(vehicleid == 0)
  1442.                 {
  1443.                     SendClientMessage(playerid,COL_LIGHTRED,"Vous n'avez pas de vehicule a se numéro");
  1444.                     return 1;
  1445.                 }
  1446.                 format(string,sizeof(string),"Ce vehicule (%s) a été appeler par sont proprietaire (%s)!",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Proprio]);
  1447.                 for(new i=0;i<MAX_PLAYERS;i++)
  1448.                 {
  1449.                     if(IsPlayerConnected(i))
  1450.                     {
  1451.                         if(IsPlayerInAnyVehicle(i) && GetPlayerVehicleID(i) == vehicleid)
  1452.                         {
  1453.                             SendClientMessage(i,COL_LIGHTRED,string);
  1454.                             RemovePlayerFromVehicle(i);
  1455.                         }
  1456.                     }
  1457.                 }
  1458.                 for(new m=0;m<MAX_PLAYER_VEHICLES;m++)
  1459.                 {
  1460.                     MyVehicleID[playerid][m] = 0;
  1461.                 }
  1462.                 SetTimerEx("DestroyVeh",2500,0,"i",vehicleid);
  1463.                 SetTimerEx("CallCar",3000,0,"ii",playerid,vehicleid);
  1464.                 format(string,sizeof(string),"Votre vehicule (%s) arrivera dans quelque seconde veuillez patienter!",VehiculeInfo[vehicleid][Nom]);
  1465.                 SendClientMessage(playerid,COL_LIGHTRED,string);
  1466.                 TogglePlayerControllable(playerid,1);
  1467.                 return 1;
  1468.             }
  1469.         #endif
  1470.     #else
  1471.         #pragma unused playerid
  1472.         #pragma unused text
  1473.     #endif
  1474. #if defined FILTERSCRIPT
  1475.     return 1;
  1476. #else
  1477.     return 0;
  1478. #endif
  1479. }
  1480.  
  1481. public Script_OnPlayerSelectedMenuRow(playerid, row)
  1482. {
  1483.     #if defined USE_MENU
  1484.         new Menu:MenuActuel = GetPlayerMenu(playerid);
  1485.         if(MenuActuel == MenuJoueur)
  1486.         {
  1487.             switch(row)
  1488.             {
  1489.                 case 0:
  1490.                 {
  1491.                     AcheterVehicule(playerid);
  1492.                     HideMenuForPlayer(MenuActuel, playerid);
  1493.                     TogglePlayerControllable(playerid, 1);
  1494.                 }
  1495.                 case 1:
  1496.                 {
  1497.                     VendreVehicule(playerid, 0);
  1498.                     HideMenuForPlayer(MenuActuel, playerid);
  1499.                     TogglePlayerControllable(playerid, 1);
  1500.                 }
  1501.                 case 2:
  1502.                 {
  1503.                     GarerVehicule(playerid, 0);
  1504.                     HideMenuForPlayer(MenuActuel, playerid);
  1505.                     TogglePlayerControllable(playerid, 1);
  1506.                 }
  1507.                 case 3:
  1508.                 {
  1509.                     AlarmeVehicule(playerid, 0);
  1510.                     HideMenuForPlayer(MenuActuel, playerid);
  1511.                     TogglePlayerControllable(playerid, 1);
  1512.                 }
  1513.                 case 4:
  1514.                 {
  1515.                     EssenceVehicule(playerid, 0);
  1516.                     HideMenuForPlayer(MenuActuel, playerid);
  1517.                     TogglePlayerControllable(playerid, 1);
  1518.                 }
  1519.                 case 5:
  1520.                 {
  1521.                     TableauDeBord(playerid);
  1522.                     HideMenuForPlayer(MenuActuel, playerid);
  1523.                     TogglePlayerControllable(playerid, 1);
  1524.                 }
  1525.                 #if defined USE_CALLCAR
  1526.                     case 6:
  1527.                     {
  1528.                         if(CountPlayerVehicle(playerid) == 0)
  1529.                         {
  1530.                             SendClientMessage(playerid,COL_LIGHTRED,"Vous n'avez pas de vehicules!");
  1531.                             TogglePlayerControllable(playerid,1);
  1532.                             return 1;
  1533.                         }
  1534.                         new playername[MAX_PLAYER_NAME],string[128];
  1535.                         SendClientMessage(playerid,COL_WHITE,"------[LISTE DE VOS VEHICULE]------");
  1536.                         GetPlayerName(playerid,playername,sizeof(playername));
  1537.                         new count = 0;
  1538.                         for(new v=1;v<NbVeh;v++)
  1539.                         {
  1540.                             if(VehiculeInfo[v][VehID] != INVALID_VEH_ID)
  1541.                             {
  1542.                                 if(strcmp(VehiculeInfo[v][Proprio],playername,true) == 0)
  1543.                                 {
  1544.                                     format(string,sizeof(string),"%d: %s",count+1,VehiculeInfo[v][Nom]);
  1545.                                     SendClientMessage(playerid,COL_WHITE,string);
  1546.                                     MyVehicleID[playerid][count] = v;
  1547.                                     count++;
  1548.                                 }
  1549.                             }
  1550.                         }
  1551.                         SendClientMessage(playerid,COL_LIGHTRED,"Pour appeler un vehicule entrer sont numero dans la zone de texte!");
  1552.                         HideMenuForPlayer(MenuActuel, playerid);
  1553.                         TogglePlayerControllable(playerid, 1);
  1554.                     }
  1555.                     case 7:
  1556.                     {
  1557.                         HideMenuForPlayer(MenuActuel, playerid);
  1558.                         TogglePlayerControllable(playerid, 1);
  1559.                     }
  1560.                 #else
  1561.                     case 6:
  1562.                     {
  1563.                         HideMenuForPlayer(MenuActuel, playerid);
  1564.                         TogglePlayerControllable(playerid, 1);
  1565.                     }
  1566.                 #endif
  1567.             }
  1568.         }
  1569.         else if(MenuActuel == MenuAdmin)
  1570.         {
  1571.             switch(row)
  1572.             {
  1573.                 case 0:
  1574.                 {
  1575.                     DefinirPrix[playerid] = 1;
  1576.                     SendClientMessage(playerid,COL_GREEN,"Taper le prix dans la zone de texte!");
  1577.                     HideMenuForPlayer(MenuActuel, playerid);
  1578.                 }
  1579.                 case 1:
  1580.                 {
  1581.                     AlarmeVehicule(playerid, 1);
  1582.                     HideMenuForPlayer(MenuActuel, playerid);
  1583.                     TogglePlayerControllable(playerid, 1);
  1584.                 }
  1585.                 case 2:
  1586.                 {
  1587.                     VendreVehicule(playerid, 1);
  1588.                     HideMenuForPlayer(MenuActuel, playerid);
  1589.                     TogglePlayerControllable(playerid, 1);
  1590.                 }
  1591.                 case 3:
  1592.                 {
  1593.                     StatusVehicule(playerid);
  1594.                     HideMenuForPlayer(MenuActuel, playerid);
  1595.                     TogglePlayerControllable(playerid, 1);
  1596.                 }
  1597.                 case 4:
  1598.                 {
  1599.                     GarerVehicule(playerid, 1);
  1600.                     HideMenuForPlayer(MenuActuel, playerid);
  1601.                     TogglePlayerControllable(playerid, 1);
  1602.                 }
  1603.                 case 5:
  1604.                 {
  1605.                     EssenceVehicule(playerid, 1);
  1606.                     HideMenuForPlayer(MenuActuel, playerid);
  1607.                     TogglePlayerControllable(playerid, 1);
  1608.                 }
  1609.                 case 6:
  1610.                 {
  1611.                     DefinirEssence[playerid] = 1;
  1612.                     SendClientMessage(playerid,COL_GREEN,"Taper une valeur dans la zone de texte!");
  1613.                     HideMenuForPlayer(MenuActuel, playerid);
  1614.                 }
  1615.                 case 7:
  1616.                 {
  1617.                     ResetTuning(playerid);
  1618.                     HideMenuForPlayer(MenuActuel,playerid);
  1619.                     TogglePlayerControllable(playerid, 1);
  1620.                 }
  1621.                 case 8:
  1622.                 {
  1623.                     HideMenuForPlayer(MenuActuel, playerid);
  1624.                     TogglePlayerControllable(playerid, 1);
  1625.                 }
  1626.             }
  1627.         }
  1628.     #else
  1629.         #pragma unused playerid
  1630.         #pragma unused row
  1631.     #endif
  1632.     return 1;
  1633. }
  1634. public Script_OnPlayerExitedMenu(playerid)
  1635. {
  1636.     #if defined USE_MENU
  1637.         if(EnPanne[playerid] == 0)
  1638.         {
  1639.             new Menu:MenuActuel = GetPlayerMenu(playerid);
  1640.             if(MenuActuel == MenuJoueur || MenuActuel == MenuAdmin)
  1641.             {
  1642.                 TogglePlayerControllable(playerid, 1);
  1643.             }
  1644.         }
  1645.     #else
  1646.         #pragma unused playerid
  1647.     #endif
  1648.     return 1;
  1649. }
  1650. public Script_OnVehicleRespray(playerid, vehicleid, color1, color2)
  1651. {
  1652.     new playername[MAX_PLAYER_NAME];
  1653.     GetPlayerName(playerid,playername,sizeof(playername));
  1654.     if(strcmp(VehiculeInfo[vehicleid][Proprio],playername,true) == 0)
  1655.     {
  1656.         VehiculeInfo[vehicleid][Couleur1] = color1;
  1657.         VehiculeInfo[vehicleid][Couleur2] = color2;
  1658.     }
  1659.     SauvegardeVeh();
  1660.     return 1;
  1661. }
  1662. //
  1663. //
  1664. //
  1665. AcheterVehicule(playerid)
  1666. {
  1667.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1668.     {
  1669.         new string[128];
  1670.         new vehicleid = GetPlayerVehicleID(playerid);
  1671.         if(strcmp(VehiculeInfo[vehicleid][Proprio],"Aucun",true) == 0)
  1672.         {
  1673.             if(GetPlayerMoney(playerid) < VehiculeInfo[vehicleid][Prix])
  1674.             {
  1675.                 format(string,sizeof(string),"Vous n'avez pas assez d'argent pour acheter ce vehicule. Il vous faut %d$!",VehiculeInfo[vehicleid][Prix]);
  1676.                 SendClientMessage(playerid,COL_LIGHTRED,string);
  1677.                 return 1;
  1678.             }
  1679.             if(CountPlayerVehicle(playerid) == MAX_PLAYER_VEHICLES)
  1680.             {
  1681.                 format(string,sizeof(string),"Vous avez atteint la limite de vehicule possible (%d). Pour acheter ce vehicule vender l'un de vos vehicule!",MAX_PLAYER_VEHICLES);
  1682.                 SendClientMessage(playerid,COL_LIGHTRED,string);
  1683.                 return 1;
  1684.             }
  1685.             new playername[MAX_PLAYER_NAME];
  1686.             GetPlayerName(playerid,playername,sizeof(playername));
  1687.             GivePlayerMoney(playerid,-VehiculeInfo[vehicleid][Prix]);
  1688.             strmid(VehiculeInfo[vehicleid][Proprio],playername,0,strlen(playername),sizeof(playername));
  1689.             format(string,sizeof(string),"Vous avez acheter ce vehicule (%s) pour %d$!",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Prix]);
  1690.             SendClientMessage(playerid,COL_GREEN,string);
  1691.             SauvegardeVeh();
  1692.         }
  1693.         else
  1694.         {
  1695.             format(string,sizeof(string),"Ce vehicule appartient a %s. Vous ne pouvez pas l'acheter!",VehiculeInfo[vehicleid][Proprio]);
  1696.             SendClientMessage(playerid,COL_LIGHTRED,string);
  1697.         }
  1698.     }
  1699.     else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas au volant d'un vehicule!");
  1700.     return 1;
  1701. }
  1702. VendreVehicule(playerid, admin)
  1703. {
  1704.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1705.     {
  1706.         new string[128];
  1707.         new vehicleid = GetPlayerVehicleID(playerid);
  1708.         new playername[MAX_PLAYER_NAME];
  1709.         if(VehiculeInfo[vehicleid][VehID] == INVALID_VEH_ID)
  1710.         {
  1711.             SendClientMessage(playerid,COL_LIGHTRED,"Ce vehicule ne peux pas être vendu!");
  1712.             return 1;
  1713.         }
  1714.         if(admin == 0)
  1715.         {
  1716.             GetPlayerName(playerid,playername,sizeof(playername));
  1717.             if(strcmp(VehiculeInfo[vehicleid][Proprio],playername,true) == 0)
  1718.             {
  1719.                 GivePlayerMoney(playerid,VehiculeInfo[vehicleid][Prix]);
  1720.                 strmid(VehiculeInfo[vehicleid][Proprio],"Aucun",0,strlen("Aucun"),128);
  1721.                 if(VehiculeInfo[vehicleid][Alarme]!= 2)
  1722.                 {
  1723.                     VehiculeInfo[vehicleid][Alarme] = 0;
  1724.                 }
  1725.                 format(string,sizeof(string),"Vous avez vendu votre vehicule (%s) pour %d$!",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Prix]);
  1726.                 SendClientMessage(playerid,COL_GREEN,string);
  1727.                 RemoveAllPlayerFromVehicle(vehicleid);
  1728.                 SetTimerEx("RestartVeh",2000,0,"i",vehicleid);
  1729.                 SauvegardeVeh();
  1730.             }
  1731.             else SendClientMessage(playerid,COL_LIGHTRED,"Ce vehicule ne vous appartient pas!");
  1732.         }
  1733.         else
  1734.         {
  1735.             if(strcmp(VehiculeInfo[vehicleid][Proprio],"Aucun",true) == 0)
  1736.             {
  1737.                 if(VehiculeInfo[vehicleid][Alarme]!= 2)
  1738.                 {
  1739.                     VehiculeInfo[vehicleid][Alarme] = 0;
  1740.                 }
  1741.                 format(string,sizeof(string),"Vous avez vendu ce vehicule (%s) qui appartenait a %s",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Proprio]);
  1742.                 SendClientMessage(playerid,COL_GREEN,string);
  1743.                 for(new i=0;i<MAX_PLAYERS;i++)
  1744.                 {
  1745.                     if(IsPlayerConnected(i))
  1746.                     {
  1747.                         GetPlayerName(i,playername,sizeof(playername));
  1748.                         if(strcmp(VehiculeInfo[vehicleid][Proprio],playername,true) == 0)
  1749.                         {
  1750.                             format(string,sizeof(string),"Un admin a vendu votre vehicule (%s)",VehiculeInfo[vehicleid][Nom]);
  1751.                             SendClientMessage(playerid,COL_LIGHTRED,string);
  1752.                         }
  1753.                     }
  1754.                 }
  1755.                 strmid(VehiculeInfo[vehicleid][Proprio],"Aucun",0,strlen("Aucun"),128);
  1756.                 RemoveAllPlayerFromVehicle(vehicleid);
  1757.                 SetTimerEx("RestartVeh",2000,0,"i",vehicleid);
  1758.             }
  1759.             else SendClientMessage(playerid,COL_LIGHTRED,"Ce vehicule n'a pas de proprietaire!");
  1760.         }
  1761.     }
  1762.     else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas au volant d'un vehicule!");
  1763.     return 1;
  1764. }
  1765. GarerVehicule(playerid, admin)
  1766. {
  1767.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1768.     {
  1769.         new string[128];
  1770.         new vehicleid = GetPlayerVehicleID(playerid);
  1771.         if(VehiculeInfo[vehicleid][VehID] == INVALID_VEH_ID)
  1772.         {
  1773.             SendClientMessage(playerid,COL_LIGHTRED,"Ce vehicule ne peux pas être garer!");
  1774.             return 1;
  1775.         }
  1776.         if(admin == 0)
  1777.         {
  1778.             new playername[MAX_PLAYER_NAME];
  1779.             GetPlayerName(playerid,playername,sizeof(playername));
  1780.             if(strcmp(VehiculeInfo[vehicleid][Proprio],playername,true) == 0)
  1781.             {
  1782.                 new Float:x,Float:y,Float:z,Float:a;
  1783.                 GetVehiclePos(vehicleid,x,y,z);
  1784.                 GetVehicleZAngle(vehicleid,a);
  1785.                 VehiculeInfo[vehicleid][XSpawn] = x;
  1786.                 VehiculeInfo[vehicleid][YSpawn] = y;
  1787.                 VehiculeInfo[vehicleid][ZSpawn] = z;
  1788.                 VehiculeInfo[vehicleid][ASpawn] = a;
  1789.                 format(string,sizeof(string),"Votre vehicule (%s) a bien été garé. Il apparaitra toujours ici!",VehiculeInfo[vehicleid][Nom]);
  1790.                 SendClientMessage(playerid,COL_GREEN,string);
  1791.                 SauvegardeVeh();
  1792.             }
  1793.             else SendClientMessage(playerid,COL_LIGHTRED,"Ce vehicule ne vous appartient pas!");
  1794.         }
  1795.         else
  1796.         {
  1797.             new Float:x,Float:y,Float:z,Float:a;
  1798.             GetVehiclePos(vehicleid,x,y,z);
  1799.             GetVehicleZAngle(vehicleid,a);
  1800.             VehiculeInfo[vehicleid][XSpawn] = x;
  1801.             VehiculeInfo[vehicleid][YSpawn] = y;
  1802.             VehiculeInfo[vehicleid][ZSpawn] = z;
  1803.             VehiculeInfo[vehicleid][ASpawn] = a;
  1804.             format(string,sizeof(string),"Ce vehicule (%s) a bien été garé. Il apparaitra toujours ici!",VehiculeInfo[vehicleid][Nom]);
  1805.             SendClientMessage(playerid,COL_GREEN,string);
  1806.             SauvegardeVeh();
  1807.         }
  1808.     }
  1809.     else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas au volant d'un vehicule!");
  1810.     return 1;
  1811. }
  1812. AlarmeVehicule(playerid,admin)
  1813. {
  1814.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1815.     {
  1816.         new string[128],playername[MAX_PLAYER_NAME];
  1817.         new vehicleid = GetPlayerVehicleID(playerid);
  1818.         GetPlayerName(playerid,playername,sizeof(playername));
  1819.         if(admin == 0)
  1820.         {
  1821.             if(strcmp(VehiculeInfo[vehicleid][Proprio],playername,true) == 0)
  1822.             {
  1823.                 if(VehiculeInfo[vehicleid][Alarme] == 0)
  1824.                 {
  1825.                     VehiculeInfo[vehicleid][Alarme] = 1;
  1826.                     format(string,sizeof(string),"L'alarme de votre vehicule (%s) a été activer!",VehiculeInfo[vehicleid][Nom]);
  1827.                     SendClientMessage(playerid,COL_GREEN,string);
  1828.                 }
  1829.                 else if(VehiculeInfo[vehicleid][Alarme] == 1)
  1830.                 {
  1831.                     VehiculeInfo[vehicleid][Alarme] = 0;
  1832.                     format(string,sizeof(string),"L'alarme de votre vehicule (%s) a été desactiver!",VehiculeInfo[vehicleid][Nom]);
  1833.                     SendClientMessage(playerid,COL_LIGHTRED,string);
  1834.                 }
  1835.                 else if(VehiculeInfo[vehicleid][Alarme] == 2)
  1836.                 {
  1837.                     SendClientMessage(playerid,COL_GREEN,"Ce vehicule est proteger par l'alarme admin!");
  1838.                 }
  1839.             }
  1840.             else SendClientMessage(playerid,COL_LIGHTRED,"Ce vehicule ne vous appartient pas!");
  1841.         }
  1842.         else
  1843.         {
  1844.             if(VehiculeInfo[vehicleid][Alarme] != 2)
  1845.             {
  1846.                 VehiculeInfo[vehicleid][Alarme] = 2;
  1847.                 format(string,sizeof(string),"Vous avez activer l'alarme admin sur ce vehicule (%s)",VehiculeInfo[vehicleid][Nom]);
  1848.                 SendClientMessage(playerid,COL_GREEN,string);
  1849.             }
  1850.             else
  1851.             {
  1852.                 VehiculeInfo[vehicleid][Alarme] = 0;
  1853.                 format(string,sizeof(string),"Vous avez desactiver l'alarme admin sur ce vehicule (%s)",VehiculeInfo[vehicleid][Nom]);
  1854.                 SendClientMessage(playerid,COL_LIGHTRED,string);
  1855.             }
  1856.         }
  1857.     }
  1858.     else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas au volant d'un vehicule!");
  1859.     return 1;
  1860. }
  1861. EssenceVehicule(playerid, admin)
  1862. {
  1863.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1864.     {
  1865.         new string[128];
  1866.         new vehicleid = GetPlayerVehicleID(playerid);
  1867.         if(admin == 0)
  1868.         {
  1869.             for(new p=0;p<sizeof(Pompe);p++)
  1870.             {
  1871.                 if(PlayerToPoint2(4.0,playerid,Pompe[p][0],Pompe[p][1],Pompe[p][2]))
  1872.                 {
  1873.                     if(VehiculeInfo[vehicleid][Essence] == VehiculeInfo[vehicleid][MaxEssence])
  1874.                     {
  1875.                         format(string,sizeof(string),"Le reservoir de votre vehicule (%s) est plein!");
  1876.                         SendClientMessage(playerid,COL_GREEN,string);
  1877.                         return 1;
  1878.                     }
  1879.                     format(string,sizeof(string),"Le remplisage de votre vehicule (%s) commence veuillez patienter!",VehiculeInfo[vehicleid][Nom]);
  1880.                     SendClientMessage(playerid,COL_GREEN,string);
  1881.                     TimerEssence[playerid] = SetTimerEx("Remplisage",1000,1,"i",playerid);
  1882.                     PompeEssence[playerid] = p;
  1883.                     return 1;
  1884.                 }
  1885.             }
  1886.             return SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas devant une pompe a essence!");
  1887.         }
  1888.         else
  1889.         {
  1890.             VehiculeInfo[vehicleid][Essence] = VehiculeInfo[vehicleid][MaxEssence];
  1891.             format(string,sizeof(string),"Vous avez remplis le reservoir de ce vehicule (%s)",VehiculeInfo[vehicleid][Nom]);
  1892.             SendClientMessage(playerid,COL_GREEN,string);
  1893.         }
  1894.     }
  1895.     else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas au volant d'un vehicule!");
  1896.     return 1;
  1897. }
  1898. TableauDeBord(playerid)
  1899. {
  1900.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1901.     {
  1902.         if(TableauActive[playerid] == 1)
  1903.         {
  1904.             TableauActive[playerid] = 0;
  1905.             SendClientMessage(playerid,COL_GREEN,"Vous avez desactiver le tableau de bord de votre vehicule!");
  1906.         }
  1907.         else
  1908.         {
  1909.             TableauActive[playerid] = 1;
  1910.             SendClientMessage(playerid,COL_GREEN,"Vous avez activer le tableau de bord de votre vehicule!");
  1911.         }
  1912.     }
  1913.     else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas au volant d'un vehicule!");
  1914.     return 1;
  1915. }
  1916. StatusVehicule(playerid)
  1917. {
  1918.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1919.     {
  1920.         new string[128];
  1921.         new vehicleid = GetPlayerVehicleID(playerid);
  1922.         if(VehiculeInfo[vehicleid][VehID] == INVALID_VEH_ID)
  1923.         {
  1924.             SendClientMessage(playerid,COL_LIGHTRED,"Le status de ce vehicule ne peux pas être changer!");
  1925.             return 1;
  1926.         }
  1927.         if(strcmp(VehiculeInfo[vehicleid][Proprio],"Aucun",true) == 0)
  1928.         {
  1929.             if(VehiculeInfo[vehicleid][Status] == 1)
  1930.             {
  1931.                 VehiculeInfo[vehicleid][Status] = 0;
  1932.                 format(string,sizeof(string),"Ce vehicule (%s) ne pourra plus être acheter!",VehiculeInfo[vehicleid][Nom]);
  1933.                 SendClientMessage(playerid,COL_GREEN,string);
  1934.             }
  1935.             else
  1936.             {
  1937.                 VehiculeInfo[vehicleid][Status] = 1;
  1938.                 format(string,sizeof(string),"Ce vehicule (%s) peux maintenant être acheter!",VehiculeInfo[vehicleid][Nom]);
  1939.                 SendClientMessage(playerid,COL_GREEN,string);
  1940.             }
  1941.             SauvegardeVeh();
  1942.         }
  1943.         else
  1944.         {
  1945.             format(string,sizeof(string),"Ce vehicule (%s) appartient a %s et sont status ne peux donc pas être changer!",VehiculeInfo[vehicleid][Nom],VehiculeInfo[vehicleid][Proprio]);
  1946.             SendClientMessage(playerid,COL_LIGHTRED,string);
  1947.         }
  1948.     }
  1949.     else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas au volant d'un vehicule!");
  1950.     return 1;
  1951. }
  1952. ResetTuning(playerid)
  1953. {
  1954.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1955.     {
  1956.         new vehicleid = GetPlayerVehicleID(playerid);
  1957.         VehiculeInfo[vehicleid][Peinture] = 0;
  1958.         VehiculeInfo[vehicleid][Tuning1] = 0;
  1959.         VehiculeInfo[vehicleid][Tuning2] = 0;
  1960.         VehiculeInfo[vehicleid][Tuning3] = 0;
  1961.         VehiculeInfo[vehicleid][Tuning4] = 0;
  1962.         VehiculeInfo[vehicleid][Tuning5] = 0;
  1963.         VehiculeInfo[vehicleid][Tuning6] = 0;
  1964.         VehiculeInfo[vehicleid][Tuning7] = 0;
  1965.         VehiculeInfo[vehicleid][Tuning8] = 0;
  1966.         VehiculeInfo[vehicleid][Tuning9] = 0;
  1967.         VehiculeInfo[vehicleid][Tuning10] = 0;
  1968.         VehiculeInfo[vehicleid][Tuning11] = 0;
  1969.         VehiculeInfo[vehicleid][Tuning12] = 0;
  1970.         VehiculeInfo[vehicleid][Tuning13] = 0;
  1971.         VehiculeInfo[vehicleid][Tuning14] = 0;
  1972.         VehiculeInfo[vehicleid][Tuning15] = 0;
  1973.         VehiculeInfo[vehicleid][Tuning16] = 0;
  1974.         VehiculeInfo[vehicleid][Tuning17] = 0;
  1975.         RemoveAllPlayerFromVehicle(vehicleid);
  1976.         SetTimerEx("RestartVeh",2000,0,"i",vehicleid);
  1977.         new string[128];
  1978.         format(string,sizeof(string),"Le tuning de ce vehicule (%s) a bien été retirer!",VehiculeInfo[vehicleid][Nom]);
  1979.         SendClientMessage(playerid,COL_GREEN,string);
  1980.     }
  1981.     else SendClientMessage(playerid,COL_LIGHTRED,"Vous n'êtes pas au volant d'un vehicule!");
  1982.     return 1;
  1983. }
  1984. TuningVehicule(vehicleid)
  1985. {
  1986.     ChangeVehicleColor(vehicleid,VehiculeInfo[vehicleid][Couleur1],VehiculeInfo[vehicleid][Couleur2]);
  1987.     if(VehiculeInfo[vehicleid][Peinture] != 0) ChangeVehiclePaintjob(vehicleid,VehiculeInfo[vehicleid][Peinture]);
  1988.     if(VehiculeInfo[vehicleid][Tuning1] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning1]);
  1989.     if(VehiculeInfo[vehicleid][Tuning2] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning2]);
  1990.     if(VehiculeInfo[vehicleid][Tuning3] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning3]);
  1991.     if(VehiculeInfo[vehicleid][Tuning4] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning4]);
  1992.     if(VehiculeInfo[vehicleid][Tuning5] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning5]);
  1993.     if(VehiculeInfo[vehicleid][Tuning6] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning6]);
  1994.     if(VehiculeInfo[vehicleid][Tuning7] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning7]);
  1995.     if(VehiculeInfo[vehicleid][Tuning8] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning8]);
  1996.     if(VehiculeInfo[vehicleid][Tuning9] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning9]);
  1997.     if(VehiculeInfo[vehicleid][Tuning10] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning10]);
  1998.     if(VehiculeInfo[vehicleid][Tuning11] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning11]);
  1999.     if(VehiculeInfo[vehicleid][Tuning12] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning12]);
  2000.     if(VehiculeInfo[vehicleid][Tuning13] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning13]);
  2001.     if(VehiculeInfo[vehicleid][Tuning14] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning14]);
  2002.     if(VehiculeInfo[vehicleid][Tuning15] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning15]);
  2003.     if(VehiculeInfo[vehicleid][Tuning16] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning16]);
  2004.     if(VehiculeInfo[vehicleid][Tuning17] != 0) AddVehicleComponent(vehicleid,VehiculeInfo[vehicleid][Tuning17]);
  2005. }
  2006. CountPlayerVehicle(playerid)
  2007. {
  2008.     if(IsPlayerConnected(playerid))
  2009.     {
  2010.         new playername[MAX_PLAYER_NAME];
  2011.         new CountVehP = 0;
  2012.         GetPlayerName(playerid,playername,sizeof(playername));
  2013.         for(new v=1;v<NbVeh;v++)
  2014.         {
  2015.             if(VehiculeInfo[v][VehID] != INVALID_VEH_ID)
  2016.             {
  2017.                 if(strcmp(VehiculeInfo[v][Proprio],playername,true) == 0)
  2018.                 {
  2019.                     CountVehP++;
  2020.                 }
  2021.             }
  2022.         }
  2023.         return CountVehP;
  2024.     }
  2025.     return 0;
  2026. }
  2027. RemoveAllPlayerFromVehicle(vehicleid)
  2028. {
  2029.     for(new i=0;i<MAX_PLAYERS;i++)
  2030.     {
  2031.         if(IsPlayerConnected(i))
  2032.         {
  2033.             if(IsPlayerInAnyVehicle(i) && GetPlayerVehicleID(i) == vehicleid)
  2034.             {
  2035.                 RemovePlayerFromVehicle(i);
  2036.             }
  2037.         }
  2038.     }
  2039. }
  2040.  
  2041. public Vitesse()
  2042. {
  2043.     new string[128];
  2044.     for(new i=0;i<MAX_PLAYERS;i++)
  2045.     {
  2046.         if(IsPlayerConnected(i))
  2047.         {
  2048.             if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
  2049.             {
  2050.                 new vehicleid = GetPlayerVehicleID(i);
  2051.                 new model = GetVehicleModel(vehicleid);
  2052.                 new Float:value,Float:distance,Float:x,Float:y,Float:z;
  2053.                 GetPlayerPos(i, x, y, z);
  2054.                 distance = floatsqroot(floatpower(floatabs(floatsub(x,PlayerPos[i][0])),2)+floatpower(floatabs(floatsub(y,PlayerPos[i][1])),2)+floatpower(floatabs(floatsub(z,PlayerPos[i][2])),2));
  2055.                 value = floatround(distance * 11000);
  2056.                 new vitesse = 0+floatround(value/1450);
  2057.                 if(model == 481 || model == 509 || model == 510)//Si c'est un velo on afiche pas l'essence
  2058.                 {
  2059.                     if(TableauActive[i] == 1)
  2060.                     {
  2061.                         format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~n~~b~KM/H: ~w~%d~n~",vitesse);
  2062.                         GameTextForPlayer(i,string,800,3);
  2063.                     }
  2064.                 }
  2065.                 else
  2066.                 {
  2067.                     if(TableauActive[i] == 1)
  2068.                     {
  2069.                         new Float:vieveh;
  2070.                         GetVehicleHealth(vehicleid,vieveh);
  2071.                         format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~g~Vehicule: ~w~%s  ~g~Plaque: ~w~%s ~n~~b~KM/H: ~w~%d  ~b~Heal: ~w~%.0f~n~~r~Essence: ~w~%d/%d~n~",VehiculeInfo[vehicleid][Nom], VehiculeInfo[vehicleid][Plaque],vitesse,vieveh,VehiculeInfo[vehicleid][Essence],VehiculeInfo[vehicleid][MaxEssence]);
  2072.                         GameTextForPlayer(i,string,580,3);
  2073.                     }
  2074.                     if(VehiculeInfo[vehicleid][Essence] > 0 )
  2075.                     {
  2076.                         EssenceCount[vehicleid]++;
  2077.                         if(EssenceCount[vehicleid] >= SECONDE_LITRE*2)
  2078.                         {
  2079.                             VehiculeInfo[vehicleid][Essence]--;
  2080.                             EssenceCount[vehicleid] = 0;
  2081.                         }
  2082.                     }
  2083.                 }
  2084.                 if(VehiculeInfo[vehicleid][Essence] <= 0 && EnPanne[i] == 0)
  2085.                 {
  2086.                     format(string,sizeof(string),"Le reservoir de ce vehicule (%s) est vide!",VehiculeInfo[vehicleid][Nom]);
  2087.                     SendClientMessage(i,COL_LIGHTRED,string);
  2088.                     new engine,lighttss,alarm,doors,bonnet,boot,objective;
  2089.                     GetVehicleParamsEx(vehicleid,engine,lighttss,alarm,doors,bonnet,boot,objective);
  2090.                     SetVehicleParamsEx(vehicleid,0,lighttss,alarm,doors,bonnet,boot,objective);
  2091.                     EnPanne[i] = 1;
  2092.                 }
  2093.                 PlayerPos[i][0] = x;
  2094.                 PlayerPos[i][1] = y;
  2095.                 PlayerPos[i][2] = z;
  2096.             }
  2097.             if(EnPanne[i] > 1)
  2098.             {
  2099.                 EnPanne[i]--;
  2100.                 if(EnPanne[i] == 1) EnPanne[i] = 0;
  2101.             }
  2102.             if(TableauActive[i] > 1)
  2103.             {
  2104.                 TableauActive[i]--;
  2105.             }
  2106.         }
  2107.     }
  2108. }
  2109.  
  2110. public TimerTempsCircuit(playerid)
  2111. {
  2112.     TimerCourCircuit[playerid] = 0;
  2113.     return 1;
  2114. }
  2115.  
  2116. public TimerTempsAlarm(playerid)
  2117. {
  2118.     TimerAlarmCircuit[playerid] = 0;
  2119.     return 1;
  2120. }
  2121.  
  2122. public ClignotePhare(car)
  2123. {
  2124.     new engine,lighttss,alarm,doors,bonnet,boot,objective;
  2125.     if(ClignotePhareVar[car] == 1)
  2126.     {
  2127.         GetVehicleParamsEx(car,engine,lighttss,alarm,doors,bonnet,boot,objective);
  2128.         SetVehicleParamsEx(car,engine,1,alarm,doors,bonnet,boot,objective);
  2129.         ClignotePhareVar[car] = 0;
  2130.     }
  2131.     else
  2132.     {
  2133.         GetVehicleParamsEx(car,engine,lighttss,alarm,doors,bonnet,boot,objective);
  2134.         SetVehicleParamsEx(car,engine,0,alarm,doors,bonnet,boot,objective);
  2135.         ClignotePhareVar[car] = 1;
  2136.     }
  2137.     return 1;
  2138. }
  2139.  
  2140. public StopAlarm(car)
  2141. {
  2142.     new engine,lighttss,alarm,doors,bonnet,boot,objective;
  2143.     if(VehiculeInfo[car][Moteur] == 1)
  2144.     {
  2145.         GetVehicleParamsEx(car,engine,lighttss,alarm,doors,bonnet,boot,objective);
  2146.         SetVehicleParamsEx(car,1,lighttss,0,doors,bonnet,boot,objective);
  2147.     }
  2148.     else
  2149.     {
  2150.         GetVehicleParamsEx(car,engine,lighttss,alarm,doors,bonnet,boot,objective);
  2151.         SetVehicleParamsEx(car,0,lighttss,0,doors,bonnet,boot,objective);
  2152.     }
  2153.     VehiculeInfo[car][PiraAlarm] = 0;
  2154.     LalarmeEstOn[car] = 0;
  2155.     KillTimer(TimerPhare[car]);
  2156.     return 1;
  2157. }
  2158.  
  2159. public PirateAlarm(playerid)
  2160. {
  2161.     if(IsPlayerConnected(playerid))
  2162.     {
  2163.         if(IsPlayerInAnyVehicle(playerid))
  2164.         {
  2165.             new RandomStart;
  2166.             new car = GetPlayerVehicleID(playerid);
  2167.             RandomStart = random(25);
  2168.             switch(RandomStart)
  2169.             {
  2170.                 case 0,5,10,15,20,25:
  2171.                 {
  2172.                     StopAlarm(car);
  2173.                     ClignotePhareVar[car] = 0;
  2174.                     VehiculeInfo[car][PiraAlarm] = 1;
  2175.                     SendClientMessage(playerid, COL_WHITE, "Vous avez reussi a trafiquer l'alarme");
  2176.                     return 1;
  2177.                 }
  2178.                 case 1,2,3,4,6,7,8,9,11,12,13,14,16,17,18,19,21,22,23,24:
  2179.                 {
  2180.                     SendClientMessage(playerid, COL_WHITE, "Vous n'avez pas reussi a trafiquer l'alarme");
  2181.                     return 1;
  2182.                 }
  2183.             }
  2184.             return 1;
  2185.         }
  2186.     }
  2187.     return 1;
  2188. }
  2189.  
  2190. public PirateVehicle(playerid)
  2191. {
  2192.     if(IsPlayerConnected(playerid))
  2193.     {
  2194.         if(IsPlayerInAnyVehicle(playerid))
  2195.         {
  2196.             new RandomStart;
  2197.             new string[256];
  2198.             new car = GetPlayerVehicleID(playerid);
  2199.             new sendernameeee[MAX_PLAYER_NAME];
  2200.             RandomStart = random(25);
  2201.             new engine,lighttss,alarm,doors,bonnet,boot,objective;
  2202.             switch(RandomStart)
  2203.             {
  2204.                 case 0,5,10,15,20,25:
  2205.                 {
  2206.                     VehiculeInfo[car][Moteur] = 1;
  2207.                     LalarmeEstOn[car] = 1;
  2208.                     SetTimerEx("StopAlarm", 350000, false, "i", car);
  2209.                     ClignotePhareVar[car] = 1;
  2210.                     TimerPhare[car] = SetTimerEx("ClignotePhare", 500, true, "i", car);
  2211.  
  2212.                     //TogglePlayerControllable(playerid, true);
  2213.                     GetVehicleParamsEx(car,engine,lighttss,alarm,doors,bonnet,boot,objective);
  2214.                     SetVehicleParamsEx(car,1,lighttss,1,doors,bonnet,boot,objective);
  2215.                     GetPlayerName(playerid, sendernameeee, sizeof(sendernameeee));
  2216.                     format(string, sizeof(string), "* Le véhicule démarre (( %s )).", sendernameeee);
  2217.                     ProxDetectorVeh(30.0, playerid, string, COL_PURPLE,COL_PURPLE,COL_PURPLE,COL_PURPLE,COL_PURPLE);
  2218.                 }
  2219.                 case 1,2,3,4,6,7,8,9,11,12,13,14,16,17,18,19,21,22,23,24:
  2220.                 {
  2221.                     GetPlayerName(playerid, sendernameeee, sizeof(sendernameeee));
  2222.                     VehiculeInfo[car][Moteur] = 0;
  2223.                     format(string, sizeof(string), "* Demarrage echoué (( %s )).", sendernameeee);
  2224.                     ProxDetectorVeh(30.0, playerid, string, COL_PURPLE,COL_PURPLE,COL_PURPLE,COL_PURPLE,COL_PURPLE);
  2225.                     GetVehicleParamsEx(car,engine,lighttss,alarm,doors,bonnet,boot,objective);
  2226.                     SetVehicleParamsEx(car,0,lighttss,alarm,doors,bonnet,boot,objective);
  2227.                 }
  2228.             }
  2229.         }
  2230.     }
  2231.     return 1;
  2232. }
  2233. public Remplisage(playerid)
  2234. {
  2235.     new pompe = PompeEssence[playerid];
  2236.     if(PlayerToPoint2(4.0,playerid,Pompe[pompe][0],Pompe[pompe][1],Pompe[pompe][2]))
  2237.     {
  2238.         new vehicleid = GetPlayerVehicleID(playerid);
  2239.         new string[128];
  2240.         VehiculeInfo[vehicleid][Essence]++;
  2241.         GivePlayerMoney(playerid, - PRIX_ESSENCE);
  2242.         if(VehiculeInfo[vehicleid][Essence] == VehiculeInfo[vehicleid][MaxEssence])
  2243.         {
  2244.             PompeEssence[playerid] = 255;
  2245.             KillTimer(TimerEssence[playerid]);
  2246.             format(string,sizeof(string),"Le reservoir de votre vehicule (%s) est plein. Passer une bonne journnée",VehiculeInfo[vehicleid][Nom]);
  2247.             SendClientMessage(playerid,COL_GREEN,string);
  2248.         }
  2249.     }
  2250.     else
  2251.     {
  2252.         PompeEssence[playerid] = 255;
  2253.         KillTimer(TimerEssence[playerid]);
  2254.         SendClientMessage(playerid,COL_LIGHTRED,"Vous avez quitter la pompe a essence durant le remplisage de votre vehicule!");
  2255.     }
  2256. }
  2257.  
  2258. public ChargerVehicules()
  2259. {
  2260.     if(fexist(VEH_FILENAME))
  2261.     {
  2262.         print("\n-------------[CHARGEMENT VEHICULE]-------------\n");
  2263.         new File:VehFile = fopen(VEH_FILENAME, io_read);
  2264.         new vehstring[512];
  2265.         while(fread(VehFile, vehstring, sizeof(vehstring)))
  2266.         {
  2267.             if(split2(vehstring, Field, '|') == 32)
  2268.             {
  2269.                 VehiculeInfo[NbVeh][VehID]      = strval(Field[0]);
  2270.                 VehiculeInfo[NbVeh][Model]      = strval(Field[1]);
  2271.                 VehiculeInfo[NbVeh][XSpawn]     = floatstr(Field[2]);
  2272.                 VehiculeInfo[NbVeh][YSpawn]     = floatstr(Field[3]);
  2273.                 VehiculeInfo[NbVeh][ZSpawn]     = floatstr(Field[4]);
  2274.                 VehiculeInfo[NbVeh][ASpawn]     = floatstr(Field[5]);
  2275.                 VehiculeInfo[NbVeh][Couleur1]   = strval(Field[6]);
  2276.                 VehiculeInfo[NbVeh][Couleur2]   = strval(Field[7]);
  2277.                 VehiculeInfo[NbVeh][Prix]       = strval(Field[8]);
  2278.                 VehiculeInfo[NbVeh][Status]     = strval(Field[9]);
  2279.                 VehiculeInfo[NbVeh][Alarme]     = strval(Field[10]);
  2280.                 VehiculeInfo[NbVeh][Tuning1]    = strval(Field[11]);
  2281.                 VehiculeInfo[NbVeh][Tuning2]    = strval(Field[12]);
  2282.                 VehiculeInfo[NbVeh][Tuning3]    = strval(Field[13]);
  2283.                 VehiculeInfo[NbVeh][Tuning4]    = strval(Field[14]);
  2284.                 VehiculeInfo[NbVeh][Tuning5]    = strval(Field[15]);
  2285.                 VehiculeInfo[NbVeh][Tuning6]    = strval(Field[16]);
  2286.                 VehiculeInfo[NbVeh][Tuning7]    = strval(Field[17]);
  2287.                 VehiculeInfo[NbVeh][Tuning8]    = strval(Field[18]);
  2288.                 VehiculeInfo[NbVeh][Tuning9]    = strval(Field[19]);
  2289.                 VehiculeInfo[NbVeh][Tuning10]   = strval(Field[20]);
  2290.                 VehiculeInfo[NbVeh][Tuning11]   = strval(Field[21]);
  2291.                 VehiculeInfo[NbVeh][Tuning12]   = strval(Field[22]);
  2292.                 VehiculeInfo[NbVeh][Tuning13]   = strval(Field[23]);
  2293.                 VehiculeInfo[NbVeh][Tuning14]   = strval(Field[24]);
  2294.                 VehiculeInfo[NbVeh][Tuning15]   = strval(Field[25]);
  2295.                 VehiculeInfo[NbVeh][Tuning16]   = strval(Field[26]);
  2296.                 VehiculeInfo[NbVeh][Tuning17]   = strval(Field[27]);
  2297.                 VehiculeInfo[NbVeh][Peinture]   = strval(Field[28]);
  2298.                 VehiculeInfo[NbVeh][MaxEssence] = strval(Field[29]);
  2299.                 strmid(VehiculeInfo[NbVeh][Proprio],     Field[30], 0, strlen(Field[30]),128);
  2300.                 strmid(VehiculeInfo[NbVeh][Plaque], Field[31], 0, strlen(Field[31]),128);
  2301.                 strmid(VehiculeInfo[NbVeh][Nom],VehicleName[VehiculeInfo[NbVeh][Model]-400],0,strlen(VehicleName[VehiculeInfo[NbVeh][Model]-400]),64);
  2302.                 VehiculeInfo[NbVeh][Essence] = VehiculeInfo[NbVeh][MaxEssence];
  2303.                 EssenceCount[NbVeh] = 0;
  2304.  
  2305.                 CreateVehicle(VehiculeInfo[NbVeh][Model],VehiculeInfo[NbVeh][XSpawn],VehiculeInfo[NbVeh][YSpawn],VehiculeInfo[NbVeh][ZSpawn],VehiculeInfo[NbVeh][ASpawn],VehiculeInfo[NbVeh][Couleur1],VehiculeInfo[NbVeh][Couleur2],RESPAWN_DELAY);
  2306.                 printf("---- Vehicule %d charger. Proprio: %s , Nom vehicule %s ----",VehiculeInfo[NbVeh][VehID],VehiculeInfo[NbVeh][Proprio],VehiculeInfo[NbVeh][Nom]);
  2307.                 NbVeh++;
  2308.             }
  2309.         }
  2310.         fclose(VehFile);
  2311.     }
  2312.     else
  2313.     {
  2314.         printf("Le fichier %s n'existe pas!, Aucun vehicule na pu être cree!",VEH_FILENAME);
  2315.     }
  2316.     print("\n");
  2317.     for(new v=1;v<NbVeh;v++)
  2318.     {
  2319.         SetVehicleNumberPlate(VehiculeInfo[v][VehID], VehiculeInfo[v][Plaque]);
  2320.         SetVehicleToRespawn(v);
  2321.         TuningVehicule(v);
  2322.         printf("La plaque(%s) du vehicule ID %d charge!",VehiculeInfo[v][Plaque],v);
  2323.     }
  2324. }
  2325.  
  2326. public SauvegardeVeh()
  2327. {
  2328.     new File:VehFile = fopen(VEH_FILENAME, io_write);
  2329.     new vehstring[256];
  2330.     for(new v=1;v<NbVeh;v++)
  2331.     {
  2332.         if(VehiculeInfo[v][VehID] != INVALID_VEH_ID)
  2333.         {
  2334.             format(vehstring, sizeof(vehstring), "%d|%d|%f|%f|%f|%f|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%s|%s|%s\r\n",
  2335.              VehiculeInfo[v][VehID],VehiculeInfo[v][Model],VehiculeInfo[v][XSpawn],VehiculeInfo[v][YSpawn],VehiculeInfo[v][ZSpawn],
  2336.              VehiculeInfo[v][ASpawn],VehiculeInfo[v][Couleur1],VehiculeInfo[v][Couleur2],VehiculeInfo[v][Prix],
  2337.                  VehiculeInfo[v][Status],VehiculeInfo[v][Alarme],VehiculeInfo[v][Tuning1],VehiculeInfo[v][Tuning2],
  2338.                  VehiculeInfo[v][Tuning3],VehiculeInfo[v][Tuning4],VehiculeInfo[v][Tuning5],VehiculeInfo[v][Tuning6],
  2339.                  VehiculeInfo[v][Tuning7],VehiculeInfo[v][Tuning8],VehiculeInfo[v][Tuning9],VehiculeInfo[v][Tuning10],
  2340.                  VehiculeInfo[v][Tuning11],VehiculeInfo[v][Tuning12],VehiculeInfo[v][Tuning13],VehiculeInfo[v][Tuning14],
  2341.                  VehiculeInfo[v][Tuning15],VehiculeInfo[v][Tuning16],VehiculeInfo[v][Tuning17],VehiculeInfo[v][Peinture],
  2342.                  VehiculeInfo[v][MaxEssence],VehiculeInfo[v][Proprio],VehiculeInfo[v][Nom],VehiculeInfo[v][Plaque]
  2343.                 );
  2344.             fwrite(VehFile, vehstring);
  2345.             printf("---- Vehicule %d sauvegarder! ----",v);
  2346.         }
  2347.     }
  2348.     fclose(VehFile);
  2349. }
  2350. public DestroyVeh(vehicleid)
  2351. {
  2352.     return DestroyVehicle(vehicleid);
  2353. }
  2354.  
  2355. public CreateVeh(vehicleid,Float:x,Float:y,Float:z,Float:a)
  2356. {
  2357.     vehicleid = CreateVehicle(VehiculeInfo[vehicleid][Model],x,y,z,a,VehiculeInfo[vehicleid][Couleur1],VehiculeInfo[vehicleid][Couleur2],RESPAWN_DELAY);
  2358. }
  2359. public RestartVeh(vehicleid)
  2360. {
  2361.     DestroyVehicle(vehicleid);
  2362.     CreateVehicle(VehiculeInfo[vehicleid][Model],VehiculeInfo[vehicleid][XSpawn],VehiculeInfo[vehicleid][YSpawn],VehiculeInfo[vehicleid][ZSpawn],VehiculeInfo[vehicleid][ASpawn],VehiculeInfo[vehicleid][Couleur1],VehiculeInfo[vehicleid][Couleur2],RESPAWN_DELAY);
  2363.     VehiculeInfo[vehicleid][Essence] = VehiculeInfo[vehicleid][MaxEssence];
  2364.     TuningVehicule(vehicleid);
  2365. }
  2366. #if defined USE_CALLCAR
  2367. public CallCar(playerid,vehicleid)
  2368. {
  2369.     if(IsPlayerConnected(playerid))
  2370.     {
  2371.         new Float:x,Float:y,Float:z,Float:a,string[128];
  2372.         GetPlayerPos(playerid, x,y,z);
  2373.         GetPlayerFacingAngle(playerid,a);
  2374.         GetXYFront(x,y,a, 4.0);
  2375.         CreateVehicle(VehiculeInfo[vehicleid][Model],x,y,z,a-90,VehiculeInfo[vehicleid][Couleur1],VehiculeInfo[vehicleid][Couleur2],RESPAWN_DELAY);
  2376.         TuningVehicule(vehicleid);
  2377.         format(string,sizeof(string),"Votre vehicule (%s) a bien été teleporter jusqua vous!",VehiculeInfo[vehicleid][Nom]);
  2378.         SendClientMessage(playerid,COL_GREEN,string);
  2379.     }
  2380. }
  2381. #endif
  2382.  
  2383. // autre fonction
  2384. static split2(const strsrc[], strdest[][], delimiter)
  2385. {
  2386.     new i, li,aNum,len;
  2387.     while(i <= strlen(strsrc))
  2388.     {
  2389.         if(strsrc[i]==delimiter || i==strlen(strsrc))
  2390.         {
  2391.             len = strmid(strdest[aNum], strsrc, li, i, 128);
  2392.             strdest[aNum][len] = 0;
  2393.             li = i+1;
  2394.             aNum++;
  2395.         }
  2396.         i++;
  2397.     }
  2398.     return aNum;
  2399. }
  2400.  
  2401. static strtok2(const string[], &index,seperator=' ')
  2402. {
  2403.     new length = strlen(string);
  2404.     new offset = index;
  2405.     new result[128];
  2406.     while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
  2407.     {
  2408.         result[index - offset] = string[index];
  2409.         index++;
  2410.     }
  2411.  
  2412.     result[index - offset] = EOS;
  2413.     if ((index < length) && (string[index] == seperator))
  2414.     {
  2415.         index++;
  2416.     }
  2417.     return result;
  2418. }
  2419. static PlayerToPoint2(Float:radi, playerid, Float:x, Float:y, Float:z)
  2420. {
  2421.     if(IsPlayerConnected(playerid))
  2422.     {
  2423.         new Float:pos[3];
  2424.         new Float:tmppos[3];
  2425.         GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  2426.         tmppos[0] = (pos[0] - x);
  2427.         tmppos[1] = (pos[1] - y);
  2428.         tmppos[2] = (pos[2] - z);
  2429.         if (((tmppos[0] < radi) && (tmppos[0] > -radi)) && ((tmppos[1] < radi) && (tmppos[1] > -radi)) && ((tmppos[2] < radi) && (tmppos[2] > -radi)))
  2430.         {
  2431.             return 1;
  2432.         }
  2433.     }
  2434.     return 0;
  2435. }
  2436. static IsNumeric2(const string[])
  2437. {
  2438.     for (new i = 0, j = strlen(string); i < j; i++)
  2439.     {
  2440.         if (string[i] > '9' || string[i] < '0') return 0;
  2441.     }
  2442.     return 1;
  2443. }
  2444. ReturnModelByName(const text[])
  2445. {
  2446.     if (IsNumeric2(text))
  2447.     {
  2448.         if (strval(text) >= 400 && strval(text) <= 611)
  2449.         {
  2450.             return strval(text);
  2451.         }
  2452.         return 0;
  2453.     }
  2454.     new len = strlen(text);
  2455.     for (new m=0;m<sizeof(VehicleName);m++)
  2456.     {
  2457.         if (strcmp(VehicleName[m], text, true, len) == 0)
  2458.         {
  2459.             return m+400;
  2460.         }
  2461.     }
  2462.     return 0;
  2463. }
  2464. GetXYFront(&Float:x, &Float:y, Float:a, Float:distance)
  2465. {
  2466.     x += (distance * floatsin(-a, degrees));
  2467.     y += (distance * floatcos(-a, degrees));
  2468. }
  2469. public ProxDetectorVeh(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
  2470. {
  2471.     if(IsPlayerConnected(playerid))
  2472.     {
  2473.         new Float:posx, Float:posy, Float:posz;
  2474.         new Float:oldposx, Float:oldposy, Float:oldposz;
  2475.         new Float:tempposx, Float:tempposy, Float:tempposz;
  2476.         GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  2477.         for(new i = 0; i < MAX_PLAYERS; i++)
  2478.         {
  2479.             if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
  2480.             {
  2481.                 if(!BigEarr[i])
  2482.                 {
  2483.                     GetPlayerPos(i, posx, posy, posz);
  2484.                     tempposx = (oldposx -posx);
  2485.                     tempposy = (oldposy -posy);
  2486.                     tempposz = (oldposz -posz);
  2487.                     if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
  2488.                     {
  2489.                         SendClientMessage(i, col1, string);
  2490.                     }
  2491.                     else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
  2492.                     {
  2493.                         SendClientMessage(i, col2, string);
  2494.                     }
  2495.                     else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
  2496.                     {
  2497.                         SendClientMessage(i, col3, string);
  2498.                     }
  2499.                     else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
  2500.                     {
  2501.                         SendClientMessage(i, col4, string);
  2502.                     }
  2503.                     else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  2504.                     {
  2505.                         SendClientMessage(i, col5, string);
  2506.                     }
  2507.                 }
  2508.                 else
  2509.                 {
  2510.                     SendClientMessage(i, col1, string);
  2511.                 }
  2512.             }
  2513.         }
  2514.     }
  2515.     return 1;
  2516. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement