资源图标

服务端工具 [管理] MultiSEngine 多世界引擎 -- 强大的基于代理的多世界服务 1.0.5.2

没有下载许可

10935336

LV
0
 
2021/11/18
7
1
好像没办法让 1.4.0.5.2 的客户端连上 1.4.3 的服务器?
VersionNum 试了 238 242 230 都不行。
 

Megghy

管理成员
VIP
版主
创意家
LV
0
 
2020/03/20
350
103
勋章
5
好像没办法让 1.4.0.5.2 的客户端连上 1.4.3 的服务器?
VersionNum 试了 238 242 230 都不行。
那个是发送给服务端的版本号 要让低版本进需要装压缩包里的crossplay
 

10935336

LV
0
 
2021/11/18
7
1
那个是发送给服务端的版本号 要让低版本进需要装压缩包里的crossplay
确实是装了的,用的版本是 github 的 Beta_1.0.5。
用 TShock 1.4.2.3 服务端的时候正常,更新到 TShock 1.4.3 就不行了。
用手机 1.4.0.5.2 加入时候的控制台输出:
代码:
[Log] xxx:yyy trying to connect...
[Info] [Crossplay] xxx:yyy from v1.4.0.5, modifing packet.
[Info] Version num of xxx:yyy is 230.
[Log] [test] disconnected.
服务端那边没有任何动静。
用电脑 1.4.3 可以正常加入,但控制台还是会有警告。
代码:
[Warning] 13 not used when deserializing S2C::TrProtocol.Packets.SyncProjectile



还遇到了另外一个非常严重的问题,在 linux 上使用 dotnet 6.0.100 运行。
每次有玩家进入并退出后,就会占用约 50% 的 CPU(linux 的单核心百分比),比如我进入退出 4 次,CPU 占用率就会来到 200%。
1637589630416.png
 
最后编辑:

Megghy

管理成员
VIP
版主
创意家
LV
0
 
2020/03/20
350
103
勋章
5
确实是装了的,用的版本是 github 的 Beta_1.0.5。
用 TShock 1.4.2.3 服务端的时候正常,更新到 TShock 1.4.3 就不行了。
用手机 1.4.0.5.2 加入时候的控制台输出:
代码:
[Log] xxx:yyy trying to connect...
[Info] [Crossplay] xxx:yyy from v1.4.0.5, modifing packet.
[Info] Version num of xxx:yyy is 230.
[Log] [test] disconnected.
服务端那边没有任何动静。
用电脑 1.4.3 可以正常加入,但控制台还是会有警告。
代码:
[Warning] 13 not used when deserializing S2C::TrProtocol.Packets.SyncProjectile



还遇到了另外一个非常严重的问题,在 linux 上使用 donet 6 运行。
每次有玩家进入并退出后,就会占用约 50% 的 CPU(linux 的单核心百分比),比如我进入退出 4 次,CPU 占用率就会来到 200%。
浏览附件4620
试下这个
配置文件不设置defaultserver就需要自己输命令才会去别的服
linux的话是每次都会出现?
 
最后编辑:

10935336

LV
0
 
2021/11/18
7
1
试下这个
配置文件不设置defaultserver就需要自己输命令才会去别的服
这个版本也不行,也试了 Beta_1.0.5.1,
手机连接会直接卡在发现服务器,然后后台瞬间显示 disconnected。
defaultserver 设置过了,电脑版能正常直接进入服务器。

抱歉抱歉,我重新安装试了一下,发现是手机覆盖安装出问题了,重新安装就正常了。
要把"VersionNum" 改为 243 (服务端更新到 1.4.3.1 了),希望可以完善下语雀说明。
linux的话是每次都会出现?
基本上是的,无论有没有成功加入都会出现。Beta_1.0.5.1 也有这个情况
有时候手机加入会在后台刷非常多的
代码:
[Warning] 13 not used when deserializing S2C::TrProtocol.Packets.SyncProjectile
这是我反复退出加入很多次得到的图,此时没有人在游戏内。
1637660204975.png
 
最后编辑:

Megghy

管理成员
VIP
版主
创意家
LV
0
 
2020/03/20
350
103
勋章
5
这个版本也不行,也试了 Beta_1.0.5.1,
手机连接会直接卡在发现服务器,然后后台瞬间显示 disconnected。
defaultserver 设置过了,电脑版能正常直接进入服务器。

抱歉抱歉,我重新安装试了一下,发现是手机覆盖安装出问题了,重新安装就正常了。
要把"VersionNum" 改为 243 (服务端更新到 1.4.3.1 了),希望可以完善下语雀说明。

