• 0 次(票) - 平均星级: 0
  • 1
  • 2
  • 3
  • 4
  • 5
v145架設的一些問題及心得
#1
剛開始接觸端口這塊
這篇算是整理一下我從建資料庫到實際local客戶端跑起來過程中遇到的一些問題以及解決方式以及更多問題
很多是在其他討論中就有答案或提示的,很感謝願意分享經驗的前輩,還有最重要的,不吝公開提供端口、主程式、資料庫的大大

sql server: wamp
資料庫管理GUI: navicat
java: jdk8
端口: 小喵端 TMS145
基本上是一些簡單好上手的工具

1. 載入資料庫出現不少sql指令錯誤
=> 原本是用2.0版本的wamp,換用2.4版 (mysql版本: 5.0.51b => 5.6.12),然後跑sql時不使用「每個執行中持行多重查詢」

2.WzRepacker dump wz to xml 出現 out of memory exception 錯誤
=> 分段進行dump,尤其是像Map.wz這種單檔很大的。dump的時候可以從工作管理員觀察一下wzrepacker所占用的記憶體
這個錯誤我猜有可能是因為windows對程式的限制造成的

或者是用比較新版的Harepacker-resurrected,這個有做好記憶體管理,可以一次dump所有的wz檔不會出現類似 out of memory 的錯誤

3. dump wz to xml 時,出現類似「不能為負數」之類的錯誤
=> 一樣是分段dump,慢慢找出出錯的地方,最後發現其實只有兩個節點會發生這種錯誤(Character.wz/Accessory 01142527, 01142528)
或是用剛才提到新版的工具,就不會出現這種錯誤

4. WzRepacker 直接不能開啟String.wz跟UI.wz
=> 用新版工具

5. 無法連接到資料庫
=> 設定好server端的資料庫屬性(資料庫名稱、使用者、密碼等等),確定跟navicat顯示的資料庫設定一致
小喵端在外部放了文字檔可以直接編輯,然後交由程式來讀取,因此這部分應該是不需要去爬程式碼

6. 在 [ClientServer]Binding to port 25070 這條console log之後會出現 port 被占用的訊息
=> server仍然可以正常啟動,被占用的其實是port 80, http server用的,被占用的原因是wamp除了開sql server還開了apache(http server),把wamp的apache關掉就好

在 Start.java 裡面有這幾行:
代碼:
try {
    new HttpServer(80).start();
} catch (Exception e) {
    e.printStackTrace();
}

稍微看了下隔壁檔案可以猜測應該是跟贊助有關的功能

7. 開啟客戶端後,一進到登入畫面就閃退
=> 原因不明,開啟相容性win7解決



最後是幾個未解的疑問
1.
小喵端的wz檔似乎異常肥大? 國外網站整理的TMS142整包只有3GB出頭,而小喵端有5GB
Character.wz、Map.wz、Mob.wz這些大檔的大小足足多了一倍左右,很難想像僅僅跨了兩三個版本的wz檔會有如此大的差異

2.
這篇https://www.xinchistory.com/showthread.php?tid=9有提到一個比較早期(乾淨?)的v145端口
我試著clone下來用小喵端提供的客戶端跑了一下,資料庫寫入後雖然能夠登入不過到了選角後進入遊戲這步就會斷線了,不知道是不是跟WZ有關?

   

   


3.
精靈遊俠的技能有不少BUG,不知道是不是這版本TMS本來就有的問題?
例如騰空踢擊無法接續旋風月光翻轉這類空中技、伊修塔爾之環無法在射擊中移動等等

4.
嘗試改了一下skill.wz,發現本地登入器會無法使用 ([信息]遊戲檔案錯誤!)
查了一下覺得比較有可能是因為CRC check沒過

登入器相關的教學好像比較少,甚至也查不到甚麼開源碼可以參考(或者只是我還沒查到)
目前只知道逆向工程、hackshield bypass這類關鍵字
想請問關於如何自製登入器這方面有沒有甚麼建議的學習管道?
  回覆
