- 好友
- 6
- 在线时间
- 1056 小时
- 最后登录
- 1970-1-1
皇家侍卫长[官方战队队长]
光辉骑士团[UTD] 战团ID:UTD_awe23
 
- UID
- 2102975
- 第纳尔
- 7289
- 精华
- 0
- 互助
- 10
- 荣誉
- 2
- 贡献
- 0
- 魅力
- 73
- 注册时间
- 2014-8-1
       ![骑士美德之英勇勋章[杰出会员活跃勋章]](static/image/common/medal11.gif) 
 鲜花( 77)  鸡蛋( 2)
|
本帖最后由 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 送朵鲜花 并说:我非常同意你的观点,送朵鲜花鼓励一下
|