在Mir200\Envir\UserCmd.txt放自定义命令,玩家输入“蓄力”开始聚气,输入“停蓄”取消。私人变量用P变量记录蓄力秒数,P1记录状态,P2记录目标倍率。引擎支持个人定时器就配合SetOnTimer,不支持只用循环检测会卡主线程,不建议。
UserCmd.txt写入:
[@蓄力]
IF
CHECKLEVELEX<30
ACT
SENDMSG6需要30级才能使用蓄力
BREAK
IF
EQUALP11
ACT
SENDMSG6已经在蓄力中
BREAK
IF
CHECKMP<10
ACT
SENDMSG6魔法值不足,无法蓄力
BREAK
ACT
MOVP11
MOVP20
MOVP30
SETON_TIMER101
SENDMSG6开始蓄力,站立不要移动
SENDMSG6蓄力中可输入“停蓄”取消
[@停蓄]
IF
EQUALP10
ACT
SENDMSG6当前没有蓄力
BREAK
ACT
MOVP10
MOVP20
MOVP30
SETOFF_TIMER10
SENDMSG6已取消蓄力,未获得加成
定时器写在QFunction-0.txt,个人定时器编号按引擎改,下面用10号做每秒处理:
[@OnTimer10]
IF
EQUALP10
ACT
SETOFF_TIMER10
BREAK
IF
EQUALP11
ACT
INCP31
MOVP20
IF
LARGEP30
SMALLP33
ACT
MOVP2110
IF
LARGEP32
SMALLP36
ACT
MOVP2125
IF
LARGEP35
SMALLP310
ACT
MOVP2140
IF
LARGEP39
SMALLP316
ACT
MOVP2160
IF
LARGEP315
ACT
MOVP2180
MOVP315
SENDMSG6蓄力已满,输入“释放”打出蓄力技
BREAK
IF
EQUALP2110
ACT
SENDMSG6蓄力1阶,攻击提升10%
BREAK
IF
EQUALP2125
ACT
SENDMSG6蓄力2阶,攻击提升25%
BREAK
IF
EQUALP2140
ACT
SENDMSG6蓄力3阶,攻击提升40%
BREAK
IF
EQUALP2160
ACT
SENDMSG6蓄力4阶,攻击提升60%
BREAK
属性加成不要直接改人物面板永久值,用临时增益命令。Hero/LEG常用ChangeHumAbility,BLUE可用SetAbility相关,GOM/GEE看POWERRATE或AttackRate。按职业给加成,战士加攻,法师加魔,道士加道,写到定时器每次重设,避免叠层:
[@OnTimer10]
上面计秒后继续写:
IF
EQUALP2110
ACT
CHECKJOB1
ChangeHumAbility5+10
ChangeHumAbility6+10
CHECKJOB2
ChangeHumAbility7+10
ChangeHumAbility8+10
CHECKJOB3
ChangeHumAbility9+10
ChangeHumAbility10+10
BREAK
不同阶位把数值替换即可,5和6代表物攻上下限,7和8魔攻,9和10道术,具体字段名按引擎文档核对。若引擎支持POWERRATE,可改为:
IF
EQUALP2110
ACT
POWERRATE1101
BREAK
IF
EQUALP2125
ACT
POWERRATE1251
BREAK
IF
EQUALP2140
ACT
POWERRATE1401
BREAK
IF
EQUALP2160
ACT
POWERRATE1601
BREAK
IF
EQUALP2180
ACT
POWERRATE1801
BREAK
POWERRATE按倍率百分比走,110就是1.1倍,180就是1.8倍,持续时间写1秒,因为定时器每秒重设,停止蓄力就关掉。
释放命令放UserCmd.txt:
[@释放]
IF
EQUALP10
ACT
SENDMSG6当前没有蓄力可释放
BREAK
IF
LARGEP30
SMALLP33
ACT
MOVP10
SETOFF_TIMER10
POWERRATE1105
ReleaseMagicEx1011
SENDMSG6释放1阶蓄力烈火
BREAK
IF
LARGEP32
SMALLP36
ACT
MOVP10
SETOFF_TIMER10
POWERRATE1255
ReleaseMagicEx1011
SENDMSG6释放2阶蓄力烈火
BREAK
IF
LARGEP35
SMALLP310
ACT
MOVP10
SETOFF_TIMER10
POWERRATE1405
ReleaseMagicEx1011
SENDMSG6释放3阶蓄力烈火
BREAK
IF
LARGEP39
SMALLP316
ACT
MOVP10
SETOFF_TIMER10
POWERRATE1605
ReleaseMagicEx1011
SENDMSG6释放4阶蓄力烈火
BREAK
IF
LARGEP314
ACT
MOVP10
SETOFF_TIMER10
POWERRATE1805
ReleaseMagicEx1011
SENDMSG6释放满阶蓄力烈火
BREAK
ReleaseMagicEx写法按引擎调整,通用参数技能ID、强化等级、目标类型;烈火技能ID常用10,法师可换火墙22、雷电11,道士换施毒或灵魂火符,具体ID在Mir200\Envir\MagicList.txt或Magic.DB核对。不想用释放技,只给普攻加成的版本,把释放段删掉,蓄力满后继续保持POWERRATE,玩家普通攻击即享受倍率,移动或受击再清除。
打断规则写QFunction-0.txt,移动、受击、换图都清状态:
[@MoveScene]
IF
EQUALP11
ACT
MOVP10
MOVP20
MOVP30
SETOFF_TIMER10
POWERRATE1001
ChangeHumAbility5=0
ChangeHumAbility6=0
ChangeHumAbility7=0
ChangeHumAbility8=0
ChangeHumAbility9=0
ChangeHumAbility10=0
SENDMSG6移动导致蓄力中断
[@Struck]
IF
EQUALP11
ACT
MOVP10
MOVP20
MOVP30
SETOFF_TIMER10
POWERRATE1001
ChangeHumAbility5=0
ChangeHumAbility6=0
ChangeHumAbility7=0
ChangeHumAbility8=0
ChangeHumAbility9=0
ChangeHumAbility10=0
SENDMSG6受击导致蓄力中断
[@ChangeMap]
IF
EQUALP11
ACT
MOVP10
MOVP20
MOVP30
SETOFF_TIMER10
POWERRATE1001
ChangeHumAbility5=0
ChangeHumAbility6=0
ChangeHumAbility7=0
ChangeHumAbility8=0
ChangeHumAbility9=0
ChangeHumAbility10=0
SENDMSG6切换地图蓄力中断
登录清理放QManage.txt,防止下线再上保留异常增益:
[@Login]
ACT
MOVP10
MOVP20
MOVP30
SETOFF_TIMER10
POWERRATE1001
ChangeHumAbility5=0
ChangeHumAbility6=0
ChangeHumAbility7=0
ChangeHumAbility8=0
ChangeHumAbility9=0
ChangeHumAbility10=0
如果用魔法触发而不是命令触发,可在M2功能设置开启魔法触发,QFunction写对应技能段。例如把蓄力做成新技能ID99,玩家使用后开始计时:
[@MagSelfFunc99]
IF
CHECKMP<10
ACT
SENDMSG6魔法值不足
BREAK
ACT
MOVP11
MOVP20
MOVP30
SETON_TIMER101
SENDMSG6施法蓄力开始,站立累积阶位
释放仍用命令或再用一个技能ID100触发:
[@MagSelfFunc100]
IF
EQUALP10
ACT
SENDMSG6未处于蓄力
BREAK
IF
LARGEP30
ACT
MOVP10
SETOFF_TIMER10
POWERRATE<$STR(P2)>5
ReleaseMagicEx1011
SENDMSG6按当前蓄力阶位释放强化技能
魔法触发总开关和MagSelfFunc标签按引擎开,BLUE、Hero、GOM路径不完全一致,部分版本在M2功能设置其他控制里开魔法触发后QFunction才会跑MagSelfFunc。
参数修改点:等级限制改CHECKLEVELEX数值;每秒一阶的时间改OnTimer里P3判断,想3秒一阶就把0到3改0到3、3到6、6到9;倍率改P2和POWERRATE;职业区分用CHECKJOB,1战士2法师3道士;只做战士可删CHECKJOB2、3两段;只做法师把ReleaseMagicEx改成火系技能ID并只加魔攻;想要蓄力越久伤害越高但不设上限,把P3最大15去掉,P2按公式算,例如MOVP2<$STR(P3)>再乘系数,部分引擎不支持变量直接运算就用CALCVAR。
排错:输入命令没反应,检查UserCmd.txt是否在Envir根目录、M2是否重载命令、P变量是否被其他脚本占用。蓄力不涨阶,检查SetOnTimer定时器编号和QFunction的OnTimer编号是否一致,个人定时器有的引擎写SetOnTimer也有的写SetOnTimerX。加成不消失,登录脚本没清、停蓄没关定时器、受击标签没触发都会留增益,优先把Login、Struck、MoveScene、ChangeMap四处都写清。释放没伤害,检查技能ID是否在本服MagicList存在、角色是否学会、MP是否够、ReleaseMagicEx参数顺序是否按引擎要求。多职业共用时别同时给物攻魔攻道术全加,按CHECKJOB分支,否则战士也会吃到法术加成造成数值失衡。
UserCmd.txt写入:
[@蓄力]
IF
CHECKLEVELEX<30
ACT
SENDMSG6需要30级才能使用蓄力
BREAK
IF
EQUALP11
ACT
SENDMSG6已经在蓄力中
BREAK
IF
CHECKMP<10
ACT
SENDMSG6魔法值不足,无法蓄力
BREAK
ACT
MOVP11
MOVP20
MOVP30
SETON_TIMER101
SENDMSG6开始蓄力,站立不要移动
SENDMSG6蓄力中可输入“停蓄”取消
[@停蓄]
IF
EQUALP10
ACT
SENDMSG6当前没有蓄力
BREAK
ACT
MOVP10
MOVP20
MOVP30
SETOFF_TIMER10
SENDMSG6已取消蓄力,未获得加成
定时器写在QFunction-0.txt,个人定时器编号按引擎改,下面用10号做每秒处理:
[@OnTimer10]
IF
EQUALP10
ACT
SETOFF_TIMER10
BREAK
IF
EQUALP11
ACT
INCP31
MOVP20
IF
LARGEP30
SMALLP33
ACT
MOVP2110
IF
LARGEP32
SMALLP36
ACT
MOVP2125
IF
LARGEP35
SMALLP310
ACT
MOVP2140
IF
LARGEP39
SMALLP316
ACT
MOVP2160
IF
LARGEP315
ACT
MOVP2180
MOVP315
SENDMSG6蓄力已满,输入“释放”打出蓄力技
BREAK
IF
EQUALP2110
ACT
SENDMSG6蓄力1阶,攻击提升10%
BREAK
IF
EQUALP2125
ACT
SENDMSG6蓄力2阶,攻击提升25%
BREAK
IF
EQUALP2140
ACT
SENDMSG6蓄力3阶,攻击提升40%
BREAK
IF
EQUALP2160
ACT
SENDMSG6蓄力4阶,攻击提升60%
BREAK
属性加成不要直接改人物面板永久值,用临时增益命令。Hero/LEG常用ChangeHumAbility,BLUE可用SetAbility相关,GOM/GEE看POWERRATE或AttackRate。按职业给加成,战士加攻,法师加魔,道士加道,写到定时器每次重设,避免叠层:
[@OnTimer10]
上面计秒后继续写:
IF
EQUALP2110
ACT
CHECKJOB1
ChangeHumAbility5+10
ChangeHumAbility6+10
CHECKJOB2
ChangeHumAbility7+10
ChangeHumAbility8+10
CHECKJOB3
ChangeHumAbility9+10
ChangeHumAbility10+10
BREAK
不同阶位把数值替换即可,5和6代表物攻上下限,7和8魔攻,9和10道术,具体字段名按引擎文档核对。若引擎支持POWERRATE,可改为:
IF
EQUALP2110
ACT
POWERRATE1101
BREAK
IF
EQUALP2125
ACT
POWERRATE1251
BREAK
IF
EQUALP2140
ACT
POWERRATE1401
BREAK
IF
EQUALP2160
ACT
POWERRATE1601
BREAK
IF
EQUALP2180
ACT
POWERRATE1801
BREAK
POWERRATE按倍率百分比走,110就是1.1倍,180就是1.8倍,持续时间写1秒,因为定时器每秒重设,停止蓄力就关掉。
释放命令放UserCmd.txt:
[@释放]
IF
EQUALP10
ACT
SENDMSG6当前没有蓄力可释放
BREAK
IF
LARGEP30
SMALLP33
ACT
MOVP10
SETOFF_TIMER10
POWERRATE1105
ReleaseMagicEx1011
SENDMSG6释放1阶蓄力烈火
BREAK
IF
LARGEP32
SMALLP36
ACT
MOVP10
SETOFF_TIMER10
POWERRATE1255
ReleaseMagicEx1011
SENDMSG6释放2阶蓄力烈火
BREAK
IF
LARGEP35
SMALLP310
ACT
MOVP10
SETOFF_TIMER10
POWERRATE1405
ReleaseMagicEx1011
SENDMSG6释放3阶蓄力烈火
BREAK
IF
LARGEP39
SMALLP316
ACT
MOVP10
SETOFF_TIMER10
POWERRATE1605
ReleaseMagicEx1011
SENDMSG6释放4阶蓄力烈火
BREAK
IF
LARGEP314
ACT
MOVP10
SETOFF_TIMER10
POWERRATE1805
ReleaseMagicEx1011
SENDMSG6释放满阶蓄力烈火
BREAK
ReleaseMagicEx写法按引擎调整,通用参数技能ID、强化等级、目标类型;烈火技能ID常用10,法师可换火墙22、雷电11,道士换施毒或灵魂火符,具体ID在Mir200\Envir\MagicList.txt或Magic.DB核对。不想用释放技,只给普攻加成的版本,把释放段删掉,蓄力满后继续保持POWERRATE,玩家普通攻击即享受倍率,移动或受击再清除。
打断规则写QFunction-0.txt,移动、受击、换图都清状态:
[@MoveScene]
IF
EQUALP11
ACT
MOVP10
MOVP20
MOVP30
SETOFF_TIMER10
POWERRATE1001
ChangeHumAbility5=0
ChangeHumAbility6=0
ChangeHumAbility7=0
ChangeHumAbility8=0
ChangeHumAbility9=0
ChangeHumAbility10=0
SENDMSG6移动导致蓄力中断
[@Struck]
IF
EQUALP11
ACT
MOVP10
MOVP20
MOVP30
SETOFF_TIMER10
POWERRATE1001
ChangeHumAbility5=0
ChangeHumAbility6=0
ChangeHumAbility7=0
ChangeHumAbility8=0
ChangeHumAbility9=0
ChangeHumAbility10=0
SENDMSG6受击导致蓄力中断
[@ChangeMap]
IF
EQUALP11
ACT
MOVP10
MOVP20
MOVP30
SETOFF_TIMER10
POWERRATE1001
ChangeHumAbility5=0
ChangeHumAbility6=0
ChangeHumAbility7=0
ChangeHumAbility8=0
ChangeHumAbility9=0
ChangeHumAbility10=0
SENDMSG6切换地图蓄力中断
登录清理放QManage.txt,防止下线再上保留异常增益:
[@Login]
ACT
MOVP10
MOVP20
MOVP30
SETOFF_TIMER10
POWERRATE1001
ChangeHumAbility5=0
ChangeHumAbility6=0
ChangeHumAbility7=0
ChangeHumAbility8=0
ChangeHumAbility9=0
ChangeHumAbility10=0
如果用魔法触发而不是命令触发,可在M2功能设置开启魔法触发,QFunction写对应技能段。例如把蓄力做成新技能ID99,玩家使用后开始计时:
[@MagSelfFunc99]
IF
CHECKMP<10
ACT
SENDMSG6魔法值不足
BREAK
ACT
MOVP11
MOVP20
MOVP30
SETON_TIMER101
SENDMSG6施法蓄力开始,站立累积阶位
释放仍用命令或再用一个技能ID100触发:
[@MagSelfFunc100]
IF
EQUALP10
ACT
SENDMSG6未处于蓄力
BREAK
IF
LARGEP30
ACT
MOVP10
SETOFF_TIMER10
POWERRATE<$STR(P2)>5
ReleaseMagicEx1011
SENDMSG6按当前蓄力阶位释放强化技能
魔法触发总开关和MagSelfFunc标签按引擎开,BLUE、Hero、GOM路径不完全一致,部分版本在M2功能设置其他控制里开魔法触发后QFunction才会跑MagSelfFunc。
参数修改点:等级限制改CHECKLEVELEX数值;每秒一阶的时间改OnTimer里P3判断,想3秒一阶就把0到3改0到3、3到6、6到9;倍率改P2和POWERRATE;职业区分用CHECKJOB,1战士2法师3道士;只做战士可删CHECKJOB2、3两段;只做法师把ReleaseMagicEx改成火系技能ID并只加魔攻;想要蓄力越久伤害越高但不设上限,把P3最大15去掉,P2按公式算,例如MOVP2<$STR(P3)>再乘系数,部分引擎不支持变量直接运算就用CALCVAR。
排错:输入命令没反应,检查UserCmd.txt是否在Envir根目录、M2是否重载命令、P变量是否被其他脚本占用。蓄力不涨阶,检查SetOnTimer定时器编号和QFunction的OnTimer编号是否一致,个人定时器有的引擎写SetOnTimer也有的写SetOnTimerX。加成不消失,登录脚本没清、停蓄没关定时器、受击标签没触发都会留增益,优先把Login、Struck、MoveScene、ChangeMap四处都写清。释放没伤害,检查技能ID是否在本服MagicList存在、角色是否学会、MP是否够、ReleaseMagicEx参数顺序是否按引擎要求。多职业共用时别同时给物攻魔攻道术全加,按CHECKJOB分支,否则战士也会吃到法术加成造成数值失衡。

