Teleporte
#1

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.
Reply
#2

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

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

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

Reply
#5

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

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

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)