[Ajuda] ajuda
#1

Bom jб criei os sistema de ban talz stock e tudo mas porйm falta criar o comando /ban e / desban alguйm pode me ajudar.
pawn Код:
#define LOCALBANNICK "/Nicks banidos/%s.cfg"
#define LOCALBANIP   "/IPs banidos/%s.cfg"

new DSName[MAX_PLAYER_NAME];
new Don[150];
stock BanId(playerid,motivo[])
{
    GetPlayerName(playerid,DSName,sizeof(DSName));
    format(Don,sizeof(Don),"-Aviso- O jogador %s foi banido [Motivo: %s]",DSName, motivo);
    SendClientMessageToAll(-1,Don);
    Kick(playerid);
}
stock BanNick(playerid,motivo[])
{
    GetPlayerName(playerid,DSName,sizeof(DSName));
    format(Don,sizeof(Don),LOCALBANNICK,DSName);
    DOF2_CreateFile(Don);
    DOF2_SetInt(Don, "Motivo", motivo);
    format(Don,sizeof(Don),"-Aviso- O jogador %s foi banido [Motivo: %s]",DSName, motivo);
    SendClientMessageToAll(-1,Don);
    Kick(playerid);
}
stock BanIP(playerid,motivo[])
{
    GetPlayerIp(playerid,IP,sizeof(IP));
    format(Don,sizeof(Don),LOCALBANIP,IP);
    DOF2_CreateFile(Don);
    DOF2_SetInt(Don, "Motivo", motivo);
    format(Don,sizeof(Don),"-Aviso- O IP %i foi banido [Motivo: %s]",IP, motivo);
    SendClientMessageToAll(-1,Don);
    Kick(playerid);
}
stock BanNickOff(Nick,motivo[])
{
    format(Don,sizeof(Don),LOCALBANNICK,Nick);
    DOF2_CreateFile(Don);
    DOF2_SetInt(Don, "Motivo", motivo);
    format(Don,sizeof(Don),"-Aviso- O Nick %s foi banido-off [Motivo: %s]",Nick, motivo);
    SendClientMessageToAll(-1,Don);
    Kick(playerid);
}
stock BanIPOFF(IP,motivo[])
{
    format(Don,sizeof(Don),LOCALBANIP,IP);
    DOF2_CreateFile(Don);
    DOF2_SetInt(Don, "Motivo", motivo);
    format(Don,sizeof(Don),"-Aviso- O IP %i foi banido-off [Motivo: %s]",IP, motivo);
    SendClientMessageToAll(-1,Don);
}
stock UnBanNick(Nome)
{
    format(Don,sizeof(Don),LOCALBANNICK,Nome);
    if(!DOF2_FileExists(Don))return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");
    DOF2_RemoveFile(Don);
    format(Don,sizeof(Don),"-Aviso- O nick %s acaba de ser desbanido.",Nome);
    SendClientMessageToAll(-1,Don);
}
stock UnBanIP(IP)
{
    format(Don,sizeof(Don),LOCALBANIP,IP);
    if(!DOF2_FileExists(Don))return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");
    DOF2_RemoveFile(Don);
    format(Don,sizeof(Don),"-Aviso- O ip %i acaba de ser desbanido.",IP);
    SendClientMessageToAll(-1,Don);
}
stock CheckBan(playerid)
{
    new Don2[150];
    GetPlayerIp(playerid,IP,sizeof(IP));
    format(Don,sizeof(Don),LOCALBANIP,IP);
    if(!DOF2_FileExists(Don))
    {
        SendClientMessage(playerid,-1,"-Aviso- Voce esta banido");
        Kick(playerid);
    }
    GetPlayerName(playerid,DSName,sizeof(DSName));
    format(Don2,sizeof(Don2),LOCALBANNICK,DSName);
    if(!DOF2_FileExists(Don2))
    {
        SendClientMessage(playerid,-1,"-Aviso- Voce esta banido");
        Kick(playerid);
    }
}
OBS: Reputaзгo para quem me ajuda e tem que ser zcmd.
Reply
#2

