Ejemplo n.º 1
0
        /// <summary>
        /// 卸下装备
        /// </summary>
        /// <param name="itemFielInfo"></param>
        public void SendUnloadEquipItemsToSever(ItemFielInfo itemFielInfo, ContainerBoxSlot_V2 targetContainerBoxSlot)
        {
            SMsgContainerUse_CS dataStruct = new SMsgContainerUse_CS();

            dataStruct.dwContainerID1 = dataStruct.dwContainerID2 = itemFielInfo.sSyncContainerGoods_SC.SMsgContainerCSCHead.dwContainerID;
            dataStruct.byPlace        = (byte)itemFielInfo.sSyncContainerGoods_SC.nPlace;
            dataStruct.uidTarget      = PlayerManager.Instance.FindHeroEntityModel().EntityDataStruct.SMsg_Header.uidEntity;
            dataStruct.desPlace       = (targetContainerBoxSlot.MyContainerBoxSlotData.CurrentPlace - 1);
            dataStruct.byUseType      = itemFielInfo.LocalItemData._GoodsClass == 2 ? (byte)1 : (byte)0;
            TraceUtil.Log(string.Format("发送卸下装备到背包栏:目标位置:{0}", dataStruct.desPlace));
            NetServiceManager.Instance.ContainerService.SendContainerUse(dataStruct);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 将物品从本页的一个槽移动到另一个槽上
        /// </summary>
        void MoveItemToNewSlot(ContainerBoxSlot_V2 fromSlot, ContainerBoxSlot_V2 toSlot)
        {
            SendChangeItemPlaceToServer(fromSlot, toSlot);
            var toSlotData   = toSlot.MyContainerBoxSlotData;
            var fromSlotData = fromSlot.MyContainerBoxSlotData;
            var chachePlace  = toSlotData.CurrentPlace;

            toSlotData.CurrentPlace   = fromSlotData.CurrentPlace;
            fromSlotData.CurrentPlace = chachePlace;
            toSlot.Init(fromSlotData, this);
            fromSlot.Init(toSlotData, this);
        }
Ejemplo n.º 3
0
        void SendChangeItemPlaceToServer(ContainerBoxSlot_V2 fromSlot, ContainerBoxSlot_V2 toSlot)
        {
            var dwContainerID = ContainerInfomanager.Instance.sBuildContainerClientContexts.First(P => P.dwContainerName == 2).dwContainerID;
            SSyncContainerGoods_CS sSyncContainerGoods_CS = new SSyncContainerGoods_CS()
            {
                ContainerID      = dwContainerID,
                dwSrcContainerID = dwContainerID,
                bySrcPlace       = (byte)(fromSlot.MyContainerBoxSlotData.CurrentPlace - 1),
                dwDstContainerID = dwContainerID,
                byDstPlace       = (byte)(toSlot.MyContainerBoxSlotData.CurrentPlace - 1),
            };

            //TraceUtil.Log(string.Format("发送物品栏位置改变消息到服务器:{0},{1}->{2}", sSyncContainerGoods_CS.dwSrcContainerID, sSyncContainerGoods_CS.bySrcPlace, sSyncContainerGoods_CS.byDstPlace));
            NetServiceManager.Instance.ContainerService.SendSSyncContainerGoods(sSyncContainerGoods_CS);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 拖拽物体到我这里的某个槽上
        /// </summary>
        public void OnDragComponentToSlot(ContainerBoxSlot_V2 targetContainerBoxSlot, SingleContainerBox DragItem)
        {
            switch (DragItem.singleContainerBoxType)
            {
            case SingleContainerBoxType.HeroEquip:
                HeroEquiptItemListManager.RemoveItem(DragItem);
                var slotData = targetContainerBoxSlot.MyContainerBoxSlotData;
                slotData.itemfileInfo = DragItem.itemFielInfo;
                targetContainerBoxSlot.Init(slotData, this);
                SendUnloadEquipItemsToSever(DragItem.itemFielInfo, targetContainerBoxSlot);
                break;

            case SingleContainerBoxType.Container:
                var fromSlot = ContainerBoxList.First(P => P.MyContainerBox == DragItem as SingleContainerBox);
                MoveItemToNewSlot(fromSlot, targetContainerBoxSlot);
                break;
            }
        }