Ejemplo n.º 1
0
        public static bool checkCurTask(string[] arr)
        {
            int      taskId    = int.Parse(arr[1]);
            int      taskState = int.Parse(arr[2]);
            TaskData taskData  = A3_TaskModel.getInstance().GetTaskDataById(A3_TaskModel.getInstance().main_task_id);

            if (taskState == 0)
            {
                return(taskId == A3_TaskModel.getInstance().main_task_id);// && ! taskData.isComplete;
            }
            else
            {
                return(taskId == A3_TaskModel.getInstance().main_task_id);// && taskData.isComplete;
            }
        }
Ejemplo n.º 2
0
        private void RunTimer()
        {
            Dictionary <int, TaskData> dicTask = A3_TaskModel.getInstance().GetDicTaskData();
            List <int> idx      = new List <int>(dicTask.Keys);
            bool       isTiming = false;

            for (int i = 0; i < idx.Count; i++)
            {
                if (!taskOptElement.ContainsKey(idx[i]))
                {
                    continue;
                }
                TaskOptElement tempElem = taskOptElement[idx[i]];
                float          endTime  = dicTask[idx[i]].lose_tm,
                               curTime  = muNetCleint.instance.CurServerTimeStamp,
                               duration = dicTask[idx[i]].release_tm;
                TaskData task           = dicTask[idx[i]];
                if (taskOptElement.ContainsKey(idx[i]))
                {
                    long timeSpn     = task.lose_tm - muNetCleint.instance.CurServerTimeStamp;
                    bool isCurTiming = TaskTargetType.KILL_MONSTER_GIVEN == task.targetType && !task.isComplete && timeSpn > 0 && task.release_tm > timeSpn;
                    if (isCurTiming)
                    {
                        tempElem.liteMinimapTaskTimer.gameObject.SetActive(true);
                        tempElem.liteMinimapTaskTimer.text = GetSecByTime(task.lose_tm);
                        taskOptElement[tempElem.taskId].Set(isTaskMonsterAlive: true);
                    }
                    else
                    {
                        taskOptElement[tempElem.taskId].Set(isTaskMonsterAlive: false);
                        tempElem.liteMinimapTaskTimer.gameObject.SetActive(false);
                    }
                    isTiming |= isCurTiming;
                }
            }
            if (waitTime < 0)
            {
                CancelInvoke("RunTimer");
                waitTime = 5f;
                return;
            }
            if (!isTiming)
            {
                waitTime--;
            }
        }
Ejemplo n.º 3
0
        public static bool checkCurTask(string[] arr)
        {
            int      num          = int.Parse(arr[1]);
            int      num2         = int.Parse(arr[2]);
            TaskData taskDataById = ModelBase <A3_TaskModel> .getInstance().GetTaskDataById(ModelBase <A3_TaskModel> .getInstance().main_task_id);

            bool flag = num2 == 0;
            bool result;

            if (flag)
            {
                result = (num == ModelBase <A3_TaskModel> .getInstance().main_task_id);
            }
            else
            {
                result = (num == ModelBase <A3_TaskModel> .getInstance().main_task_id);
            }
            return(result);
        }
Ejemplo n.º 4
0
        private void OnOptionBtnClick(GameObject go)
        {
            dialog.next();
            int  taskId = 0;
            bool flag   = int.TryParse(go.name, out taskId);

            if (flag)
            {
                List <string> dialogkDesc = this.tkModel.GetDialogkDesc(taskId);
                this.tkModel.curTask = this.tkModel.GetTaskDataById(taskId);
                dialog.showTalk(dialogkDesc, null, dialog.m_npc, false);
            }
            else
            {
                string name  = go.name;
                bool   flag2 = name == "a3_npc_shop";
                if (flag2)
                {
                    List <SXML> sXMLList = XMLMgr.instance.GetSXMLList("npc_shop.npc_shop", "npc_id==" + this.npc_id);
                    ModelBase <A3_NPCShopModel> .getInstance().listNPCShop.Clear();

                    ModelBase <A3_NPCShopModel> .getInstance().listNPCShop = sXMLList;

                    BaseProxy <A3_NPCShopProxy> .getInstance().sendShowFloat((uint)sXMLList[0].getInt("shop_id"));
                }
                bool flag3 = name == "a3_legion_dart";
                if (flag3)
                {
                    bool flag4 = ModelBase <A3_LegionModel> .getInstance().myLegion.id == 0;

                    if (flag4)
                    {
                        flytxt.instance.fly("您当前没有军团", 0, default(Color), null);
                        return;
                    }
                }
                InterfaceMgr.getInstance().open(name, null, false);
            }
        }