pawn Код:
stock BanNickOff(Nick,motivo[])
{
    format(Don,sizeof(Don),LOCALBANNICK,Nick);
    DOF2_CreateFile(Don);
    DOF2_SetInt(Don, "Motivo", motivo);
    format(Don,sizeof(Don),"-Aviso- O Nick %s foi banido-off [Motivo: %s]",Nick, motivo);
    SendClientMessageToAll(-1,Don);
    Kick(playerid);
}
Vocк pretende kickar um jogador offline? ^o)
Reply
#3

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
pawn Код:
stock BanNickOff(Nick,motivo[])
{
    format(Don,sizeof(Don),LOCALBANNICK,Nick);
    DOF2_CreateFile(Don);
    DOF2_SetInt(Don, "Motivo", motivo);
    format(Don,sizeof(Don),"-Aviso- O Nick %s foi banido-off [Motivo: %s]",Nick, motivo);
    SendClientMessageToAll(-1,Don);
    Kick(playerid);
}
Vocк pretende kickar um jogador offline? ^o)
Repense.
Se ele banir um player que ele acha que estб off?
Reply
#4

Nгo tem nem como isso pois playerid nem existe ai

pawn Код:
CMD:ban(mPlayer, mParams[])
{
    new mMotivo[128];
    if(sscanf(mParams, "us[128]", mPlayerID, mMotivo))
    {
        return SendClientMessage(mPlayer, -1, "/ban (id/name) (motivo)");
    }
    return BanId(mPlayerID, mMotivo);
}

CMD:desban(mPlayer, mParams[])
{
    if(isnull(mParams))
    {
        return SendClientMessage(mPlayer, -1, "/desban (ip/nick)");
    }
   
    new mNum, i;
    for(; i != strlen(mParams); ++i)
    {
        if(mParams[i] == '.' || (mParams[i] >= '0' && mParams[i] <= '9'))
        {
            ++mNum;
        }
    }
    if(mNum >= 5)
    {
        UnBanIP(mParams);
    }
    else
    {
        UnBanNick(mParams);
    }
    return 1;
}
Acho que isso vai te ajudar
Reply
#5

Quote:
Originally Posted by Metropole RP
Посмотреть сообщение
Nгo tem nem como isso pois playerid nem existe ai

pawn Код:
CMD:ban(mPlayer, mParams[])
{
    new mMotivo[128];
    if(sscanf(mParams, "us[128]", mPlayerID, mMotivo))
    {
        return SendClientMessage(mPlayer, -1, "/ban (id/name) (motivo)");
    }
    return BanId(mPlayerID, mMotivo);
}

CMD:desban(mPlayer, mParams[])
{
    if(isnull(mParams))
    {
        return SendClientMessage(mPlayer, -1, "/desban (ip/nick)");
    }
   
    new mNum, i;
    for(; i != strlen(mParams); ++i)
    {
        if(mParams[i] == '.' || (mParams[i] >= '0' && mParams[i] <= '9'))
        {
            ++mNum;
        }
    }
    if(mNum >= 5)
    {
        UnBanIP(mParams);
    }
    else
    {
        UnBanNick(mParams);
    }
    return 1;
}
Acho que isso vai te ajudar
eu coloquei o que vocк me passou deu seguinte erro:

pawn Код:
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(376) : error 017: undefined symbol "playerid"
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(380) : warning 209: function "UnBanNick" should return a value
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(384) : error 017: undefined symbol "playerid"
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(388) : warning 209: function "UnBanIP" should return a value
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(589) : error 017: undefined symbol "mPlayerID"
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(593) : error 017: undefined symbol "mPlayerID"
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(593) : warning 209: function "BanId" should return a value
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(613) : error 035: argument type mismatch (argument 1)
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(617) : error 035: argument type mismatch (argument 1)
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


6 Errors.
As partes onde deu erro:

pawn Код:
stock UnBanNick(Nome)
{
    format(Don,sizeof(Don),LOCALBANNICK,Nome);
    if(!DOF2_FileExists(Don))return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");//erro
    DOF2_RemoveFile(Don);
    format(Don,sizeof(Don),"-Aviso- O nick %s acaba de ser desbanido.",Nome);
    SendClientMessageToAll(-1,Don);
}//erro
stock UnBanIP(IP)
{
    format(Don,sizeof(Don),LOCALBANIP,IP);
    if(!DOF2_FileExists(Don))return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");//erro
    DOF2_RemoveFile(Don);
    format(Don,sizeof(Don),"-Aviso- O ip %i acaba de ser desbanido.",IP);
    SendClientMessageToAll(-1,Don);
}//erro

