[PEDIDO] Sistema de Moderador
#1

Pessoal,й o seguinte...estou atras de um Sistema de Moderador...

~> Explicaзгo Bбsica: Sistema de Moderador,й tipo um Administrador,que sу pode banir,kickar e se teleportar ao Player.


Nгo pedindo de mais (Acho que nгo,rs) queria que tiver-se o comando '/Moderadores' para ver os moderadores conectados ao servidor.

Grato!
Reply
#2

Usa o Lasanha!

http://forum.sa-mp.com/showthread.ph...hlight=Lasanha
Reply
#3

pawn Код:
new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME];
new bool: pModerador[MAX_PLAYERS] == false; //Inicio do GM

//****** no OnPlayerCommandText ******
    if (strcmp(cmd, "/moderadores", true) == 0)
    {
        new string[80], sendername[MAX_PLAYER_NAME];
        SendClientMessage(playerid, Branco, "*=-=-=-=-=-=-=-=-=|{1E90FF} Moderaзгo {FFFFFF}|=-=-=-=-=-=-=-=-= *");
        for(new i = 0; i <= MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i) && pModerador[i] == true)
            {
                GetPlayerName(i, sendername, sizeof(sendername));
                format(string, 80, "{000000}Nome: {1E90FF}%s{FFFFFF} [Moderador]", sendername);
                SendClientMessage(playerid, Branco, string);
            }
        }
        return 1;
    }
    if(strcmp(cmd, "/ir", true) == 0)
    {
    if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador");
    new tmp[20], string[50], giveplayerid, Float:X, Float:Y, Float:Z;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /Ir [id]");
    giveplayerid = strval(tmp);
    if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online");
    GetPlayerPos(giveplayerid, X, Y, Z);
    GetPlayerName(playerid, Entregador, sizeof(Entregador));
    GetPlayerName(giveplayerid, Recebedor, sizeof(Entregador));
    format(string, sizeof(string), "Vocк foi atй {1E90FF}%s", Recebedor);
    SendClientMessage(playerid, Branco, string);
    format(string, sizeof(string), "{1E90FF}%s{FFFFFF} veio atй vocк", Entregador);
    SendClientMessage(giveplayerid, Branco, string);
    if(IsPlayerInVehicle(playerid, GetPlayerVehicleID(playerid)))
    {
    SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
    SetPlayerPos(playerid, X, Y, Z);
    } else {
    SetPlayerPos(playerid, X, Y, Z);
    SetPlayerInterior(playerid, GetPlayerInterior(giveplayerid));
    }
    return 1;
    }

    if(strcmp(cmd, "/ban", true) == 0)
    {
        new giveplayerid, tmp[20], string[128];
        if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador");
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /ban [id] [Motivo]");
        giveplayerid = strval(tmp);
        GetPlayerName(giveplayerid, pNome, sizeof(pNome));

        if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online");
        GetPlayerName(giveplayerid, Recebedor, sizeof(Recebedor));
        GetPlayerName(playerid, Entregador, sizeof(Entregador));
        if(strcmp(Recebedor,"SeuNome",true)==0)
        {
        format(string, sizeof(string), "{E31919}%s{FFFFFF} Foi banido por tentar banir SeuNome", Entregador);
        SendClientMessageToAll(Branco, string);
        Ban(playerid);
        return 1;
        }
        new length = strlen(cmdtext);
        while ((idx < length) && (cmdtext[idx] <= ' '))
        {
            idx++;
        }
        new offset = idx;
        new result[64];
        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
        {
            result[idx - offset] = cmdtext[idx];
            idx++;
        }
        result[idx - offset] = EOS;
        if(!strlen(result)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /ban [id] [Motivo]");
        format(string, sizeof(string), "{E31919}%s{FFFFFF} foi banido pelo Moderador {E31919}%s{FFFFFF} Motivo: {E31919}%s", Recebedor, Entregador, (result));
        SendClientMessageToAll(Branco, string);
        Ban(giveplayerid);
        return 1;
    }

    if(strcmp(cmd, "/kick", true) == 0)
    {
        new giveplayerid, tmp[20], string[128];
        if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador");
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /kick [id] [Motivo]");
        giveplayerid = strval(tmp);
        GetPlayerName(giveplayerid, pNome, sizeof(pNome));
       
        if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online");
        GetPlayerName(giveplayerid, Recebedor, sizeof(Recebedor));
        GetPlayerName(playerid, Entregador, sizeof(Entregador));
        if(strcmp(Recebedor,"SeuNome",true)==0)
        {
        format(string, sizeof(string), "{E31919}%s{FFFFFF} Foi kickado por tentar kickar {1E90FF}SeuNome", Entregador);
        SendClientMessageToAll(Branco, string);
        Kick(playerid);
        return 1;
        }
        new length = strlen(cmdtext);
        while ((idx < length) && (cmdtext[idx] <= ' '))
        {
            idx++;
        }
        new offset = idx;
        new result[64];
        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
        {
            result[idx - offset] = cmdtext[idx];
            idx++;
        }
        result[idx - offset] = EOS;
        if(!strlen(result)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /kick [id] [Motivo]");
        format(string, sizeof(string), "{E31919}%s{FFFFFF} foi kickado pelo moderador {E31919}%s{FFFFFF} Motivo: {E31919}%s", Recebedor, Entregador, (result));
        SendClientMessageToAll(Branco, string);
        Kick(giveplayerid);
        return 1;
    }

    if(strcmp(cmd, "/darmoderador", true) == 0)
    {
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Branco, "Vocк precisa estar logado na rcon");
    new tmp[20], giveplayerid;
        tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "Uso correto: /DarModerador [id]");
    giveplayerid = strval(tmp);
    if(!IsPlayerConnected(giveplayerid)) return SendClientMEssage(playerid, Branco, "Este jogador nгo estб conectado");
    pModerador[giveplayerid] = true;
    SendClientMessage(giveplayerid, Branco, "Vocк agora й um moderador");
    return 1;
    }
