public static WorldMap_InitRoleProto GetProto(byte[] buffer) { WorldMap_InitRoleProto proto = new WorldMap_InitRoleProto(); using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer)) { 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 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); }
/// <summary> /// 服务器发送当前场景初始化的角色 /// </summary> /// <param name="role"></param> /// <param name="sceneId"></param> private void SendCurrSceneInitRole(Role role, int sceneId) { WorldMap_InitRoleProto proto = new WorldMap_InitRoleProto(); List <Role> lst = GetRoleList(sceneId); proto.RoleCount = lst.Count; proto.ItemList = new List <WorldMap_InitRoleProto.RoleItem>(); for (int i = 0; i < lst.Count; i++) { WorldMap_InitRoleProto.RoleItem item = new WorldMap_InitRoleProto.RoleItem(); item.RoleId = lst[i].RoleId; item.RoleJobId = lst[i].JobId; item.RoleLevel = lst[i].Level; item.RoleNickName = lst[i].NickName; item.RoleMaxHP = lst[i].MaxHP; item.RoleCurrHP = lst[i].CurrHP; item.RoleMaxMP = lst[i].MaxMP; item.RoleCurrMP = lst[i].CurrMP; string[] arr = lst[i].LastInWorldMapPos.Split('_'); item.RolePosX = float.Parse(arr[0]); item.RolePosY = float.Parse(arr[1]); item.RolePosZ = float.Parse(arr[2]); item.RoleYAngle = float.Parse(arr[3]); proto.ItemList.Add(item); } role.Client_Socket.SendMsg(proto.ToArray(role.SocketSendMS)); }
public static WorldMap_InitRoleProto GetProto(byte[] buffer, bool isChild = false) { WorldMap_InitRoleProto proto = new WorldMap_InitRoleProto(); 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.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); } if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(proto); }