Podeajudar aк?
#1

Ei gente,tou precisando de uma dica,no meu FS de admin,tem lб ode dar Warn,aviso 3/3,sabe?
entгo,eu dou o warn no player 3 vezes.
Aн ele й kickado na terceira vez.
Mas na hora que ele volta pro server,se eu dou outro aviso,ele jб й kickado de uma vez,entendem?
O que pode ser isso?
Tem jeito de limpar os warnings que eu dei pro player?
Porque ele se volta depois de 3 warnings,se eu dou outro aviso,ele jб й kickado com os 3 warnings dados.
Porque?
Parece que os warnings ficam ''gravados''
Como corrigir isso?
Desde jб obrigado.

Cуdigo:

Код:
if(strcmp(cmd,"/Warn",true) == 0)
if(IsPlayerAdmin(playerid))
	{
     	GetPlayerName(playerid, sendername, sizeof(sendername));
		new str[256];
		tmp = strtok(cmdtext, idx);
		tmp2 = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, green, "Uso correto: /Warn [id do player] [motivo]");
			return 1;
		}
		giveplayerid = strval(tmp);
		giveplayerid = strval(tmp);
		{
   if(IsPlayerConnected(giveplayerid))
			{

				if(WarnedTimes[giveplayerid] == 0)
				{
					WarnedTimes[giveplayerid]+=1;
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof (sendername));
					format(str, sizeof (str), "[BGSL ADM]: %s foi avisado por %s pelo motivo: %s [1/3 Avisos!]", giveplayer, sendername, cmdtext[8]);
					SendClientMessageToAll(green, str);
					print(str);
					return 1;
    }
				if(WarnedTimes[giveplayerid] == 1)
				{
				    WarnedTimes[giveplayerid]+=1;
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof (sendername));
					format(str, sizeof (str), "[BGSL ADM]: %s foi avisado por %s pelo motivo: %s [2/3 Avisos!]", giveplayer, sendername, cmdtext[8]);
					SendClientMessageToAll(green, str);
					print(str);
					return 1;
				}
				else if(WarnedTimes[giveplayerid] == 2)
				{
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof (sendername));
					format(str, sizeof (str), "[BGSL ADM]: %s foi kickado por %s pelo motivo: %s [3/3 Avisos!]", giveplayer, sendername, cmdtext[8]);
					SendClientMessageToAll(green, str);
					Kick(giveplayerid);
					return 1;
                }
}
}
		return 1;
}
Como resolver isso?
Reply
#2

Poste o codigo que eu jб faзo uma ideia de como arrumar

_____________________

#Edit

Eu acho que vai funcionar...
Mas qualquer coisa avisa
pawn Код:
if(strcmp(cmd,"/Warn",true) == 0)
if(IsPlayerAdmin(playerid))
    {
        GetPlayerName(playerid, sendername, sizeof(sendername));
        new str[256];
        tmp = strtok(cmdtext, idx);
        tmp2 = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, green, "Uso correto: /Warn [id do player] [motivo]");
            return 1;
        }
        giveplayerid = strval(tmp);
        giveplayerid = strval(tmp);
        {
   if(IsPlayerConnected(giveplayerid))
            {

                if(WarnedTimes[giveplayerid] == 0)
                {
                    WarnedTimes[giveplayerid]+=1;
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof (sendername));
                    format(str, sizeof (str), "[BGSL ADM]: %s foi avisado por %s pelo motivo: %s [1/3 Avisos!]", giveplayer, sendername, cmdtext[8]);
                    SendClientMessageToAll(green, str);
                    print(str);
                    return 1;
    }
                if(WarnedTimes[giveplayerid] == 1)
                {
                    WarnedTimes[giveplayerid]+=1;
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof (sendername));
                    format(str, sizeof (str), "[BGSL ADM]: %s foi avisado por %s pelo motivo: %s [2/3 Avisos!]", giveplayer, sendername, cmdtext[8]);
                    SendClientMessageToAll(green, str);
                    print(str);
                    return 1;
                }
                else if(WarnedTimes[giveplayerid] == 2)
                {
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof (sendername));
                    format(str, sizeof (str), "[BGSL ADM]: %s foi kickado por %s pelo motivo: %s [3/3 Avisos!]", giveplayer, sendername, cmdtext[8]);
                    SendClientMessageToAll(green, str);
                    WarnedTimes[giveplayerid]==0;//quando vocк kickar vai setar as warn em 0
                    Kick(giveplayerid);
                    return 1;
                }
}
}
        return 1;
}
Reply
#3

