功能:
;==============================================================================================
增加!Setup.txt开关:MONATTACKFILTERMASKMETHOD=0
//默认0不开启,怪物攻击不参与掩码计算,1怪物不攻击掩码符合的目标,2怪物只攻击掩码符合的目标,3怪物不攻击带有攻击掩码的目标
新增二进制位方式的攻击过滤掩码变量:$ATTACKFILTERMASK0~31 //<$ATTACKFILTERMASK8> 将获取掩码第8位的值(0/1)
ChangeAttackFilterMask命令支持二进制写法: ChangeAttackFilterMask 位(0~31) 开关(0/1) //ChangeAttackFilterMask 8 1 等效于 ChangeAttackFilterMask = 256,低0~7位暂时保留,不要使用
CHANGEATTACKFILTERMASK +/-/= 数字 //修改攻击过滤掩码,可结合SETBIT、UNSETBIT等二进制操作命令使用
扩展怪物DB的ATTACKFILTERMASK字段,将某个怪物此字段设置大于255的值(255及以下数值保留),比如设置:256(二进制),常规情况下玩家对此怪物攻击无效,只有使用CHANGEATTACKFILTERMASK=256命令设置了等位值才能有效攻击。
计算:用二进制方式,设置8位为1,范围是0~31位,对应怪物DB的AttackFilterMask,0~7位保留,0位之前已经用过(不攻击人)
比如:ATTACKFILTERMASK字段怪物是256
人物掩码要是256才可以打中该怪物 4个怪物分别是 256 512 1024 2048
掩码
;==============================================================================================
举例:
;==============================================================================================
[@ResetStat]
#ACT
ResetStat
1 all
sendmsg 5
当前:重置统计信息
;==============================================================================================
说明:修改人物攻击过滤掩码
;==============================================================================================
CHANGEATTACKFILTERMASK
= 256 //怪物一:沃玛教主 的ATTACKFILTERMASK字段 = 256
CHANGEATTACKFILTERMASK =
512 //怪物二:祖玛教主 的ATTACKFILTERMASK字段 = 512
CHANGEATTACKFILTERMASK
= 1024 //怪物三:黄泉教主 的ATTACKFILTERMASK字段 = 1024
CHANGEATTACKFILTERMASK =
2048 //怪物四:虹魔教主 的ATTACKFILTERMASK字段 =
2048
;==============================================================================================
;假如:怪物的AttackFilterMask设置
768(二进制中,8、9位都是1),那么 ChangeAttackFilterMask = 256/512/1024
都可以击中
;==============================================================================================
;所以还有24位可以使用,即一只怪物最多可以被24种开关攻击,并非只能一一对应,打开计算器,选择程序员模式最好理解。
;比如第8位是1
此时是256 第9位是1就是512 第10位是1就是1024 如果人物设置1024+512+256=1792 就可以打中
这3个掩码的怪
;同时能够攻击这四只怪就是相加掩码数值总和 256+512+1024+2048=3840
;反之怪物设置1792就可以被1024
512
256掩码的打中(计算器选程序员模式-选中BIN-就可以输入0和1去计算值,比如第8位是1就是0100000000)
;==============================================================================================
增加地图掩码参数:
增加地图参数:MonAttackFilterMaskMethod(1~3),双方都带掩码情况下,1怪物不能攻击掩码匹配的目标,2怪物只能攻击掩码匹配的目标(默认),3怪物不能攻击带有攻击掩码的目标
增加地图参数:HumAttackFilterMaskMethod(1~3|1~3),双方都带攻击过滤掩码情况下,攻击者是人物,以下9种方式分别攻击有效:
// 注:人物包含下属
将优先于!setup.txt的monAttackFilterMaskMethod=1设置 此地图参数必须
!setup.txt的monAttackFilterMaskMethod=0
是否将优先monAttackFilterMaskMethod=1
;==============================================================================================
1|1
掩码不匹配或目标是怪物 1|2 掩码不匹配或目标是人物 1|3 掩码不匹配生物
2|1 掩码匹配并且目标是人物 2|2
掩码匹配并且目标是怪物 2|3 掩码匹配的生物(默认) // 跟第1行情况相反
3|1 目标是怪物(忽略掩码) 3|2
目标是人物(忽略掩码) 3|3
所有攻击无效
;==============================================================================================
[D502
祖玛寺庙二层] MonAttackFilterMaskMethod(1|3)
HumAttackFilterMaskMethod(1|3)
;==============================================================================================
举例:人物掩码数值:<$AttackFilterMask>
= 256
举例:怪物掩码参数: AttackFilterMask = 256
举例:地图
地图掩码参数如下
;==============================================================================================
[D501
祖玛寺庙一层] 1|1 掩码不匹配或目标是怪物
目标为人物 匹配不可互相攻击 不匹配可互相攻
目标为怪物
都可攻击
;==============================================================================================
[D501
祖玛寺庙一层] 1|2 掩码不匹配或目标是人物
目标为人物 可以互相攻击
目标为怪物 匹配不可以攻击
不匹配可以攻击
;==============================================================================================
[D501
祖玛寺庙一层] 1|3 怪物掩码参数 AttackFilterMask =
512
人物掩码参数 AttackFilterMask = 512
目标为人物 匹配不可以攻击
不匹配可以相互攻击
目标为怪物 匹配不可以攻击
不匹配可以攻击
;==============================================================================================
[D501
祖玛寺庙一层] 2|1 掩码匹配并且目标是人物
目标为人物 匹配可以互相攻击 不匹配不可相互攻击
目标为怪物
不可攻击
;==============================================================================================
[D501
祖玛寺庙一层] 2|2 掩码匹配并且目标是怪物
目标为人物 不可攻击
目标为怪物
匹配可以攻击
不匹配不可攻击
;==============================================================================================
[D501
祖玛寺庙一层] 2|3 掩码匹配的生物
目标为人物 匹配可以攻击
不匹配不可以相互攻击
目标为怪物 匹配可以攻击
不匹配不可以攻击
;==============================================================================================
3|1目标是怪物(忽略掩码)
目标为人物 不可互相攻击
目标为怪物
可以攻击
;==============================================================================================
3|2目标是怪物(忽略掩码)
目标为人物 可以攻击
目标为怪物
不可攻击怪物
;==============================================================================================
3|3所有攻击无效
目标为人物 不可以互相攻击
目标为怪物
不可以攻击
;==============================================================================================
举例:2进制掩码攻击怪物转10进制
;==============================================================================================
SetBit
M0 8 这时候其实就是十进制的256
SetBit M0 9 这时候其实就是十进制的512
SetBit M0 10
这时候其实就是十进制的1024
SetBit M0 11
这时候其实就是十进制的2048
;==============================================================================================
[@ChangeAttackFilterMask]
#IF
#ACT
mov
M0 0
SetBit M0 8
CHANGEATTACKFILTERMASK = <$STR(M0)>
sendmsg 7
老变量:<$ATTACKFILTERMASK>
;==============================================================================================
举例:新增二进制位方式的攻击过滤掩码变量:<$ATTACKFILTERMASK8~31>
//<$ATTACKFILTERMASK8>
将获取掩码第8位的值(0/1)
;==============================================================================================
CHANGEATTACKFILTERMASK
= 0 //清理还原默认值
CHANGEATTACKFILTERMASK 8 1
//十进制的256
CHANGEATTACKFILTERMASK 9 1
//十进制的512
CHANGEATTACKFILTERMASK 10 1 //十进制的1024
CHANGEATTACKFILTERMASK 11
1
//十进制的2048
;==============================================================================================
举例:
[@ChangeAttackFilterMask1]
#ACT
CHANGEATTACKFILTERMASK
8 1
sendmsg 7
当前<$ATTACKFILTERMASK8>:<$AttackFilterMask>
#SAY
#say
当前
<$ATTACKFILTERMASK8> \
老变量
<$ATTACKFILTERMASK>\
;==============================================================================================
增加变量:
<$ATTACKFILTERMASK> //显示DataTable_HeroDB.db
monster 【ATTACKFILTERMASK】字段当前攻击过滤掩码
<$ATTACKFILTERMASK0~31
//显示DataTable_HeroDB.db monster 【StatID】字段当前攻击过滤掩码