/// <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); }
/// <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); }
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); }
/// <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; } }