SA-MP Forums Archive
Timer help! - 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: Timer help! (/showthread.php?tid=382242)



Timer help! - nickbouwhuis - 02.10.2012

Hey guys! I found this piece of code on the forums

Код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        new currentveh;
        currentveh = GetPlayerVehicleID(playerid);
        DestroyVehicle(currentveh);
        SetTimerEx("cardestroyedhide", 5000, 0, "i", playerid);
    }
    return 1;
}
This makes it so that when a player exits his car, the car disappears. That's nice, but I want to disappear after a minute, how do I implement that?

Thanks in advance!
-Nick


Re: Timer help! - gtakillerIV - 02.10.2012

Try this:

Код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        new currentveh;
        currentveh = GetPlayerVehicleID(playerid);
        DestroyVehicle(currentveh);
        SetTimerEx("cardestroyedhide", 60000 , 0, "i", playerid);
    }
    return 1;
}



Re: Timer help! - nickbouwhuis - 02.10.2012

Quote:
Originally Posted by gtakillerIV
Посмотреть сообщение
Try this:

Код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        new currentveh;
        currentveh = GetPlayerVehicleID(playerid);
        DestroyVehicle(currentveh);
        SetTimerEx("cardestroyedhide", 60000 , 0, "i", playerid);
    }
    return 1;
}
Nope, car directly disappears after I get out, it neds to wait one minute after the player gets out


Re: Timer help! - Djole1337 - 02.10.2012

Should work...


pawn Код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
    for(new i=0; i<MAX_VEHICLES; i++)
    SetTimerEx("ResetCar", 60000, 0,"d", vehicleid);
}
forward ResetCar(vehicleid);
public ResetCar(vehicleid)
{
    DestroyVehicle(vehicleid);
    return 1;
}



Re: Timer help! - nickbouwhuis - 02.10.2012

Quote:
Originally Posted by Mr_DjolE
Посмотреть сообщение
Should work...


pawn Код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
    for(new i=0; i<MAX_VEHICLES; i++)
    SetTimerEx("ResetCar", 60000, 0,"d", vehicleid);
}
forward ResetCar(vehicleid);
public ResetCar(vehicleid)
{
    DestroyVehicle(vehicleid);
    return 1;
}
Aww yeah! It works! What happens if a user gets back in the car in that minute? Will the car still disappear?

--EDIT--
Tested, car will disappear, can you also build in that that doesn't happen? Would be greatly apriciatied!


Re: Timer help! - gtakillerIV - 02.10.2012

Код:
forward ResetCar(playerid, vehicleid);
public ResetCar(playerid, vehicleid)
{
	if(!IsPlayerInAnyVehicle(playerid))
 	{
  		DestroyVehicle(vehicleid);
   	}
	return 1;
}
This should work, I hope.

Sorry for lose identations.


Re: Timer help! - RedFusion - 02.10.2012

Quote:
Originally Posted by Mr_DjolE
Посмотреть сообщение
Should work...


pawn Код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
    for(new i=0; i<MAX_VEHICLES; i++)// < What is this for? You dont need this.
    SetTimerEx("ResetCar", 60000, 0,"d", vehicleid);
}
forward ResetCar(vehicleid);
public ResetCar(vehicleid)
{
    DestroyVehicle(vehicleid);
    return 1;
}
Remove the for-loop, you dont even use it.


Re: Timer help! - Djole1337 - 02.10.2012

Quote:
Originally Posted by nickbouwhuis
Посмотреть сообщение
Aww yeah! It works! What happens if a user gets back in the car in that minute? Will the car still disappear?

--EDIT--
Tested, car will disappear, can you also build in that that doesn't happen? Would be greatly apriciatied!
Well try killing timer onplayerentervehicle, that should work i think.

E.g.

pawn Код:
new myTimer;

public OnPlayerExitVehicle(playerid, vehicleid)
{
    myTimer = SetTimerEx("ResetCar", 60000, 0,"d", vehicleid);
}
forward ResetCar(vehicleid);
public ResetCar(vehicleid)
{
    DestroyVehicle(vehicleid);
    return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    KillTimer(myTimer);
    return 1;
}



Re: Timer help! - RedFusion - 02.10.2012

pawn Код:
new myTimer[MAX_VEHICLES];

public OnPlayerExitVehicle(playerid, vehicleid)
{
    myTimer[vehicleid] = SetTimerEx("ResetCar", 60000, 0,"d", vehicleid);
}
forward ResetCar(vehicleid);
public ResetCar(vehicleid)
{
    DestroyVehicle(vehicleid);
    return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    KillTimer(myTimer[vehicleid]);
    return 1;
}
small fix


Re: Timer help! - nickbouwhuis - 03.10.2012

Quote:
Originally Posted by RedFusion
Посмотреть сообщение
pawn Код:
new myTimer[MAX_VEHICLES];

public OnPlayerExitVehicle(playerid, vehicleid)
{
    myTimer[vehicleid] = SetTimerEx("ResetCar", 60000, 0,"d", vehicleid);
}
forward ResetCar(vehicleid);
public ResetCar(vehicleid)
{
    DestroyVehicle(vehicleid);
    return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    KillTimer(myTimer[vehicleid]);
    return 1;
}
small fix
Thank you soo much for your help! It worked for me!