From f0f59a1fb2e150bae40f7f79431e4c6bd23a364b Mon Sep 17 00:00:00 2001 From: CAtlas0784 Date: Wed, 16 Sep 2026 01:22:29 +0700 Subject: [PATCH] feat(map-interaction): unlock map fog of war, enable alt-click map teleportation, and hide F prompt on active player --- .../proxy/public/fastpatch_4229938.zip | Bin 4295 -> 4913 bytes .../tools/generate_client_config_patch.js | 62 ++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/Ananta.Proxy/proxy/public/fastpatch_4229938.zip b/Ananta.Proxy/proxy/public/fastpatch_4229938.zip index 014b5751302924def2f7fadf892792b37566f6b0..9021da635896eed1bb7a25c5e4631752330da353 100644 GIT binary patch delta 3201 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 delta 2609 zcmV-13eNShCdVNSP)h>@6aWAK2ml1AFR=|=0TKkLFI~BHO9GP#0053H001cfla3NA zf9+arZ`(K${_bBvQd%#>`RIrqcKjX$~R`GZODf598O zw-fiaH@q1jwE(tOpnnw&7Xh#+Bef5ex-l78WS)UVotA!S`ObjhDTRLe^{Wd^fk2l? zi4@i?KBlyZ)=ybPp{eBoLLSG!qNc_xA|O-&u6K185I%XVN*!!<>3?3Ssvr$CutPRtaRpO5A~9S zu6mT-P(H=hX@uYctG;Ri66W78d&{-Evb%Pf@lTAKO-V^v- zw#bsR_7|w8IrMvk9v7K0ezMEa zZILN6I7D8-G@V~_5v~_PyZFuHNH6}REUe8=G?v8BOSV?ue`2%sqbJ8$K3#J$B~b*- zU0^oP_Z;>0!n4g@yQVEC!`ypVkdVRm zeD-WpaM9aGd)^JqV%H6vySFb3k4_K@lBhbxx%>6!W~viFm4mucDAvmy8eL5&l1MVX#e4fJ$21)<&X zA8xDeZVf%Xznvr!D5GxoV2jUX;1mFH6bk+y`v1+)?+MJY0XZ%Z&9*c;|3s&s>g*$( zTp7rG*GT3k4rPAoSmq}V=CIj5s~z(~@yMQ?0h{ajf45F@9zgO`gzGcqnv<;L9bFuI zAQUWc1mXi0acZaO&B9)kRf(aGN@ zcN|AO7L6!wSbCcXRk~g@b!}rY?;=KM#ZT5Hhnb}1LTS3 zy+!^5l@=E(DYgeFRl*^vx3M>9{sBhL(CNF{85feg6T3|G7z5niq{dMT!BFA#AarG>5L4+tv$QpdZHH zxy4^F>U|ha2E&2>TQmBSS6!5xcTw_s1HxF}b7|M4zV39eo*=7 zMbSVH;egVSv$nG_n-J*Xbgi{}i`Y$EHX?gp3;saV!qx8CYRk4B8KWxb12IPtx zRc_tZ6!n)$2l`@9r=9L-OfeQUf9?wOtpaO@ZBwhciTAcD1P;pQT%KW42|Z8QGSaH%&{;juP!H*4jC z)CMZ{yI@0S-IBfP#Xm5$OI4k_{*5HG4P8{iS`jW8$4;!Qr91~v*1}Fe$%Z9&7e8O{kf7X*dJCx(73Jm?LmZdWP$FsX%fBq=|u_Ph< `M.${name} = true\n`).join("") + ` gMapSystem.fogMap.IsUnlocked = function(self, sceneId, x, z) return true end\n` + ` end\n` + ` end\n` + +` if LX6 and LX6.Gps and LX6.Gps.MapFogDataMgr then\n` + +` LX6.Gps.MapFogDataMgr.IsInFog = function(sceneId, x, z) return false end\n` + +` pcall(function() LX6.Gps.MapFogDataMgr.SyncUnlockScene(101, true) end)\n` + +` pcall(function() LX6.Gps.MapFogDataMgr.SyncUnlockScene(102, true) end)\n` + +` pcall(function() LX6.Gps.MapFogDataMgr.SyncUnlockScene(103, true) end)\n` + +` pcall(function() LX6.Gps.MapFogDataMgr.SyncUnlockScene(1001, true) end)\n` + +` end\n` + +` if C_MapView_Fog then\n` + +` C_MapView_Fog.InFog = function(self, instanceId) return false end\n` + +` C_MapView_Fog.SetFogEnable = function(self, enable) end\n` + +` end\n` + +` if L50 and L50.Gm and L50.Gm.AutoQaFunctions then\n` + +` L50.Gm.AutoQaFunctions.GetMapClickToTeleport = function() return true end\n` + +` end\n` + +` if gCS and gCS.LuaUtils then\n` + +` gCS.LuaUtils.IsNotUseGM = false\n` + +` end\n` + +` local mapStore = GroupName2Class and GroupName2Class.NewMapPanelStore or C_NewMapPanelStore\n` + +` if mapStore and not mapStore._teleportHooked then\n` + +` mapStore._teleportHooked = true\n` + +` local origOnMainClick = mapStore.OnMainClick\n` + +` mapStore.OnMainClick = function(self, evtData)\n` + +` local isAlt = false\n` + +` pcall(function()\n` + +` if UnityEngine and UnityEngine.Input and UnityEngine.KeyCode then\n` + +` isAlt = UnityEngine.Input.GetKey(UnityEngine.KeyCode.LeftAlt) or UnityEngine.Input.GetKey(UnityEngine.KeyCode.RightAlt)\n` + +` end\n` + +` end)\n` + +` if isAlt or (evtData and evtData.button == 1) or (L50 and L50.Gm and L50.Gm.AutoQaFunctions and L50.Gm.AutoQaFunctions.GetMapClickToTeleport()) then\n` + +` local uiPos = self:GetPointerUIPos()\n` + +` local texPos = self:TransformUIToTex(uiPos)\n` + +` local areaId, worldPos = self:TryTransformTexToWorld(texPos)\n` + +` if worldPos and L50 and L50.Gm and L50.Gm.AutoQaFunctions and L50.Gm.AutoQaFunctions.TeleportToPos then\n` + +` L50.Gm.AutoQaFunctions.TeleportToPos(worldPos.x, worldPos.z)\n` + +` pcall(function() gMainPhoneUtils.CloseMainPhonePanel(true) end)\n` + +` pcall(function() self:OnBtnClose() end)\n` + +` return\n` + +` end\n` + +` end\n` + +` if origOnMainClick then return origOnMainClick(self, evtData) end\n` + +` end\n` + +` end\n` + +` if C_InteractionManager then\n` + +` local origCheck = C_InteractionManager.CheckUnitPcBtnShow\n` + +` C_InteractionManager.CheckUnitPcBtnShow = function(self, pid)\n` + +` if gCS and gCS.MyPlayerManager and gCS.MyPlayerManager.PlayerUnit and gCS.MyPlayerManager.PlayerUnit.Pid == pid then\n` + +` return false\n` + +` end\n` + +` if origCheck then return origCheck(self, pid) end\n` + +` return false\n` + +` end\n` + +` end\n` + +` if gInteractionManager then\n` + +` local origCheckG = gInteractionManager.CheckUnitPcBtnShow\n` + +` gInteractionManager.CheckUnitPcBtnShow = function(self, pid)\n` + +` if gCS and gCS.MyPlayerManager and gCS.MyPlayerManager.PlayerUnit and gCS.MyPlayerManager.PlayerUnit.Pid == pid then\n` + +` return false\n` + +` end\n` + +` if origCheckG then return origCheckG(self, pid) end\n` + +` return false\n` + +` end\n` + +` end\n` + ` end)\n` + ` pcall(function()\n` + ` if CS and CS.L50 and CS.L50.Script and CS.L50.Script.LX6 and CS.L50.Script.LX6.Security then\n` +