Half-Life 1 Engine Messages

From AlliedModders Wiki
Jump to: navigation, search
//SVC_BAD                 0
SVC_NOP                   1
SVC_DISCONNECT            2
SVC_EVENT                 3
SVC_VERSION               4
SVC_SETVIEW               5
SVC_SOUND                 6
SVC_TIME                  7
SVC_PRINT                 8
SVC_STUFFTEXT             9
SVC_SETANGLE              10
SVC_SERVERINFO            11
SVC_LIGHTSTYLE            12
SVC_UPDATEUSERINFO        13
SVC_DELTADESCRIPTION      14
SVC_CLIENTDATA            15
SVC_STOPSOUND             16
SVC_PINGS                 17
SVC_PARTICLE              18
SVC_DAMAGE                19
SVC_SPAWNSTATIC           20
SVC_EVENT_RELIABLE        21
SVC_SPAWNBASELINE         22
SVC_TEMPENTITY            23
SVC_SETPAUSE              24
SVC_SIGNONNUM             25
SVC_CENTERPRINT           26
SVC_KILLEDMONSTER         27
SVC_FOUNDSECRET           28
SVC_SPAWNSTATICSOUND      29
SVC_INTERMISSION          30
SVC_FINALE                31
SVC_CDTRACK               32
SVC_RESTORE               33
SVC_CUTSCENE              34
SVC_WEAPONANIM            35
SVC_DECALNAME             36
SVC_ROOMTYPE              37
SVC_ADDANGLE              38
SVC_NEWUSERMSG            39
SVC_PACKETENTITIES        40
SVC_DELTAPACKETENTITIES   41
SVC_CHOKE                 42
SVC_RESOURCELIST          43
SVC_NEWMOVEVARS           44
SVC_RESOURCEREQUEST       45
SVC_CUSTOMIZATION         46
SVC_CROSSHAIRANGLE        47
SVC_SOUNDFADE             48
SVC_FILETXFERFAILED       49
SVC_HLTV                  50
SVC_DIRECTOR              51
SVC_VOICEINIT             52
SVC_VOICEDATA             53
SVC_SENDEXTRAINFO         54
SVC_TIMESCALE             55
SVC_RESOURCELOCATION      56
SVC_SENDCVARVALUE         57
SVC_SENDCVARVALUE2        58


SVC_ADDANGLE

Add an angle on the yaw axis of the current client's view angle.
Note: When pev->fixangle is set to 2, this message is called to add pev->avelocity[1] as value.
Note: The value needs to be scaled by ( 65536 / 360 ).

Name: SVC_ADDANGLE
Structure:
short AngleToAdd


SVC_CDTRACK

Plays an Half-Life music.
Note: Track goes from 1 to 30.
Note: The musics are located in valve/media/.
Note: The second param is unused and not optional.

Name: SVC_CDTRACK
Structure:
byte Track
byte LoopTrack [unused]


SVC_CENTERPRINT

Sends a centered message.

Note: Called from pfnClientPrintf with print_center as type.

Name: SVC_CENTERPRINT
Structure:
string Message


SVC_CHOKE

Note: This message has no arguments.

Name: SVC_CHOKE
Structure:


SVC_CROSSHAIRANGLE

Adjusts the weapon's crosshair angle.
Basically, the weapon position on the player's view can have a different origin.

Note: Called by pfnCrosshairAngle. So, the same as EngFunc_CrosshairAngle.
Note: If you use the engine call, no need to scale by 5.
Note: Use 0 for both to get the default position.

Name: SVC_CROSSHAIRANGLE
Structure:
char PitchAngle * 5
char YawAngle * 5


SVC_CUTSCENE

Shows the intermission camera view, and writes-out text passed in first parameter.

Note: Intermission mode 3.
Note: This text will keep showing on clients in future intermissions.

Name: SVC_CUTSCENE
Structure:
string Text


SVC_DAMAGE

Note: Deprecated.

Name: SVC_DAMAGE
Structure:


SVC_DECALNAME

Allows to set, into the client's decals array and at specific position index (0->511), a decal name.
E.g: let's say you send a message to set a decal "{break" at index 200.
As result, when a message TE_ will be used to show a decal at index 200, we will see "{break".

Note: If there is already an existing decal at the provided index, it will be overwritten.
Note: It appears we can play only with decals from decals.wad.

Name: SVC_DECALNAME
Structure:
byte PositionIndex
string DecalName


SVC_DISCONNECT

Disconnect player with given reason.

Name: SVC_DISCONNECT
Structure:
string Reason


SVC_INTERMISSION

Shows the intermission camera view

Note: Intermission mode 1.
Note: This message has no arguments.

Name: SVC_INTERMISSION
Structure:


SVC_FILETXFERFAILED

Sends a message to the client's console telling what file has failed to be transfered.
Note: The message type is : "Error: server failed to transmit file 'FileName'""

Name: SVC_FILETXFERFAILED
Structure:
string FileName


SVC_FINALE