CMD:ban(mPlayer, mParams[])
{
    new mMotivo[128];
    if(sscanf(mParams, "us[128]", mPlayerID, mMotivo))//erro
    {
        return SendClientMessage(mPlayer, -1, "/ban (id/name) (motivo)");
    }
    return BanId(mPlayerID, mMotivo);//erro
}

CMD:desban(mPlayer, mParams[])
{
    if(isnull(mParams))
    {
        return SendClientMessage(mPlayer, -1, "/desban (ip/nick)");
    }

    new mNum, i;
    for(; i != strlen(mParams); ++i)
    {
        if(mParams[i] == '.' || (mParams[i] >= '0' && mParams[i] <= '9'))
        {
            ++mNum;
        }
    }
    if(mNum >= 5)
    {
        UnBanIP(mParams);//erro
    }
    else
    {
        UnBanNick(mParams);//erro
    }
    return 1;
}
Reply
#6

Olha cara seu sistema estava muito bugado, tive que praticamente refaze-lo entгo pode ter escapado algo da minha visгo mais creio que nгo, teste e veja se ira funcionar

pawn Код:
#define LOCALBANNICK "/Nicks banidos/%s.cfg"
#define LOCALBANIP   "/IPs banidos/%s.cfg"

stock BanId(playerid, mMotivo[])
{
    new mStr[128], mName[24];
    GetPlayerName(playerid, mName, 24);
    format(mStr, 128, "-Aviso- O jogador %s foi banido [Motivo: %s]", mName, mMotivo);
    SendClientMessageToAll(-1, mStr);
    return Kick(playerid);
}
stock BanNick(playerid, mMotivo[])
{
    new mStr[128], mName[24];
    GetPlayerName(playerid, mName, 24);
    format(mStr, 128, LOCALBANNICK, mName);
    DOF2_CreateFile(mStr);
    DOF2_SetString(mStr, "Motivo", mMotivo);
    format(mStr, 128, "-Aviso- O jogador %s foi banido [Motivo: %s]", mName, mMotivo);
    SendClientMessageToAll(-1, mStr);
    return Kick(playerid);
}
stock BanIP(playerid, mMotivo[])
{
    new mStr[128], mIP[16];
    GetPlayerIp(playerid, mIP, 16);
    format(mStr, 128, LOCALBANIP, mIP);
    DOF2_CreateFile(mStr);
    DOF2_SetString(mStr, "Motivo", mMotivo);
    format(mStr, 128, "-Aviso- O IP %i foi banido [Motivo: %s]", mIP, mMotivo);
    SendClientMessageToAll(-1, mStr);
    return Kick(playerid);
}
stock BanNickOff(Nick[], mMotivo[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANNICK, Nick);
    DOF2_CreateFile(mStr);
    DOF2_SetString(mStr, "Motivo", mMotivo);
    format(mStr, 128, "-Aviso- O Nick %s foi banido-off [Motivo: %s]", Nick, mMotivo);
    return SendClientMessageToAll(-1, mStr);
}
stock BanIPOFF(mIP[], mMotivo[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANIP, mIP);
    DOF2_CreateFile(mStr);
    DOF2_SetString(mStr, "Motivo", mMotivo);
    format(mStr, 128, "-Aviso- O IP %i foi banido-off [Motivo: %s]", mIP, mMotivo);
    return SendClientMessageToAll(-1, mStr);
}
stock UnBanNick(Nome[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANNICK, Nome);
    if(!DOF2_FileExists(mStr))return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");
    DOF2_RemoveFile(mStr);
    format(mStr, 128, "Aviso- O nick %s acaba de ser desbanido.",Nome);
    return SendClientMessageToAll(-1, mStr);
}
stock UnBanIP(mIP[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANIP, mIP);
    if(!DOF2_FileExists(mStr))return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");
    DOF2_RemoveFile(mStr);
    format(mStr, 128, "-Aviso- O ip %i acaba de ser desbanido.", mIP);
    SendClientMessageToAll(-1, mStr);
}
stock CheckBan(playerid)
{
    new mStr[128], mName[24], mIP[16];
    GetPlayerIp(playerid, mIP, 16);
    format(mStr, 128, LOCALBANIP, mIP);
    if(DOF2_FileExists(mStr))
    {
        SendClientMessage(playerid,-1,"-Aviso- Voce esta banido");
        return Kick(playerid);
    }
    GetPlayerName(playerid, mName, 24);
    format(mStr, 128, LOCALBANNICK, mName);
    if(DOF2_FileExists(mStr))
    {
        SendClientMessage(playerid,-1,"-Aviso- Voce esta banido");
        return Kick(playerid);
    }
    return 1;
}

