PDA

View Full Version : Timers


Super_Panda
05/10/2011, 11:44 PM
Hey this is my code:


public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(Eventomotos[playerid] == 1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{

SetTimer("Paro3",1000,true);
TogglePlayerControllable(playerid,0);
SetTimer("Paro",10000,true);
new string[124];
format( string, sizeof(string), "~g~ fuera! ");
GameTextForAll( string, 5000, 3 );
TogglePlayerControllable(playerid,0);

}

}
return 1;
}
I want that when the player gets in the car, then wait 1 second, so when 1 second passes, toggleplayercontrollable = 0 (Freeze) Just for 10 seconds, then after 10 seconds gametextforall "Fuera" and unfreeze the player.

brett7
05/10/2011, 11:53 PM
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(Eventomotos[playerid] == 1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{

SetTimer("Paro3",1000,true);
TogglePlayerControllable(playerid,0);
SetTimer("Paro",10000,true);
new string[124];
format( string, sizeof(string), "~g~ fuera! ");
GameTextForAll( string, 5000, 3 );
TogglePlayerControllable(playerid,0);
SetTimerEx("timer", 10000, false, "i", playerid); //create timer here

}

}
return 1;
}



public timer(playerid)
{
new string[124];
format( string, sizeof(string), "~g~ fuera! ");
GameTextForAll( string, 5000, 3 );
TogglePlayerControllable(playerid,TRUE);
return 1;
}

Backwardsman97
06/10/2011, 12:14 AM
That would be setting the timer 500 times.

Super_Panda
06/10/2011, 12:21 AM
How to fix it then?

Backwardsman97
06/10/2011, 12:40 AM
Try this.


forward pFreeze(playerid);
forward pUnFreeze(playerid);

public OnPlayerStateChange(playerid,newstate,oldstate)
{
if(Eventomotos[playerid] == 1)
{
if(newstate == PLAYER_STATE_DRIVER)
{
SetTimerEx("pFreeze",1000,false,"d",playerid);
return 1;
}
}
return 1;
}

public pFreeze(playerid)
{
TogglePlayerControllable(playerid,0);
SetTimerEx("pUnFreeze",10000,false,"d",playerid);
return 1;
}

public pUnFreeze(playerid)
{
TogglePlayerControllable(playerid,1);
GameTextForAll("~g~ Fuera! ",4000,4);
return 1;
}