是否可以在執行時改變 openttd 的通貨膨脹?
我不想重啟伺服器,但我想停止遊戲中的通貨膨脹。價格上漲是相當煩人的。可能嗎?
雖然我不知道與伺服器實現相關的任何事情(因為我不定期玩遊戲),但通過OpenTTD wiki快速搜尋顯示了一個禁用通貨膨脹的設置。
它可以在高級設置 > 經濟 > 通貨膨脹中找到。
還要注意的是,在 OpenTTD 1.3.0 之前,沒有禁用通貨膨脹的選項,因為它以某種方式與經濟狀態合併。
這個問題有一個適用於單人遊戲的答案,但不適用於執行無頭 openttd 伺服器。
通過 SSH 進行配置
為了更改正在執行的伺服器上的設置,當 SSH 連接到正在執行伺服器的會話或螢幕中的框時,使用控制台命令
set <setting> <value>
在您的情況下,特別是:嘗試:
set inflation false
某些設置可能需要您重新啟動遊戲。無需重新啟動伺服器即可更改設置。要開始新遊戲,請使用以下命令:
restart
通過 rcon 進行遊戲內配置
通常,您必須在伺服器本身上執行這些命令(例如通過 SSH 進入它)。為了讓它在 OpenTTD 作為後台程序執行的伺服器上工作(例如,您已經分叉了它),您必須事先配置rcon_password或admin_password 。這些可以在
$$ network $$配置文件openttd.cfg的部分。例子:
[network] rcon_password = "8MuQooL$pl595"
使用 rcon_password,您可以將游戲控制台用作客戶端,方法是為您的命令添加前綴,如下所示
rcon <rcon_password> "<command>"
:所以例子變成了:rcon 8MuQooL$pl595 "set inflation false"
可程式配置
如果您想對這些設置進行程式(例如,版主可以通過網路界面更改遊戲設置),您可以使用管理界面。How to do Socket-programming on the admin interface to send the correct bytes to do you want is a bit out of this answer,所以你可以在官方文件中閱讀更多相關資訊。wiki 上還連結了可用於 java、javascript、PHP 和 python 的庫。假設您知道如何連接管理埠並與之通信:
可以用來發送上述命令的有趣數據包類型是(請注意,openttd 管理介面是小端,與通常的網路程式介面相反):
ADMIN_PACKET_ADMIN_RCON = 0x05 0x00
使用 rcon 命令將此數據包標識符附加為以空字元結尾的 C 字元串(在我們的範例中為:)
string cmd = "set inflation false"
,或者使用其中一個庫為您完成繁重的工作。另請參閱wiki,了解有關控制台的更多資訊。