[Ajuda] Alguйm me ajuda a arrumar esse code?
#1

O code й pra ser assim: o administrador da um aviso a um certo player, e ao completar 3 avisos o player й automaticamente kickado, assim zerando a quantidade de aviso para quando o player logar novamente. Sу que nгo й isso com acontece :/

Vou mostrar algumas prints:

Aqui parece estar tudo normal:

http://tinypic.com/view.php?pic=20auott&s=6


Mas nгo estar normal :/ quando completa [3/3] e o jogador e kickado, o valor de avisos, nгo zera, e quando o jogador volta, e leva aviso de novo, fica [4/3] olha:

http://tinypic.com/r/2zppkdh/6


O valo acumula atй mesmo de um jogador para o outro, eu testei com outra conta o comando e olha no que deu:

http://tinypic.com/r/1588eo9/6
Aqui acumulou 3 aviso do 1є jogador(Eae_Manow), mas o outro aviso de quando ele logou novamente indo pra 4/3, esses valores tambem acumulou para o jogador (Eae_Mano), porque quando testei o comando pela primeira vez nesse jogador deu 5/3.
Jб tentei arrumar mas, nгo conseguir alguem me ajuda por favor? sou muito noob pawno ainda, mas quero aprender.

Code:

new aviso[MAX_PLAYERS];

pawn Код:
if(strcmp(cmd, "/aviso", true) == 0)
    {
        if(IsPlayerAdmin(playerid) || Adm[playerid] == 1)
        {
            tmp = strtok(cmdtext, idx);
            new id = strval(tmp);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");
                return 1;
            }
            MSG = strrest(cmdtext, idx);
            if(!strlen(MSG))
            {
                SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");
                return 1;
            }
            if(!IsPlayerConnected(id))
            {
                SendClientMessage(playerid, 0xFFFFE0AA, "* Jogador nгo estб conectado!");
                return 1;
            }
            aviso[playerid]++;
            if(aviso[playerid] == 3)
            {
                format(string, sizeof(string), "(INFO) Vocк foi kickado do servidor (Motivo: %s) [%d/3]", MSG, aviso);
                SendClientMessage(playerid, ADMIN_ERROR, string);
                Kick(id);
            }
            GetPlayerName(id, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string), "(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total [%d/3]", sendername, giveplayer, MSG, aviso);
            SendClientMessageToAll(ADMIN_CORRETO, string);
            printf("(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total = [%d/3]", sendername, giveplayer, MSG, aviso);
        }
        else
        {
            SendClientMessage(playerid, ADMIN_ERROR, "* Vocк nгo tem acesso a esse comando!");
        }
        return 1;
    }
Reply
#2

