Shadoww5

Encontrar veiculo por comando - Shadoww5

Jul 15th, 2011
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.18 KB | None | 0 0
  1. // ==============[ VERSÃO ORIGINAL ]============== //
  2.  
  3. new Veiculos[212][25] =
  4. {
  5.     "Landstalker","Bravura","Buffalo","Linerunner","Perrenial","Sentinel","Dumper","Firetruck","Trashmaster",
  6.     "Stretch","Manana","Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam",
  7.     "Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection","Hunter","Premier","Enforcer",
  8.     "Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer 1","Previon","Coach",
  9.     "Cabbie","Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow",
  10.     "Pizzaboy","Tram","Trailer 2","Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy","Solair",
  11.     "Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider","Glendale","Oceanic",
  12.     "Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR-350","Walton",
  13.     "Regina","Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher",
  14.     "FBI Rancher","Virgo","Greenwood","Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville",
  15.     "Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B","Bloodring Banger","Rancher","Super GT",
  16.     "Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","Roadtrain","Nebula",
  17.     "Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune",
  18.     "Cadrona","FBI Truck","Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade",
  19.     "Freight","Streak","Vortex","Vincent","Bullet","Clover","Sadler","Firetruck LA","Hustler","Intruder",
  20.     "Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A","Monster B",
  21.     "Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito",
  22.     "Freight Flat","Streak Carriage","Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30",
  23.     "Huntley","Stafford","BF-400","Newsvan","Tug","Trailer 3","Emperor","Wayfarer","Euros","Hotdog","Club",
  24.     "Freight Carriage","Trailer 3","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  25.     "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler",
  26.     "Luggage Trailer A","Luggage Trailer B","Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  27. };
  28.  
  29. public OnPlayerCommandText(playerid, cmdtext[])
  30. {
  31.     new found, str[128], str2[25], car;
  32.     strmid(str2, cmdtext, 1, strlen(cmdtext));
  33.     if(strcmp(cmdtext, "/modelo", true) == 0)
  34.     {
  35.         if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Você deve estar em um veiculo para usar este comando.");
  36.         format(str, sizeof str, "[INFO] {BC28ED}ID do Veiculo: {FFAE00}%d{BC28ED} | Modelo: {FFAE00}%s{BC28ED}", GetPlayerVehicleID(playerid), Veiculos[GetVehicleModel(GetPlayerVehicleID(playerid)) - 400]);
  37.         SendClientMessage(playerid, 0xFFFFFFFF, str);
  38.         return 1;
  39.     }
  40.     for(new i = 0; i < sizeof(Veiculos); i ++)
  41.     {
  42.         format(str, sizeof str, "%s", Veiculos[i]);
  43.         if(strcmp(str2, "Boxville", true) == 0) { i = 209; goto Next; } // BOXVILLE BUGADO
  44.         else if(strcmp(str2, str, true) == 0)
  45.         {
  46.             Next:
  47.             for(new c = 0; c < MAX_VEHICLES; c ++)
  48.             {
  49.                 if(GetVehicleModel(c) == (400+i)) { found++; car = c; }
  50.             }
  51.             if(!found) { SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Nenhum veiculo encontrado."); }
  52.             else if(found)
  53.             {
  54.                 new Float:V[4];
  55.                 GetVehiclePos(car, V[0], V[1], V[2]);
  56.                 GetVehicleHealth(car, V[3]);
  57.                 SetPlayerPos(playerid, V[0], V[1]+2.5, V[2]+0.5);
  58.                 format(str, sizeof str, "[INFO] {BC28ED}ID do Veiculo: {FFAE00}%d{BC28ED} | Modelo: {FFAE00}%s{BC28ED} | Saúde do Veículo: {FFAE00}%.1f", car, Veiculos[i], V[3]);
  59.                 SendClientMessage(playerid, 0xFFFFFFFF, str);
  60.                 break;
  61.             }
  62.             else
  63.             {
  64.                 format(str, sizeof str, "[ERRO] %d veiculos encontrados.", found);
  65.                 SendClientMessage(playerid, 0xFF0000FF, str);
  66.             }
  67.             return 1;
  68.         }
  69.     }
  70.     return 0;
  71. }
  72.  
  73. // VERSÃO ADAPTADA: JOGADOR TELEPORTADO PARA O VEICULO MAIS PROXIMO (SE FOREM ENCONTRADOS MAIS QUE 1) //
  74.  
  75. new Veiculos[212][25] =
  76. {
  77.     "Landstalker","Bravura","Buffalo","Linerunner","Perrenial","Sentinel","Dumper","Firetruck","Trashmaster",
  78.     "Stretch","Manana","Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam",
  79.     "Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection","Hunter","Premier","Enforcer",
  80.     "Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer 1","Previon","Coach",
  81.     "Cabbie","Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow",
  82.     "Pizzaboy","Tram","Trailer 2","Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy","Solair",
  83.     "Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider","Glendale","Oceanic",
  84.     "Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR-350","Walton",
  85.     "Regina","Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher",
  86.     "FBI Rancher","Virgo","Greenwood","Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville",
  87.     "Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B","Bloodring Banger","Rancher","Super GT",
  88.     "Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","Roadtrain","Nebula",
  89.     "Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune",
  90.     "Cadrona","FBI Truck","Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade",
  91.     "Freight","Streak","Vortex","Vincent","Bullet","Clover","Sadler","Firetruck LA","Hustler","Intruder",
  92.     "Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A","Monster B",
  93.     "Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito",
  94.     "Freight Flat","Streak Carriage","Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30",
  95.     "Huntley","Stafford","BF-400","Newsvan","Tug","Trailer 3","Emperor","Wayfarer","Euros","Hotdog","Club",
  96.     "Freight Carriage","Trailer 3","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  97.     "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler",
  98.     "Luggage Trailer A","Luggage Trailer B","Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  99. };
  100.  
  101. public OnPlayerCommandText(playerid, cmdtext[])
  102. {
  103.     new found, str[128], str2[25], car;
  104.     strmid(str2, cmdtext, 1, strlen(cmdtext));
  105.     if(strcmp(cmdtext, "/modelo", true) == 0)
  106.     {
  107.         if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Você deve estar em um veiculo para usar este comando.");
  108.         format(str, sizeof str, "[INFO] {BC28ED}ID do Veiculo: {FFAE00}%d{BC28ED} | Modelo: {FFAE00}%s{BC28ED}", GetPlayerVehicleID(playerid), Veiculos[GetVehicleModel(GetPlayerVehicleID(playerid)) - 400]);
  109.         SendClientMessage(playerid, 0xFFFFFFFF, str);
  110.         return 1;
  111.     }
  112.     for(new i = 0; i < sizeof(Veiculos); i ++)
  113.     {
  114.         format(str, sizeof str, "%s", Veiculos[i]);
  115.         if(strcmp(str2, "Boxville", true) == 0) { i = 209; goto Next; }
  116.         else if(strcmp(str2, str, true) == 0)
  117.         {
  118.             Next:
  119.             for(new c = 0; c < MAX_VEHICLES; c ++)
  120.             {
  121.                 if(GetVehicleModel(c) == (400+i)) { found++; car = c; }
  122.             }
  123.             if(!found) { SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Nenhum veiculo encontrado."); }
  124.             else if(found == 1)
  125.             {
  126.                 new Float:V[4];
  127.                 GetVehiclePos(car, V[0], V[1], V[2]);
  128.                 GetVehicleHealth(car, V[3]);
  129.                 SetPlayerPos(playerid, V[0], V[1]+2.5, V[2]+0.5);
  130.                 format(str, sizeof str, "[INFO] {BC28ED}ID do Veiculo: {FFAE00}%d{BC28ED} | Modelo: {FFAE00}%s{BC28ED} | Saúde do Veículo: {FFAE00}%.1f", car, Veiculos[i], V[3]);
  131.                 SendClientMessage(playerid, 0xFFFFFFFF, str);
  132.                 break;
  133.             }
  134.             else
  135.             {
  136.                 new Float:V[4];
  137.                 car = GetClosestVehicle(playerid, 400+i);
  138.                 GetVehiclePos(car, V[0], V[1], V[2]);
  139.                 GetVehicleHealth(car, V[3]);
  140.                 SetPlayerPos(playerid, V[0], V[1]+2.5, V[2]+0.5);
  141.                 format(str, sizeof str, "[INFO] {BC28ED}ID do Veiculo: {FFAE00}%d{BC28ED} | Modelo: {FFAE00}%s{BC28ED} | Saúde do Veículo: {FFAE00}%.1f", car, Veiculos[i], V[3]);
  142.                 SendClientMessage(playerid, 0xFFFFFFFF, str);
  143.                 break;
  144.             }
  145.             return 1;
  146.         }
  147.     }
  148.     return 0;
  149. }
  150.  
  151.  
  152. stock Float:GetDistanceBetweenPoints(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2)
  153. {
  154.     return floatsqroot(floatpower(floatsub(x1, x2), 2)+floatpower(floatsub(y1, y2), 2)+floatpower(floatsub(z1, z2), 2));
  155. }
  156.  
  157. stock Float:GetPlayerDistanceFromPoint( playerid, Float:x,Float:y,Float:z)
  158. {
  159.     if(IsPlayerConnected(playerid))
  160.     {
  161.         new Float:x2,Float:y2,Float:z2;
  162.         GetPlayerPos(playerid,x2,y2,z2);
  163.         return GetDistanceBetweenPoints(x2,y2,z2,x,y,z);
  164.     }
  165.     return 0.0;
  166. }
  167.  
  168. stock GetClosestVehicle(playerid, model)
  169. {
  170.     new v = -1;
  171.     new Float:dis = 99999.99;
  172.     for (new i = 0; i < MAX_VEHICLES; i++)
  173.     {
  174.         new Float:x,Float:y,Float:z;
  175.         if(GetVehicleModel(i) != model) continue;
  176.         GetVehiclePos(i,x,y,z);
  177.         new Float:dis2 = GetPlayerDistanceFromPoint(playerid,x,y,z);
  178.         if(dis2 < dis)
  179.         {
  180.             dis = dis2;
  181.             v = i;
  182.         }
  183.     }
  184.     return v;
  185. }
Advertisement
Add Comment
Please, Sign In to add comment