一、新增功能概述
传奇游戏推出了全新的“杀怪触发与开关”功能,玩家现在可以根据需要开启或关闭攻击触发,同时管理一个怪物名称列表,以实现更精细的游戏互动。
二、功能详细说明
攻击触发总开关 在!setup.txt文件中,通过设置AttackTrigger参数来控制攻击触发的总开关。默认值为0(关闭),设置为1则开启触发QF的[@Attack]。
怪物名称列表 在EnvirMonAttackTrigger.txt文件中,玩家可以列出可以被攻击触发的怪物名称,每个名称占一行。
专属变量
@Attack触发时,以下变量可用:
$TARINFO_RACE:目标的种族。
$TARINFO_ISHERO:目标是否为英雄(’0’或’1’)。
$TARINFO_NAME:目标的名称。
$TARINFO_FNAME:目标的全名。
$ATTINFO_SKILLID:攻击使用的技能ID。
$ATTINFO_RACE:攻击者的种族。
$ATTINFO_ISHERO:攻击者是否为英雄。
$ATTINFO_NAME:攻击者的名称。
$ATTINFO_FNAME:攻击者的全名。
目标变量
在触发时,以下目标变量可供使用:
$T.CURRENTMAPDESC:当前地图描述。
$T.CURRENTMAP:当前地图。
$T.CURRENTX、$T.CURRENTY:当前位置坐标。
$T.USERNAME:玩家名称。
$T.MONKILLER、$T.KILLER:怪物击杀者。
$T.LEVEL、$T.HP、$T.MAXHP:玩家等级、血量和最大血量。
$T.MP、$T.MAXMP:魔法值和最大魔法值。
$T.AC、$T.MAXAC:物理防御和最大物理防御。
$T.MAC、$T.MAXMAC:魔法防御和最大魔法防御。
$T.DC、$T.MAXDC:物理攻击和最大物理攻击。
$T.MC、$T.MAXMC:魔法攻击和最大魔法攻击。
$T.SC、$T.MAXSC:道术攻击和最大道术攻击。
$T.HIT、$T.SPD:命中率和速度。
三、使用示例
以下是[@Attack]和[@UnderAttack]的使用示例:
[@Attack]:当玩家或随从攻击列表中的指定怪物时,会触发以下操作:
#IF
COMPVAL <$TARINFO_FNAME> = 蜈蚣
COMPVAL <$T.HP> > 50
#ACT
T.HUMANHP – 50
SENDMSG 7 目标【<$TARINFO_NAME>】血量<$T.HP>
Copy
[@UnderAttack]:当玩家或随从被指定怪物攻击时,会触发以下操作:
#IF
COMPVAL <$ATTINFO_FNAME> = 蜈蚣
#ACT
HUMANHP – 50
#IF
COMPVAL <$ATTINFO_MNAME> ! “”
#ACT
SENDMSG 7 【<$ATTINFO_MNAME>】的随从<$ATTINFO_NAME>正在攻击你
#ELSEIF
COMPVAL <$TARINFO_RACE> ! 1
#ACT
SENDMSG 7 【<$ATTINFO_NAME>】正在攻击你的随从【<$TARINFO_NAME>】
#ELSEACT
SENDMSG 7 【<$ATTINFO_NAME>】正在攻击你
新增杀怪触发与开关
!setup.txt AttackTrigger=0 // 攻击触发总开关,默认0关闭,1开启触发QF的[@Attack]
EnvirMonAttackTrigger.txt // 可以被攻击触发的怪物名称列表,每行一个
// 攻击触发专属变量
$TARINFO_RACE // 目标Race
$TARINFO_ISHERO // 目标是否英雄 {‘0’, ‘1’}
$TARINFO_NAME // 目标名称
$TARINFO_FNAME // 目标全名
$ATTINFO_SKILLID // 攻击使用技能ID
$ATTINFO_RACE // 攻击者Race
$ATTINFO_ISHERO // 攻击者是否英雄
$ATTINFO_NAME // 攻击者名称
$ATTINFO_FNAME // 攻击者全名
// 目标变量
$T.CURRENTMAPDESC
$T.CURRENTMAP
$T.CURRENTX
$T.CURRENTY
$T.USERNAME
$T.MONKILLER
$T.KILLER
$T.LEVEL
$T.HP
$T.MAXHP
$T.MP
$T.MAXMP
$T.AC
$T.MAXAC
$T.MAC
$T.MAXMAC
$T.DC
$T.MAXDC
$T.MC
$T.MAXMC
$T.SC
$T.MAXSC
$T.HIT
$T.SPD
// QF例子
[@Attack] // 人或随从攻击列表指定怪物,会触发
#IF
COMPVAL <$TARINFO_FNAME> = 蜈蚣
COMPVAL <$T.HP> > 50
#ACT
T.HUMANHP – 50
SENDMSG 7 目标【<$TARINFO_NAME>】血量<$T.HP>
#IF
COMPVAL <$ATTINFO_RACE> ! 1 // Race=1 是玩家,这里就是非玩家(即随从)
#ACT
SENDMSG 7 你的随从<$ATTINFO_NAME>正在攻击<$TARINFO_NAME>
[@UnderAttack] // 被人或随从或列表指定怪物攻击,会触发
#IF
COMPVAL <$ATTINFO_FNAME> = 蜈蚣 // 蜈蚣打随从或自己
#ACT
HUMANHP – 50 // 主人扣血
#IF
COMPVAL <$ATTINFO_MNAME> ! “” // 攻击者主人名称不为空
#ACT
SENDMSG 7 【<$ATTINFO_MNAME>】的随从<$ATTINFO_NAME>正在攻击你
#ELSEIF
COMPVAL <$TARINFO_RACE> ! 1 // 自己的随从
#ACT
SENDMSG 7 【<$ATTINFO_NAME>】正在攻击你的随从【<$TARINFO_NAME>】
#ELSEACT
SENDMSG 7 【<$ATTINFO_NAME>】正在攻击你