迁移了大部分数据配置

This commit is contained in:
2025-07-22 07:57:33 +08:00
parent ca75186d8f
commit 257433a115
35 changed files with 1304 additions and 4773 deletions

View File

@@ -415,7 +415,7 @@ func _display_version_info():
func _handle_login_success(user_data: Dictionary):
# 保存登录数据到主游戏
main_game.login_data = user_data.duplicate()
main_game.remaining_likes = user_data.get("今日剩余点赞次数", 10)
main_game.remaining_likes = user_data.get("点赞系统", {}).get("今日剩余点赞次数", 10)
# 更新主游戏数据
main_game.experience = user_data.get("经验值", 0)

View File

@@ -50,13 +50,15 @@ func update_player_store_ui():
# 获取小卖部数据
if main_game.is_visiting_mode:
# 访问模式:显示被访问玩家的小卖部
player_store_data = main_game.visited_player_data.get("玩家小卖部", [])
max_store_slots = main_game.visited_player_data.get("小卖部格子数", 10)
var store_config = main_game.visited_player_data.get("小卖部配置", {"商品列表": [], "格子数": 10})
player_store_data = store_config.get("商品列表", [])
max_store_slots = store_config.get("格子数", 10)
buy_product_booth_button.hide() # 访问模式下隐藏购买格子按钮
else:
# 正常模式:显示自己的小卖部
player_store_data = main_game.login_data.get("玩家小卖部", [])
max_store_slots = main_game.login_data.get("小卖部格子数", 10)
var store_config = main_game.login_data.get("小卖部配置", {"商品列表": [], "格子数": 10})
player_store_data = store_config.get("商品列表", [])
max_store_slots = store_config.get("格子数", 10)
buy_product_booth_button.show() # 正常模式下显示购买格子按钮
# 创建商品按钮
@@ -187,7 +189,7 @@ func _on_product_buy_selected(product_data: Dictionary, slot_index: int):
batch_buy_popup.show_buy_popup(
product_name,
product_price,
"玩家小卖部商品",
"小卖部商品",
"store_product", # 特殊类型标识
_on_confirm_buy_store_product,
_on_cancel_buy_store_product

View File

@@ -85,8 +85,8 @@ func send_broadcast_message():
else:
Toast.show("消息发送失败", Color.RED, 2.0, 1.0)
# 接收全服大喇叭消息
func receive_broadcast_message(data: Dictionary):
# 统一的消息处理函数
func _add_message_to_history(data: Dictionary):
var username = data.get("username", "匿名")
var player_name = data.get("玩家昵称", "")
var content = data.get("content", "")
@@ -109,17 +109,12 @@ func receive_broadcast_message(data: Dictionary):
"display_name": display_name
}
# 按时间戳插入到正确位置(保持时间顺序)
var inserted = false
for i in range(message_history.size()):
if message_history[i].get("timestamp", 0) > timestamp:
message_history.insert(i, message_record)
inserted = true
break
# 如果没有找到插入位置,说明是最新消息,添加到末尾
if not inserted:
message_history.append(message_record)
message_history.append(message_record)
# 接收全服大喇叭消息
func receive_broadcast_message(data: Dictionary):
# 使用统一的处理函数
_add_message_to_history(data)
# 保持消息历史记录在限制范围内
if message_history.size() > max_message_history:
@@ -129,10 +124,6 @@ func receive_broadcast_message(data: Dictionary):
if visible:
update_message_display()
# 更新主界面的大喇叭显示
if main_game and main_game.has_method("update_broadcast_display"):
main_game.update_broadcast_display(display_name + ": " + content)
# 保存到本地
save_chat_history()
@@ -229,25 +220,19 @@ func receive_history_messages(data: Dictionary):
print("大喇叭面板收到历史消息: ", messages.size(), "")
if messages.size() > 0:
# 清空当前消息历史
# 清空当前历史记录,重新加载
message_history.clear()
# 添加服务器返回的历史消息
# 处理每条消息
for msg in messages:
var message_record = {
"username": msg.get("username", "匿名"),
"玩家昵称": msg.get("玩家昵称", ""),
"content": msg.get("content", ""),
"timestamp": msg.get("timestamp", 0),
"time_str": msg.get("time_str", ""),
"display_name": msg.get("display_name", msg.get("username", "匿名"))
}
message_history.append(message_record)
print("添加消息: ", message_record.display_name, ": ", message_record.content)
_add_message_to_history(msg)
# 按时间戳排序消息历史(从旧到新)
# 按时间戳排序
message_history.sort_custom(func(a, b): return a.get("timestamp", 0) < b.get("timestamp", 0))
print("排序后消息历史大小: ", message_history.size())
# 保持消息历史记录在限制范围内
if message_history.size() > max_message_history:
message_history = message_history.slice(-max_message_history)
# 更新显示
update_message_display()