- 积分
- 869
- Hb
-
- 注册时间
- 2008-8-8
- 最后登录
- 1970-1-1
- 在线时间
- 小时
- 精华
|
本战网成立于2008年4月18日,QQ群:7935950;Gm:天狼≡战 网 玩 家 必 读≡ |
上篇
一、入门篇
首先使用d2excel软件打开skills.txt文件。
有很多数据,不用害怕,我们先熟悉3个字段,就是文件最前面的三列。
Skill是技能的名称,在这里就是游戏中所有技能的名字,你要在之后的修改中慢慢熟悉这些英文。
Id是每个技能在列表中的位置,相信这些数字没有什么难理解的。
Charclass是技能拥有者的名称字段简写。Ama是亚马逊、sor是女巫、nec是亡灵、pal是骑士、bar是小野、dru是小德、ass是刺客。对应skill字段的技能名称,我们可以很容易的明白这是角色使用的210种技能。我们要修改的也就是他们。
入门的修改很容易,还记得在召唤过影子大师之后,当影子被diablo秒杀之后,还要等技能从红色状态变回正常状态时的尴尬局面么?那是技能的延迟所造成的。施法延迟本来是为了避免魔法师使用无差别的强力魔法技乱射而加入的限制。但是由于魔法延迟造成游戏时的节奏中断让人感觉也不好,就仿佛好不容易顶了经验神殿,但是偏偏身上没有了魔法瓶一样。我们现在就把这让人讨厌的魔法延迟去掉。
向右侧拖动,大约在3/5处,我们可以找到delay字段,这个字段就是控制技能延迟的时间的,把这一列清空。好的,入门的修改完成了,将文件保存。加入参数后,运行游戏,是不是所有的魔法技能的施法延迟都消失了。恭喜,你的第一次技能修改已经成功,我们可以开始新的旅程了。
二、基础篇
完成了入门篇的修改,是不是不再惧怕skills文件中的众多字段了,那么我们就开始基础的修改。为了方便你参考教程修改,我将按照不同的功能区域进行讲解。
1。召唤技能区。
召唤技能是最简单的修改对象之一。记得在我最初玩游戏时,没有办法联网,一个人在怪物的世界中挣扎,就是再厉害也没有成功感。相信喜欢使用召唤角色的玩家都梦想者召唤出成群的强力怪物,可惜的是,强力怪物都只能召唤一个,而且德路伊的灵无法重复召唤实在是可惜。不用担心,我们现在就来讲解如何召唤多个强力怪物(例如:女武神、影子大师、熊、石魔等等)
我们将滑动杆拉到大约距左边1/4处,我们看到summon、pettype、petmax、summode四个字段,这就是我们的召唤技能一区。其实要修改的内容很少,只是petmax、summode两个字段的内容。
Summon是召唤物的名称,有些像skill字段,是方便你认识的字段。
Pettype是召唤物的类型,和pettype.txt文件相关,你不用修改。
Petmax字段就是你可以召唤的同类怪物的数量上限。在这里你可以直接填入数字,结果就是即使你只有1等级的该项技能,那么也可以召唤出相应数量上限的怪物。如果你希望合理的增加数量那么向你提供两个字段:1。lvl字段,你可以使用lvl/2或者lvl*2这样你所召唤的怪物数量就会和你的技能相关。当然也可以使用加法或减法。2。如果希望限制数量的上限,那么可以使用
“min(lvl,n)” 这样你没次升级都可以多召唤出一个怪物,然而召唤的数量会有n的限制。当然,字段中的lvl也可以添加运算符。
Summode是个必要的参数,他是你的召唤技能的召唤方式代码。如果希望你的召唤物数量可以超过1,那么就应该将这个参数字段写入S1。比如说,你的影子大师的这个代码就是NU,NU是NULL的缩写,即“空”,所以你即使改了petmax字段,但是如果summode字段没有修改,那么没多召唤出一个影子大师,原来那个就会消失。
好了,这样就修改完了,如果还想修改召唤技能,请看后面进阶篇的召唤技能区。
资源:
召唤物名称:
dopplezon 亚马逊的诱饵;
valkyrie 亚马逊的女武神;
hydra1 女巫的九头火龙,但是是个非正规的召唤技能,不建议修改;
necroskeleton 亡灵的召唤骷髅;
ClayGolem 亡灵的粘土石魔;
Bonewall 亡灵的骨墙,也是比较特别的召唤技能,不建议修改;
Necromage 亡灵的复活骷髅法师;
BloodGolem 亡灵的鲜血石魔;
Bonewall 亡灵的骨牢,非正规召唤术,不建议修改;
IronGolem 亡灵的钢铁石魔;
FireGolem 亡灵的火焰石魔;
Revive 亡灵的复活怪物,很特别,因为复活的怪物形象和尸体一致,这个技能是没有名称的;
boneprison1 diablo的骨牢,不用改了吧;
druidhawk 小德的召唤乌鸦;
plaguepoppy 小德的召唤剧毒花藤;
oaksage 小德的橡木智者;
spiritwolf 小德的召唤鬼狼;
cycleoflife 小德的召唤吸血花藤;
heartofwolverine小德的狼獾之心;
fenris 小德的召唤狂狼;
vinecreature 小德的召唤吸魔花藤;
spiritofbarbs 小德的荆棘之灵;
druidbear 小德的熊宝宝;
bladecreeper 刺客的第一个飞镖,很特别既有投射字段,又有召唤字段,不建议修改;
chargeboltsentry刺客的闪电球陷阱,刺客的陷阱全部都是召唤属性,具体修改在进阶篇会有讨论;
wakeofdestruction刺客的火焰复苏陷阱;
shadowwarrior 刺客的召唤影子;
lightningsentry 刺客的连锁闪电陷阱;
infernosentry 刺客的复活地狱火陷阱;
deathsentry 刺客的尸爆+闪电陷阱;
shadowmaster 刺客的召唤影子大师。
至此,基础篇的召唤区结束,如果希望更深层次的修改请看进阶篇。
2。投射魔法区。
投射魔法区是比召唤区稍微复杂一点的,但是在基础篇中,我们只讨论几种很简单,不牵涉到算法的技能修改。不用担心,很容易,也很有趣。
在很靠近左侧的区域中有几个很重要的字段:srvstfunc、srvdofunc;srvmissile、srvmissilea、srvmissileb、srvmissilec。
其实不用怕,用到的字段并不多。
srvstfunc字段是用来限定技能使用前提的,比如说如果没有箭矢,就无法使用弓箭技能;如果没有标枪,就无法使用标枪投射;如果没有尸体,就无法使用尸爆;没有爪子就无法使用雷爪。当然,如果你希望不配爪子就使用雷电爪,那么把这个字段雷电爪的相应数字23清空就可以了。不过近身攻击技能的修改我在“技能修改详细解说(中篇)”中会有讲解。
Srvdofunc是个最关键的字段,他定义了你的投射技能的方式,现在我们只讲解3种最简单的不牵涉算法的投射技能,分别为螺旋型投射、横向投射和新星投射。
其中螺旋型投射的典型是圣骑士的魔法锤;他的srvdofunc字段代码为73;
横向投射的典型是女巫的火墙;他的srvdofunc字段代码为24;
新星投射的典型是女巫的霜之新星;他的srvdofunc字段代码为22。
请注意一点,在修改投射技能时尽量不要更改已经有srvdofunc属性的技能,这样可能会产生数据冲突,造成we got a big error here的问题。
怎么解决呢,让我们看srvmissile、srvmissilea、srvmissileb、srvmissilec字段,我称他们为投射代码字段区,其实这四个字段中的代码属性都一样,所以很容易扩展。
我们来注意一个细节,如果你用的是d2excel打开的skills.txt文件,那么将横向的滑动杆向右拖动,让srvdofunc字段位于最左侧,那么你恰好可以看到srvmissile字段。如果你仔细观察他们,你会发现,所有在srvmissile字段中有内容的技能,他的srvdofunc字段全部是空的,为什么呢,因为这些技能的投射物的属性不在skills文件中定义,他们直接在missiles文件中定义,包括单一的投射物、二段投射物、波浪式的投射物。他们的显示字段和攻击伤害属性是一致的。所以在srvdofunc字段中就不需要定义了,这些技能就是我们可以用于扩展的资源。
资源:
独立投射物代码:
magicarrow 魔法箭矢;
firearrow 火箭;
coldarrow 冰箭;
poisonjav 剧毒标枪;
explodingarrow爆裂箭;
lightningjavelin闪电标枪;
icearrow 冰冻箭;
plaguejavelin 毒裂标枪;
immolationarrow牺牲之箭;
freezingarrow 冰封之箭;
lightningfury 闪电冲击标枪;
firebolt 火球;
icebolt 冰弹;
iceblast 大冰弹;
fireball 大火球;
lightningbolt 闪电;
glacialspike 冰尖柱;
frozenorb 冰封球;
bonespear 骨矛;
holybolt 圣光弹;
bomb in air 刺客的火焰投射,但是比较特别,不建议使用。
请注意,虽然螺旋型、横向投射、新星投射不牵涉到数量算法,但是在修改时还是要进行投射字段的复制添加。
因为srvmissile字段是默认的投射区,所以在修改时要将其清空,这样在显示时才会美观。
现在我们要把目光转移到下一个投射区,在接近左侧的3/5的位置中有投射技能的代码区域,从cltdofunc字段开始,有cltmissile、cltmissilea、cltmissileb、cltmissilec。现在你理解这个投射区就容易多了吧,cltdofunc字段是技能的图像显示代码,如果你希望你修改出的辉煌技能正常显示,这个字段就是必须要改的了。在这个字段中:
螺旋型投射代码为:35;
横向投射代码为:26;
新星投射代码为:25;
而cltmissile字段和srvmissile字段类似,为了显示的美观我们也要把这个字段中的代码复制到cltmissilea、cltmissileb、cltmissilec中,至此,我们基础篇中的投射技能区的所有字段都拥有了。然后就是例子:针对我在上面给出的独立的投射技能代码,你可以进行以下的修改
1、螺旋型投射:srvdofunc字段修改为73,将srvmissile字段中的投射物代码复制到srvmissilea中。Cltdofunc字段修改为35,将cltmissile字段中的投射物代码复制到cltmissilea字段中。然后就可以存盘完成了。
2、横向投射:srvdofunc字段修改为24,将srvmissile字段中的投射物代码复制到srvmissilea中。Cltdofunc字段修改为26,将cltmissile字段中的投射物代码复制到cltmissilea字段中。然后就可以存盘完成了。补充,这个技能是右键技能,可以凭空施放。
3、新星投射:srvdofunc字段修改为22,将srvmissile字段中的投射物代码复制到srvmissilea、srvmissileb、srvmissilec中。Cltdofunc字段修改为25,将cltmissile字段中的投射物代码复制到cltmissilea字段中。然后就可以存盘完成了。注意,新星技能的投射物数量不在skills文件中,所以投射数量没有办法限制,如果你用他释放大型的投射技能会产生停顿的。
如果你再仔细一些就会发现,所有的有个性的投射技能他们的投射物代码字段都是在srvmissilea、srvmissileb、srvmissilec和cltmissilea、cltmissileb、cltmissilec中,为什么呢,这是因为避免默认的srvmissile和cltmissile中的字段与技能发生冲突,所以我建议你在修改投射技能时将srvmissile和cltmissile中的字段清空。但是是否绝对不能共存呢?也不是,如何将默认技能和扩展技能组合在一起,我会在进阶篇的投射区中给予讲解。
至此,基础篇的介绍就结束了,如果你还能理解,而且希望更深入的进行修改,请继续观赏下面的进阶篇。
三、进阶篇
1。召唤技能区。
我们回到基础篇中提到的召唤技能区,现在我们要看的是召唤物他们的技能区域,就是sumskill1、sumsk1 calc………sumskill5、sumsk5
calc字段。看起来很多,但是其实只是两个字段sumskill、sumsk calc。
你是否记得小德的灵拥有光环、召唤的骷髅法师可以施法、亡灵的火焰石魔拥有圣火光环。这都是这两个字段的威力。
Sumskill字段是召唤物拥有的技能,比如魔法骷髅师的NecromageMissile、火焰石魔的holy fire、橡木智者的Oak Sage Aura。
NecromageMissile是技能文件中的一项,所以说在召唤技能中可以做到技能间的嵌套;而Oak Sage Aura实际上就是一种灵气技能,但是你没能用,让你的灵用了。当然最明显的还是刺客的陷阱技能,刺客的陷阱技能是召唤属性,但是陷阱会发射魔法,却是因为陷阱使用的他所拥有的魔法技能。所以你可以在技能中添加让召唤物拥有光环、或者说让你的陷阱投射出两种不同的魔法。在后面的例子中你可以轻易的明白。
sumsk calc字段是怪物的技能等级,你同样可以使用lvl字符串,这样你的怪物拥有的技能就会和他本身的技能一致,在我的补丁中,火焰石魔的圣火威力就会根据等级改变。你还可以使用"min(lvl,n)"字段来限制召唤怪物的私人技能。一切由你作主。
对于怪物的技能添加要注意一些事情,例如影子大师是不能添加灵气技能的,而德路伊的灵也是不能添加攻击技能的,所以很多扩展还需要你自己去探索。想更进一步,看后面的资深篇吧。
2。投射魔法区。
我的第一个投射魔法修改不是新星、也不是螺旋、更不是横向,说实话,横向是我刚刚发掘出来的。我第一个投射魔法是改的多重攻击。就是多重投射打开了我修改技能的大门。
记得在刚刚拥有了第一个BT物品后,我用亚马逊不停的打物品,那时用的就是亚马逊的多重箭。但是多重箭威力太弱,我一直梦想着拥有着多重攻击能力的冰封之箭。所以我就开始了修改技能的探索。
我将多重箭和牙放在一起做比较,终于发现了规律。现在就让我们深入投射魔法区去学习拥有数量叠加的技能修改和新式的组合魔法。
经过了基础篇中的投射魔法的学习,相信你对于这两个投射区已经比较熟悉了,但是现在我们还要详细的说明另外一个属性区:字段calc1、*calc1 desc、………calc4、*calc4
desc和param1、*param1 description、………param8、*param8 description。
其实也就是calc、*calc desc和param、*param description。现在我们就讲解一下:
以多重攻击和网状攻击为例。
多重攻击的技能有两种,分别是亚马逊的多重箭和亡灵的牙,他的srvdofunc代码是8、cltmissile字段代码是17。
网状攻击的技能有一种,还有类似的三种,例如女巫的闪电球,女巫的闪电代码是通用的。他的srvdofunc代码是17、cltmissile字段代码是23。
之所以提到这两种技能是因为多重投射和网状投射是可以通过算法来增加投射物的数量的,只是这里又会牵涉到字段calc1、*calc1 desc、………calc4、*calc4
desc和param1、*param1 description、………param8、*param8 description的内容。
现在我们看多重攻击的srvmissile字段区,这个字段里面是空的,但是后面的Sa(S是srvmissile的缩写)是拥有投射代码的,Sb、Sc为空。而相应的cltmissile字段区,这个字段里面为空,后面的Ca、Cb是拥有投射代码,但是Cc是为空的(C是cltmissile的缩写)。所以你在修改时就要注意,把相应的投射物代码填入应该的字段内。
我们再来看网状攻击的srvmissile字段区,这个字段里面是空的,但是后面的Sa、Sb、Sc(S是srvmissile的缩写)是拥有投射代码的。而相应的cltmissile字段区,这个字段里面为空,后面的Ca是拥有投射代码,但是Cb、Cc是为空的(C是cltmissile的缩写)。同样你在修改时要注意,把相应的投射物代码填入应该的字段内。
到现在为止,我们还是温习基础篇的教程,让我们来看一看如何使你的魔法随等级的提高而变的更多吧。
在calc、*calc desc字段区,我们定义了你的投射物的数量算法公式。
多重攻击的算法比较复杂需要两个公式1。*calc desc字段的#missiles他是你投射物数量定义的字符串。注意#missiles是一个通用的投射物参数名称,任何投射技能的投射物类别字段都可以由他代替。2。*calc
desc字段的activation frame是激活投射叠加的字符串。
网状攻击的算法就比较简单,只用一个公式,即*calc desc字段的#missiles,他定义了你投射的数量。
相应的calc字段区对应后面的*calc desc字段。
当后面是#missiles时,calc字段的内容是代表投射物的数量,一般用的是 “min(ln12,24)”。我的上一个教程中对于字段“min(ln12,24)”他的解释错了,这里给予校正。ln12、ln34、ln56是最常用的三种简写字段,他们代表的意义是数字。和param1………param8区相关。ln12=param1+lvl*param2;ln34=param3+lvl*param4;ln56=param5+lvl*param6。所以说你的投射物的数量在字段“min(ln12,24)”的定义下是和后面的param1与param2的数值相关的,且最大值小于24。
当后面是activation frame时,calc字段的内容是代表投射物的叠加属性,一般用的是相应的param字段,使用par1或par2、par3、par4一直到par8不定。至于使用那个字段还要和param1、*param1 description、………param8、*param8 description区相联系。
因为calc字段区使用的全是代表数值的字符串,所以该字段的内容也支持运算,例如使用ln12/2就可以有效的限制你的投射数量。
在param、*param description字段区中定义的是相应算法的属性。
对于多重攻击,需要填入的字段有两个,对应前面的两个calc、*calc desc字段区的内容,分别是number of missiles、additional missiles per level,这两个字符串都要填入*param description字段中,而在param字段中只能填入与后面的*param
description字段中定义属性相对应的数字。
例如number of missiles定义的是投射物的基础数量,就是基数。则前面的param字段一般为2或3。additional missiles per level定义的是投射物每次升级后增加的数量,就是增量。一般前面的param字段为0或者1,你也可以填入2,这样每次升级就会增加2个投射物。当然这要依靠前面calc、*calc desc字段区中的内容定义。
对于网状攻击,填入的内容和多重攻击是一样的。因为number of missiles、additional missiles per level是通用的参数。
例子:
多重攻击的相应参数:srvdofunc字段修改为8,将srvmissile字段中的投射物代码复制到srvmissilea中。Cltdofunc字段修改为17,将cltmissile字段中的投射物代码复制到cltmissilea字段和cltmissileb字段中,*calc desc字段中填入# missiles和activation frame,calc中填入你希望的算法公式以及对应的param位置,*param description字段中填入number of missiles和additional missiles per level,param中填入你给出的基础数字。
网状攻击的相应参数:srvdofunc字段修改为8,将srvmissile字段中的投射物代码复制到srvmissilea中。Cltdofunc字段修改为17,将cltmissile字段中的投射物代码复制到cltmissilea字段和cltmissileb字段中,*calc desc字段中填入# missiles和activation frame,calc中填入你希望的算法公式以及对应的param位置,*param description字段中填入number of missiles和additional missiles per level,param中填入你给出的基础数字。
至此,你拥有了一个可以升级的投射技能,针对我在基础篇中给出的独立投射代码,你可以随意的修改,但是注意,二段投射技能是无法进行投射物的数量运算,所以,一般二段投射技无法叠加。
你是否还意犹未尽?是否想尝试更深层次的技能组合,请继续看资深篇。
四、资深篇
1。召唤技能区。
我们回到召唤技能区,来看一看召唤怪物所拥有的私人技能。
首先我们想到的是骷髅法师的魔法,啊,是叫做NecromageMissile的一种技能,你是不是常常为骷髅法师可以施放出四种不同的魔法而感到惊奇,抱歉了,那不是在skills文件中定义的。我们可以找到NecromageMissile技能,ID=338是一种很简单的投射魔法,如果你真的希望可以改的更辉煌一些,也可以参考基础篇和进阶篇的投射魔法区的教程,不过要小心,如果有怪物使用和你一样的魔法时,不要说我没有提醒你。
我们今天的教程主要是关于刺客的陷阱的。
因为刺客的陷阱是召唤物属性,但是却又体现出魔法投射的威力,所以作为一个最好的例子用来讲解召唤技能的技能嵌套,即召唤怪物的私人技能的修改。
首先我们看召唤陷阱中的火焰复苏,啊,是个很美丽的技能,投射出火焰的波浪。但是我希望他在投射火焰波浪的时候还可以施放出冰系的魔法。其实很容易,在sumskill字段区里面添加就可以了,字符串为skills文件中定义有的技能。然后在sumsk calc字段区里面加入等级算法代码字段就可以了。
但是为了让你的怪物的的确确可以使用到你新添加的技能,那么还需要在monstates.txt文件中进行怪物的相应的技能添加,这里不再做解释,如果需要请参考monstates.txt的文件引导。
这里要解释一下在sumsk calc字段区中常见的一种字符串skill('skillsname'.blvl),一般对应前面的sumskill字段中的skillsname。这是使召唤技能相互间产生加成效果的参数定义。例如skill('Dodge'.blvl)代表女武神获得dodge的技能,其等级按你的dodge的技能等级增长。还有就是刺客的陷阱中,相互技能间的加成效果也是类似的。所以你可以为你的召唤物添加你最得意的技能,并且相互间还会产生加成效果。
如果你还不满意,那么就可以通过sumskill字段中的原始数据找到技能所在的位置,然后进行修改,想改成什么样子就看你的爱好了。
因为技能间的嵌套组合太多了,所以就不给出解释,如果你通过了基础和进阶篇的教程,那么相信你在资深篇中的召唤会很轻松的。
2。投射魔法区。
在基础篇和进阶篇中,我们修改的主要还是独立的投射魔法。但是大多数的魔法都是已经定义了特别的攻击方式了,所以要对投射魔法进行进一步的扩展就需要研究那些并非常规的投射魔法技能。
第一步:
我们先从两个投射魔法区进行逐个的比较和解释。
首先我们来看一下女巫的闪电弹:
女巫的闪电弹,由于是特殊的攻击方式,所以arvmissile字段区都被占用,且srvdofunc字段已经有定义,但是我们来看srvmissile字段区(包括a、b、c)和cltmissile字段区。这两个区域中的投射物字符串都是chargedbolt,这就说明chargedbolt本身也是一个威力属性与显示图像字段一致的独立的投射代码。即chargedbolt的属性定义在missile文件中完全定义了。
然后我们来看一下亚马逊的多重箭,在srvmissile字段区和cltmissile字段区中出现了两个不同的字段代码,分别是multipleshotarrow和multipleshotbolt。这就意味着,这个技能是一个由多个投射物代码组合形成的投射技。所以这种投射物代码不利于扩展。同样,我们可以看到女巫的火墙、地狱火、亚马逊的炮轰等都不是独立的投射。
为什么讲这些呢,为的是对基础篇中的独立投射物代码字段进行补充。因为如果只是希望改变投射物的样子而不修改其原有投射方式,那么仅仅需要将投射物代码进行替换就可以达到修改效果。
资源:补充的独立投射物代码
guidedarrow,亚马逊的导引箭,因为定义有跟踪属性,不建议修改;
chargedstrikebolt,亚马逊的闪电攻击和女巫的闪电球一致;
lightningstrike,亚马逊的闪电攻击和女巫的闪电一致;
chargedbolt,女巫的闪电球;
frostnova,霜之新星,不建议修改;
nova,新星,不建议修改;
chainlightning,连锁闪电,但是属二段投射,不能进行数量叠加;
meteorcenter,陨石,坠落技;
blizzardcenter,暴风雪,坠落技;
teeth,亡灵的牙;
poisonnova,剧毒新星;
bonespirit,骨灵,有跟踪属性,不建议修改;
blessedhammer,骑士的魔法锤;
firestormmaker,德路伊的地火蔓延;
erruption center,德路伊的地裂,坠落技;
twister,德路伊的小旋风;
shockwave,变成熊时的震波;
tornado,德路伊的大旋风;
shock field in air,刺客的电网投射,比较特别,不建议修改其代码;
第二步:
了解了可以用来进行修改的技能之后,我们来看一下这些投射物在不同的形式下的表现:
A。螺旋型:由于螺旋型的魔法要求魔法投射物的投射距离相当长,所以在不改变missile文件中投射物飞行距离的情况下,投射物一般将威力范围会相当的小,并不是很好的扩展形式。
B。横向型:横向型的典型是女巫的火墙,firewallmaker从你鼠标点击的位置开始向垂直于你的方向的两侧延伸,是一种非常好的扩展形式。但是由于投射物字段的限制,相当的投射技能在进行横向扩展时会出现有威力,但是却没有显示的结果。只有个别的投射技能显示是正常的。分别是:
亚马逊的两个剧毒标枪;
女巫的火墙和冰峰球;
德路伊的火焰风暴。
已经测试过无显示的是:
亚马逊的冰封之箭和牺牲之箭还有闪电投射;
女巫的冰尖柱和闪电链;
德路伊的火焰滚石。
其他的投射没有测试,你可以自行测试。
C。新星型:这个形式已经被大家很好的测试过了,几乎所有的投射物都可以用新星技能进行扩展,但是新星型的数量是固定的,在扩展时要考虑到技能对电脑运算的影响。
D。多重攻击:这个形式也已经比较成熟,唯一的BUG就是会产生算法的错误,只要你在扩展时注意到可以扩展的par字段和适当的missile算法就可以了。投射物会以扇型的形式向外发射。这个技能也是很好的扩展形式,尤其是可以通过玩家的升级来实现威力的叠加,比起新星技能有着很大的优势。同时也是最实用的扩展形式。
E。网状攻击:这个技能由于会发生投射物之间的交错飞行,所以在图像显示上比多重攻击更加复杂,而且攻击的准确率比较底,是个好看不中用的扩展形式。所以最好只是对低等级的投射魔法进行扩展。
熟悉上面的特征后,我们资深篇的第二步就结束了。
第三步。
如果希望很好的扩展投射技能,那么你必须对所有的投射物的大致表现形式有一定的了解。
首先是单一的简单的投射物,即投射物是一个个体,像箭矢、火球等,这一类的扩展没有任何限制,适用于多重、网状。
然后是在地面蔓延的投射物,即女巫的火墙、德路伊的地火蔓延。这类投射物适合用于横向型扩展和螺旋型扩展,因为在投射物经过后会产生持续的魔法效果。
接下来的是具有投射轨迹的投射物,比如女巫的冰峰球、亚马逊的剧毒标枪。因为这种投射技能如果使用多重攻击会产生持续的大面积的魔法效果,对于电脑的运算极为不理,所以不建议进行叠加扩展。因为可以显示轨迹,所以极为适用于横向型投射,而冰峰球如改为螺旋投射更会产生保护角色的效果。
最后是两种比较特别的投射个体,分别是刺客用陷阱技投射出的火焰波浪和巴尔的冰属性波浪。他们的代码字段分别为wake of destruction maker和baal
cold maker;大家注意maker字段,很多投射代码都有maker比如说dialbo的diabwallmaker,这些技能的显示定义是连续的一串调用,在missile中,有些类似二段投射。你可以直接调用投射代码产生相应效果,但是由于二段投射不支持数量叠加,所以建议用于螺旋、横向扩展,而用于新星扩展则威力过大,不建议。更好的方法是将其用于组合技的扩展,组合技能也是我们资深篇要讲的内容,也就是最后一步,让我们来看看如何进行不同投射技能的组合。
第四步:
还记得我们在基础篇和进阶篇中,为了显示美观将cltmissile、 srvmissile字段中的投射代码清空的步骤么。cltmissile和srmissile字段中的内容是什么呢?这两个字段中的投射物代码不需要任何定义,只要两个字段中拥有同一个独立投射物代码字符串,那么程序就会调用默认的处理函数,将投射技能显示出来。即srvdofunc和cltdofunc字段不会对cltmissile和srmissile产生任何影响。如果你在cltmissile和srmissile字段中填入一个独立的投射物字符串,然后在cltmissilea、cltmissileb、cltmissilec和srmissilea、srmissileb、srmissilec字段区填入不同的投射物字符串,那么后者就会调用rvdofunc和cltdofunc字段中的定义来处理cltmissilea、cltmissileb、cltmissilec和srmissilea、srmissileb、srmissilec字段区中的数据。所以变会产生技能组合的现象。
技能组合是否合法?你可以看到其实有些投射魔法本身的cltmissilea、cltmissileb、cltmissilec和srmissilea、srmissileb、srmissilec字段区中的字符串就不统一,因为本身rvdofunc和cltdofunc字段定义的算法就是组合算法。
方向性:因为默认的投射区显示是将投射物从角色所在点向角色所面向的方向发射出去,所以对于网状、多重、新星攻击来讲,默认的投射物反而会造成显示上的不美观;但是对于螺旋投射和横向投射就会产生直线穿越螺旋圆环和十字型或三星型的美丽效果。可惜的是拥有投射轨迹的投射物字符串代码不多,现在已经测试的就上面的几个。
对于剧毒标枪和火墙类来讲会由于毒气、火焰的延迟效果产生十字型的显示效果;而对于冰峰球和短距的地火蔓延来讲就会产生三星型的显示效果。
但是由于默认投射物可以与扩展型投射物不一致,所以你的组合模式就可以完全打破传统的观念。要注意一点,不同魔法属性的投射物所需定义的魔法威力加成并不相同,如何加成在上篇的外传中将有介绍。所以我建议在进行不同的投射物的组合时,挑选魔法属性相同的投射技能进行设计。
|
|