public void OnDropItem(Grid_N grid) { //lz-2016.11.14 Crush bug if (null == SelectItem_N.Instance || null == SelectItem_N.Instance.ItemSample || null == GameUI.Instance || null == mCutSlotList || null == grid) { return; } //lz-2016.08.10 不允许快捷栏操作当前包裹正在操作的Item if (null != GameUI.Instance.mItemPackageCtrl && GameUI.Instance.mItemPackageCtrl.EqualUsingItem(SelectItem_N.Instance.ItemSample)) { return; } if (e_OnDropItemTask != null && SelectItem_N.Instance.ItemSample.protoId == 916) { e_OnDropItemTask(); } if (GameConfig.IsMultiMode) { int selectIndex = SelectItem_N.Instance.Index + GetCurPageIndex(); int gridIndex = grid.ItemIndex + GetCurPageIndex(); int srcIndex = -1; int objId = -1; if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_HotKeyBar) { ShortCutItem item = mCutSlotList.GetItem(selectIndex); if (null != item) { srcIndex = selectIndex; objId = item.itemInstanceId; } } else { if (SelectItem_N.Instance.ItemObj == null) { Debug.Log("UIMainMidCtrl.OnDropItem SelectItem_N.Instance.ItemObj == null"); return; } srcIndex = -1; objId = SelectItem_N.Instance.ItemObj.instanceId; } if (null != PlayerNetwork.mainPlayer) { PlayerNetwork.mainPlayer.RequestSetShortcuts(objId, srcIndex, gridIndex, SelectItem_N.Instance.Place); } SelectItem_N.Instance.SetItem(null); } else { switch (SelectItem_N.Instance.Place) { case ItemPlaceType.IPT_HotKeyBar: if (grid.Item == null) { int selectIndex = SelectItem_N.Instance.Index + GetCurPageIndex(); int gridIndex = grid.ItemIndex + GetCurPageIndex(); mCutSlotList.PutItem(mCutSlotList.GetItem(selectIndex), gridIndex); mCutSlotList.PutItem(null, selectIndex); } else { int selectIndex = SelectItem_N.Instance.Index + GetCurPageIndex(); ShortCutItem selectedCut = mCutSlotList.GetItem(selectIndex); int gridIndex = grid.ItemIndex + GetCurPageIndex(); ShortCutItem gridCut = mCutSlotList.GetItem(gridIndex); if (selectedCut != null) { mCutSlotList.PutItem(selectedCut, gridIndex); } mCutSlotList.PutItem(gridCut, selectIndex); } SelectItem_N.Instance.SetItem(null); break; case ItemPlaceType.IPT_Equipment: break; case ItemPlaceType.IPT_Bag: { int pakageIndex = 0; bool isMission = false; if (null != GameUI.Instance.mItemPackageCtrl) { if (!GameUI.Instance.mItemPackageCtrl.isMission) { pakageIndex = ItemPackage.CodeIndex((ItemPackage.ESlotType)GameUI.Instance.mItemPackageCtrl.CurrentPickTab, SelectItem_N.Instance.Index); } else { pakageIndex = ItemPackage.CodeIndex(ItemPackage.ESlotType.Item, SelectItem_N.Instance.Index); isMission = true; } if (null != mPackageCmpt) { mPackageCmpt.PutItemToShortCutList(pakageIndex, grid.ItemIndex + GetCurPageIndex(), isMission); } } SelectItem_N.Instance.SetItem(null); } break; } } }