/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);
}