Ejemplo n.º 5
0
        private bool Execute(TaskData taskData, bool checkNextStep, bool checkItems, bool clickAuto)
        {
            if (taskData.taskT == TaskType.CLAN && A3_LegionModel.getInstance().myLegion.id == 0)
            {
                flytxt.instance.fly(ContMgr.getCont("a3_task_auto_nocy"));
                return(false);
            }
            //这里将任务的自动改成只读配置表(待测试)
            bool forceMove = taskData.next_step;

            if (forceMove || clickAuto)
            {
                if (SelfRole.fsm.Autofighting)
                {
                    SelfRole.fsm.Stop();
                    StateInit.Instance.Origin = Vector3.zero;
                }
            }
            else
            {
                return(false);
            }

            int npcId = 0;
            int mapId = 0;
            int posX  = 0;
            int posY  = 0;


            SXML taskXml = XMLMgr.instance.GetSXML("task.Task", "id==" + taskData.taskId);

            if (taskXml == null)
            {
                debug.Log("任务Id错误::" + taskData.taskId);
                return(false);
            }
            if (taskData.isComplete && taskData.taskT != TaskType.DAILY)
            {
                if (taskXml.getInt("complete_way") == 3)
                {
                    A3_TaskProxy.getInstance().SendGetAward();
                    return(true);
                }
                npcId = taskXml.getInt("complete_npc_id");
                SXML npcsXml = XMLMgr.instance.GetSXML("npcs.npc", "id==" + npcId);
                if (npcsXml != null)
                {
                    mapId = npcsXml.getInt("map_id");
                }
                List <string> listDialog = new List <string>();

                string strDialog = taskXml.getString("complete_dialog");
                strDialog = GameFramework.StringUtils.formatText(strDialog);
                string[] listTempDia = strDialog.Split(';');
                listDialog = listTempDia.ToList <string>();

                tarNpcId = npcId;
                //if(forceMove)
                //InterfaceMgr.getInstance().open(InterfaceMgr.TRANSMIT_PANEL, (ArrayList)new TransmitData
                //{
                //    mapId = mapId,
                //    check_beforeShow = true,
                //    handle_customized_afterTransmit = () => SelfRole.moveToNPc(mapId, npcId, listDialog, OnTalkWithNpc)
                //});
                if (!PlayerModel.getInstance().inFb&& mapId != GRMap.instance.m_nCurMapID && MapModel.getInstance().dicMappoint.ContainsKey(mapId) && MapModel.getInstance().dicMappoint[mapId] != GRMap.instance.m_nCurMapID)
                {
                    SelfRole.Transmit(toid: MapModel.getInstance().dicMappoint[mapId], after: () => SelfRole.moveToNPc(mapId, npcId, listDialog, OnTalkWithNpc, taskmove: true), taskTrans: true);
                }
                else
                {
                    SelfRole.moveToNPc(mapId, npcId, listDialog, OnTalkWithNpc, taskmove: true);
                }
            }
            else
            {
                mapId = taskXml.getInt("tasking_map_id");
                posX  = taskXml.getInt("target_coordinate_x");
                posY  = taskXml.getInt("target_coordinate_y");
                float mapY = taskXml.getFloat("map_y");
                mapY = (mapY == -1 ? 0 : mapY);
                Vector3 pos = new Vector3(posX, mapY, posY);
                switch (taskData.targetType)
                {
                case TaskTargetType.DODAILY:     /*页面切换到每日任务*/
                    ArrayList arr          = new ArrayList();
                    var       tasks        = A3_TaskModel.getInstance().GetDicTaskData();
                    bool      hasDailyTask = false;
                    int       i            = 0;
                    for (List <int> idx = new List <int>(tasks.Keys); i < tasks.Count; i++)
                    {
                        if (hasDailyTask = tasks[idx[i]].taskT == TaskType.DAILY)
                        {
                            break;
                        }
                    }
                    if (hasDailyTask /*tasks.Count(v => v.Value.taskT == TaskType.DAILY) > 0*/)
                    {
                        List <int> k = tasks.Keys.ToList();
                        for (i = 0; i < k.Count; i++)
                        {
                            if (tasks[k[i]].taskT == TaskType.DAILY)
                            {
                                arr.Add(tasks[k[i]].taskId);
                            }
                        }
                        InterfaceMgr.getInstance().ui_async_open(InterfaceMgr.A3_TASK, arr);
                        //MonsterMgr._inst.taskMonId = XMLMgr.instance.GetSXML("task.Task", "id==" + taskData.taskId)?.getInt("target_param2") ?? 0;
                    }
                    break;

                case TaskTargetType.FRIEND:     /*关闭当前页面,弹出好友页面*/
                    if (a3_liteMinimap.instance)
                    {
                        a3_liteMinimap.instance.ZidongTask = false;
                    }
                    arr = new ArrayList();
                    arr.Add(1 /* index of friend panel*/);
                    InterfaceMgr.getInstance().ui_async_open(InterfaceMgr.A3_SHEJIAO, arr);
                    break;

                case TaskTargetType.WING:     /*关闭当前页面,弹出飞翼页面*/
                    if (a3_liteMinimap.instance)
                    {
                        a3_liteMinimap.instance.ZidongTask = false;
                    }
                    InterfaceMgr.getInstance().ui_async_open(InterfaceMgr.A3_WIBG_SKIN);
                    break;

                case TaskTargetType.GETEXP:    /*卡级任务、转生任务*/

                    debug.Log("当前是转生等级任务");
                    StateAutoMoveToPos.Instance.stopdistance = 0.3f;
                    int zs           = int.Parse(taskXml.getString("target_param2").Split(',')[0]);
                    int ls           = int.Parse(taskXml.getString("target_param2").Split(',')[1]);
                    int trriger_type = int.Parse(taskXml.getString("trigger"));
                    if (trriger_type == 1)
                    {
                        if (a3_liteMinimap.instance)
                        {
                            a3_liteMinimap.instance.ZidongTask = false;
                        }
                        InterfaceMgr.getInstance().ui_async_open(InterfaceMgr.A3_WANTLVUP);
                    }
                    else
                    {
                        bool b       = true;
                        int  pp      = PlayerModel.getInstance().profession;
                        uint pl      = PlayerModel.getInstance().lvl;
                        uint pz      = PlayerModel.getInstance().up_lvl;
                        uint exp     = PlayerModel.getInstance().exp;
                        uint needExp = ResetLvLModel.getInstance().getNeedExpByCurrentZhuan(pp, pz);
                        uint needLvL = ResetLvLModel.getInstance().getNeedLvLByCurrentZhuan(pp, pz);
                        if (pz >= 10)
                        {
                            break;              //10转之后无法再次转生
                        }
                        if (needLvL > pl)
                        {
                            b = false;
                        }
                        if (b)
                        {
                            npcId = XMLMgr.instance.GetSXML("task.zhuan_npc").getInt("id");
                            SXML npcsXml = XMLMgr.instance.GetSXML("npcs.npc", "id==" + npcId);
                            if (npcsXml != null)
                            {
                                mapId = npcsXml.getInt("map_id");
                            }

                            List <string> listDialog = new List <string>();

                            string strDialog = taskXml.getString("target_dialog");
                            strDialog = GameFramework.StringUtils.formatText(strDialog);
                            string[] listTempDia = strDialog.Split(';');
                            listDialog = listTempDia.ToList <string>();

                            //if (GRMap.instance != null)
                            //{
                            //    InterfaceMgr.getInstance().open(InterfaceMgr.TRANSMIT_PANEL, (ArrayList)new TransmitData
                            //    {
                            //        mapId = mapId,
                            //        check_beforeShow = true,
                            //        handle_customized_afterTransmit = () => SelfRole.moveToNPc(mapId, npcId, listDialog, OnTalkWithNpc)
                            //    });
                            //}
                            if (!PlayerModel.getInstance().inFb&& mapId != GRMap.instance.m_nCurMapID && MapModel.getInstance().dicMappoint.ContainsKey(mapId) && MapModel.getInstance().dicMappoint[mapId] != GRMap.instance.m_nCurMapID)
                            {
                                SelfRole.Transmit(toid: MapModel.getInstance().dicMappoint[mapId], after: () => SelfRole.moveToNPc(mapId, npcId, listDialog, OnTalkWithNpc, taskmove: true), taskTrans: true);
                            }
                            else
                            {
                                SelfRole.moveToNPc(mapId, npcId, listDialog, OnTalkWithNpc, taskmove: true);
                            }
                            //InterfaceMgr.getInstance().open(InterfaceMgr.A3_RESETLVL);
                        }
                        else
                        {
                            if (a3_liteMinimap.instance)
                            {
                                a3_liteMinimap.instance.ZidongTask = false;
                            }
                            InterfaceMgr.getInstance().ui_async_open(InterfaceMgr.A3_WANTLVUP);
                        }
                    }
                    break;

                case TaskTargetType.VISIT:    /*访问(无条件)*/
                {
                    StateAutoMoveToPos.Instance.stopdistance = 2f;
                    npcId = taskXml.getInt("target_param2");
                    SXML npcsXml = XMLMgr.instance.GetSXML("npcs.npc", "id==" + npcId);
                    if (npcsXml != null)
                    {
                        mapId = npcsXml.getInt("map_id");
                    }

                    List <string> listDialog = new List <string>();
                    string        strDialog  = taskXml.getString("target_dialog");
                    strDialog = GameFramework.StringUtils.formatText(strDialog);
                    string[] listTempDia = strDialog.Split(';');
                    listDialog = listTempDia.ToList <string>();

                    tarNpcId = npcId;
                    if (GRMap.instance != null)
                    {
                        //InterfaceMgr.getInstance().open(InterfaceMgr.TRANSMIT_PANEL, (ArrayList)new TransmitData
                        //{
                        //    mapId = mapId,
                        //    check_beforeShow = true,
                        //    handle_customized_afterTransmit = () => SelfRole.moveToNPc(mapId, npcId, listDialog, OnTalkWithNpc)
                        //});
                        if (!PlayerModel.getInstance().inFb&& mapId != GRMap.instance.m_nCurMapID && MapModel.getInstance().dicMappoint.ContainsKey(mapId) && MapModel.getInstance().dicMappoint[mapId] != GRMap.instance.m_nCurMapID)
                        {
                            SelfRole.Transmit(toid: MapModel.getInstance().dicMappoint[mapId], after: () => SelfRole.moveToNPc(mapId, npcId, listDialog, OnTalkWithNpc, taskmove: true), taskTrans: true);
                        }
                        else
                        {
                            SelfRole.moveToNPc(mapId, npcId, listDialog, OnTalkWithNpc, taskmove: true);
                        }
                    }
                }
                break;

                case TaskTargetType.KILL:    /*杀怪类*/
                    //StateAutoMoveToPos.Instance.stopdistance = 2.0f;
                    SelfRole.UnderTaskAutoMove = true;
                    onTaskSearchMon            = taskData.taskT == TaskType.MAIN;
                    int _taskId;
                    if (PlayerModel.getInstance().task_monsterId.ContainsKey(taskData.taskId))
                    {
                        if (!PlayerModel.getInstance().task_monsterIdOnAttack.ContainsKey(taskData.taskId))
                        {
                            PlayerModel.getInstance().task_monsterIdOnAttack.Add(
                                key: taskData.taskId,
                                value: PlayerModel.getInstance().task_monsterId[taskData.taskId]
                                );
                        }
                        PlayerModel.getInstance().task_monsterId.Remove(taskData.taskId);
                        _taskId = taskData.taskId;
                    }
                    else
                    {
                        _taskId = A3_TaskModel.getInstance().GetTaskXML().GetNode("Task", "id==" + taskData.taskId).getInt("target_param2");
                        PlayerModel.getInstance().task_monsterIdOnAttack.Add(
                            key: taskData.taskId,
                            value: _taskId
                            );
                    }
                    SXML _taskXml = XMLMgr.instance.GetSXML("task.Task", "id==" + taskData.taskId);
                    //InterfaceMgr.getInstance().open(InterfaceMgr.TRANSMIT_PANEL, (ArrayList)new TransmitData
                    //{
                    //    mapId = mapId,
                    //    check_beforeShow = true,
                    //    handle_customized_afterTransmit = () =>
                    //    {
                    //        Vector3 fightOrigin = pos;
                    //        StateInit.Instance.Origin = fightOrigin;
                    //        SelfRole.moveto(mapId, pos, () =>
                    //        {
                    //            SelfRole.fsm.StartAutofight();
                    //            MonsterMgr._inst.taskMonId = _taskXml.getInt("target_param2");
                    //        }, stopDis: 2.0f);
                    //    }
                    //});
                    Action afterTransmit = () => {
                        Vector3 fightOrigin = pos;
                        StateInit.Instance.Origin = fightOrigin;
                        SelfRole.moveto(mapId, pos, () =>
                        {
                            SelfRole.fsm.StartAutofight();
                            MonsterMgr._inst.taskMonId = _taskXml.getInt("target_param2");
                        }, stopDis: 2.0f, taskmove: true);
                    };
                    if (!PlayerModel.getInstance().inFb&& mapId != GRMap.instance.m_nCurMapID && MapModel.getInstance().dicMappoint.ContainsKey(mapId) && MapModel.getInstance().dicMappoint[mapId] != GRMap.instance.m_nCurMapID)
                    {
                        SelfRole.Transmit(toid: MapModel.getInstance().dicMappoint[mapId], after: afterTransmit, taskTrans: true);
                    }
                    else
                    {
                        SelfRole.WalkToMap(mapId, pos, afterTransmit, taskmove: true);
                    }
                    break;

                case TaskTargetType.COLLECT:

                    //Action afterTransmit_collect = () =>
                    //{
                    //    StateAutoMoveToPos.Instance.stopdistance = 0.3f;
                    //    SelfRole.moveto(mapId, pos, () => SelfRole.fsm.StartAutoCollect());
                    //};
                    Action afterTransmit_collect = () => SelfRole.WalkToMap(mapId, pos, SelfRole.fsm.StartAutoCollect, taskmove: true);
                    if (!PlayerModel.getInstance().inFb&& mapId != GRMap.instance.m_nCurMapID && MapModel.getInstance().dicMappoint.ContainsKey(mapId) && MapModel.getInstance().dicMappoint[mapId] != GRMap.instance.m_nCurMapID)
                    {
                        SelfRole.Transmit(toid: MapModel.getInstance().dicMappoint[mapId], after: afterTransmit_collect, taskTrans: true);
                    }
                    else
                    {
                        afterTransmit_collect();
                    }
                    break;

                case TaskTargetType.FB:
                    if (a3_liteMinimap.instance)
                    {
                        a3_liteMinimap.instance.ZidongTask = false;
                    }
                    int fbid = taskXml.getInt("target_param2");
                    //StateAutoMoveToPos.Instance.stopdistance = 0.3f;
                    if (GRMap.instance.m_nCurMapID == mapId || GameRoomMgr.getInstance().curRoom is PlotRoom)
                    {
                        SelfRole.moveto(mapId, pos, () => SelfRole.fsm.StartAutofight(), stopDis: 2.0f, taskmove: true /* 副本中开始战斗的停止距离 */);
                    }
                    else
                    {
                        Variant sendData = new Variant();
                        sendData["npcid"]    = 0;
                        sendData["ltpid"]    = fbid;
                        sendData["diff_lvl"] = 1;
                        int  levelinfoid = taskXml.getInt("level_info");
                        var  tainf       = XMLMgr.instance.GetSXML("task.level_info", "id==" + levelinfoid);
                        bool guide       = (taskXml.getInt("guide") == 1);
                        int  type        = taskXml.getInt("level_yw");
                        if (type == 1)
                        {
                            MsgBoxMgr.getInstance().showTask_fb_confirm(tainf.getString("title"), tainf.getString("desc"),
                                                                        guide, a3_ygyiwuModel.getInstance().GetYiWu_God(a3_ygyiwuModel.getInstance().nowGod_id).need_zdl, () => LevelProxy.getInstance().sendCreate_lvl(sendData));
                        }
                        else
                        {
                            MsgBoxMgr.getInstance().showTask_fb_confirm(tainf.getString("title"), tainf.getString("desc"),
                                                                        guide, () => LevelProxy.getInstance().sendCreate_lvl(sendData));
                        }
                    }
                    break;

                case TaskTargetType.WAIT_POINT_GIVEN:   /*在指定区域读条*/
                case TaskTargetType.GET_ITEM_GIVEN:     /*收集指定道具*/
                case TaskTargetType.KILL_MONSTER_GIVEN: /*打指定怪物*/
                    DealByType(taskData, checkItems);
                    break;
                }
                SXML _taskXML = XMLMgr.instance.GetSXML("task.Task", "id==" + taskData.taskId);
                if (SelfRole.UnderTaskAutoMove = taskData.targetType == TaskTargetType.KILL)
                {
                    StateAutoMoveToPos.Instance.stopdistance = 2.0f;
                    Vector3 fightOrigin = new Vector3(
                        x: _taskXML.getInt("target_coordinate_x"),
                        y: 0,
                        z: _taskXML.getInt("target_coordinate_y")
                        );
                    StateInit.Instance.Origin = fightOrigin;
                }
                if (taskData.targetType == TaskTargetType.KILL || taskData.targetType == TaskTargetType.DODAILY)
                {
                    int monId = _taskXML.getInt("target_param2");
                    if (monId != -1)
                    {
                        MonsterMgr._inst.taskMonId = monId;
                    }
                }
            }
            return(true);
        }