Shows the intermission camera view, and writes-out text passed in first parameter.

Note: Intermission mode 2.
Note: This text will keep showing on clients in future intermissions.

Name: SVC_FINALE
Structure:
string Text


SVC_KILLEDMONSTER

Note: Deprecated.

Name: SVC_KILLEDMONSTER
Structure:


SVC_FOUNDSECRET

Note: Deprecated.

Name: SVC_FOUNDSECRET
Structure:


SVC_HLTV

Tells client about current spectator mode.

As found in hltv.h:

#define HLTV_ACTIVE	0	// tells client that he's an spectator and will get director commands
#define HLTV_STATUS	1	// send status infos about proxy 
#define HLTV_LISTEN	2	// tell client to listen to a multicast stream
Name: SVC_HLTV
Structure:
byte Mode


SVC_LIGHTSTYLE

Setup light animation tables. 'a' is total darkness, 'z' is maxbright.

Note: Server send 64 lightstyles to client during client connect. Most of them has empty light info. All of them could be found in world.cpp

// 0 normal
LIGHT_STYLE(0, "m");
// 1 FLICKER (first variety)
LIGHT_STYLE(1, "mmnmmommommnonmmonqnmmo");	
// 2 SLOW STRONG PULSE
LIGHT_STYLE(2, "abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba");	
// 3 CANDLE (first variety)
LIGHT_STYLE(3, "mmmmmaaaaammmmmaaaaaabcdefgabcdefg");	
// 4 FAST STROBE
LIGHT_STYLE(4, "mamamamamama");	
// 5 GENTLE PULSE 1
LIGHT_STYLE(5,"jklmnopqrstuvwxyzyxwvutsrqponmlkj");	
// 6 FLICKER (second variety)
LIGHT_STYLE(6, "nmonqnmomnmomomno");	
// 7 CANDLE (second variety)
LIGHT_STYLE(7, "mmmaaaabcdefgmmmmaaaammmaamm");	
// 8 CANDLE (third variety)
LIGHT_STYLE(8, "mmmaaammmaaammmabcdefaaaammmmabcdefmmmaaaa");	
// 9 SLOW STROBE (fourth variety)
LIGHT_STYLE(9, "aaaaaaaazzzzzzzz");	
// 10 FLUORESCENT FLICKER
LIGHT_STYLE(10, "mmamammmmammamamaaamammma");
// 11 SLOW PULSE NOT FADE TO BLACK
LIGHT_STYLE(11, "abcdefghijklmnopqrrqponmlkjihgfedcba");	
// 12 UNDERWATER LIGHT MUTATION
// this light only distorts the lightmap - no contribution
// is made to the brightness of affected surfaces
LIGHT_STYLE(12, "mmnnmmnnnmmnn");
 
// styles 32-62 are assigned by the light program for switchable lights
 
// 63 testing
LIGHT_STYLE(63, "a");
Name: SVC_LIGHTSTYLE
Structure:
byte index
string lightinfo


SVC_NEWMOVEVARS

Updates client's movevars.

Note: This message is sent on client's connect and when any change is detected between the current server movevars and server cvars values.
Note: If there is a change, the value of server cvars are copied into the server movevars, then the message is sent to all players using the server movevars.

Name: SVC_NEWMOVEVARS
Structure:
float Gravity
float StopSpeed
float MaxSpeed
float SpectatorMaxSpeed
float Accelerate
float AirAccelerate
float WaterAccelerate
float Friction
float EdgeFriction
float WaterFriction
float EntGravity
float Bounce
float StepSize
float MaxVelocity
float ZMax
float WaveHeigth
byte Footsteps
float RollAngle
float RollSpeed
float SkyColorRed
float SkyColorGreen
float SkyColorBlue
float SkyVecX
float SkyVecY
float SkyVecZ
string SkyName


SVC_PARTICLE

Shows a particle effect.

Note: Called from pfnParticleEffect. So, the same as EngFunc_ParticleEffect.
Note: The direction has to be a value between -128 to 127, after the scale operation.
Note: You don't need to scaled by 16 if you use the engine call.
Note: Color is an index from the palette attached at right.

Standard Quake1 palette
Name: SVC_PARTICLE
Structure:
coord OriginX
coord OriginY
coord OriginZ
char DirectionX * 16
char DirectionY * 16
char DirectionZ * 16
byte Count
byte Color


SVC_PINGS

Contains ping, loss for several players.

Note: Flag is 1 - rest data contains PlayerID, Ping and Loss at least for 1 player.
Note: Flag is 0 - end of the message, skip remaining bits.
Note: ... - Flag + PlayerID + Ping + Loss - N times.

Name: SVC_PINGS
Structure:
1 bit Flag 1
5 bits PlayerID
12 bits Ping
7 bits Loss
... ...
1 bit Flag 0
n bits Align to byte with zero bits


SVC_PRINT

Sends a message to the client's console.

Note: Called from pfnClientPrintf with print_console or print_notify as type.

Name: SVC_PRINT
Structure:
string Message


