私はスクリプトに取り組んでおり、いくつかのガイダンスを使用できます。スクリプトの目的は、プレイヤーが魔法のアイテムを取得して特定のスロットに格納できるようにすることです。指定されたスロットに基づいてアイテムを生成しようとすると問題が発生します。
タイプ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)
これらの値を辞書に保存します。これらのエントリを変更するクラスがあります。メソッドの 1 つは 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 に渡されたかを判断するにはどうすればよいですか?