[Ajuda] Loop nгo comeзa a contagem do zero
#1

Estou com um problema, e que a loop sу comeзa a contagem do 1 e nгo do 0 como deveria. Essa e o cod
pawn Код:
stock LoadAttacheplayer(playerid)
{
    new aname[MAX_PLAYER_NAME]; new file[100];new strText[15];
    GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
    format(file, sizeof(file), PASTA_ACESSORIOS, aname);
    if(DOF2::FileExists(file))
    {
        for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
        {
            format(strText, 15, "%d_Index",i);
            if(DOF2::GetInt(file,strText))
            {
                format(strText, 15, "%d_Index", i);
                new index = DOF2::GetInt(file, strText);
                format(strText, 15, "%d_Modelo", i);
                new modelid = DOF2::GetInt(file, strText);
                format(strText, 15, "%d_Boneid", i);
                new boneid = DOF2::GetInt(file, strText);
                format(strText, 15, "%d_pX", i);
                new Float:fOffsetX = DOF2::GetFloat(file, strText);
                format(strText, 15, "%d_pY", i);
                new Float:fOffsetY = DOF2::GetFloat(file, strText);
                format(strText, 15, "%d_pZ", i);
                new Float:fOffsetZ = DOF2::GetFloat(file, strText);
                format(strText, 15, "%d_rX", i);
                new Float:fRotX = DOF2::GetFloat(file, strText);
                format(strText, 15, "%d_rY", i);
                new Float:fRotY = DOF2::GetFloat(file, strText);
                format(strText, 15, "%d_rZ", i);
                new Float:fRotZ = DOF2::GetFloat(file, strText);
                format(strText, 15, "%d_eX", i);
                new Float:fScaleX = DOF2::GetFloat(file, strText);
                format(strText, 15, "%d_eY", i);
                new Float:fScaleY = DOF2::GetFloat(file, strText);
                format(strText, 15, "%d_eZ", i);
                new Float:fScaleZ = DOF2::GetFloat(file, strText);
                return SetPlayerAttachedObject(playerid,index,modelid,boneid,fOffsetX,fOffsetY,fOffsetZ,fRotX,fRotY,fRotZ,fScaleX,fScaleY,fScaleZ);
            }
        }
    }
    return 1;
}
Reply
#2

tente colocar: for(new i = -1; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
Reply
#3

Tenta colocar for(new i =-1
Reply
#4

Quote:
Originally Posted by jovinon
Посмотреть сообщение
tente colocar: for(new i = -1; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
jб fiz isso mas nгo adiantou
Reply
#5

Talvez na primeira iteraзгo, esta condiзгo esteja retornando false
pawn Код:
if(DOF2::GetInt(file,strText))
Confira isto manualmente, ou faзa um debug(ato de imprimir todos os valores, ou trecho do cуdigo, verificando se ele estб sendo executado) para se certificar disto.
Reply
#6

Se vocк imprimir o valor de 'i' vai ver que comeзa do 0 sim, algo estб errado em seus arquivos.
Reply
#7

No gm esta dando print assim
Reply
#8

Quote:
Originally Posted by CyNiC
Посмотреть сообщение
Se vocк imprimir o valor de 'i' vai ver que comeзa do 0 sim, algo estб errado em seus arquivos.
Nгo esta nгo, no documento esta o valor "0"
Reply
#9

Desculpe, nгo percebi de primeira vista, й o que o Dolby falou, se o que estб setado na chave "%d_Index" for 0 seu bloco nгo serб executado, pois a expressгo 'if(DOF2::GetInt(file,strText))' nгo checa se estб setado, checa se retorna um valor positivo, para saber se estб setado use DOF2::IsSet.
Reply
#10

Quote:
Originally Posted by CyNiC
Посмотреть сообщение
Desculpe, nгo percebi de primeira vista, й o que o Dolby falou, se o que estб setado na chave "%d_Index" for 0 seu bloco nгo serб executado, pois a expressгo 'if(DOF2::GetInt(file,strText))' nгo checa se estб setado, checa se retorna um valor positivo, para saber se estб setado use DOF2::IsSet.
Vlw mano funfo.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)