2022-01-21, 10:17 PM
(2021-07-31, 12:48 AM)Pinch Wrote:(2021-07-30, 10:19 PM)Radical Wrote: Set a timer with 1 second interval?on OnGameModeInit() then decrease player mute time.
Code:public OneSecondPlayerTimer() {
? ? foreach(new i: Player) {
? ? ? ? PlayerMuteCheck(i);
? ? }
}
PlayerMuteCheck(playerid) {
? ? if(PlayerInfo [playerid] [pMuted] == 1) {
? ? ? ? PlayerInfo [playerid] [pMuted]--;
? ? ? ? SendClientMessage(playerid, -1, "Mute time expired.");
? ? }
? ? if(PlayerInfo [playerid] [pMuted] > 1) PlayerInfo [playerid] [pMuted]--;
}
Also if you want check player is muted you just need check the?PlayerInfo[playerid][pMuted] is not 0.Code:IsPlayerMuted(playerid) {
? ? if(PlayerInfo[playerid][pMuted] == 0) return 0;
? ? return 1;
}
One simple question: why.
Here's the solution:
https://ideone.com/N0ciwe
Using gettime() Mute may expire while user is simply offline. Maybe to get full potential of punishment he wants for user to be online to serve his punishment.
Still it is definetly possible and better way to do with gettime(), you just need 1 more variable to save distance on disconnect.