Ejemplo n.º 6
0
        private void DealByType(TaskData taskData, bool checkItems)
        {
            A3_TaskOpt.Instance.ResetStat();
            A3_TaskOpt.Instance.Reset(alsoHideGameObject: true, resetCase: 0);
            TaskTargetType taskTargetType = taskData.targetType;
            TaskType       taskType       = taskData.taskT;

            if (A3_TaskOpt.Instance == null)
            {
                //Debug.LogError("请将A3_TaskOpt预制件默认设为Active");
                return;// not init
            }
            if (!A3_TaskOpt.Instance.taskOptElement.ContainsKey(taskData.taskId))
            {
                A3_TaskOpt.Instance.taskOptElement[taskData.taskId] = new TaskOptElement(taskData.taskId);
            }
            A3_TaskOpt.Instance.curTaskId = taskData.taskId;
            if (taskTargetType == TaskTargetType.WAIT_POINT_GIVEN /* || TaskTargetType.MESSAGE_GIVEN_POS == taskTargetType*/)
            {
                Vector3 waitPosition = Vector3.zero;
                var     pointInfo    = A3_TaskModel.getInstance().GetTaskXML().GetNode("Task", "id==" + taskData.taskId);
                //A3_TaskOpt.Instance.IsOnTaskWait = true;
                A3_TaskOpt.Instance.LockStat = false;
                if (A3_TaskOpt.Instance.isWaiting)
                {
                    A3_TaskOpt.Instance.StopCD();
                }
                A3_TaskOpt.Instance.BtnWait.interactable = true;
                A3_TaskOpt.Instance.waitPosition         = new Vector3(pointInfo.getFloat("target_coordinate_x"), 0, pointInfo.getFloat("target_coordinate_y"));
                waitPosition = A3_TaskOpt.Instance.waitPosition;
                A3_TaskOpt.Instance.actionImage.sprite = GAMEAPI.ABUI_LoadSprite("icon_task_action_" + pointInfo.getInt("act_icon"));
                A3_TaskOpt.Instance.transform.FindChild("wait/action_text").GetComponent <Text>().text = pointInfo.getString("act_name");



                #region
                PlayerModel.getInstance().task_monsterIdOnAttack[taskData.taskId] = pointInfo.getInt("target_param2");
                //InterfaceMgr.getInstance().open(InterfaceMgr.TRANSMIT_PANEL, (ArrayList)new TransmitData
                //{
                //    mapId = pointInfo.getInt("tasking_map_id"),
                //    check_beforeShow = true,
                //    handle_customized_afterTransmit = () => SelfRole.WalkToMap(pointInfo.getInt("tasking_map_id"),
                //    waitPosition),
                //    targetPosition = waitPosition
                //});
                int mapId = pointInfo.getInt("tasking_map_id");
                if (MapModel.getInstance().dicMappoint.ContainsKey(mapId))
                {
                    int mapPoint = MapModel.getInstance().dicMappoint[mapId];
                    if (GRMap.instance.m_nCurMapID != mapId && GRMap.instance.m_nCurMapID != mapPoint)
                    {
                        SelfRole.Transmit(mapPoint, () => SelfRole.WalkToMap(mapId, waitPosition, taskmove: true), taskTrans: true);
                    }
                    else
                    {
                        SelfRole.WalkToMap(mapId, waitPosition, taskmove: true);
                    }
                }
            } // endif wait given point
            else if (taskTargetType == TaskTargetType.KILL_MONSTER_GIVEN)
            {
                A3_TaskOpt.Instance.IsOnKillMon = true;
                Vector3 waitPosition = Vector3.zero;
                SXML    monInfo      = A3_TaskModel.getInstance().GetTaskXML().GetNode("Task", "id==" + taskData.taskId);

                if (monInfo != null)
                {
                    //A3_TaskOpt.Instance.IsOnKillMon = true;
                    A3_TaskOpt.Instance.LockStat = false;
                    PlayerModel.getInstance().task_monsterIdOnAttack.Add(taskData.taskId, monInfo.getInt("target_param2"));
                    A3_TaskOpt.Instance.killPosition = new Vector3(monInfo.getFloat("target_coordinate_x"), 0, monInfo.getFloat("target_coordinate_y"));
                    waitPosition = A3_TaskOpt.Instance.killPosition;
                }

                //InterfaceMgr.getInstance().open(InterfaceMgr.TRANSMIT_PANEL, (ArrayList)new TransmitData
                //{
                //    mapId = monInfo.getInt("tasking_map_id"),
                //    check_beforeShow = true,
                //    handle_customized_afterTransmit = () => SelfRole.WalkToMap(monInfo.getInt("tasking_map_id"),
                //    waitPosition),
                //    targetPosition = waitPosition
                //});
                int mapId = monInfo.getInt("tasking_map_id");
                if (MapModel.getInstance().dicMappoint.ContainsKey(mapId))
                {
                    int mapPoint = MapModel.getInstance().dicMappoint[mapId];
                    if (GRMap.instance.m_nCurMapID != mapId && GRMap.instance.m_nCurMapID != mapPoint)
                    {
                        SelfRole.Transmit(mapPoint, () => SelfRole.WalkToMap(mapId, waitPosition, taskmove: true), taskTrans: true);
                    }
                    else
                    {
                        SelfRole.WalkToMap(mapId, waitPosition, taskmove: true);
                    }
                }
            } // endif kill given monster
            else if (taskTargetType == TaskTargetType.GET_ITEM_GIVEN)
            {
                int holdNum = 0, needNum = 0;
                //A3_TaskOpt.Instance.IsOnTaskWait = true;
                Action      uiHandle        = null;
                NpcShopData npcShopData     = null;
                SXML        taskinfoGetItem = A3_TaskModel.getInstance().GetTaskXML().GetNode("Task", "id==" + taskData.taskId);

                A3_TaskOpt.Instance.taskItemId = taskinfoGetItem.getUint("target_param2");
                needNum     = taskData.completion - taskData.taskRate;//taskinfoGetItem.getInt("target_param1");
                holdNum     = a3_BagModel.getInstance().getItemNumByTpid(A3_TaskOpt.Instance.taskItemId);
                uiHandle    = () => A3_TaskOpt.Instance?.ShowSubmitItem();
                npcShopData = A3_NPCShopModel.getInstance().GetDataByItemId(A3_TaskOpt.Instance.taskItemId);
                if (holdNum >= needNum)
                {
                    int   npcId   = taskinfoGetItem.getInt("complete_npc_id");
                    int   mapId   = taskinfoGetItem.getInt("tasking_map_id");
                    SXML  npcInfo = XMLMgr.instance.GetSXML("npcs").GetNode("npc", "id==" + npcId);
                    float mapY    = npcInfo.getFloat("location_height");
                    if (mapY < 0)
                    {
                        mapY = 0;
                    }
                    Vector3 npcPos = new Vector3(npcInfo.getFloat("location_x") / GameConstant.GEZI_TRANS_UNITYPOS, mapY / GameConstant.GEZI_TRANS_UNITYPOS, npcInfo.getFloat("location_y") / GameConstant.GEZI_TRANS_UNITYPOS);
                    //InterfaceMgr.getInstance().open(InterfaceMgr.TRANSMIT_PANEL, (ArrayList)new TransmitData
                    //{
                    //    mapId = mapId,
                    //    check_beforeShow = true,
                    //    handle_customized_afterTransmit = () =>
                    //    {
                    //        SelfRole.WalkToMap(mapId, npcPos, handle: () => { A3_TaskOpt.Instance.ShowSubmitItem(); }, stopDis: 2f);
                    //    }
                    //});
                    if (MapModel.getInstance().dicMappoint.ContainsKey(mapId))
                    {
                        int mapPoint = MapModel.getInstance().dicMappoint[mapId];
                        if (GRMap.instance.m_nCurMapID != mapId && GRMap.instance.m_nCurMapID != mapPoint)
                        {
                            SelfRole.Transmit(mapPoint, () => SelfRole.WalkToMap(mapId, npcPos, () => { A3_TaskOpt.Instance.ShowSubmitItem(); }, 2f, taskmove: true), taskTrans: true);
                        }
                        else
                        {
                            SelfRole.WalkToMap(mapId, npcPos, () => { A3_TaskOpt.Instance.ShowSubmitItem(); }, 2f, taskmove: true);
                        }
                    }
                }
                else if (npcShopData != null)
                {
                    //InterfaceMgr.getInstance().open(InterfaceMgr.TRANSMIT_PANEL, (ArrayList)new TransmitData
                    //{
                    //    mapId = npcShopData.mapId,
                    //    check_beforeShow = true,
                    //    handle_customized_afterTransmit = () => SelfRole.moveToNPc(npcShopData.mapId, npcShopData.npc_id)
                    //});
                    int mapId = npcShopData.mapId;
                    if (!PlayerModel.getInstance().inFb&& mapId != GRMap.instance.m_nCurMapID && MapModel.getInstance().dicMappoint.ContainsKey(mapId) && MapModel.getInstance().dicMappoint[mapId] != GRMap.instance.m_nCurMapID)
                    {
                        SelfRole.Transmit(toid: MapModel.getInstance().dicMappoint[mapId], after: () => SelfRole.moveToNPc(mapId, npcShopData.npc_id, taskmove: true), taskTrans: true);
                    }
                    else
                    {
                        SelfRole.moveToNPc(mapId, npcShopData.npc_id, taskmove: true);
                    }
                }
                else
                {
                    if (checkItems)
                    {
                        ArrayList data = new ArrayList();
                        data.Add(a3_BagModel.getInstance().getItemDataById(A3_TaskOpt.Instance.taskItemId));
                        //data.Add(null);
                        InterfaceMgr.getInstance().ui_async_open(InterfaceMgr.A3_ITEMLACK, data);
                    }
                }
            } // endif get given item
            #endregion
        }