CMD:ban(mPlayer, mParams[])
{
    new mPlayerID, mMotivo[128];
    if(sscanf(mParams, "us[128]", mPlayerID, mMotivo))//erro
    {
        return SendClientMessage(mPlayer, -1, "/ban (id/name) (motivo)");
    }
    return BanId(mPlayerID, mMotivo);
}

CMD:desban(mPlayer, mParams[])
{
    if(isnull(mParams))
    {
        return SendClientMessage(mPlayer, -1, "/desban (ip/nick)");
    }

    new mNum, i;
    for(; i != strlen(mParams); ++i)
    {
        if(mParams[i] == '.' || (mParams[i] >= '0' && mParams[i] <= '9'))
        {
            ++mNum;
        }
    }
    if(mNum >= 5)
    {
        UnBanIP(mParams);
    }
    else
    {
        UnBanNick(mParams);
    }
    return 1;
}
Reply
#7

Quote:
Originally Posted by Metropole RP
Посмотреть сообщение
Olha cara seu sistema estava muito bugado, tive que praticamente refaze-lo entгo pode ter escapado algo da minha visгo mais creio que nгo, teste e veja se ira funcionar

pawn Код:
#define LOCALBANNICK "/Nicks banidos/%s.cfg"
#define LOCALBANIP   "/IPs banidos/%s.cfg"

stock BanId(playerid, mMotivo[])
{
    new mStr[128], mName[24];
    GetPlayerName(playerid, mName, 24);
    format(mStr, 128, "-Aviso- O jogador %s foi banido [Motivo: %s]", mName, mMotivo);
    SendClientMessageToAll(-1, mStr);
    return Kick(playerid);
}
stock BanNick(playerid, mMotivo[])
{
    new mStr[128], mName[24];
    GetPlayerName(playerid, mName, 24);
    format(mStr, 128, LOCALBANNICK, mName);
    DOF2_CreateFile(mStr);
    DOF2_SetString(mStr, "Motivo", mMotivo);
    format(mStr, 128, "-Aviso- O jogador %s foi banido [Motivo: %s]", mName, mMotivo);
    SendClientMessageToAll(-1, mStr);
    return Kick(playerid);
}
stock BanIP(playerid, mMotivo[])
{
    new mStr[128], mIP[16];
    GetPlayerIp(playerid, mIP, 16);
    format(mStr, 128, LOCALBANIP, mIP);
    DOF2_CreateFile(mStr);
    DOF2_SetString(mStr, "Motivo", mMotivo);
    format(mStr, 128, "-Aviso- O IP %i foi banido [Motivo: %s]", mIP, mMotivo);
    SendClientMessageToAll(-1, mStr);
    return Kick(playerid);
}
stock BanNickOff(Nick[], mMotivo[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANNICK, Nick);
    DOF2_CreateFile(mStr);
    DOF2_SetString(mStr, "Motivo", mMotivo);
    format(mStr, 128, "-Aviso- O Nick %s foi banido-off [Motivo: %s]", Nick, mMotivo);
    return SendClientMessageToAll(-1, mStr);
}
stock BanIPOFF(mIP[], mMotivo[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANIP, mIP);
    DOF2_CreateFile(mStr);
    DOF2_SetString(mStr, "Motivo", mMotivo);
    format(mStr, 128, "-Aviso- O IP %i foi banido-off [Motivo: %s]", mIP, mMotivo);
    return SendClientMessageToAll(-1, mStr);
}
stock UnBanNick(Nome[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANNICK, Nome);
    if(!DOF2_FileExists(mStr))return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");
    DOF2_RemoveFile(mStr);
    format(mStr, 128, "Aviso- O nick %s acaba de ser desbanido.",Nome);
    return SendClientMessageToAll(-1, mStr);
}
stock UnBanIP(mIP[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANIP, mIP);
    if(!DOF2_FileExists(mStr))return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");
    DOF2_RemoveFile(mStr);
    format(mStr, 128, "-Aviso- O ip %i acaba de ser desbanido.", mIP);
    SendClientMessageToAll(-1, mStr);
}
stock CheckBan(playerid)
{
    new mStr[128], mName[24], mIP[16];
    GetPlayerIp(playerid, mIP, 16);
    format(mStr, 128, LOCALBANIP, mIP);
    if(DOF2_FileExists(mStr))
    {
        SendClientMessage(playerid,-1,"-Aviso- Voce esta banido");
        return Kick(playerid);
    }
    GetPlayerName(playerid, mName, 24);
    format(mStr, 128, LOCALBANNICK, mName);
    if(DOF2_FileExists(mStr))
    {
        SendClientMessage(playerid,-1,"-Aviso- Voce esta banido");
        return Kick(playerid);
    }
    return 1;
}

