I tried to hook ScreenFade messages and block some of them.
PHP Code:
register_message( get_user_msgid( "ScreenFade" ) , "msgScreenFade" ); // Hook ScreenFade messages
PHP Code:
public msgScreenFade( msg_id , msg_dest , msg_entity )
{
new bool: player_blinded = bool: get_xvar_num( XVar_IsAllHumanBlind );
client_print( 0 , print_chat , "player_blinded: %i" , player_blinded );
if( player_blinded )
{
return PLUGIN_HANDLED;
}
else
{
return PLUGIN_CONTINUE;
}
}
PHP Code:
stock fade_user_screen(id, Float:duration = 1.0, Float:fadetime = 1.0, ScreenFadeFlags:flags = ScreenFade_FadeIn, r = 0, g = 0, b = 255, a = 75, bool:reliable = true)
{
if(id && !is_user_connected(id))
return 0;
static MSG_ScreenFade;
if(!MSG_ScreenFade)
MSG_ScreenFade = get_user_msgid("ScreenFade");
message_begin(get_msg_destination(id, reliable), MSG_ScreenFade, .player = id);
write_short(float_to_short(fadetime));
write_short(float_to_short(duration));
write_short(_:flags);
write_byte(r);
write_byte(g);
write_byte(b);
write_byte(a);
message_end();
return 1;
}
However, except at the time when a player spawned ( client_print() called ), the ScreenFade message is not hooked at any time during the game ( no client_print() called ).