20.02.2013, 19:44
Hey guys, just finished making my freeze/unfreeze/auto-unfreeze functions for my server. The problem is, when I freeze someone, unfreeze them ( or they get automatically un frozen ), and then freeze them, it says they are already frozen. For example:
-I freeze a player
-I unfreeze them, or they get automatically unfrozen
-I freeze them again, it says "This person is already frozen".
I have done it properly. Look:
See, it turns it to false when you un freeze them.
Same here,
^^^ See, it turns false meaning he is not frozen anymore.
The problem is here:
I don't see a problem with the script, Please help!
-I freeze a player
-I unfreeze them, or they get automatically unfrozen
-I freeze them again, it says "This person is already frozen".
I have done it properly. Look:
Код:
CMD:unfreeze( playerid, params[ ] ) { if ( pInfo[ playerid ][ Adminlevel ] < 2 ) return SendClientMessage(playerid, RED, "You are not authorised to use this command"); new id; if ( sscanf( params, "u", id ) ) return SendClientMessage( playerid, RED, "USAGE : /unmute [id/name]" ); if ( id == INVALID_PLAYER_ID ) return SendClientMessage( playerid, RED, "That player is not connected." ); if ( !playerFrozen{ id } ) // Player is not muted return SendClientMessage( playerid, RED, "ERROR: That player is not frozen." ); new str6[ 128 ]; format( str6, sizeof ( str6 ), "[UNMUTE] Administrator %s has unfrozen %s.", GetName( playerid ), GetName( id ) ); SendClientMessageToAll( RED, str6 ); playerMuted{ id } = false; TogglePlayerControllable(id,1); return 1; }
Same here,
Код:
forward FreezeTimer( playerid ); public FreezeTimer( playerid ) { if ( !playerFrozen{ playerid } ) return 1; new str[ 128 ]; format( str, sizeof ( str ), "[AUTO - UNFREEZE] %s has been automatically unfrozen.", GetName( playerid ) ); SendClientMessageToAll(RED, str); playerMuted{ playerid } = false; TogglePlayerControllable(playerid,1); return 1; }
The problem is here:
Код:
CMD:freeze( playerid, params[] ) { if ( pInfo[ playerid ][ Adminlevel ] < 2 ) return SendClientMessage( playerid, RED, "You are not authorised to use this command" ); new id, minutes, reason[ 128 ]; if ( sscanf( params, "uis", id, minutes, reason ) ) return SendClientMessage( playerid, RED, "USAGE: /freeze [id/name] [minutes] [reason]" ); if ( id == INVALID_PLAYER_ID ) return SendClientMessage( playerid, RED, "That player is not connected" ); if ( playerFrozen{ id } ) return SendClientMessage( playerid, RED, "That player is already frozen." ); new time = ( minutes * 60000 ); // 1000 ms = 1 sec || 60k ms = 1 min ( 60 sec ) SetTimerEx( "FreezeTimer", time, false, "i", id ); new str[ 128 ]; format( str, sizeof ( str ), "[FREEZE] Administrator %s has muted %s for %i minutes. Reason: %s", GetName( playerid ), GetName( id ), minutes, reason ); SendClientMessageToAll( RED, str ); playerFrozen{ id } = true; TogglePlayerControllable(id,0); return 1; }