Проблема с сохранениями.

berty

Новичок
Пользователь
Ноя 9, 2021
1
0
1
windows 11, python 3.5 1636469025343.png


Есть проблема с сохранениями. Отладка принтом не сильно помогла. Пишет, что сохраняет, но при перезапуске стандартыне характеристки.
import random
import telebot
from telebot import types
from requests import get
#import time
#import threading
all_users = {}
sharks = ["Белую Акулу!","Тигровую Акулу!","Акулу-Бык!","Акулу-Молот!","Синюю Акулу!","Китовую Акулу!",]
def save(fn, chats: str):
from pickle import dump
with open(chats, "wb") as f:
dump(fn, f)
def load(chats:str):
from pickle import load
try:
with open(chats, "rb") as f:
return load(f)
except FileNotFoundError:
pass
all_chats = load("chats.txt") or {}
print(all_chats)
class User:
pass
chat_ids = set()
bot = telebot.TeleBot('2116340277:AAHoTMqrUV6kNVZOGB81A1FJgNTkjhM4KSo')
@bot.message_handler(commands=['start'])
def handle_start(message):
if message.chat.id not in all_users:
user = User()
user.id = message.chat.id
user.hp = 20
user.atk = 3
user.bank = 0
user.dolfin_hp_incr = 5
user.dolfin_atk_incr = 5
user.meet = 0
user.xp = 0
user.xp_need = 20
user.lvl = 1
user = all_users.get(message.chat.id)
elif message.chat.id in all_users:
all_users[message.chat.id] = user
else:
bot.send_message(message.chat.id, "Произошла")
print(message.from_user)
user.name = str(message.from_user.first_name)
markup = types.ReplyKeyboardMarkup(one_time_keyboard=False, resize_keyboard=True)
bt1 = types.KeyboardButton('Инвентарь ?')
bt2 = types.KeyboardButton('Путешествие ?')
bt3 = types.KeyboardButton('История ?')
markup.add(bt1, bt2, bt3)
msg = bot.send_message(message.chat.id, f'Привет {user.name} куда пойдём?)',
reply_markup=markup)
bot.register_next_step_handler(msg, switch)
def switch(message):
bot.clear_step_handler_by_chat_id(chat_id=message.chat.id)
bot.register_next_step_handler(message, switch)
user = all_users.get(message.chat.id)
if message.text == 'Инвентарь ?':
markup = types.ReplyKeyboardMarkup(one_time_keyboard=False, resize_keyboard=True)
bot.send_message(message.from_user.id, f"Твой баланс ракушек: {user.bank} шт")
elif message.text == 'Путешествие ?':
markup = types.ReplyKeyboardMarkup(one_time_keyboard=False, resize_keyboard=True)
swim = random.randint(0,13)
if swim <= 3:
if user.meet >= 1:
bot.send_message(message.from_user.id,"Ты встретил дельфинов, но увидев своих собратьев они отказались тебе помогать :(")
save(all_chats, "chats.txt")
print(f"SAVEING1 {save}")
else:
bot.send_message(message.from_user.id, f"""Ты встретил дельфина! ?
Теперь твои статистики увеличены! ?
{user.hp}+{user.dolfin_hp_incr}❤️
{user.atk}+{user.dolfin_atk_incr} ?""")
user.atk += user.dolfin_atk_incr
user.hp += user.dolfin_hp_incr
user.meet +=1
save(all_chats, "chats.txt")
print(f"SAVEING2 {save}")
elif swim <= 13:
shell = random.randint(1,5)
bot.send_message(message.from_user.id, f"Ты нашёл {shell} ракушек. Ура!Ура!")
user.bank += shell
save(all_chats, "chats.txt")
print(f"SAVEING3 {save}")
elif swim <= 28:
user.enemy_hp = user.hp * random.uniform(1,1.5)
user.enemy_hp = round(user.enemy_hp)
user.enemy_atk = user.atk * random.uniform(1,1.3)
user.enemy_atk = round(user.enemy_atk)
bot.send_message(message.from_user.id, f"""Ты встретил {random.choice(sharks)}
{user.enemy_hp} ❤️
{user.enemy_atk} ?
Что ты будешь делать?""")
bt1 = types.KeyboardButton('Уплыть ?')
bt2 = types.KeyboardButton('Драка!?‍♀️')
markup.add(bt1, bt2)
bot.register_next_step_handler(message, fight)
else:
bot.send_message(message.from_user.id, "Ты ничего не нашёл(")
elif message.text == 'История ?':
markup = types.ReplyKeyboardMarkup(one_time_keyboard=False, resize_keyboard=True)
bot.send_message(message.chat.id, "Вы - акула альбинос, которую презирает весь океан. Ваша задача стать королём океана и держать всех в страхе. Для плаванья нажмите на 1 ")
save(all_chats, "chats.txt")
print(f"SAVEING5 {save}")
def fight(message):
bot.clear_step_handler_by_chat_id(chat_id=message.chat.id)
bot.register_next_step_handler(message, switch)
if message.text == 'Уплыть ?':
chance = random.randint(1,3)
if chance == 1:
bot.send_message(message.from_user.id, f"Ты смог убежать от акулы!?")
else:
bot.send_message(message.from_user.id, f"Акула тебя догнала! Уххх, сейчас будет драка!?‍♀️")
#тут буде драка
else:
bot.send_message(message.from_user.id, f"Драка так драка! Ваша схватка будет легендарной!?‍♀️")
#тут буде драка
markup = types.ReplyKeyboardMarkup(one_time_keyboard=False, resize_keyboard=True)
bot.infinity_polling()
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 587
459
83
ну попробуйте скопировать отсюда ваш код и запустить...
код вставляйте как код, соблюдая отступы, подробнее тут как задать вопрос

и вопрос то в чем, где сохранения, какие сохранения, что надо сохранять...
 

Форум IT Специалистов