[Ajuda] Resolver flood.
#1

Bom, sei que estб no meio de dois loops.. Mas gostaria de saber como resolver para nгo floodar as mensagens.
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new String[128];
    if(newkeys == 16)
    {
        for(new i = 0; i < MAX_CASAS; i++)
        {
            #define Inf[%0] kDados[i][%0]
            if(IsPlayerInRangeOfPoint(playerid, 2.0, kDados[i][kX], kDados[i][kY], kDados[i][kZ]))
            {
                PlayerTextDrawShow(playerid, Fechar_Casas[playerid]);
                SelectTextDraw(playerid, 0x00FF00FF);
                TogglePlayerControllable(playerid, false);
                for(new loop = 0; loop < 8; ++ loop)
                {
                    TextDrawShowForPlayer(playerid, Text_Casas[playerid][loop]);
                    format(String, sizeof String, "~y~Preco: ~w~$%d", Inf[kPreco]);
                    TextDrawSetString(Text_Casas[playerid][2], String);
                    format(String, sizeof String, "~y~Dono: ~w~%s", Inf[kDono]);
                    TextDrawSetString(Text_Casas[playerid][3], String);
                    format(String, sizeof String, "~y~Imobiliaria: ~w~%s", Inf[kImobiliaria_Name]);
                    TextDrawSetString(Text_Casas[playerid][4], String);
                    if(!strcmp(Inf[kDono], "Ninguem", true))
                    {
                        format(String, sizeof String, "~g~Disponivel");
                        TextDrawSetString(Text_Casas[playerid][7], String);
                        SendClientMessage(playerid, Branco, "Caso queira comprar esta casa, vб atй a imobiliaria responsavel usando /gps.");
                        SendClientMessage(playerid, Cinza, "Se nгo possuir um GPS vб atй uma loja de eletrфnicos.");
                    }
                    else
                    {
                        format(String, sizeof String, "~r~Indisponivel");
                        TextDrawSetString(Text_Casas[playerid][7], String);
                    }
                    if(!strcmp(Inf[kImobiliaria_Name], "Nenhuma", true))
                    {
                        SendClientMessage(playerid, Branco, "Se vocк for dono de uma imobiliaria vocк pode usar /comprarcasa.");
                    }
                }
            }
            #undef Inf
        }
    }
    return true;
}
Mensagens
pawn Код:
SendClientMessage(playerid, Branco, "Caso queira comprar esta casa, vб atй a imobiliaria responsavel usando /gps.");
                        SendClientMessage(playerid, Cinza, "Se nгo possuir um GPS vб atй uma loja de eletrфnicos.");
                        SendClientMessage(playerid, Branco, "Se vocк for dono de uma imobiliaria vocк pode usar /comprarcasa.");
Reply
#2

no meu ponto de vista й pelo fato de ter os loop's MAX_CASAS ou loop de valor mбximo 8 ali, quantas vezes ele flooda as mensagens Input? se floodar 8 ou 9 vezes й por causa da loop, em caso de mais deve ser pelo MAX_CASAS, pois ele conta todas as casas, fazendo aparecer a mensagem para cada casa, ou no caso atй 8
Reply
#3

Quote:
Originally Posted by MatheusDalZot
Посмотреть сообщение
no meu ponto de vista й pelo fato de ter os loop's MAX_CASAS ou loop de valor mбximo 8 ali, quantas vezes ele flooda as mensagens Input? se floodar 8 ou 9 vezes й por causa da loop, em caso de mais deve ser pelo MAX_CASAS, pois ele conta todas as casas, fazendo aparecer a mensagem para cada casa, ou no caso atй 8
Por isso falei, "eu sei que й causado por causa dos loop's"..
Apenas quero saber como imprimir essa mensagem dentro do loop sem repetir varias vezes.
Reply
#4

Eu nem vi o codigo direto .. porque eu ja tenho que sair esta ae se nao pegar vo arruma pra voce .


Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new String[128];
    if(newkeys == 16)
    {
        for(new i = 0; i < MAX_CASAS; i++)
        {
            #define Inf[%0] kDados[i][%0]
            if(IsPlayerInRangeOfPoint(playerid, 2.0, kDados[i][kX], kDados[i][kY], kDados[i][kZ]))
            {
                PlayerTextDrawShow(playerid, Fechar_Casas[playerid]);
                SelectTextDraw(playerid, 0x00FF00FF);
                TogglePlayerControllable(playerid, false);
                for(new loop = 0; loop < 8; ++ loop)
                {
                    TextDrawShowForPlayer(playerid, Text_Casas[playerid][loop]);
                    format(String, sizeof String, "~y~Preco: ~w~$%d", Inf[kPreco]);
                    TextDrawSetString(Text_Casas[playerid][2], String);
                    format(String, sizeof String, "~y~Dono: ~w~%s", Inf[kDono]);
                    TextDrawSetString(Text_Casas[playerid][3], String);
                    format(String, sizeof String, "~y~Imobiliaria: ~w~%s", Inf[kImobiliaria_Name]);
                    TextDrawSetString(Text_Casas[playerid][4], String);
                    if(!strcmp(Inf[kDono], "Ninguem", true))
                    {
                        format(String, sizeof String, "~g~Disponivel");
                        TextDrawSetString(Text_Casas[playerid][7], String);
                        SendClientMessage(playerid, Branco, "Caso queira comprar esta casa, vб atй a imobiliaria responsavel usando /gps.");
                        SendClientMessage(playerid, Cinza, "Se nгo possuir um GPS vб atй uma loja de eletrфnicos.");
                    return 1;
                    }
                    else
                    {
                        format(String, sizeof String, "~r~Indisponivel");
                        TextDrawSetString(Text_Casas[playerid][7], String);
                    }
                    if(!strcmp(Inf[kImobiliaria_Name], "Nenhuma", true))
                    {
                        SendClientMessage(playerid, Branco, "Se vocк for dono de uma imobiliaria vocк pode usar /comprarcasa.");
return 1;
                    }
                }
            }
            #undef Inf
        }
    }
    return true;
}
Reply
#5

