近日帮一个朋友改一个私服的装备,因为装备无法显示,又找不到现成的补丁,所以叫我给他用一个现成的传奇客户端修改装备代码。
传奇私服做装备最复杂的就是计算shape代码与looks代码了。
注意我使用的是GOM引擎三职业版(非合击无英雄)版的服务端,当然对应的登陆器也就是GOM版的登陆器。游戏端使用的也不知是什么版本的了,也不是最新是电脑中一直有的,用过很多补丁了。但应该和游戏端无关,主要和服务端引擎与登陆器有关吧(不是专业做私服所以只能以我当前的见解来写这篇文章)。
传奇武器shape与looks代码计算
首先使用dbc2000打开对应的物品数据库StdItems,懂数据库的话就很容易理解里面的内容了。这里我只介绍武器,其它的可以举一反三地去做。
请看看上图:
looks:是武器在背包、人物界面、地上时的样子代码,如下图中所标注的都是looks代码控制的。
Shape:是指我们在游戏画面中看到的武器样子,一般是1200幅图组成一个武器动画(记住这个1200后面用得到)。看下图,是shape无显示的样子。
一般如果我们看不到装备就是这两个代码在我们的传奇游戏数据找不到对应就无法看到了。下面变进入重点,介绍一下如何计算这个shape与looks代码。
首先要了解一点,这个代码是与我们本地的游戏客户端中的数据对应,而不是和我们的服务端。
looks代码获得
looks代码的获得比较简单,它只是一个图标,可以通过专门的工具来获得,无需计算。looks代码可以使用资源编辑器打开Items.wzl(我的游戏端是item.wzl,但有些可能是wil吧),这个就是一个图标库,只需要找到我们需要的图标对应的编号即可。如我上图中武器的图标在我这边对应的为5350,将这个5350填入武器的looks栏就可以了。(至于工具网上的工具大多数都报毒,也不知是真有毒还是假有毒,我就不发出来了,大家网上下载即可)
shape代码获得
我这边只介绍武器,其它的举一反三吧。武器对应的数据文件为Weapon.wzl文件组,还有Weapon2.wzl或是Weapon(数字).wzl的文件。
如我这里有ewapon2-8几个文件。
weapon.wzl很简单,我们看该组图总共有45600个图片,如果1200个为一组,就是45600÷1200=38组,从0开始计数就是说weapon.wzl时面有38个shape代码(0-37)。前1200为空白的,所以当我们的物品无需显示外形时就直接填0,如技能书、药水等无需外形显示的就填0。
因为不可能将所有的图都放在一个weapon文件里面,所以才有了weapon1、weapon2、weapon3...等文件。而weapon2以后的shape计算就和weapon的计算不太一样。
注意可能不同服务端引擎会不一样,我不一一去试了,上面我介绍了我使用的环境。
首先是weapon2,是以100开始的,也就是我们要用weapon2里面的第一组图作为shape代码就是100。同样如果是1200-2399组就是100+(1200÷1200)=101。
weapon3,是以150开始的,同上面用第一个1200组就是150,如果是weapon3里面的,25200开始的1200张图shape就是150+(25200÷1200)=171。
这样将对应的shape填进去后,武器就显示出来了。大功告成!
通过上面可以看出,一个weapon最多就是存放50个shape代码(和网上所说的25有所出入),这样shape的计算其实就是。
weapon(n).wzl文件(n为数字,没有就是0)。再来使用weapon(n).wzl中的第x张图作为形状,那计算就是:
先计算基数N:n÷2取整数部分,即1÷2=0.5取0,3÷2=1.5取1,4÷2=2取2...
再以第x张图计算后面的:x÷1200取整数部分,如需要的图在500那就是500÷1200取整数为0,如果第10000张图是我们需要的就是10000÷1200取整为8...
再举个例子我们需要的外形在weapon8.wzl文件中的2228,则计算shape为:8÷2取4;2228÷1200取1,那我们的shape值就是(4×100)+1=401
最后看下修改效果:成功了,大功告成。当然我还是没找对正确的外形图片,只能说要真做一款游戏估计要花太多心力吧。方法大概如此
注:我不是专门搞游戏的,就是朋友叫到帮他个忙,但以前也有架过私服玩。