基本上是的,无论有没有成功加入都会出现。Beta_1.0.5.1 也有这个情况
有时候手机加入会在后台刷非常多的
代码:
[Warning] 13 not used when deserializing S2C::TrProtocol.Packets.SyncProjectile
这是我反复退出加入很多次得到的图,此时没有人在游戏内。
浏览附件4622
这个warning没有太大影响
我自己的centos7环境上测试没有遇到高cpu占用, 你这里显示高是确实被占用了这么多还是检测bug?
 

10935336

LV
0
 
2021/11/18
7
1
这个warning没有太大影响
我自己的centos7环境上测试没有遇到高cpu占用, 你这里显示高是确实被占用了这么多还是检测bug?
确实被占用了,测试环境是 RHEL 8.5,dotnet 6.0.100。
用 htop 可以看到很多个进程。

1637738750758.png
1637738765424.png
1637738915357.png
1637739315445.png
 
最后编辑:

Megghy

管理成员
VIP
版主
创意家
LV
0
 
2020/03/20
350
103
勋章
5

jerrysxp

LV
0
 
2021/12/06
7
0
Tshock版本 4.5.12.0
資料庫:MySQL
插件名稱:MultiSEngine
Config.json
{
"ListenIP": "0.0.0.0", (設定127.0.0.1從外網無法登入)
"ListenPort": 7777,
"ServerName": "DinmoeMultiWorlds",
"ServerVersion": 244,
"Token": "123456787774",
"SwitchTimeOut": 30000,
"SwitchToDefaultServerOnJoin": true,
"EnableCrossplayFeature": true,
(or false)
"RestoreDataWhenJoinNonSSC": true,
"DefaultServer": "測試伺服器A",
"Servers":
[
{
"Visible": true,
"Name":
"測試伺服器A",
"IP": "dinmoe.ddns.net",
"Port": 8787,
"SpawnX": -1,
(X,Y皆有嚐試設定為伺服器A的重生點座標)
"SpawnY": -1,
"VersionNum": 244

},
{
"Visible": true,
"Name": "
死亡黑洞",
"IP": "127.0.0.1",
"Port": 8788,
"SpawnX": -1,
"SpawnY": -1,
"VersionNum": -1

}
]
}
運作狀況為,使用登入7777 port 可進入FakeServer 進入遊戲畫面全黑 點亮火把可看見人物在螢幕正中央無法移動(因為是FakeServer?)
指令可運行
/msu info 伺服器清單運作正常 可列出 測試伺服器A以及死亡黑洞
輸入/mse tp 測試伺服器A 再輸入/mse password 伺服器密碼可傳送
但是。。。
人物傳送過去之後 重生點腳下有一大塊的物件像是沒有載入一樣(大概像是整個地圖被攔腰斬斷一樣XD)進入遊戲後人物就會無限loop掉落死亡>重生>掉落>死亡>重生循環
以下是錯誤log

