您好,欢迎来到中华游戏网 - 游戏源码 - 手游源码 - 服务端 - 架设教程 - 教游戏 - 教私服论坛! 请登录 立即注册 找回密码
Lv98
登录后阅读更多资料
来自 中国河南新乡
首先,该教程会尽可能详细教给大家,绝对原创首发
教程由我本人亲自填写,我会尽可能以“代码小白”的视角教给大家
这一篇是基础篇,基础篇掌握后,还会有复杂的教程贴,这个会另发

一般来说,我们之前普通的魔改任务都是直接替换成原来的QUEST文件
但如今已经没有这个必要了!
要制作新任务,除了QUEST文件外,还有几个必要的文件需要被修改
在这个教程中就可以学到
今天我们就给绿明村桥上的村民秦永浩添加一个自制任务吧!
这时候估计肯定有人说:哎呀整这么麻烦干嘛,替换修改任务不就行了
那你大可不必看这个教程,对吧?
总会有人需要她的
你魔改任务内容只会替换原来的内容
一些东西肯定是不替换才是好的,能保证原汁原味的剑灵任务,又能添加自己的特色
何乐而不为呢?
我花了1个月研究出来的方法,没有像某些人直接卖相信我是很良心的了
虽然我也想卖自己的技术,也确实想卖,所以在最后加了代做服务
至少提供出了白嫖的方法不是吗?


.准备工作
首先,我们毫无疑问的要解包客户端的前端文件XML64.DAT获取QUEST的任务文件
非常建议使用小白菜或者是其他的一些带解析的免费BIN编辑工具
这时候阿星的工具就非常有用了!阿星的工具真的非常非常适合小白
如果没有的话就需要手搓代码,这非常辛苦,在这里我只会把基础的内容教给大家
无工具手搓的文件各种各样,你不仅要知道NPC的别名,还要自己手动修改复杂的事情
可以代做任务,只不过会收费哦!

那么,下面开始教大家如何添加任务

.任务文件说明

首先我们需要明确的分辨任务文件
任务文件分为客户端和服务端
两个文件大致相同,但也有不同的地方
客户端有文本映射,服务端却没有
但其他的都大致相同,前后端必须同步(废话)


因此接下来会告诉大家基础的代码含义
一些复杂的代码含义请在我打算在几天后发的“进阶篇”帖子查看解析

如果按照正常视角来看,会直接写个代码边写边教
但这里就随便拿一个任务模板给小白们参考吧
这样子的话反而比较容易给小白们学会和编写


首先说一下任务文件的格式
这里拿采集任务和杀怪任务的任务模板来用吧
ID分别是1676和1677


这个是采集任务的服务端任务文件(1676)

这个是杀怪任务的服务端任务文件(1677)



首先,任务文件就是非常基础的XML代码
如果想自己编写任务文件,必须要按照模板格式进行
在基础篇只提供模板文件的解析,进阶篇估计也详细不到哪里去
我们只对需要使用到的代码进行说明

alias:这个是任务的别名,非常重要,制作的时候必须记住别名,别名可以自定义,不需要按照格式来
category:任务类型,normal的意思是普通的支线,也有epic的主线类型,attraction的斩杀任务类型,根据需要来填写
completed-list:可删除,编写新任务的时候用不到他,意思是”已完成列表“
max-repeat:任务可完成次数,一般都是写1,写2就是可以完成2次
save-type:任务保存类型,这里一般是ALL,但在一些特殊任务中,这里就是别的,基础篇用不上就不说了
level:任务等级,这里的50意思是玩家需要达到50级才能接任务,可删除
preceding-quest:前置任务,可以删除,在这里填写前置任务的别名就行,填写后即要求玩家必须完成这里所指定的任务才可以接取此任务
acquire-quest:是否可以接取任务,填写N就代表不能从NPC获取此任务,填写Y就需要指定NPC别名和类型,看下面
object:这里可以指定各种各样的东西,意思是通过什么方法取获取任务,他可以是道具或者是NPC,必须写别名,不是ID哦!进阶篇会想详细介绍,这里模板用的是NPC对话的形式
type:这里是接取形式,模板的Talk意思就是对话,也可以设置成别的,基础篇不做说明
mission-step:设置任务有几个步骤,如果嫌麻烦设1个也可以,设5个也没问题,每一个任务数据都是自己编写的,这个意思就是任务步骤
mission id:写1证明这个是第一步,写2证明这个是第二步,不能直接写2,必须严格按照数字顺序来哦!
required-register-value:要求数量,完成这一步采集需要多少个,设置的3证明需要采集3个才能完成任务,设置5就代表要完成5个
case object2:这里可填写各种东西,在采集模板下,自然就要写任何自定义采集的东西,zoneenv2证明是场景的物件,而e_chest_6531_Sapling就是场景物件的别名
party-broadcast:是否可以队伍采集或者是接受完成,如果在接受条件处写Y,整个任务是一个队伍任务,如果在采集处写Y,队友采集的也可以变成你自己采集的
采集上的type:这里的类型和接受任务的类型一样,可填写各种类型,LOOT的意思是拾取,采集,证明玩家必须通过采集来完成任务,而后面的manipulate证明是需要使用某个道具或者操纵某个物件来完成该步骤

