Like Share Discussion Bookmark Smile

J.J. Huang   2021-07-22   天堂私服   瀏覽次數:

天堂私服 | 設定檔說明設定與啟動模擬器

環境說明

此處使用Oracle VM VirtualBox虛擬機軟體,下載安裝了一個純淨的Windows 7 x64 旗艦版

如果需要安裝虛擬機,可以參考此篇文章VirtualBox Windows 7 安裝

準備

  1. 在開始前需要準備「天堂模擬器」,通常啟動模擬器的設定檔案都會一同放在裡面,這些檔案多數是.properties或是*.xml的副檔名。
    此處所使用的是「l1j-tw-99nets-L1J-TW_3.80c」的版本做示範。

模擬器內目錄檔案如下圖:

註:目前每個目錄與檔案的用途這邊也不會特別解說,此篇文章只會針對會要用的的部分做說明,未來將會在後面的教學中慢慢補充。

  1. 需要用到文字編輯器,這邊推薦的是Notepad++,請直接下載安裝即可。

設定檔說明

首先進入模擬器的config資料夾,會看見九個檔案 -

目前只需要關注在server.properties上~

  • altsettings.properties
  • c3p0-config.xml
  • charsettings.properties
  • fights.properties
  • java.properties
  • log.properties
  • rates.properties
  • record.properties
  • server.properties

註:基本上每個設定檔內的註解說明是滿完善的。其實不用太擔心這些設定的用意。

修改 server.properties

初步架設的情況下,基本上只需要修改server.properties檔的資料庫連線設定的部分即可。

  • 使用Notepad++開啟server.properties
  • 修改資料庫連線的資料庫名稱<380c>。
  • 密碼的部分當初設定為root,所以不需修改。
  • 下圖為方便比對,固分成左右視窗,分別為修改前與修改後。
    • 修改前內容
      1
      2
      3
      4
      5
      # Database info
      Driver=com.mysql.jdbc.Driver
      URL=jdbc:mysql://localhost/l1jtw?useUnicode=true&characterEncoding=utf8
      Login=root
      Password=root
    • 修改後內容
      1
      2
      3
      4
      5
      # Database info
      Driver=com.mysql.jdbc.Driver
      URL=jdbc:mysql://localhost/380c?useUnicode=true&characterEncoding=utf8
      Login=root
      Password=root
  • 修改完成後,儲存檔案即可。
  • 恭喜這樣就完成最基本的設定了。

註:關於其他設定檔的說明,將會在之後的文章陸續說明。

建立 maps

由於這邊使用的是「L1J-TW_3.80c」,並沒有提供相對應的maps*.txt檔,這邊可以在「L1J-TW_3.50c」的版本中,
找到maps資料夾,且有三個檔案 -

  • 351_maps.zip
  • 352_maps.zip
  • 360_maps.zip

這邊使用將會使用360_maps.zip檔來做「L1J-TW_3.80c」的maps內容。

  • 在「L1J-TW_3.80c」目錄下建立maps資料夾。
  • 將「L1J-TW_3.50c」版本中的maps下的360_maps.zip檔案複製進「L1J-TW_3.80c」目錄下maps資料夾內。
  • 360_maps.zip檔案解壓縮至此。
  • 此時會見*.txt副檔名的檔案在此。
  • 360_maps.zip刪除。

maps內的*.txt檔案,是模擬器所使用的地圖檔。
至於他如何產生,目前也不是很清楚,之後了解後會在撰寫文章做教學。

編譯 Jar

  • 回到「L1J-TW_3.80c」目錄下,進入build資料夾。
  • 可見一個ant資料夾,一個BuildManagement.bat檔。

    註:antApache Ant,是一個將軟體編譯、測試、部署等步驟聯絡在一起加以自動化的一個工具,
    大多用於Java環境中的軟體開發。而BuildManagement.bat就是透過ant指令整合出來的模擬器打包工具。

  • 左鍵雙擊執行BuildManagement.bat,彈出L1J 管理建置系統視窗。
  • 輸入1,並Enter
  • 彈出一個在編譯的視窗,見最後的BUILD SUCCESSFUL,表示編譯成功。
  • 此時可以將兩個L1J 管理建置系統編譯視窗視窗關閉。
  • 回到「L1J-TW_3.80c」目錄下,可見下方產生出了兩個*.jar檔;分別為l1jloader.jarl1jserver.jar

    註:l1jserver.jar為主要的天堂模擬器執行檔。

啟動模擬器

在前面的server.propertiesmaps編譯Jar都成功的情況下。

  • 執行「L1J-TW_3.80c」目錄下的ServerStart.bat檔。
  • 啟動過程中可能會需要允許存取防火牆,請點擊允許存取
  • 此時彈跳一個命令提示字元視窗,這邊常聽人稱黑盒子
  • 上面將會顯示一些加載的訊息<根據版本不同會不一樣>。
  • 此處沒有任何ExceptionError的相關作物訊息。
  • 恭喜至此已經成功開啟天堂模擬器。

錯誤排除

這邊將會列出一些常見的錯誤訊息,讓人參考並進行排查。

  • 錯誤關鍵訊息:
    Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'l1jtw'

    檢查與解決:
  1. <380c>資料庫並沒有被建立,請參考天堂私服 | 匯入模擬器的資料庫
  2. server.properties檔案內的URL資料庫名稱沒有修改成自己建立的資料庫<380c>名稱。
  • 錯誤關鍵訊息:
    嚴重: Table '380c.npc' doesn't exist com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table '380c.npc' doesn't exist

    檢查與解決:
  1. 沒有將資料表npc380_131029,重新命名為npc,請參考天堂私服 | 匯入模擬器的資料庫的注意章節。
  • 錯誤關鍵訊息:
    Exception in thread "main" java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

    檢查與解決:
  1. server.properties檔案內的Password密碼輸入錯誤,請修改為當初安裝資料庫所設定的密碼即可。
  • 錯誤關鍵訊息:
    loading map...七月 15, 2021 9:08:29 下午 l1j.server.server.model.map.L1WorldMap <init> 嚴重: null java.lang.NullPointerException

    檢查與解決:
  1. maps資料夾並不存在,請參考上方的建立 maps章節。
  • 錯誤關鍵訊息:
    警告: Duplicate door location: id =

    檢查與解決:
  1. maps資料夾內並沒有*.txt副黨名的檔案,可能解壓縮多了一層的資料夾,請參考上方的建立 maps章節。
  • 錯誤關鍵訊息:
    Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread

    檢查與解決:
  1. 啟動Jar給的記憶體資源過小。修改ServerStart.bat內的記憶體配置大小即可。
    • 調整512 → 1024 甚至更高,全看電腦記憶體配置。
  2. 啟動一段時間後發生OutOfMemoryError,模擬器定時重啟做記憶體釋放。

註:如果有遇到沒列出來的錯誤,可以將一些關鍵字上網搜尋,基本上都可以找到相關文章並解決問題。

結語

初步的設定檔,就這麼簡單,沒有要太多的說明和解釋;像是如何讀取這些設定檔,這些參數在哪被使用…等等,這些都牽涉到編輯模擬器核心程式碼的部分。
將來在進階教學核心修改都會慢慢整理出來。
最後建議回顧一下首章天堂私服 | 天堂私服架設教學,了解其章結目錄,此處會不定時更新。

免責聲明

  • 本部落格文章中皆不提供任何所謂的遊戲「主程式」、「模擬器」、「登入器」…等等相關程式的下載點。
  • 本部落格文章中所見之遊戲主程式和服務器端程序均來自網路發佈,版本歸原作者所有
  • 本部落格文章為研究SQL資料庫與修改JAVA語法使用,非商業用途,亦無做營運事實等任何一切商業行為
  • 本部落格文章內容是為研究學習設計思想和原理為目的,絕沒有故意侵權或惡意抄襲、篡改其他遊戲內容

註:以上參考了
維基百科 - Apache Ant
Apache Ant