Guest User

Sistema de veículos 1.0 Por: Ts3

a guest
Aug 5th, 2014
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 17.04 KB | None | 0 0
  1. /*
  2.  
  3. - Creditos do sistema:
  4.  
  5. • Sistema de veículos v1.0 criado por 'Ts3'.
  6.  
  7. • 'Y_Less' pela include 'sscanf2'.
  8. • 'Zeex' pela include 'zcmd'.
  9.  
  10. • Não remover os creditos!
  11.  
  12. */
  13.  
  14. #include a_samp
  15. #include sscanf2
  16. #include zcmd
  17.  
  18. #define               FILTERSCRIPT
  19. #if defined           FILTERSCRIPT
  20.  
  21. #define Vermelho      0xFF0000FF
  22. #define Amarelo       0xFFFF00FF
  23. #define Azul          0xC6E2FFFF
  24.  
  25.  
  26. new Carro[MAX_PLAYERS];
  27. new bool:CriadoID[MAX_PLAYERS];
  28.  
  29. new Float:Pos[3];
  30.  
  31. new String[250];
  32. new veiculo[60];
  33.  
  34. new Float:PosX;
  35. new Float:PosY;
  36. new Float:PosZ;
  37.  
  38. new Veiculo;
  39. new Float:Angulo;
  40.  
  41. new Cor1;
  42. new Cor2;
  43.  
  44. new Text:Velocimetro[MAX_PLAYERS];
  45.  
  46. new VehicleNames[212][] =
  47. {
  48.     "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
  49.     "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
  50.     "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
  51.     "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
  52.     "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
  53.     "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
  54.     "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
  55.     "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
  56.     "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
  57.     "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  58.     "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
  59.     "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
  60.     "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
  61.     "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
  62.     "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  63.     "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  64.     "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  65. };
  66.  
  67. /*============================================================================*/
  68. /*===============================[Commands]===================================*/
  69. /*============================================================================*/
  70.  
  71. CMD:carro(playerid, params[])
  72. {
  73.     if(sscanf(params, "s[60]dd", veiculo, Cor1, Cor2)) return SendClientMessage(playerid, Vermelho, "[ x ] Uso correto: /Carro [Nome] [Cor 1] [Cor 2]");
  74.     if(Cor1 < 0 || Cor1 > 260) return SendClientMessage(playerid, Vermelho, "[ x ] O ID da cor 1 está inválida {FFFFFF}Cores de 0 a 260.");
  75.     if(Cor2 < 0 || Cor2 > 260) return SendClientMessage(playerid, Vermelho, "[ x ] O ID da cor 2 está inválida {FFFFFF}Cores de 0 a 260.");
  76.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER ) return SendClientMessage(playerid, Vermelho, "[ x ] Você não pode usar esse comando dentro de um veículo");
  77.     DestroyVehicle(Carro[playerid]);
  78.     GetPlayerFacingAngle(playerid, Pos[2]);
  79.     GetPlayerPos(playerid, PosX, PosY, PosZ);
  80.     new vehicle = GetVehicleModelIDFromName(veiculo);
  81.     Carro[playerid] = CreateVehicle(vehicle, PosX, PosY, PosZ, Pos[2], Cor1, Cor2, 10000);
  82.     PutPlayerInVehicle(playerid, Carro[playerid], 0);
  83.     format(String, sizeof(String), "[ > ] Veículo {FFFFFF}%s{FFFF00} criado com sucesso!", VehicleNames[vehicle - 400]);
  84.     SendClientMessage(playerid, Amarelo, String);
  85.     CriadoID[playerid] = true;
  86.     return 1;
  87. }
  88. command(destruir, playerid, params[])
  89. {
  90.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ x ] Você não esta em um veículo!");
  91.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, Vermelho, "[ x ] Você não está de motorista.");
  92.     if(CriadoID[playerid] == false) return SendClientMessage(playerid, Vermelho, "[ x ] Você não tem um veículo criado!");
  93.     CriadoID[playerid] = false;
  94.     DestroyVehicle(Carro[playerid]);
  95.     SendClientMessage(playerid, Amarelo,"[ > ] Seu veículo foi destruido com sucesso!");
  96.  
  97.     return 1;
  98. }
  99. command(consertar, playerid, params[])
  100. {
  101.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ x ] Você não esta em um veículo!");
  102.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, Vermelho, "[ x ] Você não está de motorista.");
  103.     RepairVehicle(GetPlayerVehicleID(playerid));
  104.     SendClientMessage(playerid, Amarelo,"[ > ] Seu veículo foi consertado com sucesso!");
  105.     return 1;
  106. }
  107. command(ircarro, playerid, params[])
  108. {
  109.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER ) return SendClientMessage(playerid, Vermelho, "[ x ] Você não pode usar esse comando dentro de um veículo");
  110.     if(CriadoID[playerid] == false) return SendClientMessage(playerid, Vermelho, "[ x ] Você não tem um veículo criado!");
  111.     GetVehiclePos(Carro[playerid], PosX, PosY, PosZ);
  112.     SetPlayerPos(playerid, PosX, PosY, PosZ);
  113.     PutPlayerInVehicle(playerid, Carro[playerid], 0);
  114.     SendClientMessage(playerid, Amarelo, "[ > ] Você foi até atual posição do seu veículo!");
  115.     return 1;
  116. }
  117. command(trazercarro, playerid, params[])
  118. {
  119.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER ) return SendClientMessage(playerid, Vermelho, "[ x ] Você não pode usar esse comando dentro de um veículo");
  120.     if(CriadoID[playerid] == false) return SendClientMessage(playerid, Vermelho, "[ x ] Você não tem um veículo criado!");
  121.     GetPlayerPos(playerid, PosX, PosY, PosZ);
  122.     SetVehiclePos(Carro[playerid], PosX, PosY, PosZ);
  123.     PutPlayerInVehicle(playerid, Carro[playerid], 0);
  124.     SendClientMessage(playerid, Amarelo, "[ > ] Você trouxe seu veículo até sua atual posição!");
  125.     return 1;
  126. }
  127. command(paintjob, playerid, paintjobid, params[])
  128. {
  129.     new all = random(3);
  130.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ x ] Você não esta em um veículo!");
  131.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, Vermelho, "[ x ] Você não está de motorista.");
  132.     ChangeVehiclePaintjob(GetPlayerVehicleID(playerid), all);
  133.     SendClientMessage(playerid, Amarelo, "[ > ] Você setou um {FFFFFF}PaintJob{FFFF00} para seu veículo!");
  134.     return 1;
  135. }
  136. command(pintar, playerid, params[])
  137. {
  138.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ x ] Você não esta em um veículo!");
  139.     if(sscanf(params, "dd", Cor1, Cor2)) return SendClientMessage(playerid, Vermelho, "[ x ] Use Correto: /Pintar [Cor 1] [Cor 2]");
  140.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, Vermelho, "[ x ] Você não está de motorista.");
  141.     ChangeVehicleColor(GetPlayerVehicleID(playerid), Cor1, Cor2);
  142.     format(String, sizeof(String), "[ > ] Cores do veículo alteradas com sucesso para: {FFFFFF}%d{FFFF00} - {FFFFFF}%d{FFFF00}", Cor1, Cor2);
  143.     SendClientMessage(playerid, Amarelo, String);
  144.     return 1;
  145. }
  146.  
  147. command(tunar, playerid, paintjobid, params[])
  148. {
  149.     new all = random(3);
  150.     new vehicleid = GetPlayerVehicleID(playerid);
  151.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ x ] Você não esta em um Veículo!");
  152.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, Vermelho, "[ x ] Você não está de motorista.");
  153.     AddVehicleComponent(vehicleid, 1010);
  154.     AddVehicleComponent(vehicleid, 1076);
  155.     ChangeVehiclePaintjob(GetPlayerVehicleID(playerid), all);
  156.     SendClientMessage(playerid, Amarelo, "[ > ] Seu veículo tunado com sucesso.");
  157.     return 1;
  158. }
  159.  
  160. command(flip, playerid, params[])
  161. {
  162.     Veiculo = GetPlayerVehicleID(playerid);
  163.     GetVehicleZAngle(Veiculo, Angulo);
  164.     SetVehicleZAngle(Veiculo, Angulo);
  165.     RepairVehicle(GetPlayerVehicleID(playerid));
  166.     SendClientMessage(playerid, Azul, "[ > ] Seu veículo foi desvirado e consertado com sucesso!");
  167.     return 1;
  168. }
  169.  
  170. command(nitro, playerid, params[])
  171. {
  172.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ x ] Você não esta em um Veículo!");
  173.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, Vermelho, "[ x ] Você não está de motorista.");
  174.     AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  175.     SendClientMessage(playerid, Amarelo, "[ > ] Nitro {FFFFFF}10x{FFFF00} adicionado em seu veículo!");
  176.     return 1;
  177. }
  178.  
  179. command(comandosv, playerid, params[])
  180. {
  181.     ShowPlayerDialog(playerid, 3000, DIALOG_STYLE_MSGBOX, "{32CD32}» {FFFFFF}Comandos dos veículos.", "        {32CD32}•{FFFFFF} Comandos básicos dos veículos.\n\n{32CD32}•{FFFFFF}/Carro\n{32CD32}•{FFFFFF}/Destruir\n{32CD32}•{FFFFFF}/Consertar\n{32CD32}•{FFFFFF}/Pintar\n{32CD32}•{FFFFFF}/Tunar\n{32CD32}•{FFFFFF}/Flip\n{32CD32}•{FFFFFF}/Nitro\n{32CD32}•{FFFFFF}/IrCarro\n{32CD32}•{FFFFFF}/TrazerCarro\n{32CD32}•{FFFFFF}/PaintJob\n", "Fechar", "");
  182.     return 1;
  183. }
  184.  
  185. command(comandoss, playerid, params[])
  186. {
  187.     ShowPlayerDialog(playerid, 3500, DIALOG_STYLE_MSGBOX, "{32CD32}» {FFFFFF}Comandos secundarios.", "        {32CD32}•{FFFFFF} Comandos secundarios.\n\n{32CD32}•{FFFFFF}/Trancar\n{32CD32}•{FFFFFF}/Destrancar\n{32CD32}•{FFFFFF}/Farol\n{32CD32}•{FFFFFF}/FarolOff\n{32CD32}•{FFFFFF}/Capo\n{32CD32}•{FFFFFF}/CapoOff\n{32CD32}•{FFFFFF}/Pmalas\n{32CD32}•{FFFFFF}/PmalasOff\n", "Fechar", "");
  188.     return 1;
  189. }
  190.  
  191. command(trancar, playerid, params[])
  192. {
  193.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ x ] Você não esta em um Veículo!");
  194.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, Vermelho, "[ x ] Você não está de motorista.");
  195.     new vehicleid = GetPlayerVehicleID(playerid);
  196.     for( new i=0;i<=MAX_PLAYERS;i++)
  197.     if(i != playerid)
  198.     SetVehicleParamsForPlayer(vehicleid,i, 0, 1);
  199.     GetPlayerPos(playerid, PosX, PosY, PosZ);
  200.     PlayerPlaySound(playerid, 1056, PosX, PosY, PosZ);
  201.     SendClientMessage(playerid, Azul, "[ > ] Seu veículo foi trancado!");
  202.     return 1;
  203. }
  204.  
  205. command(destrancar, playerid, params[])
  206. {
  207.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ x ] Você não esta em um Veículo!");
  208.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, Vermelho, "[ x ] Você não está de motorista.");
  209.     new vehicleid = GetPlayerVehicleID(playerid);
  210.     for( new i=0;i<=MAX_PLAYERS;i++)
  211.     if(i != playerid)
  212.     SetVehicleParamsForPlayer(vehicleid,i, 0, 0);
  213.     GetPlayerPos(playerid, PosX, PosY, PosZ);
  214.     PlayerPlaySound(playerid, 1057, PosX, PosY, PosZ);
  215.     SendClientMessage(playerid, Azul, "[ > ] Seu veículo foi destrancado!");
  216.     return 1;
  217. }
  218.  
  219. command(farol, playerid, params[])
  220. {
  221.     new luz[MAX_PLAYERS];
  222.     new mot, lu, alar, por, cap, porma, ob;
  223.     new carro = GetPlayerVehicleID(playerid);
  224.     if(carro != INVALID_VEHICLE_ID)
  225.     GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
  226.     SetVehicleParamsEx(carro, mot, VEHICLE_PARAMS_ON, alar, por, cap, porma, ob);
  227.     luz[playerid] = 1;
  228.     SendClientMessage(playerid, Azul, "[ > ] Farol do veículo ligado!");
  229.     return 1;
  230.  
  231. }
  232. command(faroloff, playerid, params[])
  233. {
  234.     new luz[MAX_PLAYERS];
  235.     new mot, lu, alar, por, cap, porma, ob;
  236.     new carro = GetPlayerVehicleID(playerid);
  237.     if(carro != INVALID_VEHICLE_ID)
  238.     GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
  239.     SetVehicleParamsEx(carro, mot, VEHICLE_PARAMS_OFF, alar, por, cap, porma, ob);
  240.     luz[playerid] = 0;
  241.     SendClientMessage(playerid, Azul, "[ > ] Farol do veículo desligado!");
  242.     return 1;
  243. }
  244.  
  245. command(capo, playerid, params[])
  246. {
  247.     new capo[MAX_PLAYERS];
  248.     new mot, lu, alar, por, cap, porma, ob;
  249.     new carro = GetPlayerVehicleID(playerid);
  250.     if(carro != INVALID_VEHICLE_ID)
  251.     GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
  252.     SetVehicleParamsEx(carro, mot, lu, alar, por, VEHICLE_PARAMS_ON, porma, ob);
  253.     capo[playerid] = 1;
  254.     SendClientMessage(playerid, Azul, "[ > ] Capo do veículo aberto!");
  255.     return 1;
  256. }
  257. command(capooff, playerid, params[])
  258. {
  259.     new capo[MAX_PLAYERS];
  260.     new mot, lu, alar, por, cap, porma, ob;
  261.     new carro = GetPlayerVehicleID(playerid);
  262.     if(carro != INVALID_VEHICLE_ID)
  263.     GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
  264.     SetVehicleParamsEx(carro, mot, lu, alar, por, VEHICLE_PARAMS_OFF, porma, ob);
  265.     capo[playerid] = 0;
  266.     SendClientMessage(playerid, Azul, "[ > ] Capo do veículo fechado!");
  267.     return 1;
  268. }
  269. command(pmalas, playerid, params[])
  270. {
  271.     new portamalas[MAX_PLAYERS];
  272.     new mot, lu, alar, por, cap, porma, ob;
  273.     new carro = GetPlayerVehicleID(playerid);
  274.     if(carro != INVALID_VEHICLE_ID)
  275.     GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
  276.     SetVehicleParamsEx(carro, mot, lu, alar, por, cap, VEHICLE_PARAMS_ON, ob);
  277.     portamalas[playerid] = 1;
  278.     SendClientMessage(playerid, Azul, "[ > ] Portamalas do veículo aberto!");
  279.     return 1;
  280. }
  281. command(pmalasoff, playerid, params[])
  282. {
  283.     new portamalas[MAX_PLAYERS];
  284.     new mot, lu, alar, por, cap, porma, ob;
  285.     new carro = GetPlayerVehicleID(playerid);
  286.     if(carro != INVALID_VEHICLE_ID)
  287.     GetVehicleParamsEx(carro, mot, lu, alar, por, cap, porma, ob);
  288.     SetVehicleParamsEx(carro, mot, lu, alar, por, cap, VEHICLE_PARAMS_OFF, ob);
  289.     portamalas[playerid] = 0;
  290.     SendClientMessage(playerid, Azul, "[ > ] Portamalas do veículo fechado!");
  291.     return 1;
  292. }
  293.  
  294. /*============================================================================*/
  295. /*===============================[Public]=====================================*/
  296. /*============================================================================*/
  297.  
  298. public OnFilterScriptInit()
  299. {
  300.     print("---------------------------------");
  301.     print(" Sistema de veículos - Ligado!   ");
  302.     print(" Sistema por de veículos por: Ts3");
  303.     print("----------------------------------");
  304.     return true;
  305. }
  306.  
  307. public OnFilterScriptExit()
  308. {
  309.     print("----------------------------------");
  310.     print(" Sistema de veículos - Desligado!");
  311.     print(" Sistema por de veículos por: Ts3");
  312.     print("----------------------------------");
  313.  
  314.     return 1;
  315. }
  316.  
  317. public OnPlayerUpdate(playerid)
  318. {
  319.     new speed[32];
  320.     format(speed, sizeof(speed), "~w~%d KM/H", GetVehicleSpeed(playerid));
  321.     TextDrawSetString(Velocimetro[playerid], speed);
  322.     if(IsPlayerInAnyVehicle(playerid))
  323.     {
  324.         TextDrawShowForPlayer(playerid, Velocimetro[playerid]);
  325.     }
  326.     else
  327.     {
  328.         TextDrawHideForPlayer(playerid, Velocimetro[playerid]);
  329.     }
  330.     return true;
  331. }
  332.  
  333. public OnPlayerConnect(playerid)
  334. {
  335.     Velocimetro[playerid] = TextDrawCreate(60.000000, 435.000000, " ");
  336.     TextDrawBackgroundColor(Velocimetro[playerid], 255);
  337.     TextDrawFont(Velocimetro[playerid], 2);
  338.     TextDrawLetterSize(Velocimetro[playerid], 0.370000, 1.000000);
  339.     TextDrawColor(Velocimetro[playerid], -1);
  340.     TextDrawSetOutline(Velocimetro[playerid], 1);
  341.     TextDrawSetProportional(Velocimetro[playerid], 1);
  342.     TextDrawSetShadow(Velocimetro[playerid], 1);
  343. }
  344.  
  345. /*============================================================================*/
  346. /*===============================[Commands]===================================*/
  347. /*============================================================================*/
  348.  
  349.  
  350. command(con, playerid, params[]) return cmd_consertar(playerid, params);
  351.  
  352. command(car, playerid, params[]) return cmd_carro(playerid, params);
  353.  
  354. command(f, playerid, params[]) return cmd_flip(playerid, params);
  355.  
  356. command(ds, playerid, params[]) return cmd_destruir(playerid, params);
  357.  
  358. /*============================================================================*/
  359. /*===============================[Stock]======================================*/
  360. /*============================================================================*/
  361.  
  362. stock GetVehicleSpeed(playerid)
  363. {
  364.     new Float:vPos[3];
  365.     if(!IsPlayerInAnyVehicle(playerid)) return 1;
  366.     GetVehicleVelocity(GetPlayerVehicleID(playerid), vPos[0], vPos[1], vPos[2]);
  367.     return floatround((floatmul(floatsqroot(floatpower(vPos[0], 2.0) + floatpower(vPos[1], 2.0) + floatpower(vPos[2], 2.0)), 100.0) / 0.4463), floatround_floor);
  368. }
  369.  
  370. stock GetVehicleModelIDFromName(vname[])
  371. {
  372.     for(new i = 0; i < 211; i++)
  373.     {
  374.         if(strfind(VehicleNames[i], vname, true) != -1)
  375.         return i + 400;
  376.     }
  377.     return -1;
  378. }
  379.  
  380. /*============================================================================*/
  381. /*===============================[End]========================================*/
  382. /*============================================================================*/
  383.  
  384. #endif
Add Comment
Please, Sign In to add comment