Pages

Ads 468x60px


[FilterScript] Sistema de admin



É, imagino que devam estar cansados de sistema de admins, mas não consegui conter a vontade de postar...
Fiz este FS de ontem pra hoje.


Horas de trabalho: 7 horas
Linhas escritas: 1096
Comandos: 45 tirando o /aa


 Indice:


• /gmx - Reinicia o script GameMode
• /repararid - repara o seu carro, caso não esteja dentro de um carro o comando se torna /repararid [id]
• /respawn - manda todos os carros de volta para seus lugares de origem
• /carro - cria um carro novo de admin
• /destruir - destroi o carro criado, apenas o carro criado...
• /carroantigo - ressucita o carro destruido, caso queira...
• /mudarcor - muda a cor do carro que está, caso não esteja dentro de um carro comando se torna /mudarcor [id]
• /ir - ir até um player /ir [id]
• /trazer - trazer um player até você /trazer [id]
• /trazertodos - trazer todos os players para você
• /matar - matar alguem /matar [id]
• /skin - escolhe a skin de um player /skin [id]
• /darvida - dá vida para um player /darvida [id]
• /darcolete - dar colete para um player /darcolete [id]
• /dararma - dar tal arma para o player /dararma [id] [arma] [munições]
• /retirararmas - retira armas do player /retirararmas [id]
• /congelar - imobiliza o player /congelar [id]
• /descongelar - contrário da função acima
• /ircarro - vai até um carro, /ircarro [id]
• /trazercarro - trazer um carro até você, /trazer [id]
• /ls - /lsa - /sf - /sfa - /lv - /lva - Teleports
• /tapa - dar um tapa em alguém, /tapa [id]
• /daradmin - dar admin para alguém, /daradmin [id] (é necessário estar logado como Rcon)
• /admins - Vê os admins disponíveis
• /ban - /banoff - /banip - /desban - ban = natural, com motivo... banoff = silêncioso, sem motivo, ban por ip e desban...
• /kick - /kickoff - kick natural, com motivo e kickoff silêncioso
• /verip - ver o ip de algum jogador.
• /relatorio - /av - /par - /blockpar - relatorio para admins online(dialog), av de admins para jogadores, particulares e bloquear particulares(somente admins)
• /jogar - uma vez /jogar entra modo jogo, outra modo trabalho...
• /z - seta a sua posição Z... Altura!
• /shutup - cala um jogador, para que não fale...
• /a - Chat de administradores.
• /tv - /tvoff - entra no modo tv sobre algum player, tvoff sai do modo TV...


----------------------------------------------------------------------------------------


Galera não foi postado fotos ainda porque não consegui dormir.
Mas assim que eu acordar estiver menos cansado vou atualizando o tópico mais e mais e posto fotos, caso vocês queiram...




(OBS) não foi organizado os comandos de níveis em níveis porque nem todos gostam de que isso seja pra nível 1
e aquilo pra nível 2 e etc pra nível 3, então espero que vocês deem conta dessa parte...


Tips:
Code:
work_db[MAX_PLAYERS]  = Booleana que verifica se admin tal está trabalhando.
admin_db[MAX_PLAYERS][IsAdmin] = Verifica se o player tal é admin...
admin_db[MAX_PLAYERS][AdminLvl] = Verifica o level de admin de tal player...

---------------------------------------------------------------------

if(!work_db[playerid]) modo jogo
if(work_db[playerid]) modo trabalho

if(admin_db[playerid][IsAdmin]) true admin
if(!admin_db[playerid][IsAdmin]) false admin

if(admin_db[playerid][AdminLvl] > x..) isso vocês podem útilizar para modificar os níveis dos comandos de admin para admin.

Aviso: scriptfiles são necessários duas pastas ! Banidos, Admins
----------------------------------------------------------------------------------------


