Code:
stock UTIL_ScreenFade(id=0,iColor[3]={0,0,0},Float:flFxTime=-1.0,Float:flHoldTime=0.0,iAlpha=0,iFlags=0x0000,bool:bReliable=false,bool:bExternal=false){
if(id&&!is_user_connected(id))
return
new iFadeTime
if(flFxTime==-1.0)
iFadeTime = 4
else
iFadeTime = FixedUnsigned16(flFxTime,1<<12)
new MSG_DEST
if(bReliable)
MSG_DEST = id ? MSG_ONE : MSG_ALL
else
MSG_DEST = id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST
if(bExternal){
emessage_begin(MSG_DEST,g_screenfade, _,id)
ewrite_short(iFadeTime)
ewrite_short(FixedUnsigned16(flHoldTime,1<<12 ))
ewrite_short(iFlags)
ewrite_byte(iColor[0])
ewrite_byte(iColor[1])
ewrite_byte(iColor[2])
ewrite_byte(iAlpha)
emessage_end()
}
else{
message_begin(MSG_DEST,g_screenfade,_, id)
write_short(iFadeTime)
write_short(FixedUnsigned16(flHoldTime,1<<12 ))
write_short(iFlags)
write_byte(iColor[0])
write_byte(iColor[1])
write_byte(iColor[2])
write_byte(iAlpha)
message_end()
}
}
stock FixedUnsigned16(Float:flValue, iScale)
{
new iOutput;
iOutput = floatround(flValue * iScale);
if ( iOutput < 0 )
iOutput = 0;
if ( iOutput > 0xFFFF )
iOutput = 0xFFFF;
return iOutput;
}
__________________