1 or 2?
#1

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;
}
Reply
#2

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

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.
Reply
#4

Ok, thank you. I will choose 2.
Reply
#5

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)