----------------------------------
以上就是任务文件代码的详细解析,当然也有两个任务模板都有着一些小区别
接下来对设定任务内容进行补充说明
首先任务步骤可以只设置一步,不需要设置很多步,按照需求来
然后就是STEP下的任务内容不止是设置采集,你也可以看怪物模板那里有个KILL的类型,这就代表着玩家需要杀死该NPC才可以完成任务
最后就是记住每个任务的最后一步基本都是”完成任务的方式“譬如采集模板的第三步就是
在最后一步请一定要添加reward-1的任务奖励别名,这里是联动到服务端任务奖励文件questrewarddata,前端是240号哦

-----------------------------------
接下来给大家看看客户端的1676和1677
1676:

1677:


这里增加了对话文本,任务区域
任务区域指的是map-group和Group,这两个都对应着对应区域的代码,写的哪里那么在任务列表的任务地区分类中就是哪里
npc-response:关联客户端前端文件216,这句的意思是玩家靠近接任务的NPC时所弹出的对话,然后根据217文件找到对应的显示文本,可通过工具进行自定义
name2:这个包含了诸多意思,第四行的name2任务名称,后面的_1_2是任务步骤显示的,譬如_1的意思是“采集XXX“这个文本,是给玩家提示用的,也可以修改成自己添加的名字和提示,可从327自定义别名添加文本内容
别忘记,reward的内容必须和服务端一致,否则会出现显示问题
desc:任务说明,就是每个任务下面一大长串的对话和说明,直接连接327
recommended-level:建议等级,告知玩家这个任务等级,但这个无论设置多少都不会影响玩家接取任务,就只是告诉玩家,做这个任务建议你升到50级,仅此而已
----------------------------------------------------
以上就是任务文件的具体说明了

.制作任务
根据前面的各种解析,相信有一部分人学会了一定的基础思路了,接下来我们该开始制作任务了
如何正确的添加任务,我们在这里用怪物斩杀的模板给大家做一个任务
正如开头所说的,我们给绿明村绝对没有任务的NPC秦永浩增加这个斩杀任务

那么首先我们先写好服务端和客户端的任务文件
首先我们要更改接受条件和自写任务对话
对话最后写,先来改服务端和客户端的任务文件
注:这里用到的阿星工具可以白嫖,不用购买也能用到,我基本用于查询,你们也可以用其他的方式查
这里秦永浩的别名是Ctzn_JinM_NokMyeonCtzn_KeumYoungOk_001
因此我们要在对应的两个任务文件,把接受条件的NPC和完成任务的NPC给改掉
由于我们是添加任务,不是替换任务,把ID改为游戏里原本没有的任务ID
这里我把默认的1677改成2072,同时也把alias的1671改为2072,并另存为文件为questdata.2072.xml
删除没有用的preceding-quest,否则你看不到任务,更改任务等级为1级

接下来就是做任务内容
模板只有一个杀怪任务,我们把这个也自定义一下
由于是绿明村的杀怪任务,就改成这个怪物吧

这个怪物的别名是Mob_4LegR_MLnd_Beast_PungJer_001
由于只有一个,可以删除多余的怪物指定
最后服务端的任务脚本变成这样了


客户端也是同理,把对应的NPC和杀的怪物进行修改,和服务端文件同步,修改ID,删除前置任务,修改等级,反正要同步服务端!并另存为新ID文件,如图


那么。除了对话,文本内容没设置外,一个完成的全新任务脚本就做好了
那么,如何设置对话和文本呢
首先基础的文本可以通过在327直接添加修改就行,如果不想添加文本,用阿星的任务对话修改也行,但不能添加对话
而对话文件涉及到216和217,制作起来比较复杂,这里会在进阶篇进行讲解,我会详细讲解如何添加对话
且这个必须要工具哦!
基础篇这里告诉大家原理
首先qrsp_1677_1这个就是对话
216文件查看(我用的小白菜工具)

在数据列表找到npc-response所设定的qrsp_1677_1
然后你可以在下面看到2946这个,就是设定的对话内容
2946的解析就是q_1677_1
217搜索q_1677_1,即可得到对话设置

