回顾了一下之前的文章,同学们应该都可以成功进入游戏,并且对客户端的iteminfo.lub文件有一点了解啦。接下来的话我来讲一下item_db各个字段的含义以及作用吧,为之后添加自定义道具做准备。
添加自定义道具是基础技能,自己加一些特殊药水,特殊装备之类的还是很有意思的。但是在添加自定义道具之前,我们必须掌握并搞清楚item_db中每一个字段的含义以及作用。
复兴前和复兴后的item_db存放的位置不一样,复兴前的item_db文件位于服务端的db\pre-re目录中,复兴后的item_db文件位于服务端的db\re目录中,请打开你的item_db.txt,可以看到如下的内容:
除了加//的注释符之外,从501红色药水这一行开始,每一行都是一个物品的数据信息,每一个字段用逗号分开。
501,Red_Potion,红色药水,0,50„70„„,0xFFFFFFFF,7,2„„„{ itemheal rand(45,65),0; },{},{}
在我们开始之前,请先看一下顶部的这句注释,即“Structure of Database”,意思是数据库结构,如果你懂英文的话,基本上就能从下面这一行看出每一个字段大概代表什么含义:
ID,AegisName,Name,Type,Buy,Sell,Weight,ATK,DEF,Range,Slots,Job,Class,Gender,Loc,wLV,eLV[:maxLevel],Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script }
我们分别来对里面的格式进行一下说明,其实这些每个字段能用什么值,表示什么含义,都在rathena文件夹里面的docitem_db.txt里面,只不过都是英文的,这里我简单的翻译介绍一下吧。
———————————————————-
ID: 物品的编号
这个编号一般从红色药水的501开始,最大到32768,如果是自己新加物品的话,我个人建议你从25000或者30000开始加,可能大家会发现从501开始数,中间会有一些空闲的ID没有被使用(比如从2824~4000中间就有一段ID没被用过),那也请不要去用。那是韩服给自己留的空间,以后说不定更新一下,2825这个ID就会被韩服征用,这时候你就会很被动了。
———————————————————-
AegisName: 这个是英文名称,这个名称可以用在脚本里面,所以禁止这个英文名称有空格,如果有空格一般都用下划线_来替换,在脚本里面用getitem 501,1; 和用 getitem Red_Potion,1; 应该是一个效果的!如果你不知道我说的这getitem 501,1;是什么玩意儿,请当做没看见,随着我们以后教程的深入你会懂的。
———————————————————-
Name: 物品的名称,一般用在GM指令或者脚本指令里面获取使用。我们知道物品的名称是否汉化其实不取决于这里的Name字段,而是客户端的iteminfo.lub文件。这个Name字段的作用主要就是当你使用“@idsearch 物品名称”指令来企图查询这个物品的编号或其他信息时,你指令里面带的物品名称就必须等于item_db里面的这个Name字段,否则rathena找不到这个物品。
———————————————————-
Type: 这个就是物品的类型了,可选的值如下:
0 治愈物品
2 可用物品
3 其他物品
4 防具(盔甲/鞋子/头饰/披肩/装饰品都是防具)
5 武器
6 卡片
7 宠物蛋
8 宠物装备
10 弹药/弓箭
11 延迟消耗类物品(专门为 ’itemskill’ 设计)
当一个物品的使用脚本(下面会介绍什么是使用脚本)中用到了’itemskill’指令,并且这个指令指定的技能已经被顺利执行之后,才会消耗物品。其他的使用脚本不会导致此物品被消耗(我们可以利用这个特性实现“不会被消耗的苍蝇翅膀”…)
12 影子装备
18 商城物品(这是另外一种延迟消耗类物品),在用户使用此物品时,会弹出一个提示窗询问玩家是否使用,只有当玩家当确认后,物品才会被使用并消耗。
———————————————————-
Buy: 物品的默认购买价格(也就是NPC出售此物品时候的价格),如果没有特殊指定的话,这个值会是Sell字段价格的2倍。
———————————————————-
Sell: 物品的默认出售价格(也就是卖给NPC此物品时候玩家能拿到的钱),如果没有特殊指定的话,会是Buy价格的一半。
———————————————————-
Weight: 物品的重量,这里填写1的话,表示物品重量是0.1(比如箭矢),这里填写10的话,才表示重量是1。
———————————————————-
ATK: 武器的攻击力
———————————————————-
DEF: 防具的防御力
———————————————————-
Range: 武器的攻击射程
———————————————————-
Slots: 武器、防具类物品的卡槽洞数
———————————————————-
Job: 可以使用此物品的职业,使用以下掩码:
(2^00): 0x00000001 初学者/超级初学者
(2^01): 0x00000002 剑士
(2^02): 0x00000004 魔法师
(2^03): 0x00000008 弓箭手
(2^04): 0x00000010 服事
(2^05): 0x00000020 商人
(2^06): 0x00000040 盗贼
(2^07): 0x00000080 骑士
(2^08): 0x00000100 牧师
(2^09): 0x00000200 巫师
(2^10): 0x00000400 铁匠
(2^11): 0x00000800 猎人
(2^12): 0x00001000 刺客
(2^13): 0x00002000 这个ID不使用,大家无视就好
(2^14): 0x00004000 十字军
(2^15): 0x00008000 武僧
(2^16): 0x00010000 贤者
(2^17): 0x00020000 流氓
(2^18): 0x00040000 炼金术师
(2^19): 0x00080000 诗人/舞娘
(2^20): 0x00100000 这个ID不使用,大家无视就好
(2^21): 0x00200000 跆拳少年
(2^22): 0x00400000 拳圣
(2^23): 0x00800000 灵媒
(2^24): 0x01000000 枪手
(2^25): 0x02000000 忍者
(2^26): 0x04000000 Gangsi – 国内没这职业,不知道是啥
(2^27): 0x08000000 Death Knight – 国内没这职业,直译是死亡骑士
(2^28): 0x10000000 Dark Collector – 国内没这职业,直译是黑暗收集者
(2^29): 0x20000000 日影忍者/月影忍者(影牙/胧,忍者的二转职业)
(2^30): 0x40000000 反叛者/变革者(枪手的二转职业)
初学者 + 剑士 + 魔法师 + 弓箭手 = 0x0000000F, 为什么这么计算呢?
因为: 10 = A, 11 = B, 12 = C, 13 = D, 14 = E, and 15 = F
这里的数值用的是十六进制!如果是所有职业可用的话,那么是0xFFFFFFFF
———————————————————-
Class: 可以使用此物品的职业类型,使用以下掩码(这名字看着高深,实际上就是把你想允许使用的数值相加就好):
1: 普通职业 (不含 宝宝职业/进阶职业/三转职业)
2: 进阶职业 (不含 进阶三转职业)
4: 宝宝职业 (不含 三转宝宝职业)
8: 三转职业 (不含 进阶三转职业和三转宝宝职业)
16: 进阶三转职业
32: 三转宝宝职业
怎么理解上面这些数字呢?在二转服没有3转的情况下,使用1+2+4(即7)就可以理解为所有职业皆可使用。在三转服有3转的情况下,使用1+2+4+8+16+32(即63)就可以理解为所有职业皆可使用。
———————————————————-
Gender: 可以使用此物品的性别限制,0是只限女性使用/穿戴,1是只限男性使用/穿戴,2是无论男女都可以使用/穿戴
———————————————————-
Loc: 装备的穿戴位置,可选值如下:
2^8 256 = 头饰上
2^9 512 = 头饰中
2^0 001 = 头饰下
2^4 016 = 盔甲
2^1 002 = 武器
2^5 032 = 盾牌
2^2 004 = 披肩
2^6 064 = 鞋子
2^3 008 = 右侧饰品
2^7 128 = 左侧饰品
2^10 1024 = 时装-头饰上
2^11 2048 = 时装-头饰中
2^12 4096 = 时装-头饰下
2^13 8192 = 时装-披肩
2^15 32768 = 弹药/弓箭
2^16 65536 = 影子装备 – 盔甲
2^17 131072 = 影子装备 – 武器
2^18 262144 = 影子装备 – 盾牌
2^19 524288 = 影子装备 – 鞋子
2^20 1048576 = 影子装备 – 右侧饰品(耳环)
2^21 2097152 = 影子装备 – 左侧饰品(吊坠)
———————————————————-
wLV: 武器的等级,0是防具,1是一级武器,2是二级武器……4是四级武器
———————————————————-
eLV[:maxLevel]: 基础等级达到多少时才能双击此物品,比如你希望红色药水只有在20级以上玩家可以使用,那么只需要配置 20 即可。
但是此选项在2015年1月15日rAthena的更新之后,也支持可选的配置使用物品的最大等级限制。比如你想要配置使用红色药水的玩家必须在20~50级之间,那么只需要在20后面加上一个英文的分号,然后写上50即可,比如 20:50 这样~ 详情可见这篇文章《使用物品的最大级别限制》。
———————————————————-
Refineable: 表示此物品是否可精炼,1表示可以精炼,0表示不能精炼
———————————————————-
View: 对于一般的装备来说,这个地方的ID就是他的外观编号,但是对武器和弓箭/弹药类型的物品来说,他们的值时比较特殊的。
对于武器类型的物品来说,这个地方的值可选如下:
0: 空手
1: 短剑
2: 单手剑
3: 双手剑
4: 单手矛
5: 双手矛
6: 单手斧
7: 双手斧
8: 锤子
9: 这个ID不使用,大家无视即可
10: 单手杖
11: 猎弓
12: 拳套
13: 乐器
14: 鞭子
15: 书籍
16: 拳刃
17: 左轮手枪
18: 来复枪/来福枪
19: 格林机枪
20: 霰弹枪/散弹枪
21: 榴弹枪/榴弹发射器
22: 风魔飞镖
23: 双手杖
24: 这个ID不使用,大家无视即可
25: 双刀流-短剑(左手右手都是1把短剑)
26: 双刀流-剑(左手右手都是1把单手剑)
27: 双刀流-斧头(左手右手欧式1把单手斧)
28: 短剑 + 单手剑
29: 短剑 + 单手斧
30: 单手剑 + 单手斧
对于子弹/弹药类型的物品来说,这个地方的值可选如下:
1: 箭矢
2: 投掷用短剑
3: 子弹
4: 炮弹
5: 榴弹
6: 飞镖
7: 苦无/飞刀
8: 加农炮弹
9: 投掷用物品 (三转基因学者丢香蕉的香蕉就是这类物品)
———————————————————-
Script: 当一件物品被使用时或者被装备时,将会执行的脚本代码
———————————————————-
OnEquip_Script: 当一件装备被穿戴时,将会执行的脚本代码。注意:不是所有的加成效果在这里都能生效。
———————————————————-
OnUnequip_Script: 当一件装备被脱下时,将会执行的脚本代码。注意:不是所有的加成效果在这里都能生效。
———————————————————-
当你要添加一个物品的时候,可以按照上面的信息一个字段一个字段的填写,如果拿不定主意的时候,可以想一下游戏里面有哪些物品和你要的一样,然后去看一下它的数据信息是怎么写的,借鉴过来就行 。
给大家布置个作业,去看一下箭矢、发夹[1]的物品数据信息是什么样的,能不能说出他们每个字段的含义?