Exemple #1
0
        //-------------------------------------------------------------------------
        public override void onInit()
        {
            TbDataTaskKillMonster = EbDataMgr.Instance.getData <TbDataTaskKillMonster>(TaskData.task_id);
            ListMonsterData       = new List <OneMonsterData>();

            if (TaskData.task_state == TaskState.Init)
            {
                if (TbDataTask.AcceptNpcId == 0)
                {
                    TaskData.task_state = TaskState.Doing;
                }
                else
                {
                    TaskData.task_state = TaskState.CanDo;
                }
            }

            _loadTaskData();

            if (TaskData.task_state == TaskState.Doing && _isDone())
            {
                TaskData.task_state = TaskState.Done;
            }

            if (TaskData.task_state == TaskState.Done && TbDataTask.FinishNpcId == 0)
            {
                TaskData.task_state = TaskState.Release;
                TaskMgr._serverAddDirtyTask(this);
            }
        }
Exemple #2
0
        //-------------------------------------------------------------------------
        public TaskBase(TaskMgr task_mgr, Entity et, int task_id)
        {
            TaskData task_data = new TaskData();
            task_data.task_id = task_id;
            task_data.task_state = TaskState.Init;
            task_data.task_data = new Dictionary<byte, string>();

            _init(task_mgr, et, task_data);
        }
Exemple #3
0
        //-------------------------------------------------------------------------
        public TaskBase(TaskMgr task_mgr, Entity et, int task_id)
        {
            TaskData task_data = new TaskData();

            task_data.task_id    = task_id;
            task_data.task_state = TaskState.Init;
            task_data.task_data  = new Dictionary <byte, string>();

            _init(task_mgr, et, task_data);
        }
Exemple #4
0
        //-------------------------------------------------------------------------
        public override void c2sTaskFinish()
        {
            if (TaskData.task_state == TaskState.Doing)
            {
                TaskData.task_state = TaskState.Done;
                TaskMgr._serverAddDirtyTask(this);

                if (TbDataTask.FinishNpcId == 0)
                {
                    TaskData.task_state = TaskState.Release;
                    TaskMgr._serverAddDirtyTask(this);
                }
            }
        }
Exemple #5
0
        //-------------------------------------------------------------------------
        void _init(TaskMgr task_mgr, Entity et, TaskData task_data)
        {
            TaskMgr = task_mgr;
            Entity  = et;

            TaskData = task_data;
            if (TaskData.task_data == null)
            {
                TaskData.task_data = new Dictionary <byte, string>();
            }

            TbDataTask = EbDataMgr.Instance.getData <TbDataTask>(TaskData.task_id);

            onInit();
        }
Exemple #6
0
        //-------------------------------------------------------------------------
        public override void onInit()
        {
            CoPlayer = Entity.getComponent <CellPlayer <DefPlayer> >();
            TbDataTaskCollectItem = EbDataMgr.Instance.getData <TbDataTaskCollectItem>(TaskData.task_id);
            ListItemData          = new List <OneItemData>();

            if (TaskData.task_state == TaskState.Init)
            {
                if (TbDataTask.AcceptNpcId == 0)
                {
                    TaskData.task_state = TaskState.Doing;
                }
                else
                {
                    TaskData.task_state = TaskState.CanDo;
                }
            }

            // 主动查询一次背包中是否有所需任务物品
            foreach (var i in TbDataTaskCollectItem.ListCollectItem)
            {
                OneItemData one_item_data = new OneItemData();
                one_item_data.item_id   = i.item_id;
                one_item_data.num_total = i.count;
                int num_cur = CoPlayer.CoBag.getItemNumByItemId(i.item_id);
                if (num_cur > i.count)
                {
                    num_cur = i.count;
                }
                one_item_data.num_cur = num_cur;

                ListItemData.Add(one_item_data);
            }

            if (TaskData.task_state == TaskState.Doing && _isDone())
            {
                TaskData.task_state = TaskState.Done;
            }

            _saveTaskData();

            if (TaskData.task_state == TaskState.Done && TbDataTask.FinishNpcId == 0)
            {
                TaskData.task_state = TaskState.Release;
                TaskMgr._serverAddDirtyTask(this);
            }
        }