Coloque o script com [*pawn] codigo aqui [/*pawn] sem os *

@off
Nuss, plagio de nick..
Reply
#3

Desculpa o nick ae, depois vou trocar rs
Reply
#4

pawn Код:
if(strcmp(cmd, "/aviso", true) == 0) {

    if(IsPlayerAdmin(playerid) || Adm[playerid] == 1) {
   
        tmp = strtok(cmdtext, idx);
        new id = strval(tmp);
       
        if(!strlen(tmp))
            return SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");
           
            MSG = strrest(cmdtext, idx);
           
            if(!strlen(MSG))
                return SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");
           
            if(!IsPlayerConnected(id))
                return SendClientMessage(playerid, 0xFFFFE0AA, "* Jogador nгo estб conectado!");
 
            aviso[id]++;
            if(aviso[id] == 3) {
           
                format(string, sizeof(string), "(INFO) Vocк foi kickado do servidor (Motivo: %s) [%d/3]", MSG, aviso);
                SendClientMessage(id, ADMIN_ERROR, string);
                Kick(id);
            }

            GetPlayerName(id, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string), "(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total [%d/3]", sendername, giveplayer, MSG, aviso);
            SendClientMessageToAll(ADMIN_CORRETO, string);
            printf("(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total = [%d/3]", sendername, giveplayer, MSG, aviso);
    }
    else {
   
        SendClientMessage(playerid, ADMIN_ERROR, "* Vocк nгo tem acesso a esse comando!");
    }
        return true;
}
Reply
#5

Quote:
Originally Posted by iCasTiel
Посмотреть сообщение
pawn Код:
if(strcmp(cmd, "/aviso", true) == 0) {

    if(IsPlayerAdmin(playerid) || Adm[playerid] == 1) {
   
        tmp = strtok(cmdtext, idx);
        new id = strval(tmp);
       
        if(!strlen(tmp))
            return SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");
           
            MSG = strrest(cmdtext, idx);
           
            if(!strlen(MSG))
                return SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");
           
            if(!IsPlayerConnected(id))
                return SendClientMessage(playerid, 0xFFFFE0AA, "* Jogador nгo estб conectado!");
 
            aviso[id]++;
            if(aviso[id] == 3) {
           
                format(string, sizeof(string), "(INFO) Vocк foi kickado do servidor (Motivo: %s) [%d/3]", MSG, aviso);
                SendClientMessage(id, ADMIN_ERROR, string);
                Kick(id);
            }

            GetPlayerName(id, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string), "(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total [%d/3]", sendername, giveplayer, MSG, aviso);
            SendClientMessageToAll(ADMIN_CORRETO, string);
            printf("(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total = [%d/3]", sendername, giveplayer, MSG, aviso);
    }
    else {
   
        SendClientMessage(playerid, ADMIN_ERROR, "* Vocк nгo tem acesso a esse comando!");
    }
        return true;
}
Mudou nada :/
Reply
#6

Nessa parte do comando do iCasTiel
pawn Код:
aviso[id]++;
    if(aviso[id] == 3) {
        format(string, sizeof(string), "(INFO) Vocк foi kickado do servidor (Motivo: %s) [%d/3]", MSG, aviso);
        SendClientMessage(id, ADMIN_ERROR, string);
        Kick(id);
    }
Coloque isso aviso[id] = 0;

pawn Код:
aviso[id]++;
    if(aviso[id] == 3) {  
        aviso[id] = 0;
        format(string, sizeof(string), "(INFO) Vocк foi kickado do servidor (Motivo: %s) [%d/3]", MSG, aviso);
        SendClientMessage(id, ADMIN_ERROR, string);
        Kick(id);
    }
Reply
#7

Tenta esses dois aqui

pawn Код:
if(strcmp(cmd, "/aviso", true) == 0) {

    if(IsPlayerAdmin(playerid) || Adm[playerid] == 1) {

        tmp = strtok(cmdtext, idx);
        new id = strval(tmp);

        if(!strlen(tmp))
            return SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");

            MSG = strrest(cmdtext, idx);

            if(!strlen(MSG))
                return SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");

            if(!IsPlayerConnected(id))
                return SendClientMessage(playerid, 0xFFFFE0AA, "* Jogador nгo estб conectado!");

            aviso [ id ] +=1;
            if ( aviso [ id ] >= 3 )
            {

                format(string, sizeof(string), "(INFO) Vocк foi kickado do servidor (Motivo: %s) [%d/3]", MSG, aviso);
                SendClientMessage(id, ADMIN_ERROR, string);
                Kick(id);
                aviso[id] = 0;
            }
            GetPlayerName(id, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string), "(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total [%d/3]", sendername, giveplayer, MSG, aviso);
            SendClientMessageToAll(ADMIN_CORRETO, string);
            printf("(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total = [%d/3]", sendername, giveplayer, MSG, aviso);
    }
    else
    {

        SendClientMessage(playerid, ADMIN_ERROR, "* Vocк nгo tem acesso a esse comando!");
    }
        return true;
}
Ou este

pawn Код:
if(strcmp(cmd, "/aviso", true) == 0) {

    if(IsPlayerAdmin(playerid) || Adm[playerid] == 1) {

        tmp = strtok(cmdtext, idx);
        new id = strval(tmp);

        if(!strlen(tmp))
            return SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");

            MSG = strrest(cmdtext, idx);

            if(!strlen(MSG))
                return SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");

            if(!IsPlayerConnected(id))
                return SendClientMessage(playerid, 0xFFFFE0AA, "* Jogador nгo estб conectado!");

            aviso [ id ]++;
            if ( aviso [ id ] >= 3 )
            {

                format(string, sizeof(string), "(INFO) Vocк foi kickado do servidor (Motivo: %s) [%d/3]", MSG, aviso);
                SendClientMessage(id, ADMIN_ERROR, string);
                Kick(id);
                aviso[id] = 0;
            }
            GetPlayerName(id, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string), "(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total [%d/3]", sendername, giveplayer, MSG, aviso);
            SendClientMessageToAll(ADMIN_CORRETO, string);
            printf("(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total = [%d/3]", sendername, giveplayer, MSG, aviso);
    }
    else
    {

        SendClientMessage(playerid, ADMIN_ERROR, "* Vocк nгo tem acesso a esse comando!");
    }
        return true;
}
Reply
#8

Galera, eu testei todos os codes e sу resolveu a questгo de acumular de um jogador para o outro...

Quando eu dou avisos em um jogador, ai eu aviso outro diferente, e nгo ta acumulando de um para o outro como estava antes, mas depois de o 1є jogador ser kickado, o proximo jogador a ser aviso fica 0/3 no primeiro aviso 0/3 no segundo...

http://tinypic.com/view.php?pic=vo0vg1&s=6

pawn Код:
if(strcmp(cmd, "/aviso", true) == 0)
    {
        if(IsPlayerAdmin(playerid) || Adm[playerid] == 1)
        {
            tmp = strtok(cmdtext, idx);
            new id = strval(tmp);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");
                return 1;
            }
            MSG = strrest(cmdtext, idx);
            if(!strlen(MSG))
            {
                SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");
                return 1;
            }
            if(!IsPlayerConnected(id))
            {
                SendClientMessage(playerid, 0xFFFFE0AA, "* Jogador nгo estб conectado!");
                return 1;
            }
            aviso[id]++;
            if(aviso[id] == 3)
            {
                format(string, sizeof(string), "(INFO) Vocк foi por exceder o limite de avisos (Motivo: %s) [%d/3]", MSG, aviso);
                SendClientMessage(id, ADMIN_ERROR, string);
                Kick(id);
                aviso[id] = 0;
            }
            GetPlayerName(id, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string), "(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total = [%d/3]", sendername, giveplayer, MSG, aviso);
            SendClientMessageToAll(ADMIN_CORRETO, string);
            printf("(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total = [%d/3]", sendername, giveplayer, MSG, aviso);
        }
        else
        {
            SendClientMessage(playerid, ADMIN_ERROR, "* Vocк nгo tem acesso a esse comando!");
        }
        return 1;
    }
Reply
#9

tenta agora

pawn Код:
if(strcmp(cmd, "/aviso", true) == 0)
    {
        if(IsPlayerAdmin(playerid) || Adm[playerid] == 1)
        {
            tmp = strtok(cmdtext, idx);
            new id = strval(tmp);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");
                return 1;
            }
            MSG = strrest(cmdtext, idx);
            if(!strlen(MSG))
            {
                SendClientMessage(playerid, ADMIN_CORRETO, "Uso: /aviso [id] [aviso]");
                return 1;
            }
            if(!IsPlayerConnected(id))
            {
                SendClientMessage(playerid, 0xFFFFE0AA, "* Jogador nгo estб conectado!");
                return 1;
            }
            aviso[id]+=1;
            if(aviso[id] >= 3)
            {
                format(string, sizeof(string), "(INFO) Vocк foi kickado por exceder o limite de avisos (Motivo: %s) [%d/3]", MSG, aviso);
                SendClientMessage(id, ADMIN_ERROR, string);
                Kick(id);
                aviso[id] = 0;
            }
            GetPlayerName(id, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string), "(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total = [%d/3]", sendername, giveplayer, MSG, aviso);
            SendClientMessageToAll(ADMIN_CORRETO, string);
            printf("(Brazilian) O administrador %s avisou o jogador %s (Motivo: %s) Total = [%d/3]", sendername, giveplayer, MSG, aviso);
        }
        else
        {
            SendClientMessage(playerid, ADMIN_ERROR, "* Vocк nгo tem acesso a esse comando!");
        }
        return 1;
    }
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)