Ejemplo n.º 7
0
        private void OnShowAwardInfo()
        {
            this.bg_task.gameObject.SetActive(true);
            this.conOption.parent.gameObject.SetActive(false);
            TaskData curTask = this.curTask;
            TaskType taskT   = curTask.taskT;
            Dictionary <uint, int> dictionary;

            if (taskT != TaskType.CLAN)
            {
                dictionary = this.tkModel.GetValueReward(curTask.taskId);
            }
            else
            {
                dictionary = this.tkModel.GetClanRewardDic(curTask.taskCount);
            }
            Dictionary <uint, int> itemReward  = this.tkModel.GetItemReward(curTask.taskId);
            List <a3_BagItemData>  equipReward = this.tkModel.GetEquipReward(curTask.taskId);
            bool guide = curTask.guide;

            if (guide)
            {
                this.btnNext.transform.FindChild("guide_task_info").gameObject.SetActive(true);
            }
            else
            {
                this.btnNext.transform.FindChild("guide_task_info").gameObject.SetActive(false);
            }
            bool flag = dictionary != null;

            if (flag)
            {
                bool flag2 = this.conIcon.childCount > 0;
                if (flag2)
                {
                    for (int i = 0; i < this.conIcon.childCount; i++)
                    {
                        UnityEngine.Object.Destroy(this.conIcon.GetChild(i).gameObject);
                    }
                }
                foreach (uint current in dictionary.Keys)
                {
                    a3_ItemData itemDataById = ModelBase <a3_BagModel> .getInstance().getItemDataById(current);

                    TaskType taskT2 = curTask.taskT;
                    if (taskT2 != TaskType.CLAN)
                    {
                        itemDataById.file = "icon/comm/0x" + current;
                    }
                    else
                    {
                        itemDataById.file = "icon/comm/1x" + current;
                    }
                    GameObject gameObject = IconImageMgr.getInstance().createA3ItemIcon(itemDataById, false, dictionary[current], 0.8f, false, -1, 0, false, false, false, -1, false, false);
                    Transform  transform  = gameObject.transform.FindChild("iconbor");
                    bool       flag3      = transform != null;
                    if (flag3)
                    {
                        transform.gameObject.SetActive(false);
                    }
                    GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(this.iconTemp);
                    gameObject.transform.SetParent(gameObject2.transform.FindChild("icon"), false);
                    gameObject2.transform.SetParent(this.conIcon, false);
                    gameObject2.name = itemDataById.tpid.ToString();
                    gameObject2.SetActive(true);
                    Image component = gameObject.GetComponent <Image>();
                    bool  flag4     = component != null;
                    if (flag4)
                    {
                        component.enabled = false;
                    }
                }
            }
            bool flag5 = equipReward != null;

            if (flag5)
            {
                foreach (a3_BagItemData current2 in equipReward)
                {
                    bool flag6 = !current2.isEquip;
                    if (!flag6)
                    {
                        GameObject gameObject3 = IconImageMgr.getInstance().createA3ItemIcon(current2.id, false, -1, 0.8f, false, -1, 0, false, false, false, false);
                        Transform  transform2  = gameObject3.transform.FindChild("iconborder");
                        bool       flag7       = transform2 != null;
                        if (flag7)
                        {
                            transform2.gameObject.SetActive(false);
                        }
                        GameObject gameObject4 = UnityEngine.Object.Instantiate <GameObject>(this.iconTemp);
                        gameObject3.transform.SetParent(gameObject4.transform.FindChild("icon"), false);
                        gameObject4.transform.SetParent(this.conIcon, false);
                        UnityEngine.Object arg_375_0 = gameObject4;
                        uint tpid = current2.tpid;
                        arg_375_0.name = tpid.ToString();
                        gameObject4.SetActive(true);
                        Image component2 = gameObject3.GetComponent <Image>();
                        bool  flag8      = component2 != null;
                        if (flag8)
                        {
                            component2.enabled = false;
                        }
                    }
                }
            }
            bool flag9 = itemReward != null;

            if (flag9)
            {
                foreach (uint current3 in itemReward.Keys)
                {
                    int        num         = itemReward[current3];
                    GameObject gameObject5 = IconImageMgr.getInstance().createA3ItemIcon(current3, true, num, 0.8f, false, -1, 0, false, false, false, false);
                    Transform  transform3  = gameObject5.transform.FindChild("iconborder");
                    bool       flag10      = transform3 != null;
                    if (flag10)
                    {
                        transform3.gameObject.SetActive(false);
                    }
                    GameObject gameObject6 = UnityEngine.Object.Instantiate <GameObject>(this.iconTemp);
                    gameObject5.transform.SetParent(gameObject6.transform.FindChild("icon"), false);
                    gameObject6.transform.SetParent(this.conIcon, false);
                    gameObject6.name = current3.ToString();
                    gameObject6.SetActive(true);
                    Image component3 = gameObject5.GetComponent <Image>();
                    bool  flag11     = component3 != null;
                    if (flag11)
                    {
                        component3.enabled = false;
                    }
                }
            }
        }
