论坛调整完毕,全面开放注册,无需认证。

服务端自定义(内核.装备技能.数据库.HTML.商店.脚本)

为玩家提供游戏编译制作相关参考资料
回复
头像
hagcse
Mr.GL
Mr.GL
帖子: 151
注册时间: 2018-02-25 15:50

服务端自定义(内核.装备技能.数据库.HTML.商店.脚本)

帖子 hagcse » 2018-03-10 16:07

【内核】大家所泛指的内核其实就是在模拟器文件夹里的JAR压缩包里面的CLASS文件。其占据主要地位的就是l2jserver.jar文件。里面含有关于天堂2游戏方式的基本定义文件、功能文件,模拟器运行后,能游戏就全靠它了。顾名思义-就是模拟器的“核心”了。打开它其实很容易,右键后解压缩即可。改过内核的朋友会知道,用DJ反编译查看、修改后出现*.JAVA文件,但模拟器用的是CLASS文件,并不是JAVA,所以这时候你就得用eclipse重新编译,打包成JAR才能正常使用。当然修改内核的前提是你会用JAVA语言。不懂也可以,把内核玩在手上大概3、4年的时候应该会自然而然的懂了。



【任务脚本】大部分玩家都希望任务的更完美,可以说,单机版没有任务玩就没意思了。任务脚本一部分是py文件所构成,另一部分则在内核里。任务的执行跟NPC的对话文件是分不开的。有的朋友埋怨为什么有些是英文?那就是因为NPC的对话HTML文件实在是太多了,有的地方可能汉化不完全的缘故。py文件和class文件里,都写了关于任务的一系列方法指令,当然HTML文件的执行也是在它们里面定义过的,所以做任务的时候会出相应HTML文件。基本任务还是CLA_Server\gameserver\data\jscript\quests下的一系列py及对话文件,汉化工作量是相当的庞大的。单单有了任务脚本还是不能在模拟器运行的时候执行,要在主目录下的py文件里加入此文件夹的名字才行。顺便把原来的CLASS文件删除掉(广寒月影告诉我的)。这样,模拟器运行的时候才能同时运行任务脚本。任务脚本怎么写,去置顶的索引里找资料吧,我想如果套用一些任务脚本的格式(注:不是内容),自己完成一个任务也不是不可能的。



【兑换脚本】这个可能大家都很熟悉(CLA_Server\gameserver\data\multisell),主要功能在于任务时兑换一些任务道具或在商店实现兑换物品的作用。至于怎么写去看,这个自己研究一下 在相关NPC的HTML对话文件加入multisell的命令就可以用了。保存的时候一定要注意,只能为UTF-8格式。



【武器、防具、技能脚本】此类的脚本都是定义效果的作用(CLA_Server\gameserver\data\stats),因内核里已经定义了该技能的效果,所以通过脚本,修改一些概率或者添加一些技能效果,就能实现武器、技能、防具的效果强化。



【数据库】数据库里的一系列字眼都是内核里定义过的,其功能在于储存资料,还有就是关于物品的数值设定及基本属性。我们能通过修改这些资料,来实现一些简单的修改,比如添加武器、防具什么的。在这里,不是因为数据库有修改效果,而是每次模拟器重新运行的时候,会读取数据库里面的资料来实现读取以储存过的信息的目的,所以说数值或者信息是什么,模拟器就能辨认其效果是什么。比如,原本商店里没有东西,通过修改数据库里的数据,重新运行模拟器的时候,就能看见你自己添加上去的物品了。只能说数据库具有记忆作用了。



【CONFIG】\CLA_Server\gameserver\config下的一系列文件都可以用文本文档打开,并加以更改。里面的内容大多都是关于模拟器基本设定的。什么物品掉率,组队经验,GM名颜色显示,GEODATE地图文件启动等等。这些使用起来很简单,建议新手多去看一下里面的内容,因为现在的文件都已经经过汉化了,所以易懂。此功能也是在内核里定义过的。






==========HTML套用图档的方法===========





