コード例 #1
0
    private void OnReq_DressEquip(MessageRecv obj)
    {
        System.IO.MemoryStream ms  = new System.IO.MemoryStream(obj.Data);
        ReqDressEquip          req = Serializer.Deserialize <ReqDressEquip>(ms);

        AckDressEquip ack      = new AckDressEquip();
        XItem         bagEquip = DataDBSBagItem.GetDataById(req.SrcPos);
        DEquip        equipDB  = ReadCfgEquip.GetDataById(bagEquip.Id);

        ack.SrcPos = req.SrcPos;
        ack.TarPos = equipDB.Pos;
        NetworkManager.Instance.Send(MessageID.MSG_ACK_DRESS_EQUIP, ack, 0, 0);
    }
コード例 #2
0
    private void OnAck_DressEquip(MessageRecv obj)
    {
        System.IO.MemoryStream ms  = new System.IO.MemoryStream(obj.Data);
        AckDressEquip          ack = Serializer.Deserialize <AckDressEquip>(ms);
        int srcPos = ack.SrcPos;
        int tarPos = ack.TarPos;

        XItem  bagEquip   = DataDBSBagItem.GetDataById(srcPos);
        DEquip equipDB    = ReadCfgEquip.GetDataById(bagEquip.Id);
        XItem  dressEquip = DataDBSDressEquip.GetDataById(equipDB.Pos);

        if (dressEquip != null)
        {
            int bagInstance = bagEquip.Instance;
            int bagId       = bagEquip.Id;

            bagEquip.Id       = dressEquip.Id;
            bagEquip.Instance = dressEquip.Instance;
            bagEquip.PosType  = (int)EPosType.BagItem;

            dressEquip.Instance = bagInstance;
            dressEquip.PosType  = (int)EPosType.RoleEquip;
            dressEquip.Id       = bagId;
            DataDBSDressEquip.Update(equipDB.Pos, dressEquip);
            DataDBSBagItem.Update(srcPos, bagEquip);
        }
        else
        {
            dressEquip          = new XItem();
            dressEquip.Instance = bagEquip.Instance;
            dressEquip.Pos      = equipDB.Pos;
            dressEquip.PosType  = (int)EPosType.RoleEquip;
            dressEquip.Id       = bagEquip.Id;
            dressEquip.Num      = 1;
            DataDBSDressEquip.Insert(equipDB.Pos, dressEquip);
            DataDBSBagItem.Delete(srcPos);
        }

        GTWorld.Instance.SyncMainPlayerData(ESyncDataType.TYPE_EQUIP);

        GTEventCenter.FireEvent(GTEventID.TYPE_BAG_DRESS_EQUIP, srcPos, tarPos);
        GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_FIGHTVALUE);
    }