Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
    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());
    }