SA-MP Forums Archive
/enter - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: /enter (/showthread.php?tid=469467)



/enter - ajam112 - 13.10.2013

how to make if player enter a interior he will be freeze for like 3 or 5 seconds. please help me some here.

pawn Код:
if(newkeys & 16 && !IsPlayerInAnyVehicle(playerid))
    {
        if(PlayerTemp[playerid][key_enter] == 2)
        {
            CheckExit(playerid);
            CheckEnter(playerid);
        }
        for( new i; i < sizeof(setting_TP); i++)
        {
            if(setting_TP[i][tEnterX] == 0.0) continue;
            if(IsPlayerInRangeOfPoint(playerid, 2.0, setting_TP[i][tEnterX],setting_TP[i][tEnterY], setting_TP[i][tEnterZ]))
            {
                if(GetPlayerInterior(playerid) == setting_TP[i][tEnterINT] && GetPlayerVirtualWorld(playerid) == setting_TP[i][tEnterVW])
                {
                    SetPlayerPosEx(playerid,setting_TP[i][tExitX],setting_TP[i][tExitY],setting_TP[i][tExitZ],setting_TP[i][tExitINT],setting_TP[i][tExitVW]);
                }
            }
            if(IsPlayerInRangeOfPoint(playerid, 2.0, setting_TP[i][tExitX],setting_TP[i][tExitY],setting_TP[i][tExitZ]))
            {
                if(GetPlayerInterior(playerid) == setting_TP[i][tExitINT] && GetPlayerVirtualWorld(playerid) == setting_TP[i][tExitVW])
                {
                    SetPlayerPosEx(playerid,setting_TP[i][tEnterX],setting_TP[i][tEnterY], setting_TP[i][tEnterZ], setting_TP[i][tEnterINT],setting_TP[i][tEnterVW]);
                }
            }
        }
    }



Re: /enter - Astralis - 13.10.2013

create a timer.


Re: /enter - ajam112 - 13.10.2013

how?


Re: /enter - Jerm - 13.10.2013

When using a timer you set the amount of time it takes and then what it runs like so:
Код:
if(newkeys & 16 && !IsPlayerInAnyVehicle(playerid))
    {
        if(PlayerTemp[playerid][key_enter] == 2)
        {
            CheckExit(playerid);
            CheckEnter(playerid);
        }
        for( new i; i < sizeof(setting_TP); i++)
        {
            if(setting_TP[i][tEnterX] == 0.0) continue;
            if(IsPlayerInRangeOfPoint(playerid, 2.0, setting_TP[i][tEnterX],setting_TP[i][tEnterY], setting_TP[i][tEnterZ]))
            {
                if(GetPlayerInterior(playerid) == setting_TP[i][tEnterINT] && GetPlayerVirtualWorld(playerid) == setting_TP[i][tEnterVW])
                {
                    SetPlayerPosEx(playerid,setting_TP[i][tExitX],setting_TP[i][tExitY],setting_TP[i][tExitZ],setting_TP[i][tExitINT],setting_TP[i][tExitVW]);
                    TogglePlayerControllable(playerid, 0); // This freezes the player once he gets moved
                    SetTimerEx("Unfreeze",3000,false,"i",playerid); // This will unfreeze the player after 3 seconds
                }
            }
            if(IsPlayerInRangeOfPoint(playerid, 2.0, setting_TP[i][tExitX],setting_TP[i][tExitY],setting_TP[i][tExitZ]))
            {
                if(GetPlayerInterior(playerid) == setting_TP[i][tExitINT] && GetPlayerVirtualWorld(playerid) == setting_TP[i][tExitVW])
                {
                    SetPlayerPosEx(playerid,setting_TP[i][tEnterX],setting_TP[i][tEnterY], setting_TP[i][tEnterZ], setting_TP[i][tEnterINT],setting_TP[i][tEnterVW]);
                    TogglePlayerControllable(playerid, 0); // This freezes the player once he gets moved
                    SetTimerEx("Unfreeze",3000,false,"i",playerid); // This will unfreeze the player after 3 seconds
                }
            }
        }
    }
This goes down near the bottom, it will unfreeze the player.
Код:
forward Unfreeze(playerid);
public Unfreeze(playerid)
{
TogglePlayerControllable(playerid,1);
}