(1)、 首先说明,这篇文章是支持怀旧魔兽3.35版本的WOTLK的修改教程
(2)本教程用到的工具和文件:
1:(DBC文件编辑工具): http://www.523play.com/thread-457-1-1.html
2: (用于打开MPQ文件): http://www.523play.com/thread-371-1-1.html
3:能够相互转化十进制和十六进制数的计算器,windows自带的也可
4:三个DBC文件:Spell.dbc,SpellDuration.dbc,SpellItemEnchantment.dbc
修改步骤:
1: 备份要修改的DBC文件
2: 用MyDbcEditor编辑修改DBC文件,将修改后的文件替换服务端DBC文件。
DBC文件位置:服务端安装目录wow_serverdbc(该步骤比较复杂,在后面详细举例介绍)
3: 将修改好的DBC文件压制到客户端patch-zhTW-n.MPQ文件中(第二步DBC文件修改后并替换原服务端DBC文件后,技能效果已经变为修改后的效果了,不过在技能说明和显示上还是以前的,技能效果与技能说明不一致总觉得别扭,因此就要把DBC文件压制到客服端patch-zhTW-n.MPQ文件中,当然,如果你不在意这点小问题,把这步无视掉也可以。)
具体方法:
1:打开WinMPQ工具,新建一个文件,文件名:patch-zhTW-n.MPQ ("n"代表一个数字,按以下方法确定“n”的大小:打开客服端的Data文件夹下面的zhTW文件夹,里面有几个这种名称样式的MPQ文件,看看名称最后一个数字最大的那个文件的数字是多少,“n”要比这个数字大,例如你客服端里有"patch-zhTW.MPQ","patch-zhTW-2.MPQ"和"patch-zhTW-3.MPQ"这三个文件,那么"n"应该大于3,新建文件的名称是:"patch-zhTW-4.MPQ"或"patch-zhTW-5.MPQ"等)
2:假定你已经修改好"Spell.dbc"这个文件,点击“添加文件”按钮,选中你修改好的"Spell.dbc"文件,点击“确定”按钮后,会弹出一个输入框,在里面输入如下内容:"DBFilesClient\",如图:
然后按“确定”,这样,新DBC文件的MPQ文件就压制好了。把压制好的MPQ文件复制到客服端的DatazhTW文件夹下面后,修改完成,就可以进游戏去测试你修改后的技能了。
注意:
尽量不要修改客服端的"patch-zhTW.MPQ""patch-zhTW-1.MPQ"这几个原文件,自己建的MPQ文件也尽量不要多次删除和添加dbc文件,而是最好新建MPQ文件,因为MPQ文件每删除添加一次DBC文件,就会增大几十MB,经过多次删除添加后,体积就会大的吓人。
三个DBC文件的说明: Spell.dbc: 所有的职业技能,专业技能,种族和职业天赋,物品所带技能以及NPC的技能都在里面。
SpellDuration.dbc: 该文件控制技能的持续时间
SpellItemEnchantment.dbc: 所有附魔技能都在里面,包括附魔专业技能,珠宝,护甲片等永久附魔的技能和物品,还包括磨刀石,平衡石等临时性附魔的技能和物品,还有,装备的前缀
例如“力量之”等附魔效果也在里面
Spell.dbc文件修改总体介绍:
1: DBC文件用MyDbcEditor工具打开后,注意工具左下角打钩的地方与下图保持一致,否则里面每列的序号可能与本贴中介绍的不一致
2: DBC文件里面有的列中的值是以"0x"开头的,那表示这是16进制的数,碰到这种数字,就需要用计算器转化成十进制("Ox"只是一个16进制的标识,不要转化)
3: Spell.dbc常用列说明: Wotlk Spell.dbc 说明
例如:
30 技能冷却时间(单位:毫秒)
31 技能族冷却时间(同一技能的不同等级共享此冷却时间 单位:毫秒)
36 技能触发几率,例如填"30",那么该技能触发几率就是30%
37 技能能触发的次数
41 技能持续时间(持续时间由"SpellDuration.dbc"文件控制,此处是时间索引,与"SpellDuration.dbc"文件中的ID列对应
42 技能消耗的能量类型 0 法力 1 怒气 3 能量 6 符文能量
50 技能的最大堆叠次数,例如盗贼的致命毒药最多堆叠5次,就由此列控制
72,73,74 buff类技能此列值为6,永久附魔为53,临时附魔为54
81,82,83 技能的效果,数值为实际值-1,例如王者祝福加所有属性10%,那么该技能81列的数值为9,致死打击使目标的治疗效果降低50%,那么该技能81列的数值为-51。
需要注意的是有的技能效果由两列控制,例如圣骑士天赋"圣光之触",
81和83列控制法术能量加成,82列控制极效治疗的治疗量。
93,94,95 魔法有效距离,范围法术的有效范围(实际距离和范围由"spellradius.dbc"文件控制,此处为索引,与"spellradius.dbc"文件中的ID列对应)
99,100,101 技能发动间隔,即多长时间发动一次
105,106,107 效果链的作用数量,例如命令圣印使普通攻击额外伤害2个敌人,相当于技能效果的链接数是3个,那么在105列的数值是十六进制的"0x3"。
111,112,113 假如是附魔技能,该列的值对应"SpellItemEnchantment.dbc"文件中的技能ID
117,118,119 由此技能触发的另外的技能
142 技能或buff的标题,名字
159 技能的等级说明或天赋标识
176 技能的说明
193 buff的说明
213 多目标技能的最大作用数量,数值为实际值+1,例如神圣风暴最多可对4个目标造成伤害,该列的值为5。
下面介绍几个实例:
实例1:
"正义之锤(ID:53595)"技能的修改(这类技能没有触发技能,是最好修改的技能)
技能效果: 用战锤攻击当前目标和最多2个邻近的额外目标,每秒造成4倍于主手武器伤害的神圣伤害。
修改效果: 用战锤攻击当前目标和最多9个邻近的额外目标,每秒造成12倍于主手武器伤害的神圣伤害。
修改位置: 1: 该技能能攻击3个目标,105列原始数值为0x3,修改成能攻击10个目标,数值应改为0xA(十六进制数值,对应十进制数值为10)2: 83列数值用于控制造成多少倍主手武器伤害的神圣伤害,原效果是4倍武器伤害,因此数值是3,现要改为12倍武器伤害,把数值修改为11就可以了。
修改完后保持到客户端,然后根据一楼第三步压制MPQ文件后就全部修改完毕
关于176和193列技能描述的说明: 技能描述中关于数值的部分有两种情况,第一种情况用的是变量,
例如"正义之锤"的描述:“對當前目標及其周圍最多${$x1-1}名額外的目標施展錘擊,造成相當於主手武器每秒傷害$s3倍的神聖傷害。”
其中“${$x1-1}”和“$s3”就是变量,其值随对应列中的数值变化而变化,“x1”对应105列,s3对应83列,不管改不改技能实际效果,这种描述都不需要更改。
第二种情况用的是常量,例如命令圣印的描述:“所有的近戰攻擊均可額外造成${0.36*$mw}到${0.36*$MW}點神聖傷害。當你的攻擊或技能擊中單體目標時,此額外的神聖傷害將會同時擊中2名額外的目標。命令聖印可持續$d。”
这段描述中攻击目标数量用的就是常量,假如你修改了该技能的攻击目标数量,那么在技能描述中也要做相应修改,否则游戏中描述会与实际效果不一致。
常见变量与列数的对应:
h 对应 36
n 对应 37
d 对应 41
u 对应 50
s1, m1 对应 81
s2, m2 对应 82
s3, m3 对应 83
o1=s1*d/t1 通常表示持续性伤害或回复法术的总伤害或回复总数值,这时81列通常表示每秒的数值o2,
o3与o1类似
a1 对应 93
t1 对应 99
x1 对应 105
i 对应 213
=s1(或s2或s3)*d/(t1或t2或t3) 通常表示持续性伤害或回复法术的总伤害或回复总数值,这时81列通常表示每次发动的数值
变量的其它情况:
1: "$20982s1" 这个变量中的“20982”是技能ID,整个变量对应的位置是ID为20982的技能的第81列,出现这种变量的时候表示当前修改的技能的某个效果是由另外的技能控制的
2: "$/1000;s1" 这个变量中的“/1000;”表示把该技能的第81列中的数值除以1000
实例2:
“神圣震击 lv1(ID:20473)”技能的修改(该技能的效果由其它技能引发)
技能效果: 以神圣能量冲击目标,对一个敌人造成314到340点神圣伤害,或者为一个友方目标恢复481到519点生命值。
修改目标: 将伤害和回复生命提升3倍首先查看该技能81,82,83列的值,发现都是0,出现这种情况的时候别急,看看技能描述:“以神聖的能量衝擊目標,造成$25912s1點神聖傷害,或為盟友恢復$25914s1點生命力。”
上述描述中有两个变量:“$25912s1”和“$25914s1”分别对应技能ID号为25912和25914这两个技能的81列,由此可知ID为25912的技能控制伤害,ID为25914的技能控制生命恢复,找到这两个技能的81列,里面的数值是313和480,刚好比技能效果中的最小伤害值和回复量小1,那么将这两列的数值先加1,再乘以3,最后减1,就达到预期的修改效果了,DBC文件改好了就是MPQ文件的压制了
PS:上面例子中的81列都是最小伤害和最低回复量,最大值没列出来,估计是通过代码控制的,所以也不用去修改,后面还有很多这种情况的技能。
触发技能的修改: 许多技能都有触发技能,这种技能的117或118或119列中都有触发技能的ID,技能描述的变量里面也都会有触发技能的效果的描述,样式与实例2差不多,这时候别忘了连触发技能一起修改
小技巧: 仔细分析技能描述中的变量,根据变量和117-119列中的ID数值可知控制技能某一个效果的技能ID的列
装备附带技能的修改实例:
修改物品: 双手剑“影之哀伤(物品ID:49623)”
物品技能: “装备:你的近战攻击有一定几率从目标体内抽出灵魂残片,并使你的力量提高30点。当灵魂残片累积到10枚时,它们将会释放并触发森罗万象,由15码范围内的所有敌人分摊1900到2100点暗影伤害,并让你获得270点力量值,持续10秒。”
改后效果: “装备:你的近战攻击有一定几率从目标体内抽出灵魂残片,并使你的力量提高300点。当灵魂残片累积到3枚时,它们将会释放并触发森罗万象,由15码范围内的所有敌人分摊19000到21000点暗影伤害,并让你获得2700点力量值,
持续30秒。”
修改步骤:
1: 知道该物品技能的ID是修改的前提,首先启动WEB服务器,再打开“NaviCAT”,在“world”数据库的“Item_template”表中找到物品影之哀伤,在该物品记录的“spellid_1”列中的数值就是影之哀伤附带技能的技能ID,ID号为71903(如果你不知道怎么确定物品的ID,抱歉,请去论坛找资料,这不是本主题的讨论范围)
2: 在spell.dbc中找到id为71903的技能,该技能的81,82,83列中的值全为0,
再看技能描述:“你的武器攻擊有一定的機率吸取一塊靈魂碎片,賦予你$71905s1點力量。
當你獲得$71905u塊靈魂碎片時將會釋放混沌災厄造成$71904s1點暗影傷害,此傷害將由$71904a1碼範圍內的所有敵人共同分擔並賦予你$73422s1點力量,持續$73422d。
”通过该描述可知力量的奖励和靈魂碎片的累积数量分别由ID为71905的技能的第81列和第50列控制,靈魂碎片累积满之后的暗影伤害由ID为71904的技能的第81列控制,而力量的奖励和持续时间则由ID为73422的技能的第81列和第41列控制。
3: 实际修改:首先把ID为71905的技能的第81列和第50列数值修改为200和3,再把ID为71904的技能的第81列修改为18999,最后把ID为73422的技能的第81列和第41列分别修改为2699和9。这些都改好后就按一楼的方法压制MPQ文件,最后就是进游戏测试实际效果了。
4: 41列技能持续时间的修改详解: 41列里的值不是实际的时间,而是与SpellDuration.dbc文件中的时间的ID相对应,SpellDuration.dbc文件中第1列为ID ,第2列和第4列为持续时间,单位毫秒。本例中41列的原始值为1,对应SpellDuration.dbc文件中的ID为0x1的行,该行第2列和第4列的值是10000,正是10秒,现在要改为30秒,
方法1: 将SpellDuration.dbc文件中0x1的第2列和第4列的值改为30000,不过这种方法会将游戏里其他公用这个ID的技能的持续时间同时修改,因此不建议用这种方法。
方法2: 在SpellDuration.dbc文件中查找时间为30000的ID,发现是0x9,对应的十进制数是9,那么返回到Spell.dbc文件的相关技能的第41列,把值改为9,既修改完成。
假如在修改其他技能的持续时间时,找不到你要修改的持续时间,例如10小时,新建一行就可以了,方法如下: 在SpellDuration.dbc文件中任意位置点击鼠标右键,选中"Insert Line...",在弹出对话框中填入ID,确定后在新建的列中的第2列和第4列中填入持续时间的数值,例如10小时应填入:"36000000".
PS: 卷轴,药品,绷带,食品和饮料等物品效果的修改方法都与此例类似
附魔技能(包括珠宝,磨刀石,护甲片的属性以及物品前缀效果)的修改实例
SpellItemEnchantment.dbc文件常用列介绍:
6 - 8 , 9 - 11 技能的属性值,6和9,7和10,8和11列中的值一样,即同一个属性同时
由2列或4列控制
12,13,14 可能的情况:这3列中的值为spell.dbc文件中的技能ID,会触发spell.dbc文件中相应ID的技能20 附魔技能的标题(在装备上的附魔效果显示等)
实例1: “附魔法杖 - 法术能量(ID:62959)”
技能效果: “永久性地为一把法杖附魔,使其获得法术强度提高69点的效果。该装备等级不得低于60级。”
修改效果: “永久性地为一把法杖附魔,使其获得法术强度提高690点的效果。该装备等级不得低于60级。”
首先在spell.dbc文件中找到该技能,然后找到第72列和111列,73列的值为53,可知这是一个永久性的附魔,第111列的值为3855,对应SpellItemEnchantment.dbc文件中ID为3855的技能,现在打开SpellItemEnchantment.dbc文件找到ID为3855的技能,该技能标题为“+69法術能量”,刚好与附魔技能的技能效果一致,再分析6到11列,发现第6列和第9列数值为0x45(十进制数值为69),其它的数值都为0,那么在第6列和11列输入690并回车,工具会自动转换成十六进制数值0x2B2,然后把第20列的描述作相应的修改,至此,该附魔技能修改完成,简单吧!
实例2: “附魔披风 - 抗性(ID:13794)”
技能效果: “永久性地为一件披风附魔,使它获得所有魔法抗性 + 3的效果。”
首先依前例中的方法找到SpellItemEnchantment.dbc文件中附魔ID,ID号为903,进入之后发现6 - 11列数值全为0,这时候别急,继续看12 - 15列,发现12列数值为13796,那么13796即对应spell.dbc文件中ID为13796的技能了,打开spell.dbc文件中的该技能,依第二楼的修改方法修改即可,ID为13796的技能改好了再返回SpellItemEnchantment.dbc文件修改第20列的描述。
PS: 有部分附魔技能的属性是由SpellItemEnchantment.dbc文件和spell.dbc文件一起控制的,即SpellItemEnchantment.dbc文件控制几个属性,spell.dbc文件控制另几个属性
|