Ejemplo n.º 8
0
        private void OnLegion(Variant data)
        {
            int num = data["res"];

            debug.Log("军团消息" + data.dump());
            Variant variant = new Variant();

            switch (num)
            {
            case 1:
            {
                bool flag = data.ContainsKey("id");
                if (flag)
                {
                    A3_LegionData a3_LegionData = default(A3_LegionData);
                    a3_LegionData.id     = data["id"];
                    a3_LegionData.lvl    = data["lvl"];
                    a3_LegionData.clname = data["clname"];
                    a3_LegionData.name   = data["name"];
                    a3_LegionData.notice = data["notice"];
                    a3_LegionData.gold   = data["money"];
                    a3_LegionData.plycnt = data["plycnt"];
                    a3_LegionData.exp    = data["clan_pt"];
                    bool flag2 = data.ContainsKey("ol_cnt");
                    if (flag2)
                    {
                        a3_LegionData.ol_cnt = data["ol_cnt"];
                    }
                    bool flag3 = data.ContainsKey("combpt");
                    if (flag3)
                    {
                        a3_LegionData.combpt = data["combpt"];
                    }
                    bool flag4 = data.ContainsKey("rankidx");
                    if (flag4)
                    {
                        a3_LegionData.rankidx = data["rankidx"];
                    }
                    bool flag5 = data.ContainsKey("clanc");
                    if (flag5)
                    {
                        a3_LegionData.clanc = data["clanc"];
                    }
                    a3_LegionData.anabasis_tm = data["anabasis_tm"];
                    ModelBase <A3_LegionModel> .getInstance().myLegion = a3_LegionData;

                    int num2 = data["direct_join"];
                    ModelBase <A3_LegionModel> .getInstance().CanAutoApply = (num2 == 1);

                    ModelBase <A3_LegionModel> .getInstance().SetMyLegion(a3_LegionData.lvl);

                    ModelBase <A3_LegionModel> .getInstance().donate = data["donate"];

                    this.gold = a3_LegionData.gold;
                    this.lvl  = a3_LegionData.lvl;
                }
                else
                {
                    ModelBase <A3_LegionModel> .getInstance().myLegion = default(A3_LegionData);
                }
                base.dispatchEvent(GameEvent.Create(1u, this, data, false));
                break;
            }

            case 2:
                base.dispatchEvent(GameEvent.Create(2u, this, data, false));
                base.removeEventListener(24u, new Action <GameEvent>(a3_legion.mInstance.SetCheckName));
                break;

            case 3:
            {
                int num3 = data["clid"];
                base.dispatchEvent(GameEvent.Create(3u, this, data, false));
                flytxt.instance.fly("申请成功!", 0, default(Color), null);
                break;
            }

            case 4:
                base.dispatchEvent(GameEvent.Create(4u, this, data, false));
                break;

            case 5:
                ModelBase <A3_LegionModel> .getInstance().myLegion.gold = data["money"];

                ModelBase <A3_LegionModel> .getInstance().myLegion.lvl = data["lvl"];

                ModelBase <A3_LegionModel> .getInstance().myLegion.exp = 0;

                ModelBase <A3_LegionModel> .getInstance().SetMyLegion(ModelBase <A3_LegionModel> .getInstance().myLegion.lvl);

                base.dispatchEvent(GameEvent.Create(1u, this, data, false));
                flytxt.instance.fly("升级骑士团成功!", 0, default(Color), null);
                break;

            case 6:
            {
                int num4 = data["money"];
                flytxt.instance.fly("获得了" + num4 / 1000 + "点贡献度", 0, default(Color), null);
                this.SendGetInfo();
                break;
            }

            case 8:
                this.SendGetMember();
                break;

            case 9:
            {
                ModelBase <A3_LegionModel> .getInstance().myLegion = default(A3_LegionData);

                base.dispatchEvent(GameEvent.Create(9u, this, data, false));
                TaskData expr_4C9 = a3_task_auto.instance.executeTask;
                bool     flag6    = expr_4C9 != null && expr_4C9.taskT == TaskType.CLAN;
                if (flag6)
                {
                    SelfRole.fsm.Stop();
                    flytxt.instance.fly("你已退出军团无法继续进行任务", 0, default(Color), null);
                }
                else
                {
                    flytxt.instance.fly("您已成功退出骑士团!", 0, default(Color), null);
                }
                break;
            }

            case 10:
            {
                int  key   = data["cid"];
                bool flag7 = ModelBase <A3_LegionModel> .getInstance().members.ContainsKey(key);

                if (flag7)
                {
                    ModelBase <A3_LegionModel> .getInstance().members.Remove(key);
                }
                base.dispatchEvent(GameEvent.Create(14u, this, data, false));
                break;
            }

            case 11:
            {
                int num5 = data["direct_join"];
                ModelBase <A3_LegionModel> .getInstance().CanAutoApply = (num5 == 1);

                base.dispatchEvent(GameEvent.Create(11u, this, data, false));
                break;
            }

            case 12:
                base.dispatchEvent(GameEvent.Create(12u, this, data, false));
                break;

            case 14:
                variant = data["pls"];
                ModelBase <A3_LegionModel> .getInstance().members.Clear();

                foreach (Variant current in variant._arr)
                {
                    ModelBase <A3_LegionModel> .getInstance().AddMember(current);
                }
                base.dispatchEvent(GameEvent.Create(14u, this, data, false));
                break;

            case 15:
            {
                bool flag8 = data != null && data.ContainsKey("clanlog_list") && data["clanlog_list"]._arr.Count > 0;
                if (flag8)
                {
                    ModelBase <A3_LegionModel> .getInstance().AddLog(data);
                }
                base.dispatchEvent(GameEvent.Create(15u, this, data, false));
                break;
            }

            case 16:
                ModelBase <A3_LegionModel> .getInstance().RefreshApplicant(data);

                base.dispatchEvent(GameEvent.Create(16u, this, data, false));
                break;

            case 17:
                ModelBase <A3_LegionModel> .getInstance().list.Clear();

                ModelBase <A3_LegionModel> .getInstance().list2.Clear();

                variant = data["info"];
                foreach (Variant current2 in variant._arr)
                {
                    A3_LegionData item = default(A3_LegionData);
                    item.id          = current2["id"];
                    item.clname      = current2["clname"];
                    item.combpt      = current2["combpt"];
                    item.lvl         = current2["lvl"];
                    item.name        = current2["name"];
                    item.plycnt      = current2["plycnt"];
                    item.direct_join = current2["direct_join"];
                    item.huoyue      = current2["last_active"];
                    ModelBase <A3_LegionModel> .getInstance().list.Add(item);

                    ModelBase <A3_LegionModel> .getInstance().list2.Add(item);
                }
                base.dispatchEvent(GameEvent.Create(17u, this, data, false));
                break;

            case 18:
                base.dispatchEvent(GameEvent.Create(18u, this, data, false));
                break;

            case 22:
                this.SendGetInfo();
                base.dispatchEvent(GameEvent.Create(22u, this, data, false));
                flytxt.instance.fly("您已成功解散骑士团!", 0, default(Color), null);
                break;

            case 24:
                base.dispatchEvent(GameEvent.Create(24u, this, data, false));
                break;

            case 25:
                flytxt.instance.fly("军团buff提升成功", 0, default(Color), null);
                break;

            case 26:
                base.dispatchEvent(GameEvent.Create(26u, this, data, false));
                break;

            case 32:
            {
                bool flag9 = ModelBase <A3_LegionModel> .getInstance().myLegion.id != 0;

                if (flag9)
                {
                    bool flag10 = ModelBase <A3_TaskModel> .getInstance() == null || ModelBase <A3_TaskModel> .getInstance().GetClanTask() == null;

                    int taskCount;
                    if (flag10)
                    {
                        taskCount = 9;
                    }
                    else
                    {
                        taskCount = ModelBase <A3_TaskModel> .getInstance().GetClanTask().taskCount;
                    }
                    Dictionary <uint, int> clanRewardDic = ModelBase <A3_TaskModel> .getInstance().GetClanRewardDic(taskCount);

                    flytxt.instance.StopDelayFly();
                    bool flag11 = data.ContainsKey("money");
                    if (flag11)
                    {
                        bool flag12 = clanRewardDic.ContainsKey((uint)A3_TaskModel.REWARD_CLAN_MONEY);
                        if (flag12)
                        {
                            flytxt.instance.AddDelayFlytxt("军团资金+" + clanRewardDic[(uint)A3_TaskModel.REWARD_CLAN_MONEY]);
                        }
                        ModelBase <A3_LegionModel> .getInstance().myLegion.gold = data["money"]._int;
                    }
                    bool flag13 = data.ContainsKey("clan_pt");
                    if (flag13)
                    {
                        bool flag14 = clanRewardDic.ContainsKey((uint)A3_TaskModel.REWARD_CLAN_EXP);
                        if (flag14)
                        {
                            flytxt.instance.AddDelayFlytxt("军团经验+" + clanRewardDic[(uint)A3_TaskModel.REWARD_CLAN_EXP]);
                        }
                        ModelBase <A3_LegionModel> .getInstance().myLegion.clan_pt = data["clan_pt"]._int;
                    }
                    bool flag15 = data.ContainsKey("donate");
                    if (flag15)
                    {
                        bool flag16 = clanRewardDic.ContainsKey((uint)A3_TaskModel.REWARD_CLAN_DONATE);
                        if (flag16)
                        {
                            flytxt.instance.AddDelayFlytxt("军团贡献+" + clanRewardDic[(uint)A3_TaskModel.REWARD_CLAN_DONATE]);
                        }
                        ModelBase <A3_LegionModel> .getInstance().donate = data["donate"]._int;
                    }
                    bool flag17 = data.ContainsKey("active");
                    if (flag17)
                    {
                        ModelBase <A3_LegionModel> .getInstance().myLegion.huoyue = data["active"]._int;
                    }
                    flytxt.instance.StartDelayFly(0f, 0.2f);
                }
                break;
            }

            case 33:
            {
                uint   clanid = data["clanid"];
                string text   = data["name"];
                string text2  = data["clan_name"];
                int    num6   = data["clan_lvl"];
                bool   isOn   = a3_legion.mInstance.dic0.isOn;
                if (isOn)
                {
                    this.SendAcceptInvite(clanid, true);
                    flytxt.instance.fly("您已接受军团邀请!", 0, default(Color), null);
                    BaseProxy <a3_dartproxy> .getInstance().sendDartGo();

                    base.dispatchEvent(GameEvent.Create(19u, this, data, false));
                }
                else
                {
                    MsgBoxMgr.getInstance().showConfirm(string.Concat(new object[]
                        {
                            text,
                            " 邀请你加入 ",
                            num6,
                            "级骑士团 ",
                            text2
                        }), delegate
                        {
                            this.SendAcceptInvite(clanid, true);
                        }, delegate
                        {
                            this.SendAcceptInvite(clanid, false);
                        }, 0);
                }
                base.dispatchEvent(GameEvent.Create(33u, this, data, false));
                break;
            }

            case 34:
            {
                bool flag18 = data["approved"];
                bool flag19 = flag18;
                if (flag19)
                {
                    BaseProxy <A3_LegionProxy> .getInstance().SendGetInfo();
                }
                BaseProxy <a3_dartproxy> .getInstance().sendDartGo();

                base.dispatchEvent(GameEvent.Create(34u, this, data, false));
                break;
            }

            case 35:
            {
                BaseProxy <A3_LegionProxy> .getInstance().SendGetMember();

                int    num7   = data["cid"];
                int    num8   = data["clanc"];
                int    num9   = data["oldclanc"];
                string str    = data["name"];
                string str2   = string.Empty;
                bool   flag20 = num7 == (int)ModelBase <PlayerModel> .getInstance().cid;

                if (flag20)
                {
                    str = "您";
                }
                bool flag21 = num9 > num8;
                if (flag21)
                {
                    str2 = "的军团职位被降为:";
                }
                else
                {
                    str2 = "的军团职位被升为:";
                }
                flytxt.instance.fly(str + str2 + ModelBase <A3_LegionModel> .getInstance().GetClancToName(num8), 0, default(Color), null);
                break;
            }

            case 36:
            {
                BaseProxy <A3_LegionProxy> .getInstance().SendGetInfo();

                bool flag22 = a3_buff.instance != null;
                if (flag22)
                {
                    a3_buff.instance.Quited();
                }
                break;
            }

            case 37:
                flytxt.instance.fly("您已成功加入骑士团!", 0, default(Color), null);
                BaseProxy <a3_dartproxy> .getInstance().sendDartGo();

                base.dispatchEvent(GameEvent.Create(2u, this, data, false));
                break;
            }
        }
