//------------------------------------------------------------------------- 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); } }
//------------------------------------------------------------------------- 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); }
//------------------------------------------------------------------------- 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); }
//------------------------------------------------------------------------- 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); } } }
//------------------------------------------------------------------------- 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(); }
//------------------------------------------------------------------------- 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); } }
//------------------------------------------------------------------------- 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); } } }
//------------------------------------------------------------------------- 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(); }
//------------------------------------------------------------------------- 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()); }
//------------------------------------------------------------------------- public TaskKillMonster(TaskMgr task_mgr, Entity et, int task_id) : base(task_mgr, et, task_id) { }
//------------------------------------------------------------------------- public TaskKillMonster(TaskMgr task_mgr, Entity et, TaskData task_data) : base(task_mgr, et, task_data) { }
//------------------------------------------------------------------------- public override void release() { TaskMgr = null; EbLog.Note("ClientPlayerTask.release()"); }
//------------------------------------------------------------------------- public override void release() { TaskMgr = null; }
//------------------------------------------------------------------------- public TaskCollectItem(TaskMgr task_mgr, Entity et, int task_id) : base(task_mgr, et, task_id) { }
//------------------------------------------------------------------------- public TaskBase(TaskMgr task_mgr, Entity et, TaskData task_data) { _init(task_mgr, et, task_data); }
//------------------------------------------------------------------------- public TaskDialogue(TaskMgr task_mgr, Entity et, int task_id) : base(task_mgr, et, task_id) { }
//------------------------------------------------------------------------- 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(); }
//------------------------------------------------------------------------- public TaskDialogue(TaskMgr task_mgr, Entity et, TaskData task_data) : base(task_mgr, et, task_data) { }
//------------------------------------------------------------------------- public TaskCollectItem(TaskMgr task_mgr, Entity et, TaskData task_data) : base(task_mgr, et, task_data) { }