Amigo,este cуdigo nгo funcionou,continua kickando de primeira depois que ele foi avisado 3 vezes quando ele volta pro server
Me ajuda aк por favooor.
O que deve se fazer para limpar as warnings
Reply
#4

Quais sгo as warings?
Reply
#5

Como assim?
Reply
#6

Isto deve resolver o seu problema, dei uma identada e arrumei apenas um operador errado do cуdigo do deregudegu que devia ser o motivo do cуdigo dele nгo ter funcionado.

pawn Код:
if(strcmp(cmd,"/Warn",true) == 0)
{
    if(IsPlayerAdmin(playerid))
    {
        GetPlayerName(playerid, sendername, sizeof(sendername));
        new str[256];
        tmp = strtok(cmdtext, idx);
        tmp2 = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, green, "Uso correto: /Warn [id do player] [motivo]");
            return 1;
        }
        giveplayerid = strval(tmp);
        if(IsPlayerConnected(giveplayerid))
        {
            if(WarnedTimes[giveplayerid] == 0)
            {
                WarnedTimes[giveplayerid]+=1;
                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                GetPlayerName(playerid, sendername, sizeof (sendername));
                format(str, sizeof (str), "[BGSL ADM]: %s foi avisado por %s pelo motivo: %s [1/3 Avisos!]", giveplayer, sendername, cmdtext[8]);
                SendClientMessageToAll(green, str);
                print(str);
                return 1;
            }
            else if(WarnedTimes[giveplayerid] == 1)
            {
                WarnedTimes[giveplayerid]+=1;
                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                GetPlayerName(playerid, sendername, sizeof (sendername));
                format(str, sizeof (str), "[BGSL ADM]: %s foi avisado por %s pelo motivo: %s [2/3 Avisos!]", giveplayer, sendername, cmdtext[8]);
                SendClientMessageToAll(green, str);
                print(str);
                return 1;
            }
            else if(WarnedTimes[giveplayerid] == 2)
            {
                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                GetPlayerName(playerid, sendername, sizeof (sendername));
                format(str, sizeof (str), "[BGSL ADM]: %s foi kickado por %s pelo motivo: %s [3/3 Avisos!]", giveplayer, sendername, cmdtext[8]);
                SendClientMessageToAll(green, str);
                WarnedTimes[giveplayerid] = 0;
                Kick(giveplayerid);
                return 1;
            }
        }
    }
    return 1;
}

Espero ter ajudado
Reply
#7

AК,VALEU AН GALERA,FUNCIONOU DIREITINHO AGORA!
MUITO OBRIGADO,QUALQUER DUVIDA PODEM ME PERGUNTAR,N ESQUEЗAM QUE SOU SCRIPTER DO BGSL
FLWS AК,AGUARDO QUALQUER DUVIDA!
Reply
#8

PUTssss...

Sу errei nisso, na proxima presto mais atenзгo

pawn Код:
WarnedTimes[giveplayerid]==0;
//o certo seria
WarnedTimes[giveplayerid] = 0;
Reply
#9

Quote:
Originally Posted by deregudegu
Посмотреть сообщение
Quais sгo as warings?
Nгo й isso. .-. й que tб kickando com 1 sу warning quando ele volta ao server.
Reply
#10

Esse sistemas de aviso a algum player й melhor deixar como BAN e nгo kick, por exemplo:
Quando for a 1Є vez q tomou aviso й kick + aviso
Quando for a 2Є vez da um World Bundures(Acho q й isso --')
E por fim um aviso + ban
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)