| 
 | 
 
 本帖最后由 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   送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下   
 
 |