[Ajuda] Erro no /Saircasa
#1

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;
}
Reply
#2

@edit agora ke fui entender postei atoa mal
Reply
#3

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 ._.
Reply
#4

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);
Reply
#5

Ninguem ='(

Okay ='(
Reply
#6

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?
Reply
#7

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
Reply
#8

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++)
Reply
#9

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
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)