13.10.2013, 11:34
When using a timer you set the amount of time it takes and then what it runs like so:
This goes down near the bottom, it will unfreeze the player.
Код:
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 } } } }
Код:
forward Unfreeze(playerid); public Unfreeze(playerid) { TogglePlayerControllable(playerid,1); }