CMD:ban(mPlayer, mParams[])
{
    new mPlayerID, mMotivo[128];
    if(sscanf(mParams, "us[128]", mPlayerID, mMotivo))//erro
    {
        return SendClientMessage(mPlayer, -1, "/ban (id/name) (motivo)");
    }
    return BanId(mPlayerID, mMotivo);
}

CMD:desban(mPlayer, mParams[])
{
    if(isnull(mParams))
    {
        return SendClientMessage(mPlayer, -1, "/desban (ip/nick)");
    }

    new mNum, i;
    for(; i != strlen(mParams); ++i)
    {
        if(mParams[i] == '.' || (mParams[i] >= '0' && mParams[i] <= '9'))
        {
            ++mNum;
        }
    }
    if(mNum >= 5)
    {
        UnBanIP(mParams);
    }
    else
    {
        UnBanNick(mParams);
    }
    return 1;
}
CidadeNovaRP?
Reply
#8

Como quer salvar como inteiro uma string?
Reply
#9

deu os seguinte erros:

pawn Код:
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(403) : error 017: undefined symbol "playerid"
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(412) : error 017: undefined symbol "playerid"
C:\Users\Lucas\Desktop\Sprite Gaming - RPG\gamemodes\SG.pwn(416) : warning 209: function "UnBanIP" should return a value
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
Codigo: coloquei //erro nas linha em que deram erro.

pawn Код:
stock UnBanNick(Nome[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANNICK, Nome);
    if(!DOF2_FileExists(mStr))return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");//erro
    DOF2_RemoveFile(mStr);
    format(mStr, 128, "Aviso- O nick %s acaba de ser desbanido.",Nome);
    return SendClientMessageToAll(-1, mStr);
}
stock UnBanIP(mIP[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANIP, mIP);
    if(!DOF2_FileExists(mStr))return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");//erro
    DOF2_RemoveFile(mStr);
    format(mStr, 128, "-Aviso- O ip %i acaba de ser desbanido.", mIP);
    SendClientMessageToAll(-1, mStr);
}//erro
Reply
#10

pawn Код:
stock UnBanNick(Nome[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANNICK, Nome);
    if(!DOF2_FileExists(mStr))return 0;
    DOF2_RemoveFile(mStr);
    format(mStr, 128, "Aviso- O nick %s acaba de ser desbanido.",Nome);
    return SendClientMessageToAll(-1, mStr), 1;
}
stock UnBanIP(mIP[])
{
    new mStr[128];
    format(mStr, 128, LOCALBANIP, mIP);
    if(!DOF2_FileExists(mStr))return 0;
    DOF2_RemoveFile(mStr);
    format(mStr, 128, "-Aviso- O ip %i acaba de ser desbanido.", mIP);
    return SendClientMessageToAll(-1, mStr), 1;
}

CMD:desban(mPlayer, mParams[])
{
    if(isnull(mParams))
    {
        return SendClientMessage(mPlayer, -1, "/desban (ip/nick)");
    }

    new mNum, i;
    for(; i != strlen(mParams); ++i)
    {
        if(mParams[i] == '.' || (mParams[i] >= '0' && mParams[i] <= '9'))
        {
            ++mNum;
        }
    }
    if(mNum >= 5)
    {
        if(!UnBanIP(mParams)) return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");
    }
    else
    {
        if(!UnBanNick(mParams)) return SendClientMessage(playerid, -1,"[ERRO] Conta nao banida.");
    }
    return 1;
}
Agora funciona.

@Garfield

Nгo
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)