Ejemplo n.º 9
0
        void Update()
        {
            if (GRMap.grmap_loading || SelfRole.s_bInTransmit)
            {
                if (isWaiting)
                {
                    StopCD();
                }
                return;
            }
            if (SelfRole._inst == null || a1_gamejoy.inst_joystick != null && a1_gamejoy.inst_joystick.moveing)
            {
                if (isWaiting)
                {
                    StopCD();
                }
                Reset(alsoHideGameObject: true);
                return;
            }
            TaskData curTask = A3_TaskModel.getInstance().curTask;

            if (curTask == null)
            {
                return;
            }
            if (!LockStat)
            {
                IsOnKillMon  = !curTask.isComplete && curTask.targetType == TaskTargetType.KILL_MONSTER_GIVEN;
                IsOnTaskWait = !curTask.isComplete && curTask.targetType == TaskTargetType.WAIT_POINT_GIVEN;
            }
            //if (IsOnKillMon || IsOnTaskWait)
            //{
            Vector3 curPos = new Vector3(SelfRole._inst.m_curModel.position.x, 0, SelfRole._inst.m_curModel.position.z);

            if (waitPosition != Vector3.zero)
            {
                if (Vector3.Distance(curPos, waitPosition) > waitThresholdDistance)
                {
                    if (isWaiting)
                    {
                        StopCD();
                    }
                    Reset(alsoHideGameObject: true, resetCase: 1);
                }
            }
            if (killPosition != Vector3.zero)
            {
                if (Vector3.Distance(curPos, killPosition) > killThresholdDistance)
                {
                    if (isWaiting)
                    {
                        StopCD();
                    }
                    Reset(alsoHideGameObject: true, resetCase: 2);
                }
            }
            if (IsOnTaskWait)
            {
                if (waitPosition == Vector3.zero)
                {
                    waitPosition = A3_TaskModel.getInstance().GetTaskTargetPos(curTask.taskId);
                }
                if (waitPosition != Vector3.zero)
                {
                    if (Vector3.Distance(curPos, waitPosition) < waitThresholdDistance)
                    {
                        LockStat     = true;
                        IsOnTaskWait = false;
                        //tfParentWait.gameObject.SetActive(true);
                        ArrayList arr = new ArrayList();
                        arr.Add(tfParentWait.gameObject);
                        InterfaceMgr.getInstance().ui_async_open(InterfaceMgr.NEWBIE, arr);//引导触发
                        OnWaitBtnClick(A3_TaskModel.getInstance().GetTaskDataById(curTaskId));
                        SelfRole._inst.m_curAni.SetBool(EnumAni.ANI_RUN, false);
                        SelfRole.ChangeRideAniState(false);
                        if (SelfRole._inst.m_moveAgent.isActiveAndEnabled)
                        {
                            SelfRole._inst.m_moveAgent.Stop();
                        }
                        haveEnteredWaitPosition = true;
                    }
                    else if (haveEnteredWaitPosition)
                    {
                        Reset(alsoHideGameObject: true, resetCase: 2);
                        haveEnteredWaitPosition = false;
                    }
                }
            }
            if (IsOnKillMon && killPosition != Vector3.zero)
            {
                if (Vector3.Distance(curPos, killPosition) < killThresholdDistance)
                {
                    //IsOnKillMon = false;
                    int curTaskId = a3_task_auto.instance.executeTask?.taskId ?? A3_TaskModel.getInstance().curTask.taskId;
                    SelfRole.fsm.Stop();
                    if (taskOptElement.ContainsKey(curTaskId))
                    {
                        LockStat    = true;
                        IsOnKillMon = false;
                        if (!taskOptElement[curTaskId].isTaskMonsterAlive)
                        {
                            winKillMon.SetActive(true);
                            OnWaitBtnClick1(A3_TaskModel.getInstance().GetTaskDataById(curTaskId));
                        }


                        //else
                        //    if (!SelfRole.fsm.Autofighting)
                        //        SelfRole.fsm.StartAutofight();
                    }
                    //if (SelfRole._inst.m_moveAgent.isActiveAndEnabled)
                }
                else
                {
                    winKillMon.SetActive(false);
                }
            }
            //}
        }
