wenn z.B. jemand in eine flash-granate guckt, dann ruft die cstrike-gamedll eine reihe von engine-funktionen auf.
Code:
MESSAGE_BEGIN(MSG_ONE_RELIABLE,GET_USER_MSGID("ScreenFade"),{0,0,0},id)
WRITE_SHORT( 1<<fade ) // fade lasts this long duration
WRITE_SHORT( 1<<hold ) // fade lasts this long hold time
WRITE_SHORT( 1<<12 ) // fade type (in / out)
WRITE_BYTE( red ) // fade red
WRITE_BYTE( green ) // fade green
WRITE_BYTE( blue ) // fade blue
WRITE_BYTE( alpha ) // fade alpha
MESSGAE_END()
die parameter von MESSAGE_BEGIN geben z.b. die ID der message an, an welchen spieler sie gesendet werden soll, ob dafür ein zuverlässiger kanal verwendet werden soll (d.h. im falle eines packet-loss wird die message erneut gesendet) usw. mit MESSAGE_END wird die message abgeschlossen und die engine macht sich an die arbeit. der client empfängt die message und parst die daten. je nach message-typ und parametern wird dann z.b. der bildschirm eingefärbt, der screen gewackelt, eine explosion dargestellt, ein blitz erzeugt, ein sound abgespielt etc. es gibt ziemlich viele von diesen messages. es gibt eine reihe von standard-messages, die in der sdk definiert und teilw. auch erklärt sind. zusätzlich kann jeder mod eigene messages definieren, die dann natürlich auch von einer veränderten client-dll geparst werden sollten.
ich habe leider kA wie man die dinger nennen soll oder wie mans ins deutsche übersetzt, also verwende ich das wort message, das schließlich auch in den funktionsnamen vorkommt.
/edit: nochmal genaue message-struktur nachgeguckt