blockmap后缀(Block from)
nmp文件用什么软件打开啊?
第一节 data文件夹的布局
首先有 5个子文件夹,分别为
humandata 存放人物升级的属性信息
maps 存放地图信息
MonItems 存放怪物掉宝文件
热血传奇-热血苍龙战区-最新装备价格-会员...
[战士战神套装 | 道士真魂套装 | 法师圣魔套装 ]
script 存放npc的脚本文件
stringlist 存放脚本中使用的一些字符串的表,具体作用在讲解脚本的时候详细描述
还有几个文本文件,分别为
server.txt 内容是游戏世界服务器的一些配置
baseitem.txt 物品数据文件
basemagic.txt 技能数据文件
basemonster.txt 怪物数据文件
mongen.txt 怪物刷新文件
npcgen.txt npc刷新文件
startpoint.txt 出生点的设置
notice.txt 协议对话框的内容
以上是data中的主要数据的分布,其他文件一般是非必须的文件。
第二节。物品数据
物品数据文件 baseitem.txt 详细解释
在物品数据文件baseitem.txt里面,每种物品数据文件按照下面这种格式来存储。
name/stdmode/shape/image/specialpower/ac1/ac2/mac1/mac2/dc1/dc2/mc1/mc2/sc1/sc2/wei
ght/maxdura/price/needtype/needlevel
示例:
粗布衣(男)/10/ 1/117/0/2/ 2/0/1/0/0/0/0/0/0/ 5/ 5/2000/0/1
其中,各个字段的含义是
name 表示物品名字,
stdmode 表示物品的种类,
shape 字面上是形状,其实表示物品的一些特性,根据stdmode不同而不同,
image 表示的是物品的外观,就是掉在地上的外观和放在背包里面的外观,对于武器,头盔
和衣服来说,还表示装备在身上的时候在装备画面的样子,但不表示游戏中的角色的外观。这
个,我们稍候再议。
specialpower,ac1,ac2,mac1,mac2这些属性根据stdmode的不同而表示不同的含义。
dc1 表示最小攻击力
dc2 表示最大攻击力
mc1 表示最小魔法
mc2 表示最大魔法
sc1 表示最小道术
sc2 表示最大道术
weight 表示物品的重量
maxdura 表示物品的持久/书籍表示学习的等级
price 表示价格(这个属性基本没用)
needtype 表示限制条件的类型(0- 表示等级限制 1- 表示攻击力限制 2- 表示魔法限
制 3- 表示道术限制)
needlevel 表示限制条件的数值
stdmode字段,在整个物品数据里面起着非常重要的作用,它决定了物品的作用和属性加成。
首先,让我们了解一下都有哪些物品类型
0- 药品
10 男装
11 女装
15 头盔
5 普通武器
6 特殊类武器(锄头等)
22 23 戒指类
19 20 21 项链类
24 26 手套手镯类
4 书籍
3 特殊作用类物品,如祝福油
31 药品包,捆绑类物品
81 靴子
58 腰带
45 材料 如 红绿蓝 宝石 x星珠 魔蛋 未鉴定的物品等
55 特殊类物品 如 天玉宝石
59 60 61 可装备宝石类
30 勋章神饰类
34 道符
52 杂物类
44 鉴定卷轴 任务类物品 战斗号角
47 金砖金条类
46 赏金令牌等任务物品
38 黑暗之戒
25 稻草人偶
33 马牌
43 矿石
49 字体卷轴
下面详细解释下 药品 武器 男女服装 戒指 手镯 腰带 靴子 宝石 勋章 神饰 stdmode对属性
加成的影响
药品
stdmode = 0
ac1 表示+HP
mac1 表示+MP
其他属性不加
武器
stdmode = 5,6
ac1 表示幸运
ac2 表示准确
ac3 表示诅咒
dc1 dc2 mc1 mc2 sc1 sc2 分别表示 攻击 魔法 道术 的最小最大值
男女衣服
stdmode = 10,11
ac1 ac2 表示防御最小最大值
mac1 mac2表示魔防最小最大值
dc1 dc2 mc1 mc2 sc1 sc2 分别表示 攻击 魔法 道术 的最小最大值
戒指
stdmode = 22 时
ac1 ac2 表示防御最小最大值
mac1 mac2 表示魔防最小最大值
dc1 dc2 mc1 mc2 sc1 sc2 分别表示 攻击 魔法 道术 的最小最大值
stdmode = 23 时
ac1 表示攻击速度
ac2 表示毒物躲避,显示出来的值是设置值的10倍,比如设置10 显示 100%
mac1 表示攻击速度减多少
mac2 表示中毒恢复 也是10倍的关系
dc1 dc2 mc1 mc2 sc1 sc2 分别表示 攻击 魔法 道术 的最小最大值
手镯
stdmode = 24
ac2 = 命中
mac2 = 回避
dc1 dc2 mc1 mc2 sc1 sc2 分别表示 攻击 魔法 道术 的最小最大值
stdmode = 26
ac1 ac2 表示防御最小最大值
mac1 mac2 表示魔防最小最大值
dc1 dc2 mc1 mc2 sc1 sc2 分别表示 攻击 魔法 道术 的最小最大值
腰带
stdmode = 58
ac1 ac2 表示防御最小最大值
mac1 mac2 表示魔防最小最大值
dc1 dc2 mc1 mc2 sc1 sc2 分别表示 攻击 魔法 道术 的最小最大值
靴子
stdmode = 81
ac1 ac2 表示防御最小最大值
mac1 mac2 表示魔防最小最大值
dc1 dc2 mc1 mc2 sc1 sc2 分别表示 攻击 魔法 道术 的最小最大值
宝石
stdmode = 59, 60, 61
ac1 ac2 表示防御最小最大值
mac1 mac2 表示魔防最小最大值
dc1 dc2 mc1 mc2 sc1 sc2 分别表示 攻击 魔法 道术 的最小最大值
勋章
stdmode = 30
shape = 0
ac1 ac2 表示防御最小最大值
mac1 mac2 表示魔防最小最大值
dc1 dc2 mc1 mc2 sc1 sc2 分别表示 攻击 魔法 道术 的最小最大值
神饰
stdmode = 30
shape = 1
sc1 表示极品爆出率
接下来说一下shape对于物品的影响,
在上面一节中,我们看到,神饰和勋章stdmode 都是30,但是shape不同,加成属性就不同。其
实shape的作用远大于此,大概说来,shape就是一种子类型的作用,就是从stdmode这种大类型
中分出子类
衣服
shape在衣服类中,取值范围是0-15,分别表示光身子和15套衣服,其实用到的只有其中的几套
,还有几套做了保留。
武器
shape在武器类中,标志着拿在手里的外观,就是别人看到你的样子。
药品
根据观察,shape在药品中的左右就是标记是否是瞬间作用(太阳水) 0 表示慢慢恢复 1表示瞬
间恢复
书籍
书籍类,shape的作用在于标记书籍适用的职业 0 表示武士 1 表示法师 2 表示道士。
其他类的shape的作用就在于区别特殊于一般的关系,比如特殊戒指,特殊项链的shape就和普
通的不一样。
好了,物品数据的解释就到这里,如果还有不明白的,可以在论坛发帖子问我。
第三节 地图数据
地图数据存放在data文件夹下的maps子文件夹下。
进入maps子文件夹,可以看到两个文件夹logic和physics。字面意思就是逻辑和物理。
淡抹夕阳模拟器和普通的m2服务器的一个不同之处就是地图数据处理上,完全不同。分为逻辑
地图和物理地图两种,
逻辑地图主要负责管理地图上的角色,怪物,等,物理地图主要提供障碍信息。
简单的来说,这种方式的好处就是,当你服务器中有两个中州的时候,他们都指向内存和硬盘
上的同一个 0.nmp。也就是节省内存和硬盘消耗,共享同一份障碍图。
存放在physics里面的就是后缀名是nmp的地图文件,大家可以从客户端的map文件夹把所有的
nmp文件拷贝到physics文件夹内。
存放在logic里面的是后缀名是ini的逻辑地图配置文件。ini的内容,一般是下面这样的。
[define]
name = 中州
;地图的名字,显示在客户端的界面上
blockmap = 0
;障碍图的名字,比如障碍图是xxxx.nmp 这里就写xxxx
minimap = 101
;小地图号,这个对应客户端的mmap里面的小地图
mapid = 16
;地图编号,必须是唯一的编号
linkcount = 19
;连接数量,就是出口的数量
[linkpoint]
;下面描述了19个出口的信息,格式是 (本地图x,本地图y)=[目的地图编号](目的地图x,目的
地图y)
linkpoint1=(740,328)=[17](34,45)
linkpoint2=(468,226)=[164](116,85)
linkpoint3=(520,267)=[29](7,21)
linkpoint4=(725,35)=[67](438,971)
linkpoint5=(484,141)=[28](12,52)
linkpoint6=(372,207)=[30](5,16)
linkpoint7=(473,250)=[31](9,20)
linkpoint8=(548,195)=[32](19,28)
linkpoint9=(381,258)=[34](6,19)
linkpoint10=(418,205)=[37](6,13)
linkpoint11=(461,259)=[38](8,13)
linkpoint12=(497,245)=[39](7,13)
linkpoint13=(493,272)=[40](7,16)
linkpoint14=(474,126)=[41](13,18)
linkpoint15=(488,173)=[42](6,18)
linkpoint16=(28,346)=[43](258,497)
linkpoint17=(55,176)=[43](241,35)
linkpoint18=(777,393)=[47](201,329)
linkpoint19=(783,532)=[273](12,14)
如果地图连接出了问题,可以修改这里
在发布的版本中,我们预先根据官方的minmaplist.txt生成了一些数据ini,但是可能有错误,
当遇到错误的时候,可以自己修改,也可以到论坛求助,我们会给你帮助的。本文章由我爱游戏提供521G.com
第四节。其他数据
1- GM列表 gmlist.txt
里面保存了gm的帐号和等级,使用这些帐号登陆游戏的gm就可以通过@gamemaster来打开gm模式
,从而使用一些gm特有的命令。
这里注意!!!!,是登陆用的帐号,不是角色名字,好多玩家都因为写了角色名字导致无法
打开gm模式。
现在支持的gm命令
@setlevel(等级) 设置自己的等级
@addexp(经验) 增加自己的经验
@move(地图id, 坐标x, 坐标y ) 移动到指定地图的x,y坐标处
@move(坐标x, 坐标y) 移动到当前地图的 x,y 坐标处
@makeitem(物品名字 创建一个物品,并加入到背包里
@addmagic(技能名字 为自己添加一个存在于basemagic.txt里的技能
@callmon(怪物名字 召唤一个怪物到自己的下面一个格子(如果该格子有人,命令失败)
常用的gm命令就这些了,其他的都是开发阶段作调试用命令,不推荐使用。
2- 技能数据 basemagic.txt
这个由于暂时没有完全完成,所以,不能给大家详细的介绍,中间的文件结构可能会按照开发
进度而改变,所以,请大家关注论坛,上面有完整的从官方服务器dump下来的技能数据。
3- 怪物数据basemonster.txt
怪物数据文件的结构如下
name/title/view/hp/dc/ac/mac/gainexp/delay/autoattack
name 表示怪物类名字
title 表示怪物的显示名字(客户端显示)
使用这两个名字是为了解决相同名字的怪物掉不同的东西和拥有不同的能力。
view 表示怪物的外观,内部论坛上已经发布了全部怪物的外观,没有看到的朋友可以找一下老
贴子,我们发布的服务器包里也是完整版的怪物外观。
hp 表示怪物的hp上限
dc 表示怪物攻击力 用 a-b的形式, a表示最小攻击力,b表示最大攻击力
ac 表示怪物防御 使用和攻击力一样的表示形式
mac 表示怪物的魔法防御,使用和攻击力一样的表示形式
gainexp 表示杀死怪物可以得到的经验值
delay 表示怪物的ai时间间隔,单位是毫秒。
autoattack 是一个标记表示是否自动攻击,现在还没用到,全部设置为1
4- mongen.txt 怪物刷新数据文件
文件格式如下
name/mapid/x/y/range/count/refreshdelay(seconds)
name表示刷新的怪物名字,对应怪物数据文件中的name
mapid 表示刷新的地图的id
x,y表示刷新的坐标
range表示刷新的范围,以格子为单位
count表示刷新的数量,单位 只
refreshdelay表示刷新的间隔,单位 秒
5- startpoint.txt 出生点坐标文件
warrior = [16](414,600)-(416,604)
magician = [16](414,600)-(416,604)
taoshi = [16](414,600)-(416,604)
前面的 warrior表示战士 magician 表示法师 taoshi 表示道士
后面的[]内的数字表示地图的编号 16 代表中州
后面第一个括号表示 区域的左上角坐标, 后面一个括号表示区域的右下角坐标。
6- notice.txt 协议框文字
每次登录游戏的时候都能看到写在这个文件中的文字,确认后才能进入游戏。
7- npcgen.txt npc的刷新文件
格式如下
name/id/view/mapid/x/y/istalk/scriptfile
name 表示npc的名字
id 表示npc的数据库id,目前没用随便设置
view 表示npc的外观,论坛上有人发过全版
mapid 表示npc所在地图的id
x/y 表示npc的坐标
istalk 表示是否为对话npc,目前固定为1
scriptfile 是脚本文件的名字,对应script文件夹中的 设置值.txt 文件, 比如你设置这里
为 abc 那么对应script下的abc.txt
关于脚本编写的问题,我以后详细讲解~