Previous topicNext topic
Help > 脚本命令使用详解 > 功能操作 >
QFunction-[@MagSelfFuncXX]

功能:

[@MagSelfFuncXX]和[@MagTagFuncXX]的开关,默认关闭

格式:

技能触发[@MagSelfFuncXX]是,<$PARAM(1)>是目标X坐标,<$PARAM(2)>是目标Y坐标


增加释放魔法NPC命令:MagicFire 参数1:技能ID 参数2:等级(0~15) 参数3:显示技能效果(0/1) 参数4:方式(-2链式 -1溅射 0自己,1当前目标,自定义坐标X) 参数5:自定义坐标Y[可选] 参数6:技能延迟(毫秒)[可选] 参数7:自定义坐标强显效果(0/1)
                               参数8:可用于设定链式、溅射方式下的最多目标数(不设定则默认根据技能等级内部自动计算)


注:支持普通魔法技能和合击技能,不包含战士技能,不支持技能触发,不支持攻击触发,无举手动作,需配套客户端更新!
增加释放魔法NPC命令:MagicFire 1技能ID 2等级(0~15) 3显示技能效果(0/1) 4方式(-2链式 -1溅射 0自己,1当前目标,自定义坐标X) 5自定义坐标Y[可选] 6技能延迟(毫秒)[可选] 7自定义坐标强显效果(0/1)  8链式、溅射方式下攻击的最多数量[可选]
注:支持普通魔法技能和合击技能,不包含战士技能,不支持技能触发,不支持攻击触发,无举手动作,需配套客户端更新!
当参数4为-1时,参数5为溅射技能半径,建议使用T.MagicFire方式
当参数4为-2时,参数5为链式技能半径,建议使用T.MagicFire方式
当使用自定义坐标时,X和Y支持批量方式,如:11|22|33 44|55|56
当自定义坐标有效且参数7不为0是,将不检测目标有效性,强制显示技能效果
当参数8不指定时,默认根据技能等级去计算可攻击的最多数量
========================================================================================================================================================================================================================================
例1:
[@attack]
#act
SetRandomNO 60 65
#if
CompVal <$ATTINFO_ISHERO> = 1
#act
h.MagicFire <$RANDOMNO> 5 1 1
#elseact
MagicFire 13 11 1 1
MagicFire <$RANDOMNO> 15 1 1
========================================================================================================================================================================================================================================
例2:
[@MagSelfFunc11]
#act
; 暂存技能ID
Mov M97 11
goto @CustomMagic
   
[@MagSelfFunc13]
#act
; 暂存技能ID
Mov M97 13
goto @CustomMagic
   
[@CustomMagic]
#act
; 存放XY坐标组,使用“|”间隔
Mov S98 ""
Mov S99 ""
========================================================================================================================================================================================================================================
; 多层循环,M0/M1分别从-2至+2,构成一个5x5的攻击范围方格
#for (M0 = -2, M0 < 3, M0 + 1)
#for (M1 = -2, M1 < 3, M1 + 1)
#if(1)
; 过滤掉中间的重合点
CompVal <$STR(M0)> ! 0
CompVal <$STR(M1)> ! 0
#act
; 将计算得出24个坐标放置在S98和S99
Calc "<$PARAM(1)>+0<$STR(M0)>" M98
Calc "<$PARAM(2)>+0<$STR(M1)>" M99
Inc S98 <$STR(M98)>|
Inc S99 <$STR(M99)>|
      #~for
    #~for
    #if
    CompVal <$PARAM(0)> = 0
    #act
    MagicFire <$STR(M97)> <$MAGICLEVEL(<$STR(M97)>)> 1 <$STR(S98)> <$STR(S99)> 500 1
    #elseact
    h.MagicFire <$STR(M97)> <$MAGICLEVEL(<$STR(M97)>)> 1 <$STR(S98)> <$STR(S99)> 450 1
========================================================================================================================================================================================================================================
例3:
[@Attack]
#act
Mov M99 <$ATTINFO_SKILLID>
#case (M99)
#1, 5, 13, 104, 105, 107~110:
#if
CompVal <$ATTINFO_ISHERO> = 1
#act
; 以怪物为中心发出溅射技能
T.MagicFire <$ATTINFO_SKILLID> <$H.MAGICLEVEL(<$ATTINFO_SKILLID>)> 1 -1 3
; 以怪物为主逐次发出链式技能
; T.MagicFire <$ATTINFO_SKILLID> <$H.MAGICLEVEL(<$ATTINFO_SKILLID>)> 1 -2 4
#elseact
T.MagicFire <$ATTINFO_SKILLID> <$MAGICLEVEL(<$ATTINFO_SKILLID>)> 1 -1 3
; T.MagicFire <$ATTINFO_SKILLID> <$MAGICLEVEL(<$ATTINFO_SKILLID>)> 1 -2 4
#~case