我试图在我的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没有定义,当我尝试加载游戏。我尝试使用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问题?这是一个经常被问到的问题。 –