Advertisement
Aninhaah

GameMode 1.0 CFR TDM

Jul 9th, 2012
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 48.40 KB | None | 0 0
  1. /*
  2.                 GameMode Crazy For Revenge 1.0 feito por Aninhaah
  3.                 Não retire os créditos!
  4.                 Esse GameMode é totalmente feito do 0 e não usa nenhum FS
  5.                 Faça bom uso :]                                                                */
  6.  
  7. //________________________________________INCLUDES_____________________________________//
  8. #include <a_samp>
  9. #include <zcmd>
  10. #include <sscanf>
  11. #include <DOF2>
  12. #include <foreach>
  13.  
  14. //_________________________________________DEFINES____________________________________//
  15. #if defined MAX_PLAYERS
  16. #undef MAX_PLAYERS
  17. #define MAX_PLAYERS 50
  18. #endif
  19.  
  20. #if defined MAX_VEHICLES
  21. #undef MAX_VEHICLES
  22. #define MAX_VEHICLES 300
  23. #endif
  24.  
  25. #define ArqContas "Contas/%s.ini"
  26. #define ArqIDG "Gangs/IDGang.ini"
  27. #define ArqGangs "Gangs/Gang %d.ini"
  28. #define ContaExiste(%0) DOF2_FileExists(ContaPlayer(%0))
  29.  
  30. #define COR_LARANJA 0xFFA500FF
  31. #define COR_AMARELO 0xFFFF00FF
  32. #define COR_VERDE 0x7CFC00FF
  33. #define COR_GOLD 0xFFD700FF
  34. #define COR_ROXO 0xA020F0FF
  35. #define COR_ROSA1 0xFF1493FF
  36. #define COR_MARGENTA 0xFF00FFFF
  37. #define COR_ROSINHA 0xFF69B4FF
  38. #define COR_VERMELHO 0xFF0000FF
  39. #define COR_AZUL_PISCINA 0x00FFFFFF
  40. #define COR_AZUL 0x00BFFFFF
  41.  
  42. #define MAX_GANGS 26
  43. #define MAX_VAGAS 16
  44.  
  45. #define GSF 1
  46. #define BALLA 2
  47. #define LSV 3
  48. #define VLA 4
  49.  
  50. #define DIALOG_REGISTRO 1
  51. #define DIALOG_LOGIN 2
  52. #define DIALOG_NOME_GANG 3
  53. #define DIALOG_SKIN_LIDER 4
  54. #define DIALOG_CONVITE_GANG 5
  55. #define DIALOG_MEMBROS 6
  56. #define DIALOG_NOVO_REPORT 7
  57. #define DIALOG_STATUS 8
  58.  
  59. #define Msg SendClientMessage
  60. #define MsgToAll SendClientMessageToAll
  61. //_________________________________________ENUMS__________________________________________//
  62. enum InfoJ
  63. {
  64.     Admin,
  65.     Matou,
  66.     Morreu,
  67.     Exp,
  68.     Lider,
  69.     Membro,
  70.     bool:Logado,
  71.     Veiculo
  72. };
  73. enum InfoGG
  74. {
  75.     Dono[MAX_PLAYER_NAME+1],
  76.     NomeGG[40],
  77.     SkinCargo1,
  78.     SkinCargo2,
  79.     SkinCargo3,
  80.     GZVitoria
  81. }
  82. //________________________________________NEWS__________________________________________//
  83.  
  84. new vehName[][] = { "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier",
  85. "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy",
  86. "Solair", "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick",
  87. "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster",
  88. "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune", "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover",
  89. "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune",
  90. "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix",
  91. "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville", "Tiller", "Utility Trailer" };
  92.  
  93. new Mensagens[][] =
  94. {
  95.     "[CFR - TDM]Está sem armas? Digite /armas e compre uma!",
  96.     "[CFR - TDM]Acesse nosso fórum: cfrtdm-samp.forumeiros.com",
  97.     "[CFR - TDM]Viu algum cheater? Use: /reportar",
  98.     "[CFR - TDM]Crie seu veículo e vá até ele quando quiser! Use: /ajuda veiculo",
  99.     "[CFR - TDM]Quer criar sua própria gang? Digite /ajuda gang",
  100.     "[CFR - TDM]Veja os créditos do nosso servidor! Digite /creditos"
  101. };
  102. new Cores[] =
  103. {
  104.     COR_AMARELO,
  105.     COR_VERMELHO,
  106.     COR_VERDE,
  107.     COR_AZUL,
  108.     COR_ROXO,
  109.     COR_GOLD,
  110.     COR_LARANJA
  111. };
  112.  
  113. new CorGG[] =
  114. {
  115.     0xFFFFFFFF,
  116.     0x32CD32FF,
  117.     0xD02090FF,
  118.     0xFFFF00FF,
  119.     0x436EEEFF
  120. };
  121.  
  122. new jInfo[MAX_PLAYERS][InfoJ];
  123. new ggInfo[MAX_GANGS][InfoGG];
  124. new levelexp = 4;
  125. new lvlpreco = 20000;
  126. new IDGang;
  127. new VagasGG[MAX_GANGS][MAX_VAGAS][30];
  128. new Menu: Armas;
  129. new bool:vTrancado[MAX_VEHICLES];
  130. new Text:TextRelogio;
  131. //______________________________________FORWARDS________________________________//
  132. forward MensagensR();
  133. forward Relogio();
  134. //______________________________________STOCKS________________________________________//
  135. stock PlayerName(playerid)
  136. {
  137.     new nome[MAX_PLAYER_NAME];
  138.     GetPlayerName(playerid, nome, sizeof(nome));
  139.     return nome;
  140. }
  141. stock ContaPlayer(playerid)
  142. {
  143.     new file[56];
  144.     format(file, sizeof(file),ArqContas, PlayerName(playerid));
  145.     return file;
  146. }
  147. stock GetPlayerID(const Name[])
  148. {
  149.     for(new i; i<MAX_PLAYERS; i++)
  150.     {
  151.         if(IsPlayerConnected(i))
  152.         {
  153.             new pName[MAX_PLAYER_NAME];
  154.             GetPlayerName(i, pName, sizeof(pName));
  155.             if(strcmp(Name, pName, true)==0)
  156.             {
  157.                 return i;
  158.             }
  159.         }
  160.     }
  161.     return -1;
  162. }
  163. //_____________________________________________________________________________________//
  164. main()
  165. {
  166.     print("\n----------------------------------");
  167.     print(" GameMode CFR - TDM 1.0 feito por Aninhaah");
  168.     print("----------------------------------\n");
  169. }
  170.  
  171.  
  172. public OnGameModeInit()
  173. {
  174.     SetGameModeText("CFR - TDM");
  175.     for(new i = 0; i < MAX_GANGS; i++)
  176.     {
  177.         CarregarGang(i);
  178.     }
  179.     AddPlayerClassEx(GSF,105, 2494.9617,-1686.4354,13.5135, 269.1425, 24, 100, 0, 0, 0, 0);//Grove Street Families
  180.     AddPlayerClassEx(GSF,106, 2494.9617,-1686.4354,13.5135, 269.1425, 24, 100, 0, 0, 0, 0);//Grove Street Families
  181.     AddPlayerClassEx(GSF,107, 2494.9617,-1686.4354,13.5135, 269.1425, 24, 100, 0, 0, 0, 0);//Grove Street Families
  182.     AddPlayerClassEx(BALLA,102, 1958.3783, 1343.1572, 15.3746, 269.1425, 24, 100, 0, 0, 0, 0);//Ballas
  183.     AddPlayerClassEx(BALLA,103, 1958.3783, 1343.1572, 15.3746, 269.1425, 24, 100, 0, 0, 0, 0);//Ballas
  184.     AddPlayerClassEx(BALLA,104, 1958.3783, 1343.1572, 15.3746, 269.1425, 24, 100, 0, 0, 0, 0);//Ballas
  185.     AddPlayerClassEx(LSV,108, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 24, 100, 0, 0, 0);//Los Santos Vagos
  186.     AddPlayerClassEx(LSV,109, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 24, 100, 0, 0, 0);//Los Santos Vagos
  187.     AddPlayerClassEx(LSV,110, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 24, 100, 0, 0, 0);//Los Santos Vagos
  188.     AddPlayerClassEx(VLA,114, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 24, 100, 0, 0, 0);//Varrios Los Aztecas
  189.     AddPlayerClassEx(VLA,115, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 24, 100, 0, 0, 0);//Varrios Los Aztecas
  190.     AddPlayerClassEx(VLA,116, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 24, 100, 0, 0, 0);//Varrios Los Aztecas
  191.    
  192.     TextRelogio = TextDrawCreate(548.000000, 18.000000, "00:00");
  193.     TextDrawBackgroundColor(TextRelogio, 255);
  194.     TextDrawFont(TextRelogio, 1);
  195.     TextDrawLetterSize(TextRelogio, 0.500000, 2.100000);
  196.     TextDrawColor(TextRelogio, -65281);
  197.     TextDrawSetOutline(TextRelogio, 1);
  198.     TextDrawSetProportional(TextRelogio, 1);
  199.    
  200.     SetTimer("MensagensR", 120000, true);
  201.     SetTimer("Relogio", 3000, true);
  202.     Armas = CreateMenu("Armas", 1, 50.0, 180.0, 200.0, 200.0);
  203.     AddMenuItem(Armas, 0, "Desert Eagle  R$2500");
  204.     AddMenuItem(Armas, 0, "Shotgun   R$1700");
  205.     AddMenuItem(Armas, 0, "Combat Shotgun   R$3000");
  206.     AddMenuItem(Armas, 0, "MP5   R$1200");
  207.     AddMenuItem(Armas, 0, "AK-47   R$1800");
  208.     AddMenuItem(Armas, 0, "Sniper Rifle   R$5000");
  209.     AddMenuItem(Armas, 0, "Country Rifle   R$2900");
  210.    
  211.     DisableInteriorEnterExits();
  212.     return 1;
  213. }
  214.  
  215. public OnGameModeExit()
  216. {
  217.     for(new i = 0; i < MAX_GANGS; i++)
  218.     {
  219.         SalvarGang(i);
  220.     }
  221.     DOF2_Exit();
  222.     TextDrawHideForAll(TextRelogio);
  223.     TextDrawDestroy(TextRelogio);
  224.     return 1;
  225. }
  226.  
  227. public OnPlayerRequestClass(playerid, classid)
  228. {
  229.     SetPlayerInterior(playerid,14);
  230.     SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
  231.     SetPlayerFacingAngle(playerid, 270.0);
  232.     SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
  233.     SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
  234.     switch(classid)
  235.     {
  236.         case 0,1,2:
  237.         {
  238.             GameTextForPlayer(playerid,"~g~Grove Street Families",1000,6);
  239.             SetPlayerTeam(playerid,GSF);
  240.         }
  241.         case 3,4,5:
  242.         {
  243.             GameTextForPlayer(playerid,"~p~Ballas",1000, 6);
  244.             SetPlayerTeam(playerid,BALLA);
  245.         }
  246.         case 6,7,8:
  247.         {
  248.             GameTextForPlayer(playerid,"~y~Los Santos Vagos", 1000, 6);
  249.             SetPlayerTeam(playerid,LSV);
  250.         }
  251.         case 9,10,11:
  252.         {
  253.             GameTextForPlayer(playerid,"~b~Varrios Los Aztecas", 1000, 6);
  254.             SetPlayerTeam(playerid,VLA);
  255.         }
  256.     }
  257.     return 1;
  258. }
  259.  
  260. public OnPlayerConnect(playerid)
  261. {
  262.     new string[85+MAX_PLAYER_NAME];
  263.     format(string, sizeof(string),"{FFA500}%s {FFFFFF}está jogando no servidor.", PlayerName(playerid));
  264.     MsgToAll(-1, string);
  265.     jInfo[playerid][Veiculo] = MAX_VEHICLES+1;
  266.     if(!ContaExiste(playerid))
  267.     {
  268.         format(string, sizeof(string),"Olá {7FFF00}%s{FFFFFF}, seja bem vindo(a) ao servidor Crazy For Revenge TDM.", PlayerName(playerid));
  269.         Msg(playerid,0xFFFF00FF,"|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|");
  270.         Msg(playerid,-1,string);
  271.         Msg(playerid,-1,"Sua conta ainda não está registrada. Não é obrigatório o registro, mas é necessário se você quiser que salve seus status.");
  272.         Msg(playerid,-1,"Se quiser que seus status sejam salvos use /registrar para poder registrar sua conta.");
  273.         Msg(playerid,0xFFFF00FF,"|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|");
  274.     }
  275.     else if(ContaExiste(playerid))
  276.     {
  277.         format(string, sizeof(string),"Olá {7FFF00}%s{FFFFFF}, seja bem vindo(a) ao servidor Crazy For Revenge TDM.", PlayerName(playerid));
  278.         Msg(playerid,0xFFFF00FF,"|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|");
  279.         Msg(playerid,-1,string);
  280.         Msg(playerid,-1,"Sua conta já está registrada. Não é obrigatório o login, mas é necessário se você quiser que carregue seus status.");
  281.         Msg(playerid,-1,"Se quiser que seus status sejam carregados use /logar.");
  282.         Msg(playerid,0xFFFF00FF,"|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|");
  283.     }
  284.     GivePlayerMoney(playerid, 2000);
  285.     return 1;
  286. }
  287.  
  288. public OnPlayerDisconnect(playerid, reason)
  289. {
  290.     new string[65+MAX_PLAYER_NAME];
  291.     switch(reason)
  292.     {
  293.         case 0: format(string,sizeof string,"{FFA500}%s {FFFFFF}saiu do servidor (Crash/Falha na conexão).",PlayerName(playerid));
  294.         case 1: format(string,sizeof string,"{FFA500}%s {FFFFFF}saiu do servidor (Vontade própria).",PlayerName(playerid));
  295.         case 2: format(string,sizeof string,"{FFA500}%s {FFFFFF}saiu do servidor (Kickado/Banido).",PlayerName(playerid));
  296.     }
  297.     MsgToAll(-1,string);
  298.     if(jInfo[playerid][Logado] == true)
  299.     {
  300.         SalvarPlayer(playerid);
  301.         jInfo[playerid][Logado] = false;
  302.     }
  303.     if(jInfo[playerid][Veiculo] != MAX_VEHICLES+1) { DestroyVehicle(jInfo[playerid][Veiculo]); }
  304.     TextDrawHideForPlayer(playerid, TextRelogio);
  305.     return 1;
  306. }
  307.  
  308. public OnPlayerSpawn(playerid)
  309. {
  310.     SetPlayerInterior(playerid, 0);
  311.     TextDrawShowForPlayer(playerid, TextRelogio);
  312.     return 1;
  313. }
  314. public MensagensR()
  315. {
  316.     new randmsg = random(sizeof(Mensagens));
  317.     new randcor = random(sizeof(Cores));
  318.     MsgToAll(Cores[randcor], Mensagens[randmsg]);
  319.     return 1;
  320. }
  321. public Relogio()
  322. {
  323.     new hora, minu, seg;
  324.     gettime(hora,minu, seg);
  325.     new string[30];
  326.     format(string, sizeof(string),"%d:%d", hora,minu);
  327.     TextDrawSetString(TextRelogio, string);
  328.     return 1;
  329. }
  330. public OnPlayerDeath(playerid, killerid, reason)
  331. {
  332.     jInfo[playerid][Morreu] ++;
  333.     jInfo[killerid][Matou] ++;
  334.     jInfo[killerid][Exp] ++;
  335.     new proximolvl = GetPlayerScore(killerid) +1;
  336.     new custolvl = proximolvl*lvlpreco;
  337.     new qtdexp = proximolvl*levelexp;
  338.     if(jInfo[killerid][Exp] >= qtdexp)
  339.     {
  340.         new str[60];
  341.         format(str, sizeof(str),"Você já pode passar de level! Preço: R$%d.", custolvl);
  342.         Msg(killerid,COR_VERDE, str);
  343.         Msg(killerid,COR_VERDE,"Se quiser upar seu level use: /comprarlevel.");
  344.     }
  345.     SendDeathMessage(killerid, playerid, reason);
  346.     return 1;
  347. }
  348. new giveplayerid, nivel, motivo[65];
  349. CMD:daradmin(playerid, params[])
  350. {
  351.     if(!IsPlayerAdmin(playerid) && jInfo[playerid][Admin] < 10) return Msg(playerid,-1,"Você não tem permissão para usar esse comando.");
  352.     if(sscanf(params,"ud", giveplayerid, nivel)) return Msg(playerid,-1,"Use: /daradmin [ID] [Nivel]");
  353.     if(!IsPlayerConnected(giveplayerid)) return Msg(playerid,-1,"[ERRO]Jogador não conectado.");
  354.     new string[90];
  355.     format(string, sizeof(string),"Você deu nivel %d de admin para %s.", nivel, PlayerName(giveplayerid));
  356.     Msg(playerid, COR_VERDE, string);
  357.     format(string, sizeof(string),"O admin %s te deu nível %d de admin.", PlayerName(playerid), nivel);
  358.     Msg(giveplayerid,COR_VERDE,string);
  359.     printf("%s deu nivel %d de admin para %s.", PlayerName(playerid),nivel, PlayerName(giveplayerid));
  360.     return 1;
  361. }
  362. CMD:admins(playerid, params[])
  363. {
  364.     Msg(playerid, COR_AMARELO,"|_______________________[CFR TDM]Administradores Online_______________________|");
  365.     new bool: admon = false;
  366.     new string[90];
  367.     foreach(new i : Player)
  368.     {
  369.         if(IsPlayerAdmin(i))
  370.         {
  371.             format(string, sizeof(string),"Admin [Rcon]: %s.", PlayerName(i));
  372.             Msg(playerid, -1, string);
  373.             admon = true;
  374.         }
  375.         else if(jInfo[i][Admin] >= 1)
  376.         {
  377.             format(string, sizeof(string),"Admin [%d]: %s.", jInfo[i][Admin], PlayerName(i));
  378.             Msg(playerid, -1, string);
  379.             admon = true;
  380.         }
  381.     }
  382.     if(admon == false) { Msg(playerid,-1,"Nenhum administrador Online."); }
  383.     Msg(playerid, COR_AMARELO,"|_____________________________________________________________________________|");
  384.     return 1;
  385. }
  386.  
  387. CMD:kick(playerid, params[])
  388. {
  389.     if(!IsPlayerAdmin(playerid) && jInfo[playerid][Admin] < 1) return Msg(playerid,-1,"Você não tem permissão para usar esse comando.");
  390.     if(sscanf(params,"us", giveplayerid,motivo)) return Msg(playerid,-1,"Use: /kick [ID] [Nivel]");
  391.     if(!IsPlayerConnected(giveplayerid)) return Msg(playerid,-1,"[ERRO]Jogador não conectado.");
  392.     if(strlen(motivo) > 60) return Msg(playerid,-1,"Resuma o motivo em até 60 caracteres.");
  393.     new string[190];
  394.     format(string, sizeof(string),"O admin {00F5FF}%s {FFFFFF}kickou {00F5FF}%s{FFFFFF}. Motivo: {00F5FF}%s",PlayerName(playerid), PlayerName(giveplayerid), motivo);
  395.     print(string);
  396.     Kick(giveplayerid);
  397.     return 1;
  398. }
  399. CMD:ban(playerid, params[])
  400. {
  401.     if(!IsPlayerAdmin(playerid) && jInfo[playerid][Admin] < 1) return Msg(playerid,-1,"Você não tem permissão para usar esse comando.");
  402.     if(sscanf(params,"us", giveplayerid,motivo)) return Msg(playerid,-1,"Use: /ban [ID] [Nivel]");
  403.     if(!IsPlayerConnected(giveplayerid)) return Msg(playerid,-1,"[ERRO]Jogador não conectado.");
  404.     if(strlen(motivo) > 60) return Msg(playerid,-1,"Resuma o motivo em até 60 caracteres.");
  405.     new string[190];
  406.     format(string, sizeof(string),"O admin {00F5FF}%s {FFFFFF}baniu {00F5FF}%s{FFFFFF}. Motivo: {00F5FF}%s",PlayerName(playerid), PlayerName(giveplayerid), motivo);
  407.     print(string);
  408.     BanEx(giveplayerid, motivo);
  409.     return 1;
  410. }
  411.  
  412. CMD:duvida(playerid, params[])
  413. {
  414.     if(isnull(params)) return Msg(playerid,-1,"Use: /duvida [Texto]");
  415.     if(strlen(params) > 90) return Msg(playerid,-1,"Por favor, resuma sua dúvida em até 90 caracteres");
  416.     new string[120+MAX_PLAYER_NAME];
  417.     foreach(new i : Player)
  418.     {
  419.         if(IsPlayerAdmin(i) || jInfo[i][Admin] >= 1)
  420.         {
  421.             format(string, sizeof(string),"{FFFF00}%s: {FFFFFF}%s.", PlayerName(playerid), params);
  422.             Msg(i,COR_AMARELO,"|____________________________________NOVA DUVIDA!____________________________________|");
  423.             Msg(i,-1,string);
  424.             Msg(i,COR_AMARELO,"|_________________________________________________________________________________________|");
  425.         }
  426.     }
  427.     Msg(playerid, COR_AMARELO,"Dúvida enviada com sucesso! Aguarde uma resposta.");
  428.     format(string, sizeof(string),"[Sua dúvida]:{FFFFFF} %s.", params);
  429.     Msg(playerid, COR_AMARELO, string);
  430.     return 1;
  431. }
  432. CMD:reportar(playerid, params[])
  433. {
  434.     if(sscanf(params,"us", giveplayerid, motivo)) return Msg(playerid,-1,"Use: /reportar [ID] [Motivo]");
  435.     if(strlen(motivo) > 60) return Msg(playerid,-1,"Por favor, resuma o motivo em até 60 caracteres");
  436.     new string[170];
  437.     foreach(new i : Player)
  438.     {
  439.         if(IsPlayerAdmin(i) || jInfo[i][Admin] >= 1)
  440.         {
  441.             format(string, sizeof(string),"{FFFF00}%s {FFFFFF}reportou {FFFF00}%s. Motivo: {FFFFFF}%s.", PlayerName(playerid), PlayerName(giveplayerid), motivo);
  442.             ShowPlayerDialog(i, DIALOG_NOVO_REPORT, DIALOG_STYLE_MSGBOX,"NOVO REPORT!", string, "Fechar","");
  443.         }
  444.     }
  445.     Msg(playerid, COR_AMARELO,"Report enviado com sucesso! A equipe Crazy For Revenge - TDM agradece.");
  446.     format(string, sizeof(string),"[Seu report]Reportado: %s. Motivo: %s", PlayerName(giveplayerid), motivo);
  447.     Msg(playerid, COR_AMARELO, string);
  448.     return 1;
  449. }
  450. CMD:mp(playerid, params[])
  451. {
  452.     new mpe[90];
  453.     if(sscanf(params,"us", giveplayerid, mpe)) return Msg(playerid,-1,"Use: /MP [ID] [Mensagem]");
  454.     if(strlen(mpe) > 90) return Msg(playerid,-1,"Máximo de caracteres: 90.");
  455.     new string[128];
  456.     format(string, sizeof(string),"[MP Recebida] %s: %s.", PlayerName(playerid), mpe);
  457.     Msg(giveplayerid, COR_LARANJA, string);
  458.     format(string, sizeof(string),"MP enviada com sucesso para %s. Veja ela abaixo:", PlayerName(giveplayerid));
  459.     Msg(playerid, COR_LARANJA, string);
  460.     format(string, sizeof(string),"MP: %s", mpe);
  461.     Msg(playerid, COR_LARANJA, string);
  462.     return 1;
  463. }
  464.  
  465. CMD:pm(playerid, params[]) return cmd_mp(playerid, params);
  466.  
  467.  
  468. CMD:ajuda(playerid, params[])
  469. {
  470.     if(isnull(params) || !strlen(params)) return Msg(playerid,-1,"Use: /ajuda [Opção]"), Msg(playerid,-1,"Opções: veiculo, gang, garagem");
  471.     if(strcmp(params,"veiculo", true) == 0)
  472.     {
  473.         Msg(playerid, COR_VERDE,"|__________________________Ajuda: Veículo__________________________|");
  474.         Msg(playerid, -1,"{EEC900}/criarv{FFFFFF} - Cria um veículo.");
  475.         Msg(playerid, -1,"{EEC900}/destruirv{FFFFFF} - Destrói um veículo seu.");
  476.         Msg(playerid, -1,"{EEC900}/irv{FFFFFF} - Vai até seu veículo.");
  477.         Msg(playerid, -1,"{EEC900}/trazerv{FFFFFF} - Traz seu veículo até você.");
  478.         Msg(playerid, -1,"{EEC900}/trancarv{FFFFFF} - Tranca as portas do seu veículo.");
  479.         Msg(playerid, -1,"{EEC900}/destrancarv{FFFFFF} - Destranca as portas do seu veículo.");
  480.         Msg(playerid, COR_VERDE,"|__________________________________________________________________|");
  481.     }
  482.     else if(strcmp(params,"garagem", true) == 0)
  483.     {
  484.         Msg(playerid,COR_VERDE,"|_____________________Ajuda: Garagens de Tunning_____________________|");
  485.         Msg(playerid, -1,"{EEC900}/garagemsf{FFFFFF} - Vai até uma das garagens de San Fierro.");
  486.         Msg(playerid, -1,"{EEC900}/garagemlv{FFFFFF} - Vai até a garagem de Las Venturas.");
  487.         Msg(playerid, -1,"{EEC900}/garagemls{FFFFFF} - Vai até uma das garagens de Los Santos.");
  488.         Msg(playerid,COR_VERDE,"|____________________________________________________________________|");
  489.     }
  490.     else if(strcmp(params,"gang", true) == 0)
  491.     {
  492.         Msg(playerid, COR_VERDE,"|_______________________________Ajuda: Gang_______________________________|");
  493.         Msg(playerid, -1,"{EEC900}/criargang{FFFFFF} - Cria uma Gang (necessário ter level 2 ou maior)");
  494.         Msg(playerid, -1,"{EEC900}/deletargang{FFFFFF} - Deleta sua gang (caso você tenha uma)");
  495.         Msg(playerid, -1,"{EEC900}/membrosgang{FFFFFF} - Vê todos membros da sua gang e te dá a opção de expulsar.");
  496.         Msg(playerid, -1,"{EEC900}/abandonargang{FFFFFF} - Abandona a sua gang atual");
  497.         Msg(playerid, -1,"{EEC900}! [Texto]{FFFFFF} - Fala no rádio da Gang.");
  498.         Msg(playerid, COR_VERDE,"|_________________________________________________________________________|");
  499.     }
  500.     else return Msg(playerid, -1,"Opção inválida. Opções: veiculo, gang, garagem");
  501.     return 1;
  502. }
  503. CMD:comandos(playerid, params[])
  504. {
  505.     Msg(playerid, COR_AMARELO,"|__________________________[CFR TDM] Comandos__________________________|");
  506.     Msg(playerid, -1,"{EEC900}/Ajuda, /Creditos, /ComprarLevel, /CriarGang, /Status, /Registrar, /Logar");
  507.     Msg(playerid, -1,"{EEC900}/Armas, /CriarV, /MP, /MC, /GaragemLS, /GaragemLV, /GaragemSF, /TrocarGang");
  508.     Msg(playerid, -1,"{EEC900}/Kill, /Reportar, /Duvida, /AjudaAdmin (/aa)");
  509.     Msg(playerid, COR_AMARELO,"|________________________________________________________________________|");
  510.     return 1;
  511. }
  512. CMD:ajudaadmin(playerid, params[])
  513. {
  514.     Msg(playerid, COR_AMARELO,"|________________________[CFR TDM]Comandos administrativos________________________|");
  515.     Msg(playerid, -1,"{EEC900}/Ban, /Kick, /DarAdmin");
  516.     Msg(playerid, COR_AMARELO,"|__________________________________________________________________________________|");
  517.     return 1;
  518. }
  519.  
  520. CMD:aa(playerid, params[]) return cmd_ajudaadmin(playerid, params);
  521.  
  522. CMD:creditos(playerid, params[])
  523. {
  524.     Msg(playerid, COR_AMARELO, "|______________________________Créditos Crazy For Revenge - TDM______________________________|");
  525.     Msg(playerid,-1,"GameMode CFR - TDM 1.0 feito totalmente por Aninhaah/humildadeforever.");
  526.     Msg(playerid,-1,"Agradecimentos e saudações a Gabriel/SteelDark, Gustavo Araujo, Lós e a toda equipe Fórum SA-MP");
  527.     Msg(playerid, COR_AMARELO,"|____________________________________________________________________________________________|");
  528.     return 1;
  529. }
  530. CMD:comprarlevel(playerid, params[])
  531. {
  532.     if(!DOF2_FileExists(ContaPlayer(playerid)) || jInfo[playerid][Logado] == false) return Msg(playerid,-1,"Você precisa ter conta no servidor e estar logado para subir o level.");
  533.     new proximolvl = GetPlayerScore(playerid) +1;
  534.     new custolvl = proximolvl*lvlpreco;
  535.     new qtdexp = proximolvl*levelexp;
  536.     new str[90];
  537.     if(GetPlayerMoney(playerid) < custolvl)
  538.     {
  539.         format(str, sizeof(str), "Você não tem R$%d.",custolvl);
  540.         Msg(playerid,COR_LARANJA, str);
  541.         return 1;
  542.     }
  543.     else if (jInfo[playerid][Exp] < qtdexp)
  544.     {
  545.         new conta = qtdexp - jInfo[playerid][Exp];
  546.         format(str, sizeof(str), "Você tem %d de respeito, precisa de mais %d.",jInfo[playerid][Exp], conta);
  547.         Msg(playerid, COR_LARANJA, str);
  548.         return 1;
  549.     }
  550.     else
  551.     {
  552.         format(str,sizeof(str),"Parabéns! Você comprou passou de level! -R$%d.", custolvl);
  553.         Msg(playerid, COR_VERDE, str);
  554.         SetPlayerScore(playerid, GetPlayerScore(playerid) +1);
  555.         SalvarPlayer(playerid);
  556.     }
  557.     return 1;
  558. }
  559. CMD:status(playerid, params[])
  560. {
  561.     new str[50], string[150];
  562.     format(str, sizeof(str),"Matou: %d\n", jInfo[playerid][Matou]);
  563.     strcat(string, str);
  564.     format(str, sizeof(str),"Morreu: %d\n", jInfo[playerid][Morreu]);
  565.     strcat(string, str);
  566.     format(str, sizeof(str),"Score: %d\n",  GetPlayerScore(playerid));
  567.     strcat(string, str);
  568.     format(str, sizeof(str),"Exp: %d\n", jInfo[playerid][Exp]);
  569.     strcat(string, str);
  570.     format(str, sizeof(str),"Dinheiro: %d", GetPlayerMoney(playerid));
  571.     strcat(string, str);
  572.     ShowPlayerDialog(playerid, DIALOG_STATUS, DIALOG_STYLE_MSGBOX,"Seu Status", string, "Fechar","");
  573.     return 1;
  574. }
  575. CMD:registrar(playerid, params[])
  576. {
  577.     if(ContaExiste(playerid)) return Msg(playerid,-1,"Essa conta já está registrada.");
  578.     ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD,"[CFR - TDM] Registro","Digite uma senha para se registrar","Registrar","Cancelar");
  579.     return 1;
  580. }
  581. CMD:logar(playerid, params[])
  582. {
  583.     if(!ContaExiste(playerid)) return Msg(playerid,-1,"Essa conta não existe. Registre-a usando /registrar.");
  584.     if(jInfo[playerid][Logado] == true) return Msg(playerid,-1,"Você já está logado!");
  585.     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"[CFR - TDM] Login","Digite sua senha para logar","Logar","Cancelar");
  586.     return 1;
  587. }
  588. CMD:armas(playerid, params[])
  589. {
  590.     ShowMenuForPlayer(Armas, playerid);
  591.     return 1;
  592. }
  593. CMD:weapons(playerid, params[]) return ShowMenuForPlayer(Armas, playerid);
  594.  
  595. //_____________________________________SISTEMA DE VEICULOS! _____________________________________//
  596. CMD:criarv(playerid, params[])
  597. {
  598.     new idv, cor1, cor2;
  599.     if(sscanf(params,"ddd", idv,cor1,cor2)) return Msg(playerid,-1,"Use: /criarv [Modelo] [Cor 1] [Cor 2]");
  600.     if(jInfo[playerid][Veiculo] != MAX_VEHICLES+1) return Msg(playerid,-1,"Você já tem um veículo criado! Use: /trazerv, /irv ou /destruirv");
  601.     if(idv < 400 || idv > 609) return Msg(playerid,-1,"ID inválido!");
  602.     if(cor1 < 0 || cor1 > 255 || cor2 < 0 || cor2 > 255) return Msg(playerid,-1,"Cores de 0 a 255.");
  603.     new Float: Pos[3], Float:ang;
  604.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  605.     GetPlayerFacingAngle(playerid, ang);
  606.     jInfo[playerid][Veiculo] = CreateVehicle(idv,Pos[0],Pos[1],Pos[2],ang, cor1,cor2, -1);
  607.     PutPlayerInVehicle(playerid, jInfo[playerid][Veiculo], 0);
  608.     GameTextForPlayer(playerid,vehName[GetVehicleModel(GetPlayerVehicleID(playerid))-400], 2000, 1);
  609.     return 1;
  610. }
  611. CMD:irv(playerid, params[])
  612. {
  613.     if(jInfo[playerid][Veiculo] == MAX_VEHICLES+1) return Msg(playerid,-1,"Você não tem um veículo criado! Use: /criarv");
  614.     new Float: Pos[3];
  615.     GetVehiclePos(jInfo[playerid][Veiculo], Pos[0], Pos[1], Pos[2]);
  616.     SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  617.     PutPlayerInVehicle(playerid, jInfo[playerid][Veiculo], 0);
  618.     Msg(playerid, COR_VERDE,"Você foi até seu veículo!");
  619.     GameTextForPlayer(playerid, vehName[GetVehicleModel(GetPlayerVehicleID(playerid))-400], 2000, 1);
  620.     return 1;
  621. }
  622. CMD:trazerv(playerid, params[])
  623. {
  624.     if(jInfo[playerid][Veiculo] == MAX_VEHICLES+1) return Msg(playerid,-1,"Você não tem um veículo criado! Use: /criarv");
  625.     if(GetPlayerInterior(playerid) != 0) return Msg(playerid,-1,"Saia do interior para trazer seu veículo.");
  626.     new Float: Pos[3];
  627.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  628.     SetVehiclePos(jInfo[playerid][Veiculo], Pos[0], Pos[1], Pos[2]);
  629.     PutPlayerInVehicle(playerid, jInfo[playerid][Veiculo], 0);
  630.     Msg(playerid, COR_VERDE,"Você trouxe seu veículo!");
  631.     GameTextForPlayer(playerid, vehName[GetVehicleModel(GetPlayerVehicleID(playerid))-400], 2000, 1);
  632.     return 1;
  633. }
  634. CMD:destruirv(playerid, params[])
  635. {
  636.     if(jInfo[playerid][Veiculo] == MAX_VEHICLES+1) return Msg(playerid,-1,"Você não tem um veículo criado! Use: /criarv");
  637.     DestroyVehicle(jInfo[playerid][Veiculo]);
  638.     jInfo[playerid][Veiculo] = MAX_VEHICLES+1;
  639.     Msg(playerid, COR_VERDE,"Você destruiu seu veículo!");
  640.     return 1;
  641. }
  642. CMD:trancarv(playerid, params[])
  643. {
  644.     if(jInfo[playerid][Veiculo] == MAX_VEHICLES+1) return Msg(playerid,-1,"Você não tem um veículo criado! Use: /criarv");
  645.     if(vTrancado[jInfo[playerid][Veiculo]] == true) return Msg(playerid,-1,"Seu veículo já está trancado.");
  646.     SetVehicleParamsEx(jInfo[playerid][Veiculo], VEHICLE_PARAMS_ON,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_ON,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF);
  647.     Msg(playerid, COR_VERDE,"Veículo trancado com sucesso! Para destrancar use: /destrancarv");
  648.     vTrancado[jInfo[playerid][Veiculo]] = true;
  649.     return 1;
  650. }
  651. CMD:destrancarv(playerid, params[])
  652. {
  653.     if(jInfo[playerid][Veiculo] == MAX_VEHICLES+1) return Msg(playerid,-1,"Você não tem um veículo criado! Use: /criarv");
  654.     if(vTrancado[jInfo[playerid][Veiculo]] == false) return Msg(playerid,-1,"Seu veículo não está trancado.");
  655.     SetVehicleParamsEx(jInfo[playerid][Veiculo], VEHICLE_PARAMS_ON,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF);
  656.     Msg(playerid, COR_VERDE,"Veículo destrancado com sucesso!");
  657.     vTrancado[jInfo[playerid][Veiculo]] = false;
  658.     return 1;
  659. }
  660. //________________________________________SISTEMA DE GANG___________________________________________//
  661. CMD:criargang(playerid, params[])
  662. {
  663. //  if(!ContaExiste(playerid) || jInfo[playerid][Logado] == false) return Msg(playerid,-1,"Você precisa ter conta no servidor e estar logado para fazer uma Gang.");
  664. //  if(jInfo[playerid][Lider] >= 1) return Msg(playerid,-1,"Você já é dono de uma Gang. Use: /abandonargang para abandonar.");
  665. //  if(GetPlayerScore(playerid) < 2) return Msg(playerid,-1,"Você precisa ter Score 2+ para criar sua gang.");
  666.     ShowPlayerDialog(playerid, DIALOG_NOME_GANG, DIALOG_STYLE_INPUT,"[CFR TDM] - Criação de Gang","Digite o nome da sua gang","Continuar","Cancelar");
  667.     return 1;
  668. }
  669. CMD:convidar(playerid, params[])
  670. {
  671.     if(jInfo[playerid][Lider] < 1) return Msg(playerid,-1,"Você não é dono de uma Gang ou seus dados não foram carregados."), Msg(playerid,-1,"Caso você seja dono carregue seus dados usando /logar.");
  672.     if(sscanf(params,"u", giveplayerid)) return Msg(playerid,-1,"Use: /convidar [ID/Nome]");
  673.     if(!IsPlayerConnected(giveplayerid)) return Msg(playerid,-1,"[ERRO]Jogador não conectado.");
  674.     new file[56];
  675.     format(file,sizeof(file),ArqGangs, jInfo[playerid][Lider]);
  676.     if(DOF2_FileExists(file))
  677.     {
  678.         new str[120];
  679.         format(str,sizeof(str),"O líder da Gang %s [%d] está te convidando para participar da Gang.",DOF2_GetString(file,"Nome Gang"), jInfo[playerid][Lider]);
  680.         SetPVarInt(giveplayerid,"Gang Convite",  jInfo[playerid][Lider]);
  681.         ShowPlayerDialog(giveplayerid, DIALOG_CONVITE_GANG, DIALOG_STYLE_MSGBOX,"[CFR TDM] - Novo convite", str, "Aceitar","Recusar");
  682.         format(str, sizeof(str),"Convite para %s enviado com sucesso! Aguarde a resposta.", PlayerName(giveplayerid));
  683.         Msg(playerid,COR_VERDE, str);
  684.     }
  685.     else return Msg(playerid,-1,"[ERRO]Sua gang não existe mais.");
  686.     return 1;
  687. }
  688. CMD:membrosgang(playerid, params[])
  689. {
  690.     if(jInfo[playerid][Lider] < 1) return Msg(playerid,-1,"Você não é dono de uma Gang ou seus dados não foram carregados."), Msg(playerid,-1,"Caso você seja dono carregue seus dados usando /logar.");
  691.     new gg = jInfo[playerid][Lider];
  692.     new string[470], text[940];
  693.     format(string, sizeof(string),"Líder: %s\nVaga 1: %s\nVaga 2: %s\nVaga 3: %s\nVaga 4: %s\nVaga 5: %s\nVaga 6: %s\nVaga 7: %s\n", PlayerName(playerid), VagasGG[gg][0],VagasGG[gg][1],VagasGG[gg][2],VagasGG[gg][3],VagasGG[gg][4],VagasGG[gg][5],VagasGG[gg][6]);
  694.     strcat(text, string);
  695.     format(string, sizeof(string),"Vaga 8: %s\nVaga 9: %s\nVaga 10: %s\nVaga 11: %s\nVaga 12: %s\nVaga 13: %s\nVaga 14: %s\nVaga 15: %s",VagasGG[gg][7],VagasGG[gg][8],VagasGG[gg][9],VagasGG[gg][10],VagasGG[gg][11],VagasGG[gg][12],VagasGG[gg][13],VagasGG[gg][14]);
  696.     strcat(text, string);
  697.     format(string, sizeof(string),"[Gang: %s] Membros.", ggInfo[gg][NomeGG]);
  698.     ShowPlayerDialog(playerid, DIALOG_MEMBROS, DIALOG_STYLE_LIST,string, text, "Selecionar","Fechar");
  699.     strdel(text, 0, sizeof(text));
  700.     return 1;
  701. }
  702. CMD:deletargang(playerid, params[])
  703. {
  704.     if(jInfo[playerid][Lider] < 1) return Msg(playerid,-1,"Você não é lider de uma Gang.");
  705.     new gg = jInfo[playerid][Lider];
  706.     new file[56];
  707.     format(file, sizeof(file),ArqGangs, gg);
  708.     if(!DOF2_FileExists(file)) return Msg(playerid, COR_VERMELHO,"[ERRO] Arquivo dessa gang não existe.");
  709.     foreach(new i : Player)
  710.     {
  711.         if(jInfo[i][Membro] == gg)
  712.         {
  713.             new string[96];
  714.             format(string, sizeof(string),"O líder %s deletou a Gang '%s' [%d].", PlayerName(playerid), ggInfo[gg][NomeGG], gg);
  715.             Msg(i,COR_VERDE, string);
  716.             SetPlayerHealth(i, 0);
  717.             ForceClassSelection(i);
  718.             DOF2_RemoveFile(file);
  719.             Msg(playerid,COR_VERDE,"Gang deletada com sucesso!");
  720.             jInfo[i][Membro] = 0;
  721.             jInfo[playerid][Lider] = 0;
  722.         }
  723.     }
  724.     return 1;
  725. }
  726. CMD:abandonargang(playerid, params[])
  727. {
  728.     if(jInfo[playerid][Lider] >= 1) return Msg(playerid, -1,"Você é líder e não pode usar esse comando. Use: /deletargang");
  729.     if(jInfo[playerid][Membro] < 1) return Msg(playerid,-1,"Você não é membro de uma Gang criada!");
  730.     new file[56];
  731.     format(file, sizeof(file),ArqGangs,jInfo[playerid][Membro]);
  732.     if(DOF2_FileExists(file))
  733.     {
  734.         new string[70];
  735.         format(string, sizeof(string),"Você abandonou a Gang %s [%d]!", DOF2_GetString(file,"Nome Gang"), jInfo[playerid][Membro]);
  736.         Msg(playerid, COR_VERDE, string);
  737.         SetPlayerHealth(playerid, 0);
  738.         ForceClassSelection(playerid);
  739.     }
  740.     else return Msg(playerid, COR_VERMELHO,"Ocorreu um erro! O arquivo da sua gang não existe.");
  741.     return 1;
  742. }
  743. //_____________________________TELEPORTES____________________________//
  744. CMD:mountchiliad(playerid, params[])
  745. {
  746.     SetPlayerInterior(playerid, 0);
  747.     if(IsPlayerInAnyVehicle(playerid))
  748.     {
  749.         SetVehiclePos(GetPlayerVehicleID(playerid), -2322.1626,-1621.2228,483.4377);
  750.     }
  751.     else if(!IsPlayerInAnyVehicle(playerid))
  752.     {
  753.         SetPlayerPos(playerid, -2322.1626,-1621.2228,483.4377);
  754.     }
  755.     new string[40+MAX_PLAYER_NAME];
  756.     format(string, sizeof(string),"%s foi para o Mount Chiliad  (/mc).", PlayerName(playerid));
  757.     MsgToAll(COR_LARANJA, string);
  758.     return 1;
  759. }
  760. CMD:mc(playerid, params[]) return cmd_mountchiliad(playerid, params);
  761.  
  762. CMD:garagemlv(playerid, params[])
  763. {
  764.     SetPlayerInterior(playerid, 0);
  765.     if(IsPlayerInAnyVehicle(playerid))
  766.     {
  767.         SetVehiclePos(GetPlayerVehicleID(playerid), 2386.7134,1036.6304,10.5474);
  768.     }
  769.     else if(!IsPlayerInAnyVehicle(playerid))
  770.     {
  771.         SetPlayerPos(playerid, 2386.7134,1036.6304,10.5474);
  772.     }
  773.     new string[40+MAX_PLAYER_NAME];
  774.     format(string, sizeof(string),"%s foi para a Garagem de Tunning LV (/garagemlv).", PlayerName(playerid));
  775.     MsgToAll(COR_LARANJA, string);
  776.     return 1;
  777. }
  778. CMD:garagemsf(playerid, params[])
  779. {
  780.     if(isnull(params) || !strval(params) || strval(params) < 1 || strval(params) > 2) return Msg(playerid,-1,"Use: /garagemsf [1/2]");
  781.     SetPlayerInterior(playerid, 0);
  782.     if(strval(params) == 1)
  783.     {
  784.         if(IsPlayerInAnyVehicle(playerid))
  785.         {
  786.             SetVehiclePos(GetPlayerVehicleID(playerid), -1936.5847,232.4233,33.8956);
  787.         }
  788.         else if(!IsPlayerInAnyVehicle(playerid))
  789.         {
  790.             SetPlayerPos(playerid,-1936.5847,232.4233,33.8956);
  791.         }
  792.     }
  793.     else if(strval(params) == 2)
  794.     {
  795.         if(IsPlayerInAnyVehicle(playerid))
  796.         {
  797.             SetVehiclePos(GetPlayerVehicleID(playerid),-2711.2820,216.9200,3.9411);
  798.         }
  799.         else if(!IsPlayerInAnyVehicle(playerid))
  800.         {
  801.             SetPlayerPos(playerid,-2711.2820,216.9200,3.9411);
  802.         }
  803.     }
  804.     new string[40+MAX_PLAYER_NAME];
  805.     format(string, sizeof(string),"%s foi para a Garagem de Tunning %d SF (/garagemsf %d).", PlayerName(playerid), strval(params), strval(params));
  806.     MsgToAll(COR_LARANJA, string);
  807.     return 1;
  808. }
  809. CMD:garagemls(playerid, params[])
  810. {
  811.     if(isnull(params) || !strval(params) || strval(params) < 1 || strval(params) > 2) return Msg(playerid,-1,"Use: /garagemls [1/2]");
  812.     SetPlayerInterior(playerid, 0);
  813.     if(strval(params) == 1)
  814.     {
  815.         if(IsPlayerInAnyVehicle(playerid))
  816.         {
  817.             SetVehiclePos(GetPlayerVehicleID(playerid),2645.1392,-2033.4412,13.2815);
  818.         }
  819.         else if(!IsPlayerInAnyVehicle(playerid))
  820.         {
  821.             SetPlayerPos(playerid,2645.1392,-2033.4412,13.2815);
  822.         }
  823.     }
  824.     else if(strval(params) == 2)
  825.     {
  826.         if(IsPlayerInAnyVehicle(playerid))
  827.         {
  828.             SetVehiclePos(GetPlayerVehicleID(playerid),1040.8999,-1032.4021,31.7191);
  829.         }
  830.         else if(!IsPlayerInAnyVehicle(playerid))
  831.         {
  832.             SetPlayerPos(playerid,1040.8999,-1032.4021,31.7191);
  833.         }
  834.     }
  835.     new string[40+MAX_PLAYER_NAME];
  836.     format(string, sizeof(string),"%s foi para a Garagem de Tunning %d LS (/garagemls %d).", PlayerName(playerid),strval(params),strval(params));
  837.     MsgToAll(COR_LARANJA, string);
  838.     return 1;
  839. }
  840. CMD:trocargang(playerid, params[])
  841. {
  842.     SetPlayerHealth(playerid, 0);
  843.     ForceClassSelection(playerid);
  844.     return 1;
  845. }
  846. CMD:kill(playerid, params[]) return SetPlayerHealth(playerid, 0);
  847.  
  848.  
  849. public OnPlayerText(playerid, text[])
  850. {
  851.     new string[130];
  852.     if(strfind(text,"!",true, 0) == 0)
  853.     {
  854.         if(GetPlayerTeam(playerid) >= 1)
  855.         {
  856.             foreach(new i : Player)
  857.             {
  858.                 if(GetPlayerTeam(i) == GetPlayerTeam(playerid))
  859.                 {
  860.                     format(string, sizeof(string),"[Gang Chat]%s [%d]: %s", PlayerName(playerid), playerid, text[1]);
  861.                     SendClientMessage(i, CorGG[GetPlayerTeam(playerid)], string);
  862.                 }
  863.             }
  864.         }
  865.         else if(jInfo[playerid][Membro] >= 1)
  866.         {
  867.             foreach(new i : Player)
  868.             {
  869.                 if(jInfo[i][Membro] == jInfo[playerid][Membro] || jInfo[i][Lider] == jInfo[playerid][Membro])
  870.                 {
  871.                     format(string, sizeof(string),"[Gang Chat]%s [%d]: %s", PlayerName(playerid), playerid, text);
  872.                     SendClientMessage(i, COR_VERDE, string);
  873.                 }
  874.             }
  875.         }
  876.         else if(jInfo[playerid][Lider] >= 1)
  877.         {
  878.             foreach(new i : Player)
  879.             {
  880.                 if(jInfo[i][Membro] == jInfo[playerid][Lider] || jInfo[i][Lider] == jInfo[playerid][Lider])
  881.                 {
  882.                     format(string, sizeof(string),"[Gang Chat]Chefão %s [%d]: %s", PlayerName(playerid), playerid, text);
  883.                     SendClientMessage(i, COR_VERDE, string);
  884.                 }
  885.             }
  886.         }
  887.     }
  888.     else
  889.     {
  890.         format(string, sizeof(string),"%s [%d]: %s", PlayerName(playerid), playerid, text);
  891.         MsgToAll(-1, string);
  892.     }
  893.     return 0;
  894. }
  895.  
  896.  
  897. public OnRconCommand(cmd[])
  898. {
  899.     return 1;
  900. }
  901.  
  902. public OnPlayerRequestSpawn(playerid)
  903. {
  904.     return 1;
  905. }
  906. public OnPlayerPickUpPickup(playerid, pickupid)
  907. {
  908.     return 1;
  909. }
  910.  
  911.  
  912. public OnPlayerSelectedMenuRow(playerid, row)
  913. {
  914.     new Menu:current;
  915.     current = GetPlayerMenu(playerid);
  916.     if(current == Armas)
  917.     {
  918.         switch(row)
  919.         {
  920.             case 0:
  921.             {
  922.                 if(GetPlayerMoney(playerid) < 2500) return Msg(playerid,-1,"Você não tem R$2500.");
  923.                 GivePlayerWeapon(playerid, 24, 50);
  924.                 Msg(playerid, COR_VERDE,"Você comprou uma Desert Eagle com 50 munições por R$2500.");
  925.             }
  926.             case 1:
  927.             {
  928.                 if(GetPlayerMoney(playerid) < 1700) return Msg(playerid,-1,"Você não tem R$1700.");
  929.                 GivePlayerWeapon(playerid, 25, 50);
  930.                 Msg(playerid, COR_VERDE,"Você comprou uma Shotgun com 50 munições por R$1700.");
  931.             }
  932.             case 2:
  933.             {
  934.                if(GetPlayerMoney(playerid) < 3000) return Msg(playerid,-1,"Você não tem R$3000.");
  935.                GivePlayerWeapon(playerid, 27, 50);
  936.                Msg(playerid, COR_VERDE,"Você comprou uma Combat Shotgun com 50 munições por R$3000.");
  937.             }
  938.             case 3:
  939.             {
  940.                 if(GetPlayerMoney(playerid) < 1200) return Msg(playerid,-1,"Você não tem R$1200.");
  941.                 GivePlayerWeapon(playerid, 29, 50);
  942.                 Msg(playerid, COR_VERDE,"Você comprou uma MP5 com 50 munições por R$1200.");
  943.             }
  944.             case 4:
  945.             {
  946.                if(GetPlayerMoney(playerid) < 1800) return Msg(playerid,-1,"Você não tem R$1800.");
  947.                GivePlayerWeapon(playerid, 30, 50);
  948.                Msg(playerid, COR_VERDE,"Você comprou uma AK-47 com 50 munições por R$1800.");
  949.             }
  950.             case 5:
  951.             {
  952.                if(GetPlayerMoney(playerid) < 5000) return Msg(playerid,-1,"Você não tem R$5000.");
  953.                GivePlayerWeapon(playerid, 34, 50);
  954.                Msg(playerid, COR_VERDE,"Você comprou uma Sniper Rifle com 50 munições por R$5000.");
  955.             }
  956.             case 6:
  957.             {
  958.                 if(GetPlayerMoney(playerid) < 2900) return Msg(playerid,-1,"Você não tem R$2900.");
  959.                 GivePlayerWeapon(playerid, 33, 50);
  960.                 Msg(playerid, COR_VERDE,"Você comprou uma Sniper Rifle com 50 munições por R$2900.");
  961.             }
  962.         }
  963.         return 1;
  964.     }
  965.     return 1;
  966. }
  967.  
  968. public OnPlayerExitedMenu(playerid)
  969. {
  970.     TogglePlayerControllable(playerid, 1);
  971.     return 1;
  972. }
  973.  
  974. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  975. {
  976.     return 1;
  977. }
  978.  
  979. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  980. {
  981.     return 1;
  982. }
  983.  
  984. public OnRconLoginAttempt(ip[], password[], success)
  985. {
  986.     return 1;
  987. }
  988.  
  989.  
  990. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  991. {
  992.     switch(dialogid)
  993.     {
  994.         case DIALOG_REGISTRO:
  995.         {
  996.             if(!response) return Msg(playerid,-1,"Cancelado com sucesso!");
  997.             if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "[CFR - TDM] Registro","Digite uma senha para se registrar","Registrar","Cancelar");
  998.             DOF2_CreateFile(ContaPlayer(playerid));
  999.             DOF2_SetString(ContaPlayer(playerid),"Senha", inputtext);
  1000.             DOF2_SaveFile();
  1001.             new string[130+MAX_PLAYER_NAME];
  1002.             format(string, sizeof(string),"{FFFFFF}Conta {7FFF00}%s{FFFFFF} registrada! Senha: {7FFF00}%s\n\n{FFFFFF}Digite sua senha para logar.", PlayerName(playerid), inputtext);
  1003.             ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "[CFR - TDM] Login", string, "Logar","Cancelar");
  1004.             return 1;
  1005.         }
  1006.         case DIALOG_LOGIN:
  1007.         {
  1008.             if(!response) return Msg(playerid,-1,"Cancelado com sucesso!");
  1009.             if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"[CFR - TDM] Login","Digite sua senha para logar","Logar","Cancelar");
  1010.             if(strcmp(DOF2_GetString(ContaPlayer(playerid),"Senha"),inputtext, false) == 0)
  1011.             {
  1012.                 Msg(playerid,COR_VERDE,"Logado com sucesso!");
  1013.                 jInfo[playerid][Logado] = true;
  1014.                 CarregarPlayer(playerid);
  1015.             }
  1016.             else return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"[CFR - TDM] Login","Senha incorreta.\nTente novamente.","Logar","Cancelar");
  1017.             return 1;
  1018.         }
  1019.         case DIALOG_NOME_GANG:
  1020.         {
  1021.             if(!response) return Msg(playerid,-1,"Cancelado com sucesso!");
  1022.             if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_NOME_GANG,DIALOG_STYLE_INPUT,"[CFR TDM] - Criação de Gang","Digite o nome da Gang para continuar","Continuar","Cancelar");
  1023.             if(!DOF2_FileExists(ArqIDG))
  1024.             {
  1025.                 DOF2_CreateFile(ArqIDG);
  1026.                 IDGang = 1;
  1027.                 DOF2_SetInt(ArqIDG,"ID", IDGang);
  1028.             }
  1029.             else if(DOF2_FileExists(ArqIDG))
  1030.             {
  1031.                 IDGang = DOF2_GetInt(ArqIDG,"ID");
  1032.             }
  1033.             new file[56];
  1034.             format(file, sizeof(file),ArqGangs,IDGang);
  1035.             if(!DOF2_FileExists(file))
  1036.             {
  1037.                 DOF2_CreateFile(file);
  1038.                 format(ggInfo[IDGang][Dono],MAX_PLAYER_NAME+1,"%s", PlayerName(playerid));
  1039.                 format(ggInfo[IDGang][NomeGG],MAX_PLAYER_NAME+1,"%s", inputtext);
  1040.                 DOF2_SaveFile();
  1041.             }
  1042.             new string[130];
  1043.             format(string, sizeof(string),"Gang '%s' [%d] criada com sucesso! Use: /ajuda gang para saber os comandos.", ggInfo[IDGang][NomeGG], IDGang);
  1044.             Msg(playerid,COR_VERDE, string);
  1045.             jInfo[playerid][Lider] = IDGang;
  1046.             SetPlayerTeam(playerid, 0);
  1047.             SalvarPlayer(playerid);
  1048.             format(VagasGG[IDGang][0],10,"Ninguem");
  1049.             format(VagasGG[IDGang][1],10,"Ninguem");
  1050.             format(VagasGG[IDGang][2],10,"Ninguem");
  1051.             format(VagasGG[IDGang][3],10,"Ninguem");
  1052.             format(VagasGG[IDGang][4],10,"Ninguem");
  1053.             format(VagasGG[IDGang][5],10,"Ninguem");
  1054.             format(VagasGG[IDGang][6],10,"Ninguem");
  1055.             format(VagasGG[IDGang][7],10,"Ninguem");
  1056.             format(VagasGG[IDGang][8],10,"Ninguem");
  1057.             format(VagasGG[IDGang][9],10,"Ninguem");
  1058.             format(VagasGG[IDGang][10],10,"Ninguem");
  1059.             format(VagasGG[IDGang][11],10,"Ninguem");
  1060.             format(VagasGG[IDGang][12],10,"Ninguem");
  1061.             format(VagasGG[IDGang][13],10,"Ninguem");
  1062.             format(VagasGG[IDGang][14],10,"Ninguem");
  1063.             SalvarGang(IDGang);
  1064.             IDGang ++;
  1065.             if(DOF2_FileExists(ArqIDG))
  1066.             {
  1067.                 DOF2_SetInt(ArqIDG,"ID", IDGang);
  1068.                 DOF2_SaveFile();
  1069.             }
  1070.             return 1;
  1071.         }
  1072.         case DIALOG_CONVITE_GANG:
  1073.         {
  1074.             if(response)
  1075.             {
  1076.                 jInfo[playerid][Membro] = GetPVarInt(playerid,"Gang Convite");
  1077.                 DeletePVar(playerid,"Gang Convite");
  1078.                 foreach(new i : Player)
  1079.                 {
  1080.                     if(jInfo[i][Membro] == jInfo[playerid][Membro] || jInfo[i][Lider] == jInfo[playerid][Membro])
  1081.                     {
  1082.                         new string[35+MAX_PLAYER_NAME];
  1083.                         format(string, sizeof(string),"%s é o mais novo membro da Gang!", PlayerName(playerid));
  1084.                         SendClientMessage(i, COR_ROXO, string);
  1085.                         SetPlayerTeam(playerid, 0);
  1086.                     }
  1087.                 }
  1088.             }
  1089.             else if(!response)
  1090.             {
  1091.                 foreach(new i : Player)
  1092.                 {
  1093.                     if(jInfo[i][Lider] == GetPVarInt(playerid,"Gang Convite"))
  1094.                     {
  1095.                         new string[45+MAX_PLAYER_NAME];
  1096.                         format(string, sizeof(string),"%s recusou o convite para entrar na Gang.", PlayerName(playerid));
  1097.                         SendClientMessage(i, COR_ROXO, string);
  1098.                     }
  1099.                 }
  1100.                 DeletePVar(playerid, "Gang Convite");
  1101.             }
  1102.             return 1;
  1103.         }
  1104.     }
  1105.     return 1;
  1106. }
  1107. stock SalvarPlayer(playerid)
  1108. {
  1109.     if(ContaExiste(playerid))
  1110.     {
  1111.         DOF2_SetInt(ContaPlayer(playerid),"Level", GetPlayerScore(playerid));
  1112.         DOF2_SetInt(ContaPlayer(playerid),"Exp", jInfo[playerid][Exp]);
  1113.         DOF2_SetInt(ContaPlayer(playerid),"Dinheiro",GetPlayerMoney(playerid));
  1114.         DOF2_SetInt(ContaPlayer(playerid),"Lider", jInfo[playerid][Lider]);
  1115.         DOF2_SetInt(ContaPlayer(playerid),"Membro", jInfo[playerid][Membro]);
  1116.         DOF2_SetInt(ContaPlayer(playerid),"Matou", jInfo[playerid][Matou]);
  1117.         DOF2_SetInt(ContaPlayer(playerid),"Morreu",jInfo[playerid][Morreu]);
  1118.         DOF2_SaveFile();
  1119.     }
  1120.     return 1;
  1121. }
  1122. stock CarregarPlayer(playerid)
  1123. {
  1124.     if(ContaExiste(playerid))
  1125.     {
  1126.         SetPlayerScore(playerid, DOF2_GetInt(ContaPlayer(playerid),"Level"));
  1127.         jInfo[playerid][Exp] = DOF2_GetInt(ContaPlayer(playerid),"Exp");
  1128.         ResetPlayerMoney(playerid);
  1129.         GivePlayerMoney(playerid, DOF2_GetInt(ContaPlayer(playerid),"Dinheiro"));
  1130.         jInfo[playerid][Lider] = DOF2_GetInt(ContaPlayer(playerid),"Lider");
  1131.         jInfo[playerid][Membro] = DOF2_GetInt(ContaPlayer(playerid),"Membro");
  1132.         jInfo[playerid][Matou] = DOF2_GetInt(ContaPlayer(playerid),"Matou");
  1133.         jInfo[playerid][Morreu] = DOF2_GetInt(ContaPlayer(playerid),"Morreu");
  1134.     }
  1135.     return 1;
  1136. }
  1137. stock SalvarGang(gangid)
  1138. {
  1139.     new file[56];
  1140.     format(file, sizeof(file),ArqGangs, gangid);
  1141.     if(DOF2_FileExists(file))
  1142.     {
  1143.         DOF2_SetString(file,"Dono", ggInfo[gangid][Dono]);
  1144.         DOF2_SetString(file,"Nome Gang", ggInfo[gangid][NomeGG]);
  1145.         DOF2_SetString(file,"Vaga 1", VagasGG[gangid][0]);
  1146.         DOF2_SetString(file,"Vaga 2", VagasGG[gangid][1]);
  1147.         DOF2_SetString(file,"Vaga 3", VagasGG[gangid][2]);
  1148.         DOF2_SetString(file,"Vaga 4", VagasGG[gangid][3]);
  1149.         DOF2_SetString(file,"Vaga 5", VagasGG[gangid][4]);
  1150.         DOF2_SetString(file,"Vaga 6", VagasGG[gangid][5]);
  1151.         DOF2_SetString(file,"Vaga 7", VagasGG[gangid][6]);
  1152.         DOF2_SetString(file,"Vaga 8", VagasGG[gangid][7]);
  1153.         DOF2_SetString(file,"Vaga 9", VagasGG[gangid][8]);
  1154.         DOF2_SetString(file,"Vaga 10", VagasGG[gangid][9]);
  1155.         DOF2_SetString(file,"Vaga 11", VagasGG[gangid][10]);
  1156.         DOF2_SetString(file,"Vaga 12", VagasGG[gangid][11]);
  1157.         DOF2_SetString(file,"Vaga 13", VagasGG[gangid][12]);
  1158.         DOF2_SetString(file,"Vaga 14", VagasGG[gangid][13]);
  1159.         DOF2_SetString(file,"Vaga 15", VagasGG[gangid][14]);
  1160.         DOF2_SaveFile();
  1161.         printf("Gang '%s' [%d] salva com sucesso!", ggInfo[gangid][NomeGG], gangid);
  1162.     }
  1163.     return 1;
  1164. }
  1165. stock CarregarGang(gangid)
  1166. {
  1167.     new file[56];
  1168.     format(file, sizeof(file),ArqGangs, gangid);
  1169.     format(ggInfo[gangid][Dono],MAX_PLAYER_NAME+1,"%s", DOF2_GetString(file,"Dono"));
  1170.     format(ggInfo[gangid][NomeGG],30,"%s", DOF2_GetString(file,"Nome Gang"));
  1171.     format(VagasGG[gangid][0],30,"%s", DOF2_GetString(file,"Vaga 1"));
  1172.     format(VagasGG[gangid][1],30,"%s", DOF2_GetString(file,"Vaga 2"));
  1173.     format(VagasGG[gangid][2],30,"%s", DOF2_GetString(file,"Vaga 3"));
  1174.     format(VagasGG[gangid][3],30,"%s", DOF2_GetString(file,"Vaga 4"));
  1175.     format(VagasGG[gangid][4],30,"%s", DOF2_GetString(file,"Vaga 5"));
  1176.     format(VagasGG[gangid][5],30,"%s", DOF2_GetString(file,"Vaga 6"));
  1177.     format(VagasGG[gangid][6],30,"%s", DOF2_GetString(file,"Vaga 7"));
  1178.     format(VagasGG[gangid][7],30,"%s", DOF2_GetString(file,"Vaga 8"));
  1179.     format(VagasGG[gangid][8],30,"%s", DOF2_GetString(file,"Vaga 9"));
  1180.     format(VagasGG[gangid][9],30,"%s", DOF2_GetString(file,"Vaga 10"));
  1181.     format(VagasGG[gangid][10],30,"%s", DOF2_GetString(file,"Vaga 11"));
  1182.     format(VagasGG[gangid][11],30,"%s", DOF2_GetString(file,"Vaga 12"));
  1183.     format(VagasGG[gangid][12],30,"%s", DOF2_GetString(file,"Vaga 13"));
  1184.     format(VagasGG[gangid][13],30,"%s", DOF2_GetString(file,"Vaga 14"));
  1185.     format(VagasGG[gangid][14],30,"%s", DOF2_GetString(file,"Vaga 15"));
  1186.     return 1;
  1187. }
  1188.  
  1189. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1190. {
  1191.     new str[50], string[150];
  1192.     format(str, sizeof(str),"Matou: %d\n", jInfo[clickedplayerid][Matou]);
  1193.     strcat(string, str);
  1194.     format(str, sizeof(str),"Morreu: %d\n", jInfo[clickedplayerid][Morreu]);
  1195.     strcat(string, str);
  1196.     format(str, sizeof(str),"Score: %d\n",  GetPlayerScore(clickedplayerid));
  1197.     strcat(string, str);
  1198.     format(str, sizeof(str),"Exp: %d\n", jInfo[clickedplayerid][Exp]);
  1199.     strcat(string, str);
  1200.     format(str, sizeof(str),"Dinheiro: %d", GetPlayerMoney(clickedplayerid));
  1201.     strcat(string, str);
  1202.     ShowPlayerDialog(playerid, DIALOG_STATUS, DIALOG_STYLE_MSGBOX,PlayerName(clickedplayerid), string, "Fechar","");
  1203.     return 1;
  1204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement