Пример #1
0
        public override void OnMessage(int msgId, Unpacker unpacker, int clientId)
        {
            if (!GameMsgUnpacker.Unpack(msgId, unpacker, out var msg, out var error))
            {
                Console.Print(OutputLevel.DEBUG, "server", $"dropped gamemessage='{(GameMessages) msgId}' ({msgId}), failed on '{error}'");
                return;
            }

            var player = Players[clientId];

            if (!Server.ClientInGame(clientId))
            {
                if (msg.MsgId == GameMessages.CL_STARTINFO)
                {
                    OnMsgStartInfo(player, (GameMsg_ClStartInfo)msg);
                }
            }
            else
            {
                switch (msg.MsgId)
                {
                case GameMessages.CL_SAY:
                    OnMsgSay(player, (GameMsg_ClSay)msg);
                    break;

                case GameMessages.CL_SETTEAM:
                    OnMsgSetTeam(player, (GameMsg_ClSetTeam)msg);
                    break;

                case GameMessages.CL_SETSPECTATORMODE:
                    OnMsgSetSpectatorMode(player, (GameMsg_ClSetSpectatorMode)msg);
                    break;

                case GameMessages.CL_CHANGEINFO:
                    break;

                case GameMessages.CL_KILL:
                    break;

                case GameMessages.CL_EMOTICON:
                    break;

                case GameMessages.CL_VOTE:
                    break;

                case GameMessages.CL_CALLVOTE:
                    break;

                case GameMessages.CL_ISDDNET:
                    OnMsgIsDDNet(unpacker, player, (GameMsg_ClIsDDNet)msg);
                    break;
                }
            }
        }
Пример #2
0
        public override void OnMessage(GameMessage msg, UnPacker unPacker, int clientId)
        {
            if (!GameMsgUnpacker.UnpackMessage(msg, unPacker, out var message, out string failedOn))
            {
                Console.Print(OutputLevel.Debug, "server", $"dropped message={msg} failed on={failedOn}");
                return;
            }

            var player = Players[clientId];

            if (Server.ClientInGame(clientId))
            {
                switch (msg)
                {
                case GameMessage.ClientSay:
                    OnMsgClientSay(player, (GameMsg_ClSay)message);
                    break;

                case GameMessage.ClientSetTeam:
                    OnMsgClientSetTeam(player, (GameMsg_ClSetTeam)message);
                    break;

                case GameMessage.ClientSetSpectatorMode:
                    OnMsgClientSetSpectatorMode(player, (GameMsg_ClSetSpectatorMode)message);
                    break;

                case GameMessage.ClientKill:
                    OnMsgClientKill(player, (GameMsg_ClKill)message);
                    break;

                case GameMessage.ClientReadyChange:
                    OnMsgClientReadyChange(player, (GameMsg_ClReadyChange)message);
                    break;

                case GameMessage.ClientEmoticon:
                    OnMsgClientEmoticon(player, (GameMsg_ClEmoticon)message);
                    break;

                case GameMessage.ClientVote:
                    OnMsgClientVote(player, (GameMsg_ClVote)message);
                    break;

                case GameMessage.ClientCallVote:
                    OnMsgClientCallVote(player, (GameMsg_ClCallVote)message);
                    break;
                }
            }
            else if (msg == GameMessage.ClientStartInfo)
            {
                OnMsgClientStartInfo(player, (GameMsg_ClStartInfo)message);
            }
        }