Openttd

是否可以在執行時改變 openttd 的通貨膨脹?

  • February 25, 2021

我不想重啟伺服器,但我想停止遊戲中的通貨膨脹。價格上漲是相當煩人的。可能嗎?

雖然我不知道與伺服器實現相關的任何事情(因為我不定期玩遊戲),但通過OpenTTD wiki快速搜尋顯示了一個禁用通貨膨脹的設置。

它可以在高級設置 > 經濟 > 通貨膨脹中找到。

還要注意的是,在 OpenTTD 1.3.0 之前,沒有禁用通貨膨脹的選項,因為它以某種方式與經濟狀態合併。

這個問題有一個適用於單人遊戲的答案,但不適用於執行無頭 openttd 伺服器。

通過 SSH 進行配置

為了更改正在執行的伺服器上的設置,當 SSH 連接到正在執行伺服器的會話或螢幕中的框時,使用控制台命令

set <setting> <value> 

在您的情況下,特別是:嘗試:

set inflation false 

某些設置可能需要您重新啟動遊戲。無需重新啟動伺服器即可更改設置。要開始新遊戲,請使用以下命令:

restart

通過 rcon 進行遊戲內配置

通常,您必須在伺服器本身上執行這些命令(例如通過 SSH 進入它)。為了讓它在 OpenTTD 作為後台程序執行的伺服器上工作(例如,您已經分叉了它),您必須事先配置rcon_passwordadmin_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,了解有關控制台的更多資訊。

引用自:https://gaming.stackexchange.com/questions/163753