#2
針對你的幾個問題做出回復
1. 因為 Character.wz、Map.wz、Mob.wz 這三個檔案 我有把較新版本的東西抓進來,而且也把高版本部分會斷線的節點刪除了。
2. 87%跟 wz有關係
3. 是技能的BUG 有一些封包沒有傳的完整
4. 因為我的登入器有檢查有沒有更改 skill.wz,在你開啟遊戲的時候,他會用 80port 傳給伺服器 skill.wz hash過後的值,端口確定沒有被更改過,會回傳一個True,然後才能開啟遊戲。所以你要改skill.wz又要用我的登入器的話,你要更改端口檢查skill.wz 的那個值。
[圖: 5996_20160413004324_570d25ac1f165.gif]
  回覆
#3
(09-04-2020, 09:48 AM)哈薩琪 提到: 1. 因為 Character.wz、Map.wz、Mob.wz 這三個檔案 我有把較新版本的東西抓進來,而且也把高版本部分會斷線的節點刪除了。
2. 87%跟 wz有關係
原來是這樣
其實我本來是想接觸比較接近原廠的客戶端,不知道哈大是否可以提供?
 
引用:3. 是技能的BUG 有一些封包沒有傳的完整
看來要修這東西應該會滿困難的
 
引用:4. 因為我的登入器有檢查有沒有更改 skill.wz,在你開啟遊戲的時候,他會用 80port 傳給伺服器 skill.wz hash過後的值,端口確定沒有被更改過,會回傳一個True,
然後才能開啟遊戲。所以你要改skill.wz又要用我的登入器的話,你要更改端口檢查skill.wz 的那個值。

剛才有稍微看過這部分的code了,不過看起來並沒有強制客戶端登入的時候一定要傳這封包
我後來有找到一個哈大的朋友(應該是朋友?)寫的簡潔版登入器,發現其實登入器核心需要做的事情意外的(?)單純[圖: 7qpayPx.png]
暫時先用這個比較簡單的登入器好了

其他的等之後trace code到一定程度有能力修改之後再說,感謝哈大回答
  回覆
#4
更新一下
這兩天改改程式碼然後開客戶端確定沒有異常,原本都還滿順利的
昨天小改完再開起來突然就變成按play之後沒反應了
而且之後改用原版的端口然後開客戶端也是一樣
目前試過了調整主程式、asplnchr,hsield的相容性和系統管理員身分,重新安裝顯卡驅動,以及重新下載端口跟客戶端、關閉win10防火牆跟即時掃描,以及重新開機無數次
不過都沒什麼用

另外如果不主動把asplnchr.exe跟maplestory.exe關掉,放置兩三分鐘maplestory.exe會自己結束掉,然後windows事件會有以下紀錄:

失敗的應用程式名稱: MapleStory.exe,版本: 1.0.0.145,時間戳記: 0x4f832421
失敗的模組名稱: KERNELBASE.dll,版本: 10.0.19041.423,時間戳記: 0x09cf3bbe
例外狀況代碼: 0xe06d7363
錯誤位移: 0x00129962

錯誤容器 ,類型 0
事件名稱: APPCRASH
回應: 無法使用
Cab 識別碼: 0

因此也去確認了系統檔沒有毀損

請問還有沒有甚麼建議的解決方法?

   
  回覆
#5
按play沒反應的問題
應該是官方hs的host 202.80.106.36 tw.hackshield.gamania.com  被關掉了?
  回覆
#6
(09-15-2020, 03:57 PM)惠斯登電橋 提到: 按play沒反應的問題
應該是官方hs的host 202.80.106.36 tw.hackshield.gamania.com  被關掉了?

這個好像一兩年前就關了
沒辦法說明為甚麼前幾次都可以正常開啟

不知道是不是跟小喵端用的hs bypass方式有關係
  回覆
#7
我也遇到這個問題 無法解決 前幾個月自己玩還好好的
  回覆
#8
(09-17-2020, 01:10 PM)perioncorner 提到:
(09-15-2020, 03:57 PM)惠斯登電橋 提到: 按play沒反應的問題
應該是官方hs的host 202.80.106.36 tw.hackshield.gamania.com  被關掉了?

這個好像一兩年前就關了
沒辦法說明為甚麼前幾次都可以正常開啟

不知道是不是跟小喵端用的hs bypass方式有關係

的確是因為HS伺服器關閉原因,有人知道怎麼解決嗎?
  回覆


論壇跳轉:


正在瀏覽該主題的用戶: 1 隻魚