public static GameLevelSuccessRequestProto GetProto(byte[] buffer) { GameLevelSuccessRequestProto proto = new GameLevelSuccessRequestProto(); using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer)) { 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); } proto.ChapterId = ms.ReadInt(); } return(proto); }
private void OnGameLevelSuccess(Role role, byte[] buffer) { GameLevelSuccessRequestProto proto = GameLevelSuccessRequestProto.GetProto(buffer); Console.WriteLine(proto.ChapterId + " " + proto.GameLevelId); Console.WriteLine(proto.Exp + " " + proto.Gold); for (int i = 0; i < proto.KillMonsterList.Count; i++) { Console.WriteLine("怪物Id:" + proto.KillMonsterList[i].MonsterId + " 怪物数量=" + proto.KillMonsterList[i].MonsterCount); } for (int i = 0; i < proto.GetGoodsList.Count; i++) { Console.WriteLine("物品Id:" + proto.GetGoodsList[i].GoodsId + " 物品类型 = " + (proto.GetGoodsList[i].GoodsType == 1?"装备":"材料") + " 数量=" + proto.GetGoodsList[i].GoodsCount); } for (int i = 0; i < proto.GetGoodsList.Count; i++) { Role_BackpackEntity entity = new Role_BackpackEntity(); entity.Status = EnumEntityStatus.Released; entity.RoleId = role.RoleId; entity.GoodsType = proto.GetGoodsList[i].GoodsType; entity.GoodsId = proto.GetGoodsList[i].GoodsId; entity.GoodsCount = proto.GetGoodsList[i].GoodsCount; entity.GoodsSvrId = ServerId; entity.CreateTime = DateTime.Now; Role_BackpackDBModel.Instance.Create(entity); } UpdateRoleInfo(role, proto.Exp, proto.Gold); }
private void OnSuccessRequest() { GameLevelSuccessRequestProto proto = new GameLevelSuccessRequestProto(); proto.ChapterId = GameLevelCtrl.Instance.ChapterId; proto.GameLevelId = GameLevelCtrl.Instance.GameLevelId; proto.Grade = 1; proto.Exp = GameLevelCtrl.Instance.DropExp; proto.Gold = GameLevelCtrl.Instance.DropCoin; proto.KillTotalMonsterCount = m_KillMonsterIdList.Count; proto.KillMonsterList = new List <GameLevelSuccessRequestProto.MonsterItem>(); for (int i = 0; i < m_KillMonsterIdList.Count; i++) { GameLevelSuccessRequestProto.MonsterItem monsterItem = new GameLevelSuccessRequestProto.MonsterItem(); monsterItem.MonsterId = m_KillMonsterIdList[i]; monsterItem.MonsterCount = 1; proto.KillMonsterList.Add(monsterItem); } proto.GoodsTotalCount = m_DropGoodsList.Count; proto.GetGoodsList = m_DropGoodsList; NetWorkSocket.Instance.SendMsg(proto.ToArray()); }