Ejemplo n.º 10
0
        private void OnCheck(GameEvent e)
        {
            Variant data = e.data;

            if (data == null)
            {
                return;
            }
            if (data.ContainsKey("change_task") && data["change_task"].Length > 0)
            {
                Variant task = data["change_task"][0];
                if (task.ContainsKey("id"))
                {
                    int      taskId   = task["id"]._int;
                    TaskData taskData = A3_TaskModel.getInstance().GetTaskDataById(taskId);
                    if (taskOptElement.ContainsKey(taskId) && task.ContainsKey("cnt") && task["cnt"]._int >= taskData.completion)
                    {
                        taskOptElement[taskId].Set(
                            isKeepingKillMon: false,
                            isTaskMonsterAlive: false,
                            timeKillTerminal: -1
                            );
                        if (taskOptElement.ContainsKey(taskId))
                        {
                            taskOptElement[taskId].Set(isTaskMonsterAlive: false);
                            taskOptElement[taskId].liteMinimapTaskTimer.gameObject?.SetActive(false);
                            taskOptElement.Remove(taskId);
                        }
                        //taskOptElement[taskId].liteMinimapTaskTimer.gameObject.SetActive(false);
                    }
                    else if (taskData.targetType == TaskTargetType.KILL_MONSTER_GIVEN)
                    {
                        uint lose_tm = task.ContainsKey("lose_tm") ? task["lose_tm"]._uint : 0;
                        taskOptElement[taskId].Set(
                            isKeepingKillMon: true,
                            isTaskMonsterAlive: taskData.release_tm > lose_tm - muNetCleint.instance.CurServerTimeStamp,
                            timeKillTerminal: lose_tm
                            );
                    }
                }
            }
            else
            {
                int            taskId         = 0;
                Variant        misData        = new Variant();
                TaskTargetType taskTargetType = default(TaskTargetType);
                if (data.ContainsKey("mlmis"))
                {
                    taskTargetType = A3_TaskModel.getInstance().GetTaskDataById((taskId = (misData = data["mlmis"])["id"]._int)).targetType;
                }
                if (data.ContainsKey("bmis"))
                {
                    misData = data["bmis"];
                    if (misData != null)
                    {
                        taskId = misData["id"]._int;
                        if (taskId > 0)
                        {
                            TaskData tData = A3_TaskModel.getInstance().GetTaskDataById(taskId);
                            if (tData != null)
                            {
                                taskTargetType = tData.targetType;
                            }
                        }
                    }
                }
                if (data.ContainsKey("dmis"))
                {
                    taskTargetType = A3_TaskModel.getInstance().GetTaskDataById((taskId = (misData = data["dmis"])["id"]._int)).targetType;
                }
                if (data.ContainsKey("emis"))
                {
                    taskTargetType = A3_TaskModel.getInstance().GetTaskDataById((taskId = (misData = data["emis"])["id"]._int)).targetType;
                }
                if (data.ContainsKey("cmis"))
                {
                    taskTargetType = A3_TaskModel.getInstance().GetTaskDataById((taskId = (misData = data["cmis"])["id"]._int)).targetType;
                }
                if (taskTargetType == TaskTargetType.KILL_MONSTER_GIVEN)
                {
                    if (misData != null)
                    {
                        long timeKillTerminal;
                        if (misData.ContainsKey("cnt") && misData["cnt"] < A3_TaskModel.getInstance().GetTaskDataById(taskId).completion&& misData.ContainsKey("lose_tm"))
                        {
                            timeKillTerminal = misData["lose_tm"]._int64;
                        }
                        else
                        {
                            timeKillTerminal = 0;
                        }
                        if (taskOptElement.ContainsKey(taskId))
                        {
                            taskOptElement[taskId].Set(isKeepingKillMon: true, isTaskMonsterAlive: false, timeKillTerminal: timeKillTerminal);
                        }
                    }
                }
                else if (taskTargetType == TaskTargetType.GET_ITEM_GIVEN)
                {
                    taskItemId = (uint)A3_TaskModel.getInstance().GetTaskDataById(taskId).completionAim;//GetTaskXML().GetNode("task", "id==" + taskId).getUint("target_param2");
                }
            }
            if (!IsInvoking("RunTimer"))
            {
                InvokeRepeating("RunTimer", 0f, 1.0f);
            }
        }
