Sfoglia il codice sorgente

【优化】解决游戏服收不到战斗服事件问题

johnclot69 1 anno fa
parent
commit
a5996a5e1d

+ 3 - 3
DotNet/Hotfix/Helper/MapHelper.cs

@@ -184,7 +184,7 @@ namespace ET.Server
             long instanceId = IdGenerater.Instance.GenerateInstanceId();
             bool usespaceDiv = prop.Type == (int) MapType.NORMAL;
 
-            JObject jsonObject = new JObject();
+            JObject jsonObject = new ();
             jsonObject.Add("monsterHard", prop.MonsterHard);
             jsonObject.Add("calPKValue", prop.ignorePkRule == 0);
             jsonObject.Add("allowAutoGuard", prop.AutoFight);
@@ -203,13 +203,13 @@ namespace ET.Server
             Log.Info($"createArea instanceId:{instanceId}, templateId:{prop.TemplateID}, bs:{player.GetZoneManager()}");
 
             int resCode = player.GetZoneManager().createZoneRequest(player.GetId().ToString(),
-                player.GetLogicServerId().ToString(), prop.TemplateID, instanceId.ToString(), forceCreate, enterData);
+                "bs-" + ConstGame.GameServerId, prop.TemplateID, instanceId.ToString(), forceCreate, enterData);
 
             if (resCode == 0)
             {
                 jsonObject.Add("instanceId", instanceId);
                 jsonObject.Add("areaId", mapId);
-                return CreaLocalMap(player, prop, jsonObject, instanceId, mapId, player.GetLogicServerId().ToString());
+                return CreaLocalMap(player, prop, jsonObject, instanceId, mapId, "bs-" + ConstGame.GameServerId);
             }
 
             Log.Warning($"createZoneRequest resCode={resCode}, mapID={prop.Id}, playerId={player.GetId()}");

+ 31 - 20
DotNet/Hotfix/Module/IceBattle/BattleIceAgentComponentSystem.cs

@@ -1,7 +1,6 @@
 using Ice;
 using System;
 using System.Threading;
-using System.Threading.Tasks;
 using BattleIce;
 
 namespace ET.Server
@@ -50,26 +49,31 @@ namespace ET.Server
 
                     BattleIceAgentComponent.Instance.IceZoneManager = ZoneIce;
                     Log.Debug("got zoneManager.Proxy");
-                    ZoneIce.ice_invocationTimeout(15);
+                    ZoneIce.ice_invocationTimeout(15000);
 
                     ObjectAdapter adapter = communicator().createObjectAdapter("");
                     ObjectPrx prx = adapter.add(new ZoneManagerCallback(), communicator().stringToIdentity("bs-" + ConstGame.GameServerId));
                     ZoneIce.ice_getCachedConnection().setAdapter(adapter);
-                    int ret = ZoneIce.setCallback(prx.ice_getIdentity(), ConstGame.GameServerId.ToString());
-                    if (ret < 0)
+                    //-3: 未知异常
+                    //-2: 异常参数;
+                    //-1: 已有在线的,拒绝;
+                    //0	: 加入成功
+                    //1 : 加入成功,重连
+                    int code = ZoneIce.setCallback(prx.ice_getIdentity(), ConstGame.GameServerUUID);
+                    if (code < 0)
                     {
-                        Log.Error($"ice connect error: {ret}");
+                        Log.Error($"战斗服连接异常: {code}");
                         return 2;
                     }
 
                     //向战斗服注册本GameServer
-                    string res = ZoneIce.registerGameServer(ConstGame.GameServerId, 0);
+                    string res = ZoneIce.registerGameServer(ConstGame.GameServerId, ConstGame.GameServerId);
                     BattleIceAgentComponent.Instance.StrBattleServerVersion = res;
                     Log.Info($"Battle Server version:  {res}");
                 }
                 catch (Ice.Exception e)
                 {
-                    Log.Error(e.Message);
+                    Log.Error($"BattleIceAgentComponent ZoneManagerPrx Exception.{e.Message}");
                     return 3;
                 }
 
@@ -84,11 +88,11 @@ namespace ET.Server
 
                     Log.Debug("got XmdsManager.Proxy");
                     BattleIceAgentComponent.Instance.IceXmdsManager = XmdsIce;
-                    XmdsIce.ice_invocationTimeout(15);
+                    XmdsIce.ice_invocationTimeout(15000);
                 }
                 catch (Ice.Exception e)
                 {
-                    Log.Error(e.Message);
+                    Log.Error($"BattleIceAgentComponent XmdsManagerPrx Exception.{e.Message}");
                     return 5;
                 }
 
@@ -110,18 +114,25 @@ namespace ET.Server
                 Log.Debug($"battleServer zone notify: type({eventType}), msg({msg})");
                 Log.Debug("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
 
-                //TODO:GWorld.java @ battleServerEvent
-                if (eventType == "areaEvent" || eventType == "zoneEvent")
-                {
-                }
-                else if (eventType == "playerEvent")
-                {
-                }
-                else if (eventType == "mapNotify")
-                {
-                }
-                else if (eventType == "taskEvent")
+                switch (eventType)
                 {
+                    case "areaEvent":
+                    case "zoneEvent":
+                    {
+                        return;
+                    }
+                    case "playerEvent":
+                    {
+                        return;
+                    }
+                    case "taskEvent":
+                    {
+                        return;
+                    }
+                    case "mapNotify":
+                    {
+                        return;
+                    }
                 }
             }
         }

+ 2 - 1
DotNet/Hotfix/Scenes/Game/Player/PlayerSystem.cs

@@ -251,6 +251,7 @@ namespace ET.Server
                     level = self.GetLevel(),
                     vip = 0,
                     upLevel = 1,
+                    // 无悬赏
                     beReward = 0,
                     logicServerId = ConstGame.GameServerId,
                     sex = self.GetSex(),
@@ -259,7 +260,7 @@ namespace ET.Server
                 },
                 connectServerId = "bs-" + ConstGame.GameServerId,
                 uid = self.GetId().ToString(),
-                unitTemplateID = 1,
+                unitTemplateID = self.GetPro(),
                 robot = false,
                 tempData = new
                 {

+ 1 - 1
Unity/Assets/Scripts/Codes/Model/Share/Const/ConstGame.cs

@@ -6,7 +6,7 @@
         public static int GameServerId;
 
         [StaticField]
-        public static string GameServerUUID;
+        public static string GameServerUUID = System.Guid.NewGuid().ToString();
     }
 
     /// <summary>