예제 #1
0
    /// <summary>
    /// 进入远洋海盗船
    /// </summary>
    /// <param name="type"></param>
    public static void EnterCorsair(uint type)
    {
        if (type == 1)
        {
            if (SceneHelp.CheckCanSwitch(GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_CORSAIR) == false)
            {
                return;
            }

            if (PKModeManagerEx.Instance.TryToOtherDungeonScene() == false)
            {
                return;
            }

            JumpToInstance(0, GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_CORSAIR, () => {
                var pack  = new C2SDungeonCorsairEnter();
                pack.type = type;
                NetClient.GetBaseClient().SendData <C2SDungeonCorsairEnter>(NetMsg.MSG_DUNGEON_CORSAIR_ENTER, pack);
            });
        }
        else
        {
            var pack = new C2SDungeonCorsairEnter();
            pack.type = type;
            NetClient.GetBaseClient().SendData <C2SDungeonCorsairEnter>(NetMsg.MSG_DUNGEON_CORSAIR_ENTER, pack);
        }
    }
예제 #2
0
    /// <summary>
    /// 进入帮派红包雨
    /// </summary>
    /// <param name="playJumpOutAnimation"></param>
    public static void EnterGuildRainRedPacket(bool playJumpOutAnimation = true)
    {
        if (SceneHelp.Instance.IsInGuildManor == true)
        {
            UINotice.Instance.ShowMessage(DBConstText.GetText("GUILD_ALREADY_IN_GUILD_MANOR"));
            return;
        }

        if (SceneHelp.CheckCanSwitch(GameConst.WAR_TYPE_WILD, GameConst.WAR_SUBTYPE_GUILD_MANOR) == false)
        {
            return;
        }

        if (PKModeManagerEx.Instance.TryToOtherDungeonScene() == false)
        {
            return;
        }

        if (playJumpOutAnimation)
        {
            JumpToInstance(0, GameConst.WAR_TYPE_WILD, GameConst.WAR_SUBTYPE_GUILD_MANOR, () =>
            {
                var pack = new C2SMoneyRainStart();
                NetClient.GetBaseClient().SendData <C2SMoneyRainStart>(NetMsg.MSG_MONEY_RAIN_START, pack);
            });
        }
        else
        {
            var pack = new C2SMoneyRainStart();
            NetClient.GetBaseClient().SendData <C2SMoneyRainStart>(NetMsg.MSG_MONEY_RAIN_START, pack);
        }
    }
예제 #3
0
        /// <summary>
        /// 点击前往挂机点的按钮
        /// </summary>
        public void OnClickGotoMonster()
        {
            // 本地玩家是否处于护送状态
            if (SceneHelp.CheckLocalPlayerEscortTaskState() == false)
            {
                return;
            }

            if (mCurrentMonsterInfo == null)
            {
                return;
            }

            // 记录当弹出退出提示的时候是否要继续自动战斗
            if (SceneHelp.Instance.IsInInstance == true || SceneHelp.Instance.IsCanExitBtnInWild == true)
            {
                SceneHelp.Instance.IsAutoFightingWhenShowExitTips = InstanceManager.Instance.IsAutoFighting || SceneHelp.Instance.IsAutoFightingWhenShowExitTips;
            }

            // 首先取消自动挂机
            InstanceManager.Instance.IsAutoFighting = false;

            // 世界boss默认刷新到1分线
            if (ActorHelper.IsWorldBoss(mCurrentMonsterInfo.ActorId) &&
                !SceneHelp.Instance.IsInFirstWorldBossInstance)
            {
                if (SceneHelp.CheckCanSwitch(mCurrentMonsterInfo.MapId, true) == true)
                {
                    TargetPathManager.Instance.GoToConstPosition(mCurrentMonsterInfo.MapId, 1, mCurrentMonsterInfo.Position, null, () => { InstanceManager.Instance.SetOnHook(true); });
                }
            }
            else
            {
                // 从服务器那里获取挂机位置
                uint hangId   = DBHang.Instance.GetHangIdByInstanceIdAndTagId(mCurrentMonsterInfo.MapId, (uint)mCurrentMonsterInfo.Id);
                uint tagIndex = DBHang.Instance.GetTagIndexByInstanceIdAndTagId(mCurrentMonsterInfo.MapId, (uint)mCurrentMonsterInfo.Id);
                if (hangId > 0)
                {
                    var data = new C2SMapGetHangPos();
                    data.data_id = hangId;
                    data.nth_pos = tagIndex;
                    NetClient.GetBaseClient().SendData <C2SMapGetHangPos>(NetMsg.MSG_MAP_GET_HANG_POS, data);
                }
                // 如果配置表没有数据则客户端直接跳转
                else
                {
                    if (SceneHelp.CheckCanSwitch(mCurrentMonsterInfo.MapId, true) == true)
                    {
                        TargetPathManager.Instance.GoToConstPosition(mCurrentMonsterInfo.MapId, SceneHelp.Instance.CurLine, mCurrentMonsterInfo.Position, null, () => { InstanceManager.Instance.SetOnHook(true); });
                    }
                }
            }

            UIManager.Instance.CloseSysWindow("UIMapWindow");
        }
