网易我的世界论坛

标题: 蓄力物品不减耐久 咋回事 有人遇到相同的问题么?求大神解答 [打印本页]

作者: M巅峰X    时间: 2020-12-2 21:55
标题: 蓄力物品不减耐久 咋回事 有人遇到相同的问题么?求大神解答
每次使用 都是从153减少 用的是自定义物品里的蓄力教程[attach][object Object][/attach]
作者: M巅峰X    时间: 2020-12-2 21:57
使用的是 自定义蓄力物品里的教程 ,但是使用哪个物品哪个物品 不减少耐久
作者: M巅峰X    时间: 2020-12-2 21:57
代码如下
作者: M巅峰X    时间: 2020-12-2 21:58
                    comp = serverApi.GetEngineCompFactory().CreateItem(playname)
                    p = comp.GetSelectSlotId()
                    val = comp.GetInvItemDurability(p)
                    print val
                    if val == 0:
                        # 销毁物品
                        comp.SetInvItemNum(p, 0)
                    else:
                        print p
                        comp.SetInvItemDurability(p, val - 1)
                        print comp.GetInvItemDurability(p)
作者: 境界线    时间: 2020-12-3 10:56
尝试跑了下这个接口运行是正常的。以下我提供两种代码你都可以尝试下:
  1. item_comp = serverApi.GetEngineCompFactory().CreateItem(player_id)
  2.             carried_item = item_comp.GetPlayerItem(serverApi.GetMinecraftEnum().ItemPosType.CARRIED, 0)
  3.             if carried_item and carried_item['durability'] > 0:
  4.     carried_item['durability'] -= 1
  5.     item_comp.SpawnItemToPlayerCarried(carried_item, player_id)
复制代码
  1. item_comp = serverApi.GetEngineCompFactory().CreateItem(player_id)
  2. slot = item_comp.GetSelectSlotId()
  3. carried_item = item_comp.GetPlayerItem(serverApi.GetMinecraftEnum().ItemPosType.CARRIED, 0)
  4. if carried_item and carried_item['durability'] > 0:
  5.     item_comp.SetInvItemDurability(slot, carried_item['durability'] - 1)
复制代码


作者: M巅峰X    时间: 2020-12-3 19:18
试了你这两个了 还是不行 我发现应该是监听的回调函数导致的 监听蓄力物品的就有这个问题  监听 使用物品的就没问题  不过还是十分感谢  我再想想办法吧
作者: 南小小小树    时间: 2021-1-5 10:23
延迟几个tick再减少耐久




欢迎光临 网易我的世界论坛 (https://mc.netease.com/) Powered by Discuz! X3.3