Я пытаюсь получить систему сохранения/загрузки в своей Python RPG, но могу лишь частично выяснить, как это сделать. Я видел другие вопросы, заданные по этой теме, но ни один из них не подходит для того, что я делаю.Сохранить/загрузить систему в Python Текстовая RPG
class Player:
def __init__(self, name):
self.name = name
self.base_defe = 0
self.weap = "Rusty Sword"
self.wbow = "None"
self.armH = "Worn Helmet"
self.armB = "Worn Shirt"
self.armA = "Worn Gloves"
self.armL = "Worn Pants"
self.armF = "Worn Boots"
self.gold = 1000
self.orichalcum = 0
self.base_stre = 1
self.base_magi = 1
self.base_rang = 1
self.maxmana = 100
self.mana = self.maxmana
self.level = 1
self.exp = 0
self.maxexp = 100
self.expdiff = 50
self.pots = 0
self.arrows = 0
self.q1c = False
self.q2c = False
self.q3c = False
self.q1 = False
self.q2 = False
self.q3 = False
self.QuestActive = False
self.qtitle = "None"
self.maxhealth = 100 + self.defe
self.health = self.maxhealth
self.inventory = ["Rusty Sword",
"Worn Shirt",
"Worn Pants",
"Worn Boots",
"Worn Helmet",
"Worn Gloves"]
self.spells = []
У меня также есть переменная PlayerIG, которая представляет игрок, но он установлен в функции, так что я получаю сообщение, как PlayerIG не определенно, когда я пытаюсь загрузить игру. Я попытался создать систему save/load, используя pickle и помещая все в словарь. Сохранение его отлично работает, но загрузка его, конечно же, не делает, потому что всякий раз, когда я пытаюсь загрузить все это, переменные сбрасываются. Я не могу понять, как правильно это сделать, но любая помощь будет очень признательна.
Та часть, которая дала мне больше всего проблем является:
def name():
os.system('clear')
PlayerIG = Player(raw_input("What is your name?"))
print ("Prints story")
Причина в том, PlayerIG предназначен для представления игрока, но всякий раз, когда я пытался загрузить файл сохранения с:
def load():
os.system('clear')
with open('savefile', 'rb') as f:
data = pickle.load(f)
print "Loaded last save state..."
option = raw_input(" ")
#data is equal to PlayerIG
Это дает мне ошибки, такие как PlayerIG не существует или всякий раз, когда я устанавливаю PlayerIG вне функции, он устанавливает PlayerIG в статистику по умолчанию, и он загружает игру, устанавливая для всех игроков статистику по умолчанию вместо того, чтобы загружать сохраненную статистику.
Просто выкладываю часть вашей программы, которая делает все, что вы пытаетесь сделать, не несвязанный код : https://stackoverflow.com/help/mcve –
То, что я пытаюсь сделать, - это сохранить эти переменные в текстовый файл, а затем загрузить в мою игру. «Создайте систему сохранения/загрузки с этими переменными» –
Вы рассматривали любые другие вопросы StackOverflow по этой теме? Это часто задаваемый вопрос. –