LeonardoBradoks

Sistema de Radar com Multa pela Placa

Sep 24th, 2018
933
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 20.50 KB | None | 0 0
  1. // This is a comment
  2. // uncomment the line below if you want to write a filterscript
  3. //#define FILTERSCRIPT
  4.  
  5. #include <a_samp>
  6. #include <sscanf2>
  7. #include <zcmd>
  8.  
  9. /*-- definições de gangs --*/
  10. #define GANG_YAKUZA                                                 1
  11. #define GANG_GROOVE_STREET                                          2
  12. #define GANG_BALLAS                                                 3
  13.  
  14. /*-- definições de menus --*/
  15. #define DIALOG_MENU_KIT                                             1001
  16. #define DIALOG_MULTAS                                               1002
  17.  
  18. forward UpdateRadar();
  19. forward LiberarPlayerMulta(playerid);
  20.  
  21. enum pBradoks {
  22.     pGang,
  23.     bool:pMulta = false,
  24.     pTimerMulta,
  25. }
  26. new PlayerBradoks[MAX_PLAYERS][pBradoks];
  27.  
  28. enum vBradoks {
  29.     vVeiculoIDX,
  30.     vPlaca[9],
  31.     vValorMulta,
  32.     vTotalMultas
  33. }
  34. new VeiculoBradoks[MAX_VEHICLES][vBradoks];
  35.  
  36. new VehicleNames[][] =
  37. {
  38.     "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel",
  39.     "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
  40.     "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
  41.     "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection",
  42.     "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
  43.     "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
  44.     "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
  45.     "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
  46.     "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van",
  47.     "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale",
  48.     "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
  49.     "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
  50.     "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper",
  51.     "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
  52.     "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin",
  53.     "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT",
  54.     "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt",
  55.     "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
  56.     "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
  57.     "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer",
  58.     "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
  59.     "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
  60.     "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
  61.     "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium",
  62.     "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  63.     "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper",
  64.     "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400",
  65.     "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
  66.     "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car",
  67.     "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha",
  68.     "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
  69.     "Tiller", "Utility Trailer"
  70. };
  71.  
  72. main()
  73. {
  74.     print("\n----------------------------------");
  75.     print(" Blank Gamemode by your name here");
  76.     print("----------------------------------\n");
  77. }
  78.  
  79. public OnGameModeInit()
  80. {
  81.     // Don't use these lines if it's a filterscript
  82.     SetGameModeText("Blank Script");
  83.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  84.     SetTimer("UpdateRadar", 300, true);
  85.  
  86.     VeiculoBradoks[560][vVeiculoIDX] = AddStaticVehicle(560,2038.6934,1319.2219,10.3783,179.8767,-1,-1); // Carro Público LV 1
  87.     SetVehicleNumberPlateEx(VeiculoBradoks[560][vVeiculoIDX], "PUB-2018");
  88.     VeiculoBradoks[565][vVeiculoIDX] = AddStaticVehicle(565,2038.7120,1328.0275,10.3782,179.8766,-1,-1); // Carro Público LV 2
  89.     SetVehicleNumberPlateEx(VeiculoBradoks[565][vVeiculoIDX], "PUB-2019");
  90.     VeiculoBradoks[585][vVeiculoIDX] = AddStaticVehicle(585,2038.7369,1339.4006,10.3782,179.8766,-1,-1); // Carro Público LV 3
  91.     SetVehicleNumberPlateEx(VeiculoBradoks[585][vVeiculoIDX], "PUB-2020");
  92.     VeiculoBradoks[565][vVeiculoIDX] = AddStaticVehicle(565,2038.7646,1352.3700,10.3776,179.8763,-1,-1); // Carro Público LV 4
  93.     SetVehicleNumberPlateEx(VeiculoBradoks[565][vVeiculoIDX], "PUB-2021");
  94.     VeiculoBradoks[585][vVeiculoIDX] = AddStaticVehicle(585,2038.7971,1367.3813,10.3779,179.8762,-1,-1); // Carro Público LV 5
  95.     SetVehicleNumberPlateEx(VeiculoBradoks[585][vVeiculoIDX], "PUB-2022");
  96.     VeiculoBradoks[560][vVeiculoIDX] = AddStaticVehicle(560,2038.8286,1382.0822,10.3781,179.8761,-1,-1); // Carro Público LV 6
  97.     SetVehicleNumberPlateEx(VeiculoBradoks[560][vVeiculoIDX], "PUB-2023");
  98.     return 1;
  99. }
  100.  
  101. public OnGameModeExit()
  102. {
  103.     return 1;
  104. }
  105.  
  106. public OnPlayerRequestClass(playerid, classid)
  107. {
  108.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  109.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  110.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  111.     return 1;
  112. }
  113.  
  114. public OnPlayerConnect(playerid)
  115. {
  116.     return 1;
  117. }
  118.  
  119. public OnPlayerDisconnect(playerid, reason)
  120. {
  121.     return 1;
  122. }
  123.  
  124. public OnPlayerSpawn(playerid)
  125. {
  126.     return 1;
  127. }
  128.  
  129. public OnPlayerDeath(playerid, killerid, reason)
  130. {
  131.     return 1;
  132. }
  133.  
  134. public OnVehicleSpawn(vehicleid)
  135. {
  136.     return 1;
  137. }
  138.  
  139. public OnVehicleDeath(vehicleid, killerid)
  140. {
  141.     return 1;
  142. }
  143.  
  144. public OnPlayerText(playerid, text[])
  145. {
  146.     return 1;
  147. }
  148.  
  149. public OnPlayerCommandText(playerid, cmdtext[])
  150. {
  151.     if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  152.     {
  153.         // Do something here
  154.         return 1;
  155.     }
  156.     return 0;
  157. }
  158.  
  159. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  160. {
  161.     return 1;
  162. }
  163.  
  164. public OnPlayerExitVehicle(playerid, vehicleid)
  165. {
  166.     return 1;
  167. }
  168.  
  169. public OnPlayerStateChange(playerid, newstate, oldstate)
  170. {
  171.     return 1;
  172. }
  173.  
  174. public OnPlayerEnterCheckpoint(playerid)
  175. {
  176.     return 1;
  177. }
  178.  
  179. public OnPlayerLeaveCheckpoint(playerid)
  180. {
  181.     return 1;
  182. }
  183.  
  184. public OnPlayerEnterRaceCheckpoint(playerid)
  185. {
  186.     return 1;
  187. }
  188.  
  189. public OnPlayerLeaveRaceCheckpoint(playerid)
  190. {
  191.     return 1;
  192. }
  193.  
  194. public OnRconCommand(cmd[])
  195. {
  196.     return 1;
  197. }
  198.  
  199. public OnPlayerRequestSpawn(playerid)
  200. {
  201.     return 1;
  202. }
  203.  
  204. public OnObjectMoved(objectid)
  205. {
  206.     return 1;
  207. }
  208.  
  209. public OnPlayerObjectMoved(playerid, objectid)
  210. {
  211.     return 1;
  212. }
  213.  
  214. public OnPlayerPickUpPickup(playerid, pickupid)
  215. {
  216.     return 1;
  217. }
  218.  
  219. public OnVehicleMod(playerid, vehicleid, componentid)
  220. {
  221.     return 1;
  222. }
  223.  
  224. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  225. {
  226.     return 1;
  227. }
  228.  
  229. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  230. {
  231.     return 1;
  232. }
  233.  
  234. public OnPlayerSelectedMenuRow(playerid, row)
  235. {
  236.     return 1;
  237. }
  238.  
  239. public OnPlayerExitedMenu(playerid)
  240. {
  241.     return 1;
  242. }
  243.  
  244. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  245. {
  246.     return 1;
  247. }
  248.  
  249. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  250. {
  251.     return 1;
  252. }
  253.  
  254. public OnRconLoginAttempt(ip[], password[], success)
  255. {
  256.     return 1;
  257. }
  258.  
  259. public OnPlayerUpdate(playerid)
  260. {
  261.     return 1;
  262. }
  263.  
  264. public OnPlayerStreamIn(playerid, forplayerid)
  265. {
  266.     return 1;
  267. }
  268.  
  269. public OnPlayerStreamOut(playerid, forplayerid)
  270. {
  271.     return 1;
  272. }
  273.  
  274. public OnVehicleStreamIn(vehicleid, forplayerid)
  275. {
  276.     return 1;
  277. }
  278.  
  279. public OnVehicleStreamOut(vehicleid, forplayerid)
  280. {
  281.     return 1;
  282. }
  283.  
  284. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  285. {
  286.     switch(dialogid) {
  287.         case DIALOG_MENU_KIT: {
  288.             if(response) {
  289.                 switch(PlayerBradoks[playerid][pGang]) {
  290.                     case GANG_YAKUZA: {
  291.                         switch(listitem) {
  292.                             case 0: {
  293.                                 if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  294.                                 GivePlayerWeapon(playerid, 22, 10);
  295.                                 GivePlayerMoney(playerid, -1000);
  296.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  297.                                 return 1;
  298.                             }
  299.                             case 1: {
  300.                                 if(GetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  301.                                 GivePlayerWeapon(playerid, 25, 15);
  302.                                 GivePlayerMoney(playerid, -1500);
  303.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  304.                                 return 1;
  305.                             }
  306.                             case 2: {
  307.                                 if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  308.                                 GivePlayerWeapon(playerid, 28, 20);
  309.                                 GivePlayerMoney(playerid, -2000);
  310.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  311.                                 return 1;
  312.                             }
  313.                         }
  314.                     }
  315.                     case GANG_GROOVE_STREET: {
  316.                         switch(listitem) {
  317.                             case 0: {
  318.                                 if(GetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  319.                                 GivePlayerWeapon(playerid, 23, 15);
  320.                                 GivePlayerMoney(playerid, -1500);
  321.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  322.                                 return 1;
  323.                             }
  324.                             case 1: {
  325.                                 if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  326.                                 GivePlayerWeapon(playerid, 26, 20);
  327.                                 GivePlayerMoney(playerid, -2000);
  328.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  329.                                 return 1;
  330.                             }
  331.                             case 2: {
  332.                                 if(GetPlayerMoney(playerid) < 2500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  333.                                 GivePlayerWeapon(playerid, 29, 25);
  334.                                 GivePlayerMoney(playerid, -2500);
  335.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  336.                                 return 1;
  337.                             }
  338.                         }
  339.                     }
  340.                     case GANG_BALLAS: {
  341.                         switch(listitem) {
  342.                             case 0: {
  343.                                 if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  344.                                 GivePlayerWeapon(playerid, 24, 20);
  345.                                 GivePlayerMoney(playerid, -2000);
  346.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  347.                                 return 1;
  348.                             }
  349.                             case 1: {
  350.                                 if(GetPlayerMoney(playerid) < 2500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  351.                                 GivePlayerWeapon(playerid, 27, 25);
  352.                                 GivePlayerMoney(playerid, -2500);
  353.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  354.                                 return 1;
  355.                             }
  356.                             case 2: {
  357.                                 if(GetPlayerMoney(playerid) < 3000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  358.                                 GivePlayerWeapon(playerid, 32, 30);
  359.                                 GivePlayerMoney(playerid, -3000);
  360.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  361.                                 return 1;
  362.                             }
  363.                         }                  
  364.                     }
  365.                 }
  366.             }
  367.  
  368.         }
  369.     }
  370.     return 1;
  371. }
  372.  
  373. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  374. {
  375.     return 1;
  376. }
  377.  
  378. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  379. {
  380.     new string[128], aname[MAX_PLAYER_NAME];
  381.     GetPlayerName(playerid, aname, sizeof(aname));
  382.     format(string, sizeof(string), "O(A) player %s foi para a posição %f %f %f", aname, fX, fY, fZ);
  383.     SendClientMessageToAll(-1, string);
  384.     SetPlayerPosFindZ(playerid, fX, fY, fZ);
  385.     return 1;
  386. }
  387.  
  388.  
  389. /*-- Comandos --*/
  390.  
  391. CMD:setgang(playerid, params[]) {
  392.     new id, gang, aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], string[128];
  393.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não tem acesso a este comando !");
  394.     if(sscanf(params, "dd", id, gang)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Use: /setgang [playerid] [(1: Yakuza) - (2: Groove Street) - (3: Ballas)]");
  395.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Este player não está conectado !");
  396.     if(PlayerBradoks[id][pGang] == gang) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Este player já faz parte desta gang !");
  397.     GetPlayerName(playerid, aname, sizeof(aname));
  398.     GetPlayerName(playerid, pname, sizeof(pname));
  399.  
  400.     format(string, sizeof(string), "[•»] O(A) Administrador(a) %s setou o(a) player %s como membro(a) da gang %s", aname, pname, gang == 1 ? ("Yakuza") : gang == 2 ? ("Groove Street") : gang == 3 ? ("Ballas") : ("Nenhuma"));
  401.     SendClientMessageToAll(-1, string);
  402.  
  403.     format(string, sizeof(string), "[•»] O(A) Administrador(a) %s te setou como membro(a) da gang %s", aname, gang == 1 ? ("Yakuza") : gang == 2 ? ("Groove Street") : gang == 3 ? ("Ballas") : ("Nenhuma"));
  404.     SendClientMessage(playerid, -1, string);
  405.     PlayerBradoks[id][pGang] = gang;
  406.     return 1;
  407. }
  408.  
  409. CMD:kit(playerid) {
  410.     switch(PlayerBradoks[playerid][pGang]) {
  411.         case GANG_YAKUZA: {
  412.             ShowPlayerDialog(playerid, DIALOG_MENU_KIT, DIALOG_STYLE_TABLIST_HEADERS, "{ffffff}Menu KIT de Armas {FFD700}Yakuza", "{FF0000}Arma\t{ffffff}Munição\t{00FF7F}Valor\n\
  413.             {ffffff}Pistola 9MM\t{ffffff}10\t{00FF7F}R$ {ffffff}1000\n\
  414.             {ffffff}Espingarda\t{ffffff}15\t{00FF7F}R$ {ffffff}1500\n\
  415.             {ffffff}Micro SMG\t{ffffff}20\t{00FF7F}R$ {ffffff}2000",
  416.             "Comprar", "Cancelar");
  417.         }
  418.         case GANG_GROOVE_STREET: {
  419.             ShowPlayerDialog(playerid, DIALOG_MENU_KIT, DIALOG_STYLE_TABLIST_HEADERS, "{ffffff}Menu KIT de Armas {00FF7F}Groove Street", "{FF0000}Arma\t{ffffff}Munição\t{00FF7F}Valor\n\
  420.              {ffffff}Pistola 9MM C/ Silenciador\t{ffffff}15\t{00FF7F}R$ {ffffff}1500\n\
  421.              {ffffff}Shotgun Sawnoff\t{ffffff}20\t{00FF7F}R$ {ffffff}2000\n\
  422.              {ffffff}MP5\t{ffffff}25\t{00FF7F}R$ {ffffff}2500",
  423.              "Comprar", "Cancelar");
  424.         }
  425.         case GANG_BALLAS: {
  426.             ShowPlayerDialog(playerid, DIALOG_MENU_KIT, DIALOG_STYLE_TABLIST_HEADERS, "{ffffff}Menu KIT de Armas {8A2BE2}Ballas", "{FF0000}Arma\t{ffffff}Munição\t{00FF7F}Valor\n\
  427.              {ffffff}Desert Eagle\t{ffffff}20\t{00FF7F}R$ {ffffff}2000\n\
  428.              {ffffff}Combat Shotgun\t{ffffff}25\t{00FF7F}R$ {ffffff}2500\n\
  429.              {ffffff}Tec-9\t{ffffff}30\t{00FF7F}R$ {ffffff}3000",
  430.              "Comprar", "Cancelar");           
  431.         }
  432.         default: SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não tem acesso a este comando !");
  433.     }
  434.     return 1;
  435. }
  436.  
  437. CMD:dargrana(playerid, params[]) {
  438.     new id, grana;
  439.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não tem acesso a este comando !");
  440.     if(sscanf(params, "dd", id, grana)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Use: /dargrana [playerid] [valor]");
  441.     GivePlayerMoney(id, grana);
  442.     SendClientMessage(playerid, -1, "[•»] {00FF7F}Dinheiro enviado com sucesso !");
  443.     return 1;
  444. }
  445.  
  446. CMD:criarveiculo(playerid, params[]) {
  447.     new idveiculo, cor[2], placa[9], Float:Pos[4], string[140];
  448.     if(sscanf(params, "ddds[9]", idveiculo, cor[0], cor[1], placa)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Use: /criarveiculo [id do veiculo] [cor 1] [cor 2] [placa]");
  449.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  450.     GetPlayerFacingAngle(playerid, Pos[3]);
  451.     VeiculoBradoks[idveiculo][vVeiculoIDX] = AddStaticVehicle(idveiculo, Pos[0], Pos[1], Pos[2], Pos[3], cor[0], cor[1]);
  452.     SetVehicleNumberPlateEx(VeiculoBradoks[idveiculo][vVeiculoIDX], placa);
  453.     format(string, sizeof(string), "[x] Veiculo (ID Geral: %d) - (ID Interno: %d) - (Placa: %s) criado com sucesso !", idveiculo, VeiculoBradoks[idveiculo][vVeiculoIDX], placa);
  454.     SendClientMessage(playerid, -1, string);
  455.     return 1;
  456. }
  457.  
  458. CMD:pegarplaca(playerid) {
  459.     new string[148];
  460.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não está dentro de um veiculo !");
  461.     format(string, sizeof(string), "{00FF7F}[x] Veiculo ( ID Geral:{FFFFFF} %d {00FF7F}) - ( ID Interno:{FFFFFF} %d {00FF7F}) - ( Placa:{FFFFFF} %s {00FF7F})", GetVehicleModel(GetPlayerVehicleID(playerid)), GetPlayerVehicleID(playerid), GetVehicleNumberPlateEx(GetPlayerVehicleID(playerid)));
  462.     SendClientMessage(playerid, -1, string);
  463.     return 1;
  464. }
  465.  
  466. CMD:multas(playerid) {
  467.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não está dentro de um veiculo !");
  468.     new string[400];
  469.     format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700}---------------------------------------------{FF0000}•{FFFFFF}«\n\n{FF0000}•{FFFFFF}»{FFD700} Veiculo{FFFFFF} %s\n{FF0000}•{FFFFFF}»{FFD700} Placa{FFFFFF} %s\n{FF0000}•{FFFFFF}»{FFD700} Total de Multas:{FFFFFF} %d\n{FF0000}•{FFFFFF}»{FFD700} Valor das Multas:{FFFFFF} %d\n\n{FF0000}•{FFFFFF}»{FFD700}---------------------------------------------{FF0000}•{FFFFFF}«",
  470.      GetVehicleName(VeiculoBradoks[GetVehicleModel(GetPlayerVehicleID(playerid))][vVeiculoIDX]), GetVehicleNumberPlateEx(GetPlayerVehicleID(playerid)), VeiculoBradoks[GetVehicleModel(GetPlayerVehicleID(playerid))][vTotalMultas], VeiculoBradoks[GetVehicleModel(GetPlayerVehicleID(playerid))][vValorMulta]);
  471.     ShowPlayerDialog(playerid, DIALOG_MULTAS, DIALOG_STYLE_MSGBOX, "{FFFFFF}Menu de Multas", string, "Fechar", "");
  472.     return 1;
  473. }
  474.  
  475. stock SetVehicleNumberPlateEx(carid, plate[]) {
  476.     format(VeiculoBradoks[carid][vPlaca], 9, "%s", plate);
  477.     SetVehicleNumberPlate(carid, VeiculoBradoks[carid][vPlaca]);
  478.     SetVehicleToRespawn(carid);
  479.     return 1;
  480. }
  481.  
  482. stock GetVehicleNumberPlateEx(carid) {
  483.     new plate[9];
  484.     for(new i = 0; i < 9; i++) {
  485.         strcat(plate, VeiculoBradoks[carid][vPlaca][i]);
  486.     }
  487.     return plate;
  488. }
  489.  
  490. public UpdateRadar() {
  491.     for(new i = 0; i < GetMaxPlayers(); i++) {
  492.         if(IsPlayerInRangeOfPoint(i, 9.0, 2143.1416,1373.2250,10.6719) && IsPlayerInAnyVehicle(i) && PlayerBradoks[i][pMulta] == false) {
  493.             if(GetVehicleSpeed(VeiculoBradoks[GetVehicleModel(GetPlayerVehicleID(i))][vVeiculoIDX]) >= 61) {
  494.                 new string[128], Taxa = 20, Tempo = 20;
  495.                 SendClientMessage(i, -1, "{FF0000}•{FFFFFF}»{FFD700}------------------------- {FF0000}RADAR {FFD700}-------------------------{FF0000}•{FFFFFF}«");
  496.                 format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Veículo %s", GetVehicleName(VeiculoBradoks[GetVehicleModel(GetPlayerVehicleID(i))][vVeiculoIDX]));
  497.                 SendClientMessage(i, -1, string);
  498.                 format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Placa %s", GetVehicleNumberPlateEx(GetPlayerVehicleID(i)));
  499.                 SendClientMessage(i, -1, string);
  500.                 SendClientMessage(i, -1, "{FF0000}•{FFFFFF}»{FFD700} Velocidade Permitida 60 KM/H");
  501.                 format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Velocidade Registrada %d KM/H", GetVehicleSpeed(VeiculoBradoks[GetVehicleModel(GetPlayerVehicleID(i))][vVeiculoIDX]));
  502.                 SendClientMessage(i, -1, string);
  503.                 format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Valor da Multa %d", ((GetVehicleSpeed(VeiculoBradoks[GetVehicleModel(GetPlayerVehicleID(i))][vVeiculoIDX]) * Taxa * Tempo) /100));
  504.                 SendClientMessage(i, -1, string);
  505.                 SendClientMessage(i, -1, "{FF0000}•{FFFFFF}»{FFD700}------------------------- {FF0000}RADAR {FFD700}-------------------------{FF0000}•{FFFFFF}«");
  506.                 VeiculoBradoks[GetVehicleModel(GetPlayerVehicleID(i))][vValorMulta] += ((GetVehicleSpeed(VeiculoBradoks[GetVehicleModel(GetPlayerVehicleID(i))][vVeiculoIDX]) * Taxa * Tempo) /100);
  507.                 VeiculoBradoks[GetVehicleModel(GetPlayerVehicleID(i))][vTotalMultas]++;
  508.                 PlayerBradoks[i][pMulta] = true;               
  509.                 PlayerBradoks[i][pTimerMulta] = SetTimerEx("LiberarPlayerMulta", 2000, false, "i", i);
  510.                 return 1;
  511.             } else {
  512.                 new string[128];
  513.                 format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Velocidade Registrada: %d KM/H", GetVehicleSpeed(VeiculoBradoks[GetVehicleModel(GetPlayerVehicleID(i))][vVeiculoIDX]));
  514.                 SendClientMessage(i, -1, string);
  515.                 PlayerBradoks[i][pMulta] = true;
  516.                 PlayerBradoks[i][pTimerMulta] = SetTimerEx("LiberarPlayerMulta", 2000, false, "i", i);
  517.                 return 1;  
  518.             }
  519.         }
  520.     }
  521.     return 1;
  522. }
  523.  
  524. GetVehicleSpeed(vehicleid) {
  525.     new Float:Vx, Float:Vy, Float:Vz;
  526.     GetVehicleVelocity(vehicleid, Vx, Vy, Vz);
  527.     new Float:rtn;
  528.     rtn = floatsqroot(floatpower(Vx*100,2) + floatpower(Vy*100,2));
  529.     rtn = floatsqroot(floatpower(rtn,2) + floatpower(Vz*100,2));
  530.     return floatround(rtn);
  531. }
  532.  
  533. stock GetVehicleName(vehicleid)
  534. {
  535.     new string[50];
  536.     format(string,sizeof(string),"%s", VehicleNames[GetVehicleModel(vehicleid) - 400]);
  537.     return string;
  538. }
  539.  
  540. public LiberarPlayerMulta(playerid) {
  541.     if(PlayerBradoks[playerid][pMulta] == true) {
  542.         KillTimer(PlayerBradoks[playerid][pTimerMulta]);
  543.         PlayerBradoks[playerid][pMulta] = false;
  544.         return 1;  
  545.     }
  546.     return 1;
  547. }
Advertisement
Add Comment
Please, Sign In to add comment