SA-MP Forums Archive
[Ajuda] Saida de Interior - 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] Saida de Interior (/showthread.php?tid=522269)



Saida de Interior - ipsLuan - 26.06.2014

Eu queria colocar no meu GameMode um sistema tipo:

Ele sai de um interior e fica congelado por 5 segundos e depois aparecesse a mensagem "Objetos carregados"
mas nгo sei como faзo, alguem poderia me ajudar?


Re: Saida de Interior - rm0203 - 26.06.2014

Crie uma stock Pausar(playerid):

pawn Код:
new Carregado[MAX_PLAYERS];
forward CarregarInterior();
pawn Код:
stock Pausar(playerid)
{
    Carregado[playerid] = 1;
    TogglePlayerControllable(playerid, false);
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetPlayerPos(playerid,x,y,z+2); // Aumentar o z para que o player nгo "caia"
    SetTimer("CarregarInterior",4000,false);
}
pawn Код:
public CarregarInterior()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(Carregado[i] == 1)
            {
                TogglePlayerControllable(i, true);
                Carregado[i] = 0;
            }
        }
    }
}
E insira no momento da entrada do seu player no interior, ou use 'IsPlayerInRangeOfPoint':
pawn Код:
Pausar(playerid);
pawn Код:
GameTextForPlayer(playerid,"Objetos sendo carregados.",1500,4);



Re: Saida de Interior - UPsamp - 26.06.2014

SetTimerEx
TogglePlayerControllable


Re: Saida de Interior - Alwe - 26.06.2014

Quote:
Originally Posted by rm0203
Посмотреть сообщение
Crie uma stock Pausar(playerid):

pawn Код:
new Carregado[MAX_PLAYERS];
pawn Код:
stock Pausar(playerid)
{
    Carregado[playerid] = 1;
    TogglePlayerControllable(playerid, false);
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetPlayerPos(playerid,x,y,z+2); // Aumentar o z para que o player nгo "caia"
    SetTimer("CarregarInterior",4000,false);
}
pawn Код:
public CarregarInterior()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(Carregado[playerid] == 1)
            {
                TogglePlayerControllable(playerid, true);
                Carregado[playerid] = 0;
            }
        }
    }
}
E insira no momento da entrada do seu player no interior, ou use 'IsPlayerInRangeOfPoint':
pawn Код:
Pausar(playerid);
pawn Код:
GameTextForPlayer(playerid,"Objetos sendo carregados.",1500,4);
Creio que com todo esse ensinamento ele ainda irб pedir ajuda .


Re: Saida de Interior - rm0203 - 26.06.2014

Quote:
Originally Posted by Alwe
Creio que com todo esse ensinamento ele ainda irб pedir ajuda .
Eu nгo esperava que ele entendesse de primeira mesmo, rs.


Re: Saida de Interior - ipsLuan - 26.06.2014

Entendi, entгo em cada entrada/saida de interior eu teria que adicionar uma linha contendo
pawn Код:
Pausar(playerid);
??


Re: Saida de Interior - rm0203 - 26.06.2014

Onde quer que vocк queira que ele fique congelado para carregar algo.


Re: Saida de Interior - ipsLuan - 26.06.2014

Ok, valeu.

OBS: Faltou algumas coisas mas jб arrumei:

forward CarregarInterior e na public CarregarInterior vocк fez um pra ser reconhecido como "i" e colocou playerid. Mas mesmo assim, quis ajudar +REP


Re: Saida de Interior - rm0203 - 26.06.2014

Faz sentido, normalmente programo aqui no fуrum mesmo e os erros passam despercebidos. De qualquer forma, vou corrigir.


Re: Saida de Interior - MultiKill - 26.06.2014

Quote:
Originally Posted by rm0203
Посмотреть сообщение
Crie uma stock Pausar(playerid):

pawn Код:
new Carregado[MAX_PLAYERS];
forward CarregarInterior();
pawn Код:
stock Pausar(playerid)
{
    Carregado[playerid] = 1;
    TogglePlayerControllable(playerid, false);
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetPlayerPos(playerid,x,y,z+2); // Aumentar o z para que o player nгo "caia"
    SetTimer("CarregarInterior",4000,false);
}
pawn Код:
public CarregarInterior()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(Carregado[i] == 1)
            {
                TogglePlayerControllable(i, true);
                Carregado[i] = 0;
            }
        }
    }
}
E insira no momento da entrada do seu player no interior, ou use 'IsPlayerInRangeOfPoint':
pawn Код:
Pausar(playerid);
pawn Код:
GameTextForPlayer(playerid,"Objetos sendo carregados.",1500,4);
Й mais fбcil usar o SetTimerEx.

Na callback CarregarInterior por que a loop?
Se um player estiver esperando a callback CarregarInterior ser chamada e para outro player a callback jб foi chamda ele vai poder se mover sem precisar os 5 segundos.

Vocк sу errou na callback o resto parece estar certo.

@Edit
Vocк nгo retornou a callback a verdadeiro e nem a falso.