Fiz na pressa, qualquer coisa sу falar.
Fiz tambйm um /DarModerador pra adm logado na rcon por que nгo sei que sistema de admin vocк usa.
Reply
#4

Quote:
Originally Posted by Josma_cmd
Посмотреть сообщение
pawn Код:
new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME]
new bool: pModerador[MAX_PLAYERS] == false; //Inicio do GM

//****** no OnPlayerCommandText ******
    if (strcmp(cmd, "/moderadores", true) == 0)
    {
        new string[80], sendername[MAX_PLAYER_NAME];
        SendClientMessage(playerid, Branco, "*=-=-=-=-=-=-=-=-=|{1E90FF} Moderaзгo {FFFFFF}|=-=-=-=-=-=-=-=-= *");
        for(new i = 0; i <= MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i) && pModerador[i] == true)
            {
                GetPlayerName(i, sendername, sizeof(sendername));
                format(string, 80, "{000000}Nome: {1E90FF}%s{FFFFFF} [Moderador]", sendername);
                SendClientMessage(playerid, Branco, string);
            }
        }
        return 1;
    }
    if(strcmp(cmd, "/ir", true) == 0)
    {
    if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador");
    new tmp[20], string[50], giveplayerid, Float:X, Float:Y, Float:Z;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /Ir [id]");
    giveplayerid = strval(tmp);
    if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online");
    GetPlayerPos(giveplayerid, X, Y, Z);
    GetPlayerName(playerid, Entregador, sizeof(Entregador));
    GetPlayerName(giveplayerid, Recebedor, sizeof(Entregador));
    format(string, sizeof(string), "Vocк foi atй {1E90FF}%s", Recebedor);
    SendClientMessage(playerid, Branco, string);
    format(string, sizeof(string), "{1E90FF}%s{FFFFFF} veio atй vocк", Entregador);
    SendClientMessage(giveplayerid, Branco, string);
    if(IsPlayerInVehicle(playerid, GetPlayerVehicleID(playerid)))
    {
    SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
    SetPlayerPos(playerid, X, Y, Z);
    } else {
    SetPlayerPos(playerid, X, Y, Z);
    SetPlayerInterior(playerid, GetPlayerInterior(giveplayerid));
    }
    return 1;
    }

    if(strcmp(cmd, "/ban", true) == 0)
    {
        new giveplayerid, tmp[20], string[128];
        if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador");
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /ban [id] [Motivo]");
        giveplayerid = strval(tmp);
        GetPlayerName(giveplayerid, pNome, sizeof(pNome));

        if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online");
        GetPlayerName(giveplayerid, Recebedor, sizeof(Recebedor));
        GetPlayerName(playerid, Entregador, sizeof(Entregador));
        if(strcmp(Recebedor,"SeuNome",true)==0)
        {
        format(string, sizeof(string), "{E31919}%s{FFFFFF} Foi banido por tentar banir SeuNome", Entregador);
        SendClientMessageToAll(Branco, string);
        Ban(playerid);
        return 1;
        }
        new length = strlen(cmdtext);
        while ((idx < length) && (cmdtext[idx] <= ' '))
        {
            idx++;
        }
        new offset = idx;
        new result[64];
        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
        {
            result[idx - offset] = cmdtext[idx];
            idx++;
        }
        result[idx - offset] = EOS;
        if(!strlen(result)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /ban [id] [Motivo]");
        format(string, sizeof(string), "{E31919}%s{FFFFFF} foi banido pelo Moderador {E31919}%s{FFFFFF} Motivo: {E31919}%s", Recebedor, Entregador, (result));
        SendClientMessageToAll(Branco, string);
        Ban(giveplayerid);
        return 1;
    }

    if(strcmp(cmd, "/kick", true) == 0)
    {
        new giveplayerid, tmp[20], string[128];
        if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador");
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /kick [id] [Motivo]");
        giveplayerid = strval(tmp);
        GetPlayerName(giveplayerid, pNome, sizeof(pNome));
       
        if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online");
        GetPlayerName(giveplayerid, Recebedor, sizeof(Recebedor));
        GetPlayerName(playerid, Entregador, sizeof(Entregador));
        if(strcmp(Recebedor,"SeuNome",true)==0)
        {
        format(string, sizeof(string), "{E31919}%s{FFFFFF} Foi kickado por tentar kickar {1E90FF}SeuNome", Entregador);
        SendClientMessageToAll(Branco, string);
        Kick(playerid);
        return 1;
        }
        new length = strlen(cmdtext);
        while ((idx < length) && (cmdtext[idx] <= ' '))
        {
            idx++;
        }
        new offset = idx;
        new result[64];
        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
        {
            result[idx - offset] = cmdtext[idx];
            idx++;
        }
        result[idx - offset] = EOS;
        if(!strlen(result)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /kick [id] [Motivo]");
        format(string, sizeof(string), "{E31919}%s{FFFFFF} foi kickado pelo moderador {E31919}%s{FFFFFF} Motivo: {E31919}%s", Recebedor, Entregador, (result));
        SendClientMessageToAll(Branco, string);
        Kick(giveplayerid);
        return 1;
    }

    if(strcmp(cmd, "/darmoderador", true) == 0)
    {
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Branco, "Vocк precisa estar logado na rcon");
    new tmp[20], giveplayerid;
    if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "Uso correto: /DarModerador [id]");
    giveplayerid = strval(tmp);
    if(!IsPlayerConnected(giveplayerid)) return SendClientMEssage(playerid, Branco, "Este jogador nгo estб conectado");
    pModerador[giveplayerid] = true;
    SendClientMessage(giveplayerid, Branco, "Vocк agora й um moderador");
    return 1;
    }
