feat: Upgrade server with HyNB v2.4 modular architecture, minigames, admin GM web panel, companion summons, and car radio

This commit is contained in:
CAtlas0784 committed 2026-10-29 02:44:24 +07:00
1 parent 74e2963a12
commit 3e5adf1dc5
1571 files changed
+336468 -6348

No files matched your search

@@ -696,6 +696,14 @@ internal static class MethodId
internal const uint AskServerGraffitoUrl = 63489995;
internal const uint SyncEnterFogMapPoiId = 63491307;
internal const uint AskPublicSwitchToPublicScene = 63491547;
/// <summary>
/// 大地图「交通直达」同图传送的 domain RPC(2026-09-29 补)。
/// 客户端 <c>MapSubSystem_Entrance.lua:566</c>:<c>MapTeleport</c> 先发 <c>AskTeleport</c>
/// 起 loading 事务,再在回调里按「目标 raid == 当前 raid」决定 domain RPC:
/// 同图 → 本 RPC(参数 = 一个 u32 mapEntranceId),跨图 → <c>AskPublicSwitchToPublicScene</c>。
/// 本 RPC 是 <c>Invoke</c>:没 handler + 没进白名单 ⇒ 客户端 await 永不返回 ⇒ 点了没反应。
/// </summary>
internal const uint AskPlayerChangePositionByScenePortal = 67006840;
internal const uint AskStartAIInterrogation = 63492524;
internal const uint AskTradeGetMarketList = 63492557;
internal const uint SyncChangeBuilding = 63495099;
@@ -1406,7 +1414,6 @@ internal static class MethodId
internal const uint IGameToClient_SyncFarmerOrderUpsert = 64434496;
internal const uint SyncClawDateInfo = 64434514;
internal const uint IGameToClient_SyncGachaDrawInfo = 64434975;
internal const uint SyncGachaDrawInfo = 64434975;
internal const uint IGameToClient_SyncPlayerPopularityResetFirstOpen = 64435394;
internal const uint IGameToClient_SyncUpdateWorldLifeDropLimit = 64436877;
internal const uint IGameToClient_SyncFullBuybackCommodityInfos = 64439858;
@@ -2273,7 +2280,6 @@ internal static class MethodId
internal const uint AskPlayerChangePositionByScenePo = 67006840;
internal const uint AskExtractionShooterShiftContainerItem = 67007990;
internal const uint AskStartBVBGame = 67008434;
internal const uint AskPlayerChangePositionByScenePortal = 67006840;
internal const uint ReportBehaviorSeqStartList = 67008858;
internal const uint AskSkillCloseShield = 67010885;
internal const uint ChooseGomokuSkill = 67011276;
@@ -3137,8 +3143,6 @@ internal static class MethodId
internal const uint SyncGadgetAOIAddAndRemove = 68169646;
internal const uint SyncTurnToPosPosition = 68169791;
internal const uint SyncAttractPointPosition = 68172618;
// PHANTOM ID — not in the 4229938 client's method table (dump + RPCMethodIdToName.lua).
// The real Aether NPC remove is SyncAetherAINpcRemove = 68332284. Do not send this.
internal const uint SyncAetherAIVehicleNpcRemove = 68173578;
internal const uint SyncPlateRemoveList = 68174318;
internal const uint SyncFightGamePlayerLeave = 68176524;
@@ -3446,9 +3450,6 @@ internal static class MethodId
internal const uint SyncDebugPlotBT = 68568004;
internal const uint IGameSceneToClient_SyncDiceRoundSettle = 68568673;
internal const uint IGameSceneToClient_SyncLoadChefNpcIds = 68570971;
// PHANTOM ID — there is NO batch vehicle AddDatas in the 4229938 client (its method table
// only has the single SyncAetherAIVehicleAddData = 68916691). Batches sent here were
// silently dropped (cars never rendered). Do not send this.
internal const uint SyncAetherAIVehicleAddDatas = 68571034;
internal const uint IGameSceneToClient_SyncMahjongReadyStart = 68572064;
internal const uint SyncRemoveClientGameplayTag = 68572571;
@@ -3695,6 +3696,7 @@ internal static class MethodId
internal const uint IGameSceneToClient_SyncLogicItemAddList = 68816975;
internal const uint SyncCreateRaidVehicleAndClaimSea = 68818194;
internal const uint SyncAetherAIIntersectionUpdateDa = 68819947;
internal const uint SyncAetherAIIntersectionUpdateData = SyncAetherAIIntersectionUpdateDa;
internal const uint IGameSceneToClient_SyncExtractionShooterContainerInfo = 68820459;
internal const uint StartProgressTemplateCall = 68824563;
internal const uint SyncAetherVehicleEscapeStatus = 68825107;
@@ -4565,10 +4567,6 @@ internal static class MethodId
internal const uint ReportCreationVehicleEnterOrLeaves = 67004409;
internal const uint AskControlPowerHoldEnemyFallGround = 67043294;
// Aether client-driven traffic — intersection period update (the only Aether sync id
// missing from the original set; all others already exist above with verified values).
internal const uint SyncAetherAIIntersectionUpdateData = 68819947;
internal static void RegisterKnownNames(RpcRouter router)
{
foreach (var field in typeof(MethodId).GetFields(BindingFlags.Static | BindingFlags.NonPublic))