cuddly-table-7819
03/26/2023, 3:53 PMc++
SetTimer("CheckIfPlayersChangedWeapon", 1500, true);
c++
public CheckIfPlayersChangedWeapon() {
foreach(new i : Player) {
if(paused[i] == false && Logged[i] > 0)
{
new Now_WeaponInHands = GetPlayerWeapon(i);
if(LastWeaponInHands[i] != Now_WeaponInHands) {
OnPlayerChangeWeapon(i, LastWeaponInHands[i], Now_WeaponInHands);
LastWeaponInHands[i] = Now_WeaponInHands;
}
}
}
}clever-air-16091
03/26/2023, 3:58 PMclever-air-16091
03/26/2023, 3:58 PMgorgeous-baker-92777
03/26/2023, 4:08 PMLogged[index] is the array I'm talking about rather than the standard Player iter)cuddly-table-7819
03/26/2023, 4:46 PMcuddly-table-7819
03/26/2023, 4:47 PMnew Logged[MAX_PLAYERS];clever-air-16091
03/26/2023, 4:49 PMclever-air-16091
03/26/2023, 4:51 PMgorgeous-baker-92777
03/26/2023, 4:52 PMcuddly-table-7819
03/26/2023, 5:03 PMclever-air-16091
03/26/2023, 5:04 PMOnPlayerChangeWeapon)cuddly-table-7819
03/26/2023, 5:04 PMcuddly-table-7819
03/26/2023, 5:04 PMclever-air-16091
03/26/2023, 5:10 PM0
1 logged
2 logged
3
6
current version:
c
foreach (new i : Player)
{
// executed for 0, 1, 2, 3, 6
if (Logged[i])
{
// executed for 1, 2
}
}
improved:
c
new Iterator:Logged<MAX_PLAYERS>;
public OnPlayerLogin(playerid) // wherever you change the value of `Logged[playerid]`
{
Iter_Add(Logged, playerid);
}
public OnPlayerDisconnect(playerid, reason)
{
Iter_Remove(Logged, playerid);
}
c
foreach (new i : Logged)
{
// executed for 1, 2 - no need for additional variable check
}