LeonardoBradoks

Criando sistema de registro e login

Oct 3rd, 2018
1,023
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 40.97 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. #include <DOF2>
  10.  
  11. /*-- definições de gangs --*/
  12. #define GANG_YAKUZA                                                 1
  13. #define GANG_GROOVE_STREET                                          2
  14. #define GANG_BALLAS                                                 3
  15.  
  16. /*-- definições de pastas --*/
  17. #define PASTA_CONTAS                                                "Contas/%s.ini"
  18.  
  19. /*-- definições de menus --*/
  20. #define DIALOG_MENU_KIT                                             1001
  21. #define DIALOG_MULTAS                                               1002
  22. #define DIALOG_MENU_DETRAN                                          1003
  23. #define DIALOG_MENU_DETRAN_CONSULTAR                                1004
  24. #define DIALOG_MENU_DETRAN_PAGARMULTAS                              1005
  25. #define DIALOG_PAGAR_MULTAS                                         1006
  26. #define DIALOG_REGISTRO                                             1007
  27. #define DIALOG_LOGIN                                                1008
  28.  
  29.  
  30.  
  31. forward UpdateRadar();
  32. forward LiberarPlayerMulta(playerid);
  33.  
  34. enum pBradoks {
  35.     pGang,
  36.     bool:pMulta = false,
  37.     pTimerMulta,
  38.     pValorDaMulta,
  39.     pIDdoVeiculo,
  40.     pSenhaInvalida
  41. }
  42. new PlayerBradoks[MAX_PLAYERS][pBradoks];
  43. new BRADOKS_VEHICLES = 1;
  44. new bool:Contagem[MAX_PLAYERS] = false;
  45.  
  46. new RankClassNames[][] = { /*-- 52 PATENTES --*/
  47.     "Novato"               , "Taifeiro 2ª Classe"   , "Taifeiro 1ª Classe"   , "Cabo"                 , "Sargento"             , 
  48.     "Terceiro-Sargento 1"  , "Terceiro-Sargento 2"  , "Terceiro-Sargento 3"  , "Segundo-Sargento 1"   , "Segundo-Sargento 2"   ,
  49.     "Segundo-Sargento 3"   , "Segundo-Sargento 4"   , "Primeiro-Sargento 1"  , "Primeiro-Sargento 2"  , "Primeiro-Sargento 3"  ,
  50.     "Primeiro-Sargento 4"  , "Primeiro-Sargento 5"  , "Segundo-Tenente 1"    , "Segundo-Tenente 2"    , "Segundo-Tenente 3"    ,
  51.     "Segundo-Tenente 4"    , "Primeiro-Tenente 1"   , "Primeiro-Tenente 2"   , "Primeiro-Tenente 3"   , "Primeiro-Tenente 4"   ,
  52.     "Primeiro-Tenente 5"   , "Capitão 1"            , "Capitão 2"            , "Capitão 3"            , "Capitão 4"            ,
  53.     "Capitão 5"            , "Major 1"              , "Major 2"              , "Major 3"              , "Major 4"              ,
  54.     "Major 5"              , "Tenente-Coronel 1"    , "Tenente-Coronel 2"    , "Tenente-Coronel 3"    , "Tenente-Coronel 4"    ,
  55.     "Tenente-Coronel 5"    , "Coronel 1"            , "Coronel 2"            , "Coronel 3"            , "Coronel 4"            ,
  56.     "Coronel 5"            , "General de Brigada"   , "General de Divisão"   , "General de Exército"  , "Marechal"             ,
  57.     "Herói de Guerra"      , "Lendário"
  58. };
  59.  
  60. new RankClassColors[] = { /*-- 52 CORES --*/
  61.     0xFFFFFFAA, 0x400040AA, 0xC0C0C0AA, 0x408080AA, 0x808080AA,
  62.     0x808040AA, 0x808000AA, 0x000000AA, 0x400080AA, 0x8C008CAA,
  63.     0x000040AA, 0x000080AA, 0x004040AA, 0x004000AA, 0x804000AA,
  64.     0x400000AA, 0x8000FFAA, 0x800080AA, 0x0000A0AA, 0x0000FFAA,
  65.     0x008040AA, 0x008000AA, 0xFF8000AA, 0x800000AA, 0xFF0080AA,
  66.     0x800040AA, 0x8080FFAA, 0x004080AA, 0x008080AA, 0x00FF00AA,
  67.     0xFF8040AA, 0x804040AA, 0xFF00FFAA, 0x8080C0AA, 0x0080C0AA,
  68.     0x00FFFFAA, 0x00FF40AA, 0x80FF00AA, 0xFFFF00AA, 0xFF0000AA,
  69.     0xFF80FFAA, 0xFF80C0AA, 0x0080FFAA, 0x80FFFFAA, 0x00FF80AA,
  70.     0x80FF80AA, 0xFFFF80AA, 0xFF8080AA, 0xCC0066AA, 0xFF4242AA,
  71.     0xF90000AA, 0xDD0000AA
  72. };
  73.  
  74. enum vBradoks {
  75.     vVeiculoIDX,
  76.     vPlaca[9],
  77.     vValorMulta,
  78.     vTotalMultas,
  79. }
  80. new VeiculoBradoks[MAX_VEHICLES][vBradoks];
  81.  
  82. new PortaoHSLS[2],
  83.     bool:PortaoHSLSEAberto = false,
  84.     bool:PortaoHSLSDAberto = false;
  85.  
  86. enum pPickupID {
  87.     pEntradaDetranSF,
  88.     pSaidaDetranSF
  89. }
  90. new PickupBradoks[pPickupID];
  91.  
  92. enum pCheckID {
  93.     pCheckDetranMenu
  94. }
  95. new CheckBradoks[pCheckID];
  96.  
  97. new VehicleNames[][] =
  98. {
  99.     "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel",
  100.     "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
  101.     "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
  102.     "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection",
  103.     "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
  104.     "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
  105.     "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
  106.     "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
  107.     "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van",
  108.     "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale",
  109.     "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
  110.     "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
  111.     "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper",
  112.     "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
  113.     "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin",
  114.     "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT",
  115.     "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt",
  116.     "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
  117.     "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
  118.     "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer",
  119.     "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
  120.     "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
  121.     "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
  122.     "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium",
  123.     "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  124.     "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper",
  125.     "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400",
  126.     "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
  127.     "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car",
  128.     "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha",
  129.     "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
  130.     "Tiller", "Utility Trailer"
  131. };
  132.  
  133. main()
  134. {
  135.     print("\n----------------------------------");
  136.     print(" Blank Gamemode by your name here");
  137.     print("----------------------------------\n");
  138. }
  139.  
  140. public OnGameModeInit()
  141. {
  142.     SetGameModeText("Blank Script");
  143.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  144.     SetTimer("UpdateRadar", 400, true);
  145.     DisableInteriorEnterExits();
  146.  
  147.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(560,2038.6934,1319.2219,10.3783,179.8767,-1,-1); // Carro Público LV 1
  148.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2018"); BRADOKS_VEHICLES ++;
  149.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(565,2038.7120,1328.0275,10.3782,179.8766,-1,-1); // Carro Público LV 2
  150.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2019"); BRADOKS_VEHICLES ++;
  151.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(585,2038.7369,1339.4006,10.3782,179.8766,-1,-1); // Carro Público LV 3
  152.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2020"); BRADOKS_VEHICLES ++;
  153.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(565,2038.7646,1352.3700,10.3776,179.8763,-1,-1); // Carro Público LV 4
  154.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2021"); BRADOKS_VEHICLES ++;
  155.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(585,2038.7971,1367.3813,10.3779,179.8762,-1,-1); // Carro Público LV 5
  156.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2022"); BRADOKS_VEHICLES ++;
  157.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(560,2038.8286,1382.0822,10.3781,179.8761,-1,-1); // Carro Público LV 6
  158.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], "PUB-2023"); BRADOKS_VEHICLES ++;
  159.  
  160.  
  161.     /*-- PORTÕES DO HOSPITAL DE LS PRÓXIMO AO GROOVE STREET --*/
  162.     PortaoHSLS[0] = CreateObject(2933,1999.9000000,-1442.5000000,14.3000000,0.0000000,0.0000000,316.0000000); //portão esquerdo p Original fechado
  163.     PortaoHSLS[1] = CreateObject(2933,2005.6000000,-1448.0000000,14.3000000,0.0000000,0.0000000,315.9950000); //portão direito p Original fechado
  164.  
  165.     /*-- RADARES --*/
  166.     CreateObject(18880, 2055.10352, 1338.94104, 9.85640, 0.00000, 0.00000, 0.00000);
  167.     CreateObject(18880, 2037.11914, 1338.99243, 9.85640, 0.00000, 0.00000, 0.00000);
  168.     CreateObject(18880, 2077.61694, 1417.69373, 9.85640, 0.00000, 0.00000, -180.09801);
  169.     CreateObject(18880, 2059.66455, 1417.75464, 9.85640, 0.00000, 0.00000, -180.09801);
  170.  
  171.     /*-- PICKUPS --*/
  172.     PickupBradoks[pEntradaDetranSF] = CreatePickup(19132, 1, 2364.3064,2377.5967,10.8203);
  173.     PickupBradoks[pSaidaDetranSF] = CreatePickup(1318, 1, 390.2981,173.7916,1008.3828);
  174.  
  175.     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);
  176.     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);
  177.     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);
  178.  
  179.     CheckBradoks[pCheckDetranMenu] = CPS_AddCheckpoint(358.7964,178.6017,1008.3828, 1.0, 20);
  180.     return 1;
  181. }
  182.  
  183. public OnGameModeExit()
  184. {
  185.     DOF2_Exit();
  186.     return 1;
  187. }
  188.  
  189. public OnPlayerRequestClass(playerid, classid)
  190. {
  191.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  192.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  193.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  194.     new string[500];
  195.     if(DOF2_FileExists(GetPlayerAccount(playerid))) {
  196.         /*-- Login --*/
  197.         format(string, sizeof(string), "{FFFFFF}Seja bem-vindo(a) novamente ao: {ffbc59}Brasil Leonardo Bradoks v1.0!\n\n{FFFFFF}Status: {00FF00}Conta registrada\n\n{FFFFFF}Nick: {FF0000}%s\n{FFFFFF}Level: {FF0000}%d\n{FFFFFF}Patente: {FF0000}%s\n\n{ffbc59}* {FFFFFF}Insira sua senha para efetuar login! {ffbc59}*", GetPlayerNome(playerid), DOF2_GetInt(GetPlayerAccount(playerid), "Level"), DOF2_GetString(GetPlayerAccount(playerid), "Patente"));
  198.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "[LBS] Sistema de Login", string, "Entrar", "Recuperar");
  199.     } else {
  200.         /*-- Registro --*/
  201.         format(string, sizeof(string), "{FFFFFF}Seja bem-vindo(a) ao: {ffbc59}Brasil Leonardo Bradoks v1.0!\n\n{FFFFFF}Status: {FF0000}Conta não registrada\n\n{FFFFFF}Nick: {FF0000}%s\n\n{ffbc59}* {FFFFFF}Insira uma senha para registrar sua conta! {ffbc59}*", GetPlayerNome(playerid));
  202.         ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "[LBS] Sistema de Registro", string, "Registrar", "Sair");
  203.     }
  204.     return 1;
  205. }
  206.  
  207. public OnPlayerConnect(playerid)
  208. {
  209.     SetPlayerMapIcon(playerid, 1, 2364.3064,2377.5967,10.8203, 24, 0, MAPICON_GLOBAL);
  210.     return 1;
  211. }
  212.  
  213. public OnPlayerDisconnect(playerid, reason)
  214. {
  215.     PlayerBradoks[playerid][pSenhaInvalida] = 0;
  216.     return 1;
  217. }
  218.  
  219. public OnPlayerSpawn(playerid)
  220. {
  221.     new string[128];
  222.     format(string, sizeof(string), "{4169E1}Olá {FFFFFF}%s {4169E1}seja bem vindo(a)%sPatente: {FFFFFF}%s", GetPlayerNome(playerid), GetPlayerScore(playerid) == 0 ? (" ") : (" novamente "), RankClassNames[GetPlayerPatente(playerid)]);
  223.     SendClientMessage(playerid, -1, string);
  224.     SetPlayerColor(playerid, RankClassColors[GetPlayerPatente(playerid)]);
  225.     return 1;
  226. }
  227.  
  228. public OnPlayerDeath(playerid, killerid, reason)
  229. {
  230.     return 1;
  231. }
  232.  
  233. public OnVehicleSpawn(vehicleid)
  234. {
  235.     return 1;
  236. }
  237.  
  238. public OnVehicleDeath(vehicleid, killerid)
  239. {
  240.     return 1;
  241. }
  242.  
  243. public OnPlayerText(playerid, text[])
  244. {
  245.     return 1;
  246. }
  247.  
  248. public OnPlayerCommandText(playerid, cmdtext[])
  249. {
  250.     if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  251.     {
  252.         // Do something here
  253.         return 1;
  254.     }
  255.     return 0;
  256. }
  257.  
  258. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  259. {
  260.     return 1;
  261. }
  262.  
  263. public OnPlayerExitVehicle(playerid, vehicleid)
  264. {
  265.     return 1;
  266. }
  267.  
  268. public OnPlayerStateChange(playerid, newstate, oldstate)
  269. {
  270.  
  271.     return 1;
  272. }
  273.  
  274. public OnPlayerEnterCheckpoint(playerid)
  275. {
  276.     if(CPS_IsPlayerInCheckpoint(playerid, CheckBradoks[pCheckDetranMenu])) {/*-- Checkpoint Detran Menu --*/
  277.         ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN, DIALOG_STYLE_LIST, "DETRAN - SF", "Consultar Multas\nPagar Multas", "Selecionar", "Fechar");
  278.     }
  279.     return 1;
  280. }
  281.  
  282. public OnPlayerLeaveCheckpoint(playerid)
  283. {
  284.     return 1;
  285. }
  286.  
  287. public OnPlayerEnterRaceCheckpoint(playerid)
  288. {
  289.     return 1;
  290. }
  291.  
  292. public OnPlayerLeaveRaceCheckpoint(playerid)
  293. {
  294.     return 1;
  295. }
  296.  
  297. public OnRconCommand(cmd[])
  298. {
  299.     return 1;
  300. }
  301.  
  302. public OnPlayerRequestSpawn(playerid)
  303. {
  304.     return 1;
  305. }
  306.  
  307. public OnObjectMoved(objectid)
  308. {
  309.     return 1;
  310. }
  311.  
  312. public OnPlayerObjectMoved(playerid, objectid)
  313. {
  314.     return 1;
  315. }
  316.  
  317. public OnPlayerPickUpPickup(playerid, pickupid)
  318. {
  319.     if(pickupid == PickupBradoks[pEntradaDetranSF]) {
  320.         SendClientMessage(playerid, -1, "[ DETRAN SF ] {2F4F4F}Aperte {FFFFFF}'{2F4F4F}F{FFFFFF}' {2F4F4F}para entrar ou use: {FFFFFF}/entrar");
  321.     }
  322.     else if(pickupid == PickupBradoks[pSaidaDetranSF]) {
  323.         SendClientMessage(playerid, -1, "[ DETRAN SF ] {2F4F4F}Aperte {FFFFFF}'{2F4F4F}F{FFFFFF}' {2F4F4F}para sair ou use: {FFFFFF}/sair");
  324.     }
  325.     return 1;
  326. }
  327.  
  328. public OnVehicleMod(playerid, vehicleid, componentid)
  329. {
  330.     return 1;
  331. }
  332.  
  333. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  334. {
  335.     return 1;
  336. }
  337.  
  338. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  339. {
  340.     return 1;
  341. }
  342.  
  343. public OnPlayerSelectedMenuRow(playerid, row)
  344. {
  345.     return 1;
  346. }
  347.  
  348. public OnPlayerExitedMenu(playerid)
  349. {
  350.     return 1;
  351. }
  352.  
  353. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  354. {
  355.     return 1;
  356. }
  357.  
  358. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  359. {
  360.     if((newkeys == 2) && IsPlayerInAnyVehicle(playerid)) { /*-- Portão Esquerdo Abrindo --*/
  361.         if(IsPlayerInRangeOfPoint(playerid, 6.0, 2001.5627,-1434.9376,14.0625) || IsPlayerInRangeOfPoint(playerid, 6.0, 1992.9233,-1442.9767,13.1851)) {
  362.             if(PortaoHSLSEAberto == false) {
  363.                 MoveObject(PortaoHSLS[0], 1997.2000000,-1434.1000000,14.3000000, 5.0, 0.0000000,0.0000000,270.0000000);
  364.                 PortaoHSLSEAberto = true;
  365.             } else { /*-- Portão Esquerdo Fechando --*/
  366.                 MoveObject(PortaoHSLS[0], 1999.9000000,-1442.5000000,14.3000000, 5.0, 0.0000000,0.0000000,316.0000000);
  367.                 PortaoHSLSEAberto = false;
  368.             }
  369.         } /*-- Portão Direito Abrindo --*/
  370.         else if(IsPlayerInRangeOfPoint(playerid, 6.0, 2010.7794,-1446.5564,13.6373) || IsPlayerInRangeOfPoint(playerid, 6.0, 2001.3469,-1453.4921,13.2596)) {
  371.             if(PortaoHSLSDAberto == false) {
  372.                 MoveObject(PortaoHSLS[1], 2012.8000000,-1450.8000000,14.3000000, 5.0, 0.0000000,0.0000000,359.9940000);
  373.                 PortaoHSLSDAberto = true;
  374.             } else { /*-- Portão Direito Fechando --*/
  375.                 MoveObject(PortaoHSLS[1], 2005.6000000,-1448.0000000,14.3000000, 5.0, 0.0000000,0.0000000,315.9950000);
  376.                 PortaoHSLSDAberto = false;
  377.             }
  378.         }
  379.     }
  380.     if(newkeys == KEY_SECONDARY_ATTACK) {
  381.         if(IsPlayerInRangeOfPoint(playerid, 3.0, 2364.3064,2377.5967,10.8203)) { /*-- Entrada Detran SF --*/
  382.             SetPlayerInterior(playerid, 3);
  383.             SetPlayerFacingAngle(playerid, 89.4206);
  384.             SetPlayerPos(playerid, 387.3808,173.8342,1008.3828);
  385.         }
  386.         else if(IsPlayerInRangeOfPoint(playerid, 3.0, 390.2981,173.7916,1008.3828)) { /*-- Saida Detran SF --*/
  387.             SetPlayerInterior(playerid, 0);
  388.             SetPlayerFacingAngle(playerid, 90.4796);
  389.             SetPlayerPos(playerid, 2361.9072,2377.7593,10.8203);
  390.         }
  391.     }
  392.     return 1;
  393. }
  394.  
  395. public OnRconLoginAttempt(ip[], password[], success)
  396. {
  397.     return 1;
  398. }
  399.  
  400. public OnPlayerUpdate(playerid)
  401. {
  402.     return 1;
  403. }
  404.  
  405. public OnPlayerStreamIn(playerid, forplayerid)
  406. {
  407.     return 1;
  408. }
  409.  
  410. public OnPlayerStreamOut(playerid, forplayerid)
  411. {
  412.     return 1;
  413. }
  414.  
  415. public OnVehicleStreamIn(vehicleid, forplayerid)
  416. {
  417.     return 1;
  418. }
  419.  
  420. public OnVehicleStreamOut(vehicleid, forplayerid)
  421. {
  422.     return 1;
  423. }
  424.  
  425. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  426. {
  427.     switch(dialogid) {
  428.         case DIALOG_LOGIN: {
  429.             if(response) { /*-- BOTÃO DE ENTRAR --*/
  430.                 if(!strlen(inputtext)) {
  431.                     new string[500];
  432.                     SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não digitou sua senha para entrar na sua conta !");
  433.                     format(string, sizeof(string), "{FFFFFF}Seja bem-vindo(a) novamente ao: {ffbc59}Brasil Leonardo Bradoks v1.0!\n\n{FFFFFF}Status: {00FF00}Conta registrada\n\n{FFFFFF}Nick: {FF0000}%s\n{FFFFFF}Level: {FF0000}%d\n{FFFFFF}Patente: {FF0000}%s\n\n{ffbc59}* {FFFFFF}Insira sua senha para efetuar login! {ffbc59}*", GetPlayerNome(playerid), DOF2_GetInt(GetPlayerAccount(playerid), "Level"), DOF2_GetString(GetPlayerAccount(playerid), "Patente"));
  434.                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "[LBS] Sistema de Login", string, "Entrar", "Recuperar");
  435.                 } else {
  436.                     if(strfind(inputtext, DOF2_GetString(GetPlayerAccount(playerid), "Senha"), true) != -1) {
  437.                         SendClientMessage(playerid, -1, "[•»] {ffbc59}Login efetuado com sucesso, tenha um bom jogo !");
  438.                         SpawnPlayer(playerid);
  439.                         return 1;
  440.                     } else {
  441.                         PlayerBradoks[playerid][pSenhaInvalida]++;
  442.                         if(PlayerBradoks[playerid][pSenhaInvalida] == 3) return Kick(playerid);
  443.                         new string[500];
  444.                         format(string, sizeof(string), "[ ERRO ] {FF0000}Senha inválida ! tentativas [{FFFFFF}%d{FF0000}/{FFFFFF}3]", PlayerBradoks[playerid][pSenhaInvalida]);
  445.                         SendClientMessage(playerid, -1, string);
  446.                         format(string, sizeof(string), "{FFFFFF}Seja bem-vindo(a) novamente ao: {ffbc59}Brasil Leonardo Bradoks v1.0!\n\n{FFFFFF}Status: {00FF00}Conta registrada\n\n{FFFFFF}Nick: {FF0000}%s\n{FFFFFF}Level: {FF0000}%d\n{FFFFFF}Patente: {FF0000}%s\n\n{ffbc59}* {FFFFFF}Insira sua senha para efetuar login! {ffbc59}*", GetPlayerNome(playerid), DOF2_GetInt(GetPlayerAccount(playerid), "Level"), DOF2_GetString(GetPlayerAccount(playerid), "Patente"));
  447.                         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "[LBS] Sistema de Login", string, "Entrar", "Recuperar");  
  448.                     }
  449.                 }
  450.             } else { /*-- BOTÃO DE RECUPERAR --*/
  451.  
  452.             }
  453.         }
  454.         case DIALOG_REGISTRO: {
  455.             if(response) { /*-- BOTÃO DE REGISTRAR --*/
  456.                 if(!strlen(inputtext)) {
  457.                     new string[500];
  458.                     SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não digitou uma senha para registrar sua conta !");
  459.                     format(string, sizeof(string), "{FFFFFF}Seja bem-vindo(a) ao: {ffbc59}Brasil Leonardo Bradoks v1.0!\n\n{FFFFFF}Status: {FF0000}Conta não registrada\n\n{FFFFFF}Nick: {FF0000}%s\n\n{ffbc59}* {FFFFFF}Insira uma senha para registrar sua conta! {ffbc59}*", GetPlayerNome(playerid));
  460.                     ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "[LBS] Sistema de Registro", string, "Registrar", "Sair");
  461.                 } else {
  462.                     DOF2_CreateFile(GetPlayerAccount(playerid));
  463.                     DOF2_SetString(GetPlayerAccount(playerid), "Nick", GetPlayerNome(playerid));
  464.                     DOF2_SetString(GetPlayerAccount(playerid), "Senha", inputtext);
  465.                     DOF2_SetInt(GetPlayerAccount(playerid), "Level", 0);
  466.                     DOF2_SetString(GetPlayerAccount(playerid), "Patente", "Novato");
  467.                     DOF2_SetInt(GetPlayerAccount(playerid), "Dinheiro", 5000);
  468.                     DOF2_SaveFile();
  469.                     new string[158];
  470.                     format(string, sizeof(string), "{FFFFFF}•{ffbc59}» {FFFFFF}Olá {ffbc59}%s {FFFFFF}sua conta foi registrada, porém não se esqueça que a sua senha é {ffbc59}%s", GetPlayerNome(playerid), inputtext);
  471.                     SendClientMessage(playerid, -1, string);
  472.                     SpawnPlayer(playerid);
  473.                     return 1;
  474.                 }
  475.             } else { /*-- BOTÃO DE SAIR --*/
  476.                 Kick(playerid);
  477.             }
  478.         }
  479.         case DIALOG_MENU_KIT: {
  480.             if(response) {
  481.                 switch(PlayerBradoks[playerid][pGang]) {
  482.                     case GANG_YAKUZA: {
  483.                         switch(listitem) {
  484.                             case 0: {
  485.                                 if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  486.                                 GivePlayerWeapon(playerid, 22, 10);
  487.                                 GivePlayerMoney(playerid, -1000);
  488.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  489.                                 return 1;
  490.                             }
  491.                             case 1: {
  492.                                 if(GetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  493.                                 GivePlayerWeapon(playerid, 25, 15);
  494.                                 GivePlayerMoney(playerid, -1500);
  495.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  496.                                 return 1;
  497.                             }
  498.                             case 2: {
  499.                                 if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  500.                                 GivePlayerWeapon(playerid, 28, 20);
  501.                                 GivePlayerMoney(playerid, -2000);
  502.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  503.                                 return 1;
  504.                             }
  505.                         }
  506.                     }
  507.                     case GANG_GROOVE_STREET: {
  508.                         switch(listitem) {
  509.                             case 0: {
  510.                                 if(GetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  511.                                 GivePlayerWeapon(playerid, 23, 15);
  512.                                 GivePlayerMoney(playerid, -1500);
  513.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  514.                                 return 1;
  515.                             }
  516.                             case 1: {
  517.                                 if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  518.                                 GivePlayerWeapon(playerid, 26, 20);
  519.                                 GivePlayerMoney(playerid, -2000);
  520.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  521.                                 return 1;
  522.                             }
  523.                             case 2: {
  524.                                 if(GetPlayerMoney(playerid) < 2500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  525.                                 GivePlayerWeapon(playerid, 29, 25);
  526.                                 GivePlayerMoney(playerid, -2500);
  527.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  528.                                 return 1;
  529.                             }
  530.                         }
  531.                     }
  532.                     case GANG_BALLAS: {
  533.                         switch(listitem) {
  534.                             case 0: {
  535.                                 if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  536.                                 GivePlayerWeapon(playerid, 24, 20);
  537.                                 GivePlayerMoney(playerid, -2000);
  538.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  539.                                 return 1;
  540.                             }
  541.                             case 1: {
  542.                                 if(GetPlayerMoney(playerid) < 2500) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  543.                                 GivePlayerWeapon(playerid, 27, 25);
  544.                                 GivePlayerMoney(playerid, -2500);
  545.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  546.                                 return 1;
  547.                             }
  548.                             case 2: {
  549.                                 if(GetPlayerMoney(playerid) < 3000) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  550.                                 GivePlayerWeapon(playerid, 32, 30);
  551.                                 GivePlayerMoney(playerid, -3000);
  552.                                 SendClientMessage(playerid, -1, "[•»] {00FF7F}Arma adquirida com sucesso !");
  553.                                 return 1;
  554.                             }
  555.                         }
  556.                     }
  557.                 }
  558.             }
  559.         }
  560.         case DIALOG_MENU_DETRAN: {
  561.             if(response) {
  562.                 switch(listitem) {
  563.                     case 0: { /*-- Consultar Multas --*/
  564.                         ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN_CONSULTAR, DIALOG_STYLE_INPUT, "{FFFFFF}DETRAN - SF Consultas de Multas", "{FFFFFF}Informe a placa do Veículo", "Consultar", "Voltar");
  565.                     }
  566.                     case 1: { /*-- Pagar Multas --*/
  567.                         ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN_PAGARMULTAS, DIALOG_STYLE_INPUT, "{FFFFFF}DETRAN - SF Pagamento de Multas", "{FFFFFF}Informe a placa do Veículo", "Consultar", "Voltar");
  568.                     }
  569.                 }
  570.             }
  571.         }
  572.         case DIALOG_MENU_DETRAN_CONSULTAR: {
  573.             if(response) { /*-- Clicou em Consultar --*/
  574.                 Contagem[playerid] = false;
  575.                 for(new i = 1; i < BRADOKS_VEHICLES; i++) {
  576.                     if(strfind(GetVehicleNumberPlateEx(VeiculoBradoks[i][vVeiculoIDX]), inputtext, true) != -1) {
  577.                         new string[400];
  578.                         Contagem[playerid] = true;
  579.                         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}«",
  580.                         GetVehicleName(VeiculoBradoks[i][vVeiculoIDX]), GetVehicleNumberPlateEx(VeiculoBradoks[i][vVeiculoIDX]), VeiculoBradoks[i][vTotalMultas], VeiculoBradoks[i][vValorMulta]);
  581.                         ShowPlayerDialog(playerid, DIALOG_MULTAS, DIALOG_STYLE_MSGBOX, "{FFFFFF}DETRAN - SF Consultas de Multas", string, "Voltar", "Fechar");
  582.                     }
  583.                 }
  584.                 if(Contagem[playerid] == false) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Nenhum veículo encontrado com a placa informada !");
  585.             } else { /*-- Clicou em Voltar --*/
  586.                 ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN, DIALOG_STYLE_LIST, "DETRAN - SF", "Consultar Multas\nPagar Multas", "Selecionar", "Fechar");
  587.             }
  588.         }
  589.         case DIALOG_MULTAS: {
  590.             if(response) {
  591.                 ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN, DIALOG_STYLE_LIST, "DETRAN - SF", "Consultar Multas\nPagar Multas", "Selecionar", "Fechar");
  592.             }
  593.         }
  594.         case DIALOG_MENU_DETRAN_PAGARMULTAS: {
  595.             if(response) { /*-- Clicou em Consultar --*/
  596.                 Contagem[playerid] = false;
  597.                 for(new i = 1; i < BRADOKS_VEHICLES; i++) {
  598.                     if(strfind(GetVehicleNumberPlateEx(VeiculoBradoks[i][vVeiculoIDX]), inputtext, true) != -1) {
  599.                         new string[400];
  600.                         PlayerBradoks[playerid][pIDdoVeiculo] = i;
  601.                         PlayerBradoks[playerid][pValorDaMulta] = VeiculoBradoks[i][vValorMulta];
  602.                         Contagem[playerid] = true;
  603.                         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}«",
  604.                         GetVehicleName(VeiculoBradoks[i][vVeiculoIDX]), GetVehicleNumberPlateEx(VeiculoBradoks[i][vVeiculoIDX]), VeiculoBradoks[i][vTotalMultas], VeiculoBradoks[i][vValorMulta]);
  605.                         ShowPlayerDialog(playerid, DIALOG_PAGAR_MULTAS, DIALOG_STYLE_MSGBOX, "{FFFFFF}DETRAN - SF Consultas de Multas", string, "Pagar", "Voltar");
  606.                     }
  607.                 }
  608.                 if(Contagem[playerid] == false) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Nenhum veículo encontrado com a placa informada !");
  609.             } else {
  610.                 ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN, DIALOG_STYLE_LIST, "DETRAN - SF", "Consultar Multas\nPagar Multas", "Selecionar", "Fechar");
  611.             }
  612.         }
  613.         case DIALOG_PAGAR_MULTAS: {
  614.             if(response) {
  615.                 if(GetPlayerMoney(playerid) < PlayerBradoks[playerid][pValorDaMulta]) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não possui dinheiro suficiente !");
  616.                 GivePlayerMoney(playerid, -PlayerBradoks[playerid][pValorDaMulta]);
  617.                 VeiculoBradoks[PlayerBradoks[playerid][pIDdoVeiculo]][vValorMulta] = 0;
  618.                 VeiculoBradoks[PlayerBradoks[playerid][pIDdoVeiculo]][vTotalMultas] = 0;
  619.                 SendClientMessage(playerid, -1, "[>] {006400}Todas as multas do veículo foram pagas !");
  620.                 return 1;
  621.             } else {
  622.                 ShowPlayerDialog(playerid, DIALOG_MENU_DETRAN, DIALOG_STYLE_LIST, "DETRAN - SF", "Consultar Multas\nPagar Multas", "Selecionar", "Fechar");
  623.             }
  624.         }
  625.     }
  626.     return 1;
  627. }
  628.  
  629. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  630. {
  631.     return 1;
  632. }
  633.  
  634. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  635. {
  636.     new string[128], aname[MAX_PLAYER_NAME];
  637.     GetPlayerName(playerid, aname, sizeof(aname));
  638.     format(string, sizeof(string), "O(A) player %s foi para a posição %f %f %f", aname, fX, fY, fZ);
  639.     SendClientMessageToAll(-1, string);
  640.     SetPlayerPosFindZ(playerid, fX, fY, fZ);
  641.     return 1;
  642. }
  643.  
  644.  
  645. /*-- Comandos --*/
  646.  
  647. CMD:setlevel(playerid, params[]) {
  648.     new idplayer, level, string[128];
  649.     if(sscanf(params, "dd", idplayer, level)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}use: /setlevel [playerid] [level]");
  650.     if(!IsPlayerConnected(idplayer)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Este player não está conectado !");
  651.     SetPlayerScore(idplayer, level);
  652.     format(string, sizeof(string), "[ > ] Seu level foi setado para %d", level);
  653.     SendClientMessage(idplayer, -1, string);
  654.     return 1;
  655. }
  656.  
  657. CMD:patente(playerid) {
  658.     new string[128], aname[MAX_PLAYER_NAME];
  659.     GetPlayerName(playerid, aname, sizeof(aname));
  660.     format(string, sizeof(string), "{4169E1}Olá {FFFFFF}%s {4169E1}seja bem vindo(a)%sPatente: {FFFFFF}%s", aname, GetPlayerScore(playerid) == 0 ? (" ") : (" novamente "), RankClassNames[GetPlayerPatente(playerid)]);
  661.     SendClientMessage(playerid, -1, string);
  662.     SetPlayerColor(playerid, RankClassColors[GetPlayerPatente(playerid)]);
  663.     return 1;
  664. }
  665.  
  666. CMD:setgang(playerid, params[]) {
  667.     new id, gang, aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], string[128];
  668.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não tem acesso a este comando !");
  669.     if(sscanf(params, "dd", id, gang)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Use: /setgang [playerid] [(1: Yakuza) - (2: Groove Street) - (3: Ballas)]");
  670.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Este player não está conectado !");
  671.     if(PlayerBradoks[id][pGang] == gang) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Este player já faz parte desta gang !");
  672.     GetPlayerName(playerid, aname, sizeof(aname));
  673.     GetPlayerName(playerid, pname, sizeof(pname));
  674.  
  675.     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"));
  676.     SendClientMessageToAll(-1, string);
  677.  
  678.     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"));
  679.     SendClientMessage(playerid, -1, string);
  680.     PlayerBradoks[id][pGang] = gang;
  681.     return 1;
  682. }
  683.  
  684. CMD:kit(playerid) {
  685.     switch(PlayerBradoks[playerid][pGang]) {
  686.         case GANG_YAKUZA: {
  687.             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\
  688.             {ffffff}Pistola 9MM\t{ffffff}10\t{00FF7F}R$ {ffffff}1000\n\
  689.             {ffffff}Espingarda\t{ffffff}15\t{00FF7F}R$ {ffffff}1500\n\
  690.             {ffffff}Micro SMG\t{ffffff}20\t{00FF7F}R$ {ffffff}2000",
  691.             "Comprar", "Cancelar");
  692.         }
  693.         case GANG_GROOVE_STREET: {
  694.             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\
  695.              {ffffff}Pistola 9MM C/ Silenciador\t{ffffff}15\t{00FF7F}R$ {ffffff}1500\n\
  696.              {ffffff}Shotgun Sawnoff\t{ffffff}20\t{00FF7F}R$ {ffffff}2000\n\
  697.              {ffffff}MP5\t{ffffff}25\t{00FF7F}R$ {ffffff}2500",
  698.              "Comprar", "Cancelar");
  699.         }
  700.         case GANG_BALLAS: {
  701.             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\
  702.              {ffffff}Desert Eagle\t{ffffff}20\t{00FF7F}R$ {ffffff}2000\n\
  703.              {ffffff}Combat Shotgun\t{ffffff}25\t{00FF7F}R$ {ffffff}2500\n\
  704.              {ffffff}Tec-9\t{ffffff}30\t{00FF7F}R$ {ffffff}3000",
  705.              "Comprar", "Cancelar");
  706.         }
  707.         default: SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não tem acesso a este comando !");
  708.     }
  709.     return 1;
  710. }
  711.  
  712. CMD:dargrana(playerid, params[]) {
  713.     new id, grana;
  714.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não tem acesso a este comando !");
  715.     if(sscanf(params, "dd", id, grana)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Use: /dargrana [playerid] [valor]");
  716.     GivePlayerMoney(id, grana);
  717.     SendClientMessage(playerid, -1, "[•»] {00FF7F}Dinheiro enviado com sucesso !");
  718.     return 1;
  719. }
  720.  
  721. CMD:criarveiculo(playerid, params[]) {
  722.     new idveiculo, cor[2], placa[9], Float:Pos[4], string[140];
  723.     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]");
  724.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  725.     GetPlayerFacingAngle(playerid, Pos[3]);
  726.     VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX] = AddStaticVehicle(idveiculo, Pos[0], Pos[1], Pos[2], Pos[3], cor[0], cor[1]);
  727.     SetVehicleNumberPlateEx(VeiculoBradoks[BRADOKS_VEHICLES][vVeiculoIDX], placa); BRADOKS_VEHICLES++;
  728.     format(string, sizeof(string), "[x] Veiculo (ID Geral: %d) - (ID Interno: %d) - (Placa: %s) criado com sucesso !", idveiculo, VeiculoBradoks[idveiculo][vVeiculoIDX], placa);
  729.     SendClientMessage(playerid, -1, string);
  730.     return 1;
  731. }
  732.  
  733. CMD:pegarplaca(playerid) {
  734.     new string[148];
  735.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não está dentro de um veiculo !");
  736.     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)));
  737.     SendClientMessage(playerid, -1, string);
  738.     return 1;
  739. }
  740.  
  741. CMD:multas(playerid) {
  742.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Você não está dentro de um veiculo !");
  743.     new string[400];
  744.     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}«",
  745.      GetVehicleName(VeiculoBradoks[GetPlayerVehicleID(playerid)][vVeiculoIDX]), GetVehicleNumberPlateEx(GetPlayerVehicleID(playerid)), VeiculoBradoks[GetPlayerVehicleID(playerid)][vTotalMultas], VeiculoBradoks[GetPlayerVehicleID(playerid)][vValorMulta]);
  746.     ShowPlayerDialog(playerid, DIALOG_MULTAS, DIALOG_STYLE_MSGBOX, "{FFFFFF}Menu de Multas", string, "", "Fechar");
  747.     return 1;
  748. }
  749.  
  750. CMD:entrar(playerid) {
  751.     if(IsPlayerInRangeOfPoint(playerid, 3.0, 2364.3064,2377.5967,10.8203)) { /*-- Entrada Detran SF --*/
  752.         SetPlayerInterior(playerid, 3);
  753.         SetPlayerFacingAngle(playerid, 89.4206);
  754.         SetPlayerPos(playerid, 387.3808,173.8342,1008.3828);
  755.     }
  756.     return 1;
  757. }
  758.  
  759. CMD:sair(playerid) {
  760.     if(IsPlayerInRangeOfPoint(playerid, 3.0, 390.2981,173.7916,1008.3828)) { /*-- Saida Detran SF --*/
  761.         SetPlayerInterior(playerid, 0);
  762.         SetPlayerFacingAngle(playerid, 90.4796);
  763.         SetPlayerPos(playerid, 2361.9072,2377.7593,10.8203);
  764.     }
  765.     return 1;
  766. }
  767.  
  768. stock SetVehicleNumberPlateEx(carid, plate[]) {
  769.     format(VeiculoBradoks[carid][vPlaca], 9, "%s", plate);
  770.     SetVehicleNumberPlate(carid, VeiculoBradoks[carid][vPlaca]);
  771.     SetVehicleToRespawn(carid);
  772.     return 1;
  773. }
  774.  
  775. stock GetVehicleNumberPlateEx(carid) {
  776.     new plate[9];
  777.     for(new i = 0; i < 9; i++) {
  778.         strcat(plate, VeiculoBradoks[carid][vPlaca][i]);
  779.     }
  780.     return plate;
  781. }
  782.  
  783. public UpdateRadar() {
  784.     for(new i = 0, j = GetPlayerPoolSize(); i <= j; ++i) {
  785.         if(IsPlayerInAnyVehicle(i) && PlayerBradoks[i][pMulta] == false) {
  786.             if(IsPlayerInRangeOfPoint(i, 11.0, 2046.2222,1339.4756,10.6719) || IsPlayerInRangeOfPoint(i, 11.0, 2068.6826,1417.1683,10.6719)) {
  787.                 if(GetVehicleSpeed(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]) >= 61) {
  788.                     new string[128], Taxa = 20, Tempo = 20;
  789.                     SendClientMessage(i, -1, "{FF0000}•{FFFFFF}»{FFD700}------------------------- {FF0000}RADAR {FFD700}-------------------------{FF0000}•{FFFFFF}«");
  790.                     format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Veículo %s", GetVehicleName(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]));
  791.                     SendClientMessage(i, -1, string);
  792.                     format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Placa %s", GetVehicleNumberPlateEx(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]));
  793.                     SendClientMessage(i, -1, string);
  794.                     SendClientMessage(i, -1, "{FF0000}•{FFFFFF}»{FFD700} Velocidade Permitida 60 KM/H");
  795.                     format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Velocidade Registrada %d KM/H", GetVehicleSpeed(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]));
  796.                     SendClientMessage(i, -1, string);
  797.                     format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Valor da Multa %d", ((GetVehicleSpeed(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]) * Taxa * Tempo) /100));
  798.                     SendClientMessage(i, -1, string);
  799.                     SendClientMessage(i, -1, "{FF0000}•{FFFFFF}»{FFD700}------------------------- {FF0000}RADAR {FFD700}-------------------------{FF0000}•{FFFFFF}«");
  800.                     VeiculoBradoks[GetPlayerVehicleID(i)][vValorMulta] += ((GetVehicleSpeed(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]) * Taxa * Tempo) /100);
  801.                     VeiculoBradoks[GetPlayerVehicleID(i)][vTotalMultas]++;
  802.                     PlayerBradoks[i][pMulta] = true;
  803.                     PlayerBradoks[i][pTimerMulta] = SetTimerEx("LiberarPlayerMulta", 2000, false, "i", i);
  804.                     return 1;
  805.                 } else {
  806.                     new string[128];
  807.                     format(string, sizeof(string), "{FF0000}•{FFFFFF}»{FFD700} Velocidade Registrada: %d KM/H", GetVehicleSpeed(VeiculoBradoks[GetPlayerVehicleID(i)][vVeiculoIDX]));
  808.                     SendClientMessage(i, -1, string);
  809.                     PlayerBradoks[i][pMulta] = true;
  810.                     PlayerBradoks[i][pTimerMulta] = SetTimerEx("LiberarPlayerMulta", 2000, false, "i", i);
  811.                     return 1;
  812.                 }
  813.             }
  814.         }
  815.     }
  816.     return 1;
  817. }
  818.  
  819. GetVehicleSpeed(vehicleid) {
  820.     new Float:Vx, Float:Vy, Float:Vz;
  821.     GetVehicleVelocity(vehicleid, Vx, Vy, Vz);
  822.     new Float:rtn;
  823.     rtn = floatsqroot(floatpower(Vx*100,2) + floatpower(Vy*100,2));
  824.     rtn = floatsqroot(floatpower(rtn,2) + floatpower(Vz*100,2));
  825.     return floatround(rtn);
  826. }
  827.  
  828. stock GetVehicleName(vehicleid)
  829. {
  830.     new string[50];
  831.     format(string,sizeof(string),"%s", VehicleNames[GetVehicleModel(vehicleid) - 400]);
  832.     return string;
  833. }
  834.  
  835. public LiberarPlayerMulta(playerid) {
  836.     if(PlayerBradoks[playerid][pMulta] == true) {
  837.         KillTimer(PlayerBradoks[playerid][pTimerMulta]);
  838.         PlayerBradoks[playerid][pMulta] = false;
  839.         return 1;
  840.     }
  841.     return 1;
  842. }
  843.  
  844. stock GetPlayerPatente(playerid) {
  845.     new idpatente;
  846.     switch(GetPlayerScore(playerid)) {
  847.         case 0 .. 9: { idpatente = 0; }
  848.         case 10 .. 29: { idpatente = 1; }
  849.         case 30 .. 39: { idpatente = 2; }
  850.         case 40 .. 49: { idpatente = 3; }
  851.         case 50 .. 69: { idpatente = 4; }
  852.         case 70 .. 89: { idpatente = 5; }
  853.         case 90 .. 109: { idpatente = 6; }
  854.         case 110 .. 159: { idpatente = 7; }
  855.         case 160 .. 184: { idpatente = 8; }
  856.         case 185 .. 194: { idpatente = 9; }
  857.         case 195 .. 209: { idpatente = 10; }
  858.         case 210 .. 239: { idpatente = 11; }
  859.         case 240 .. 269: { idpatente = 12; }
  860.         case 270 .. 299: { idpatente = 13; }
  861.         case 300 .. 329: { idpatente = 14; }
  862.         case 330 .. 359: { idpatente = 15; }
  863.         case 360 .. 409: { idpatente = 16; }
  864.         case 410 .. 459: { idpatente = 17; }
  865.         case 460 .. 509: { idpatente = 18; }
  866.         case 510 .. 559: { idpatente = 19; }
  867.         case 560 .. 619: { idpatente = 20; }
  868.         case 620 .. 679: { idpatente = 21; }
  869.         case 680 .. 739: { idpatente = 22; }
  870.         case 740 .. 799: { idpatente = 23; }
  871.         case 800 .. 859: { idpatente = 24; }
  872.         case 860 .. 929: { idpatente = 25; }
  873.         case 930 .. 999: { idpatente = 26; }
  874.         case 1000 .. 1069: { idpatente = 27; }
  875.         case 1070 .. 1139: { idpatente = 28; }
  876.         case 1140 .. 1209: { idpatente = 29; }
  877.         case 1210 .. 1509: { idpatente = 30; }
  878.         case 1510 .. 1809: { idpatente = 31; }
  879.         case 1810 .. 2109: { idpatente = 32; }
  880.         case 2110 .. 2409: { idpatente = 33; }
  881.         case 2410 .. 2709: { idpatente = 34; }
  882.         case 2710 .. 3109: { idpatente = 35; }
  883.         case 3110 .. 3509: { idpatente = 36; }
  884.         case 3510 .. 3909: { idpatente = 37; }
  885.         case 3910 .. 4309: { idpatente = 38; }
  886.         case 4310 .. 4709: { idpatente = 39; }
  887.         case 4710 .. 5209: { idpatente = 40; }
  888.         case 5210 .. 5709: { idpatente = 41; }
  889.         case 5710 .. 6209: { idpatente = 42; }
  890.         case 6210 .. 6709: { idpatente = 43; }
  891.         case 6710 .. 7209: { idpatente = 44; }
  892.         case 7210 .. 12999: { idpatente = 45; }
  893.         case 13000 .. 13999: { idpatente = 46; }
  894.         case 14000 .. 14999: { idpatente = 47; }
  895.         case 15000 .. 15999: { idpatente = 48; }
  896.         case 16000 .. 16999: { idpatente = 49; }
  897.         case 17000 .. 17999: { idpatente = 50; }
  898.         case 18000 .. 19999: { idpatente = 51; }
  899.         default: { idpatente = 51; }
  900.     }
  901.     return idpatente;
  902. }
  903.  
  904. stock GetPlayerAccount(playerid) {
  905.     new file[128];
  906.     format(file, sizeof(file), PASTA_CONTAS, GetPlayerNome(playerid));
  907.     return file;
  908. }
  909.  
  910. stock GetPlayerNome(playerid) {
  911.     new aname[MAX_PLAYER_NAME];
  912.     GetPlayerName(playerid, aname, sizeof(aname));
  913.     return aname;
  914. }
Advertisement
Add Comment
Please, Sign In to add comment