SVC_RESOURCELOCATION

This message sends sv_downloadurl to client.

Name: SVC_RESOURCELOCATION
Structure:
string sv_downloadurl


SVC_ROOMTYPE

Sets client room_type cvar to provided value.

0 = Normal (off)
1 = Generic
2 = Metal Small
3 = Metal Medium
4 = Metal Large
5 = Tunnel Small
6 = Tunnel Medium
7 = Tunnel Large
8 = Chamber Small
9 = Chamber Medium
10 = Chamber Large
11 = Bright Small
12 = Bright Medium
13 = Bright Large
14 = Water 1
15 = Water 2
16 = Water 3
17 = Concrete Small
18 = Concrete Medium
19 = Concrete Large
20 = Big 1
21 = Big 2
22 = Big 3
23 = Cavern Small
24 = Cavern Medium
25 = Cavern Large
26 = Weirdo 1
27 = Weirdo 2
28 = Weirdo 3
Name: SVC_ROOMTYPE
Structure:
short Value


SVC_SETVIEW

Attaches a player's view to an entity.

Note: Called from pfnSetView. The same as attach_view() native.

Name: SVC_SETVIEW
Structure:
short EntityIndex


SVC_STUFFTEXT

Executes command on player.

Note: This message is sent by client_cmd(index,const command[],any:...)

Name: SVC_STUFFTEXT
Structure:
string Command


SVC_TIMESCALE

Name: SVC_TIMESCALE
Structure:
float TimeScale


SVC_UPDATEUSERINFO

Name: SVC_UPDATEUSERINFO
Structure:
byte clientIndex
long clientUserId


SVC_VOICEINIT

Sends sv_voicecodec and sv_voicequality cvars to client.

Note: Codec name either voice_miles or voice_speex.
Note: Quality 1 to 5.

Name: SVC_VOICEINIT
Structure:
string CodecName
byte Quality


SVC_SENDEXTRAINFO

Sends some extra infos.

Note: This message is sent at player's connection as params "com_clientfallback" (global var) and sv_cheats value.
Note: The sv_cheats cvar will be set on the client with the value provided.
Note: It appears "com_clientfallback" is always null.
Note: This message seems to be unused.

Name: SVC_SENDEXTRAINFO
Structure:
string FallbackDir
byte CanCheat


SVC_SETANGLE

Update immediately the client's view angles.

Note: When pev->fixangle is set 1, this message is sent with the current player's pev->v_angle values.
Note: The provided angles need to be scaled by ( 65536 / 360 ).

Name: SVC_SETANGLE
Structure:
short AnglePitch
short AngleYaw
short AngleRoll


SVC_SETPAUSE

Puts client to a pause.

Note: If server is not paused, commands and packets from client are still sent, that means that client still can shoot/buy/etc...
Note: IsPaused: 1 - for pause, 0 - for unpause.

Name: SVC_SETPAUSE
Structure:
byte IsPaused


SVC_SPAWNSTATICSOUND

Start playback of a sound, loaded into the static portion of the channel array.
This should be used for looping ambient sounds, looping sounds that should not non-creature sentences, and one-shot ambient streaming sounds.
It can also play 'regular' sounds one-shot, in case designers want to trigger regular game sounds.
The sound can be spawned either from a fixed position or from an entity.

Note: To use it on a fixed position, provide a valid origin and set EntityIndex with 0.
Note: To use it from an entity, so position is updated, provide a valid EntityIndex and set Origin with a null vector.
Note: To stop a sound with SVC_STOPSOUND, a valid EntityIndex is needed.
Note: Volume has to be scaled by 255 and Attenuation by 64.
Note: Use SND_SENTENCE (1<<4) as flag for sentence sounds.
Note: It can be sent to one player.

Name: SVC_SPAWNSTATICSOUND
Structure:
coord OriginX
coord OriginY
coord OriginZ
short SoundIndex
byte Volume * 255
byte Attenuation * 64
short EntityIndex
byte Flags


SVC_STOPSOUND

Stops an ambient sound.

Name: SVC_STOPSOUND
Structure:
short EntityIndex


SVC_SOUNDFADE

Updates client side sound fade.
It's used to modulate sound volume on the client.
Such functionality is part of a main function where the purpose would be to update sound subsystem and cd audio.

Name: SVC_SOUNDFADE
Structure:
byte InitialPercent
byte HoldTime
byte FadeInTime
byte FadeOutTime


SVC_TEMPENTITY

Creates a temp entity.

Name: SVC_TEMPENTITY
Structure:
byte MessageIndex
... ...


SVC_VERSION

Disconnects the client and sends a message to the console if the number passed doesn't match the current server protocol version.

Note: Message type sent : "CL_Parse_Version: Server is protocol %i instead of %i\n".

Name: SVC_VERSION
Structure:
long ProtocolVersion


SVC_WEAPONANIM

Plays a weapon sequence.

Name: SVC_WEAPONANIM
Structure:
byte SequenceNumber
byte WeaponmodelBodygroup