Difference between revisions of "User Messages"

From AlliedModders Wiki
Jump to: navigation, search
(Added L4D2 user messages with parameter types of some of them)
m (Update list of user messages.)
Line 20: Line 20:
 
                   Fade                              12    10   
 
                   Fade                              12    10   
 
                   VGUIMenu                          13    -1   
 
                   VGUIMenu                          13    -1   
                   CloseCaption                      14     7   
+
                  Rumble                            14    3   
                   SendAudio                        15     -1   
+
                   CloseCaption                      15     -1 
                   RawAudio                          16     -1   
+
                   SendAudio                        16     -1   
                   VoiceMask                        17     17    
+
                   RawAudio                          17     -1   
                   RequestState                      18     0     
+
                   VoiceMask                        18     25    
                   BarTime                          19     -1   
+
                   RequestState                      19     0     
                   Damage                            20     -1   
+
                   BarTime                          20     -1   
                   RadioText                        21     -1   
+
                   Damage                            21     -1   
                   HintText                          22     -1   
+
                   RadioText                        22     -1   
                   ReloadEffect                      23     2     
+
                   HintText                          23    -1 
                   PlayerAnimEvent                  24     -1   
+
                  KeyHintText                      24     -1   
                   AmmoDenied                        25     2     
+
                   ReloadEffect                      25     2     
                   UpdateRadar                      26     -1   
+
                   PlayerAnimEvent                  26     -1   
                   KillCam                          27     -1   
+
                   AmmoDenied                        27     2     
   28 user messages in total
+
                   UpdateRadar                      28     -1   
 +
                   KillCam                          29    -1 
 +
                  MarkAchievement                  30    -1 
 +
                  CallVoteFailed                    31    -1 
 +
                  VoteStart                        32    -1 
 +
                  VotePass                          33    -1 
 +
                  VoteFailed                        34    2   
 +
                  VoteSetup                        35    -1 
 +
                  SPHapWeapEvent                    36    4   
 +
                  HapDmg                            37    -1 
 +
                  HapPunch                          38    -1 
 +
                  HapSetDrag                        39    -1 
 +
                  HapSetConst                      40    -1 
 +
                  HapMeleeContact                  41    0   
 +
                  PlayerStatsUpdate_DEPRECATED      42    -1 
 +
                  AchievementEvent                  43    -1 
 +
                  MatchEndConditions                44    -1 
 +
                  MatchStatsUpdate                  45    -1 
 +
                  PlayerStatsUpdate                46     -1   
 +
   47 user messages in total
 +
 
  
 
=== Left 4 Dead 2 User Messages ===
 
=== Left 4 Dead 2 User Messages ===

Revision as of 02:34, 13 December 2013

This is just a dump of some stuff for now, needs a complete revamp later. Here's a topic on the subject as well: https://forums.alliedmods.net/showthread.php?t=80256 and here http://forums.alliedmods.net/showthread.php?t=52777

Counter-Strike: Source User Messages

List obtained by using 'meta game' in the console

 User Messages:  Name                              Index  Size 
                 Geiger                            0      1    
                 Train                             1      1    
                 HudText                           2      -1   
                 SayText                           3      -1   
                 SayText2                          4      -1   
                 TextMsg                           5      -1   
                 HudMsg                            6      -1   
                 ResetHUD                          7      1    
                 GameTitle                         8      0    
                 ItemPickup                        9      -1   
                 ShowMenu                          10     -1   
                 Shake                             11     13   
                 Fade                              12     10   
                 VGUIMenu                          13     -1   
                 Rumble                            14     3    
                 CloseCaption                      15     -1   
                 SendAudio                         16     -1   
                 RawAudio                          17     -1   
                 VoiceMask                         18     25   
                 RequestState                      19     0    
                 BarTime                           20     -1   
                 Damage                            21     -1   
                 RadioText                         22     -1   
                 HintText                          23     -1   
                 KeyHintText                       24     -1   
                 ReloadEffect                      25     2    
                 PlayerAnimEvent                   26     -1   
                 AmmoDenied                        27     2    
                 UpdateRadar                       28     -1   
                 KillCam                           29     -1   
                 MarkAchievement                   30     -1   
                 CallVoteFailed                    31     -1   
                 VoteStart                         32     -1   
                 VotePass                          33     -1   
                 VoteFailed                        34     2    
                 VoteSetup                         35     -1   
                 SPHapWeapEvent                    36     4    
                 HapDmg                            37     -1   
                 HapPunch                          38     -1   
                 HapSetDrag                        39     -1   
                 HapSetConst                       40     -1   
                 HapMeleeContact                   41     0    
                 PlayerStatsUpdate_DEPRECATED      42     -1   
                 AchievementEvent                  43     -1   
                 MatchEndConditions                44     -1   
                 MatchStatsUpdate                  45     -1   
                 PlayerStatsUpdate                 46     -1   
 47 user messages in total


Left 4 Dead 2 User Messages

