- 精华
- 阅读权限
- 90
- 好友
- 相册
- 分享
- 听众
- 收听
- 注册时间
- 2018-9-30
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
首先找到你要修改的任务ID,具体文件为/settings/Quests.tab 或 /settings/Quests/文件夹内,比如我要改门派随机日常任务,那就打开settings\Quests\MenPaiSuiJiRenWu\sQuests.tab
按任务名找到你需要修改的任务ID,比如 9793 明教·特别训练 9793就是任务ID.
接下来找到交任务的NPC,门派随机日常任务的文件在 scripts/map/门派打坐活动/quest/门派随机日常.lua 不是具体的NPC文件,而是一个文件控制所有门派的日常交接
打开文件后看开头这一段
- -- 在玩家实际接到任务的时候触发
- function OnAcceptQuest(player, dwQuestTemplateID)
- if dwQuestTemplateID == <font color="#ff0000">9793</font> then
- for i = 1, 25, 1 do
- player.AddBuff(0, 99, 4654, 1)
- end
- local scene = player.GetScene()
- if not scene then
- return
- end
- local npc1 = scene.GetNpcByNickName("dashitou"..tostring(player.dwID))
- if npc1 then
- npc1.SetPosition(64081, 81843, player.nZ)
- else
- local npc2 = scene.CreateNpc(19367, 64081, 81843, player.nZ, 0, 900 * GLOBAL.GAME_FPS, "dashitou"..tostring(player.dwID), player.dwID)
- end
- end
- --MenPaiQuestAccept(player, dwQuestTemplateID) 暂时先注释掉
- end
复制代码 其中 9793 就是刚才查到的任务ID,其他的不要管.
接下来将这段代码删除,写上新的代码:
- -- 在玩家实际接到任务的时候触发
- function OnAcceptQuest(player, dwQuestTemplateID)
- -- 目标任务ID:9793(需要针对其他任务时,修改此处数值即可)
- local targetQuestID = <font color="#ff0000">9793</font>
- -- 获取玩家接取的该任务在任务列表中的索引
- local nQuestIndex = player.GetQuestIndex(dwQuestTemplateID)
- -- 获取该任务当前的阶段
- local nQuestPhase = player.GetQuestPhase(dwQuestTemplateID)
-
- -- 校验:1.任务索引存在 2.任务处于第1阶段 3.接取的是目标任务(9793)
- if not nQuestIndex or nQuestPhase ~= 1 or dwQuestTemplateID ~= targetQuestID then
- return false, false
- end
-
- -- 自动完成任务
- <font color="#ff0000"> player.ForceFinishQuest(targetQuestID);</font>
- end
复制代码 具体作用已经注释出来了,关键的就红色这两段,9793为任务ID,player.ForceFinishQuest(targetQuestID); 为自动完成 targetQuestID 任务,targetQuestID就是9793.
其他的任务修改方法也是用这段代码,不过需要你自己找到交任务的文件修改,比如 scripts/map/主城茶馆/quest/久经风霜百炼钢.lua 这是茶馆日常任务
只要开头有 function OnAcceptQuest 这段,就可以无脑替换为以上的代码,只需将 9793 更改为这个任务的实际ID即可.
|
|