[Warn] Server recieve loop abnormally terminated.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserializeTile|0_1(BinaryReader br)
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserialize|0_0(BinaryReader br, <>c__DisplayClass0_0& )
at TrProtocol.Models.SectionData.SectionDataSerializer._Read(BinaryReader reader)
at TrProtocol.FieldSerializer`1.Read(BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass10_1.<GenerateSerializers>b__5(Object o, BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass11_0.<RegisterPacket>b__2(BinaryReader br)
at TrProtocol.PacketSerializer.Deserialize(BinaryReader br0)
at MultiSEngine.Core.Adapter.BaseAdapter.RecieveLoop()
[Warn] Server recieve loop abnormally terminated.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserializeTile|0_1(BinaryReader br)
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserialize|0_0(BinaryReader br, <>c__DisplayClass0_0& )
at TrProtocol.Models.SectionData.SectionDataSerializer._Read(BinaryReader reader)
at TrProtocol.FieldSerializer`1.Read(BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass10_1.<GenerateSerializers>b__5(Object o, BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass11_0.<RegisterPacket>b__2(BinaryReader br)
at TrProtocol.PacketSerializer.Deserialize(BinaryReader br0)
at MultiSEngine.Core.Adapter.BaseAdapter.RecieveLoop()


似乎只差一點點就成功了! 對了我是用Linux終端跑 dotnet MultiSEngine.dll 不過伺服器A的插件也放了MultiSEngine.TShock
再麻煩您撥空查看我的問題,感謝您!
 

Megghy

管理成员
VIP
版主
创意家
LV
0
 
2020/03/20
350
103
勋章
5
Tshock版本 4.5.12.0
資料庫:MySQL
插件名稱:MultiSEngine
Config.json
{
"ListenIP": "0.0.0.0", (設定127.0.0.1從外網無法登入)
"ListenPort": 7777,
"ServerName": "DinmoeMultiWorlds",
"ServerVersion": 244,
"Token": "123456787774",
"SwitchTimeOut": 30000,
"SwitchToDefaultServerOnJoin": true,
"EnableCrossplayFeature": true,
(or false)
"RestoreDataWhenJoinNonSSC": true,
"DefaultServer": "測試伺服器A",
"Servers":
[
{
"Visible": true,
"Name":
"測試伺服器A",
"IP": "dinmoe.ddns.net",
"Port": 8787,
"SpawnX": -1,
(X,Y皆有嚐試設定為伺服器A的重生點座標)
"SpawnY": -1,
"VersionNum": 244

},
{
"Visible": true,
"Name": "
死亡黑洞",
"IP": "127.0.0.1",
"Port": 8788,
"SpawnX": -1,
"SpawnY": -1,
"VersionNum": -1

}
]
}
運作狀況為,使用登入7777 port 可進入FakeServer 進入遊戲畫面全黑 點亮火把可看見人物在螢幕正中央無法移動(因為是FakeServer?)
指令可運行
/msu info 伺服器清單運作正常 可列出 測試伺服器A以及死亡黑洞
輸入/mse tp 測試伺服器A 再輸入/mse password 伺服器密碼可傳送
但是。。。
人物傳送過去之後 重生點腳下有一大塊的物件像是沒有載入一樣(大概像是整個地圖被攔腰斬斷一樣XD)進入遊戲後人物就會無限loop掉落死亡>重生>掉落>死亡>重生循環
以下是錯誤log

[Warn] Server recieve loop abnormally terminated.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserializeTile|0_1(BinaryReader br)
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserialize|0_0(BinaryReader br, <>c__DisplayClass0_0& )
at TrProtocol.Models.SectionData.SectionDataSerializer._Read(BinaryReader reader)
at TrProtocol.FieldSerializer`1.Read(BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass10_1.<GenerateSerializers>b__5(Object o, BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass11_0.<RegisterPacket>b__2(BinaryReader br)
at TrProtocol.PacketSerializer.Deserialize(BinaryReader br0)
at MultiSEngine.Core.Adapter.BaseAdapter.RecieveLoop()
[Warn] Server recieve loop abnormally terminated.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserializeTile|0_1(BinaryReader br)
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserialize|0_0(BinaryReader br, <>c__DisplayClass0_0& )
at TrProtocol.Models.SectionData.SectionDataSerializer._Read(BinaryReader reader)
at TrProtocol.FieldSerializer`1.Read(BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass10_1.<GenerateSerializers>b__5(Object o, BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass11_0.<RegisterPacket>b__2(BinaryReader br)
at TrProtocol.PacketSerializer.Deserialize(BinaryReader br0)
at MultiSEngine.Core.Adapter.BaseAdapter.RecieveLoop()


似乎只差一點點就成功了! 對了我是用Linux終端跑 dotnet MultiSEngine.dll 不過伺服器A的插件也放了MultiSEngine.TShock
再麻煩您撥空查看我的問題,感謝您!
服务端和客户端什么版本
 

jerrysxp

LV
0
 
2021/12/06
7
0
服务端和客户端什么版本
服務端是TerrariaAPI Version: 2.1.0.0 (Protocol v1.4.3.2 (244), OTAPI 1.4.3.2)
客戶端(打開遊戲的左下角)也是 1.4.3.2 所以是版本太新造成的嗎XD
 

Megghy

管理成员
VIP
版主
创意家
LV
0
 
2020/03/20
350
103
勋章
5

jerrysxp

LV
0
 
2021/12/06
7
0
使用了 Beta_1.0.5.3

[Info] Loading all plugins.
[Info] 0 Plugin(s) loaded.
[Success] MultiSEngine startted.
[Log] 1.200.240.27:38893 trying to connect...
[Info] Version of 1.200.240.27:38893 is v1.4.3.2.
[Log] [丁貓] is temporarily transported in FakeWorld
[Chat] 丁貓 <>: /mse tp 丁貓的泰瑞利亞 to the server: [丁貓的泰瑞利亞]
[Log] Update the index of [丁貓]: 0 => 1.
[Chat] 丁貓 <>: /mse password love
[Log] Syncing player: [丁貓]
[Warn] Server recieve loop abnormally terminated.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserializeTile|0_1(BinaryReader br)
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserialize|0_0(BinaryReader br, <>c__DisplayClass0_0& )
at TrProtocol.Models.SectionData.SectionDataSerializer._Read(BinaryReader reader)
at TrProtocol.FieldSerializer`1.Read(BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass10_1.<GenerateSerializers>b__5(Object o, BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass11_0.<RegisterPacket>b__2(BinaryReader br)
at TrProtocol.PacketSerializer.Deserialize(BinaryReader br0)
at MultiSEngine.Core.Adapter.BaseAdapter.RecieveLoop()
[Warn] Server recieve loop abnormally terminated.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserializeTile|0_1(BinaryReader br)
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserialize|0_0(BinaryReader br, <>c__DisplayClass0_0& )
at TrProtocol.Models.SectionData.SectionDataSerializer._Read(BinaryReader reader)
at TrProtocol.FieldSerializer`1.Read(BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass10_1.<GenerateSerializers>b__5(Object o, BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass11_0.<RegisterPacket>b__2(BinaryReader br)
at TrProtocol.PacketSerializer.Deserialize(BinaryReader br0)
at MultiSEngine.Core.Adapter.BaseAdapter.RecieveLoop()
[Success] [丁貓] successfully joined the server: 丁貓的泰瑞利亞

成功登入MultiServer
1639469830275.jpg
輸入 /mse tp 後
1639469946736.jpg
無盡的墜落XD

想請問除了MultiSEngine和TShock的Server port以外還有其他Port是應該開啟的嗎?
 
最后编辑:

Megghy

管理成员
VIP
版主
创意家
LV
0
 
2020/03/20
350
103
勋章
5
使用了 Beta_1.0.5.3

[Info] Loading all plugins.
[Info] 0 Plugin(s) loaded.
[Success] MultiSEngine startted.
[Log] 1.200.240.27:38893 trying to connect...
[Info] Version of 1.200.240.27:38893 is v1.4.3.2.
[Log] [丁貓] is temporarily transported in FakeWorld
[Chat] 丁貓 <>: /mse tp 丁貓的泰瑞利亞 to the server: [丁貓的泰瑞利亞]
[Log] Update the index of [丁貓]: 0 => 1.
[Chat] 丁貓 <>: /mse password love
[Log] Syncing player: [丁貓]
[Warn] Server recieve loop abnormally terminated.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserializeTile|0_1(BinaryReader br)
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserialize|0_0(BinaryReader br, <>c__DisplayClass0_0& )
at TrProtocol.Models.SectionData.SectionDataSerializer._Read(BinaryReader reader)
at TrProtocol.FieldSerializer`1.Read(BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass10_1.<GenerateSerializers>b__5(Object o, BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass11_0.<RegisterPacket>b__2(BinaryReader br)
at TrProtocol.PacketSerializer.Deserialize(BinaryReader br0)
at MultiSEngine.Core.Adapter.BaseAdapter.RecieveLoop()
[Warn] Server recieve loop abnormally terminated.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserializeTile|0_1(BinaryReader br)
at TrProtocol.Models.SectionData.SectionDataSerializer.<_Read>g__deserialize|0_0(BinaryReader br, <>c__DisplayClass0_0& )
at TrProtocol.Models.SectionData.SectionDataSerializer._Read(BinaryReader reader)
at TrProtocol.FieldSerializer`1.Read(BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass10_1.<GenerateSerializers>b__5(Object o, BinaryReader br)
at TrProtocol.PacketSerializer.<>c__DisplayClass11_0.<RegisterPacket>b__2(BinaryReader br)
at TrProtocol.PacketSerializer.Deserialize(BinaryReader br0)
at MultiSEngine.Core.Adapter.BaseAdapter.RecieveLoop()
[Success] [丁貓] successfully joined the server: 丁貓的泰瑞利亞

成功登入MultiServer
浏览附件4665
輸入 /mse tp 後
浏览附件4666
無盡的墜落XD

想請問除了MultiSEngine和TShock的Server port以外還有其他Port是應該開啟的嗎?
开个新图看看还会不会这样 我这里复现不出这个问题, 看了下代码似乎也没什么错
没有需要开的其他端口
 

jerrysxp

LV
0
 
2021/12/06
7
0
沒錯,確實是新開一個世界就正常了 真奇怪,謝謝版主的幫助! 但是我有個小建議
目前tp都是需要鍵入該世界全名的 不知能否將鍵入值改成一個簡單的自設字串 然後將世界名加綴在後面?
例如:我要傳到一個 叫ABCWorld 但我設定成 /mse tp 1就可以這樣
再次感謝幫助[向导_热情]
开个新图看看还会不会这样 我这里复现不出这个问题, 看了下代码似乎也没什么错
没有需要开的其他端口
 

* 这是一则由 Google AdSense 自动推荐的广告,与本站无关,不对其真实性与可靠性负责

顶部