Input, nгo tem necessidade de deixб-lo dentro da loop de dentro, entгo ai vai tenta assim.
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new String[128];
    if(newkeys == 16)
    {
        for(new i = 0; i < MAX_CASAS; i++)
        {
            #define Inf[%0] kDados[i][%0]
            if(IsPlayerInRangeOfPoint(playerid, 2.0, kDados[i][kX], kDados[i][kY], kDados[i][kZ]))
            {
                PlayerTextDrawShow(playerid, Fechar_Casas[playerid]);
                SelectTextDraw(playerid, 0x00FF00FF);
                TogglePlayerControllable(playerid, false);
                for(new loop = 0; loop < 8; ++ loop)
                {
                    TextDrawShowForPlayer(playerid, Text_Casas[playerid][loop]);
                    format(String, sizeof String, "~y~Preco: ~w~$%d", Inf[kPreco]);
                    TextDrawSetString(Text_Casas[playerid][2], String);
                    format(String, sizeof String, "~y~Dono: ~w~%s", Inf[kDono]);
                    TextDrawSetString(Text_Casas[playerid][3], String);
                    format(String, sizeof String, "~y~Imobiliaria: ~w~%s", Inf[kImobiliaria_Name]);
                    TextDrawSetString(Text_Casas[playerid][4], String);
                }
                    if(!strcmp(Inf[kDono], "Ninguem", true))
                    {
                        format(String, sizeof String, "~g~Disponivel");
                        TextDrawSetString(Text_Casas[playerid][7], String);
                        SendClientMessage(playerid, Branco, "Caso queira comprar esta casa, vб atй a imobiliaria responsavel usando /gps.");
                        SendClientMessage(playerid, Cinza, "Se nгo possuir um GPS vб atй uma loja de eletrфnicos.");
                    return 1;
                    }
                    else
                    {
                        format(String, sizeof String, "~r~Indisponivel");
                        TextDrawSetString(Text_Casas[playerid][7], String);
                    }
                    if(!strcmp(Inf[kImobiliaria_Name], "Nenhuma", true))
                    {
                        SendClientMessage(playerid, Branco, "Se vocк for dono de uma imobiliaria vocк pode usar /comprarcasa.");
return 1;
                    }
            }
            #undef Inf
        }
    }
    return true;
}
Reply
#6

Quote:
Originally Posted by MatheusDalZot
Посмотреть сообщение
Input, nгo tem necessidade de deixб-lo dentro da loop de dentro, entгo ai vai tenta assim.
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new String[128];
    if(newkeys == 16)
    {
        for(new i = 0; i < MAX_CASAS; i++)
        {
            #define Inf[%0] kDados[i][%0]
            if(IsPlayerInRangeOfPoint(playerid, 2.0, kDados[i][kX], kDados[i][kY], kDados[i][kZ]))
            {
                PlayerTextDrawShow(playerid, Fechar_Casas[playerid]);
                SelectTextDraw(playerid, 0x00FF00FF);
                TogglePlayerControllable(playerid, false);
                for(new loop = 0; loop < 8; ++ loop)
                {
                    TextDrawShowForPlayer(playerid, Text_Casas[playerid][loop]);
                    format(String, sizeof String, "~y~Preco: ~w~$%d", Inf[kPreco]);
                    TextDrawSetString(Text_Casas[playerid][2], String);
                    format(String, sizeof String, "~y~Dono: ~w~%s", Inf[kDono]);
                    TextDrawSetString(Text_Casas[playerid][3], String);
                    format(String, sizeof String, "~y~Imobiliaria: ~w~%s", Inf[kImobiliaria_Name]);
                    TextDrawSetString(Text_Casas[playerid][4], String);
                }
                    if(!strcmp(Inf[kDono], "Ninguem", true))
                    {
                        format(String, sizeof String, "~g~Disponivel");
                        TextDrawSetString(Text_Casas[playerid][7], String);
                        SendClientMessage(playerid, Branco, "Caso queira comprar esta casa, vб atй a imobiliaria responsavel usando /gps.");
                        SendClientMessage(playerid, Cinza, "Se nгo possuir um GPS vб atй uma loja de eletrфnicos.");
                    return 1;
                    }
                    else
                    {
                        format(String, sizeof String, "~r~Indisponivel");
                        TextDrawSetString(Text_Casas[playerid][7], String);
                    }
                    if(!strcmp(Inf[kImobiliaria_Name], "Nenhuma", true))
                    {
                        SendClientMessage(playerid, Branco, "Se vocк for dono de uma imobiliaria vocк pode usar /comprarcasa.");
return 1;
                    }
            }
            #undef Inf
        }
    }
    return true;
}
Tinha esquecido que ele poderia ser executado fora do segundo loop.. Mas jб tinha reparado nisso ^^ Desculpe a demora para responder.. +Rep pela atenзгo.
Reply
#7

de boas, fico feliz que tenho lhe ajudado
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)