Fiz na pressa, qualquer coisa sу falar.
Fiz tambйm um /DarModerador pra adm logado na rcon por que nгo sei que sistema de admin vocк usa.
Ixi,deu 4 erros...

pawn Код:
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 001: expected token: ";", but found "new"
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 001: expected token: ";", but found "=="
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 029: invalid expression, assumed zero
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.
Reply
#5

Quote:
Originally Posted by Allanrokeiro
Посмотреть сообщение
Ixi,deu 4 erros...

pawn Код:
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 001: expected token: ";", but found "new"
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 001: expected token: ";", but found "=="
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 029: invalid expression, assumed zero
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.
Poste a linha dos erros (92).
Reply
#6

pawn Код:
new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME] //troque isto
new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME]; //por isto
Proxima vez que der erro poste a linha =D
Reply
#7

Quote:
Originally Posted by Josma_cmd
Посмотреть сообщение
pawn Код:
new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME] //troque isto
new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME]; //por isto
Proxima vez que der erro poste a linha =D
Seria mais fбcil dizer que tem de colocar um " ; " no final desse linha.
Reply
#8

Quote:
Originally Posted by Diogo Brandao
Посмотреть сообщение
Poste a linha dos erros (92).
Opa,reparei um erro meu...Coloquei os ''new'' no OnPlayerCommand,mais dai deu esses erros...

pawn Код:
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(96) : error 017: undefined symbol "cmd"
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(102) : error 017: undefined symbol "pModerador"
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(102) : warning 215: expression has no effect
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(102) : error 001: expected token: ";", but found "]"
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(102) : error 029: invalid expression, assumed zero
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(102) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


5 Errors.
Linha 96

pawn Код:
if (strcmp(cmd, "/moderadores", true) == 0)
Linha 102:

pawn Код:
if(IsPlayerConnected(i) && pModerador[i] == true)
Reply
#9

Quote:
Originally Posted by Diogo Brandao
Посмотреть сообщение
Seria mais fбcil dizer que tem de colocar um " ; " no final desse linha.
Ele jб sabia que faltava um ; apуs algo... isso tб obviu no erro, talvez nгo sabia "onde" por e por isso citei.
Falando ou nгo que precisava do ";", o erro com certeza foi concertado entгo deu no mesmo, deveria vocк ter dito a ele que faltava o ponto e virgula quando ele postou os erros jб que vocк foi o primeiro a ver o tуpico depois disso.

Allanrokeiro
Coloca isso no OnPlayerCommandText << Bem no comeзo apуs a primeira chave
pawn Код:
new cmd[256];
Reply
#10

Quote:
Originally Posted by Josma_cmd
Посмотреть сообщение
Ele jб sabia que faltava um ; apуs algo... isso tб obviu no erro, talvez nгo sabia "onde" por e por isso citei.
Falando ou nгo que precisava do ";", o erro com certeza foi concertado entгo deu no mesmo, deveria vocк ter dito a ele que faltava o ponto e virgula quando ele postou os erros jб que vocк foi o primeiro a ver o tуpico depois disso.
Nгo estava a criticar, Josma.
Eu nem olhei o cуdigo, por isso nгo falei nada.

Allanrokeiro, coloque no topo do OnPlayerCommandText:
pawn Код:
new cmd[ 256 ];
cmd = strtok( cmdtext, idx );
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)