寫在前頭
這是我兩年前寫的文章,目前已經沒有在研究私服,只是覺得內容可能多少還有些幫助所以搬運過來,因此任何架設問題皆不再回覆。
準備工具
可選擇直接下載整合包或者個別下載架設工具,建議下載整合包。
整合包
- v113:87楓之谷整理好的工具包 (解壓縮密碼:
87ms.net
) - v120:我整理的v120包 (補充:用 wamp 和 navicat 的 v120 舊整合包 Download)
個別下載
有標註📌為架設必要工具。
- 📌XAMPP:伺服器環境整合包,內含Apache、MySQL、PHP,我們需要用到MySQL服務,下載點。
- 注:可使用Wamp, AppServ..等能開啟 MySQL 服務的套裝軟體取代。
- 📌WorkBench:資料庫管理軟體,用於儲存玩家資料、商品清單價格…等,下載點。
- 注:可使用其他資料庫管理軟體代替,如:HeidiSQL、Navicat。
- 📌JDK : JDK8下載戳此。
- 📌私服客戶端+伺服器端:v113版載點:87楓之谷官網;v120版載點:v120端下載點。
- WzRepacker:用於修改及導出WZ,下載點。
- 遊戲視窗化工具:下載點。
- V120原版WZ:下載點。
- 乾淨 v120 ijl15.dll:
下載。
影片教學
注意
影片部分直接跳過架設工具的安裝以及 JDK 環境變數的設定,請先看完文章中到「開啟 MySQL」服務 前的部分。
架設教程
v113的話87楓之谷有很完整的教程了,這邊教大家怎麼架TMS v120。
這個v120是集合了服務端+客戶端(2.1GB),內容包含:
安裝 XAMPP
到 XAMPP 官網找到圖中下載位置,根據自己的電腦系統安裝 XAMPP:
點擊安裝檔後可能會跳出下方警告,內容是說你的系統已開啟 UAC (使用者帳戶控制),請不要把 XAMPP 安裝到 C:\Program Files
,直接按 OK 就好。
安裝時請確保 Apache、MySQL 和 phpMyAdmin (可選) 有打勾。
你可以將 XAMPP 安裝到任意位置,但就是不要裝在 C:\Program Files
。
後面就一路 Next 直到安裝完成。
安裝 Workbench
至下載 Workbench 頁面根據自己的作業系統下載最新版 Workbench:
直接按下方「No thanks, just start my download.」直接下載:
安裝過程沒什麼特別的直接一路下一步到底就行。
安裝 JDK 及設定環境變數
在開始之前我們先安裝JDK,安裝檔為 伺服器端/jdk8
的 jdk-8u241-windows-i586
。安裝過程中不需要修改任何設定,直接下一步即可。
安裝完畢後請將 jdk/bin
新增到環境變數中。( 不要跟其他版本的JDK衝突 )
在左下角放大鏡搜索「環境變數」點擊「編輯系統環境變數」:
點擊「環境變數」:
在下方系統變數欄位中找到 Path
,選擇後按編輯:
點擊右上角的新增,將 jdk/bin
的路徑添加近來後按確定:
接著將端口內JarLib資料夾裡的 jar 檔放到
- C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext
- C:\Program Files\Java\jdk1.8.0_231\jre\lib\security
- C:\Program Files\Java\jre1.8.0_231\lib\ext
- C:\Program Files\Java\jre1.8.0_231\lib\security
*請依照個人電腦JAVA安裝的位置自行尋找對應的資料夾。
開啟MySQL服務
打開 XAMPP 將 MySQL 服務開啟。
新增資料庫
打開 Workbench ,在下方 MySQL Connections 處找到 + 按鈕:
新增一個連線:
- Connection Name:
localhost
- Hostname:
127.0.0.1
- Port:
3306
- Username:
root
- Password: 不用動, 留空
填完後按右下角的 OK
接著會看到首頁多了一個 localhost 的 connection,點一下它:
接著我們需要新建一個 Schema,在左側 Schemas 處按右鍵 – Create Schema..。
填入資料庫名稱 maplestory
並選擇 Charset 為 big5
後按 Apply。(因為 sql 檔內容是用 big5)
不要動裡面的內容,直接按 Apply:
導入sql檔案
在上方工具列找到 Server – Data Import:
勾選「Import from Self-Contained File」然後路徑為伺服器端口中的 sql 檔案,下方 Default Target Schema 記得改為 maplestory
,都設定好後按右下角的 Start Import:
接著會跳出視窗,直接按 OK:
我們需要將 sql 資料夾中的 sql 檔案全部 import 進去,所以要做兩次:
導出WZ
注意
如果使用的是我整理的 v120 整合包,可以直接跳到「修改伺服器設定」這一節。
看看你的端口有沒有wz資料夾,如果沒有請在伺服器端新增一個wz資料夾,再將 V120原版WZ 內所有檔案複製貼上到伺服器端的 wz資料夾 內。
如何導出WZ?
如果你的端口並沒有附已導好的WZ,這時候就需要自己導出。
先安裝 WzRepacker 然後開啟它(建議以工作管理員身分開啟,不然很容易自動關閉),選擇 File – Load。
將客戶端裡的所有wz 個別導出(一次全導很容易出錯)。
選擇wz節點後,在上方工具欄找到 XML – Dump。
設定不做修改,直接按Dump。
成功後會跳出訊息,顯示將wz導出到這個路徑的資料夾。
將裡面剛導出的Base.wz複製起來
貼上至伺服器端的wz資料夾內(沒有就新增一個),重複以上步驟直到客戶端內的所有wz都導出完畢。
*之後修改wz也都是要做這個步驟,只要修改wz就要重導出一次,否則不會生效。
製作登入器
到這就萬事俱備只差登入器,登入器的製作很簡單,在客戶端內新增一個文字檔 登入器.txt
輸入下方內容後另存為.bat檔
start MapleStory.exe 127.0.0.1 8484
修改伺服器設定
伺服器端內的 Settings.ini
用文字編輯器軟體開啟(ex:記事本)可以修改關於私服的一些設定,比如經驗倍率、介紹文字、活動、IP位址…等。
啟動伺服器
注意
如果使用的是我提供的 v120 架設整合包,啟動伺服器的時候可能會出現 sql 問題,請參考問題匯總 – SQL 第三點的解決辦法。
伺服器端內雙擊Launcher.bat
開啟伺服器。
當看見出現 加載完成 : : : 代表伺服器開啟成功。
再到客戶端開啟登入器,如果一切正常遊戲就會開啟了。
註冊帳號
登入頁面直接輸入帳號密碼可以自動註冊。
*這邊背景是我自己改過了,原本的不是這樣。
遊戲視窗化
下載視窗化工具並解壓縮至客戶端中(如果使用的是我提供的 v120 整合包,裡面已經自帶了),將 dxwnd 相容性改為以系統管理員身分執行。
打開後選擇 視窗化 – 增加程式:
路徑選擇客戶端內的 MapleStory.exe
,DirectX版本選擇 X8
,下方視窗大小自行設定:
再重新使用登入器開啟遊戲就可以視窗化執行了。
若是使用視窗化開啟私服,當你系統彈窗(ex: 使用工作管理員開啟某軟體)時,視窗化會自動取消變回全螢幕。
問題匯總及解決辦法
WAMP
首先是新手最容易卡住的部分WAMP
1. WAMP亮黃燈怎麼辦?或者提示could not execute menu item internal error怎麼辦?
看看你的MySQL
port 3306
是不是被佔用了,若是在這之前有安裝過類似的環境整合包(AppServ, Xampp , Wamp…) 很容易導致 port 起衝突,有兩種解決方式:
- 改 port
- 關閉占用 port 的程式
至於怎麼改 port,請Google搜尋:3306 port被占用
2.特別要注意的一點是,請一定要讓wamp在上線狀態…
SQL
1.當點擊資料庫卻出現下方提示:
沒有開啟 MySQL 服務,如果使用的是 WAMP 請將 WAMP沒打開(或者將WAMP上線),如果使用的是 XAMPP 請打開 XAMPP 控制台將 MySQL 服務啟用。
2.導入sql過程中會出現因 accounts
資料表中的 birthday 或 tempban 初始值錯誤而無法導入accounts資料表
使用文字編輯器將sql檔打開,找到 birthday
後面的 DEFAULT '0000-00-00'
改為
DEFAULT '1000-01-01'
將 tempban
後面的 DEFAULT '0000-00-00 00:00:00'
改為
DEFAULT '2018-01-01 00:00:01'
3. 啟動伺服器時出現:maplestory.alliances doesn't exist
(類似問題相同解法)
出現這個錯誤代表 import sql 的時候出了問題 alliances 這個資料表不存在。如果你是用 Workbench 的話,先點左上角的 SQL + 圖示
當出現 SQL File 時,輸入 use maplestory;
後點上方工具列的第一個閃電,這樣就能選中 maplestory 這個資料庫。(當左邊 SCHEMAS 處的 maplestory 是粗體黑字時代表已經成功選中)
再從伺服器端口中 sql 資料夾內的 maplestory.sql
找到 alliances 的 SQL 語句,將它貼進去後按上方工具列的第二個閃電圖示執行。
CREATE TABLE `alliances` (
`id` int(11) NOT NULL,
`name` varchar(13) NOT NULL,
`leaderid` int(11) NOT NULL,
`guild1` int(11) NOT NULL,
`guild2` int(11) NOT NULL,
`guild3` int(11) NOT NULL DEFAULT '0',
`guild4` int(11) NOT NULL DEFAULT '0',
`guild5` int(11) NOT NULL DEFAULT '0',
`rank1` varchar(13) NOT NULL DEFAULT '公會長',
`rank2` varchar(13) NOT NULL DEFAULT '公會副會長',
`rank3` varchar(13) NOT NULL DEFAULT '公會成員',
`rank4` varchar(13) NOT NULL DEFAULT '公會成員',
`rank5` varchar(13) NOT NULL DEFAULT '公會成員',
`capacity` int(11) NOT NULL DEFAULT '2',
`notice` varchar(100) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=big5;
成功的話下方 Output 視窗會有一條訊息,顯示你剛剛執行的 SQL 語句成功:
在對著 maplestory 資料表按右鍵-Refresh All 就會看到多了一個 alliances
資料表,代表成功了。
伺服器
1.出現 Exceptoion in thread “Thread-1″ java.lang.NoSuchMethodError.server.ServerProperties.getProperty…
重新安裝JDK8並設定環境變數,設定java環境變數的方法請再回去看文章中 JDK安裝及設定環境變數 那節。
2.開啟伺服器時出現Invalid maximum heap size ….
將Launcher.bat用記事本打開,把512M改成1024M。
3.出現錯誤:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
沒有添加jdk環境變數或是環境變數中有多個jdk路徑導致異常。添加環境變數方法請再回去看文章中 JDK安裝及設定環境變數 那節。
4.啟動端口出現 Logs\LogIPs.txt(系統找不到指定的檔案)
在伺服器端口中的 Logs
資料夾建一個 LogIPs.txt
即可。
遊戲開啟
1.[Error:32a1000b]認證檔案無法下載%1
將過HS的 ijl15.dll 檔案覆蓋到主程式資料夾。
2.Error code: Failed in finding proper screen made for Gr2D
將MapleStory.exe 右鍵 – 內容 – 相容性 -勾選以相容模式執行這個程式(Windows 8)、以系統管理員的身分執行此程式。
3.按下Play卻沒有任何反應?
可能是因為背景已經有開啟楓之谷,只需要用工作管理員強制關閉再重新開啟就可以了。
如果還是不行,可以試試看將相容性改為以 Windows 8 開啟。
4.遊戲開啟後到登入畫面變黑屏
請重新開機再試試看。
5.遊戲選角後無法進入遊戲
請檢查伺服端和登入器的IP是否填寫一致,如果只是單機自己玩請不要改動,直接使用127.0.0.1
(本機位址)即可。
6.與登入伺服器連線中斷,請稍後再試。
這種情況發生原因比較多種,解決辦法有以下幾種,都可以試試看:
- 打開工作管理員檢查是否有開多個
MapleStory.exe
,如果有把全部都結束再開一次 - 確認登入器 IP 跟伺服器設定檔 IP 是否一致,且預設 port 8484 是否可用 (GOOGLE關鍵字:
防火牆 port
) - 請確保使用登入器啟動
- 修改
MapleStory.exe
的相容性成 Win 7 或 Win 8 - 找到該版本
ijl15.dll
覆蓋 (bypass的問題) - 將防火牆關閉
- Win 10 搜尋[控制台],點 程式集-程式和功能-開啟或關閉Windows功能-往下拉有個傳統元件 – 按 + 並將
DirectPlay
打勾後按確定 – 會出現一個讀取視窗,結束後應該可以正常遊戲) 須注意DirectPlay一但安裝若想移除僅能透過重灌作業系統的方式,若電腦有其他特殊用途請斟酌使用
端口問題
1.TMS v120 使用高級美髮沒反應
打開 _src/tools/MaplePacketCreator.java_
,Ctrl+F搜尋 getNPCTalkStyle
找到
public static MaplePacket getNPCTalkStyle(int npc, String talk, int… args){
mplew.writeShort(7);
//...
}
public static MaplePacket getNPCTalkStyle(int npc, String talk, int… args){
mplew.writeShort(8);
//...
}
2.商城的東西跟商店的東西在 sql 改;NPC腳本在端口的 Libs\scripts\npc
改;WZ 的話不只要改端口的 xml 還有客戶端的 WZ 檔;再其他的就是改 SRC 了。
3.TMS v120端 使用 sendGetNumber
函數有輸入問題
打開 tools/MaplePacketCreator.java
搜索 getNPCTalkNum
方法,將
mplew.write(4);
mplew.writeShort(3);
修改為
mplew.write(5);
mplew.writeShort(4);
在這個函數下方找到 getNPCTalkText
方法,將
mplew.write(4);
mplew.writeShort(2);
修改為
mplew.write(5);
mplew.writeShort(3);
如何和朋友一起玩?
不想用 Hamachi 的話也可以用 RadminVPN,都是差不多的步驟。
需要下載 hamachi ,下載安裝好後開啟它,按一下像開機的按紐連線。
網路 – 建立新網路…。
自訂網路ID及密碼
別人需要加進來的,這個ID和密碼需要分享出去,所以不要用自己的帳號密碼
*ID有可能會與別人重複,其實取什麼都可以,不一定要叫私服的名字。
接著將你的 網路ID 和 密碼 分享給朋友,讓朋友也安裝 hamachi 並加入你的網路。
不用查了 , 流連谷是我瞎取的xd
將登入器的 IP 改為 hamachi 提供的 IP (IPv4
)。
伺服器端的 Settings.ini
中的 tms.IP
改為同樣的位址。
最後,將你的整個客戶端壓縮後上傳至雲端分享給朋友,朋友下載解壓縮後使用登入器即可進入遊戲。