|
本帖最后由 BattleField 于 2021-7-22 15:19 编辑
目前战团的(item_has_modifier, <item_kind_no>, <item_modifier_no>),操作似乎有bug,一些不应该有的前缀会通过,应该通过的前缀却会判断为False。
可以通过自行判断imodbit的办法来对这一问题进行解决。
原理:把每个item的Modifier bits值存到slot里,然后将需要判断的前缀与该slot值进行按位与的运算即可。
当然不可能手动为每一个item写一个set_slot语句,所以需要用到一些python语法。
不知道以前是否有相关帖子,总之该内容一定是我原创的而非剽窃的
需要修改的地方:
module_scripts.py开头添加:
from module_items import *
module_scripts.py末尾添加(一定要在最后一个右中括号的下面添加):
for item in items:
scripts[0][1].append((item_set_slot, "itm_"+item[0], slot_item_imodbits, item[7]))
module_scripts.py添加一条script:
# arg2必须传入imod_XXX参数而非imodbit_XXX参数
# script_cf_item_has_modifier
# Input: arg1 = item_no, arg2 = modifier_no
("cf_item_has_modifier",
[(store_script_param, ":item_no", 1),
(store_script_param, ":modifier_no", 2),
(item_get_slot, ":imodbits", ":item_no", slot_item_imodbits),
(assign, ":modifier_bit", 1),
(val_lshift, ":modifier_bit", ":modifier_no"),
(val_and, ":modifier_bit", ":imodbits"),
(this_or_next|neq, ":modifier_bit", 0),
(eq, ":modifier_no", 0),
]),
module_constants.py添加一条slot:
slot_item_imodbits = XX
使用方法:用(call_script, "script_cf_item_has_modifier", ":item_no", ":modifier_no"),语句代替(item_has_modifier, ":item_no", ":modifier_no"),语句
|
评分
-
查看全部评分
鲜花鸡蛋幼稚园殺手 在2021-7-22 19:22 送朵鲜花 并说:我非常同意你的观点,送朵鲜花鼓励一下
|