示例#1
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);
    }
示例#2
0
    private void OnAck_UnloadEquip(MessageRecv obj)
    {
        System.IO.MemoryStream ms  = new System.IO.MemoryStream(obj.Data);
        AckUnloadEquip         ack = Serializer.Deserialize <AckUnloadEquip>(ms);

        int newPos = ack.NewPos;
        int tarPos = ack.TarPos;

        XItem dressEquip = DataDBSDressEquip.GetDataById(tarPos);
        XItem bagItem    = new XItem();

        bagItem.Instance = dressEquip.Instance;
        bagItem.Pos      = newPos;
        bagItem.PosType  = (int)EPosType.BagItem;
        bagItem.Id       = dressEquip.Id;
        bagItem.Num      = 1;
        DataDBSBagItem.Insert(newPos, bagItem);
        DataDBSDressEquip.Delete(tarPos);

        GTWorld.Instance.SyncMainPlayerData(ESyncDataType.TYPE_EQUIP);

        GTEventCenter.FireEvent(GTEventID.TYPE_BAG_UNLOAD_EQUIP, newPos, tarPos);
        GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_FIGHTVALUE);
    }