迁移了大部分数据配置
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user