【1】图档并非是服务端里的东西,而是用HTML代码套用了客户端的帖图。而且如果是普通的HTML文件的话是不能实现这样的功能的。可能是JAVAscript直接定义了此功能。在这我用商人NPC做为说明对象。



【2】首先要找到你要添加图档的NPCID,商店的NPC大多数HTML文件在于gameserver\data\html\merchant目录下,我以30001为例,向大家说明。



【3】基本的商店修改,当然只适用于简单的商店,多样化的商店还是用兑换功能再好不过了。用文本形式把30001.html打开,换行后,加入这么一行”<img src="*****" width=50 height=50>,在这img src=后面的*****表示图档,width表示显示宽度,height表示长度。剩下的你就得要找图档名称了。



【4】图档名称要到客户端\systextures下找了。因为要让图档更清晰的显示在对话HTML中,我们一般用icon.utX,l2ui_ch3.utx,l2ui.utx里的贴图作为图档来使用,当然别的UTX贴图档也是可以的。这时候你就需要一样工具----UTPT了。用UTPT可以打开UTX贴图档,来阅览里面的贴图,很方便。找到自己满意的的贴图后,记住它的名字,这里我选icon.utx里的猫眼耳环的贴图作为图档来使用,贴图名为“accessary_i.accessary_catseye_earing_i00”。这样我们就可以进入修改步骤了。



【5】在步骤3里说到加入”<img src="*****" width=50 height=50>这么一行(这里的宽度和高度是自己可以适当的调节的),既然知道了贴图名,我们就可以开始添加文件名了。把*****换成贴图名,这里要注意一下,贴图名前一定要有utx档的名称,中间以点割开。猫眼耳环的贴图文件是存在于icon.utx中,所以我要添加的语句就是“<img

src="icon.accessary_i.accessary_catseye_earing_i00" width=50 height=50>"。然后就保存为UTF8格式后退出就可以了。



以下是附加内容(可做可不做):




【添加兑换脚本】跟上边的方法一样,用文本模式打开HTML文件后,换行后,加入代码”<a action="bypass -h npc_%objectId%_multisell 10000">交易</a>“,在这multisell后面的数据代表兑换脚本的序号了。



【内容的多样化】第一部分:有些朋友可能还不合胃口,如果让对话文件更加美观呢?那么你多多少少就得用相关HTML代码的知识了。除了添加图档,常用的方法就是字体颜色更换,HTML表格了。在这表格起整理的作用,一看了就会一目了然。
以下为代码格式:


Quote:
<table>---->在这宽度是可以自己设定的,如<table width="500">
<tr>------>在这起着横分界线的作用,其实在游戏中看不见的,因为我把分界线的宽度设置为0了
<td><a action="bypass -h npc_%objectId%_Buy 1">购买战士用装备。</a></td><br>
<td><a action="bypass -h npc_%objectId%_Buy 2">购买法师用装备。</a></td><br>
</tr>
</table>
在这<td>起着竖分界线的作用
<br>为换行符。

其实象这样一个简单的对话文件中不用这么设置,因为没有必要,如果选项多的可以用此方法。



第二部分:插入按钮的话,可能会比单纯的文字好看一些。首先加入代码:
Quote:<button value="购买战士用装备" action="bypass -h npc_%objectId%_Buy 1 width=100 height=30 back="l2ui_ch3.btn1_normal_over" fore="L2UI_ch3.btn1_normalOn">
在这value表示按钮里的字

action表示动作

宽度高度就不说了

back是把鼠标挪到该按钮时候的图档,fore是按住按钮的时候显示的图档。

这部分内容需要综合的利用。



第三部分,最基本的美化,改变字体的颜色。也可以适当的用<center></center>命令,把对话内容挪到居中。HTML颜色代码,请自行百度下载。



第四部分,我没测试过,有时间的朋友可以去试一下。插入代码<body background="l2front.mini_logo-cn">。如果可以的话,就更能美化对话文件了。
图片

回复