public byte[] ToArray(bool isChild = false) { MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; ms.SetLength(0); ms.WriteUShort(ProtoCode); } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); ms.SetLength(0); } ms.WriteInt(BackpackItemCount); for (int i = 0; i < BackpackItemCount; i++) { var item = ItemList[i]; ms.WriteInt(item.BackpackItemId); ms.WriteByte(item.GoodsType); ms.WriteInt(item.GoodsId); ms.WriteInt(item.GoodsServerId); ms.WriteInt(item.GoodsOverlayCount); } byte[] retBuffer = ms.ToArray(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(retBuffer); }
public byte[] ToArray(bool isChild = false) { MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; ms.SetLength(0); ms.WriteUShort(ProtoCode); } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); ms.SetLength(0); } ms.WriteInt(TaskCount); for (int i = 0; i < TaskCount; i++) { var item = CurrTaskItemList[i]; ms.WriteInt(item.Id); ms.WriteUTF8String(item.Name); ms.WriteInt(item.Status); ms.WriteUTF8String(item.Content); } byte[] retBuffer = ms.ToArray(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(retBuffer); }
public float yAngle; //y轴旋转 public byte[] ToArray(bool isChild = false) { MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; ms.SetLength(0); ms.WriteUShort(ProtoCode); } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); ms.SetLength(0); } ms.WriteFloat(x); ms.WriteFloat(y); ms.WriteFloat(z); ms.WriteFloat(yAngle); byte[] retBuffer = ms.ToArray(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(retBuffer); }
public byte[] ToArray(bool isChild = false) { MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; ms.SetLength(0); ms.WriteUShort(ProtoCode); } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); ms.SetLength(0); } ms.WriteInt(RoleCount); for (int i = 0; i < RoleCount; i++) { var item = RoleList[i]; ms.WriteInt(item.RoleId); ms.WriteUTF8String(item.RoleNickName); ms.WriteByte(item.RoleJob); ms.WriteInt(item.RoleLevel); } byte[] retBuffer = ms.ToArray(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(retBuffer); }
public int SellCount; //出售数量 public byte[] ToArray(bool isChild = false) { MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; ms.SetLength(0); ms.WriteUShort(ProtoCode); } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); ms.SetLength(0); } ms.WriteInt(roleBackpackId); ms.WriteByte(GoodsType); ms.WriteInt(GoodsId); ms.WriteInt(GoodsServerId); ms.WriteInt(SellCount); byte[] retBuffer = ms.ToArray(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(retBuffer); }
public int NeedTime; //客户端移动所需时间 public byte[] ToArray(bool isChild = false) { MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; ms.SetLength(0); ms.WriteUShort(ProtoCode); } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); ms.SetLength(0); } ms.WriteInt(RoleId); ms.WriteFloat(TargetPosX); ms.WriteFloat(TargetPosY); ms.WriteFloat(TargetPosZ); ms.WriteLong(ServerTime); ms.WriteInt(NeedTime); byte[] retBuffer = ms.ToArray(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(retBuffer); }
public byte[] ToArray(bool isChild = false) { MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; ms.SetLength(0); ms.WriteUShort(ProtoCode); } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); ms.SetLength(0); } ms.WriteInt(ConfigCount); for (int i = 0; i < ConfigCount; i++) { var item = ServerConfigList[i]; ms.WriteUTF8String(item.ConfigCode); ms.WriteBool(item.IsOpen); ms.WriteUTF8String(item.Param); } byte[] retBuffer = ms.ToArray(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(retBuffer); }
public int GoodsId; //物品编号 public byte[] ToArray(bool isChild = false) { MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; ms.SetLength(0); ms.WriteUShort(ProtoCode); } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); ms.SetLength(0); } ms.WriteBool(IsSuccess); if (IsSuccess) { ms.WriteInt(GoodsId); } else { ms.WriteInt(MsgCode); } byte[] retBuffer = ms.ToArray(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(retBuffer); }
public static Goods_SearchEquipDetailProto GetProto(byte[] buffer, bool isChild = false) { Goods_SearchEquipDetailProto proto = new Goods_SearchEquipDetailProto(); MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); } ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.GoodsServerId = ms.ReadInt(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }
public static WorldMap_PosProto GetProto(byte[] buffer, bool isChild = false) { WorldMap_PosProto proto = new WorldMap_PosProto(); MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); } ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.x = ms.ReadFloat(); proto.y = ms.ReadFloat(); proto.z = ms.ReadFloat(); proto.yAngle = ms.ReadFloat(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }
public static Task_SearchTaskProto GetProto(byte[] buffer, bool isChild = false) { Task_SearchTaskProto proto = new Task_SearchTaskProto(); MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); } ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }
public static Backpack_GoodsChangeReturnProto GetProto(byte[] buffer) { Backpack_GoodsChangeReturnProto proto = new Backpack_GoodsChangeReturnProto(); MMO_MemoryStream ms = GameEntry.Socket.SocketReceiveMS; ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.BackpackItemChangeCount = ms.ReadInt(); proto.ItemList = new List <ChangeItem>(); for (int i = 0; i < proto.BackpackItemChangeCount; i++) { ChangeItem _Item = new ChangeItem(); _Item.BackpackId = ms.ReadInt(); _Item.ChangeType = (byte)ms.ReadByte(); _Item.GoodsType = (byte)ms.ReadByte(); _Item.GoodsId = ms.ReadInt(); _Item.GoodsCount = ms.ReadInt(); _Item.GoodsServerId = ms.ReadInt(); proto.ItemList.Add(_Item); } return(proto); }
public static WorldMap_CurrRoleUseSkillProto GetProto(MMO_MemoryStream ms, byte[] buffer) { WorldMap_CurrRoleUseSkillProto proto = new WorldMap_CurrRoleUseSkillProto(); ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.SkillId = ms.ReadInt(); proto.SkillLevel = ms.ReadInt(); proto.RolePosX = ms.ReadFloat(); proto.RolePosY = ms.ReadFloat(); proto.RolePosZ = ms.ReadFloat(); proto.RoleYAngle = ms.ReadFloat(); proto.BeAttackCount = ms.ReadInt(); proto.ItemList = new List <BeAttackItem>(); for (int i = 0; i < proto.BeAttackCount; i++) { BeAttackItem _Item = new BeAttackItem(); _Item.BeAttackRoleId = ms.ReadInt(); proto.ItemList.Add(_Item); } return(proto); }
public byte[] ToArray(MMO_MemoryStream ms, bool isChild = false) { ms.SetLength(0); if (!isChild) { ms.WriteUShort(ProtoCode); } ms.WriteInt(GameLevelId); ms.WriteByte(Grade); ms.WriteByte(Star); ms.WriteInt(Exp); ms.WriteInt(Gold); ms.WriteInt(KillTotalMonsterCount); for (int i = 0; i < KillTotalMonsterCount; i++) { var item = KillMonsterList[i]; ms.WriteInt(item.MonsterId); ms.WriteInt(item.MonsterCount); } ms.WriteInt(GoodsTotalCount); for (int i = 0; i < GoodsTotalCount; i++) { var item = GetGoodsList[i]; ms.WriteByte(item.GoodsType); ms.WriteInt(item.GoodsId); ms.WriteInt(item.GoodsCount); } return(ms.ToArray()); }
public static System_HeartbeatReturnProto GetProto(byte[] buffer, bool isChild = false) { System_HeartbeatReturnProto proto = new System_HeartbeatReturnProto(); MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); } ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.LocalTime = ms.ReadFloat(); proto.ServerTime = ms.ReadLong(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }
public static WorldMap_InitRoleProto GetProto(MMO_MemoryStream ms, byte[] buffer) { WorldMap_InitRoleProto proto = new WorldMap_InitRoleProto(); ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.RoleCount = ms.ReadInt(); proto.ItemList = new List <RoleItem>(); for (int i = 0; i < proto.RoleCount; i++) { RoleItem _Item = new RoleItem(); _Item.RoleId = ms.ReadInt(); _Item.RoleNickName = ms.ReadUTF8String(); _Item.RoleLevel = ms.ReadInt(); _Item.RoleMaxHP = ms.ReadInt(); _Item.RoleCurrHP = ms.ReadInt(); _Item.RoleMaxMP = ms.ReadInt(); _Item.RoleCurrMP = ms.ReadInt(); _Item.RoleJobId = ms.ReadInt(); _Item.RolePosX = ms.ReadFloat(); _Item.RolePosY = ms.ReadFloat(); _Item.RolePosZ = ms.ReadFloat(); _Item.RoleYAngle = ms.ReadFloat(); proto.ItemList.Add(_Item); } return(proto); }
public byte[] ToArray(MMO_MemoryStream ms, bool isChild = false) { ms.SetLength(0); if (!isChild) { ms.WriteUShort(ProtoCode); } ms.WriteInt(RoleCount); for (int i = 0; i < RoleCount; i++) { var item = ItemList[i]; ms.WriteInt(item.RoleId); ms.WriteUTF8String(item.RoleNickName); ms.WriteInt(item.RoleLevel); ms.WriteInt(item.RoleMaxHP); ms.WriteInt(item.RoleCurrHP); ms.WriteInt(item.RoleMaxMP); ms.WriteInt(item.RoleCurrMP); ms.WriteInt(item.RoleJobId); ms.WriteFloat(item.RolePosX); ms.WriteFloat(item.RolePosY); ms.WriteFloat(item.RolePosZ); ms.WriteFloat(item.RoleYAngle); } return(ms.ToArray()); }
public static WorldMap_OtherRoleUpdateInfoProto GetProto(byte[] buffer, bool isChild = false) { WorldMap_OtherRoleUpdateInfoProto proto = new WorldMap_OtherRoleUpdateInfoProto(); MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); } ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.RoldId = ms.ReadInt(); proto.RoleNickName = ms.ReadUTF8String(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }
public static System_GameServerConfigReturnProto GetProto(byte[] buffer, bool isChild = false) { System_GameServerConfigReturnProto proto = new System_GameServerConfigReturnProto(); MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); } ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.ConfigCount = ms.ReadInt(); proto.ServerConfigList = new List <ConfigItem>(); for (int i = 0; i < proto.ConfigCount; i++) { ConfigItem _ServerConfig = new ConfigItem(); _ServerConfig.ConfigCode = ms.ReadUTF8String(); _ServerConfig.IsOpen = ms.ReadBool(); _ServerConfig.Param = ms.ReadUTF8String(); proto.ServerConfigList.Add(_ServerConfig); } if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }
public static GameLevel_VictoryProto GetProto(MMO_MemoryStream ms, byte[] buffer) { GameLevel_VictoryProto proto = new GameLevel_VictoryProto(); ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.GameLevelId = ms.ReadInt(); proto.Grade = (byte)ms.ReadByte(); proto.Star = (byte)ms.ReadByte(); proto.Exp = ms.ReadInt(); proto.Gold = ms.ReadInt(); proto.KillTotalMonsterCount = ms.ReadInt(); proto.KillMonsterList = new List <MonsterItem>(); for (int i = 0; i < proto.KillTotalMonsterCount; i++) { MonsterItem _KillMonster = new MonsterItem(); _KillMonster.MonsterId = ms.ReadInt(); _KillMonster.MonsterCount = ms.ReadInt(); proto.KillMonsterList.Add(_KillMonster); } proto.GoodsTotalCount = ms.ReadInt(); proto.GetGoodsList = new List <GoodsItem>(); for (int i = 0; i < proto.GoodsTotalCount; i++) { GoodsItem _GetGoods = new GoodsItem(); _GetGoods.GoodsType = (byte)ms.ReadByte(); _GetGoods.GoodsId = ms.ReadInt(); _GetGoods.GoodsCount = ms.ReadInt(); proto.GetGoodsList.Add(_GetGoods); } return(proto); }
/// <summary> /// 封装数据包 /// </summary> /// <param name="data"></param> /// <returns></returns> private byte[] MakeData(byte[] data) { byte[] retBuffer = null; //1.如果数据包的长度 大于了m_CompressLen 则进行压缩 bool isCompress = data.Length > m_CompressLen ? true : false; if (isCompress) { data = ZlibHelper.CompressBytes(data); } //2.异或 data = SecurityUtil.Xor(data); //3.Crc校验 压缩后的 ushort crc = Crc16.CalculateCrc16(data); MMO_MemoryStream ms = m_SocketSendMS; ms.SetLength(0); ms.WriteUShort((ushort)(data.Length + 3)); ms.WriteBool(isCompress); ms.WriteUShort(crc); ms.Write(data, 0, data.Length); retBuffer = ms.ToArray(); return(retBuffer); }
public byte IsPutOn; //是否穿戴 public byte[] ToArray(MMO_MemoryStream ms, bool isChild = false) { ms.SetLength(0); if (!isChild) { ms.WriteUShort(ProtoCode); } ms.WriteInt(EnchantLevel); ms.WriteByte(BaseAttr1Type); ms.WriteInt(BaseAttr1Value); ms.WriteByte(BaseAttr2Type); ms.WriteInt(BaseAttr2Value); ms.WriteInt(HP); ms.WriteInt(MP); ms.WriteInt(Attack); ms.WriteInt(Defense); ms.WriteInt(Hit); ms.WriteInt(Dodge); ms.WriteInt(Cri); ms.WriteInt(Res); ms.WriteByte(IsPutOn); return(ms.ToArray()); }
public static Goods_SearchEquipDetailReturnProto GetProto(byte[] buffer) { Goods_SearchEquipDetailReturnProto proto = new Goods_SearchEquipDetailReturnProto(); MMO_MemoryStream ms = GameEntry.Socket.SocketReceiveMS; ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.EnchantLevel = ms.ReadInt(); proto.BaseAttr1Type = (byte)ms.ReadByte(); proto.BaseAttr1Value = ms.ReadInt(); proto.BaseAttr2Type = (byte)ms.ReadByte(); proto.BaseAttr2Value = ms.ReadInt(); proto.HP = ms.ReadInt(); proto.MP = ms.ReadInt(); proto.Attack = ms.ReadInt(); proto.Defense = ms.ReadInt(); proto.Hit = ms.ReadInt(); proto.Dodge = ms.ReadInt(); proto.Cri = ms.ReadInt(); proto.Res = ms.ReadInt(); proto.IsPutOn = (byte)ms.ReadByte(); return(proto); }
public static RoleOperation_CreateRoleProto GetProto(byte[] buffer, bool isChild = false) { RoleOperation_CreateRoleProto proto = new RoleOperation_CreateRoleProto(); MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); } ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.JobId = (byte)ms.ReadByte(); proto.RoleNickName = ms.ReadUTF8String(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }
public static WorldMap_OtherRoleMoveProto GetProto(byte[] buffer, bool isChild = false) { WorldMap_OtherRoleMoveProto proto = new WorldMap_OtherRoleMoveProto(); MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); } ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.RoleId = ms.ReadInt(); proto.TargetPosX = ms.ReadFloat(); proto.TargetPosY = ms.ReadFloat(); proto.TargetPosZ = ms.ReadFloat(); proto.ServerTime = ms.ReadLong(); proto.NeedTime = ms.ReadInt(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }
public byte[] ToArray(MMO_MemoryStream ms, bool isChild = false) { ms.SetLength(0); if (!isChild) { ms.WriteUShort(ProtoCode); } ms.WriteInt(RoleType); byte[] buff_CurrRole = CurrRole.ToArray(new MMO_MemoryStream(), true); ms.WriteInt(buff_CurrRole.Length); ms.Write(buff_CurrRole, 0, buff_CurrRole.Length); if (RoleList != null) { int len_RoleList = RoleList.Count; ms.WriteInt(len_RoleList); for (int i = 0; i < len_RoleList; i++) { Role_DataProto _Role_DataProto = RoleList[i]; byte[] _buff_Curr = _Role_DataProto.ToArray(new MMO_MemoryStream(), true); ms.WriteInt(_buff_Curr.Length); ms.Write(_buff_Curr, 0, _buff_Curr.Length); } } else { ms.WriteInt(0); } return(ms.ToArray()); }
public static RoleOperation_SelectRoleInfoProto GetProto(byte[] buffer, bool isChild = false) { RoleOperation_SelectRoleInfoProto proto = new RoleOperation_SelectRoleInfoProto(); MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); } ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.RoldId = ms.ReadInt(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }
public byte[] ToArray(MMO_MemoryStream ms, bool isChild = false) { ms.SetLength(0); if (!isChild) { ms.WriteUShort(ProtoCode); } ms.WriteInt(AttackRoleId); ms.WriteInt(SkillId); ms.WriteInt(SkillLevel); ms.WriteFloat(RolePosX); ms.WriteFloat(RolePosY); ms.WriteFloat(RolePosZ); ms.WriteFloat(RoleYAngle); ms.WriteInt(BeAttackCount); for (int i = 0; i < BeAttackCount; i++) { var item = ItemList[i]; ms.WriteInt(item.BeAttackRoleId); ms.WriteInt(item.ReduceHp); ms.WriteByte(item.IsCri); } return(ms.ToArray()); }
public static Goods_UseItemReturnProto GetProto(byte[] buffer, bool isChild = false) { Goods_UseItemReturnProto proto = new Goods_UseItemReturnProto(); MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); } ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.IsSuccess = ms.ReadBool(); if (proto.IsSuccess) { proto.GoodsId = ms.ReadInt(); } else { proto.MsgCode = ms.ReadInt(); } if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }
public static WorldMap_OtherRoleDieProto GetProto(byte[] buffer, bool isChild = false) { WorldMap_OtherRoleDieProto proto = new WorldMap_OtherRoleDieProto(); MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); } ms.SetLength(0); ms.Write(buffer, 0, buffer.Length); ms.Position = 0; proto.AttackRoleId = ms.ReadInt(); proto.DieCount = ms.ReadInt(); proto.RoleIdList = new List <int>(); for (int i = 0; i < proto.DieCount; i++) { int _RoleId = ms.ReadInt(); //角色编号 proto.RoleIdList.Add(_RoleId); } if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }