用户登录  | 
首 页技术文章软件发布广告价格
当前位置:传奇游戏服务端下载站传奇站长论坛资源网站程序技术文章文章资讯传奇架设教程传奇架设技术

data目录的图象文件的具体内容

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2014-10-03 14:34:15
chrsel.wil 开始的人物选择图片。
dnitems.wil 怪物或者人挂了之后掉下的物品的图片。
effect.wil 挖矿,沙巴克大门等动画效果。

chrsel.wil 开始的人物选择图片。
dnitems.wil 怪物或者人挂了之后掉下的物品的图片。
effect.wil 挖矿,沙巴克大门等动画效果。
hair.wil 人物的头发。
hum.wil 人物的各种衣服的模型。
items.wil 物品的图标。
magic?.wil 魔法效果图。
magicon.wil 在魔法选择窗里显示的魔法图标。
mmap.wil 在地下洞里显示的小地图。
mon*.wil 各种怪兽的图片。
npc.wil npc的图片
object*.wil 建筑,地面以上物体的图片
prguse*.wil 界面,按钮的图片。
smtiles.wil 地图图片的小图块
tiles.wil 地图图片的大图块
weapon.wil 武器攻击的图片。

人物显示

里面,人物是个关键的东西。
我们看到,人物在里面可以穿不同的衣服,而且可以拿不同的武器。
如果每个武器和衣服都组合的话,恐怕要天文数字的衣服了。
不过传奇不是这样做的。我用程序解开了传奇的图片,根据图片得出的人物绘制的方法。
它的人物是用组合法绘制的。在不同的文件里面存放有不同的人物组件。每个组件都有各种动作时候的样子,里面主要有 站立,奔跑,行走,攻击,倒下,*亡等动作,他们每个动作都有相应的没有衣服,和各种衣服的模型图。
hum.wil里面是没有头发和武器的不同衣服的人的模型,看起来特别滑稽。
hair.wil里面是头发,各个方向的,各种颜色的都有。
weapon.wil里面是武器攻击的时候的各个角度的图片。
在显示的时候,把人物的身体,头发,武器组合在一起绘制。

地图显示
传奇地图是用一种90度的tile来组合的。在tiles.wil中,tile全部是方形的。而且从地图数据以及坐标分布来看,传奇是用的90度的地图引擎。45度效果完全是用图片做出来的。的物件,比如房子等东西,存放在object*.wil里面,他们被分成一个一个的长条。好象是方便绘制的。
不过,有些图片上,物件并没有跟背景分开,也就是说物件图片是直接物件和地面画在一起的。也就是猜测吧,它可能是有一个专门记录是否物件是不能遮住人的数据层。如果在物件后面,那么就把人物用alpha方式绘制,这样看起来好象是遮挡效果就出来了。不过这种想法还是有破绽, 因为只有自己在房子后面才是alpha的,其他人就不是了。
不过可以肯定的是,的地图的绘制是用矩形长条绘制的。大家可以试一下,拿把比较长的武器到一个屋子里面靠左上的墙边面向左站着,就会发现,武器的一部分进了墙了。根据这个,不难看出地图绘制方法~~
对图象数据的研究

必备工具。

1---十六进制编辑器 这个可是破解的主要工具啊。推荐使用hedit,华军主页上有。

2---图象处理程序 这个是用来处理图片的。主要是生成我们要的图片框架。这个,用windows自带的画笔就成。

3---计算器 这个是用来转换16进制和10进制的,这个在很多时候都用的到的。windows自带的就行了。

4---记事本 用来记录破解过程的重要数据。

5---一种可以处理二进制文件的编程工具 这个是用来写破解程序的。因为手工从文件拷贝图象文件实在是太累了。特别是数据比较大的时候。

6---然后呢,一点预备知识在pc里面存储的数据是高位在前低位在后。也就是说 十六进制 0xf8890 在十六进制编辑器中是这样的: 90 88 0f 00。这个相当重要啊。

研究一下图象数据存储方式 dedecms.com

首先呢,我打开了一个wil文件看了一下,感觉没有头绪。然后我打开了一个wix文件,在两个文件的文件头,我发现了这样的文字。#ilib v1.0-wemade entertainment inc(这个是wil文件头)#indx v1.0-wemade entertainment inc(这个是wix文件头)。从这个上面我们可以看出,wil就是lib的意思,也就是库的意思。wix就是index的文件,也就是索引的意思。这样,我们就初步知道了,数据是存放在wil中的,数据索引是存放在wix中的。

如果你还不知道索引呢(什么??你不知道索引。。晕4),我就给你讲一下哈。索引就是类似地址簿的东西,你从索引中查找数据所在的地址(这个地址不是内存地址,而是文件里面的地址)。那么通过这个地址,你就可以在库中找到数据了。

好了,现在我们知道了数据索引存放的地方,那么,我们就开始找到这些索引吧。
我们用hedit打开两个wix文件进行比较,我们发现在ofs=36之前的数据都是固定的,那么,我门就看后面的数据。我找了一个比较小的wix文件。然后从ofs=36的地方选择。这里用的是dnitems的wix。我发现,选择的字节数是1656,而我们清楚,一个文件位置一般是用4个字节存放,也就是说,这里总共可能有的图象数是1656/4 = 414个,用计算器算出他的16进制是0x19e,这时,我们就在开头找16进制的 9e 01,我们发现,在ofs= 44 的地方有一个 9b 01 的很接近 9e 01 那么我们就知道了,后面的信息不都是文件地址。因为还要记录图象的个数啊。所以,我门从数据的尾部开始选择,看着右下角的数字到了 0x19b时,我们停下,发现正好停在 0x44前面。哈,我们知道了,这些数据都是文件位置,这个9b 01就是图象个数。那么,第一个文件位置是干什么用的呢,我打开了两个wix文件,发现在相同的位置,就是ofs = 44后面的文件位置信息开始的地方,数据总是38 04 00 00,哦,明白了,这个就是图象数据的开始位置。也就是第一副图象的开始位置。 dedecms.com

那么我们把这个开始位置转换一下, 0x438 = 1080,呵呵,也就是说,在wil中的前面1080字节不是图象数据。那么他们是什么呢?

根据经验,我们知道,bmp文件里面的调色板一个就是一个4字节的dword值,那么256个位置就是1024字节,哈,很接近了啊。然后我比较了两个wil文件,发现,前44字节是很相似的。所以我们减去44字节就是1036字节。那么剩下的12字节是什么呢?呵呵,我也不清楚,不用管他了。我们只要图象。

在wil的0x438的位置上,我们发现了14 00 0d 00的数字。我猜,图象肯定超不过65535大小的,所以我猜想这是两个ushort的图象大小的数据。

于是我把他们相乘,然后我又找了0x438后面的一个文件位置,然后相减,得到了数据的长度。减去图象大小的数据,啊?竟然多出来4个字节。呵呵,我现在也搞不清楚他们的用处。恩,我就跳过去了,因为我想他们一般和图象没有什么关系。

然后我就把图象数据复制了,我又打开了画笔,把图象属性设定成0x14*0x0d,然后存成256色的位图。接着用hedit打开位图,在0x1078的位置把数据粘贴到这个位置。然后存盘,退出。然后用画笔打开这个图象文件。哈,看到图象了。看样子象一个符。不过颜色不对。恩,我进入了。用pause截了一张图,然后用hedit打开,在54的位置选择了1024字节的东西。然后复制,再打开那个图象文件,在54的地方粘贴,然后存盘,退出,用画笔打开。哈。是一本书。

啊,终于知道了。我从上面的动作中得到了下面的结论。

1 图象位置索引在*.wix中
2 图象信息在*.wil中。
3 图象索引从offset 0x2c开始,有一个dword的图象总数
4 然后是dword的offset值,第一副图象的offset值固定为0x438,= (1080)10
5 那么,就是说在wil中,开头有1080 字节的空余。
6 在wil中,文件开头的44字节都是相同的。所以,就是说有另外的1036字节是另有用途。
7 (这个没有解决)1036中有1024是一个256色的调色板,那么,剩下的12字节是干什么用的呢?
8 在下,有一个截图功能保存的图象里面的调色板就是是图象数据的调色板。 dedecms.com

那么,剩下的工作就是写代码来抠图象了。
这方面的问题我就不再阐述了,因为知道了图象存储的数据格式,程序就很好写了。
恩,现在我也要写程序了。看看觉得自己写了好多啊。不过放心,这个东西没有版权,随便用拉。

还有一点补充:
我没有说清楚,这些图象是完全用8bit位图方式存放在文件里面的。没有经过任何压缩或者是编码。


最后看看地图格式
玩最讨厌的就是走路,特别是那些洞,晕哦。
后来听说传奇里面有秘密入口,今天看了一下的地图格式。其实很简单啊。
地图是tile方式的,总共分3层。 dedecms.com

第一层是地表结构。就是地面贴图。
第二层好象是竖起来的东西。就是类似墙一样的东西。
第三层是一种障碍的东西好象。

他的地图开始就是两个ushort的地图宽度和高度。
然后是在ofs=52开始是真正的地图信息。
好象是每个位置存放3个4字节的数据。
我们用一个结构来表示

struct t_mirmap
{
dword layer[3];
};

t_mirmap map[w][h];

然后把数据读到map里面,就得到地图数据了。
可以out一下试试,因为都是dword的,可以当作位图来显示的。我想在里面,他也是用处理bitmap的方式来处理的吧。
不过我显示后发现,地图是反的,要把x,y互相调换才能得到和里面一样的地图形式。
不过出入口等事件触发的地方好象在第二层显示的,在位图上,房子出口的地方是兰色的。
这样,应该可以发现所有的暗门吧。我发现d7xx的地图都是石墓的地图。
m什么的好象有个未知暗殿的图,右下还有类似楼梯的东西。是什么极品屋之类的吧。

数据库魔法文件magicdb和怪物文件monterdb的解释

在*:\mirserver\mud2\db目录下有三个文件,分别是magicdb monterdb 和stditemdb
magic.db是修炼的各种技能,法术和武功
magid 技能代号
magname 技能名称
effecttype 效果类型(使用技能时角色的动作效果)代码
0 基础剑术fencing/精神力战法spiritsword/攻杀剑术slaying/刺杀剑术thrusting/半月弯刀halfmoon/
烈火剑法flamingsword/野蛮冲撞shoulderdash
1 火球术fireball/大火球greatfirebal
2 治愈术healing/施毒术poisoning/诱惑之光eshock/爆裂火焰firebang/心灵启示revelation/群体治愈术masshealing/
圣言术turnundead/冰咆哮icestorm
4 抗拒火环repulsion/召唤骷髅summonskele/隐身术hiding/瞬息移动teleport/火墙firewall/地狱雷光thunderstorm/
召唤神兽summonshinsu/魔法盾magicshield
5 地狱火hellfire
6 疾光电影lightning
7 雷电术thunderbolt
8 灵魂火符soulfireball/集体隐身术masshiding
9 幽灵盾soulshield/神圣战甲术blessedarmou
10 困魔咒traphexagon
effect 效果(技能产生的动画效果)代码
0基础剑术 fencing 精神力战法 spiritsword
1火球术fireball
2治愈术healing
3大火球greatfirebal
4施毒术poisoning
5攻杀剑术slaying
6抗拒火环repulsion
7地狱火hellfire
8疾光电影lightning
9雷电术thunderbolt
10灵魂火符soulfireball
11幽灵盾soulshield
12神圣战甲术blessedarmou
13刺杀剑术thrusting
14困魔咒traphexagon
15召唤骷髅summonskele
16隐身术hiding
17集体隐身术masshiding
18诱惑之光eshock
19瞬息移动teleport
20火墙f irewall
21爆裂火焰firebang
22地狱雷光thunderstorm
23半月弯刀halfmoon
24烈火剑法flamingsword
25野蛮冲撞shoulderdash
26心灵启示revelation
27群体治愈术masshealing
28召唤神兽summonshinsu
29魔法盾magicshield
30圣言术turnundead
31冰咆哮icestorm
spell 每次耗用魔法值
power 基本威力
maxpower 最大威力
defspell 升级后增加的每次耗用魔法值
defpower 升级后增加的威力
defmaxpower 升级后增加的最大
job 职业 (0-战士,1-法师,2-道士)
needl1 1级技能所需等级
l1train 1级技能修炼所需经验
needl2 2级技能所需等级
l2train 2级技能修炼所需经验
needl3 3级技能所需等级
l3train 3级技能修炼所需经验
delay 技能延迟时间
descr 备注
dedecms.com

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
传奇资源网提供最新传奇开区一条龙版本下载,本站声明:只更新最新最好的传奇服务端分享给大家。