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()); }
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); } }
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)); } }