Difference between revisions of "User Messages"

From AlliedModders Wiki
Jump to: navigation, search
(Added to: Category:SourceMod Development)
(Changed into redirect)
(Tag: New redirect)
 
(15 intermediate revisions by 9 users not shown)
Line 1: Line 1:
−
This is just a dump of some stuff for now, needs a complete revamp later.
+
#REDIRECT [[Game_UserMessages_(Source)]]
−
Here's a topic on the subject as well: https://forums.alliedmods.net/showthread.php?t=80256
 
−
 
 
−
=== 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 
 
−
                  CloseCaption                      14    7   
 
−
                  SendAudio                        15    -1 
 
−
                  RawAudio                          16    -1 
 
−
                  VoiceMask                        17    17 
 
−
                  RequestState                      18    0   
 
−
                  BarTime                          19    -1 
 
−
                  Damage                            20    -1 
 
−
                  RadioText                        21    -1 
 
−
                  HintText                          22    -1 
 
−
                  ReloadEffect                      23    2   
 
−
                  PlayerAnimEvent                  24    -1 
 
−
                  AmmoDenied                        25    2   
 
−
                  UpdateRadar                      26    -1 
 
−
                  KillCam                          27    -1 
 
−
  28 user messages in total
 
−
 
 
−
=== 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, seconds duration
 
−
BfWriteShort(hFadeClient,0) // FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds 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)
 
−
}
 
−
 
 
−
[[Category:SourceMod Development]]
 

Latest revision as of 03:51, 4 November 2026