Source:
pawn Code:
/******************************************************************************* |                                                                              | |                        FilterScript by Jeffrey_Hatrix                        | |                                                                              | *******************************************************************************/ // Diretivas =================================================================== #include <a_samp> #include <ZCMD> #include <sscanf2> #include <SII> // Inicializadores ============================================================= enum systemAdmins {     bool:IsAdmin,     AdminLvl }; static admin_db[MAX_PLAYERS][systemAdmins]; new Float:x, Float:y, Float:z, Float:a; enum carIdCreated {     bool:newCar,     bool:oldCar,     ModelOld,     IdUpdate,     color1,     color2 }; static cars_db[MAX_PLAYERS][carIdCreated]; static bool:work_db[MAX_PLAYERS]; new bool:Aberto[MAX_PLAYERS], getId; new bool:CallOff[MAX_PLAYERS]; new strGlobal[0x80]; new bool:parBlock[MAX_PLAYERS]; new bool:tv_on[MAX_PLAYERS]; // Callbacks =================================================================== public OnFilterScriptInit() {     print("\nAdminSt Jeffrey FilterScript loaded.\n");     print("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                      Jeffrey_Hatrix EfficientPawnProgrammer.\n\n");     print("                                    Commands:");     print("                   ---------------------------------------------");     print("                   |                                           |");     print("                   |    /GMX, /repararid, /respawn, /carro     |");     print("                   |    /destruir, /carroantigo, /mudarcor     |");     print("                   |    /ir, /trazer, /trazertodos, /matar     |");     print("                   |    /skin, /darvida, /darcolete, /dararma  |");     print("                   |    /retirararmas, /congelar, /descongelar |");     print("                   |    /ircarro, /trazercarro, /ls, /lsa      |");     print("                   |    /sf, /sfa, /lv, /lva, /tapa, /daradmin |");     print("                   |    /dartemp, /admins, /ban, /banoff       |");     print("                   |    /banip, /kick, /kickoff, /desban       |");     print("                   |    /verip, /relatorio, /av, /jogar        |");     print("                   |    /z, /tv, /a, /shutup, /par, /blockpar  |");     print("                   |                                           |");     print("                   ---------------------------------------------\n\n\n");     return 0x01; } public OnPlayerConnect(playerid) {     new banidos[0x2D];     format(banidos, sizeof(banidos), "Banidos/%s.ini", Nick(playerid));     if(INI_Exist(banidos))     {         new adm[0x1E], motivo[0x37];         TogglePlayerControllable(playerid, 0);         INI_Open(banidos);         INI_ReadString(adm, "Admin", 30);         INI_ReadString(motivo, "Motivo", 60);         new Ano, Mes, Dia, Hor, Min;         Ano = INI_ReadInt("Ano");         Mes = INI_ReadInt("Mês");         Dia = INI_ReadInt("Dia");         Hor = INI_ReadInt("Hora");         Min = INI_ReadInt("Minuto");         INI_Save();         INI_Close();         format(strGlobal, 0x80, "Você foi banido pelo admin: %s\n\nMotivo: %s\n\nData: [%d/%d/%d]\nHorario: [%d:%d]", adm, motivo, Dia, Mes, Ano, Hor, Min);         ShowPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "{EA1515}BANIDO !", strGlobal, "Ok", "");         return 0x01;     }     new ips[0x3F];     GetPlayerIp(playerid, ips, sizeof(ips));     format(strGlobal, 0x2D, "Banidos/%s.ini", ips);     if(INI_Exist(strGlobal))         return ShowPlayerDialog(playerid, 7, DIALOG_STYLE_MSGBOX, "{EA1515}BANIDO !", "Este IP foi banido do servidor!", "Ok", "");     admin_db[playerid][IsAdmin] = false;     admin_db[playerid][AdminLvl] = 0x00;     format(strGlobal, 0x2D, "Admins/%s.ini", Nick(playerid));     if(INI_Exist(strGlobal))     {         INI_Open(strGlobal);         admin_db[playerid][AdminLvl] = INI_ReadInt("AdminLevel");         admin_db[playerid][IsAdmin] = true;         work_db[playerid] = true;         GodAdmin(playerid, true);         return 0x01;     }     return 0x00; } public OnPlayerText(playerid, text[]) {     if(CallOff[playerid])         return SendClientMessage(playerid, -1, "Você ainda não pode falar..."), 0x00;     else if(!CallOff[playerid])         return 0x01;     return 0x00; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {     switch(dialogid)     {         case 0x02:         {             switch(response)             {                 case 0x00..0x01:                 {                     Kick(playerid);                     return 0x01;                 }             }         }         case 0x03:         {             switch(response)             {                 case 0x01:                 {                     getId = playerid;                     Aberto[getId] = true;                     format(strGlobal, 0x80, "ID:[%d] Nick:[%s] Relatório: %s", playerid, Nick(playerid), inputtext);                     for(new iLoop; iLoop < MAX_PLAYERS; iLoop++)                     {                         if(admin_db[iLoop][IsAdmin])                         {                             ShowPlayerDialog(iLoop, 4, DIALOG_STYLE_MSGBOX, "Relatório", strGlobal, "Responder", "Fechar");                         }                     }                     return 0x01;                 }             }         }         case 0x04:         {             switch(response)             {                 case 0x00:                 {                     Aberto[getId] = false;                     return 0x01;                 }                 case 0x01:                 {                     ShowPlayerDialog(playerid, 5, DIALOG_STYLE_INPUT, "Resposta", "Digite a sua resposta ao relato anterior", "Enviar", "");                     return 0x01;                 }             }         }         case 0x05:         {             switch(response)             {                 case 0x01:                 {                     format(strGlobal, 0x80, "Admin: %s respondeu: %s", Nick(playerid), inputtext);                     ShowPlayerDialog(getId, 6, DIALOG_STYLE_MSGBOX, "Resposta", strGlobal, "Ok", "");                     Aberto[getId] = false;                     return 0x01;                 }             }         }         case 0x07:         {             switch(response)             {                 case 0x00..0x01:                 {                     Kick(playerid);                     return 0x01;                 }             }         }     }     return 0x00; } // Comandos ==================================================================== CMD:gmx(playerid) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");     SendClientMessageToAll(-1, "GMX, aguardem!");     SendRconCommand("gmx");     return 0x01; } CMD:repararid(playerid, params[]) {     if(IsPlayerInAnyVehicle(playerid))     {         RepairVehicle(GetPlayerVehicleID(playerid));         SendClientMessage(playerid, -1, "Carro reparado!");         return 0x01;     }     else     {         new carId;         if(sscanf(params, "i", carId))             return SendClientMessage(playerid, -1, "Comando: /repararid [id]");         RepairVehicle(carId);         SendClientMessage(playerid, -1, "Carro reparado!");     }     return 0x01; } CMD:respawn(playerid) {     for(new iLoop; iLoop < MAX_VEHICLES; iLoop++)     {         SetVehicleToRespawn(iLoop);     }     SendClientMessage(playerid, -1, "Carros respawnados!");     return 0x01; } CMD:carro(playerid, params[]) {     if(cars_db[playerid][oldCar])         return SendClientMessage(playerid, -1, "Você já tem um veículo criado, /destruir, para poder criar outro.");     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new carId, cor1, cor2;     if(sscanf(params, "iii", carId, cor1, cor2))         return SendClientMessage(playerid, -1, "Comando: /carro [id][cor1][cor2]");             GetPlayerPos(playerid, x, y, z);     GetPlayerFacingAngle(playerid, a);     cars_db[playerid][color1] = cor1;     cars_db[playerid][color2] = cor2;     cars_db[playerid][oldCar] = true;     cars_db[playerid][ModelOld] = carId;     cars_db[playerid][IdUpdate] = CreateVehicle(carId, x, y, z, a, cor1, cor2, 99999999);     PutPlayerInVehicle(playerid, cars_db[playerid][IdUpdate], 0);     SendClientMessage(playerid, -1, "Você criou um carro novo, /destruir para destrui-lo");     return 0x01; } CMD:destruir(playerid) {     if(!cars_db[playerid][oldCar])         return SendClientMessage(playerid, -1, "Você não criou nenhum veículo, /carro, para criar um...");     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             DestroyVehicle(cars_db[playerid][IdUpdate]);     cars_db[playerid][oldCar] = false;     SendClientMessage(playerid, -1, "Você destruiu seu carro antigo, /carro para criar um novo carro.");     return 0x01; } CMD:carroantigo(playerid) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             if(cars_db[playerid][oldCar])         return SendClientMessage(playerid, -1, "Você já ressucitou seu carro antigo, ou já tem um carro criado, /destruir antes de tudo.");     GetPlayerPos(playerid, x, y, z);     GetPlayerFacingAngle(playerid, a);     cars_db[playerid][IdUpdate] = CreateVehicle(cars_db[playerid][ModelOld], x, y, z, a, cars_db[playerid][color1], cars_db[playerid][color2], 9999999);     cars_db[playerid][oldCar] = true;     PutPlayerInVehicle(playerid, cars_db[playerid][IdUpdate], 0);     SendClientMessage(playerid, -1, "Você ressucitou um carro antigo, /destruir para destrui-lo");     return 0x01; } CMD:mudarcor(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new carId, cor1, cor2;     if(IsPlayerInAnyVehicle(playerid))     {         if(sscanf(params, "ii", cor1, cor2))             return SendClientMessage(playerid, -1, "Comando: /mudarcor [cor1][cor2]");                     ChangeVehicleColor(GetPlayerVehicleID(playerid), cor1, cor2);     }     else     if(sscanf(params, "iii", carId, cor1, cor2))         return SendClientMessage(playerid, -1, "Comando: /mudarcor [id][cor1][cor2]");     cars_db[playerid][color1] = cor1;     cars_db[playerid][color2] = cor2;     ChangeVehicleColor(carId, cor1, cor2);     SendClientMessage(playerid, -1, "Você mudou as cores de seu carro !");     return 0x01; } CMD:ir(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /ir [id]");             if(PlayerB == playerid)         return SendClientMessage(playerid, -1, "Você não pode ir até você mesmo.");             GetPlayerPos(PlayerB, x, y, z);     SetPlayerPos(playerid, x+1, y+1, z);     format(strGlobal, 0x2D, "Você foi até o player: %s", Nick(PlayerB));     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x2D, "O admin %s veio até você", Nick(playerid));     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:trazer(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /trazer [id]");             if(PlayerB == playerid)         return SendClientMessage(playerid, -1, "Você não pode trazer você até você mesmo.");             GetPlayerPos(playerid, x, y, z);     SetPlayerPos(playerid, x+1, y+1, z);     format(strGlobal, 0x2D, "Você trouxe o player: %s", Nick(PlayerB));     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x2D, "O admin %s levou você até ele", Nick(playerid));     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:trazertodos(playerid) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");     for(new iLoop; iLoop < MAX_PLAYERS; iLoop++)     {         if(!admin_db[iLoop][IsAdmin])         {             GetPlayerPos(playerid, x, y, z);             SetPlayerPos(iLoop, x+1, y+1, z);         }     }     format(strGlobal, 0x2D, "O admin %s teleportou todos players até ele!", Nick(playerid));     SendClientMessageToAll(-1, strGlobal);     return 0x01; } CMD:matar(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /matar [id]");             if(PlayerB == playerid)         return SendClientMessage(playerid, -1, "Você não pode matar a sí mesmo");             SetPlayerHealth(PlayerB, 0);     format(strGlobal, 0x2D, "Você matou o player: %s", Nick(PlayerB));     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x2D, "O admin %s matou você", Nick(playerid));     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:skin(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB, skinId;     if(sscanf(params, "ii", PlayerB, skinId))         return SendClientMessage(playerid, -1, "Comando: /skin [id][idskin]");     SetPlayerSkin(PlayerB, skinId);     format(strGlobal, 0x32, "Você setou a skin do player: %s, para %d", Nick(PlayerB), skinId);     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x32, "O admin %s setou sua skin para %d", Nick(playerid), skinId);     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:darvida(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB, Float:vida;     if(sscanf(params, "ii", PlayerB, vida))         return SendClientMessage(playerid, -1, "Comando: /darvida [id][valor]");             new Float:getVida;     GetPlayerHealth(playerid, getVida);     SetPlayerHealth(playerid, getVida+vida);     format(strGlobal, 0x32, "Você setou a vida do player: %s, para %d", Nick(PlayerB), vida);     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x32, "O admin %s setou sua vida para %d", Nick(playerid), vida);     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:darcolete(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB, Float:colete;     if(sscanf(params, "ii", PlayerB, colete))         return SendClientMessage(playerid, -1, "Comando: /darcolete [id][valor]");             new Float:getColete;     GetPlayerArmour(playerid, getColete);     SetPlayerArmour(playerid, getColete+colete);     format(strGlobal, 0x32, "Você setou o colete do player: %s, para %d", Nick(PlayerB), colete);     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x32, "O admin %s setou seu colete para %d", Nick(playerid), colete);     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:dararma(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB, arma, mun;     if(sscanf(params, "iii", PlayerB, arma, mun))         return SendClientMessage(playerid, -1, "Comando: /dararma [id][arma][munição]");             GivePlayerWeapon(PlayerB, arma, mun);     format(strGlobal, 0x3C, "Você deu %d munições de %d para o player: %s", mun, arma, Nick(PlayerB));     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x3C, "O admin %s deu %d munições de %d para você", Nick(playerid), mun, arma);     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:retirararmas(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /retirararmas [id]");             ResetPlayerWeapons(PlayerB);     format(strGlobal, 0x32, "Você resetou as armas do player: %s", Nick(PlayerB));     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x32, "O admin %s retirou suas armas!", Nick(playerid));     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:congelar(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /congelar [id]");             TogglePlayerControllable(PlayerB, 0);     format(strGlobal, 0x32, "Você congelou o player: %s", Nick(PlayerB));     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x32, "O admin %s congelou você!", Nick(playerid));     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:descongelar(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /descongelar [id]");             TogglePlayerControllable(PlayerB, 1);     format(strGlobal, 0x32, "Você descongelou o player: %s", Nick(PlayerB));     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x32, "O admin %s descongelou você!", Nick(playerid));     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:ircarro(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new carId;     if(sscanf(params, "i", carId))         return SendClientMessage(playerid, -1, "Comando: /ircarro [id]");             PutPlayerInVehicle(playerid, carId, 0);     format(strGlobal, 0x2D, "Você foi até o carro %d", carId);     SendClientMessage(playerid, -1, strGlobal);     return 0x01; } CMD:trazercarro(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new carId;     if(sscanf(params, "i", carId))         return SendClientMessage(playerid, -1, "Comando: /trazercarro [id]");             GetPlayerPos(playerid, x, y, z);     SetVehiclePos(carId, x+2, y+2, z);     PutPlayerInVehicle(playerid, carId, 0);     format(strGlobal, 0x2D, "Você trouxe o carro %d até você", carId);     SendClientMessage(playerid, -1, strGlobal);     return 0x01; } CMD:ls(playerid) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             SetPlayerPos(playerid, 1243.2365, -1692.5746, 16.1976);     SetPlayerFacingAngle(playerid, 180.7490);     SendClientMessage(playerid, -1, "Bem vindo à Los Santos!");     return 0x01; } CMD:lsa(playerid) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             SetPlayerPos(playerid,1893.3164,-2329.0193,13.5469);     SetPlayerFacingAngle(playerid, 35.0668);     SendClientMessage(playerid, -1, "Bem vindo ao Aeroporto de Los Santos!");     return 0x01; } CMD:lv(playerid) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             SetPlayerPos(playerid, 1674.4037,1447.6370, 10.7904);     SetPlayerFacingAngle(playerid, 72.5065);     SendClientMessage(playerid, -1, "Bem vindo à Las Venturas!");     return 0x01; } CMD:lva(playerid) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             SetPlayerPos(playerid, 1512.3953,1703.5693,10.8203);     SetPlayerFacingAngle(playerid, 22.3513);     SendClientMessage(playerid, -1, "Bem vindo ao Aeroporto de Las Venturas!");     return 0x01; } CMD:sfa(playerid) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             SetPlayerPos(playerid, -1450.6621,-273.2752,14.1484);     SetPlayerFacingAngle(playerid, 243.1030);     SendClientMessage(playerid, -1, "Bem vindo ao Aeroporto de San Fierro!");     return 0x01; } CMD:sf(playerid) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             SetPlayerPos(playerid, -1989.2897,1040.2900,55.7266);     SetPlayerFacingAngle(playerid, 176.1217);     SendClientMessage(playerid, -1, "Bem vindo à San Fierro!");     return 0x01; } CMD:tapa(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /tapa [id]");     GetPlayerPos(PlayerB, x, y, z);     SetPlayerPos(PlayerB, x, y, z+0x14);     format(strGlobal, 0x37, "Você deu um tapa no player: %s", Nick(PlayerB));     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x37, "O admin %s deu um tapa em você!", Nick(playerid));     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:daradmin(playerid, params[]) {     if(!IsPlayerAdmin(playerid))         return SendClientMessage(playerid, -1, "Você não é um administrador Rcon.");     new PlayerB, lvl;     if(sscanf(params, "ii", PlayerB, lvl))         return SendClientMessage(playerid, -1, "Comando: /daradmin [id][nível]");             if(lvl == 0x01)         return SendClientMessage(playerid, -1, "Para dar admin temporário use /dartemp");             if(lvl == 0x00)     {         format(strGlobal, 0x28, "Admins/%s.ini", Nick(playerid));         INI_Remove(strGlobal);         admin_db[playerid][IsAdmin] = false;         admin_db[playerid][AdminLvl] = 0x00;         return 0x01;     }     admin_db[playerid][IsAdmin] = true;     admin_db[playerid][AdminLvl] = lvl;     GodAdmin(PlayerB, true);     SalvarAdmins(PlayerB);     format(strGlobal, 0x3C, "Você deu nível %d de admin para: %s", lvl, Nick(PlayerB));     SendClientMessage(playerid, -1, strGlobal);     format(strGlobal, 0x3C, "O admin %s deu nível %d de admin para você!", Nick(playerid), lvl);     SendClientMessage(PlayerB, -1, strGlobal);     return 0x01; } CMD:admins(playerid) {     for(new iLoop; iLoop < MAX_PLAYERS; iLoop++)     {         if(IsPlayerConnected(iLoop))         {             if(admin_db[iLoop][IsAdmin])             {                 format(strGlobal, 0x37, "| Admin %s, nível: %d |\n", Nick(iLoop), admin_db[iLoop][AdminLvl]);                 ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Admins online", strGlobal, "Ok", "");                 return 0x01;             }         }         else         {             SendClientMessage(playerid, -1, "Nenhum admin online !");             break;         }     }     return 0x01; } CMD:ban(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB, motivo[0x80];     if(sscanf(params, "is[128]", PlayerB, motivo))         return SendClientMessage(playerid, -1, "Comando: /ban [id][motivo]");             if(PlayerB != playerid)     {         if(PlayerB != INVALID_PLAYER_ID)         {             new sec, ye, min1, day, mon, hour;             getdate(ye, mon, day);             gettime(hour, min1, sec);             format(strGlobal, 0x2D, "Banidos/%s.ini", Nick(PlayerB));             INI_Open(strGlobal);             INI_WriteString("Motivo", motivo);             INI_WriteInt("Dia", day);             INI_WriteInt("Mês", mon);             INI_WriteInt("Ano", ye);             INI_WriteInt("Hora", hour);             INI_WriteInt("Minuto", min1);             INI_WriteInt("Segundo", sec);             INI_WriteString("Admin", Nick(playerid));             INI_Save();             INI_Close();             format(strGlobal, 0x80, "Você foi banido pelo admin %s, motivo: %s", Nick(playerid), motivo);             SendClientMessage(playerid, -1, strGlobal);             format(strGlobal, 0x80, "%s foi banido por %s, motivo: %s", Nick(PlayerB), Nick(playerid), motivo);             SendClientMessageToAll(-1, strGlobal);         }         Kick(PlayerB);         return 0x01;     }     return 0x01; } CMD:kick(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB, motivo[0x80];     if(sscanf(params, "is[128]", PlayerB, motivo))         return SendClientMessage(playerid, -1, "Comando: /kick [id][motivo]");             if(PlayerB != playerid)     {         if(PlayerB != INVALID_PLAYER_ID)         {             format(strGlobal, 0x80, "Você levou Kick do admin %s, motivo: %s", Nick(playerid), motivo);             SendClientMessage(playerid, -1, strGlobal);             format(strGlobal, 0x80, "%s foi kikado por %s, motivo: %s", Nick(PlayerB), Nick(playerid), motivo);             SendClientMessageToAll(-1, strGlobal);         }         Kick(PlayerB);         return 0x01;     }     return 0x01; } CMD:kickoff(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /kickoff [id]");             if(PlayerB != playerid)     {         if(PlayerB != INVALID_PLAYER_ID)         {             SendClientMessage(playerid, -1, "Você foi kikado !");         }         Kick(PlayerB);         return 0x01;     }     return 0x01; } CMD:banoff(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         SendClientMessage(playerid, -1, "Comando: /banoff [id]");             if(PlayerB != playerid)     {         if(PlayerB != INVALID_PLAYER_ID)         {             new sec, ye, min1, day, mon, hour;             getdate(ye, mon, day);             gettime(hour, min1, sec);             format(strGlobal, 0x2D, "Banidos/%s.ini", Nick(PlayerB));             INI_Open(strGlobal);             INI_WriteString("Motivo", "Banido silênciosamente");             INI_WriteInt("Dia", day);             INI_WriteInt("Mês", mon);             INI_WriteInt("Ano", ye);             INI_WriteInt("Hora", hour);             INI_WriteInt("Minuto", min1);             INI_WriteInt("Segundo", sec);             INI_WriteString("Admin", Nick(playerid));             INI_Save();             INI_Close();             SendClientMessage(playerid, -1, "Você foi banido !");         }         Kick(PlayerB);         return 0x01;     }     return 0x01; } CMD:banip(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /banip [id]");             if(PlayerB != playerid)     {         if(PlayerB != INVALID_PLAYER_ID)         {             new ips[0x3C];             GetPlayerIp(playerid, ips, sizeof( ips ));             format(strGlobal, 0x2D, "Banidos/%s.ini", ips);             INI_Open(strGlobal);             INI_WriteString("Banido pelo IP", ips);             INI_Save();             INI_Close();             format(strGlobal, 0x41, "Player %s foi banido pelo IP por %s", Nick(PlayerB), Nick(playerid));             SendClientMessageToAll(-1, strGlobal);             SendClientMessage(playerid, -1, "Seu ip foi banido !");         }         Kick(PlayerB);         return 0x01;     }     return 0x01; } CMD:desban(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new nickBan[MAX_PLAYER_NAME];     if(sscanf(params, "s[24]", nickBan))         return SendClientMessage(playerid, -1, "Comando: /desban [nome]");             format(strGlobal, 0x2D, "Banidos/%s.ini", nickBan);     if(INI_Exist(strGlobal))         return INI_Remove(strGlobal);             format(strGlobal, 0x2D, "Você desbaniu a conta %s", nickBan);     SendClientMessage(playerid, -1, strGlobal);     return 0x01; } CMD:verip(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /verip [id]");             new ips[0x3C];     GetPlayerIp(PlayerB, ips, sizeof( ips ));     format(strGlobal, 0x2D, "ID:[%d] Nick:[%s] IP:[%s]", PlayerB, Nick(PlayerB), ips);     SendClientMessage(playerid, -1, strGlobal);     return 0x01; } CMD:relatorio(playerid) {     ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Relatorio", "Digite seu relatório destinado aos admins abaixo.",  "Enviar", "");     return 0x01; } CMD:av(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new aviso[0x3C];     if(sscanf(params, "s[60]", aviso))         return SendClientMessage(playerid, -1, "Comando: /av [aviso]");             format(strGlobal, 0x80, "Aviso do admin %s: %s", Nick(playerid), aviso);     SendClientMessageToAll(0x451FE0AA, strGlobal);     return 0x01; } CMD:jogar(playerid) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             if(work_db[playerid])     {         GodAdmin(playerid, false);         SendClientMessage(playerid, -1, "Você entrou no modo jogo, /jogar para entrar no modo trabalho novamente.");         work_db[playerid] = false;         return 0x01;     }     else if(!work_db[playerid])     {         GodAdmin(playerid, true);         SendClientMessage(playerid, -1, "Você entrou no modo trabalho, /jogar para entrar no modo jogo novamente.");         work_db[playerid] = true;     }     return 0x01; } CMD:z(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new zPos;     if(sscanf(params, "i", zPos))         return SendClientMessage(playerid, -1, "Comando: /z [float:pos]");             GetPlayerPos(playerid, x, y, z);     SetPlayerPos(playerid, x, y, z + zPos);     return 0x01; } CMD:tv(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /tv [id]");             if(!tv_on[playerid])     {         TogglePlayerSpectating(playerid, 1);         PlayerSpectatePlayer(playerid, PlayerB, SPECTATE_MODE_NORMAL);         format(strGlobal, 0x2D, "Você entrou modo TV no player [%d]%s", PlayerB, Nick(PlayerB));         SendClientMessage(playerid, -1, strGlobal);         return 0x01;     }     return 0x01; } CMD:tvoff(playerid) {     if(tv_on[playerid])     {         TogglePlayerSpectating(playerid, 0);         SendClientMessage(playerid, -1, "Você saiu do modo TV");     }     return 0x01; } CMD:a(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new aChat[0x3C];     if(sscanf(params, "s[60]", aChat))         return SendClientMessage(playerid, -1, "Comando: /a [chat]");             format(strGlobal, 0x80, "aChat - Admin %s diz: %s", Nick(playerid), aChat);     for(new iLoop; iLoop < MAX_PLAYERS; iLoop++)     {         if(admin_db[iLoop][IsAdmin])         {             SendClientMessage(iLoop, 0xFF00FFAA, strGlobal);         }     }     return 0x01; } CMD:shutup(playerid, params[]) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");             new PlayerB;     if(sscanf(params, "i", PlayerB))         return SendClientMessage(playerid, -1, "Comando: /shutup [id]");             if(!CallOff[PlayerB])     {         CallOff[PlayerB] = true;         format(strGlobal, 0x2D, "Você calou %s", Nick(PlayerB));         SendClientMessage(playerid, -1, strGlobal);         format(strGlobal,0x2D, "Você foi calado pelo admin %s", Nick(playerid));         return 1;     }     else     {         format(strGlobal, 0x2D, "Você descalou %s", Nick(PlayerB));         SendClientMessage(playerid, -1, strGlobal);         SendClientMessage(PlayerB, -1, "Você já pode falar, foi descalado.");         CallOff[PlayerB] = false;     }     return 0x01; } CMD:par(playerid, params[]) {     new PlayerB, PM[0x80];     if(sscanf(params, "is[128]", PlayerB, PM))         return SendClientMessage(playerid, -1, "Comando: /par [id][texto]");             if(admin_db[playerid][IsAdmin] || admin_db[PlayerB][IsAdmin])     {         if(!parBlock[PlayerB])         {             format(strGlobal, 0x80, "[Particular] - %s diz: %s", Nick(playerid), PM);             SendClientMessage(PlayerB, 0xFFF900AA, strGlobal);             SendClientMessage(playerid, 0xFFF900AA, "Particular enviada!");             return 0x01;         }         else SendClientMessage(playerid, -1, "Este admin bloqueou as mensagens particulares");     }     else if(!admin_db[PlayerB][IsAdmin] && !admin_db[playerid][IsAdmin])     {         SendClientMessage(playerid, -1, "Você só pode mandar particulares para admins");         return 0x01;     }     return 0x01; } CMD:blockpar(playerid) {     if(!admin_db[playerid][IsAdmin])         return SendClientMessage(playerid, -1, "Você não é um administrador.");     if(!parBlock[playerid])     {         parBlock[playerid] = true;         return 0x01;     }     else     {         parBlock[playerid] = false;     }     return 0x01; } CMD:aa(playerid) {     new strLocal[0xFF+0x80];     strcat(strLocal,"/gmx /repararid /respawn /carro /destruir /carroantigo /mudarcor\n");     strcat(strLocal,"/ir /trazer /trazertodos /matar /skin /darvida /darcolete /dararma /retirararmas\n");     strcat(strLocal,"/congelar /descongelar /ircarro /trazercarro /ls  /lsa /sf /sfa /lv /lva\n");     strcat(strLocal,"/tapa /daradmin /admins /ban /banoff /banip /kick /kickoff /desban /verip\n");     strcat(strLocal,"/relatorio /av /jogar /z /tv /tvoff /a /shutup /par /blockpar\n");     ShowPlayerDialog(playerid, 10, DIALOG_STYLE_MSGBOX, "Comandos administrativos", strLocal, "Fechar", "");     return 0x01; } // Stocks ====================================================================== stock GodAdmin(playerid, bool:index) {     if(index)     {         SetPlayerHealth(playerid, 999999999);         return 0x01;     }     if(!index)     {         SetPlayerHealth(playerid, 100);         return 0x01;     }     return 0x01; } stock Nick(playerid) {     new nome[MAX_PLAYER_NAME];     GetPlayerName(playerid, nome, sizeof( nome ));     return nome; } stock SalvarAdmins(playerid) {     format(strGlobal, 0x28, "Admins/%s.ini", Nick(playerid));     INI_Open(strGlobal);     INI_WriteInt("AdminLevel", admin_db[playerid][AdminLvl]);     INI_Save();     INI_Close();     return 0x01; }


Dicas e críticas sempre bem vindas, espero que seja útil !