LV. 11
GP 39

【心得】如何在Linux上架設絕冬城之夜加強版伺服器.並支援中文

樓主 臺灣水電工 mijumiju
GP5 BP-
所有資料來自beamdog原廠文件
文件大概一頁A4大小
忽略很多步驟

beamdog已經把執行環境包裝成docker
如果您了解docker是什麼的話
那您大概是業界人士
應該可以繼續往下看
當然湊湊熱鬧也歡迎

一般人只要知道docker是一種輕量化虛擬機
可以把所有和某軟體相關的執行環境包在一起
而不需要理會原生機器上的環境

1. 首先你需要一台Linux Server虛擬機
    可以使用亞馬遜的AWS,微軟的Azure,或Google Cloud
    好~我用什麼,上面的我全不用,因為他們太昂貴
    我用的是Linode,最近的機房在日本

2. 使用ssh登入你的Linux虛擬機
    你剛建好的虛擬機上面通常什麼都沒有
    我建議用ubuntu,因為它資料很齊
    在意穩定性的可以用debian

3. 進入你的家目錄,鍵入以下命令,先取得docker虛擬機
命令:
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install docker.io

4. 取得 beamdog docker 映像檔
命令:
    sudo docker pull beamdog/nwserver

    這個在windows版本上相當於nwserver.exe
    雖然實際上不是這樣,但這樣講大多數人可以了解

5. 取得vim
命令:
    sudo apt-get install vim
     
    vim是所有Linux版本都會支援的文字編輯器
    所有Linux從業人員一定會使用它,因為系統初始時只有它
     
5. 創建模組工作目錄
命令:
    mkdir nwn_server
    cd nwn_server
    mkdir database erf  hak  modules tlk

6. 撰寫啟動命令稿
    cd nwn_server
    touch run.sh ; chmod  755 run.sh
    vim run.sh

命令稿只有一行:
sudo docker run --restart unless-stopped -dit -p 5121:5121/udp --name nwn -v $(pwd):/nwn/home - -env-file $(pwd)/nwn.env  beamdog/nwserver

7. 撰寫停止命令稿
    vim stop.sh

命令稿有兩行:
    sudo docker stop nwn
    sudo docker rm nwn

8. 編輯絕冬城之夜啟動環境參數
    vim nwn.env

內容:
NWN_PORT=5121
NWN_MODULE=test
NWN_SERVERNAME=I was too lazy to configure my server.
NWN_PUBLICSERVER=0
NWN_MAXCLIENTS=96
NWN_MINLEVEL=1
NWN_MAXLEVEL=40
NWN_PAUSEANDPLAY=1
NWN_PVP=2
NWN_SERVERVAULT=0
NWN_ELC=0
NWN_ILR=0
NWN_GAMETYPE=0
NWN_ONEPARTY=0
NWN_DIFFICULTY=3
NWN_AUTOSAVEINTERVAL=0
NWN_RELOADWHENEMPTY=0
NWN_PLAYERPASSWORD=
NWN_DMPASSWORD=
NWN_ADMINPASSWORD=
NWN_NWSYNCURL=
NWN_NWSYNCHASH=

相關含意請參考原廠文件
這裡最重要的是
NWN_MODULE=test (模組名稱,這裡是以 test.mod為例,不需寫出副檔名)
NWN_MAXCLIENTS=96 (最多人數上限)
NWN_MINLEVEL=1 (最低等級)
NWN_MAXLEVEL=40 (最高等級)
NWN_SERVERVAULT=0 (是否允許非法人物,0是允許)
NWN_ELC=0 (這兩項管控道具強度,0代表不管控)
NWN_ILR=0


8. 將你的測試模組放到 nwn_server/modules 中

9. 啟動測試
    ./run.sh

10. 停止伺服器
   ./stop.sh


############## 分隔線 問題來了###########
告訴大家一個不好的消息
我觀察原廠的加強版模組編輯器
發現他們並不打算支援中文
命令稿中不能輸入英文以外的語言
否則會錯亂,我們被原廠工程師拋棄了 兄弟
我不怪他們,因為我也會這麼做

所幸以前的中文模組
新版可以向下相容的

所以妳可以用舊版的漢化編輯器製作模組
然後讓加強版引擎執行
加強版引擎只是舊版本的提升版

很可惜加強版支援C++的

############## 分隔線  以星世界模組為例 ###########

1. 將企鵝漢化 dialog.tlk, dialogf.tlk 上傳到伺服器模組目錄
    使用scp命令
    scp  dialog.tlk dialogf.tlk  你的帳號@你的伺服器網址:/home/你的家目錄/nwn_server

2. 將星世界單機版壓縮成 .zip 上傳到伺服器
    解壓縮後將 database erf  hak  modules tlk 這五個資料夾資料
    拷貝到 nwn_server 目錄下
    (額 開始跳了 殘念 我手痠了 因為我發現解釋1+1=2其實很困難)

3. 根據上面命令稿啟動伺服器


############## 分隔線  客戶端程式 就是你windows上的遊戲啦 ###########
請參照

【情報】星世界單機測試模組

後面加強版的中文更新方法



為什麼打這篇文章
因為今天星世界當機
無聊
無聊
無聊
無聊
無聊

我架設了一台伺服器在linode上
供家人取樂,大家都用 steam
右轉魔體黑龍王
左轉五色龍
一起被龍殺

不公布ip在這
因為我以前自己製作的遊戲載點
本想娛樂大家 不帶商業性質
但發佈在巴哈被刪過 (被懷疑蹭流量)
所以不再自取其辱
反正現在遊戲哪麼多
發布在自己的網站上就好 (也不公布在此)

結論:
玩遊戲是幸福的
但製作遊戲是痛苦的
5
-
未登入的勇者,要加入討論嗎?
板務人員: