批量修改总游玩时间

This commit is contained in:
2025-07-21 09:12:07 +08:00
parent 19c5233c49
commit e839f41985
7 changed files with 43 additions and 41 deletions

View File

@@ -217,7 +217,7 @@ func add_player_entry(player_data):
player_level.text = "等级: " + str(int(player_data.get("level", 0))) player_level.text = "等级: " + str(int(player_data.get("level", 0)))
player_money.text = "金币: " + str(int(player_data.get("money", 0))) player_money.text = "金币: " + str(int(player_data.get("money", 0)))
player_seed_num.text = "种子: " + str(int(player_data.get("seed_count", 0))) player_seed_num.text = "种子: " + str(int(player_data.get("seed_count", 0)))
player_online_time.text = "游玩时间: " + player_data.get("total_login_time", "0时0分0秒") player_online_time.text = "游玩时间: " + player_data.get("总游玩时间", "0时0分0秒")
player_last_login_time.text = "最后登录: " + player_data.get("最后登录时间", "未知") player_last_login_time.text = "最后登录: " + player_data.get("最后登录时间", "未知")
# 设置在线状态显示 # 设置在线状态显示

View File

@@ -470,12 +470,12 @@ class TCPGameServer(TCPServer):
# 注意:在线礼包时间累计现在由新系统管理,此处不再需要更新旧格式 # 注意:在线礼包时间累计现在由新系统管理,此处不再需要更新旧格式
self.save_player_data(username, player_data) self.save_player_data(username, player_data)
self.log('INFO', f"用户 {username} 本次游玩时间: {play_time_seconds} 秒,总游玩时间: {player_data['total_login_time']}", 'SERVER') self.log('INFO', f"用户 {username} 本次游玩时间: {play_time_seconds} 秒,总游玩时间: {player_data['总游玩时间']}", 'SERVER')
#更新总游玩时间 #更新总游玩时间
def _update_total_play_time(self, player_data, play_time_seconds): def _update_total_play_time(self, player_data, play_time_seconds):
"""更新总游玩时间""" """更新总游玩时间"""
total_time_str = player_data.get("total_login_time", "0时0分0秒") total_time_str = player_data.get("总游玩时间", "0时0分0秒")
time_parts = re.match(r"(?:(\d+)时)?(?:(\d+)分)?(?:(\d+)秒)?", total_time_str) time_parts = re.match(r"(?:(\d+)时)?(?:(\d+)分)?(?:(\d+)秒)?", total_time_str)
if time_parts: if time_parts:
@@ -490,7 +490,7 @@ class TCPGameServer(TCPServer):
new_seconds = total_seconds % 60 new_seconds = total_seconds % 60
# 更新总游玩时间 # 更新总游玩时间
player_data["total_login_time"] = f"{new_hours}{new_minutes}{new_seconds}" player_data["总游玩时间"] = f"{new_hours}{new_minutes}{new_seconds}"
# 检查玩家是否享受新玩家注册奖励 # 检查玩家是否享受新玩家注册奖励
def _is_new_player_bonus_active(self, player_data): def _is_new_player_bonus_active(self, player_data):
@@ -1138,8 +1138,8 @@ class TCPGameServer(TCPServer):
# 设置新玩家的注册时间(不同于模板中的默认时间) # 设置新玩家的注册时间(不同于模板中的默认时间)
player_data["注册时间"] = time_str player_data["注册时间"] = time_str
if "total_login_time" not in player_data: if "总游玩时间" not in player_data:
player_data["total_login_time"] = "0时0分0秒" player_data["总游玩时间"] = "0时0分0秒"
# 保存新用户数据 # 保存新用户数据
file_path = os.path.join("game_saves", f"{username}.json") file_path = os.path.join("game_saves", f"{username}.json")
@@ -5815,7 +5815,7 @@ class TCPGameServer(TCPServer):
# 获取最后登录时间和总游玩时间 # 获取最后登录时间和总游玩时间
last_login_time = player_data.get("最后登录时间", "未知") last_login_time = player_data.get("最后登录时间", "未知")
total_login_time = player_data.get("total_login_time", "0时0分0秒") total_login_time = player_data.get("总游玩时间", "0时0分0秒")
self.log('INFO', f"玩家 {username} 请求游玩时间统计", 'SERVER') self.log('INFO', f"玩家 {username} 请求游玩时间统计", 'SERVER')
@@ -5823,7 +5823,7 @@ class TCPGameServer(TCPServer):
"type": "play_time_response", "type": "play_time_response",
"success": True, "success": True,
"最后登录时间": last_login_time, "最后登录时间": last_login_time,
"total_login_time": total_login_time, "总游玩时间": total_login_time,
"current_session_time": current_session_time "current_session_time": current_session_time
}) })
@@ -5845,7 +5845,7 @@ class TCPGameServer(TCPServer):
play_time_seconds = int(time.time() - login_timestamp) play_time_seconds = int(time.time() - login_timestamp)
# 解析现有的总游玩时间 # 解析现有的总游玩时间
total_time_str = player_data.get("total_login_time", "0时0分0秒") total_time_str = player_data.get("总游玩时间", "0时0分0秒")
time_parts = re.match(r"(?:(\d+)时)?(?:(\d+)分)?(?:(\d+)秒)?", total_time_str) time_parts = re.match(r"(?:(\d+)时)?(?:(\d+)分)?(?:(\d+)秒)?", total_time_str)
if time_parts: if time_parts:
@@ -5860,7 +5860,7 @@ class TCPGameServer(TCPServer):
new_seconds = total_seconds % 60 new_seconds = total_seconds % 60
# 更新总游玩时间 # 更新总游玩时间
player_data["total_login_time"] = f"{new_hours}{new_minutes}{new_seconds}" player_data["总游玩时间"] = f"{new_hours}{new_minutes}{new_seconds}"
# 保存玩家数据 # 保存玩家数据
self.save_player_data(username, player_data) self.save_player_data(username, player_data)
@@ -5868,13 +5868,13 @@ class TCPGameServer(TCPServer):
# 重置登录时间戳,以便下次计算 # 重置登录时间戳,以便下次计算
self.user_data[client_id]["login_timestamp"] = time.time() self.user_data[client_id]["login_timestamp"] = time.time()
self.log('INFO', f"已更新玩家 {username} 的游玩时间,当前游玩时间: {play_time_seconds} 秒,总游玩时间: {player_data['total_login_time']}", 'SERVER') self.log('INFO', f"已更新玩家 {username} 的游玩时间,当前游玩时间: {play_time_seconds} 秒,总游玩时间: {player_data['总游玩时间']}", 'SERVER')
return self.send_data(client_id, { return self.send_data(client_id, {
"type": "update_time_response", "type": "update_time_response",
"success": True, "success": True,
"message": "游玩时间已更新", "message": "游玩时间已更新",
"total_login_time": player_data["total_login_time"] "总游玩时间": player_data["总游玩时间"]
}) })
else: else:
self.log('ERROR', f"解析玩家 {username} 的游玩时间失败", 'SERVER') self.log('ERROR', f"解析玩家 {username} 的游玩时间失败", 'SERVER')
@@ -5937,7 +5937,7 @@ class TCPGameServer(TCPServer):
continue continue
# 解析总游玩时间为秒数(用于排序) # 解析总游玩时间为秒数(用于排序)
total_time_str = player_data.get("total_login_time", "0时0分0秒") total_time_str = player_data.get("总游玩时间", "0时0分0秒")
total_time_seconds = self._parse_time_to_seconds(total_time_str) total_time_seconds = self._parse_time_to_seconds(total_time_str)
# 解析最后登录时间为时间戳(用于排序) # 解析最后登录时间为时间戳(用于排序)
@@ -5959,7 +5959,7 @@ class TCPGameServer(TCPServer):
"seed_count": seed_count, "seed_count": seed_count,
"最后登录时间": last_login_str, "最后登录时间": last_login_str,
"last_login_timestamp": last_login_timestamp, "last_login_timestamp": last_login_timestamp,
"total_login_time": total_time_str, "总游玩时间": total_time_str,
"total_time_seconds": total_time_seconds, "total_time_seconds": total_time_seconds,
"like_num": player_data.get("点赞数", 0), "like_num": player_data.get("点赞数", 0),
"is_online": is_online "is_online": is_online
@@ -6127,7 +6127,7 @@ class TCPGameServer(TCPServer):
"小卖部格子数": target_player_data.get("小卖部格子数", 10), # 添加小卖部格子数 "小卖部格子数": target_player_data.get("小卖部格子数", 10), # 添加小卖部格子数
"点赞数": target_player_data.get("点赞数", 0), # 添加点赞数 "点赞数": target_player_data.get("点赞数", 0), # 添加点赞数
"最后登录时间": target_player_data.get("最后登录时间", "未知"), "最后登录时间": target_player_data.get("最后登录时间", "未知"),
"total_login_time": target_player_data.get("total_login_time", "0时0分0秒"), "总游玩时间": target_player_data.get("总游玩时间", "0时0分0秒"),
"total_likes": target_player_data.get("total_likes", 0) "total_likes": target_player_data.get("total_likes", 0)
} }
@@ -9774,7 +9774,7 @@ class ConsoleCommands:
print(f"体力: {player_data.get('体力值', 20)}") print(f"体力: {player_data.get('体力值', 20)}")
print(f"注册时间: {player_data.get('注册时间', '未知')}") print(f"注册时间: {player_data.get('注册时间', '未知')}")
print(f"最后登录: {player_data.get('最后登录时间', '从未登录')}") print(f"最后登录: {player_data.get('最后登录时间', '从未登录')}")
print(f"总在线时长: {player_data.get('total_login_time', '0时0分0秒')}") print(f"总在线时长: {player_data.get('总游玩时间', '0时0分0秒')}")
# 显示土地信息 # 显示土地信息
farm_lots = player_data.get("farm_lots", []) farm_lots = player_data.get("farm_lots", [])

View File

@@ -315,7 +315,7 @@ class TCPGameServer(TCPServer):
import re import re
# 解析现有的总游玩时间 # 解析现有的总游玩时间
total_time_str = player_data.get("total_login_time", "0时0分0秒") total_time_str = player_data.get("总游玩时间", "0时0分0秒")
time_parts = re.match(r"(?:(\d+)时)?(?:(\d+)分)?(?:(\d+)秒)?", total_time_str) time_parts = re.match(r"(?:(\d+)时)?(?:(\d+)分)?(?:(\d+)秒)?", total_time_str)
if time_parts: if time_parts:
@@ -330,12 +330,12 @@ class TCPGameServer(TCPServer):
new_seconds = total_seconds % 60 new_seconds = total_seconds % 60
# 更新总游玩时间 # 更新总游玩时间
player_data["total_login_time"] = f"{new_hours}{new_minutes}{new_seconds}" player_data["总游玩时间"] = f"{new_hours}{new_minutes}{new_seconds}"
# 保存玩家数据 # 保存玩家数据
self.save_player_data(username, player_data) self.save_player_data(username, player_data)
self.log('INFO', f"用户 {username} 本次游玩时间: {play_time_seconds} 秒,总游玩时间: {player_data['total_login_time']}", 'SERVER') self.log('INFO', f"用户 {username} 本次游玩时间: {play_time_seconds} 秒,总游玩时间: {player_data['总游玩时间']}", 'SERVER')
self.log('INFO', f"用户 {username} 登出", 'SERVER') self.log('INFO', f"用户 {username} 登出", 'SERVER')
@@ -608,8 +608,8 @@ class TCPGameServer(TCPServer):
time_str = current_time.strftime("%Y年%m月%d%H时%M分%S秒") time_str = current_time.strftime("%Y年%m月%d%H时%M分%S秒")
player_data["最后登录时间"] = time_str player_data["最后登录时间"] = time_str
if "total_login_time" not in player_data: if "总游玩时间" not in player_data:
player_data["total_login_time"] = "0时0分0秒" player_data["总游玩时间"] = "0时0分0秒"
# 保存新用户数据 # 保存新用户数据
with open(file_path, 'w', encoding='utf-8') as file: with open(file_path, 'w', encoding='utf-8') as file:
@@ -1158,7 +1158,7 @@ class TCPGameServer(TCPServer):
# 获取最后登录时间和总游玩时间 # 获取最后登录时间和总游玩时间
last_login_time = player_data.get("最后登录时间", "未知") last_login_time = player_data.get("最后登录时间", "未知")
total_login_time = player_data.get("total_login_time", "0时0分0秒") total_login_time = player_data.get("总游玩时间", "0时0分0秒")
self.log('INFO', f"玩家 {username} 请求游玩时间统计", 'SERVER') self.log('INFO', f"玩家 {username} 请求游玩时间统计", 'SERVER')
@@ -1166,7 +1166,7 @@ class TCPGameServer(TCPServer):
"type": "play_time_response", "type": "play_time_response",
"success": True, "success": True,
"最后登录时间": last_login_time, "最后登录时间": last_login_time,
"total_login_time": total_login_time, "总游玩时间": total_login_time,
"current_session_time": current_session_time "current_session_time": current_session_time
}) })
@@ -1196,7 +1196,7 @@ class TCPGameServer(TCPServer):
# 解析现有的总游玩时间 # 解析现有的总游玩时间
import re import re
total_time_str = player_data.get("total_login_time", "0时0分0秒") total_time_str = player_data.get("总游玩时间", "0时0分0秒")
time_parts = re.match(r"(?:(\d+)时)?(?:(\d+)分)?(?:(\d+)秒)?", total_time_str) time_parts = re.match(r"(?:(\d+)时)?(?:(\d+)分)?(?:(\d+)秒)?", total_time_str)
if time_parts: if time_parts:
@@ -1211,7 +1211,7 @@ class TCPGameServer(TCPServer):
new_seconds = total_seconds % 60 new_seconds = total_seconds % 60
# 更新总游玩时间 # 更新总游玩时间
player_data["total_login_time"] = f"{new_hours}{new_minutes}{new_seconds}" player_data["总游玩时间"] = f"{new_hours}{new_minutes}{new_seconds}"
# 保存玩家数据 # 保存玩家数据
self.save_player_data(username, player_data) self.save_player_data(username, player_data)
@@ -1219,13 +1219,13 @@ class TCPGameServer(TCPServer):
# 重置登录时间戳,以便下次计算 # 重置登录时间戳,以便下次计算
self.user_data[client_id]["login_timestamp"] = time.time() self.user_data[client_id]["login_timestamp"] = time.time()
self.log('INFO', f"已更新玩家 {username} 的游玩时间,当前游玩时间: {play_time_seconds} 秒,总游玩时间: {player_data['total_login_time']}", 'SERVER') self.log('INFO', f"已更新玩家 {username} 的游玩时间,当前游玩时间: {play_time_seconds} 秒,总游玩时间: {player_data['总游玩时间']}", 'SERVER')
return self.send_data(client_id, { return self.send_data(client_id, {
"type": "update_time_response", "type": "update_time_response",
"success": True, "success": True,
"message": "游玩时间已更新", "message": "游玩时间已更新",
"total_login_time": player_data["total_login_time"] "总游玩时间": player_data["总游玩时间"]
}) })
else: else:
self.log('ERROR', f"解析玩家 {username} 的游玩时间失败", 'SERVER') self.log('ERROR', f"解析玩家 {username} 的游玩时间失败", 'SERVER')
@@ -1283,7 +1283,7 @@ class TCPGameServer(TCPServer):
"experience": player_data.get("experience", 0), "experience": player_data.get("experience", 0),
"seed_count": seed_count, "seed_count": seed_count,
"最后登录时间": player_data.get("最后登录时间", "未知"), "最后登录时间": player_data.get("最后登录时间", "未知"),
"total_login_time": player_data.get("total_login_time", "0时0分0秒") "总游玩时间": player_data.get("总游玩时间", "0时0分0秒")
} }
players_data.append(player_info) players_data.append(player_info)
@@ -1472,7 +1472,7 @@ class TCPGameServer(TCPServer):
"farm_lots": target_player_data.get("farm_lots", []), "farm_lots": target_player_data.get("farm_lots", []),
"player_bag": target_player_data.get("player_bag", []), "player_bag": target_player_data.get("player_bag", []),
"最后登录时间": target_player_data.get("最后登录时间", "未知"), "最后登录时间": target_player_data.get("最后登录时间", "未知"),
"total_login_time": target_player_data.get("total_login_time", "0时0分0秒") "总游玩时间": target_player_data.get("总游玩时间", "0时0分0秒")
} }
current_username = self.user_data[client_id]["username"] current_username = self.user_data[client_id]["username"]

View File

@@ -7,7 +7,7 @@
"user_name": "用户名", "user_name": "用户名",
"user_password": "密码", "user_password": "密码",
"最后登录时间": "2025年07月20日17时19分16秒", "最后登录时间": "2025年07月20日17时19分16秒",
"total_login_time": "0时0分0秒", "总游玩时间": "0时0分0秒",
"farm_lots": [], "farm_lots": [],
"player_bag": [], "player_bag": [],
"作物仓库": [], "作物仓库": [],

View File

@@ -7,7 +7,7 @@
"user_name": "2143323382", "user_name": "2143323382",
"user_password": "tyh@19900420", "user_password": "tyh@19900420",
"最后登录时间": "2025年07月20日22时15分13秒", "最后登录时间": "2025年07月20日22时15分13秒",
"total_login_time": "6时47分9秒", "总游玩时间": "6时47分9秒",
"farm_lots": [ "farm_lots": [
{ {
"crop_type": "", "crop_type": "",
@@ -144,7 +144,7 @@
}, },
{ {
"crop_type": "杂交树2", "crop_type": "杂交树2",
"grow_time": 22356, "grow_time": 23736,
"is_dead": false, "is_dead": false,
"is_diged": true, "is_diged": true,
"is_planted": true, "is_planted": true,

View File

@@ -1,13 +1,13 @@
{ {
"experience": 877, "experience": 927,
"level": 11, "level": 11,
"money": 1231231162929, "money": 1231231163029,
"farm_name": "123", "farm_name": "123",
"player_name": "123", "player_name": "123",
"user_name": "2804775686", "user_name": "2804775686",
"user_password": "123", "user_password": "123",
"最后登录时间": "2025年07月21日08时26分48秒", "最后登录时间": "2025年07月21日09时07分52秒",
"total_login_time": "0时5分47秒", "总游玩时间": "0时7分23秒",
"注册时间": "2025年07月20日23时08分10秒", "注册时间": "2025年07月20日23时08分10秒",
"个人简介": "啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊", "个人简介": "啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊",
"farm_lots": [ "farm_lots": [
@@ -558,12 +558,12 @@
{ {
"name": "小麦", "name": "小麦",
"quality": "普通", "quality": "普通",
"count": 9 "count": 14
}, },
{ {
"name": "胡萝卜", "name": "胡萝卜",
"quality": "普通", "quality": "普通",
"count": 11 "count": 14
}, },
{ {
"name": "稻谷", "name": "稻谷",
@@ -2018,8 +2018,10 @@
}, },
"在线礼包": { "在线礼包": {
"当前日期": "2025-07-21", "当前日期": "2025-07-21",
"今日在线时长": 0.0, "今日在线时长": 110.85636234283447,
"已领取礼包": [], "已领取礼包": [
"1分钟"
],
"登录时间": 1753054985.2239232 "登录时间": 1753054985.2239232
}, },
"点赞系统": { "点赞系统": {

View File

@@ -579,7 +579,7 @@
"level": 64, "level": 64,
"money": 615197019864, "money": 615197019864,
"最后登录时间": "2025年07月19日21时52分29秒", "最后登录时间": "2025年07月19日21时52分29秒",
"total_login_time": "162时47分40秒", "总游玩时间": "162时47分40秒",
"user_name": "3205788256", "user_name": "3205788256",
"user_password": "tyh@19900420", "user_password": "tyh@19900420",
"个人简介": "人生啊,就这样吧", "个人简介": "人生啊,就这样吧",