[FilterScript] Sistema de admin
#1

Й, 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:
Код:
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 Код:
/*******************************************************************************
|                                                                              |
|                        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 !
Reply
#2

Uma Dica Ponhe Um Nome Pra esse Sistema fica Show
Reply
#3

Quote:
Originally Posted by 4LiSs0N
Посмотреть сообщение
Uma Dica Ponhe Um Nome Pra esse Sistema fica Show
O sistema й nosso, nгo pretendo criar uma marca registrada pra tudo que faзo.

Obrigado pela dica mesmo assim, a cama estб me chamando vou dormir um pouco.
Reply
#4

Quote:

Dicas e crнticas sempre bem vindas, espero que seja ъtil !

Outra dica se fizer Nova versao adicione sistema de registro e login.
Reply
#5

/\ Concordo com o a4lisson com o sistema de registro e login
ese ponhase un nome seria mais legal mesmo
Reply
#6

pawn Код:
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;
}
Nгo curto muito esse estilo de programar, fica muito estranho, mais cada um tem o seu =)

Quote:
Originally Posted by Jeffrey_Hatrix Jeffrey_
Посмотреть сообщение
O sistema й nosso, nгo pretendo criar uma marca registrada pra tudo que faзo.
Boa lуgica, mais se continuar pensando assim vai comeзar a ter problemas.
Reply
#7

Otimo trabalho parabens, era esse tipo de sistema que eu estava procurando,odeio aqueles que sгo por lvl e talz .
Reply
#8

O sistema estб muito, mas muito bom mesmo!!! Parabйns!!! Acho que as 7 horas valeram a pena '-'
Reply
#9

otimo
Mais Cria um Nome (: , Assim fica melhor e todos saberao que foi voce quem fez. em caso di alguem retirar os credito.
Reply
#10

hehe bem legal , e ao contrario do Lуs , eu gosto desta maneira tudo em ingles que CHICK *--*

kkkkkkkkkk
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)