mirror of
https://github.com/demostf/demo.js
synced 2026-06-04 00:54:14 +02:00
better handling of user messages
This commit is contained in:
parent
346421fd9a
commit
171b5c4049
6 changed files with 86 additions and 45 deletions
|
|
@ -85,8 +85,12 @@ export class Match {
|
|||
this.calculateUserInfo();
|
||||
}
|
||||
break;
|
||||
case 'sayText2':
|
||||
handleSayText2(packet, this);
|
||||
case 'userMessage':
|
||||
switch (packet.userMessageType) {
|
||||
case 'sayText2':
|
||||
handleSayText2(packet, this);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'gameEvent':
|
||||
handleGameEvent(packet, this);
|
||||
|
|
|
|||
|
|
@ -18,11 +18,11 @@ export enum MessageType {
|
|||
}
|
||||
|
||||
export interface BaseMessage {
|
||||
tick: number;
|
||||
rawData: BitStream;
|
||||
}
|
||||
|
||||
export interface PacketMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.Packet;
|
||||
packets: Packet[];
|
||||
viewOrigin: [Vector, Vector];
|
||||
|
|
@ -36,30 +36,35 @@ export interface PacketMessage extends BaseMessage {
|
|||
export type SigonMessage = PacketMessage;
|
||||
|
||||
export interface SyncTickMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.SyncTick;
|
||||
}
|
||||
|
||||
export interface ConsoleCmdMessage extends BaseMessage {
|
||||
type: MessageType.ConsoleCmd;
|
||||
command: string;
|
||||
}
|
||||
|
||||
export interface UserCmdMessage extends BaseMessage {
|
||||
type: MessageType.UserCmd;
|
||||
sequenceOut: number;
|
||||
}
|
||||
|
||||
export interface DataTablesMessage extends BaseMessage {
|
||||
type: MessageType.DataTables;
|
||||
tables: SendTable[];
|
||||
serverClasses: ServerClass[];
|
||||
}
|
||||
|
||||
export interface StopMessage extends BaseMessage {
|
||||
type: MessageType.Stop;
|
||||
}
|
||||
|
||||
export interface ConsoleCmdMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.ConsoleCmd;
|
||||
command: string;
|
||||
}
|
||||
|
||||
export interface UserCmdMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.UserCmd;
|
||||
sequenceOut: number;
|
||||
}
|
||||
|
||||
export interface DataTablesMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.DataTables;
|
||||
tables: SendTable[];
|
||||
serverClasses: ServerClass[];
|
||||
}
|
||||
|
||||
export interface StringTablesMessage extends BaseMessage {
|
||||
tick: number;
|
||||
type: MessageType.StringTables;
|
||||
tables: StringTable[];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,8 @@ export interface BaseDataUserPacket {
|
|||
}
|
||||
|
||||
export interface SayText2Packet {
|
||||
packetType: 'sayText2';
|
||||
packetType: 'userMessage',
|
||||
userMessageType: 'sayText2';
|
||||
client: number;
|
||||
raw: number;
|
||||
kind: 'TF_Chat_All' | 'TF_Chat_Team' | 'TF_Chat_AllDead';
|
||||
|
|
@ -82,28 +83,33 @@ export enum HudTextLocation {
|
|||
}
|
||||
|
||||
export interface TextMessagePacket {
|
||||
packetType: 'textMsg';
|
||||
packetType: 'userMessage',
|
||||
userMessageType: 'textMsg';
|
||||
destType: HudTextLocation;
|
||||
text: string;
|
||||
}
|
||||
|
||||
export interface ResetHUDPacket extends BaseDataUserPacket {
|
||||
packetType: 'resetHUD';
|
||||
packetType: 'userMessage',
|
||||
userMessageType: 'resetHUD';
|
||||
}
|
||||
|
||||
export interface TrainPacket extends BaseDataUserPacket {
|
||||
packetType: 'train';
|
||||
packetType: 'userMessage',
|
||||
userMessageType: 'train';
|
||||
}
|
||||
|
||||
export interface VoiceSubtitlePacket {
|
||||
packetType: 'voiceSubtitle';
|
||||
packetType: 'userMessage',
|
||||
userMessageType: 'voiceSubtitle';
|
||||
client: number;
|
||||
menu: number;
|
||||
item: number;
|
||||
}
|
||||
|
||||
export interface ShakePacket {
|
||||
packetType: 'shake';
|
||||
packetType: 'userMessage',
|
||||
userMessageType: 'shake';
|
||||
command: number;
|
||||
amplitude: number;
|
||||
frequency: number;
|
||||
|
|
@ -116,11 +122,13 @@ export interface UnknownUserMessageBasePacket {
|
|||
}
|
||||
|
||||
export interface BreakModelPumpkinPacket extends UnknownUserMessageBasePacket {
|
||||
packetType: 'breakModelPumpkin';
|
||||
packetType: 'userMessage',
|
||||
userMessageType: 'breakModelPumpkin';
|
||||
}
|
||||
|
||||
export interface GenericUnknownUserMessagePacket extends UnknownUserMessageBasePacket {
|
||||
packetType: 'unknownUserMessage';
|
||||
packetType: 'userMessage',
|
||||
userMessageType: 'unknownUserMessage';
|
||||
}
|
||||
|
||||
export type UnknownUserMessagePacket = GenericUnknownUserMessagePacket |
|
||||
|
|
@ -135,6 +143,8 @@ export type UserMessagePacket = SayText2Packet
|
|||
| BreakModelPumpkinPacket
|
||||
| ShakePacket;
|
||||
|
||||
export type UserMessagePacketType = UserMessagePacket['userMessageType'];
|
||||
|
||||
export interface UserMessageTypeMap {
|
||||
sayText2: SayText2Packet;
|
||||
textMsg: TextMessagePacket;
|
||||
|
|
@ -146,13 +156,14 @@ export interface UserMessageTypeMap {
|
|||
shake: ShakePacket;
|
||||
}
|
||||
|
||||
export const UserMessagePacketTypeMap: Map<UserMessagePacket['packetType'], UserMessageType> =
|
||||
new Map<UserMessagePacket['packetType'], UserMessageType>([
|
||||
export const UserMessagePacketTypeMap: Map<UserMessagePacketType, UserMessageType> =
|
||||
new Map<UserMessagePacketType, UserMessageType>([
|
||||
['sayText2', UserMessageType.SayText2],
|
||||
['textMsg', UserMessageType.TextMsg],
|
||||
['train', UserMessageType.Train],
|
||||
['voiceSubtitle', UserMessageType.VoiceSubtitle],
|
||||
['breakModelPumpkin', UserMessageType.BreakModel_Pumpkin],
|
||||
['resetHUD', UserMessageType.ResetHUD],
|
||||
['shake', UserMessageType.Shake]
|
||||
['shake', UserMessageType.Shake],
|
||||
['unknownUserMessage', -1]
|
||||
]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue