SA-MP Forums Archive
1 or 2? - 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: 1 or 2? (/showthread.php?tid=600433)



1 or 2? - Bruker - 08.02.2016

Which is better and more optimized?

1:
Код HTML:
public OnPlayerDisconnect(playerid, reason)
{
	if(MechanicTimer[playerid] > -1) { KillTimer(MechanicTimer[playerid]), MechanicTimer[playerid] = -1; }
    if(FindTimer[playerid] > -1) { KillTimer(FindTimer[playerid]), FindTimer[playerid] = -1; }
    if(Refueling[playerid] == 1) { KillTimer(fTimer[playerid]), fTimer[playerid] = -1; }
    if(taxipr[playerid] > -1) { KillTimer(taxipr[playerid]), taxipr[playerid] = -1; }
    if(TruckTrailer[playerid] != -1) DestroyVehicle(TruckTrailer[playerid]), SetVehicleToRespawn(GetPlayerVehicleID(playerid));
    if(pInfo[playerid][pHouse] > -1) DestroyDynamicMapIcon(HouseIcon[playerid]);
	return 1;
}
2:
Код HTML:
public OnPlayerDisconnect(playerid, reason)
{
	KillTimer(MechanicTimer[playerid]), MechanicTimer[playerid] = -1, KillTimer(FindTimer[playerid]), FindTimer[playerid] = -1,
    KillTimer(fTimer[playerid]), fTimer[playerid] = -1, KillTimer(taxipr[playerid]), taxipr[playerid] = -1,
    DestroyVehicle(TruckTrailer[playerid]), SetVehicleToRespawn(GetPlayerVehicleID(playerid)), DestroyDynamicMapIcon(HouseIcon[playerid]);
	return 1;
}



Re: 1 or 2? - DoDler - 08.02.2016

First one ,because it doesnt run the KillTimer and DestroyVehicle functions unnecessarily when a timer and vehicle dont exist


Re: 1 or 2? - Beckett - 08.02.2016

I believe the second one is faster because KillTimer already checks if the timer is valid, if it's valid then it kills it.


So your checks are unnecessary in the first one.


Also, I've just fetched you an answer from the wiki itself:

Quote:

Timer IDs are never used twice. You can use KillTimer() on a timer ID and it won't matter if it's running or not.

The double checks are unnecessary, I believe.


Re: 1 or 2? - Bruker - 08.02.2016

Ok, thank you. I will choose 2.


Re: 1 or 2? - Sascha - 08.02.2016

Quote:
Originally Posted by DaniceMcHarley
Посмотреть сообщение
I believe the second one is faster because KillTimer already checks if the timer is valid, if it's valid then it kills it.


So your checks are unnecessary in the first one.


Also, I've just fetched you an answer from the wiki itself:



The double checks are unnecessary, I believe.
I'd also consider it to be safer. If you set some of your variables wrong, at any part of your code, the timer might be continueing although it shouldn't be.
I'd personally select the second type regardless of its' effiency, it might be easier to handle on huge scripts.