private void handleToGround(string from, string to, ServerRoom room, FreeData fd) { if (!from.StartsWith(Ground) && to.StartsWith(Ground)) { FreeItemManager.DragItem(from, fd, room.FreeArgs, Ground); } }
private void DragGroundOne(FreeData fd, ServerRoom room, string to) { if (to.StartsWith(ChickenConstant.BagDefault)) { FreeItemManager.DragItem("ground,0,0", fd, room.ContextsWrapper.FreeArgs, ChickenConstant.BagDefault); } else { FreeItemManager.DragItem("ground,0,0", fd, room.ContextsWrapper.FreeArgs, to); } }
private void DragGroundOne(FreeData fd, ServerRoom room, string to) { if (to.StartsWith("default")) { FreeItemManager.DragItem("ground,0,0", fd, room.FreeArgs, "default"); } else { FreeItemManager.DragItem("ground,0,0", fd, room.FreeArgs, to); } }
private void handleToGround(string from, string to, ServerRoom room, FreeData fd) { PlayerStateUtil.AddPlayerState(EPlayerGameState.InterruptItem, fd.Player.gamePlay); FreeItemManager.DragItem(from, fd, room.ContextsWrapper.FreeArgs, ChickenConstant.BagGround); SimpleProto sp = FreePool.Allocate(); sp.Key = FreeMessageConstant.PlaySound; sp.Ks.Add(2); sp.Ins.Add(5017); sp.Bs.Add(false); FreeMessageSender.SendMessage(fd.Player, sp); }
public void Handle(ServerRoom room, PlayerEntity player, SimpleProto message) { FreeData fd = (FreeData)player.freeData.FreeData; var freeArgs = room.ContextsWrapper.FreeArgs as FreeRuleEventArgs; freeArgs.TempUse(PARA_PLAYER_CURRENT, fd); eventKey.SetValue(message.Ss[0]); freeArgs.GetDefault().GetParameters().TempUse(eventKey); Debug.Log("drag from:" + message.Ss[0] + " to:" + message.Ss[1]); string from = message.Ss[0]; string to = message.Ss[1]; ItemPosition fromIp = FreeItemManager.GetItemPosition(freeArgs, from, fd.freeInventory.GetInventoryManager()); ItemPosition toIp = FreeItemManager.GetItemPosition(freeArgs, to, fd.freeInventory.GetInventoryManager()); // 显示拆分UI if (message.Bs[0] && from.StartsWith(ChickenConstant.BagDefault)) { PickupItemUtil.ShowSplitUI(room, fd, from); } else if (!HandleBag(from, to, room, fd)) { } else if (player.gamePlay.GameState == GameState.AirPlane || player.gamePlay.GameState == GameState.Gliding || player.gamePlay.GameState == GameState.JumpPlane) { } /*else if (from.StartsWith(ChickenConstant.BagBelt) || to.StartsWith(ChickenConstant.BagBelt)) * { * // 腰包不能做任何操作 * SimpleProto msg = FreePool.Allocate(); * msg.Key = FreeMessageConstant.ChickenTip; * msg.Ss.Add("word63"); * FreeMessageSender.SendMessage(fd.Player, msg); * }*/ else if (from.StartsWith(ChickenConstant.BagGround) && !to.StartsWith(ChickenConstant.BagGround)) { // 地面模糊操作 HandleAuto(from, to, room, fd); } else if (from.StartsWith(ChickenConstant.BagGround) || to.StartsWith(ChickenConstant.BagGround)) { /*if (from.StartsWith(Ground) && !to.StartsWith(Ground)) * { * handleFromGround(from, to, room, fd); * }*/ if (!from.StartsWith(ChickenConstant.BagGround) && to.StartsWith(ChickenConstant.BagGround)) { FreeItemInfo fromInfo = FreeItemConfig.GetItemInfo(fromIp.key.GetKey()); if (fromInfo.cat == (int)ECategory.WeaponPart && from.StartsWith("w")) { if (BagCapacityUtil.CanDemountAttachment(room, fd, fromInfo, from, true)) { handleToGround(from, to, room, fd); } } else { handleToGround(from, to, room, fd); } } } else if (from.StartsWith(ChickenConstant.BagDefault) && to.StartsWith("w")) { // 背包物品拖动到武器槽 if (fromIp != null) { FreeItemInfo info = FreeItemConfig.GetItemInfo(fromIp.key.GetKey()); if (info.cat == (int)ECategory.WeaponPart) { MovePartToWeapon(room, fd, fromIp, to, info); } else { FreeItemManager.DragItem(from, fd, room.ContextsWrapper.FreeArgs, to); } } } else if (PickupItemUtil.IsDefault(from) && string.IsNullOrEmpty(to)) { // 背包物品拖动到人身上 if (fromIp != null) { FreeItemInfo info = FreeItemConfig.GetItemInfo(fromIp.key.GetKey()); if (info.cat == (int)ECategory.WeaponPart) { MovePartToWeapon(room, fd, fromIp, to, info); } else { FreeItemManager.UseItem(from, fd, room.ContextsWrapper.FreeArgs); } } } else if ((from.StartsWith("w1,") && to.StartsWith("w2,")) || (from.StartsWith("w2,") && to.StartsWith("w1,"))) { ExchangeWeapon(room.ContextsWrapper.FreeArgs, fd, from, to); } else if (from.StartsWith("w") && to.StartsWith("w") && from.IndexOf(",") == 3 && to.IndexOf(",") == 2) { if (fromIp != null && toIp != null) { WeaponBaseAgent toAgent = fd.Player.WeaponController().GetWeaponAgent((EWeaponSlotType)short.Parse(to.Substring(1, 1))); FreeItemInfo fromInfo = FreeItemConfig.GetItemInfo(fromIp.key.GetKey()); if (!toAgent.WeaponConfigAssy.IsPartMatchWeapon(WeaponPartUtil.GetWeaponFstMatchedPartId(fromInfo.id, toAgent.ConfigId))) { SimpleProto msg = FreePool.Allocate(); msg.Key = FreeMessageConstant.ChickenTip; msg.Ss.Add("word77," + toAgent.WeaponConfigAssy.S_Name + "," + fromInfo.name); FreeMessageSender.SendMessage(fd.Player, msg); } else { string toPosition = to.Substring(0, 2) + from.Substring(2, 1) + ",0,0"; ItemPosition toPart = FreeItemManager.GetItemPosition(room.ContextsWrapper.FreeArgs, toPosition, fd.freeInventory.GetInventoryManager()); WeaponBaseAgent fromAgent = fd.Player.WeaponController().GetWeaponAgent((EWeaponSlotType)short.Parse(from.Substring(1, 1))); if (toPart != null) { FreeItemInfo toInfo = FreeItemConfig.GetItemInfo(toPart.key.GetKey()); if (!fromAgent.WeaponConfigAssy.IsPartMatchWeapon(WeaponPartUtil.GetWeaponFstMatchedPartId(toInfo.id, fromAgent.ConfigId))) { SimpleProto msg = FreePool.Allocate(); msg.Key = FreeMessageConstant.ChickenTip; msg.Ss.Add("word77," + fromAgent.WeaponConfigAssy.S_Name + "," + toInfo.name); FreeMessageSender.SendMessage(fd.Player, msg); } else { if (BagCapacityUtil.CanExchangeAttachment(room, fd, fromInfo, toInfo, fromAgent, toAgent)) { FreeItemManager.DragItem(from, fd, room.ContextsWrapper.FreeArgs, toPosition); } } } else { if (BagCapacityUtil.CanDemountAttachment(room, fd, fromInfo, from, false)) { FreeItemManager.DragItem(from, fd, room.ContextsWrapper.FreeArgs, toPosition); } } } } } else if (from.StartsWith("w") && from.IndexOf(",") == 3 && PickupItemUtil.IsDefault(to)) { FreeItemInfo fromInfo = FreeItemConfig.GetItemInfo(fromIp.key.GetKey()); if (BagCapacityUtil.CanDemountAttachment(room, fd, fromInfo, from, false)) { ItemInventory fromInv = fromIp.GetInventory(); ItemInventory toInv = toIp == null?fd.freeInventory.GetInventoryManager().GetInventory(ChickenConstant.BagDefault) : toIp.GetInventory(); int[] pos = toIp == null ? new int[] { 0, 0 } : toInv.GetNextEmptyPosition(toIp.GetKey()); ItemInventoryUtil.MoveItem(pos[0], pos[1], fromInv, toInv, fromInv.GetInventoryUI(), toInv.GetInventoryUI(), fromIp, null, room.ContextsWrapper.FreeArgs); } } else { FreeItemManager.DragItem(from, fd, room.ContextsWrapper.FreeArgs, to); } room.ContextsWrapper.FreeArgs.Resume(PARA_PLAYER_CURRENT); room.ContextsWrapper.FreeArgs.GetDefault().GetParameters().Resume(PARA_EVENT_KEY); }
public void Handle(ServerRoom room, PlayerEntity player, SimpleProto message) { FreeData fd = (FreeData)player.freeData.FreeData; room.FreeArgs.TempUse(PARA_PLAYER_CURRENT, fd); eventKey.SetValue(message.Ss[0]); room.FreeArgs.GetDefault().GetParameters().TempUse(eventKey); Debug.Log("drag from:" + message.Ss[0] + " to:" + message.Ss[1]); string from = message.Ss[0]; string to = message.Ss[1]; // 显示拆分UI if (message.Bs[0] && from.StartsWith(ChickenConstant.BagDefault)) { PickupItemUtil.ShowSplitUI(room, fd, from); return; } if (!HandleBag(from, to, room, fd)) { return; } if (player.gamePlay.GameState == GameState.AirPlane) { return; } if (from.StartsWith("belt") || to.StartsWith("belt")) { // 腰包不能做任何操作 } else if (from.StartsWith(Ground) && to != Ground) { // 地面模糊操作 HandleAuto(from, to, room, fd); } else if (from.StartsWith(Ground) || to.StartsWith(Ground)) { handleFromGround(from, to, room, fd); handleToGround(from, to, room, fd); } // 背包物品拖动到武器槽 else if (from.StartsWith("default") && to.StartsWith("w")) { ItemPosition ip = FreeItemManager.GetItemPosition(room.FreeArgs, from, fd.freeInventory.GetInventoryManager()); if (ip != null) { FreeItemInfo info = FreeItemConfig.GetItemInfo(ip.key.GetKey()); if (info.cat == (int)ECategory.WeaponPart) { MovePartToWeapon(room, fd, ip, to, info); } else { FreeItemManager.DragItem(message.Ss[0], fd, room.FreeArgs, message.Ss[1]); } } } // 背包物品拖动到人身上 else if (from.StartsWith("default") && string.IsNullOrEmpty(to)) { ItemPosition ip = FreeItemManager.GetItemPosition(room.FreeArgs, from, fd.freeInventory.GetInventoryManager()); if (ip != null) { FreeItemInfo info = FreeItemConfig.GetItemInfo(ip.key.GetKey()); if (info.cat == (int)ECategory.WeaponPart) { MovePartToWeapon(room, fd, ip, to, info); } else { FreeItemManager.UseItem(from, fd, room.FreeArgs); } } } else { FreeItemManager.DragItem(message.Ss[0], fd, room.FreeArgs, message.Ss[1]); } room.FreeArgs.Resume(PARA_PLAYER_CURRENT); room.FreeArgs.GetDefault().GetParameters().Resume(PARA_EVENT_KEY); }