예제 #4
0
    /// <summary>
    /// 进入武神塔
    /// </summary>
    public static void EnterKungFuGod()
    {
        if (SceneHelp.CheckCanSwitch(GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_SECRET_AREA) == false)
        {
            return;
        }

        if (PKModeManagerEx.Instance.TryToOtherDungeonScene() == false)
        {
            return;
        }

        JumpToInstance(0, GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_SECRET_AREA, () => {
            var pack = new C2SDungeonSecretAreaEnter();
            NetClient.GetBaseClient().SendData <C2SDungeonSecretAreaEnter>(NetMsg.MSG_DUNGEON_SECRET_AREA_ENTER, pack);
        });
    }
예제 #5
0
    /// <summary>
    /// 进入剑域盛会
    /// </summary>
    public static void EnterWorshipMeeting()
    {
        if (SceneHelp.CheckCanSwitch(GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_WORSHIP_MEETING) == false)
        {
            return;
        }

        if (PKModeManagerEx.Instance.TryToOtherDungeonScene() == false)
        {
            return;
        }

        JumpToInstance(0, GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_WORSHIP_MEETING, () => {
            var pack = new C2SDungeonWorshipMeetingEnter();
            NetClient.GetBaseClient().SendData <C2SDungeonWorshipMeetingEnter>(NetMsg.MSG_DUNGEON_WORSHIP_MEETING_ENTER, pack);
        });
    }
예제 #6
0
    /// <summary>
    /// 进入帮派联赛
    /// </summary>
    public static void EnterGuildLeague()
    {
        if (SceneHelp.Instance.IsInGuildLeagueInstance() == true)
        {
            UINotice.Instance.ShowMessage(DBConstText.GetText("GUILD_ALREADY_IN_GUILD_LEAGUE"));
            return;
        }

        if (SceneHelp.CheckCanSwitch(GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_GUILD_LEAGUE) == false)
        {
            return;
        }

        JumpToInstance(0, GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_GUILD_LEAGUE, () => {
            var pack = new C2SGuildLeagueEnter();
            NetClient.GetBaseClient().SendData <C2SGuildLeagueEnter>(NetMsg.MSG_GUILD_LEAGUE_ENTER, pack);
        });
    }
예제 #7
0
    /// <summary>
    /// 进入婚宴副本
    /// </summary>
    public static void EnterWeddingInstance()
    {
        if (SceneHelp.Instance.IsInWeddingInstance == true)
        {
            UINotice.Instance.ShowMessage(DBConstText.GetText("INSTANCE_ALREADY_IN_IT"));
            return;
        }

        if (SceneHelp.CheckCanSwitch(GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_WEDDING) == false)
        {
            return;
        }

        JumpToInstance(0, GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_WEDDING, () =>
        {
            var pack = new C2SDungeonWeddingEnter();
            NetClient.GetBaseClient().SendData <C2SDungeonWeddingEnter>(NetMsg.MSG_DUNGEON_WEDDING_ENTER, pack);
        });
    }
예제 #8
0
    /// <summary>
    /// 进入破碎死域
    /// </summary>
    public static void EnterDeadSpace()
    {
        if (SceneHelp.Instance.IsInDeadSpaceInstance == true)
        {
            xc.UINotice.Instance.ShowMessage(DBConstText.GetText("INSTANCE_ALREADY_IN_IT"));
            return;
        }

        if (SceneHelp.CheckCanSwitch(GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_DEAD_SPACE) == false)
        {
            return;
        }

        if (PKModeManagerEx.Instance.TryToOtherDungeonScene() == false)
        {
            return;
        }

        JumpToInstance(0, GameConst.WAR_TYPE_DUNGEON, GameConst.WAR_SUBTYPE_DEAD_SPACE, () => {
            var pack = new C2SDungeonDeadSpaceEnter();
            NetClient.GetBaseClient().SendData <C2SDungeonDeadSpaceEnter>(NetMsg.MSG_DUNGEON_DEAD_SPACE_ENTER, pack);
        });
    }