我想製造泥漿,但是當做一個裝備命令時,我遇到了這個錯誤。蟒蛇泥裝備命令
if item.types == "weapon":
AttributeError: 'unicode' object has no attribute 'types'
我想解決我的代碼,以便它允許用戶鍵入裝備的劍,它會搜索他/她的庫存該項目並應用統計。
這裏是我的項目代碼
#weapons
class Weapon():
def __init__(self, name, ATK, gold, types):
self.name = name
self.ATK = ATK
self.gold = gold
self.types = types
club = Weapon("club", 1, 3, "weapon")
sword = Weapon("sword", 3, 10,"weapon")
axe = Weapon("axe", 4, 15,"weapon")
bow = Weapon("Hailey's bow", 10, 40,"weapon")
swordX = Weapon("Gods Sword", 8000, 8000,"weapon")
,這裏是我的播放器代碼
players[id] = {
"name": None,
"room": "Tavern",
"ATK": 5,
"hp": 20,
"inventory": {},
"armorName": None,
"armorPT": None,
"weaponName": None,
"weaponPT": None,
}
和最後我的裝備命令代碼
elif command == "equip":
x = params.lower()
rm = rooms[players[id]["room"]]
if x in players[id]["inventory"]:
item = players[id]["inventory"][x]
weapon = players[id]["weaponName"]
wStat = players[id]["weaponPT"]
armor = players[id]["armorName"]
aStat = players[id]["armorPT"]
hp = players[id]["hp"]
ATK = players[id]["ATK"]
if item.types == "weapon":
weapon = item.name
wStat = item.ATK
ATK += wStat
mud.send_message(id,"you equip %s" % weapon)
mud.send_message(id,"NEW ATK: %d" % ATK)
elif item.type == "armor":
armor = item.name
aStat = item.DEF
hp += aStat
mud.send_message(id,"you equip %s" % armor)
mud.send_message(id,"NEW DEF: %d" % hp)
else:
mud.send_message(id,"not a vaid item type")
else:
mud.send_message(id,"you dont have this item")
如果你認爲我需要添加任何更多的代碼是有意義的,請告訴我。
編輯:我想我發現問題在哪裏,但我不知道如何解決它我相信這是在接管命令和鋤頭它被添加到庫存它被添加爲一個字符串我不'知道如何解決這個問題
以下是錯誤消息告訴item
是Unicode字符串,而不是類Weapon
的實例代碼
elif command == "take":
x = params.lower()
rm = rooms[players[id]["room"]]
if rm["item"] == "yes":
if x in rm["itemName"]:
players[id]["inventory"][x] = x
del rm["itemName"][x]
mud.send_message(id, "you picked up %s" % x)
print players[id]["inventory"][x]
else:
mud.send_message(id,"You dont see that item")
else:
mud.send_message(id,"there is no item here")
請檢查玩家的物品是如何附加東西的 - 可以是字符串而不是物體? –
使用「print」語句來查看'players [id] [「inventory」]中的內容,看起來這不是您期望的對象。 – salparadise
您提供的代碼未顯示如何將值分配給玩家的廣告資源。更一般地說:我強烈建議你通過[Code Review Stack Exchange](http://codereview.stackexchange.com/)運行你的代碼。你目前的設計存在一些相當嚴重的問題,這會使進一步的開發變得非常困難。 – duskwuff