这里说明下,下面的ID是327设置的ID,添加对话时可用到这个ID
当然,你要修改对话又是另一个故事了
这里的步骤文本,其实就是对话顺序
而下面截图的是玩家的选项对话所用的选项文本
也可以设置多项选择,嘛,这个比进阶篇还难就是了

对话内容和类型以及句数都可以写,NPC和玩家各自最多可以写30句
配合327的添加或者修改即可
当然也可以用阿星的工具直接替换修改,适合懒人
这里我就用阿星的攻击改任务名了,自定义奖励就不设置了,节省时间
-------------------------------------
以上就是任务的制作教程

你以为到这里就完了?会不会以为,接下来同步一下前面说的文件就行了?
NONONONONONO,其实添加任务只有少部分人会
他们拿来卖钱,其实我也想卖钱,但我想先把技术思路讲解一下
顺便为自己的服拉点活人玩家和这项任务制作的技术生意
如果你学不会的话,欢迎来找我代做,把你的需求说出来就行

下面的才是真正的开始,这不是全部!
这也是大部分玩家卡住的地方,觉得这是客户端核心文件问题,做不了什么的
实际上并非如此哦!看我接下来的讲解
必须使用工具才行,不使用我怕会难死你
你硬是要手搓那也是可行的,但不推荐
这里只提供工具下的修改
我用的是乐绯的工具
也可以用免费的一些解析工具制作
这里会提供思路。怎么改就看大家的了

--------------------------------------
.任务实装
光做好任务,怎么能不实装?
我们接下来要对任务进行实装,如果不实装的话,任务是不会生效的,我们也看不到

那么,如何实装任务呢?
这里我用乐绯的工具进行说明
按照步骤来,首先是接受任务和完成任务的NPC
我们需要编辑前端213号文件,寻找我们设置的NPC别名

接受任务的NPC时装必须要设置转发类型
在序号167forwarding-types-1,默认是0,这里我们要改为1,1就代表着这个是接受任务的NPC

然后在231quests-1,这里和forwarding-types-1是连接的,后面的数字是多少那就是对应多少,forwarding-types-2,就对应quest-2,就是这样的原理
我们在231的quests-1设置我们新添加的任务ID2072,如此一来,任务接受的部分就做好了
但这样还远远不够!我们还要给NPC做完成任务的实装
完成任务的实装和接受任务的实装完全不同
完成任务的实装不需要改forwarding-types
在这里我们直接使用序号233的quest-2,输入ID2072
之后在序号360的missions-2设置2

missions是任务步骤,也就是任务步骤的ID,这里设置的2,意思就是任务文件中QUSETID2的步骤
对应quest设置的id任务文件,必须正确的设置连接,否则会有BUG或者是不会显示任务!
设置好这步后,NPC部分就完成了,然后就是怪物的部分

怪物也是同理,怪物不需要修改forwarding-types
直接在quest和missions设置对应的ID就行
由于该怪物在别的任务有设定,我们使用235的quest3,设置2072

然后在361的missions-3设置任务步骤,杀怪的步骤ID是1,因此我们设置1


要点:mission的解析值就是quest文件的stepid
譬如刚刚写的id1杀怪,就是对应的2072的这个部分

记住这些文件之间和代码之间的关联性,如果记不住就很难做到添加或者是自定义任务
以上就是任务的实装,完成后我们就成功添加了一个任务
把服务端的quest文件放入服务器gamedaemon/data/quest文件夹后,重启服务端即可

---------------------------------
.实际运行
实际运行一下就知道结果了
那么,我们来实际运行一下吧
视频我直接传到百度盘,看看就行看看就行!

地址是: https://pan.baidu.com/s/1H2Johtt0sAkdcPp0R-M4Ow?pwd=geua
别觉得中途哪里做什么手脚,这不存在的
这是实打实的教程,做不出来单纯你自己的问题!





PS:关于任务奖励显示的问题和道具添加的问题,他和客户端的一个表头文件有关系这里需要修改客户端的表头,才会让那个道具正常显示
也就是说,除了任务,你要添加奖励和道具的话,你还需要修改表头,这有专门的工具,到时候可以联系我(有偿)这工具可以自定义所有明文,只要有技术,加原创道具加原创内容加原创奖励完全ok!

不过光是添加任务制作是不需要这东西的,任务奖励你可以用废弃的任务奖励文件来改
各有所需吧!(* ̄︶ ̄)

中华游戏网官方论坛:5a21.com
快速回复
您需要登录后才可以回帖 登录 | 立即注册

回帖并转播 回帖后跳转到最后一页