Exemple #7
0
        //-------------------------------------------------------------------------
        public override void handleEvent(object sender, EntityEvent e)
        {
            if (e is EvCellBagAddItem)
            {
                // CellBag,添加道具消息
                var ev = (EvCellBagAddItem)e;

                // 主动查询一次背包中是否有所需任务物品
                foreach (var i in TbDataTaskCollectItem.ListCollectItem)
                {
                    int num_cur = CoPlayer.CoBag.getItemNumByItemId(i.item_id);
                    if (num_cur > i.count)
                    {
                        num_cur = i.count;
                    }

                    foreach (var j in ListItemData)
                    {
                        if (j.item_id == i.item_id)
                        {
                            if (j.num_cur != num_cur)
                            {
                                j.num_cur = num_cur;
                                _saveTaskData();
                                TaskMgr._serverAddDirtyTask(this);
                            }
                            break;
                        }
                    }
                }

                if (TaskData.task_state == TaskState.Doing && _isDone())
                {
                    TaskData.task_state = TaskState.Done;
                    TaskMgr._serverAddDirtyTask(this);
                }

                if (TaskData.task_state == TaskState.Done && TbDataTask.FinishNpcId == 0)
                {
                    TaskData.task_state = TaskState.Release;
                    TaskMgr._serverAddDirtyTask(this);
                }
            }
        }
Exemple #8
0
        //-------------------------------------------------------------------------
        public override void init()
        {
            EbLog.Note("ClientPlayerTask.init()");

            DefaultRpcSession.defRpcMethod <PlayerTaskResponse>(
                (ushort)MethodType.s2cPlayerTaskResponse, s2cPlayerTaskResponse);
            DefaultRpcSession.defRpcMethod <PlayerTaskNotify>(
                (ushort)MethodType.s2cPlayerTaskNotify, s2cPlayerTaskNotify);

            Entity et_app = EntityMgr.findFirstEntityByType <EtApp>();

            CoApp    = et_app.getComponent <ClientApp <DefApp> >();
            CoPlayer = Entity.getComponent <ClientPlayer <DefPlayer> >();

            TaskMgr = new TaskMgr(Entity, true);
            TaskMgr.regTaskFactory(new TaskFactoryCollectItem());
            TaskMgr.regTaskFactory(new TaskFactoryDialogue());
            TaskMgr.regTaskFactory(new TaskFactoryKillMonster());
            TaskMgr.OnClientTaskStateChange = _onTaskStateChange;

            requestSetupTask();
        }
Exemple #9
0
        //-------------------------------------------------------------------------
        public override void init()
        {
            CoActor  = Entity.getComponent <CellActor <DefActor> >();
            CoPlayer = Entity.getComponent <CellPlayer <DefPlayer> >();
            if (CoActor.Def.mPropIsBot.get())
            {
                return;
            }

            TaskMgr = new TaskMgr(Entity, false);
            TaskMgr.regTaskFactory(new TaskFactoryCollectItem());
            TaskMgr.regTaskFactory(new TaskFactoryDialogue());
            TaskMgr.regTaskFactory(new TaskFactoryKillMonster());
            TaskMgr.OnServerTaskAward = _onTaskAward;

            if (Def.mPropFirstRun.get())
            {
                // 读取任务配置文件
                List <int> list_taskstory_starttasyid = CellApp.Instance.Cfg.ListTaskStoryStartTaskId;

                List <TaskData> list_taskdata = Def.mPropListTaskData.get();
                if (list_taskdata.Count == 0)
                {
                    foreach (var i in list_taskstory_starttasyid)
                    {
                        TaskData td = new TaskData();
                        td.task_id    = i;
                        td.task_data  = new Dictionary <byte, string>();
                        td.task_state = TaskState.Init;
                        list_taskdata.Add(td);
                    }
                }

                Def.mPropFirstRun.set(true);
            }

            TaskMgr.loadAllTask(Def.mPropListTaskData.get());
        }