For vote specific user messages see http://wiki.alliedmods.net/Left_4_Voting_2

 User Messages:  Name                              Index  Size Parameter types
                 SayText2                          4      -1
                 TextMsg                           5      -1
                 HudMsg                            6      -1
                 ResetHUD                          7      1
                 GameTitle                         8      0
                 ItemPickup                        9      -1
                 ShowMenu                          10     -1
                 Shake                             11     13
                 Fade                              12     10
                 VGUIMenu                          13     -1	string, bool, string (keyvalues)
                 Rumble                            14     3
                 CloseCaption                      15     -1
                 CloseCaptionDirect                16     -1
                 SendAudio                         17     -1
                 RawAudio                          18     -1
                 VoiceMask                         19     9
                 RequestState                      20     0
                 BarTime                           21     -1
                 Damage                            22     -1
                 RadioText                         23     -1
                 HintText                          24     -1
                 KeyHintText                       25     -1
                 ReloadEffect                      26     4
                 PlayerAnimEvent                   27     -1
                 AmmoDenied                        28     2
                 UpdateRadar                       29     -1
                 KillCam                           30     -1
                 MarkAchievement                   31     -1
                 Splatter                          32     1
                 MeleeSlashSplatter                33     1
                 MeleeClubSplatter                 34     1
                 MudSplatter                       35     1
                 SplatterClear                     36     0
                 MessageText                       37     -1
                 TransitionRestore                 38     0
                 Spawn                             39     1
                 CreditsLine                       40     -1
                 CreditsMsg                        41     0
                 JoinLateMsg                       42     0
                 StatsCrawlMsg                     43     0
                 StatsSkipState                    44     2
                 ShowStats                         45     -1
                 BlurFade                          46     0
                 MusicCmd                          47     -1
                 WitchBloodSplatter                48     -1	vec[3]
                 AchievementEvent                  49     -1
                 PZDmgMsg                          50     -1
                 AllPlayersConnectedGameStarting   51     0
                 VoteRegistered                    52     1
                 DisconnectToLobby                 53     0	empty
                 CallVoteFailed                    54     1
                 SteamWeaponStatData               55     -1
                 CurrentTimescale                  56     4
                 DesiredTimescale                  57     16
                 PZEndGamePanelMsg                 58     1
                 PZEndGamePanelVoteRegisteredMsg   59     1
                 PZEndGameVoteStatsMsg             60     8
                 VoteStart                         61     -1
                 VotePass                          62     -1
                 VoteFail                          63     1

Fade Flags

These may not be correct...

FFADE_IN            0x0001        // Just here so we don't pass 0 into the function
FFADE_OUT           0x0002        // Fade out (not in)
FFADE_MODULATE      0x0004        // Modulate (don't blend)
FFADE_STAYOUT       0x0008        // ignores the duration, stays faded out until new ScreenFade message received
FFADE_PURGE         0x0010        // Purges all other fades, replacing them with this one

Fade Function

Example Fade function (be sure to define the Fade Flags!)

This Fades the clients screen to a specified color, and stays until you reset the color to {0,0,0,0}

To modify it to Fade the screen for a certain amount of time, remove the STAYOUT flag, and pass a value to "fade & hold"

PerformFade(target, 500, {0, 128, 255, 51})
PerformFade(client, duration, const color[4]) {
	new Handle:hFadeClient=StartMessageOne("Fade",client)
	BfWriteShort(hFadeClient,duration)	// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, milliseconds duration
	BfWriteShort(hFadeClient,0)		// FIXED 16 bit, with SCREENFADE_FRACBITS fractional, milliseconds duration until reset (fade & hold)
	BfWriteShort(hFadeClient,(FFADE_PURGE|FFADE_OUT|FFADE_STAYOUT)) // fade type (in / out)
	BfWriteByte(hFadeClient,color[0])	// fade red
	BfWriteByte(hFadeClient,color[1])	// fade green
	BfWriteByte(hFadeClient,color[2])	// fade blue
	BfWriteByte(hFadeClient,color[3])	// fade alpha
	EndMessage()
}

HudMsg Function

This does not work in CS:S.

This Draws a text Message to a specified players screen. This is just for educational purposes and there is a much easier way of doing this with native functions here: http://docs.sourcemod.net/api/index.php?fastload=show&id=846& & http://docs.sourcemod.net/api/index.php?fastload=show&id=842&

PerformHudMsg(client, "This is a Test")
PerformHudMsg(client, const String:szMsg[]) {
	new Handle:hBf = StartMessageOne("HudMsg", client)
	BfWriteByte(hBf, 3) //channel
	BfWriteFloat(hBf, 0.0); // x ( -1 = center )
	BfWriteFloat(hBf, -1); // y ( -1 = center )
	// second color
	BfWriteByte(hBf, 0); //r1
	BfWriteByte(hBf, 0); //g1
	BfWriteByte(hBf, 255); //b1
	BfWriteByte(hBf, 255); //a1 // transparent?
	// init color
	BfWriteByte(hBf, 255); //r2
	BfWriteByte(hBf, 0); //g2
	BfWriteByte(hBf, 0); //b2
	BfWriteByte(hBf, 255); //a2
	BfWriteByte(hBf, 0); //effect (0 is fade in/fade out; 1 is flickery credits; 2 is write out)
	BfWriteFloat(hBf, 1.0); //fadeinTime (message fade in time - per character in effect 2)
	BfWriteFloat(hBf, 1.0); //fadeoutTime
	BfWriteFloat(hBf, 15.0); //holdtime
	BfWriteFloat(hBf, 5.0); //fxtime (effect type(2) used)
	BfWriteString(hBf, szMsg); //Message
	EndMessage();
}

HookUserMessage Fade

Some sample code to hook a UserMessage, In this case Fade. You cannot send other UserMessages inside of a UserMessage Hook. Many simple functions such as PrintToChat call UserMessages.

public OnPluginStart() {
    HookUserMessage(GetUserMessageId("Fade"),HookFade,true)
}
public Action:HookFade(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init) {
	new duration = BfReadShort(bf)
	new holdtime = BfReadShort(bf)
	BfReadShort(bf) 	//You must read all of the bf values, even If you only want the last value such as this one.
	new r = BfReadByte(bf) 	//You do NOT need to store their value though.
	new g = BfReadByte(bf)
	new b = BfReadByte(bf)
	new a = BfReadByte(bf)
	
	PrintToServer("Duration: %i, HoldTime: %i, rgba: %i %i %i %i",duration,holdtime,r,g,b,a)
}