接下来是我们的重头戏:
Wait = #11,m006mfss0001, m006mfss0002, m006mfss0003, m006mfss0004, m006mfss0005,m006mfss0006, #16,
!6003, m006mfss0007, #11,m006mfss0008, m006mfss0009, m006mfss0010, m006mfss0011, m006mfss0012,@%OM_REMOVE, SCROVER
上面这段出自这个物件:
[OBJECT]
Name = 向上射弓箭的藍小兵
Sequence= 16001
Type = %TYPE_FORCE
Space = 0,0,0,0
Flags = OF_BIGSHAPE
Process = %MagicObjectProcess
以感叹号 ! 开头的信息是什么意思呢?6003这个数字看起来很像一个调用代码。事实上,它确实是一个调用代码;
!6003 表示动画运行到这里时,调用指定调用代码的函数。
我们立即想到:如果我们能在主将或士兵物件中增加这样的以感叹号开头的内容,我们事实上就可以放出“武将技”。(当然,这样做的前提是,进行了1.05+中脚本支持部分的修改。)我们来实际操作一下:
[OBJECT]
Name = 主將L8 (主體) - 劍
Sequence= 628
Type = %TYPE_MAJOR
Space = 8,8,64,0
Flags = OF_MAN, OF_BIGSHAPE
Process = %ForceMajorObjectProcess
Directory = \MAJOR\BODY
First =#1, NULSHAPE
Wait = L8W10001,
#16, L8W10002, #8, L8W10003,
#8, L8W10004, #16, L8W10003,
#8, L8W10002, #8
Walk = #4, L8R10001, L8R10002, L8R10003, L8R10004, L8R10005, L8R10006,L8R10007, L8R10008, L8R10009
Attack = #3, L8A10002,
!55501, L8A10003,L8A10004, L8A10005, L8A10006, L8A10007, @%OM_ATTACK, L8A10008, L8A10009, L8A10010,L8A10011, SCROVER
Attack2 = #3, L8A60002,
!55501, L8A60003, L8A60004, L8A60005, L8A60006,L8A60007, @%OM_ATTACK, L8A60008, L8A60009, L8A60010, L8A60011, SCROVER
Attack3 = #3, L8A50002, L8A50003,L8A50004, L8A50005, L8A50006, L8A50007, L8A50008, L8A50009, L8A50010, L8A50011,SCROVER
Attack4 = #3, L8A30002, L8A30003,L8A30004, L8A30005, L8A30006, L8A30007, L8A30008, L8A30009, L8A30010, L8A30011,L8A20004, L8A20005, L8A20007, L8A50004, L8A50005, L8A50007, L8A30004, L8A30005,L8A30007, L8A20004, L8A20005, L8A20007, L8A50004, L8A50005, L8A50007, L8A20004,L8A20005, L8A20007, L8A50004, L8A50005, L8A50007, L8A20004, L8A20005, L8A20007,L8A20004, L8A20005, L8A20007, L8A30002, L8A30003, L8A30004, #12, L8A30005, #3,L8A30006, L8A30007, L8A30008, L8A30009, L8A30010, L8A30011, SCROVER
Attack5 = #3, L8A30002,
!55501, L8A30003, L8A30004, L8A30005, L8A30006,L8A30007, L8A30008, L8A30009, L8A30010, L8A30011, SCROVER
Attack6 = #3, L8A20002,
!55501, L8A20003, L8A20004, L8A20005, L8A20006,L8A20007, @%OM_ATTACK, L8A20008, L8A20009, L8A20010, L8A20011, SCROVER
Attack7 = #3, L8A30002,
!55501, L8A30003, L8A30004, L8A30005, L8A30006,L8A30007, @%OM_ATTACK, L8A30008, L8A30009, L8A30010, L8A30011, SCROVER
Attack8 = #3, L8A50002,
!55501, L8A50003, L8A50004, L8A50005, L8A50006, L8A50007,@%OM_ATTACK, L8A50008, L8A50009, L8A50010, L8A50011, SCROVER
Spell1 =#64, L8L10001, SCROVER
Spell2 =#64, L8L10002, SCROVER
Shot1 = #3, L8S10002, L8S10003,L8S10004, L8S10005, L8S10006, L8S10007, L8S10008, L8S10009, L8S10010, L8S10011,SCROVER
Shot2 = #3, L8A30002, L8A30003,L8A30004, L8A30005, L8A30006, L8A30007, L8A30008, L8A30009, L8A30010, L8A30011,SCROVER
Shot3 = #3, L8S10002, L8S10003,L8S10004, L8S10005, L8S10006, L8S10007, L8S10006, L8S10007, L8S10006, L8S10007,L8S10006, L8S10007, L8S10008, L8S10009, L8S10010, L8S10011, SCROVER
Defense = #8, L8D10002, $Defense,SCROVER
Pain = #4, L8H10002, $Hit01, L8H10002, SCROVER
Death = #5, L8F10001, L8F10002, L8F10003, L8F10004, #128, L8F10006, #5,L8F10007, L8F10008, L8F10009, L8F10010, #128, L8F10010, #9999, @%OM_DEATHSTOP,SCROVER
Win =#5, L8FS0001, L8FS0002, L8FS0003, L8FS0004,
#128, L8FS0006, #5, L8FS0007,L8FS0008, L8FS0009, L8FS0010,
#128, L8FS0010, #9999, @%OM_DEATHSTOP, SCROVER
在这里,我们为所有正常攻击的序列都指定了脚本的执行,调用代码为55501. 我们将必杀技的施放放在攻击序列中,是因为必杀技施放时,通常都是旁边有敌对目标的时候,因此放在攻击序列中比较合理;如果放在等待或移动序列中则有空放的可能。
(当然,做得更精细一点的话,我们可以为不同的序列指定不同的入口函数,然后判断周围是否存在敌对目标。目前我们暂时从简。)
这样指定之后,任意时刻主将进行攻击,播放到动画序列中的相应位置时,EXE会自动触发55501号脚本函数,此时也正是必杀技发动的时机。我们接下来就将编写这个调用代码为55501的函数,也即必杀技的实际内容。