Exemple #10
0
 //-------------------------------------------------------------------------
 public TaskKillMonster(TaskMgr task_mgr, Entity et, int task_id)
     : base(task_mgr, et, task_id)
 {
 }
Exemple #11
0
 //-------------------------------------------------------------------------
 public TaskKillMonster(TaskMgr task_mgr, Entity et, TaskData task_data)
     : base(task_mgr, et, task_data)
 {
 }
Exemple #12
0
        //-------------------------------------------------------------------------
        public override void release()
        {
            TaskMgr = null;

            EbLog.Note("ClientPlayerTask.release()");
        }
Exemple #13
0
 //-------------------------------------------------------------------------
 public override void release()
 {
     TaskMgr = null;
 }
Exemple #14
0
 //-------------------------------------------------------------------------
 public TaskCollectItem(TaskMgr task_mgr, Entity et, int task_id)
     : base(task_mgr, et, task_id)
 {
 }
Exemple #15
0
 //-------------------------------------------------------------------------
 public TaskBase(TaskMgr task_mgr, Entity et, TaskData task_data)
 {
     _init(task_mgr, et, task_data);
 }
Exemple #16
0
 //-------------------------------------------------------------------------
 public TaskDialogue(TaskMgr task_mgr, Entity et, int task_id)
     : base(task_mgr, et, task_id)
 {
 }
Exemple #17
0
 //-------------------------------------------------------------------------
 public TaskKillMonster(TaskMgr task_mgr, Entity et, int task_id)
     : base(task_mgr, et, task_id)
 {
 }
Exemple #18
0
 //-------------------------------------------------------------------------
 public TaskBase(TaskMgr task_mgr, Entity et, TaskData task_data)
 {
     _init(task_mgr, et, task_data);
 }
Exemple #19
0
        //-------------------------------------------------------------------------
        void _init(TaskMgr task_mgr, Entity et, TaskData task_data)
        {
            TaskMgr = task_mgr;
            Entity = et;

            TaskData = task_data;
            if (TaskData.task_data == null) TaskData.task_data = new Dictionary<byte, string>();

            TbDataTask = EbDataMgr.Instance.getData<TbDataTask>(TaskData.task_id);

            onInit();
        }
Exemple #20
0
 //-------------------------------------------------------------------------
 public TaskDialogue(TaskMgr task_mgr, Entity et, int task_id)
     : base(task_mgr, et, task_id)
 {
 }
Exemple #21
0
 //-------------------------------------------------------------------------
 public TaskDialogue(TaskMgr task_mgr, Entity et, TaskData task_data)
     : base(task_mgr, et, task_data)
 {
 }
Exemple #22
0
 //-------------------------------------------------------------------------
 public TaskCollectItem(TaskMgr task_mgr, Entity et, int task_id)
     : base(task_mgr, et, task_id)
 {
 }
Exemple #23
0
 //-------------------------------------------------------------------------
 public TaskCollectItem(TaskMgr task_mgr, Entity et, TaskData task_data)
     : base(task_mgr, et, task_data)
 {
 }
Exemple #24
0
 //-------------------------------------------------------------------------
 public TaskKillMonster(TaskMgr task_mgr, Entity et, TaskData task_data)
     : base(task_mgr, et, task_data)
 {
 }
Exemple #25
0
 //-------------------------------------------------------------------------
 public TaskDialogue(TaskMgr task_mgr, Entity et, TaskData task_data)
     : base(task_mgr, et, task_data)
 {
 }
Exemple #26
0
 //-------------------------------------------------------------------------
 public TaskCollectItem(TaskMgr task_mgr, Entity et, TaskData task_data)
     : base(task_mgr, et, task_data)
 {
 }