Advertisement
Guest User

mAdmin v1.0 source

a guest
Jun 5th, 2013
878
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 70.33 KB | None | 0 0
  1. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  2.                             ================================
  3.                             | mAdmin System v1.0 by iMega. |
  4.                             ================================
  5. Créditos:
  6.     DOF2 by Double-O-Seven.
  7.     ZCMD by Zeex.
  8.     SSCANF2 by Y_Less.
  9.     FOREACH by Y_Less.
  10.  
  11. Informações:
  12.  
  13.     v1.0:
  14.         Iniciado: 03/06/2013
  15.         Finalizado:
  16.  
  17.         # 43 Comandos de Admins by iMega.
  18.             [ # TUTOR # }:
  19.                 • /aa                                                           Mostra os comandos de admin correspondente a seu nivel de admin.
  20.                 • /trabalhar                                                    Alterna o admin entre modo de trabalho/jogo( aparece no /admins ).
  21.                 • /a                                                            Envia uma mensagem apenas para os administradores online.
  22.                 • /avisar                                                       Envia um aviso a todos os players do servidor.
  23.                 • /kick                                                         Kicka um player específico.
  24.                 • /spec                                                         Liga modo de spectador para assistir um player.
  25.                 • /specoff                                                      Desliga modo de spectador para voltar ao normal.
  26.                 • /(ann)ounce                                                   Envia um anuncio em forma de GameText.
  27.                 • /(par)ticular                                                 Envia uma menssagem particular para um player específico.
  28.                 • /ausente                                                      Alterna o admin para modo ausente( aparece no /admins ).
  29.                 • /online                                                       Alterna o admin para modo online( aparece no /admins ).
  30.                 • /limparchat                                                   Limpa o chat do servidor.
  31.                 • /ir                                                           Leva o admin até um player específico.
  32.                 • /trazer                                                       Tras um player específico até o admin.
  33.                 • /levar                                                        Leva um player específico á outro player.
  34.  
  35.             [ # MODERADOR # ]:
  36.                 • /(cong)elar                                                   Congela um player específico.
  37.                 • /(descong)elar                                                Descongela um player específico.
  38.                 • /dararma                                                      Da 1 arma e munição á um player específico.
  39.                 • /desarmar                                                     Desarma totalmente um player específico.
  40.                 • /criarcarro                                                   Cria um carro na frente do admin.( Novo usando ModelPreview da v0.3x )
  41.                 • /respawn                                                      Respawna todos os veículos do servidor.
  42.                 • /destruircarro                                                Destroi o carro criado pelo comando: /criarcarro
  43.                 • /advertir                                                     Advérti um player específico, caso ele seja advertido 3 vezes será banido automaticamente.
  44.                 • /ban                                                          Bani um player específico.
  45.                 • /desban                                                       Desbani um player específico.
  46.                 • /calar                                                        Impossibilita um player específico de falar.
  47.                 • /descalar                                                     Possibilita um player específico de falar.
  48.  
  49.             [ # ADMINISTRADOR # ]:
  50.                 • /prender                                                      Prende um player específico na cadeia por um determinado tempo.
  51.                 • /soltar                                                       Solta um player específico antes do fim do tempo determinado.
  52.                 • /banip                                                        Bani um IP específico.
  53.                 • /desbanip                                                     Desbani um IP específico.
  54.                 • /enquete                                                      Abre uma enquete.
  55.  
  56.             [ # CO-FUNDADOR # ]:
  57.                 • /setarskin                                                    Seta a skin de um player específico.
  58.                 • /setarlevel                                                   Seta o level de um player específico.
  59.                 • /setargrana                                                   Seta a grana de um player específico.
  60.                 • /setarvida                                                    Seta a vida de um player específico.
  61.                 • /setarcolete                                                  Seta o colete de um player específico.
  62.                 • /gmx                                                          Reinicia o servidor.
  63.                 • /resetarconta                                                 Reseta a conta de um player específico.
  64.                 • /autorizar                                                    Autoriza um player específico á mudar Nome/Senha.
  65.  
  66.             [ # FUNDADOR/DONO # ]:
  67.                 • /daradmin                                                     Seta admin á um player específico.
  68.                 • /tiraradmin                                                   Remove o admin á um player específico.
  69.    
  70.             [ # RCON # ]:
  71.                 • /setadmin                                                     Seta si próprio como admin level 5.
  72.                
  73.         # 6 Comandos de Players by iMega.
  74.             [ # PLAYERS # ];
  75.                 • /admins                                                       Mostra os admins online e seus status.
  76.                 • /relatorio                                                    Envia um relatorio aos admins online.
  77.                 • /mudarnome                                                    Caso tenha autorização de um admin muda o nome do player.
  78.                 • /mudarsenha                                                   Caso tenha autorização de um admin muda a senha do player.
  79.                 • /comandos                                                     Mostra todos os comandos de players.
  80.                
  81.         # Sistema de Registro( Opcional ) by iMega.
  82.         # Salvamento de Armas( Opcional ) by Shcocc.
  83.         # Anti-WeaponHack by Bruno Pereira.
  84.         # Anti-Flood by iMega.
  85.         # Anti-HighPing by iMega.
  86.         # Script Otimizado by iMega.
  87.         # Uso de Operações Ternárias by iMega.
  88.         # Uso de Isnull em comandos com 1 parametro by iMega.
  89.         # Boa identação.
  90.         # Código limpo e bonito.
  91.  
  92. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  93.  
  94. #include <                              a_samp                              >
  95. #include <                               dof2                               >
  96. #include <                               zcmd                               >
  97. #include <                              sscanf2                             >
  98. #include <                              foreach                             >
  99. #include <                             mselection                           >
  100.  
  101. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  102.  
  103. #define PASTA_CONTAS                                    "mAdmin/Contas/%s.ini"  //DEFINA AQUI O DIRETÓRIO DE SALVAMENTO DAS CONTAS.
  104. #define PASTA_BANIDOS                                   "mAdmin/Banidos/%s.ini" //DEFINA AQUI O DIRETÓRIO DE SALVAMENTO DOS PLAYERS BANIDOS.
  105. #define MAX_USERS                                       ( 50 )                  //DEFINA AQUI O MÁXIMO DE PLAYERS/SLOTS DO SEU HOST/SERVIDOR.
  106. #define USAR_REGISTRO                                   true                    //DEFINA AQUI SE IRÁ USAR O SISTEMA DE REGISTRO/LOGIN ( "true" caso for usar e "false" caso contrário ).
  107. #define USAR_SARMAS                                     true                    //DEFINA AQUI SE IRÁ USAR O SALVAMENTO DE ARMAS ( "true" caso for usar e "false" caso contrário);
  108. #define MAX_WEAPONS                                     ( 13 )                  //NÃO MEXA NESSA PARTE PODE CAUSAR BUGS.
  109. #define MAX_AMMO                                        ( 99999 )               //NÃO MEXA NESSA PARTE PODE CAUSAR BUGS.
  110. #define MAX_PING                                        ( 1000 )                //DEFINA AQUI O PING MÁXIMO DO ANTI-HIGH PING.
  111.  
  112. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  113.  
  114. #define DIALOG_REGISTRO                                 ( 1000 )                //MUDE O ID DO DIALOG CASO JÁ EXISTA UM COM O MESMO ID.
  115. #define DIALOG_LOGIN                                    ( 2000 )                //MUDE O ID DO DIALOG CASO JÁ EXISTA UM COM O MESMO ID.
  116. #define DIALOG_ENQUETE                                  ( 3000 )                //MUDE O ID DO DIALOG CASO JÁ EXISTA UM COM O MESMO ID.
  117. #define DIALOG_CADMIN                                   ( 4000 )                //MUDE O ID DO DIALOG CASO JÁ EXISTA UM COM O MESMO ID.
  118. #define DIALOG_BANIDO                                   ( 5000 )                //MUDE O ID DO DIALOG CASO JÁ EXISTA UM COM O MESMO ID.
  119.  
  120. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  121.  
  122. #define CINZA                                           0xCECECEFF
  123. #define VERDE                                           0x21DD00FF
  124. #define VERDE_AGUA                                      0x03D687FF
  125. #define VERDE_CLARO                                     0x38FF06FF
  126. #define VERDE_ESCURO                                    0x008040FF
  127. #define VERMELHO                                        0xFF030FFF
  128. #define AMARELO                                         0xFFFF00FF
  129. #define LARANJA                                         0xF97804FF
  130. #define AZUL                                            0x1229FAFF
  131. #define AZUL_CLARO                                      0x00C2ECFF
  132. #define ROSA_CHOQUE                                     0xE100E1FF
  133. #define ROSA                                            0xD52DFFFF
  134.  
  135. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  136.  
  137. #define SendFormattedMsg(%0,%1,%2,%3)                   format(_string, sizeof(_string), %2, %3) && SendClientMessage(%0, %1, _string)
  138. #define SendFormattedMsgToAll(%1,%2,%3)                 format(_string, sizeof(_string), %2, %3) && SendClientMessageToAll(%1, _string)
  139. #define SetPlayerMoney(%0,%1)                           ResetPlayerMoney(%0) && GivePlayerMoney(%0, %1)
  140. #define Loop(%0,%1)                                     for(new %0 = 0; %0 < %1; ++%0)
  141. #define Callback::%0(%1)                                forward %0(%1); public %0(%1)
  142. #define Function::%0(%1)                                stock %0(%1)
  143.  
  144. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  145.  
  146. //Variáveis
  147. enum pInfo {
  148.     Admin,
  149.     Preso,
  150.     Advertencias,
  151.     bool:Congelado,
  152.     bool:Assistindo,
  153.     bool:Autorizado,
  154.     bool:Trabalhando,
  155.     bool:Calado,
  156.     bool:Ausente
  157. }
  158. new pDados[MAX_USERS][pInfo];
  159. new bool:Conectado[MAX_USERS];
  160.  
  161. enum eEnquete
  162. {
  163.     bool:Criada,
  164.     Titulo[128],
  165.     Sim,
  166.     Nao
  167. }
  168. new eDados[eEnquete];
  169.  
  170. //Arrays
  171. new dia, mes, ano;
  172. new horas, minutos, segundos;
  173. new Float:Pos[4];
  174. new _string[256];
  175. new texto[128];
  176. new ip[25];
  177. new _@STR[128];
  178. new id;
  179. new TimerPreso;
  180.  
  181. //Sistema de Veiculos 0.3x
  182. new ListaVeiculos = mS_INVALID_LISTID,
  183.     CriadorCarro[MAX_USERS],
  184.     Text3D:DonoCarro[MAX_USERS],
  185.     CarrosCriados[100],
  186.     TodosCarros = 0;
  187.  
  188. //Salvamento/Carregamento de Armas
  189. new g_sGetAmmoWeapon[MAX_AMMO],
  190.     g_sGetWeapon[MAX_WEAPONS],
  191.     g_sStrTemp2[128],
  192.     g_sStrTemp[128];
  193.  
  194. //Anti-Weapon Hacker
  195. new Armas[] = {
  196.     9,
  197.     18,
  198.     19,
  199.     20,
  200.     21,
  201.     26,
  202.     27,
  203.     28,
  204.     32,
  205.     35,
  206.     37,
  207.     38,
  208.     39,
  209.     40,
  210.     43,
  211.     45
  212. };
  213.  
  214. //Anti-High Ping
  215.  
  216.  
  217. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  218.  
  219. public OnFilterScriptInit() {
  220.     ListaVeiculos = LoadModelSelectionMenu("veiculos.ini");
  221.     SetTimer("Verificar", 1000, true);
  222.     return 1;
  223. }
  224.  
  225. public OnFilterScriptExit() {
  226.     foreach(Player, i) {
  227.         SalvarDados(i);
  228.         #if USAR_SARMAS true
  229.             OnPlayerSaveWeapon(i);
  230.         #endif
  231.     }
  232.     DOF2_Exit();
  233.     return 1;
  234. }
  235.  
  236. public OnPlayerConnect(playerid) {
  237.     Loop(t, 100) SendClientMessage(playerid, -1, " ");
  238.     format(_@STR, sizeof(_@STR), PASTA_BANIDOS, Nome(playerid));
  239.     if(DOF2_FileExists(_@STR))
  240.     {
  241.         format(_string, sizeof(_string), "{FF0000}Você está banido deste servidor!\n\nDados:\n\n{45F75A}Admin: {FFFFFF}%s \n{45F75A}Motivo: {FFFFFF}%s", DOF2_GetString(_@STR, "Admin"), DOF2_GetString(_@STR, "Motivo"));
  242.         format(_string, sizeof(_string), "%s\n{45F75A}Data: {FFFFFF}%d/%d/%d \n{45F75A}Hora: {FFFFFF}%d:%d", _string, DOF2_GetInt(_@STR, "Dia"), DOF2_GetInt(_@STR, "Mes"), DOF2_GetInt(_@STR, "Ano"), DOF2_GetInt(_@STR, "Hora"), DOF2_GetInt(_@STR, "Minuto"), DOF2_GetInt(_@STR, "Segundo"));
  243.         ShowPlayerDialog(playerid, DIALOG_BANIDO, DIALOG_STYLE_MSGBOX, "{FF0000}Banido !", _string, "Fechar", "");
  244.         return 1;
  245.     }
  246.     GetPlayerIp(playerid, ip, 25);
  247.     if(DOF2_IsSet("mAdmin/Banidos/Ips.txt", ip))
  248.     {
  249.         format(_string, sizeof(_string), "{FF0000}Seu IP está banido deste servidor!\n\nDados:\nIP: %s\n%s", ip, DOF2_GetString("mAdmin/Banidos/Ips.txt", ip));
  250.         ShowPlayerDialog(playerid, DIALOG_BANIDO, DIALOG_STYLE_MSGBOX, "{FF0000}Banido !", _string, "Fechar", "");
  251.         return 1;
  252.     }
  253.  
  254.     #if USAR_REGISTRO true
  255.         if(!DOF2::FileExists(Contas(playerid))) {
  256.             getdate(ano, mes, dia);
  257.             format(_string, sizeof(_string), "{FFFFFF}Bem vindo(a)\n\nConta: {FFFF00}%s\n\n{FFFFFF}..:: Status ::..\n{FF0000}Não Registrada\n\n{FFFFFF}Data de Inscrição: {FF0000}[ {FFFFFF}%i{FF0000}/{FFFFFF}%i{FF0000}/{FFFFFF}2013{FF0000} ]\n{FFFFFF}Digite uma senha para registrar-se:", Nome(playerid), dia, mes, ano);
  258.             ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}[ mAdmin ] - Registro.", _string, "Registrar", "Cancelar");
  259.         } else {
  260.             format(_string, sizeof(_string), "{FFFFFF}Bem vindo(a)\n\nConta: {FFFF00}%s\n\n{FFFFFF}..:: Status ::..\n{00FF00}Registrada\n\n{FFFFFF}Ultimo Login: {FF0000}[ {FFFFFF}%i{FF0000}/{FFFFFF}%i{FF0000}/{FFFFFF}2013{FF0000} ]\n{FFFFFF}Digite sua senha para registrar-se:", Nome(playerid), DOF2::GetInt(Contas(playerid), "Dia"), DOF2::GetInt(Contas(playerid), "Mes"));
  261.             ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}[ mAdmin ] - Login.", _string, "Logar", "Cancelar");
  262.         }
  263.     #endif
  264.     return 1;
  265. }
  266.  
  267. public OnPlayerDisconnect(playerid, reason) {
  268.     SalvarDados(playerid);
  269.     #if USAR_SARMAS true
  270.         OnPlayerSaveWeapon(playerid);
  271.     #endif
  272.     return 1;
  273. }
  274.  
  275. public OnPlayerSpawn(playerid) {
  276.     return 1;
  277. }
  278.  
  279. public OnPlayerDeath(playerid, killerid, reason) {
  280.     return 1;
  281. }
  282.  
  283. public OnPlayerText(playerid, text[]) {
  284.     if(gettime() < GetPVarInt(playerid, "Flooding"))return SendClientMessage(playerid, VERMELHO, "[ ANTI- FLOOD ]: {FFFFFF}Aguarde 3 segundos para falar novamente."), false;
  285.     SetPVarInt(playerid, "Flooding", (gettime()+3));
  286.     if(pDados[playerid][Calado])return SendClientMessage(playerid, VERMELHO, "( INFO ): Você está calado, e não pode falar !");
  287.     return 1;
  288. }
  289.  
  290. public OnPlayerStateChange(playerid, newstate, oldstate) {
  291.     return 1;
  292. }
  293.  
  294. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  295.     if(dialogid == DIALOG_REGISTRO) {
  296.         if(response) {
  297.             if(!strlen(inputtext)) {
  298.                 getdate(ano, mes, dia);
  299.                 format(_string, sizeof(_string), "{FFFFFF}Bem vindo(a)\n\nConta: {FFFF00}%s\n\n{FFFFFF}..:: Status ::..\n{FF0000}Não Registrada\n\n{FFFFFF}Data de Inscrição: {FF0000}[ {FFFFFF}%i{FF0000}/{FFFFFF}%i{FF0000}/{FFFFFF}2013{FF0000} ]\n{FFFFFF}Digite uma senha para registrar-se:", Nome(playerid), dia, mes, ano);
  300.                 ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}[ mAdmin ] - Registro.", _string, "Registrar", "Cancelar");
  301.                 return 1;
  302.             }
  303.             SetSpawnInfo(playerid, 289, 289, 1722.1807, -1631.3160, 20.2146, 2.2818, 0, 0, 0, 0, 0, 0);
  304.             DOF2::CreateFile(Contas(playerid));
  305.             DOF2::SetString(Contas(playerid), "Password", inputtext);
  306.             DOF2::SetInt(Contas(playerid), "Admin", 0);
  307.             DOF2::SetInt(Contas(playerid), "Preso", 0);
  308.             DOF2::SetInt(Contas(playerid), "Level", 5);
  309.             DOF2::SetInt(Contas(playerid), "Grana", 10000);
  310.             DOF2::SetInt(Contas(playerid), "Skin", 289);
  311.             DOF2::SetInt(Contas(playerid), "SpawnINT", 0);
  312.             DOF2::SetInt(Contas(playerid), "SpawnVW", 0);
  313.             DOF2::SaveFile();
  314.             SetPlayerMoney(playerid, 10000);
  315.             SetPlayerScore(playerid, 5);
  316.             SetPlayerSkin(playerid, 289);
  317.             Conectado[playerid] = true;
  318.             SpawnPlayer(playerid);
  319.             SendClientMessage(playerid, VERDE, "Registrado com sucesso, você foi logado automaticamente !");
  320.         } else {
  321.             SendClientMessage(playerid, VERMELHO, "Você foi kickado pelo ( {FFFFFF}administrador_bot{FF0000} ) por ( {FFFFFF}recusar se registrar/logar{FF0000} ).");
  322.             Kick(playerid);
  323.             return 1;
  324.         }
  325.     }
  326.    
  327.     if(dialogid == DIALOG_LOGIN) {
  328.         if(response) {
  329.             if(!strlen(inputtext)) {
  330.                 format(_string, sizeof(_string), "{FFFFFF}Bem vindo(a)\n\nConta: {FFFF00}%s\n\n{FFFFFF}..:: Status ::..\n{00FF00}Registrada\n\n{FFFFFF}Ultimo Login: {FF0000}[ {FFFFFF}%i{FF0000}/{FFFFFF}%i{FF0000}/{FFFFFF}2013{FF0000} ]\n{FFFFFF}Digite sua senha para registrar-se:", Nome(playerid), DOF2::GetInt(Contas(playerid), "Dia"), DOF2::GetInt(Contas(playerid), "Mes"));
  331.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}[ mAdmin ] - Login.", _string, "Logar", "Cancelar");
  332.                 return 1;
  333.             }
  334.             if(!strcmp(inputtext, DOF2::GetString(Contas(playerid), "Password"), false)) {
  335.                 GivePlayerMoney(playerid, DOF2::GetInt(Contas(playerid), "Grana"));
  336.                 SetSpawnInfo(playerid, 1, DOF2::GetInt(Contas(playerid), "Skin"), DOF2::GetFloat(Contas(playerid), "SpawnX"), DOF2::GetFloat(Contas(playerid), "SpawnY"), DOF2::GetFloat(Contas(playerid), "SpawnZ"), 0.0000, 0, 0, 0, 0, 0, 0);
  337.                 pDados[playerid][Admin] = DOF2::GetInt(Contas(playerid), "Admin");
  338.                 pDados[playerid][Preso] = DOF2::GetInt(Contas(playerid), "Preso");
  339.                 SetPlayerScore(playerid, DOF2::GetInt(Contas(playerid), "Level"));
  340.                 SetPlayerSkin(playerid, DOF2::GetInt(Contas(playerid), "Skin"));
  341.                 SendClientMessage(playerid, VERDE, "Logado com sucesso, dados carregados !");
  342.                 Conectado[playerid] = true;
  343.                 SpawnPlayer(playerid);
  344.                 #if USAR_SARMAS true
  345.                     OnPlayerLoadWeapon(playerid);
  346.                 #endif
  347.             } else {
  348.                 format(_string, sizeof(_string), "{FFFFFF}Bem vindo(a)\n\nConta: {FFFF00}%s\n\n{FFFFFF}..:: Status ::..\n{00FF00}Registrada\n\n{FFFFFF}Ultimo Login: {FF0000}[ {FFFFFF}%i{FF0000}/{FFFFFF}%i{FF0000}/{FFFFFF}2013{FF0000} ]\n{FFFFFF}Digite sua senha para registrar-se:", Nome(playerid), DOF2::GetInt(Contas(playerid), "Dia"), DOF2::GetInt(Contas(playerid), "Mes"));
  349.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}[ mAdmin ] - Login.", _string, "Logar", "Cancelar");
  350.                 SendClientMessage(playerid, VERMELHO, "Senha Incorreta !");
  351.             }
  352.         } else {
  353.             SendClientMessage(playerid, VERMELHO, "Você foi kickado pelo ( {FFFFFF}administrador_bot{FF0000} ) por ( {FFFFFF}recusar se registrar/logar{FF0000} ).");
  354.             Kick(playerid);
  355.             return 1;
  356.         }
  357.     }
  358.    
  359.     if(dialogid == DIALOG_ENQUETE) {
  360.         if(response) {
  361.             if(!eDados[Criada]) return SendClientMessage(playerid, CINZA, "Nenhuma enquete aberta!");
  362.             eDados[Sim]++;
  363.             SendClientMessage(playerid, AMARELO, "Voto computado com sucesso.");
  364.         } else {
  365.             if(eDados[Criada] == false) return SendClientMessage(playerid, CINZA, "Nenhuma enquete aberta!");
  366.             eDados[Nao]++;
  367.             SendClientMessage(playerid, AMARELO, "Voto computado com sucesso.");
  368.             return 1;
  369.         }
  370.     }
  371.    
  372.     if(dialogid == DIALOG_CADMIN) {
  373.         if(response) {
  374.             pDados[playerid][Admin] = GetPVarInt(playerid, "Level");
  375.             SendFormattedMsgToAll(AZUL_CLARO, "O ( {1B95E0}%s{00C2EC} ) tornou-se o mais novo admin do server, confira em: {1B95E0}/admins{00C2EC} !", Nome(playerid));
  376.             SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), VERDE, "Convite aceito !");
  377.         } else {
  378.             SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), VERMELHO, "Convite declinado !");
  379.             return 1;
  380.         }
  381.     }
  382.    
  383.     if(dialogid == DIALOG_BANIDO) {
  384.         if(response)return Kick(playerid);
  385.     }
  386.     return 1;
  387. }
  388.  
  389. public OnPlayerModelSelection(playerid, response, listid, modelid) {
  390.     if(listid == ListaVeiculos) {
  391.         if(response) {
  392.             new idcarro;
  393.             SendClientMessage(playerid, VERDE, "Veiculo Criado !");
  394.             GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  395.             DestroyVehicle(CriadorCarro[playerid]);
  396.             CriadorCarro[playerid] = CreateVehicle(modelid, Pos[0]+2.5, Pos[1], Pos[2]+2.5, 0.0, random(128), random(128), -1);
  397.             format(_string, sizeof(_string), "{E100E1}Carro da Administração\nDono: {FFFFFF}%s", Nome(playerid));
  398.             DonoCarro[playerid] = Create3DTextLabel(_string, ROSA_CHOQUE, Pos[0], Pos[1], Pos[2]+1, 30, 0, 1);
  399.             Attach3DTextLabelToVehicle(DonoCarro[playerid], CriadorCarro[playerid], 0, 0, 0);
  400.             PutPlayerInVehicle(playerid, CriadorCarro[playerid], 0);
  401.             idcarro = CriadorCarro[playerid];
  402.             CarrosCriados[TodosCarros] = idcarro;
  403.             TodosCarros ++;
  404.         }
  405.         else SendClientMessage(playerid, VERMELHO, "Menu cancelado !");
  406.         return 1;
  407.     }
  408.     return 1;
  409. }
  410.  
  411. Callback::TempoPreso(playerid) {
  412.     pDados[playerid][Preso] --;
  413.     if(pDados[playerid][Preso] == 0) {
  414.         SetPlayerHealth(playerid, 0);
  415.         SendClientMessage(playerid, VERDE, "( INFO ): Você cumpriu sua pena e está livre !");
  416.         KillTimer(TimerPreso);
  417.     }
  418.     return 1;
  419. }
  420.  
  421. Callback::VerificarPreso(playerid) {
  422.     if(pDados[playerid][Preso] > 0) {
  423.         SetPlayerPos(playerid, 264.6288, 77.5742, 1001.0391);
  424.         SetPlayerInterior(playerid, 6);
  425.         SendClientMessage(playerid, VERMELHO, "( INFO ): Você ainda não cumpriu sua pena !");
  426.         TimerPreso = SetTimerEx("TempoPreso", 1000, true, "i", playerid);
  427.     }
  428.     return 1;
  429. }
  430.  
  431. Callback::FecharEnquete() {
  432.     eDados[Criada] = false;
  433.     SendFormattedMsgToAll(AZUL_CLARO, "Enquete ( {1229FA}%s{00C2EC} ) fechada !", eDados[Titulo]);
  434.     SendFormattedMsgToAll(VERDE, "Votos Sim: ( {FFFFFF}%i{21DD00} )", eDados[Sim]);
  435.     SendFormattedMsgToAll(VERMELHO, "Voto Não: ( {FFFFFF}%i{FF030F} )", eDados[Nao]);
  436.     if(eDados[Sim] > eDados[Nao]) {
  437.         SendClientMessageToAll(ROSA, "\nO Sim Venceu.");
  438.         return 1;
  439.     }
  440.     if(eDados[Nao] > eDados[Sim]) {
  441.         SendClientMessageToAll(ROSA, "\nO Nao Venceu.");
  442.         return 1;
  443.     }
  444.     return 1;
  445. }
  446.  
  447. Callback::OnPlayerSaveWeapon(playerid) {
  448.     if(Conectado[playerid]) {
  449.         Loop(i, MAX_WEAPONS) {
  450.             GetPlayerWeaponData(playerid, i, g_sGetWeapon[i], g_sGetAmmoWeapon[i]);
  451.             format(g_sStrTemp, 16, "WeaponID_%d", i);
  452.             format(g_sStrTemp2, 16, "WeaponAmmo_%d", i);
  453.             DOF2::SetInt(Contas(playerid), g_sStrTemp,  g_sGetWeapon[i]);
  454.             DOF2::SetInt(Contas(playerid), g_sStrTemp2,  g_sGetAmmoWeapon[i]);
  455.             DOF2::SaveFile();
  456.         }
  457.     }
  458.     return 1;
  459. }
  460.  
  461. Callback::OnPlayerLoadWeapon(playerid) {
  462.     ResetPlayerWeapons(playerid);
  463.     Loop(i, 12) {
  464.         format(g_sStrTemp, 16, "WeaponID_%d", i);
  465.         format(g_sStrTemp2, 16, "WeaponAmmo_%d", i);
  466.         g_sGetWeapon[i] = DOF2::GetInt(Contas(playerid), g_sStrTemp);
  467.         g_sGetAmmoWeapon[i] = DOF2::GetInt(Contas(playerid), g_sStrTemp2);
  468.         GivePlayerWeapon(playerid, g_sGetWeapon[i], g_sGetAmmoWeapon[i]);
  469.     }
  470.     return 1;
  471. }
  472.  
  473. Callback::Verificar() {
  474.     foreach(Player, i) {
  475.         for(new a = 0; a < sizeof(Armas); a ++) {
  476.             if(GetPlayerWeapon(i) == Armas[a]) {
  477.                 SendFormattedMsgToAll(VERMELHO, "O ( {FB0000}%s{FF030F} ) foi pego usando armas proibídas, use: {FB0000}/spec %i", Nome(i), i);
  478.                 SetPlayerPos(i,369.76, -2039.61, 307.67);
  479.                 ResetPlayerWeapons(i);
  480.             }
  481.         }
  482.         if(GetPlayerPing(i) > MAX_PING) Kick(i), SendClientMessage(i, VERMELHO, "Você foi kickado por ter exedido o limite maximo de avisos por flood!");
  483.     }
  484.     return 1;
  485. }
  486. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  487.  
  488. Function::Nome(playerid) {
  489.     new name[MAX_PLAYER_NAME+1];
  490.     GetPlayerName(playerid, name, sizeof(name));
  491.     return name;
  492. }
  493.  
  494. Function::Contas(playerid) {
  495.     new arquivo[32], name[MAX_PLAYER_NAME+1];
  496.     GetPlayerName(playerid, name, sizeof(name));
  497.     format(arquivo, 32, PASTA_CONTAS, name);
  498.     return arquivo;
  499. }
  500.  
  501. Function::SalvarDados(playerid) {
  502.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  503.     getdate(ano, mes, dia);
  504.     if(Conectado[playerid]) {
  505.         DOF2::SetInt(Contas(playerid), "Admin", pDados[playerid][Admin]);
  506.         DOF2::SetInt(Contas(playerid), "Preso", pDados[playerid][Preso]);
  507.         DOF2::SetInt(Contas(playerid), "Level", GetPlayerScore(playerid));
  508.         DOF2::SetInt(Contas(playerid), "Grana", GetPlayerMoney(playerid));
  509.         DOF2::SetInt(Contas(playerid), "Skin", GetPlayerSkin(playerid));
  510.         DOF2::SetInt(Contas(playerid), "SpawnINT", GetPlayerInterior(playerid));
  511.         DOF2::SetInt(Contas(playerid), "SpawnVW", GetPlayerVirtualWorld(playerid));
  512.         DOF2::SetFloat(Contas(playerid), "SpawnX", Pos[0]);
  513.         DOF2::SetFloat(Contas(playerid), "SpawnY", Pos[1]);
  514.         DOF2::SetFloat(Contas(playerid), "SpawnZ", Pos[2]);
  515.         DOF2::SetInt(Contas(playerid), "Dia", dia);
  516.         DOF2::SetInt(Contas(playerid), "Mes", mes);
  517.         DOF2::SaveFile();
  518.     }
  519. }
  520.  
  521. Function::SendAdminsMessage(string[]) {
  522.     foreach(Player, i) {
  523.         if(pDados[i][Admin] > 0) {
  524.             SendClientMessage(i, ROSA_CHOQUE, string);
  525.         }
  526.     }
  527.     return 1;
  528. }
  529.  
  530. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  531.  
  532. command(comandos, playerid, params[]) {
  533.     SendClientMessage(playerid, VERDE_AGUA, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {FFFFFF}Comandos de Players{03D687} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  534.     SendClientMessage(playerid, CINZA, "( # PLAYER ¨# ): {FFFFFF}/rg - /admins - /relatorio - /mudarnome - /mudarsenha");
  535.     SendClientMessage(playerid, VERDE_AGUA, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {FFFFFF}Comandos de Players{03D687} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  536.     return 1;
  537. }
  538.  
  539. command(admins, playerid, params[]) {
  540.     new Online;
  541.     SendClientMessage(playerid, ROSA_CHOQUE, "~> Admins Online:");
  542.     foreach(Player, i) {
  543.         if(Conectado[i]) {
  544.             if(pDados[i][Admin] > 0) {
  545.                 SendFormattedMsg(playerid, ROSA_CHOQUE, "( %s | %s | %s | %s )", Nome(i), (pDados[i][Admin] == 1 ? ("Tutor") : pDados[i][Admin] == 2 ? ("Moderador") : pDados[i][Admin] == 3 ? ("Administrador") : pDados[i][Admin] == 4 ? ("Co-Fundador") : pDados[i][Admin] == 5 ? ("Fundador/Dono") : ("Fundador/Dono")), (pDados[i][Trabalhando] == true ? ("Trabalhando"):("Jogando")), (pDados[i][Ausente] == true ? ("Ausente"):("Jogando")));
  546.                 Online++;
  547.             }
  548.         }
  549.     }
  550.     if(Online == 0)return SendClientMessage(playerid, CINZA, "( INFO ): Nenhum admin está online no momento !");
  551.     Online = 0;
  552.     return 1;
  553. }
  554.  
  555. command(relatorio, playerid, params[]) {
  556.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /relatorio [ TEXTO ]");
  557.  
  558.     format(_string, sizeof(_string), "{FFFF00}Relatorio de ( {FFFFFF}%s{FFFF00} [ {FFFFFF}ID: %s{FFFF00} ]): {FFFFFF}%s", Nome(playerid), playerid, strlen(params));
  559.     SendAdminsMessage(_string);
  560.     return 1;
  561. }
  562.  
  563. command(mudarnome, playerid, params[]) {
  564.     if(!pDados[playerid][Autorizado])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui a autorização de um admin.");
  565.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /mudarnome [ NOVO NOME ]");
  566.    
  567.     SendFormattedMsgToAll(AZUL_CLARO, "O ( {1B95E0}%s{00C2EC} ) mudou de nome para ( {1B95E0}%s{00C2EC} ) !", Nome(playerid), strlen(params));
  568.     DOF2::RemoveFile(Contas(playerid));
  569.     SetPlayerName(playerid, params);
  570.     DOF2::CreateFile(Contas(playerid));
  571.     SalvarDados(playerid);
  572.     pDados[playerid][Autorizado] = false;
  573.     return 1;
  574. }
  575.  
  576. command(mudarsenha, playerid, params[]) {
  577.     if(!pDados[playerid][Autorizado])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui a autorização de um admin.");
  578.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /mudarsenha [ NOVA SENHA ]");
  579.  
  580.     DOF2::SetString(Contas(playerid), "Password", params);
  581.     SalvarDados(playerid);
  582.     SendFormattedMsg(playerid, AMARELO, "Sua nova senha é: {FFFFFF}%s", strlen(params));
  583.     pDados[playerid][Autorizado] = false;
  584.     return 1;
  585. }
  586.  
  587. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  588.  
  589. command(aa, playerid, params[]) {
  590.     if(pDados[playerid][Admin] == 0)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  591.  
  592.     SendClientMessage(playerid, VERDE_AGUA, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {FFFFFF}Comandos de Admins{03D687} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  593.     if(pDados[playerid][Admin] >= 1) {
  594.         SendClientMessage(playerid, AZUL_CLARO, "( # TUTOR # ): {FFFFFF}/trabalhar - /a - /avisar - /kick - /spec - /specoff - /(ann)ounce");
  595.         SendClientMessage(playerid, AZUL_CLARO, "( # TUTOR # ): {FFFFFF}/(par)ticular - /ausente - /online - /limparchat - /ir - /trazer");
  596.      }
  597.     if(pDados[playerid][Admin] >= 2) {
  598.         SendClientMessage(playerid, AZUL, "( # MODERADOR # ): {FFFFFF}/(cong)elar - /(descong)elar - /dararma - /desarmar - /criarcarro - /respawn");
  599.         SendClientMessage(playerid, AZUL, "( # MODERADOR # ): {FFFFFF}/destruircarro - /advertir - /ban - /desban - /calar - /descalar");
  600.     }
  601.     if(pDados[playerid][Admin] >= 3) {
  602.         SendClientMessage(playerid, VERDE_ESCURO, "( # ADMINISTRADOR # ): {FFFFFF}/prender - /soltar - /banip - /desbanip - /enquete");
  603.     }
  604.     if(pDados[playerid][Admin] >= 4) {
  605.         SendClientMessage(playerid, LARANJA, "( # CO-FUNDADOR # ): {FFFFFF}/setarskin - /setarlevel - /setargrana - /setarvida - /setarcolete");
  606.         SendClientMessage(playerid, LARANJA, "( # CO-FUNDADOR # ): {FFFFFF}/gmx - /resetarconta - /autorizar - /trancar - /destrancar");
  607.     }
  608.     if(pDados[playerid][Admin] >= 5) {
  609.         SendClientMessage(playerid, VERMELHO, "( # FUNDADOR/DONO # ): {FFFFFF}/daradmin - /tiraradmin");
  610.     }
  611.     SendClientMessage(playerid, VERDE_AGUA, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {FFFFFF}Comandos de Admins{03D687} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  612.     return 1;
  613. }
  614.  
  615. command(trabalhar, playerid, params[]) {
  616.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  617.     if(!pDados[playerid][Trabalhando]) {
  618.         pDados[playerid][Trabalhando] = true;
  619.         SetPlayerHealth(playerid, 999999);
  620.         SetPlayerArmour(playerid, 999999);
  621.         SendFormattedMsgToAll(AZUL_CLARO, "O Admin ( {1B95E0}%s{00C2EC} ) entrou em modo trabalho, confira em: {1B95E0}/admins{00C2EC} .", Nome(playerid));
  622.         SendClientMessage(playerid, CINZA, "USE: {FFFFFF}/trabalhar{CECECE} , caso queira voltar ao modo de jogo.");
  623.     } else {
  624.         pDados[playerid][Trabalhando] = false;
  625.         SetPlayerHealth(playerid, 999999);
  626.         SetPlayerArmour(playerid, 999999);
  627.         SendFormattedMsgToAll(AZUL_CLARO, "O Admin ( {1B95E0}%s{00C2EC} ) entrou em modo jogo, confira em: {1B95E0}/admins{00C2EC} .", Nome(playerid));
  628.         SendClientMessage(playerid, CINZA, "USE: {FFFFFF}/trabalhar{CECECE} , caso queira voltar ao modo de trabalho.");
  629.     }
  630.     return 1;
  631. }
  632.  
  633. command(a, playerid, params[]) {
  634.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  635.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /a [ TEXTO ]");
  636.  
  637.     format(_string, sizeof(_string), "[ {D52DFF}%s{E100E1} ] {D52DFF}%s{E100E1}: {FFFFFF}%s", (pDados[playerid][Admin] == 1 ? ("Tutor") : pDados[playerid][Admin] == 2 ? ("Moderador") : pDados[playerid][Admin] == 3 ? ("Administrador") : pDados[playerid][Admin] == 4 ? ("Co-Fundador") : pDados[playerid][Admin] == 5 ? ("Fundador/Dono") : ("Fundador/Dono")), Nome(playerid), params);
  638.     SendAdminsMessage(_string);
  639.     return 1;
  640. }
  641.  
  642. command(avisar, playerid, params[]) {
  643.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  644.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /avisar [ TEXTO ]");
  645.  
  646.     SendFormattedMsgToAll(ROSA_CHOQUE, "[ {D52DFF}%s{E100E1} ] {D52DFF}%s{E100E1}: {FFFFFF}%s", (pDados[playerid][Admin] == 1 ? ("Tutor") : pDados[playerid][Admin] == 2 ? ("Moderador") : pDados[playerid][Admin] == 3 ? ("Administrador") : pDados[playerid][Admin] == 4 ? ("Co-Fundador") : pDados[playerid][Admin] == 5 ? ("Fundador/Dono") : ("Fundador/Dono")), Nome(playerid), params);
  647.     return 1;
  648. }
  649.  
  650. command(kick, playerid, params[]) {
  651.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  652.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  653.     if(sscanf(params, "is[32]", id, texto))return SendClientMessage(playerid, CINZA, "USE: /kick [ ID ] [ MOTIVO ]");
  654.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  655.     if(pDados[playerid][Admin] < pDados[id][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  656.    
  657.     Kick(id);
  658.     SendFormattedMsgToAll(VERMELHO, "O Admin ( {38FF06}%s{FF030F} ) kickou o(a) ( {38FF06}%s{FF030F} ) por ( {38FF06}%s{FF030F} ).", Nome(playerid), Nome(id), texto);
  659.     SendFormattedMsg(playerid, VERMELHO, "O Admin ( {38FF06}%s{FF030F} ) o(a) kickou por ( {38FF06}%s{FF030F} ).", Nome(playerid), texto);
  660.     return 1;
  661. }
  662.  
  663. command(spec, playerid, params[]) {
  664.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  665.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  666.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /spec [ ID ]");
  667.     if(!Conectado[strval(params)])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  668.     if(strval(params) == playerid)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode usar este comando em si próprio !");
  669.     if(pDados[playerid][Assistindo])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você já está assistindo alguém !");
  670.    
  671.     TogglePlayerSpectating(playerid, true);
  672.     PlayerSpectatePlayer(playerid, strval(params));
  673.     pDados[playerid][Assistindo] = true;
  674.     SendClientMessage(playerid, CINZA, "USE: /specoff , caso queira parar de assistir o player !");
  675.     return 1;
  676. }
  677.  
  678. command(specoff, playerid, params[]) {
  679.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  680.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  681.     if(!pDados[playerid][Assistindo])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está assistindo ninguém !");
  682.    
  683.     TogglePlayerSpectating(playerid, false);
  684.     pDados[playerid][Assistindo] = false;
  685.     SendClientMessage(playerid, CINZA, "Você parou de assistir o player !");
  686.     return 1;
  687. }
  688.  
  689. command(announce, playerid, params[])return cmd_ann(playerid, "");
  690. command(ann, playerid, params[]) {
  691.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  692.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  693.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /(ann)ounce [ TEXTO ]");
  694.  
  695.     format(_string, sizeof(_string), "~g~%s: ~w~%s", Nome(playerid), strlen(params));
  696.     GameTextForAll(_string, 1500, 3);
  697.     return 1;
  698. }
  699.  
  700. command(particular, playerid, params[])return cmd_par(playerid, "");
  701. command(par, playerid, params[]) {
  702.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  703.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  704.     if(sscanf(params, "is[128]", id, texto))return SendClientMessage(playerid, CINZA, "USE: /(par)ticular [ ID ] [ TEXTO ]");
  705.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  706.    
  707.     SendFormattedMsg(id, ROSA, "Particular de ( {E100E1}%s{D52DFF} ): {FFFFFF}%s", Nome(playerid), texto);
  708.     SendFormattedMsg(playerid, ROSA, "Particular enviada para ( {E100E1}%s{D52DFF} ) com sucesso !", Nome(id));
  709.     return 1;
  710. }
  711.  
  712. command(ausente, playerid, params[]) {
  713.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  714.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  715.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /ausente [ MOTIVO ]");
  716.     if(pDados[playerid][Ausente])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você já está ausente !");
  717.    
  718.     pDados[playerid][Ausente] = true;
  719.     SetPlayerVirtualWorld(playerid, 99);
  720.     TogglePlayerControllable(playerid, false);
  721.     SetPVarString(playerid, "NomeAntigo", Nome(playerid));
  722.     SendFormattedMsgToAll(LARANJA, "O Admin ( {FFFFFF}%s{F97804} ) entrou em modo ausente ( {FFFFFF}%s{F97804} ), confira em: {FFFFFF}/admins{F97804} .", Nome(playerid), strlen(params));
  723.     format(_string, sizeof(_string), "[ AUSENTE ]%s", Nome(playerid));
  724.     SetPlayerName(playerid, _string);
  725.     return 1;
  726. }
  727.  
  728. command(online, playerid, params[]) {
  729.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  730.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  731.     if(!pDados[playerid][Ausente])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está ausente !");
  732.  
  733.     pDados[playerid][Ausente] = true;
  734.     SetPlayerVirtualWorld(playerid, 0);
  735.     TogglePlayerControllable(playerid, true);
  736.     GetPVarString(playerid, "NomeAntigo", _string, MAX_PLAYER_NAME);
  737.     SetPlayerName(playerid, _string);
  738.     SendFormattedMsgToAll(LARANJA, "O Admin ( {FFFFFF}%s{F97804} ) entrou em modo online, confira em: {FFFFFF}/admins{F97804} .", Nome(playerid));
  739.     return 1;
  740. }
  741.  
  742. command(limparchat, playerid, params[]) {
  743.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  744.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  745.    
  746.     Loop(t, 100) {
  747.         SendClientMessageToAll(-1, " ");
  748.     }
  749.     format(_string, sizeof(_string), "~g~%s ~w~limpou o chat !", Nome(playerid));
  750.     GameTextForAll(_string, 1000, 3);
  751.     return 1;
  752. }
  753.  
  754. command(ir, playerid, params[]) {
  755.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  756.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  757.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /ir [ ID ]");
  758.     if(!Conectado[strval(params)])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  759.     if(pDados[playerid][Admin] < pDados[strval(params)][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  760.    
  761.     GetPlayerPos(strval(params), Pos[0], Pos[1], Pos[2]);
  762.     if(IsPlayerInAnyVehicle(playerid)) {
  763.         new vehicleid = GetPlayerVehicleID(playerid);
  764.         SetVehiclePos(vehicleid, Pos[0], Pos[1], Pos[2]);
  765.         SendFormattedMsg(strval(params), VERDE, "O Admin ( {38FF06}%s{21DD00} ) veio até você !", Nome(playerid));
  766.         SendFormattedMsg(playerid, AZUL, "Você foi até o(a) ( %s{1229FA} ) !", Nome(strval(params)));
  767.         return 1;
  768.     }
  769.     SetPlayerPos(playerid, Pos[0]+2, Pos[1]+2, Pos[2]+2);
  770.     SendFormattedMsg(strval(params), VERDE, "O Admin ( {38FF06}%s{21DD00} ) veio até você !", Nome(playerid));
  771.     SendFormattedMsg(playerid, AZUL, "Você foi até o(a) ( {00C2EC}%s{1229FA} ) !", Nome(strval(params)));
  772.     return 1;
  773. }
  774.  
  775. command(trazer, playerid, params[]) {
  776.     if(pDados[playerid][Admin] < 1)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  777.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  778.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /trazer [ ID ]");
  779.     if(!Conectado[strval(params)])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  780.     if(pDados[playerid][Admin] < pDados[strval(params)][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  781.    
  782.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  783.     if(IsPlayerInAnyVehicle(strval(params)))
  784.     {
  785.         new vehicleid = GetPlayerVehicleID(strval(params));
  786.         SetVehiclePos(vehicleid, Pos[0]+2, Pos[1]+2, Pos[2]+2);
  787.         SendFormattedMsg(strval(params), VERDE, "O Admin ( {38FF06}%s{21DD00} ) trouxe você até ele !", Nome(playerid));
  788.         SendFormattedMsg(playerid, AZUL, "Você trouxe o(a) ( {00C2EC}%s{1229FA} ) até você !", Nome(strval(params)));
  789.         return 1;
  790.     }
  791.     SetPlayerPos(strval(params), Pos[0]+2, Pos[1]+2, Pos[2]+2);
  792.     SendFormattedMsg(strval(params), VERDE, "O Admin ( {38FF06}%s{21DD00} ) trouxe você até ele !", Nome(playerid));
  793.     SendFormattedMsg(playerid, AZUL, "Você trouxe o(a) ( {00C2EC}%s{1229FA} ) até você !", Nome(strval(params)));
  794.     return 1;
  795. }
  796.  
  797. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  798.  
  799. command(congelar, playerid, params[])return cmd_cong(playerid, "");
  800. command(cong, playerid, params[]) {
  801.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  802.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  803.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /(cong)elar [ ID ]");
  804.     if(!Conectado[strval(params)])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  805.     if(pDados[strval(params)][Congelado])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Este player já está congelado !");
  806.     if(pDados[playerid][Admin] < pDados[strval(params)][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  807.  
  808.     TogglePlayerControllable(strval(params), false);
  809.     pDados[strval(params)][Congelado] = true;
  810.     SendFormattedMsg(strval(params), AZUL_CLARO, "O Admin ( {1229FA}%s{00C2EC} ) congelou você !", Nome(playerid));
  811.     SendFormattedMsg(playerid, AZUL_CLARO, "Você congelou o(a) ( {1229FA}%s{00C2EC} ) !", Nome(strval(params)));
  812.     return 1;
  813. }
  814.  
  815. command(descongelar, playerid, params[])return cmd_descong(playerid, "");
  816. command(descong, playerid, params[]) {
  817.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  818.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  819.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /(descong)elar [ ID ]");
  820.     if(!Conectado[strval(params)])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  821.     if(!pDados[strval(params)][Congelado])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Este player não está congelado !");
  822.  
  823.     TogglePlayerControllable(strval(params), true);
  824.     pDados[strval(params)][Congelado] = false;
  825.     SendFormattedMsg(strval(params), AZUL_CLARO, "O Admin ( {1229FA}%s{00C2EC} ) descongelou você !", Nome(playerid));
  826.     SendFormattedMsg(playerid, AZUL_CLARO, "Você descongelou o(a) ( {00C2EC}%s{1229FA} ) !", Nome(strval(params)));
  827.     return 1;
  828. }
  829.  
  830. command(dararma, playerid, params[]) {
  831.     new weapon, ammo, wname[32];
  832.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  833.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  834.     if(sscanf(params, "iii", id, weapon, ammo))return SendClientMessage(playerid, CINZA, "USE: /dararma [ ID ] [ ARMA ] [ MUNIÇÃO ]");
  835.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  836.     if(weapon == 9 || weapon == 18 || weapon == 19 || weapon == 20 || weapon == 21 || weapon == 26 || weapon == 27 || weapon == 28 || weapon == 32 || weapon == 35 || weapon == 36 || weapon == 37 || weapon == 38 || weapon == 39 || weapon == 40 || weapon == 43 || weapon == 45)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Esta arma é proibida, tente outra !");
  837.     if(ammo < 1 || ammo > 9999)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Munição apenas de 1 á 9999 !");
  838.    
  839.     GivePlayerWeapon(id, weapon, ammo);
  840.     GetWeaponName(weapon, wname, sizeof(wname));
  841.     SendFormattedMsg(playerid, VERDE_CLARO, "Você deu um(a) ( {008040}%s{38FF06} ) com ( {008040}%i{38FF06} ) balas para ( {008040}%s{38FF06} ) !", wname, ammo, Nome(playerid));
  842.     SendFormattedMsg(id, VERDE_ESCURO, "O Admin ( {38FF06}%s{008040} ) lhe deu um(a) ( {38FF06}%s{008040} ) com ( {38FF06}%i{008040} ) balas !", Nome(playerid), wname, ammo);
  843.     return 1;
  844. }
  845.  
  846. command(desarmar, playerid, params[]) {
  847.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  848.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  849.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /desarmar [ ID ]");
  850.     if(!Conectado[strval(params)])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  851.     if(pDados[playerid][Admin] < pDados[strval(params)][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  852.    
  853.     ResetPlayerWeapons(strval(params));
  854.     SendFormattedMsg(playerid, VERDE_CLARO, "Você desarmou o(a) ( {008040}%s{38FF06} ) !", Nome(playerid));
  855.     SendFormattedMsg(playerid, VERDE_ESCURO, "O Admin ( {38FF06}%s{008040} ) o(a) desarmou !", Nome(playerid));
  856.     return 1;
  857. }
  858.  
  859. command(criarcarro, playerid, params[]) {
  860.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  861.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  862.  
  863.     ShowModelSelectionMenu(playerid, ListaVeiculos, "Veiculos:");
  864.     return 1;
  865. }
  866.  
  867. command(respawn, playerid, params[]) {
  868.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  869.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  870.  
  871.     for(new i = 0; i < sizeof(CarrosCriados); ++i) {
  872.         DestroyVehicle(CarrosCriados[i]);
  873.     }
  874.     Loop(c, MAX_VEHICLES) {
  875.         SetVehicleToRespawn(c);
  876.     }
  877.     SendFormattedMsgToAll(AZUL_CLARO, "O Admin ( {1229FA}%s{00C2EC} ) deu respawn em todos os veiculos do servidor !", Nome(playerid));
  878.     SendClientMessage(playerid, VERDE, "Todos os veiculos criados foram destruidos !");
  879.     return 1;
  880. }
  881.  
  882. command(destruircarro, playerid, params[]) {
  883.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  884.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  885.    
  886.     if(IsPlayerInAnyVehicle(playerid)) {
  887.         new vehicleid = GetPlayerVehicleID(playerid);
  888.         DestroyVehicle(vehicleid);
  889.         SendFormattedMsg(playerid, VERDE_ESCURO, "Você destruiu o veículo ( {38FF06}ID: %i{008040} ) !", vehicleid);
  890.         return 1;
  891.     }
  892.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /destruircarro [ ID CARRO ]");
  893.     if(strval(params) == INVALID_VEHICLE_ID)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id veículo inválido !");
  894.    
  895.     DestroyVehicle(strval(params));
  896.     SendFormattedMsg(playerid, VERDE_ESCURO, "Você destruiu o veículo ( {38FF06}ID: %i{008040} ) !", strval(params));
  897.     return 1;
  898. }
  899.  
  900. command(advertir, playerid, params[]) {
  901.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  902.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  903.     if(sscanf(params, "is[32]", id, texto))return SendClientMessage(playerid, CINZA, "USE: /advertir [ ID ] [ MOTIVO ]");
  904.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  905.     if(pDados[playerid][Admin] < pDados[id][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  906.  
  907.     if(pDados[id][Advertencias] < 3) {
  908.         pDados[id][Advertencias] += 1;
  909.         SendFormattedMsgToAll(VERMELHO, "O Admin ( {38FF06}%s{FF030F} ) advertiu o(a) ( {38FF06}%s{FF030F} ) por ( {38FF06}%s{FF030F} ).", Nome(playerid), Nome(id), texto);
  910.         SendFormattedMsg(playerid, VERMELHO, "O Admin ( {38FF06}%s{FF030F} ) o(a) advertiu por ( {38FF06}%s{FF030F} ), caso seja advertido 3 vezes será banido ! ( ( {38FF06}%i/3{FF030F} )", Nome(playerid), texto, pDados[id][Advertencias]);
  911.     }
  912.     if(pDados[id][Advertencias] == 3) {
  913.         format(_string, sizeof(_string), PASTA_BANIDOS, Nome(id));
  914.         getdate(ano, mes, dia);
  915.         gettime(horas, minutos, segundos);
  916.         DOF2::CreateFile(_string);
  917.         DOF2::SetString(_string, "Admin", Nome(playerid));
  918.         DOF2::SetString(_string, "Motivo", "3ª Advertencia");
  919.         DOF2::SetInt(_string, "Dia", dia);
  920.         DOF2::SetInt(_string, "Mes", mes);
  921.         DOF2::SetInt(_string, "Ano", ano);
  922.         DOF2::SetInt(_string, "Horas", horas);
  923.         DOF2::SetInt(_string, "Minutos", minutos);
  924.         DOF2::SetInt(_string, "Segundos", segundos);
  925.         DOF2::SaveFile();
  926.         Kick(id);
  927.         SendFormattedMsgToAll(VERMELHO, "O Admin ( {38FF06}%s{FF030F} ) advertiu o(a) ( {38FF06}%s{FF030F} ) pela terceira vez por ( {38FF06}%s{FF030F} ).", Nome(playerid), Nome(id), texto);
  928.         SendClientMessage(id, VERMELHO, "Você recebeu a 3ª vez, por isso foi banido !");
  929.     }
  930.     return 1;
  931. }
  932.  
  933. command(ban, playerid, params[]) {
  934.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  935.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  936.     if(sscanf(params, "is[32]", id, texto))return SendClientMessage(playerid, CINZA, "USE: /ban [ ID ] [ MOTIVO ]");
  937.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  938.     if(pDados[playerid][Admin] < pDados[id][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  939.  
  940.     format(_string, sizeof(_string), PASTA_BANIDOS, Nome(id));
  941.     getdate(ano, mes, dia);
  942.     gettime(horas, minutos, segundos);
  943.     DOF2::CreateFile(_string);
  944.     DOF2::SetString(_string, "Admin", Nome(playerid));
  945.     DOF2::SetString(_string, "Motivo", texto);
  946.     DOF2::SetInt(_string, "Dia", dia);
  947.     DOF2::SetInt(_string, "Mes", mes);
  948.     DOF2::SetInt(_string, "Ano", ano);
  949.     DOF2::SetInt(_string, "Horas", horas);
  950.     DOF2::SetInt(_string, "Minutos", minutos);
  951.     DOF2::SetInt(_string, "Segundos", segundos);
  952.     DOF2::SaveFile();
  953.     Kick(id);
  954.     SendFormattedMsgToAll(VERMELHO, "O Admin ( {38FF06}%s{FF030F} ) baniu o(a) ( {38FF06}%s{FF030F} ) por ( {38FF06}%s{FF030F} ).", Nome(playerid), Nome(id), texto);
  955.     SendFormattedMsg(playerid, VERMELHO, "O Admin ( {38FF06}%s{FF030F} ) o(a) baniu por ( {38FF06}%s{FF030F} ).", Nome(playerid), texto);
  956.     return 1;
  957. }
  958.  
  959. command(desban, playerid, params[]) {
  960.     new conta[MAX_PLAYER_NAME];
  961.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  962.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  963.     if(sscanf(params, "s[MAX_PLAYER_NAME]", conta))return SendClientMessage(playerid, CINZA, "USE: /desban [ CONTA ]");
  964.  
  965.     format(_string, sizeof(_string), PASTA_BANIDOS, conta);
  966.     if(DOF2::FileExists(_string)) {
  967.         DOF2::RemoveFile(_string);
  968.         SendFormattedMsg(playerid, VERDE_CLARO, "Você desbaniu a conta ( {008040}%s{38FF06} ) !", conta);
  969.     } else return SendFormattedMsg(playerid, VERMELHO, "A Conta ( {38FF06}%s{FF030F} ) não existe/ou não está banida !", conta);
  970.     return 1;
  971. }
  972.  
  973. command(calar, playerid, params[]) {
  974.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  975.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  976.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /calar [ ID ]");
  977.     if(!Conectado[strval(params)])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  978.     if(pDados[strval(params)][Calado])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Este player já está calado !");
  979.     if(pDados[playerid][Admin] < pDados[strval(params)][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  980.     if(strval(params) == playerid)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode usar este comando em si próprio !");
  981.  
  982.     pDados[strval(params)][Calado] = true;
  983.     SendFormattedMsgToAll(AZUL_CLARO, "O Admin ( {1229FA}%s{00C2EC} ) calou o(a) ( {1229FA}%s{00C2EC} ) !", Nome(playerid), Nome(strval(params)));
  984.     SendClientMessage(playerid, CINZA, "USE: {FFFFFF}/descalar{CECECE} , caso queira descalar o player.");
  985.     return 1;
  986. }
  987.  
  988. command(descalar, playerid, params[]) {
  989.     if(pDados[playerid][Admin] < 2)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  990.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  991.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /descalar [ ID ]");
  992.     if(!Conectado[strval(params)])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  993.     if(!pDados[strval(params)][Calado])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Este player não está calado !");
  994.     if(pDados[playerid][Admin] < pDados[strval(params)][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  995.     if(strval(params) == playerid)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode usar este comando em si próprio !");
  996.  
  997.     pDados[strval(params)][Calado] = false;
  998.     SendFormattedMsgToAll(AZUL_CLARO, "O Admin ( {1229FA}%s{00C2EC} ) descalou o(a) ( {1229FA}%s{00C2EC} ) !", Nome(playerid), Nome(strval(params)));
  999.     return 1;
  1000. }
  1001.  
  1002. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  1003.  
  1004. command(prender, playerid, params[]) {
  1005.     new tempo;
  1006.     if(pDados[playerid][Admin] < 3)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1007.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1008.     if(sscanf(params, "iis[32]", id, tempo, texto))return SendClientMessage(playerid, CINZA, "USE: /prender [ ID ] [ SEGUNDOS ] [ MOTIVO ]");
  1009.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  1010.     if(pDados[playerid][Admin] < pDados[id][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  1011.    
  1012.     SetPlayerPos(id, 264.6288, 77.5742, 1001.0391);
  1013.     SetPlayerInterior(id, 6);
  1014.     pDados[id][Preso] = tempo;
  1015.     TimerPreso = SetTimerEx("TempoPreso", 1000, true, "i", id);
  1016.     SendFormattedMsgToAll(VERMELHO, "O Admin ( {38FF06}%s{FF030F} ) prendeu o(a) ( {38FF06}%s{FF030F} ) por ( {38FF06}%isegs{FF030F} ) por ( {38FF06}%s{FF030F} ).", Nome(playerid), Nome(id), pDados[id][Preso], texto);
  1017.     return 1;
  1018. }
  1019.  
  1020. command(soltar, playerid, params[]) {
  1021.     if(pDados[playerid][Admin] < 3)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1022.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1023.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /soltar [ ID ]");
  1024.     if(!Conectado[strval(params)])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  1025.     if(pDados[playerid][Preso] == 0)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Este player não está preso !");
  1026.    
  1027.     pDados[playerid][Preso] = 1;
  1028.     SendFormattedMsgToAll(AZUL_CLARO, "O Admin ( {1229FA}%s{00C2EC} ) soltou o(a) ( {1229FA}%s{00C2EC} ) da prisão !", Nome(playerid), Nome(id));
  1029.     return 1;
  1030. }
  1031.  
  1032. command(banip, playerid, params[]) {
  1033.     if(pDados[playerid][Admin] < 3)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1034.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1035.     if(sscanf(params, "is[32]", id, texto))return SendClientMessage(playerid, CINZA, "USE: /banip [ ID ] [ MOTIVO ]");
  1036.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  1037.     if(pDados[playerid][Admin] < pDados[id][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  1038.     if(!DOF2::FileExists("mAdmin/Banidos/Ips.txt")) DOF2::CreateFile("mAdmin/Banidos/Ips.txt");
  1039.    
  1040.     GetPlayerIp(id, ip, 25);
  1041.     format(_string, sizeof(_string), "%s", ip);
  1042.     format(_@STR, sizeof(_@STR), "Admin = %s - Motivo = %s", Nome(playerid), texto);
  1043.     DOF2::SetString("mAdmin/Banidos/Ips.txt", _string, _@STR);
  1044.     DOF2::SaveFile();
  1045.     Kick(id);
  1046.     SendFormattedMsgToAll(VERMELHO, "O Admin ( {38FF06}%s{FF030F} ) baniu o ip do(a) ( {38FF06}%s{FF030F} ) por ( {38FF06}%s{FF030F} ).", Nome(playerid), Nome(id), texto);
  1047.     SendFormattedMsg(playerid, VERMELHO, "O Admin ( {38FF06}%s{FF030F} ) o(a) baniu pelo ip por ( {38FF06}%s{FF030F} ).", Nome(playerid), texto);
  1048.     return 1;
  1049. }
  1050.  
  1051. command(desbanip, playerid, params[]) {
  1052.     if(pDados[playerid][Admin] < 3)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1053.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1054.     if(sscanf(params, "s[25]", ip))return SendClientMessage(playerid, CINZA, "USE: /desbanip [ IP ]");
  1055.     if(!DOF2::IsSet("mAdmin/Banidos/Ips.txt", ip))return SendClientMessage(playerid, VERMELHO, "( ERRO ): Este ip não está banido !");
  1056.  
  1057.     DOF2::Unset("mAdmin/Banidos/Ips.txt", ip);
  1058.     SendFormattedMsgToAll(VERMELHO, "O Admin ( {38FF06}%s{FF030F} )desbaniu o ip ( {38FF06}%s{FF030F} ).", Nome(playerid), ip);
  1059.     return 1;
  1060. }
  1061.  
  1062. command(enquete, playerid, params[]) {
  1063.     if(pDados[playerid][Admin] < 3)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1064.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1065.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /enquete [ PERGUNTA ]");
  1066.     if(eDados[Criada])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Já possui uma enquete em andamento !");
  1067.    
  1068.     eDados[Criada] = true;
  1069.     eDados[Titulo] = strlen(params);
  1070.     format(_@STR, sizeof(_@STR), "{FFFFFF}[ mAdmin ] - Enquete de %s.", Nome(playerid));
  1071.     format(_string, sizeof(_string), "%s", strlen(params));
  1072.     foreach(Player, i) {
  1073.         ShowPlayerDialog(i, DIALOG_ENQUETE, DIALOG_STYLE_MSGBOX, _@STR, _string, "Sim", "Não");
  1074.     }
  1075.     SetTimer("FecharEnquete", 30000, false);
  1076.     SendClientMessage(playerid, AZUL_CLARO, "( INFO ): A enquete será fechada em ( {1229FA}30 segs{00C2EC} ).");
  1077.     return 1;
  1078. }
  1079.  
  1080. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  1081.  
  1082. command(setarskin, playerid, params[]) {
  1083.     new skin;
  1084.     if(pDados[playerid][Admin] < 4)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1085.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1086.     if(sscanf(params, "ii", id, skin))return SendClientMessage(playerid, CINZA, "USE: /setarskin [ ID ] [ SKIN ]");
  1087.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  1088.     if(pDados[playerid][Admin] < pDados[id][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  1089.     if(skin < 1 || skin > 299)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Skins apenas de 1 á 299 !");
  1090.  
  1091.     SetPlayerSkin(id, skin);
  1092.     SendFormattedMsgToAll(VERDE_CLARO, "O Admin ( {008040}%s{38FF06} ) setou a skin do(a) ( {008040}%s{38FF06} ) para ( {008040}%i{38FF06} ).", Nome(playerid), Nome(id), skin);
  1093.     return 1;
  1094. }
  1095.  
  1096. command(setarlevel, playerid, params[]) {
  1097.     new score;
  1098.     if(pDados[playerid][Admin] < 4)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1099.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1100.     if(sscanf(params, "ii", id, score))return SendClientMessage(playerid, CINZA, "USE: /setarlevel [ ID ] [ LEVEL ]");
  1101.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  1102.     if(pDados[playerid][Admin] < pDados[id][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  1103.    
  1104.     SetPlayerScore(id, score);
  1105.     SendFormattedMsgToAll(VERDE_CLARO, "O Admin ( {008040}%s{38FF06} ) setou o score do(a) ( {008040}%s{38FF06} ) para ( {008040}%i{38FF06} ).", Nome(playerid), Nome(id), score);
  1106.     return 1;
  1107. }
  1108.  
  1109. command(setargrana, playerid, params[]) {
  1110.     new money;
  1111.     if(pDados[playerid][Admin] < 4)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1112.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1113.     if(sscanf(params, "ii", id, money))return SendClientMessage(playerid, CINZA, "USE: /setargrana [ ID ] [ GRANA ]");
  1114.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  1115.     if(pDados[playerid][Admin] < pDados[id][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  1116.    
  1117.     SetPlayerMoney(id, money);
  1118.     SendFormattedMsgToAll(VERDE_CLARO, "O Admin ( {008040}%s{38FF06} ) setou o dinheiro do(a) ( {008040}%s{38FF06} ) para ( {008040}%i{38FF06} ).", Nome(playerid), Nome(id), money);
  1119.     return 1;
  1120. }
  1121.  
  1122. command(setarvida, playerid, params[]) {
  1123.     new health;
  1124.     if(pDados[playerid][Admin] < 4)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1125.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1126.     if(sscanf(params, "ii", id, health))return SendClientMessage(playerid, CINZA, "USE: /setarvida [ ID ] [ VIDA ]");
  1127.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  1128.     if(pDados[playerid][Admin] < pDados[id][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  1129.     if(health < 1 || health > 100)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Vida apenas de 1 á 100 !");
  1130.  
  1131.     SetPlayerHealth(id, health);
  1132.     SendFormattedMsgToAll(VERDE_CLARO, "O Admin ( {008040}%s{38FF06} ) setou a vida do(a) ( {008040}%s{38FF06} ) para ( {008040}%i{38FF06} ).", Nome(playerid), Nome(id), health);
  1133.     return 1;
  1134. }
  1135.  
  1136. command(setarcolete, playerid, params[]) {
  1137.     new armour;
  1138.     if(pDados[playerid][Admin] < 4)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1139.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1140.     if(sscanf(params, "ii", id, armour))return SendClientMessage(playerid, CINZA, "USE: /setarcolete [ ID ] [ COLETE ]");
  1141.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  1142.     if(pDados[playerid][Admin] < pDados[id][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  1143.     if(armour < 1 || armour > 100)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Colete apenas de 1 á 100 !");
  1144.  
  1145.     SetPlayerArmour(id, armour);
  1146.     SendFormattedMsgToAll(VERDE_CLARO, "O Admin ( {008040}%s{38FF06} ) setou o colete do(a) ( {008040}%s{38FF06} ) para ( {008040}%i{38FF06} ).", Nome(playerid), Nome(id), armour);
  1147.     return 1;
  1148. }
  1149.  
  1150. command(gmx, playerid, params[]) {
  1151.     if(pDados[playerid][Admin] < 4)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1152.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1153.  
  1154.     GameTextForAll("~r~Reiniciando ~g~Aguarde...", 4000, 3);
  1155.     foreach(Player, i) SalvarDados(i), OnPlayerSaveWeapon(i);
  1156.     SendRconCommand("gmx");
  1157.     return 1;
  1158. }
  1159.  
  1160. command(resetarconta, playerid, params[]) {
  1161.     if(pDados[playerid][Admin] < 4)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1162.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1163.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /resetarconta [ ID ]");
  1164.     if(pDados[playerid][Admin] < pDados[strval(params)][Admin])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não pode fazer nada contra um superior !");
  1165.    
  1166.     pDados[strval(params)][Admin] = 0;
  1167.     pDados[strval(params)][Preso] = 0;
  1168.     pDados[strval(params)][Advertencias] = 0;
  1169.     pDados[strval(params)][Congelado] = false;
  1170.     pDados[strval(params)][Assistindo] = false;
  1171.     pDados[strval(params)][Autorizado] = false;
  1172.     pDados[strval(params)][Trabalhando] = false;
  1173.     pDados[strval(params)][Calado] = false;
  1174.     pDados[strval(params)][Ausente] = false;
  1175.     SetPlayerScore(strval(params), 5);
  1176.     SetPlayerMoney(strval(params), 10000);
  1177.     SetPlayerSkin(strval(params), 289);
  1178.     SpawnPlayer(strval(params));
  1179.     SendFormattedMsgToAll(AZUL_CLARO, "O Admin ( {1229FA}%s{00C2EC} ) resetou a conta do(a) ( {1229FA}%s{00C2EC} ) !", Nome(playerid), Nome(id));
  1180.     return 1;
  1181. }
  1182.  
  1183. command(autorizar, playerid, params[]) {
  1184.     if(pDados[playerid][Admin] < 4)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1185.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1186.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /autorizar [ ID ]");
  1187.  
  1188.     pDados[strval(params)][Autorizado] = true;
  1189.     SendFormattedMsg(strval(params), VERDE_CLARO, "O Admin ( {008040}%s{38FF06} ) o(a) autorizou a mudar de nome/senha !", Nome(playerid));
  1190.     SendFormattedMsg(strval(params), VERDE_CLARO, "Você autorizou o(a) ( {008040}%s{38FF06} ) a mudar de nome/senha !", Nome(strval(params)));
  1191.     return 1;
  1192. }
  1193.  
  1194. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  1195.  
  1196. command(daradmin, playerid, params[]) {
  1197.     new admin;
  1198.     if(pDados[playerid][Admin] < 5)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1199.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1200.     if(sscanf(params, "ii", id, admin))return SendClientMessage(playerid, CINZA, "USE: /daradmin [ ID ] [ LEVEL ]");
  1201.     if(!Conectado[id])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  1202.     if(admin < 1 || admin > 5)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Level apenas de 1 á 5 !");
  1203.    
  1204.     SetPVarInt(id, "Level", admin), SetPVarInt(id, "QuemConvidou", playerid);
  1205.     format(_string, sizeof(_string), "{FFFFFF}O Admin ( {00FFFF}%s{FFFFFF} ) está o(a) convidando\npara ser administrador ( {00FFFF}%i{FFFFFF} ).", Nome(playerid), admin);
  1206.     ShowPlayerDialog(id, DIALOG_CADMIN, DIALOG_STYLE_MSGBOX, "{FFFFFF}[ mAdmin ] - Convite.", _string, "Aceitar", "Declinar");
  1207.     return 1;
  1208. }
  1209.  
  1210. command(tiraradmin, playerid, params[]) {
  1211.     if(pDados[playerid][Admin] < 5)return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não possui permissão para usar este comando !");
  1212.     if(!pDados[playerid][Trabalhando])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está em modo trabalho, use: {FFFFFF}/trabalhar");
  1213.     if(isnull(params))return SendClientMessage(playerid, CINZA, "USE: /tiraradmin [ ID ]");
  1214.     if(!Conectado[strval(params)])return SendClientMessage(playerid, VERMELHO, "( ERRO ): Id não conectado !");
  1215.    
  1216.     pDados[strval(params)][Admin] = 0;
  1217.     SendFormattedMsgToAll(AZUL_CLARO, "O Admin ( {1229FA}%s{00C2EC} ) removeu o admin do(a) ( {1229FA}%s{00C2EC} ) !", Nome(playerid), Nome(strval(params)));
  1218.     return 1;
  1219. }
  1220.  
  1221. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  1222.  
  1223. command(setadmin, playerid, params[]) {
  1224.     if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, VERMELHO, "( ERRO ): Você não está logado na RCON !");
  1225.    
  1226.     pDados[playerid][Admin] = 5;
  1227.     SendClientMessage(playerid, VERDE, "Bem-vindo(a) a administração !");
  1228.     return 1;
  1229. }
  1230.  
  1231. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement