SA-MP Forums Archive
[Ajuda] Erro no /Saircasa - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Erro no /Saircasa (/showthread.php?tid=368839)



Erro no /Saircasa - Maklister - 14.08.2012

Bom meu problema e que o /entrarcasa esta setando a posiзгo e interior normal ja o /saircasa esta levando o player para a porta da proxima casa.

Exemplo: se eu entro na casa id 1 ao sair apareco na porta da casa id 2

pawn Код:
CMD:saircasa(playerid)
{
    new string[300];
    if(preso[playerid] == 0)
    {
        for(new c = 0; c < MAX_CASAS; c++)
        {
            new strx[300];
            format(strx, sizeof(strx), "/Interiores/int%d.ini", DOF2_GetInt(string, "Int"));
            format(string, sizeof(string), "/Casas/casa%d.ini", c);
            if(IsPlayerInRangeOfPoint(playerid, 2.0, DOF2_GetFloat(strx, "EX"), DOF2_GetFloat(strx, "EY"), DOF2_GetFloat(strx, "EZ")))
            {
                SetPlayerInterior(playerid, 0);
                SetPlayerPos(playerid, DOF2_GetFloat(string, "PosX"), DOF2_GetFloat(string, "PosY"),DOF2_GetFloat(string, "PosZ"));
                SendClientMessage(playerid, 0xC9C9C9AA, "[ CASA ] Vocк saiu da Casa");
                emcasa[playerid] = 0;
            }
            else
            {
            }
        }
    }
    else
    {
            SendClientMessage(playerid, VERMELHO_ESCURO,"[x] Vocк nгo pode usar comando estando preso.");
    }
    return 1;
}


CMD:entrarcasa(playerid)
{
    new string[300];
    if(preso[playerid] == 0)
    {
        for(new c = 0; c < MAX_CASAS; c++)
        {
            format(string, sizeof(string), "/Casas/casa%d.ini", c);
            if(IsPlayerInRangeOfPoint(playerid, 2.0, DOF2_GetFloat(string, "PosX"), DOF2_GetFloat(string, "PosY"), DOF2_GetFloat(string, "PosZ")))
            {
                new strx[300];
                format(strx, sizeof(strx), "/Interiores/int%d.ini", DOF2_GetInt(string, "Int"));
                if(DOF2_FileExists(strx))
                {
                    emcasa[playerid] = 1;
                    new Float:X, Float:Y, Float:Z;
                    GetPlayerPos(playerid, X, Y, Z);
                    CasaX[playerid] = X;
                    CasaY[playerid] = Y;
                    CasaZ[playerid] = Z;
                    SetPlayerVirtualWorld(playerid, c);
                    SetPlayerInterior(playerid, DOF2_GetInt(strx, "Int"));
                    SetPlayerPos(playerid, DOF2_GetFloat(strx, "EX"), DOF2_GetFloat(strx, "EY"), DOF2_GetFloat(strx, "EZ"));
                    SendClientMessage(playerid, 0xC9C9C9AA, "[ CASA ] Vocк entrou na casa.");
                }
            }
            else
            {
            }
        }
    }
    else
    {
            SendClientMessage(playerid, VERMELHO_ESCURO,"[x] Vocк nгo pode usar comando estando preso.");
    }
    return 1;
}



Re: Erro no /Saircasa - Delay - 14.08.2012

@edit agora ke fui entender postei atoa mal


Re: Erro no /Saircasa - @Riichard - 14.08.2012

Tente retirando o loop.

Pуis por qual motivo usou:
pawn Код:
for(new c = 0; c < MAX_CASAS; c++)
Sendo que sу precisa, salvar a antiga posiзгo do jogador, e hora que ele for sair, setar.


@Se eu estiver errado me desculpe, nгo entendo mt de RP/G ._.



Re: Erro no /Saircasa - Maklister - 14.08.2012

Quote:
Originally Posted by @Riichard
Посмотреть сообщение
Tente retirando o loop.

Pуis por qual motivo usou:
pawn Код:
for(new c = 0; c < MAX_CASAS; c++)
Sendo que sу precisa, salvar a antiga posiзгo do jogador, e hora que ele for sair, setar.


@Se eu estiver errado me desculpe, nгo entendo mt de RP/G ._.
Usei a loop por essa funзгo aqui

pawn Код:
format(string, sizeof(string), "/Casas/casa%d.ini", c);



Re: Erro no /Saircasa - Maklister - 14.08.2012

Ninguem ='(

Okay ='(


Re: Erro no /Saircasa - @Riichard - 14.08.2012

Quote:
Originally Posted by Murilo_sousa
Посмотреть сообщение
Usei a loop por essa funзгo aqui

pawn Код:
format(string, sizeof(string), "/Casas/casa%d.ini", c);
Eu sei disso.

Uma pergunta: Esse /entrarcasa, /saircasa, e somente usado se o player contйr casa?


Re: Erro no /Saircasa - Maklister - 14.08.2012

Quote:
Originally Posted by @Riichard
Посмотреть сообщение
Eu sei disso.

Uma pergunta: Esse /entrarcasa, /saircasa, e somente usado se o player contйr casa?
Nao qualquer player pode entrar na casa ou sair da mesma

ainda nao fiz a funзгo /trancarcasa


Re: Erro no /Saircasa - @Riichard - 14.08.2012

Quote:
Originally Posted by Murilo_sousa
Посмотреть сообщение
Nao qualquer player pode entrar na casa ou sair da mesma

ainda nao fiz a funзгo /trancarcasa
O erro acredito que estejб no loop, que faz subir o valor.

pawn Код:
for(new c = 0; c < MAX_CASAS; c++)



Re: Erro no /Saircasa - [BOPE]Seu._.Madruga - 04.09.2012

O script Failed estб abaixo
pawn Код:
format(strx, sizeof(strx), "/Interiores/int%d.ini", DOF2_GetInt(string, "Int"));// como a DOF2 vai verificar o interior, da format string
format(string, sizeof(string), "/Casas/casa%d.ini", c);//sendo que a format string estб definida abaixo da funзгo que chama ela.
Script Corrйto
pawn Код:
CMD:saircasa(playerid)
{
    new string[300];
    if(preso[playerid] == 0)
    {
        for(new c = 0; c < MAX_CASAS; c++)
        {
            new strx[300];
            format(string, sizeof(string), "/Casas/casa%d.ini", c);
            format(strx, sizeof(strx), "/Interiores/int%d.ini", DOF2_GetInt(string, "Int"));          
            if(IsPlayerInRangeOfPoint(playerid, 2.0, DOF2_GetFloat(strx, "EX"), DOF2_GetFloat(strx, "EY"), DOF2_GetFloat(strx, "EZ")))
            {
                SetPlayerInterior(playerid, 0);
                SetPlayerPos(playerid, DOF2_GetFloat(string, "PosX"), DOF2_GetFloat(string, "PosY"),DOF2_GetFloat(string, "PosZ"));
                SendClientMessage(playerid, 0xC9C9C9AA, "[ CASA ] Vocк saiu da Casa");
                emcasa[playerid] = 0;
                return 1;
            }
        }
    }
    else
    {
        SendClientMessage(playerid, VERMELHO_ESCURO,"[x] Vocк nгo pode usar comando estando preso.");
    }
    return 1;
}
Se ajudei da reputation