LeonardoBradoks

Criando Sistema de Detran com Consultas e Pagamentos de Mult

Sep 25th, 2018
1,510
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 29.87 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. #include <cpstream>
  9.  
  10. /*-- definições de gangs --*/
  11. #define GANG_YAKUZA                                                 1
  12. #define GANG_GROOVE_STREET                                          2
  13. #define GANG_BALLAS                                                 3
  14.  
  15. /*-- definições de menus --*/
  16. #define DIALOG_MENU_KIT                                             1001
  17. #define DIALOG_MULTAS                                               1002
  18. #define DIALOG_MENU_DETRAN                                          1003
  19. #define DIALOG_MENU_DETRAN_CONSULTAR                                1004
  20. #define DIALOG_MENU_DETRAN_PAGARMULTAS                              1005
  21. #define DIALOG_PAGAR_MULTAS                                         1006
  22.  
  23.  
  24. forward UpdateRadar();
  25. forward LiberarPlayerMulta(playerid);
  26.  
  27. enum pBradoks {
  28.     pGang,
  29.     bool:pMulta = false,
  30.     pTimerMulta,
  31.     pValorDaMulta,
  32.     pIDdoVeiculo
  33. }
  34. new PlayerBradoks[MAX_PLAYERS][pBradoks];
  35. new BRADOKS_VEHICLES = 1;
  36. new bool:Contagem[MAX_PLAYERS] = false;
  37.  
  38. enum vBradoks {
  39.     vVeiculoIDX,
  40.     vPlaca[9],
  41.     vValorMulta,
  42.     vTotalMultas,
  43. }
  44. new VeiculoBradoks[MAX_VEHICLES][vBradoks];
  45.  
  46. new PortaoHSLS[2],
  47.     bool:PortaoHSLSEAberto = false,
  48.     bool:PortaoHSLSDAberto = false;
  49.  
  50. enum pPickupID {
  51.     pEntradaDetranSF,
  52.     pSaidaDetranSF
  53. }
  54. new PickupBradoks[pPickupID];
  55.  
  56. enum pCheckID {
  57.     pCheckDetranMenu
  58. }
  59. new CheckBradoks[pCheckID];
  60.  
  61. new VehicleNames[][] =
  62. {
  63.     "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel",
  64.     "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
  65.     "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
  66.     "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection",
  67.     "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
  68.     "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
  69.     "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
  70.     "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
  71.     "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van",
  72.     "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale",
  73.     "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
  74.     "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
  75.     "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper",
  76.     "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
  77.     "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin",
  78.     "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT",
  79.     "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt",
  80.     "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
  81.     "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
  82.     "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer",
  83.     "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
  84.     "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
  85.     "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
  86.     "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium",
  87.     "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  88.     "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper",
  89.     "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400",
  90.     "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
  91.     "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car",
  92.     "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha",
  93.     "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
  94.     "Tiller", "Utility Trailer"
  95. };
  96.  
  97. main()
  98. {
  99.     print("\n----------------------------------");
  100.     print(" Blank Gamemode by your name here");
  101.     print("----------------------------------\n");
  102. }
  103.  
  104. public OnGameModeInit()
  105. {
  106.     // Don't use these lines if it's a filterscript
  107.     SetGameModeText("Blank Script");
  108.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  109.     SetTimer("UpdateRadar", 400, true);
  110.     DisableInteriorEnterExits();
  111.  
  112.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(560,2038.6934,1319.2219,10.3783,179.8767,-1,-1); // Carro Público LV 1
  113.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2018"); BRADOKS_VEHICLES ++;
  114.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(565,2038.7120,1328.0275,10.3782,179.8766,-1,-1); // Carro Público LV 2
  115.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2019"); BRADOKS_VEHICLES ++;
  116.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(585,2038.7369,1339.4006,10.3782,179.8766,-1,-1); // Carro Público LV 3
  117.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2020"); BRADOKS_VEHICLES ++;
  118.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(565,2038.7646,1352.3700,10.3776,179.8763,-1,-1); // Carro Público LV 4
  119.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2021"); BRADOKS_VEHICLES ++;
  120.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(585,2038.7971,1367.3813,10.3779,179.8762,-1,-1); // Carro Público LV 5
  121.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2022"); BRADOKS_VEHICLES ++;
  122.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(560,2038.8286,1382.0822,10.3781,179.8761,-1,-1); // Carro Público LV 6
  123.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2023"); BRADOKS_VEHICLES ++;
  124.  
  125.  
  126.     /*-- PORTÕES DO HOSPITAL DE LS PRÓXIMO AO GROOVE STREET --*/
  127.     PortaoHSLS[0] = CreateObject(2933,1999.9000000,-1442.5000000,14.3000000,0.0000000,0.0000000,316.0000000); //portão esquerdo p Original fechado
  128.     PortaoHSLS[1] = CreateObject(2933,2005.6000000,-1448.0000000,14.3000000,0.0000000,0.0000000,315.9950000); //portão direito p Original fechado
  129.  
  130.     /*-- PICKUPS --*/      
  131.     PickupBradoks[pEntradaDetranSF] = CreatePickup(19132, 1, 2364.3064,2377.5967,10.8203);
  132.     PickupBradoks[pSaidaDetranSF] = CreatePickup(1318, 1, 390.2981,173.7916,1008.3828);
  133.  
  134.     Create3DTextLabel("{FFD700}DETRAN\n{FFFFFF}De\n{2E8B57}San Fierro\n{FFFFFF}Aperte '{B22222}F{FFFFFF}' para Entrar", -1, 2364.3064,2377.5967,10.8203, 30.0, 0);
  135.     Create3DTextLabel("{FFD700}DETRAN\n{FFFFFF}De\n{2E8B57}San Fierro\n{FFFFFF}Aperte '{B22222}F{FFFFFF}' para Sair", -1, 390.2981,173.7916,1008.3828, 30.0, 0);
  136.     Create3DTextLabel("{FFD700}DETRAN\n{FFFFFF}De\n{2E8B57}San Fierro\n{FFFFFF}Consultas e Pagamentos de Multas", -1, 358.7964,178.6017,1008.3828, 20.0, 0);
  137.  
  138.     CheckBradoks[pCheckDetranMenu] = CPS_AddCheckpoint(358.7964,178.6017,1008.3828, 1.0, 20);
  139.     return 1;
  140. }
  141.  
  142. public OnGameModeExit()
  143. {
  144.     return 1;
  145. }
  146.  
  147. public OnPlayerRequestClass(playerid, classid)
  148. {
  149.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  150.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  151.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  152.     return 1;
  153. }
  154.  
  155. public OnPlayerConnect(playerid)
  156. {
  157.     SetPlayerMapIcon(playerid, 1, 2364.3064,2377.5967,10.8203, 24, 0, MAPICON_GLOBAL);
  158.     return 1;
  159. }
  160.  
  161. public OnPlayerDisconnect(playerid, reason)
  162. {
  163.     return 1;
  164. }
  165.  
  166. public OnPlayerSpawn(playerid)
  167. {
  168.     return 1;
  169. }
  170.  
  171. public OnPlayerDeath(playerid, killerid, reason)
  172. {
  173.     return 1;
  174. }
  175.  
  176. public OnVehicleSpawn(vehicleid)
  177. {
  178.     return 1;
  179. }
  180.  
  181. public OnVehicleDeath(vehicleid, killerid)
  182. {
  183.     return 1;
  184. }
  185.  
  186. public OnPlayerText(playerid, text[])
  187. {
  188.     return 1;
  189. }
  190.  
  191. public OnPlayerCommandText(playerid, cmdtext[])
  192. {
  193.     if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  194.     {
  195.         // Do something here
  196.         return 1;
  197.     }
  198.     return 0;
  199. }
  200.  
  201. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  202. {
  203.     return 1;
  204. }
  205.  
  206. public OnPlayerExitVehicle(playerid, vehicleid)
  207. {
  208.     return 1;
  209. }
  210.  
  211. public OnPlayerStateChange(playerid, newstate, oldstate)
  212. {
  213.  
  214.     return 1;
  215. }
  216.  
  217. public OnPlayerEnterCheckpoint(playerid)
  218. {
  219.     if(CPS_IsPlayerInCheckpoint(playerid, CheckBradoks[pCheckDetranMenu])) {/*-- Checkpoint Detran Menu --*/
  220.         ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN, DIALOG_STYLE_LIST, "DETRAN - SF", "Consultar Multas\nPagar Multas", "Selecionar", "Fechar");
  221.     }
  222.     return 1;
  223. }
  224.  
  225. public OnPlayerLeaveCheckpoint(playerid)
  226. {
  227.     return 1;
  228. }
  229.  
  230. public OnPlayerEnterRaceCheckpoint(playerid)
  231. {
  232.     return 1;
  233. }
  234.  
  235. public OnPlayerLeaveRaceCheckpoint(playerid)
  236. {
  237.     return 1;
  238. }
  239.  
  240. public OnRconCommand(cmd[])
  241. {
  242.     return 1;
  243. }
  244.  
  245. public OnPlayerRequestSpawn(playerid)
  246. {
  247.     return 1;
  248. }
  249.  
  250. public OnObjectMoved(objectid)
  251. {
  252.     return 1;
  253. }
  254.  
  255. public OnPlayerObjectMoved(playerid, objectid)
  256. {
  257.     return 1;
  258. }
  259.  
  260. public OnPlayerPickUpPickup(playerid, pickupid)
  261. {
  262.     if(pickupid == PickupBradoks[pEntradaDetranSF]) {
  263.         SendClientMessage(playerid, -1, "[ DETRAN SF ] {2F4F4F}Aperte {FFFFFF}'{2F4F4F}F{FFFFFF}' {2F4F4F}para entrar ou use: {FFFFFF}/entrar");
  264.     }
  265.     else if(pickupid == PickupBradoks[pSaidaDetranSF]) {
  266.         SendClientMessage(playerid, -1, "[ DETRAN SF ] {2F4F4F}Aperte {FFFFFF}'{2F4F4F}F{FFFFFF}' {2F4F4F}para sair ou use: {FFFFFF}/sair");
  267.     }
  268.     return 1;
  269. }
  270.  
  271. public OnVehicleMod(playerid, vehicleid, componentid)
  272. {
  273.     return 1;
  274. }
  275.  
  276. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  277. {
  278.     return 1;
  279. }
  280.  
  281. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  282. {
  283.     return 1;
  284. }
  285.  
  286. public OnPlayerSelectedMenuRow(playerid, row)
  287. {
  288.     return 1;
  289. }
  290.  
  291. public OnPlayerExitedMenu(playerid)
  292. {
  293.     return 1;
  294. }
  295.  
  296. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  297. {
  298.     return 1;
  299. }
  300.  
  301. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  302. {
  303.     if((newkeys == 2) && IsPlayerInAnyVehicle(playerid)) { /*-- Portão Esquerdo Abrindo --*/
  304.         if(IsPlayerInRangeOfPoint(playerid, 6.0, 2001.5627,-1434.9376,14.0625) || IsPlayerInRangeOfPoint(playerid, 6.0, 1992.9233,-1442.9767,13.1851)) {
  305.             if(PortaoHSLSEAberto == false) {
  306.                 MoveObject(PortaoHSLS[0], 1997.2000000,-1434.1000000,14.3000000, 5.0, 0.0000000,0.0000000,270.0000000);
  307.                 PortaoHSLSEAberto = true;
  308.             } else { /*-- Portão Esquerdo Fechando --*/
  309.                 MoveObject(PortaoHSLS[0], 1999.9000000,-1442.5000000,14.3000000, 5.0, 0.0000000,0.0000000,316.0000000);
  310.                 PortaoHSLSEAberto = false;
  311.             }
  312.         } /*-- Portão Direito Abrindo --*/
  313.         else if(IsPlayerInRangeOfPoint(playerid, 6.0, 2010.7794,-1446.5564,13.6373) || IsPlayerInRangeOfPoint(playerid, 6.0, 2001.3469,-1453.4921,13.2596)) {
  314.             if(PortaoHSLSDAberto == false) {
  315.                 MoveObject(PortaoHSLS[1], 2012.8000000,-1450.8000000,14.3000000, 5.0, 0.0000000,0.0000000,359.9940000);
  316.                 PortaoHSLSDAberto = true;
  317.             } else { /*-- Portão Direito Fechando --*/
  318.                 MoveObject(PortaoHSLS[1], 2005.6000000,-1448.0000000,14.3000000, 5.0, 0.0000000,0.0000000,315.9950000);
  319.                 PortaoHSLSDAberto = false;
  320.             }
  321.         }
  322.     }
  323.     if(newkeys == KEY_SECONDARY_ATTACK) {
  324.         if(IsPlayerInRangeOfPoint(playerid, 3.0, 2364.3064,2377.5967,10.8203)) { /*-- Entrada Detran SF --*/
  325.             SetPlayerInterior(playerid, 3);
  326.             SetPlayerFacingAngle(playerid, 89.4206);
  327.             SetPlayerPos(playerid, 387.3808,173.8342,1008.3828);           
  328.         }
  329.         else if(IsPlayerInRangeOfPoint(playerid, 3.0, 390.2981,173.7916,1008.3828)) { /*-- Saida Detran SF --*/
  330.             SetPlayerInterior(playerid, 0);
  331.             SetPlayerFacingAngle(playerid, 90.4796);
  332.             SetPlayerPos(playerid, 2361.9072,2377.7593,10.8203);
  333.         }
  334.     }  
  335.     return 1;
  336. }
  337.  
  338. public OnRconLoginAttempt(ip[], password[], success)
  339. {
  340.     return 1;
  341. }
  342.  
  343. public OnPlayerUpdate(playerid)
  344. {
  345.     return 1;
  346. }
  347.  
  348. public OnPlayerStreamIn(playerid, forplayerid)
  349. {
  350.     return 1;
  351. }
  352.  
  353. public OnPlayerStreamOut(playerid, forplayerid)
  354. {
  355.     return 1;
  356. }
  357.  
  358. public OnVehicleStreamIn(vehicleid, forplayerid)
  359. {
  360.     return 1;
  361. }
  362.  
  363. public OnVehicleStreamOut(vehicleid, forplayerid)
  364. {
  365.     return 1;
  366. }
  367.  
  368. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  369. {
  370.     switch(dialogid) {
  371.         case DIALOG_MENU_KIT: {
  372.             if(response) {
  373.                 switch(PlayerBradoks[playerid][pGang]) {
  374.                     case GANG_YAKUZA: {
  375.                         switch(listitem) {
  376.                             case 0: {
  377.                                 if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  378.                                 GivePlayerWeapon(playerid, 22, 10);
  379.                                 GivePlayerMoney(playerid, -1000);
  380.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  381.                                 return 1;
  382.                             }
  383.                             case 1: {
  384.                                 if(GetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  385.                                 GivePlayerWeapon(playerid, 25, 15);
  386.                                 GivePlayerMoney(playerid, -1500);
  387.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  388.                                 return 1;
  389.                             }
  390.                             case 2: {
  391.                                 if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  392.                                 GivePlayerWeapon(playerid, 28, 20);
  393.                                 GivePlayerMoney(playerid, -2000);
  394.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  395.                                 return 1;
  396.                             }
  397.                         }
  398.                     }
  399.                     case GANG_GROOVE_STREET: {
  400.                         switch(listitem) {
  401.                             case 0: {
  402.                                 if(GetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  403.                                 GivePlayerWeapon(playerid, 23, 15);
  404.                                 GivePlayerMoney(playerid, -1500);
  405.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  406.                                 return 1;
  407.                             }
  408.                             case 1: {
  409.                                 if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  410.                                 GivePlayerWeapon(playerid, 26, 20);
  411.                                 GivePlayerMoney(playerid, -2000);
  412.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  413.                                 return 1;
  414.                             }
  415.                             case 2: {
  416.                                 if(GetPlayerMoney(playerid) < 2500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  417.                                 GivePlayerWeapon(playerid, 29, 25);
  418.                                 GivePlayerMoney(playerid, -2500);
  419.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  420.                                 return 1;
  421.                             }
  422.                         }
  423.                     }
  424.                     case GANG_BALLAS: {
  425.                         switch(listitem) {
  426.                             case 0: {
  427.                                 if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  428.                                 GivePlayerWeapon(playerid, 24, 20);
  429.                                 GivePlayerMoney(playerid, -2000);
  430.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  431.                                 return 1;
  432.                             }
  433.                             case 1: {
  434.                                 if(GetPlayerMoney(playerid) < 2500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  435.                                 GivePlayerWeapon(playerid, 27, 25);
  436.                                 GivePlayerMoney(playerid, -2500);
  437.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  438.                                 return 1;
  439.                             }
  440.                             case 2: {
  441.                                 if(GetPlayerMoney(playerid) < 3000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  442.                                 GivePlayerWeapon(playerid, 32, 30);
  443.                                 GivePlayerMoney(playerid, -3000);
  444.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  445.                                 return 1;
  446.                             }
  447.                         }                  
  448.                     }
  449.                 }
  450.             }
  451.         }
  452.         case DIALOG_MENU_DETRAN: {
  453.             if(response) {
  454.                 switch(listitem) {
  455.                     case 0: { /*-- Consultar Multas --*/                   
  456.                         ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN_CONSULTAR, DIALOG_STYLE_INPUT, "{FFFFFF}DETRAN - SF Consultas de Multas", "{FFFFFF}Informe a placa do Veículo", "Consultar", "Voltar");
  457.                     }
  458.                     case 1: { /*-- Pagar Multas --*/
  459.                         ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN_PAGARMULTAS, DIALOG_STYLE_INPUT, "{FFFFFF}DETRAN - SF Pagamento de Multas", "{FFFFFF}Informe a placa do Veículo", "Consultar", "Voltar");
  460.                     }
  461.                 }
  462.             }
  463.         }
  464.         case DIALOG_MENU_DETRAN_CONSULTAR: {
  465.             if(response) { /*-- Clicou em Consultar --*/               
  466.                 Contagem[playerid] = false;
  467.                 for(new i = 1; i < BRADOKS_VEHICLES; i++) {
  468.                     if(strfind(GetVehicleNumberPlateEx(VeiculoBradoks[i][vVeiculoIDX]), inputtext, true) != -1) {
  469.                         new string[400];
  470.                         Contagem[playerid] = true;
  471.                         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}«",
  472.                         GetVehicleName(VeiculoBradoks[i][vVeiculoIDX]), GetVehicleNumberPlateEx(VeiculoBradoks[i][vVeiculoIDX]), VeiculoBradoks[i][vTotalMultas], VeiculoBradoks[i][vValorMulta]);
  473.                         ShowPlayerDialog(playerid, DIALOG_MULTAS, DIALOG_STYLE_MSGBOX, "{FFFFFF}DETRAN - SF Consultas de Multas", string, "Voltar", "Fechar");                             
  474.                     }
  475.                 }
  476.                 if(Contagem[playerid] == false) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Nenhum veículo encontrado com a placa informada !");
  477.             } else { /*-- Clicou em Voltar --*/
  478.                 ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN, DIALOG_STYLE_LIST, "DETRAN - SF", "Consultar Multas\nPagar Multas", "Selecionar", "Fechar");
  479.             }
  480.         }
  481.         case DIALOG_MULTAS: {
  482.             if(response) {             
  483.                 ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN, DIALOG_STYLE_LIST, "DETRAN - SF", "Consultar Multas\nPagar Multas", "Selecionar", "Fechar");
  484.             }
  485.         }
  486.         case DIALOG_MENU_DETRAN_PAGARMULTAS: {
  487.             if(response) { /*-- Clicou em Consultar --*/
  488.                 Contagem[playerid] = false;
  489.                 for(new i = 1; i < BRADOKS_VEHICLES; i++) {
  490.                     if(strfind(GetVehicleNumberPlateEx(VeiculoBradoks[i][vVeiculoIDX]), inputtext, true) != -1) {
  491.                         new string[400];
  492.                         PlayerBradoks[playerid][pIDdoVeiculo] = i;
  493.                         PlayerBradoks[playerid][pValorDaMulta] = VeiculoBradoks[i][vValorMulta];
  494.                         Contagem[playerid] = true;
  495.                         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}«",
  496.                         GetVehicleName(VeiculoBradoks[i][vVeiculoIDX]), GetVehicleNumberPlateEx(VeiculoBradoks[i][vVeiculoIDX]), VeiculoBradoks[i][vTotalMultas], VeiculoBradoks[i][vValorMulta]);
  497.                         ShowPlayerDialog(playerid, DIALOG_PAGAR_MULTAS, DIALOG_STYLE_MSGBOX, "{FFFFFF}DETRAN - SF Consultas de Multas", string, "Pagar", "Voltar");    
  498.                     }
  499.                 }
  500.                 if(Contagem[playerid] == false) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Nenhum veículo encontrado com a placa informada !");
  501.             } else {
  502.                 ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN, DIALOG_STYLE_LIST, "DETRAN - SF", "Consultar Multas\nPagar Multas", "Selecionar", "Fechar");
  503.             }
  504.         }
  505.         case DIALOG_PAGAR_MULTAS: {
  506.             if(response) {
  507.                 if(GetPlayerMoney(playerid) < PlayerBradoks[playerid][pValorDaMulta]) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  508.                 GivePlayerMoney(playerid, -PlayerBradoks[playerid][pValorDaMulta]);
  509.                 VeiculoBradoks[PlayerBradoks[playerid][pIDdoVeiculo]][vValorMulta] = 0;
  510.                 VeiculoBradoks[PlayerBradoks[playerid][pIDdoVeiculo]][vTotalMultas] = 0;
  511.                 SendClientMessage(playerid, -1, "[>] {006400}Todas as multas do veículo foram pagas !");
  512.                 return 1;
  513.             } else {
  514.                 ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN, DIALOG_STYLE_LIST, "DETRAN - SF", "Consultar Multas\nPagar Multas", "Selecionar", "Fechar");
  515.             }
  516.         }
  517.     }
  518.     return 1;
  519. }
  520.  
  521. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  522. {
  523.     return 1;
  524. }
  525.  
  526. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  527. {
  528.     new string[128], aname[MAX_PLAYER_NAME];
  529.     GetPlayerName(playerid, aname, sizeof(aname));
  530.     format(string, sizeof(string), "O(A) player %s foi para a posição %f %f %f", aname, fX, fY, fZ);
  531.     SendClientMessageToAll(-1, string);
  532.     SetPlayerPosFindZ(playerid, fX, fY, fZ);
  533.     return 1;
  534. }
  535.  
  536.  
  537. /*-- Comandos --*/
  538.  
  539. CMD:setgang(playerid, params[]) {
  540.     new id, gang, aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], string[128];
  541.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não tem acesso a este comando !");
  542.     if(sscanf(params, "dd", id, gang)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Use: /setgang [playerid] [(1: Yakuza) - (2: Groove Street) - (3: Ballas)]");
  543.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Este player não está conectado !");
  544.     if(PlayerBradoks[id][pGang] == gang) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Este player já faz parte desta gang !");
  545.     GetPlayerName(playerid, aname, sizeof(aname));
  546.     GetPlayerName(playerid, pname, sizeof(pname));
  547.  
  548.     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"));
  549.     SendClientMessageToAll(-1, string);
  550.  
  551.     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"));
  552.     SendClientMessage(playerid, -1, string);
  553.     PlayerBradoks[id][pGang] = gang;
  554.     return 1;
  555. }
  556.  
  557. CMD:kit(playerid) {
  558.     switch(PlayerBradoks[playerid][pGang]) {
  559.         case GANG_YAKUZA: {
  560.             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\
  561.             {ffffff}Pistola 9MM\t{ffffff}10\t{00FF7F}R$ {ffffff}1000\n\
  562.             {ffffff}Espingarda\t{ffffff}15\t{00FF7F}R$ {ffffff}1500\n\
  563.             {ffffff}Micro SMG\t{ffffff}20\t{00FF7F}R$ {ffffff}2000",
  564.             "Comprar", "Cancelar");
  565.         }
  566.         case GANG_GROOVE_STREET: {
  567.             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\
  568.              {ffffff}Pistola 9MM C/ Silenciador\t{ffffff}15\t{00FF7F}R$ {ffffff}1500\n\
  569.              {ffffff}Shotgun Sawnoff\t{ffffff}20\t{00FF7F}R$ {ffffff}2000\n\
  570.              {ffffff}MP5\t{ffffff}25\t{00FF7F}R$ {ffffff}2500",
  571.              "Comprar", "Cancelar");
  572.         }
  573.         case GANG_BALLAS: {
  574.             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\
  575.              {ffffff}Desert Eagle\t{ffffff}20\t{00FF7F}R$ {ffffff}2000\n\
  576.              {ffffff}Combat Shotgun\t{ffffff}25\t{00FF7F}R$ {ffffff}2500\n\
  577.              {ffffff}Tec-9\t{ffffff}30\t{00FF7F}R$ {ffffff}3000",
  578.              "Comprar", "Cancelar");           
  579.         }
  580.         default: SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não tem acesso a este comando !");
  581.     }
  582.     return 1;
  583. }
  584.  
  585. CMD:dargrana(playerid, params[]) {
  586.     new id, grana;
  587.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não tem acesso a este comando !");
  588.     if(sscanf(params, "dd", id, grana)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Use: /dargrana [playerid] [valor]");
  589.     GivePlayerMoney(id, grana);
  590.     SendClientMessage(playerid, -1, "[•»] {00FF7F}Dinheiro enviado com sucesso !");
  591.     return 1;
  592. }
  593.  
  594. CMD:criarveiculo(playerid, params[]) {
  595.     new idveiculo, cor[2], placa[9], Float:Pos[4], string[140];
  596.     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]");
  597.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  598.     GetPlayerFacingAngle(playerid, Pos[3]);
  599.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(idveiculo, Pos[0], Pos[1], Pos[2], Pos[3], cor[0], cor[1]);
  600.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], placa); BRADOKS_VEHICLES++;
  601.     format(string, sizeof(string), "[x] Veiculo (ID Geral: %d) - (ID Interno: %d) - (Placa: %s) criado com sucesso !", idveiculo, VeiculoBradoks[idveiculo][vVeiculoIDX], placa);
  602.     SendClientMessage(playerid, -1, string);
  603.     return 1;
  604. }
  605.  
  606. CMD:pegarplaca(playerid) {
  607.     new string[148];
  608.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não está dentro de um veiculo !");
  609.     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)));
  610.     SendClientMessage(playerid, -1, string);
  611.     return 1;
  612. }
  613.  
  614. CMD:multas(playerid) {
  615.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não está dentro de um veiculo !");
  616.     new string[400];
  617.     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}«",
  618.      GetVehicleName(VeiculoBradoks[GetPlayerVehicleID(playerid)][vVeiculoIDX]), GetVehicleNumberPlateEx(GetPlayerVehicleID(playerid)), VeiculoBradoks[GetPlayerVehicleID(playerid)][vTotalMultas], VeiculoBradoks[GetPlayerVehicleID(playerid)][vValorMulta]);
  619.     ShowPlayerDialog(playerid, DIALOG_MULTAS, DIALOG_STYLE_MSGBOX, "{FFFFFF}Menu de Multas", string, "", "Fechar");
  620.     return 1;
  621. }
  622.  
  623. CMD:entrar(playerid) {
  624.     if(IsPlayerInRangeOfPoint(playerid, 3.0, 2364.3064,2377.5967,10.8203)) { /*-- Entrada Detran SF --*/
  625.         SetPlayerInterior(playerid, 3);
  626.         SetPlayerFacingAngle(playerid, 89.4206);
  627.         SetPlayerPos(playerid, 387.3808,173.8342,1008.3828);           
  628.     }
  629.     return 1;
  630. }
  631.  
  632. CMD:sair(playerid) {
  633.     if(IsPlayerInRangeOfPoint(playerid, 3.0, 390.2981,173.7916,1008.3828)) { /*-- Saida Detran SF --*/
  634.         SetPlayerInterior(playerid, 0);
  635.         SetPlayerFacingAngle(playerid, 90.4796);
  636.         SetPlayerPos(playerid, 2361.9072,2377.7593,10.8203);
  637.     }
  638.     return 1;
  639. }
  640.  
  641. stock SetVehicleNumberPlateEx(carid, plate[]) {
  642.     format(VeiculoBradoks[carid][vPlaca], 9, "%s", plate);
  643.     SetVehicleNumberPlate(carid, VeiculoBradoks[carid][vPlaca]);
  644.     SetVehicleToRespawn(carid);
  645.     return 1;
  646. }
  647.  
  648. stock GetVehicleNumberPlateEx(carid) {
  649.     new plate[9];
  650.     for(new i = 0; i < 9; i++) {
  651.         strcat(plate, VeiculoBradoks[carid][vPlaca][i]);
  652.     }
  653.     return plate;
  654. }
  655.  
  656. public UpdateRadar() {
  657.     for(new i = 0, j = GetPlayerPoolSize(); i <= j; ++i) {
  658.         if(IsPlayerInAnyVehicle(i) && PlayerBradoks[i][pMulta] == false) {
  659.             if(IsPlayerInRangeOfPoint(i, 11.0, 2046.2222,1339.4756,10.6719) || IsPlayerInRangeOfPoint(i, 11.0, 2068.6826,1417.1683,10.6719)) {
  660.                 if(GetVehicleSpeed(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]) >= 61) {
  661.                     new string[128], Taxa = 20, Tempo = 20;
  662.                     SendClientMessage(i, -1, "{FF0000}•{FFFFFF}»{FFD700}------------------------- {FF0000}RADAR {FFD700}-------------------------{FF0000}•{FFFFFF}«");
  663.                     format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Veículo %s", GetVehicleName(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]));
  664.                     SendClientMessage(i, -1, string);
  665.                     format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Placa %s", GetVehicleNumberPlateEx(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]));
  666.                     SendClientMessage(i, -1, string);
  667.                     SendClientMessage(i, -1, "{FF0000}•{FFFFFF}»{FFD700} Velocidade Permitida 60 KM/H");
  668.                     format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Velocidade Registrada %d KM/H", GetVehicleSpeed(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]));
  669.                     SendClientMessage(i, -1, string);
  670.                     format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Valor da Multa %d", ((GetVehicleSpeed(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]) * Taxa * Tempo) /100));
  671.                     SendClientMessage(i, -1, string);
  672.                     SendClientMessage(i, -1, "{FF0000}•{FFFFFF}»{FFD700}------------------------- {FF0000}RADAR {FFD700}-------------------------{FF0000}•{FFFFFF}«");
  673.                     VeiculoBradoks[GetPlayerVehicleID(i)][vValorMulta] += ((GetVehicleSpeed(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]) * Taxa * Tempo) /100);
  674.                     VeiculoBradoks[GetPlayerVehicleID(i)][vTotalMultas]++;
  675.                     PlayerBradoks[i][pMulta] = true;               
  676.                     PlayerBradoks[i][pTimerMulta] = SetTimerEx("LiberarPlayerMulta", 2000, false, "i", i);
  677.                     return 1;
  678.                 } else {
  679.                     new string[128];
  680.                     format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Velocidade Registrada: %d KM/H", GetVehicleSpeed(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]));
  681.                     SendClientMessage(i, -1, string);
  682.                     PlayerBradoks[i][pMulta] = true;
  683.                     PlayerBradoks[i][pTimerMulta] = SetTimerEx("LiberarPlayerMulta", 2000, false, "i", i);
  684.                     return 1;  
  685.                 }
  686.             }
  687.         }
  688.     }
  689.     return 1;
  690. }
  691.  
  692. GetVehicleSpeed(vehicleid) {
  693.     new Float:Vx, Float:Vy, Float:Vz;
  694.     GetVehicleVelocity(vehicleid, Vx, Vy, Vz);
  695.     new Float:rtn;
  696.     rtn = floatsqroot(floatpower(Vx*100,2) + floatpower(Vy*100,2));
  697.     rtn = floatsqroot(floatpower(rtn,2) + floatpower(Vz*100,2));
  698.     return floatround(rtn);
  699. }
  700.  
  701. stock GetVehicleName(vehicleid)
  702. {
  703.     new string[50];
  704.     format(string,sizeof(string),"%s", VehicleNames[GetVehicleModel(vehicleid) - 400]);
  705.     return string;
  706. }
  707.  
  708. public LiberarPlayerMulta(playerid) {
  709.     if(PlayerBradoks[playerid][pMulta] == true) {
  710.         KillTimer(PlayerBradoks[playerid][pTimerMulta]);
  711.         PlayerBradoks[playerid][pMulta] = false;
  712.         return 1;  
  713.     }
  714.     return 1;
  715. }
Advertisement
Add Comment
Please, Sign In to add comment