一直以来有很多GM在问如何增强魔法技能威力!也见到过好多GM发的图片!像一些装备介绍写的“冰咆哮威力增强20%”或者“灵魂火符威力增强20%”之类的!这些新引擎我没见过不知道怎么实现的!这里我只讲Hero怎么用魔法触发达到同样的效果!当然这是一路偏门!大家就当是一剂偏方不见得能解决所有问题但是对于一些疑难杂症也是颇具效果的!
以前曾发过一个对魔法触发见解的一个帖子!这次为了更直观一些就用命题的方式来说明下!首先做个简单的命题!比如戴上一把可以增强冰咆哮威力20%的刀,那么怎么能让玩家在使用冰咆哮的时候威力增强20%呢?这里我们要用到魔法触发的三段加在QFunction—0里面!分别是[@MagSelfFuncX]此段是当鼠标放于空白或者自身位置时触发,[@MagTagFuncX] 此段是当鼠标放于目标人物时自身触发,[@MagMonFuncX]此段是当鼠标放于目标怪物时自身触发!因为使用技能时鼠标是这三个位置的其中一个所以这三个都要写上!那么先说第一种方法用攻击力倍数来实现,我们可以这么写:
如需浏览请[hide=1000]
[@MagSelfFunc33]
#IF
checkitemw 屠龙宝刀 1 ;假设这把刀名字叫屠龙宝刀
#ACT
POWERRATE 120 1 ;这里设定使用技能时触发攻击力倍数为1.2倍执行1秒
break
[@MagTagFunc33]
#IF
checkitemw 屠龙宝刀 1
#ACT
POWERRATE 120 1
break
[@MagTagFunc33]
#IF
checkitemw 屠龙宝刀
#ACT
POWERRATE 120 1
break
那么好这样的话你在使用冰咆哮的时候只在一瞬间即可得到1.2倍攻击!就相当于用了这把刀比不用这把刀打出来的威力增强20%!当然这里存在一个误区!即冰咆哮威力增强20%的效果不等于攻击力为1.2倍时的效果!所以我要说一下我也只是假设增强20%跟攻击力增强20%是1:1的比率!如果你闲的蛋疼可以把这个比率自行修改一下!当然这样的话也会出现一个提示!即:你的攻击力倍数为1.2倍延时1秒!这个提示我想不出什么办法把他取消所以再来看第二种办法!给人物瞬间增强一下魔法力!这里由于字数原因我只写一段了哈!
[@MagSelfFunc33]
#IF
checkitemw 屠龙宝刀 1
#ACT
MUL N1 <$MC> 20
DIV N1 100
MUL N2 <$MAXMC> 20
DIV N2 100
ChangeHumAbility 7 + <$STR(N1)>
ChangeHumAbility 8 + <$STR(N2)>
DelayCall 10 @消失
break
[@消失]
#IF
#ACT
ChangeHumAbility 7 – <$STR(N1)>
ChangeHumAbility 8 – <$STR(N2)>
BREAK
这里用到了一个乘除法的运算!只在一瞬间人物魔法上限和下限各加了20%!10毫秒以后又被减掉!其实也是变相的给予了1.2倍攻击!效果基本是一样的!这里的这个延时命令我不排除会存在BUG!但是测试过程中没发现因为秒这个单位很小毫秒就更小了!
好了我要说的就这两种方法!第一种比较简单但是会出一个该死的提示!第二种其实也不难大家可以当做是一个公式来理解!下面我们再做一个复杂点儿的命题!这次要用到自定义变量!比如就像前几天某位GM提的那个我的服里面设置一个果子,每吃一个冰咆哮效果增强1%!另外我再加一点!我这里穿了两件增强威力的装备一把刀增强20%一个戒指增强10%!假设已经吃掉了15个果子!那么QManage[@login]先来定义!
[@login]
[@Login]
#if
CHECKLEVELEX > 0
#ACT
VAR Integer HUMAN JN
LOADVAR HUMAN JNWL ..\QuestDiary\技能系统\技能变量.txt
同样的QFunction—0写触发!一个是吃果子触发一个是佩戴装备触发
[@StdModeFunc51]
#ACT
CALCVAR HUMAN JN + 1
SAVEVAR HUMAN JN ..\QuestDiary\技能系统\技能变量.txt
[@TakeOn1]
#IF
checkitemw 屠龙宝刀
#ACT
CALCVAR HUMAN JN + 20
SAVEVAR HUMAN JN ..\QuestDiary\技能系统\技能变量.txt
break
[@TakeOff1]
#IF
CheckTakeOffItem 屠龙宝刀
#ACT
CALCVAR HUMAN JN – 20
SAVEVAR HUMAN JN ..\QuestDiary\技能系统\技能变量.txt
break
[@TakeOn7]
#IF
checkitemw 圣战戒指
#ACT
CALCVAR HUMAN JN + 15
SAVEVAR HUMAN JN ..\QuestDiary\技能系统\技能变量.txt
[@TakeOff7]
#IF
CheckTakeOffItem 圣战戒指
#ACT
CALCVAR HUMAN JN – 15
SAVEVAR HUMAN JN ..\QuestDiary\技能系统\技能变量.txt
break
这些搞定了以后再来写魔法触发!利用攻击力倍数的就比较简单!
[@MagSelfFunc33]
#ACT
MOV N1 <$HUMAN(SR)>
INC N1 100
POWERRATE <$STR(N1)> 1
break
这里用一个加法就可以了!再来看增加属性的!
[@MagSelfFunc33]
#ACT
MUL N1 <$MC> <$HUMAN(SR)>
DIV N1 100
MUL N2 <$MAXMC> <$HUMAN(SR)>
DIV N2 100
ChangeHumAbility 7 + <$STR(N1)>
ChangeHumAbility 8 + <$STR(N2)>
DelayCall 10 @消失
break
[@消失]
#IF
#ACT
ChangeHumAbility 7 – <$STR(N1)>
ChangeHumAbility 8 – <$STR(N2)>
BREAK
同样的这里用到了乘除法的公式!只不过数值是自定义变量里面的!因为在吃果子和佩戴装备的时候已经将增强威力的百分比记录了下来!
写到这里就不再多说了!大家可以去尝试一下!需要说明的是这个方法仅针对一些不需要砍怪的魔法有效!像烈火开天斩之类的我也琢磨过很久实在是想不到任何办法!因为存在两个问题!一个是我们说的魔法触发仅指按键时触发!比如你焖了一刀烈火,按快捷键的时候才会触发!你过几秒再打出去不可能将当时的效果记录下来!再一个即便你把时间延长一下因为存在强制按“Shift”键出刀所以还是不能完美的解决!因此我在开头说了这只是一剂偏方不见得治百病但对一些疑难杂症颇具疗效!
最后解决刚才站里一个GM问的实际问题!“分身术召唤的分身怎么设置攻击倍数啊?像迷失哪样的每转召唤不一样分身的怎么设置?”这个其实用第二种方法就能解决!第一种不行,因为分身不具备攻击力倍数所以只能用属性点来搞定!假设你的最多是五转吧!每转攻击力倍数跟转生等级一样!这里一样要写三段我图个省事写一段吧
[@MagSelfFunc46]
#IF
CHECKRENEWLEVEL = 5
#ACT
MUL N1 <$MC> 4
MUL N2 <$MAXMC> 4
ChangeHumAbility 7 + <$STR(N1)>
ChangeHumAbility 8 + <$STR(N2)>
DelayCall 10 @消失
break
#IF
CHECKRENEWLEVEL = 4
#ACT
MUL N1 <$MC> 3
MUL N2 <$MAXMC> 3
ChangeHumAbility 7 + <$STR(N1)>
ChangeHumAbility 8 + <$STR(N2)>
DelayCall 10 @消失
break
#IF
CHECKRENEWLEVEL = 3
#ACT
MUL N1 <$MC> 2
MUL N2 <$MAXMC> 2
ChangeHumAbility 7 + <$STR(N1)>
ChangeHumAbility 8 + <$STR(N2)>
DelayCall 10 @消失
break
#IF
CHECKRENEWLEVEL = 2
#ACT
MOV N1 <$MC>
MOV N2 <$MAXMC>
ChangeHumAbility 7 + <$STR(N1)>
ChangeHumAbility 8 + <$STR(N2)>
DelayCall 10 @消失
break
[@消失]
#IF
#ACT
ChangeHumAbility 7 – <$STR(N1)>
ChangeHumAbility 8 – <$STR(N2)>
BREAK
如果这位GM看到了可以去测试一下应该没什么问题!这个我要说的是大家要多动动脑筋像我一样!