Kaynağa Gözat

新增服务的映射脚本合远航试炼排行榜逻辑修改

lt 4 ay önce
ebeveyn
işleme
61d5714dc0

+ 82 - 0
RO_Server_Trunk-branch_0.1.39/roserver/buildservice.sh

@@ -0,0 +1,82 @@
+#!/bin/bash
+# map_services_here.sh
+
+# 源目录
+SOURCE_DIR="/data/servers"
+
+# 需要映射的服务列表
+SERVICES=(
+    "auth"
+    "battleboss"
+    "battlerecord"
+    "crossrank"
+    "crossrouter"
+    "crossserver"
+    "db"
+    "game"
+    "gate"
+    "gmweb"
+    "guild"
+    "rank"
+    "social"
+)
+
+# 当前目录
+CURRENT_DIR="$(pwd)"
+
+echo "正在从 $SOURCE_DIR 映射服务到当前目录: $CURRENT_DIR"
+echo "================================================"
+
+# 检查源目录是否存在
+if [ ! -d "$SOURCE_DIR" ]; then
+    echo "错误: 源目录 $SOURCE_DIR 不存在!"
+    exit 1
+fi
+
+# 统计
+created_count=0
+skipped_count=0
+missing_count=0
+
+# 为每个服务创建软链接
+for service in "${SERVICES[@]}"; do
+    source_path="$SOURCE_DIR/$service"
+    target_link="./$service"
+
+    # 检查源服务是否存在
+    if [ ! -e "$source_path" ]; then
+        echo "⚠ 源服务不存在: $service"
+        ((missing_count++))
+        continue
+    fi
+
+    # 如果链接已存在,询问是否覆盖
+    if [ -e "$target_link" ]; then
+        echo -n "链接 $target_link 已存在,是否覆盖?[y/N]: "
+        read -r response
+        if [[ "$response" =~ ^[Yy]$ ]]; then
+            rm -f "$target_link"
+            ln -sn "$source_path" "$target_link"
+            echo "✓ 已覆盖: $service"
+            ((created_count++))
+        else
+            echo "✗ 跳过: $service"
+            ((skipped_count++))
+        fi
+    else
+        # 创建软链接
+        ln -sn "$source_path" "$target_link"
+        echo "✓ 映射: $service"
+        ((created_count++))
+    fi
+done
+
+echo ""
+echo "================================================"
+echo "映射完成!"
+echo "创建链接: $created_count 个"
+echo "跳过: $skipped_count 个"
+echo "源服务不存在: $missing_count 个"
+echo ""
+echo "当前目录内容:"
+ls -l

+ 8 - 1
RO_Server_Trunk-branch_0.1.39/roserver/cross_server/model/yuanhang_trial.go

@@ -11,6 +11,7 @@ import (
 	"roserver/serverproto"
 	"sort"
 	"strconv"
+	"time"
 )
 
 // 远航试炼
@@ -525,8 +526,14 @@ func (this *YuanHangTrialManager) RefreshTrialRank(lastSeasonId int32, rewardPla
 	data := &serverproto.SSFriendDataSaveReq{
 		SubList: make([]*serverproto.KeyValueType64, 0),
 	}
+	sleep := service.GetServiceConfig().Node.Type
+	//其他服等待1服设置奖励排行榜
+	if sleep != 2 {
+		time.Sleep(time.Duration(sleep) * time.Second)
+	}
 	err := model.GetMessageFromRedis("", YuanHangTrialRankAwardPrefix, data)
-	if err == redis.Nil {
+	//只保留1服来操作排行榜数据,其他服只负责获取奖励排行榜
+	if err == redis.Nil && sleep == 2 {
 		//获得前100排行玩家数据
 		for idx := 0; idx < 5; idx++ {
 			startIdx := int64(idx * 20)