コード例 #1
0
        public DataStream Deserialize(DataStream ds)
        {
            DataStream dsret;

            switch (ds.Type)
            {
            case 0x00: dsret = new ContainerS00(); break;

            case 0x01: dsret = new ServerInfoS01(); break;

            case 0x02: dsret = new SMKeyS02(); break;

            case 0x04: dsret = new OnlineAnnounceS04(); break;

            case 0x05: dsret = new ErrorInfo(); break;

            case 0x47: dsret = new SelectRole_ReS47(); break;

            case 0x53: dsret = new RoleList_ReS53(); break;

            case 0x60: dsret = new PrivateMessageS60(); break;

            case 0x8F: dsret = new LastOnlineS8F(); break;

            default: return(ds);
            }
            dsret.Type   = ds.Type;
            dsret.Buffer = ds.Buffer;
            dsret.Swaped = true;
            return(((PacketBase.IServerPacket)dsret).Deserialize());
        }
コード例 #2
0
        void C_Receive(object sender, ReceiveEventArgs e)
        {
            if (e.Stream is PrivateMessageS60)
            {
                PrivateMessageS60 privatemessage = (PrivateMessageS60)e.Stream;

                if (privatemessage.MessageType == 0 && OnMessageReceived != null)
                {
                    OnMessageReceived(this, new ReceiveMessageEventArgs(privatemessage.RecvFromName, privatemessage.Message));
                }

                if (privatemessage.MessageType != 0 || // Нам прислали автоответ или еще что-то
                    !C.PlayersLoaded ||                // Мы еще не в игре, хотя это глупо
                    !Enabled ||                        // Автоответ отключен
                    string.IsNullOrEmpty(Message))
                {
                    return;                                // Нет сообщения для автоответа
                }
                if (Message.Length > 0x4F)
                {
                    Message = Message.Substring(0, 0x4F);
                }

                PrivateMessageC60 sendmessage = new PrivateMessageC60(true, privatemessage.RecvFromName, privatemessage.RecvFromUID, Message);
                C.Send(sendmessage);
            }
        }
コード例 #3
0
ファイル: EmuPlugin.cs プロジェクト: ariesta1503/PWMeditation
        private void EmuPlugin_PrivateMessageReceive(object sender, GamePacket e)
        {
            PrivateMessageS60 msg = e as PrivateMessageS60;

            if (UseAutoMessage && msg.MessageType == 0x00)
            {
                Host.Send(new PrivateMessageC60(msg.NameSend, AutoMessage));
            }
        }