SA-MP Forums Archive
Teleporte - 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: Teleporte (/showthread.php?tid=268865)



Teleporte - dudu.r.oliveira - 14.07.2011

tipo eu e meu amigo fisemos um teleporte no nosso gm

Код:
else if(PlayerToPoint(1, i,-1165.63,-1039.36,129.26))//Presidio entrar
{
    SetPlayerPos(i,-1243.60,-1077.54,5.00);
    SetPlayerInterior(i, 1);
}
so que como e um map quando vc entra nele ele comessa a cair, eu queria saber como fas pra congelar o cara por uns 6/7 segundos, so pra da tempo de carregar os objetos, vlw.


Re: Teleporte - [BEP]AcerPilot - 14.07.2011

Usa esse pequeno cуdigo:

pawn Код:
forward CongelarESetarPos(playerid);

stock Congelar(playerid, Float:X, Float:Y, Float:Z)
{
    TogglePlayerControllable(playerid, 0);
    SetPlayerPos(playerid, X, Y, Z);
    SetTimerEx("CongelarESetarPos", 6000, 0, "i", playerid);
}

public CongelarESetarPos(playerid)
{
    TogglePlayerControllable(playerid, 1);
}
Й sу substituir SetPlayerPos(playerid) por CongelarESetarPos(playerid).

Acho que 6 segundos й muito, meio segundo deve dar. Se quiser modificar, vб em SetTimerEx e modifique 6000 para 500 ou outro valor desejado.

Tambйm cheque:

wiki.sa-mp.com/wiki/SetTimerEx
wiki.sa-mp.com/wiki/TogglePlayerControllable
wiki.sa-mp.com/wiki/SetPlayerPos


Re: Teleporte - Ricop522 - 14.07.2011

Estavamos discutindo isso mesmo hoje no useful functions =p

https://sampforum.blast.hk/showthread.php?tid=38965&page=227

pawn Код:
stock SetPlayerPosDelay(delay, playerid, Float:x, Float:y, Float:z, Float:angle, vworld, interior)
{
    if(!IsPlayerConnected(playerid)) return 1;
        SetPlayerPos(playerid, x, y, z);
    if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
    if(delay > 0)
    {
        TogglePlayerControllable(playerid, 0);
        SetTimerEx("SetUnfreeze", delay, false, "i", playerid);
    }
    SetPlayerFacingAngle(playerid, angle);
    SetPlayerVirtualWorld(playerid, vworld);
    SetPlayerInterior(playerid, interior);
    SetCameraBehindPlayer(playerid);
    return 1;
}

forward SetUnfreeze(playerid); public SetUnfreeze(playerid)
{
    TogglePlayerControllable(playerid, 1);
}
O cara falou que o meu cуdigo nгo funcionava .-. mas ok


Re: Teleporte - array13 - 14.07.2011

PHP код:
else if(PlayerToPoint(1i,-1165.63,-1039.36,129.26))
{
    
SetPlayerPos(playerid,-1243.60,-1077.54,6.00);
    
SetPlayerInterior(playerid0);//default 0....troque o numero para o interior que quiser




Re: Teleporte - Pharrel - 15.07.2011

pawn Код:
forward Freeze(playerid);
forward Unfreeze(playerid);

public Freeze(playerid)
{
TogglePlayerControllable(playerid, false);
SetTimerEx("Unfreeze", 4000, 0);
}

public Unfreeze(playerid)
{
TogglePlayerControllable(playerid, true);
}

ai em todo teleport q vc criar vc coloca depois do setplayerpos vc poe Freeze(i); por exemplo



Re: Teleporte - Ricop522 - 15.07.2011

Vocк pode fazer isso tambйm ..mais fбcil.
pawn Код:
new filadescongelar;
stock Congelar(playerid, segundos) {
   filadescongelar++;
   if(filadescongelar == 1) return SendClientMessage(playerid, -1, "Ocorreu um erro; a fila de congelar estб cheia, aguarde uma vaga.");
   TogglePlayerControllable(playerid, false); //й 0
   SetTimerEx( "Descongelar", segundos, false, "i", playerid);
   return 1;
}

forward Descongelar(playerid); public Descongelar(playerid) return TogglePlayerControllable(playerid, true), filadescongelar--;
A fila й para nгo bugar quando for enviado 2 pessoas.


Re: Teleporte - SuYaNw - 15.07.2011

Quote:
Originally Posted by Ricop522
Посмотреть сообщение
Estavamos discutindo isso mesmo hoje no useful functions =p

https://sampforum.blast.hk/showthread.php?tid=38965&page=227

pawn Код:
stock SetPlayerPosDelay(delay, playerid, Float:x, Float:y, Float:z, Float:angle, vworld, interior)
{
    if(!IsPlayerConnected(playerid)) return 1;
        SetPlayerPos(playerid, x, y, z);
    if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
    if(delay > 0)
    {
        TogglePlayerControllable(playerid, 0);
        SetTimerEx("SetUnfreeze", delay, false, "i", playerid);
    }
    SetPlayerFacingAngle(playerid, angle);
    SetPlayerVirtualWorld(playerid, vworld);
    SetPlayerInterior(playerid, interior);
    SetCameraBehindPlayer(playerid);
    return 1;
}

forward SetUnfreeze(playerid); public SetUnfreeze(playerid)
{
    TogglePlayerControllable(playerid, 1);
}
O cara falou que o meu cуdigo nгo funcionava .-. mas ok
ele estб certo,
este seu cуdigo й inъtel, pois seta a posiзгo do player e se delay for maior que zero fica parado/bloqueado.
o poblema se o cara botar delay 1.

pra min isto й super inъtel.