我正在编写一个脚本,并且可以使用一些指导。该脚本的目的是让玩家获得魔法物品并将它们存储在特定的插槽中。我遇到了尝试根据给定的插槽生成项目的问题。
我正在创建一个dict类型的子类。这是我将存储用户项目的地方。
class PlayerData(dict):
def __init__(self):
self.weapon = 0
self.head = 0
self.back = 0
self.chest = 0
self.hands = 0
self.feet = 0
def __getattr__(self, attr):
return self.__getitem__(attr)
def __setattr__(self, attr, value):
self.__setitem__(attr, value)
我将这些值存储在字典中。我有一个修改这些条目的类。其中一种方法遍历 PlayerData 中的项目,如果所有项目都为空,则随机抓取一个并尝试向其中添加一个对象(MagicItem 类型)。“self.steamid”是对玩家的引用。
def addItem(self):
chance = 75
slot = 0
count = 0
for k,v in PlayerDataDictionary[self.steamid].iteritems():
if not v:
count += 1
if count = 6:
chance = 100
if random.randint(1,100) <= chance:
slot = random.choice(PlayerDataDictionary[self.steamid])
if slot:
chooseReplace(self, slot)
else:
PlayerDataDictionary[self.steamid][slot] = MagicItem(slot)
else:
es.tell(userid, '#green', 'You destroyed your item during creation!')
# This is a custom module for a game, this function works as intended
但是,创建哪个项目取决于插槽。我如何确定 PlayerData 中的哪个插槽被传递给了 MagicItem 类?