Ejemplo n.º 11
0
        private void OnNpcTaskStateChange(GameEvent e)
        {
            Variant data = e.data;
            int     num  = data["npcId"];
            int     num2 = data["taskId"];
            int     num3 = data["taskState"];
            bool    flag = !this.dicNpcTaskState.ContainsKey(num);

            if (flag)
            {
                Dictionary <int, int> dictionary = new Dictionary <int, int>();
                dictionary[num2]          = num3;
                this.dicNpcTaskState[num] = dictionary;
            }
            else
            {
                bool flag2 = num3 == 0;
                if (flag2)
                {
                    this.dicNpcTaskState[num].Remove(num2);
                }
                else
                {
                    this.dicNpcTaskState[num][num2] = num3;
                }
            }
            NpcRole    role      = this.getRole(num);
            List <int> list      = this.dicNpcTaskState[num].Values.ToList <int>();
            int        taskState = 0;
            bool       flag3     = list.Count > 0;

            if (flag3)
            {
                taskState = list.Max <int>();
            }
            this.SetNpcTaskState(role, (NpcTaskState)taskState);
            TaskData taskDataById = ModelBase <A3_TaskModel> .getInstance().GetTaskDataById(num2);

            bool flag4 = taskDataById != null;

            if (flag4)
            {
                bool topShowOnLiteminimap = taskDataById.topShowOnLiteminimap;
                if (topShowOnLiteminimap)
                {
                    a3_liteMinimap expr_11C = a3_liteMinimap.instance;
                    if (expr_11C != null)
                    {
                        expr_11C.SetTopShow(num2);
                    }
                }
                else
                {
                    a3_liteMinimap expr_130 = a3_liteMinimap.instance;
                    if (expr_130 != null)
                    {
                        expr_130.RefreshTaskPage(num2);
                    }
                }
            }
        }
Ejemplo n.º 12
0
        //显示奖励信息
        private void OnShowAwardInfo()
        {
            //TODO 假如有物品, 则创icon
            bg_task.gameObject.SetActive(true);
            conOption.parent.gameObject.SetActive(false);
            //int selectId = tkModel.SelectTaskId;
            TaskData taskData = /*tkModel.*/ curTask;
            Dictionary <uint, int> dicValueReward;

            switch (taskData.taskT)
            {
            case TaskType.CLAN:
                dicValueReward = tkModel.GetClanRewardDic(taskData.taskCount);
                break;

            default:
                dicValueReward = tkModel.GetValueReward(taskData.taskId);
                break;
            }
            Dictionary <uint, int> dicItemReward   = tkModel.GetItemReward(taskData.taskId);
            List <a3_BagItemData>  listEquipReward = tkModel.GetEquipReward(taskData.taskId);

            if (taskData.guide)
            {
                btnNext.transform.FindChild("guide_task_info").gameObject.SetActive(true);
            }
            else
            {
                btnNext.transform.FindChild("guide_task_info").gameObject.SetActive(false);
            }

            if (dicValueReward != null)
            {
                if (conIcon.childCount > 0)
                {
                    for (int i = 0; i < conIcon.childCount; i++)
                    {
                        Destroy(conIcon.GetChild(i).gameObject);
                    }
                }
                foreach (var v in dicValueReward.Keys)
                {
                    a3_ItemData item = a3_BagModel.getInstance().getItemDataById(v);
                    switch (taskData.taskT)
                    {
                    default:
                        item.file = "icon_comm_0x" + v;
                        break;

                    case TaskType.CLAN:
                        item.file = "icon_comm_1x" + v;
                        break;
                    }
                    GameObject icon = IconImageMgr.getInstance().createA3ItemIcon(item, false, dicValueReward[v], 0.8f);
                    var        bd   = icon.transform.FindChild("iconbor");
                    if (bd != null)
                    {
                        bd.gameObject.SetActive(false);
                    }

                    GameObject rootClon = GameObject.Instantiate(iconTemp) as GameObject;

                    icon.transform.SetParent(rootClon.transform.FindChild("icon"), false);
                    rootClon.transform.SetParent(conIcon, false);

                    rootClon.name = item.tpid.ToString();
                    rootClon.SetActive(true);

                    var iimg = icon.GetComponent <Image>();
                    if (iimg != null)
                    {
                        iimg.enabled = false;
                    }
                }
            }

            if (listEquipReward != null)
            {
                foreach (a3_BagItemData v in listEquipReward)
                {
                    if (!v.isEquip)
                    {
                        continue;
                    }

                    GameObject icon = IconImageMgr.getInstance().createA3ItemIcon(v.id, false, -1, 0.8f);
                    var        bd   = icon.transform.FindChild("iconborder");
                    if (bd != null)
                    {
                        bd.gameObject.SetActive(false);
                    }
                    GameObject rootClon = GameObject.Instantiate(iconTemp) as GameObject;

                    icon.transform.SetParent(rootClon.transform.FindChild("icon"), false);
                    rootClon.transform.SetParent(conIcon, false);

                    rootClon.name = v.tpid.ToString();
                    rootClon.SetActive(true);

                    var iimg = icon.GetComponent <Image>();
                    if (iimg != null)
                    {
                        iimg.enabled = false;
                    }
                }
            }

            if (dicItemReward != null)
            {
                foreach (uint key in dicItemReward.Keys)
                {
                    int        num  = dicItemReward[key];
                    GameObject icon = IconImageMgr.getInstance().createA3ItemIcon(
                        key, true, num, 0.8F, false);
                    var bd = icon.transform.FindChild("iconborder");
                    if (bd != null)
                    {
                        bd.gameObject.SetActive(false);
                    }

                    GameObject rootClon = GameObject.Instantiate(iconTemp) as GameObject;

                    icon.transform.SetParent(rootClon.transform.FindChild("icon"), false);
                    rootClon.transform.SetParent(conIcon, false);

                    rootClon.name = key.ToString();
                    rootClon.SetActive(true);

                    var iimg = icon.GetComponent <Image>();
                    if (iimg != null)
                    {
                        iimg.enabled = false;
                    }
                }
            }
        }
Ejemplo n.º 13
0
        private void refresh()
        {
            TaskData dailyTask = ModelBase <A3_TaskModel> .getInstance().GetDailyTask();

            bool flag = dailyTask != null;

            if (flag)
            {
                this.cs_rotine.text = string.Concat(new object[]
                {
                    "(",
                    ModelBase <A3_TaskModel> .getInstance().GetTaskMaxCount(dailyTask.taskId) - dailyTask.taskCount,
                    "/",
                    ModelBase <A3_TaskModel> .getInstance().GetTaskMaxCount(dailyTask.taskId),
                    ")"
                });
                base.transform.FindChild("cells/scroll/content/routine").gameObject.SetActive(true);
            }
            else
            {
                base.transform.FindChild("cells/scroll/content/routine").gameObject.SetActive(false);
            }
            Variant variant = SvrLevelConfig.instacne.get_level_data(102u);
            int     num     = variant["daily_cnt"];
            int     num2    = 0;
            bool    flag2   = MapModel.getInstance().dFbDta.ContainsKey(102);

            if (flag2)
            {
                num2 = Mathf.Min(MapModel.getInstance().dFbDta[102].cycleCount, num);
            }
            bool flag3 = FunctionOpenMgr.instance.Check(FunctionOpenMgr.GOLD_DUNGEON, false) && num != num2;

            if (flag3)
            {
                this.cs_goldfb.text = string.Concat(new object[]
                {
                    "(",
                    num - num2,
                    "/",
                    num,
                    ")"
                });
                base.transform.FindChild("cells/scroll/content/goldfb").gameObject.SetActive(true);
            }
            else
            {
                base.transform.FindChild("cells/scroll/content/goldfb").gameObject.SetActive(false);
            }
            bool flag4 = ModelBase <A3_VipModel> .getInstance().Level > 0;

            int num3;

            if (flag4)
            {
                num3 = ModelBase <A3_VipModel> .getInstance().vip_exchange_num(3);
            }
            else
            {
                num3 = 10;
            }
            ExchangeModel instance = ModelBase <ExchangeModel> .getInstance();

            bool flag5 = (long)num3 - (long)((ulong)instance.Count) > 0L;

            if (flag5)
            {
                this.cs_getMoney.text = string.Concat(new object[]
                {
                    "(",
                    (long)num3 - (long)((ulong)instance.Count),
                    "/",
                    num3,
                    ")"
                });
                base.transform.FindChild("cells/scroll/content/dianjin").gameObject.SetActive(true);
            }
            else
            {
                base.transform.FindChild("cells/scroll/content/dianjin").gameObject.SetActive(false);
            }
        }