pos機(jī)聯(lián)系不上服務(wù)器,騎砍2聯(lián)機(jī)自定義服務(wù)器搭建官方教程

 新聞資訊2  |   2023-05-22 08:22  |  投稿人:pos機(jī)之家

網(wǎng)上有很多關(guān)于pos機(jī)聯(lián)系不上服務(wù)器,騎砍2聯(lián)機(jī)自定義服務(wù)器搭建官方教程的知識,也有很多人為大家解答關(guān)于pos機(jī)聯(lián)系不上服務(wù)器的問題,今天pos機(jī)之家(www.rcqwhg.com)為大家整理了關(guān)于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

1、pos機(jī)聯(lián)系不上服務(wù)器

pos機(jī)聯(lián)系不上服務(wù)器

翻譯:Notealot

近期,《騎馬與砍殺2:霸主》在版本更新至e1.8.1版本的同時允許玩家自己開設(shè)騎砍2聯(lián)機(jī)服務(wù)器、創(chuàng)建自定義游戲模式、游戲場景構(gòu)造等,中文站已將教程翻譯成了中文版本并上傳至了官方在線文檔,請前往騎砍中文站或者官方公眾號獲取,歡迎modders來這里獲取資料。

也可以直接前往中文站論壇進(jìn)行查看

【中文站漢化組】騎馬與砍殺2MOD制作教程中文版——官方開發(fā)文檔及非官方API文檔漢化(請前往騎砍中文站或者官方公眾號獲?。?/p>

以下為教程具體內(nèi)容。

◆前言

本文主要內(nèi)容為騎友們所能用到的與多人游戲服務(wù)器開設(shè)有關(guān)的知識,內(nèi)容分為三部分,分別是搭建一個自定義服務(wù)器、創(chuàng)建自定義游戲模式以及多人游戲場景的構(gòu)造。

◆搭建一個自定義服務(wù)器

本部分為搭建自定義服務(wù)器的教程,從安裝到部署整個流程包括在內(nèi)。同時,文檔內(nèi)還有關(guān)于服務(wù)器參數(shù)的講解,以及一些注意事項(xiàng)和可能碰到的問題的說明。在文檔最后,還有常見問題環(huán)節(jié),用來回答開發(fā)者們可能會問的一些普遍的問題。

安裝

在你的 Steam 庫中選到“工具”,你會在列表里看到“Mount & Blade II: Dedicated Server”,下載并安裝它。

搭建

服務(wù)器不支持匿名搭建,你需要先進(jìn)入游戲生成一個令牌(Token)。

生成一個令牌(Token)

啟動游戲 Mount & Blade II: Bannerlord 多人模式并登錄到聯(lián)機(jī)大廳:

通過按鍵 ALT + 波浪號鍵(~) 打開游戲控制臺:

在輸入框中輸入 customserver.gettoken 并按下 Enter 鍵:

你的令牌生成了并保存到了 Documents\\Mount & Blade II Bannerlord\\Tokens 目錄下:

如果你計(jì)劃在安裝了《騎砍2》的同一臺計(jì)算機(jī)上搭建獨(dú)立服務(wù)器,那么針對令牌的操作到這一步就可以了。但如果你計(jì)劃在另外一臺不同的計(jì)算機(jī)上搭建服務(wù)器,請復(fù)制你的令牌文件到目標(biāo)電腦上的 Documents\\Mount & Blade II Bannerlord\\Tokens 目錄下。還有一種方法是通過程序啟動參數(shù)來輸入令牌,在下面的“啟動參數(shù)”一節(jié)說明。

注意,這個生成的令牌文件是綁定你的《騎砍2》賬戶的,如果有任何濫用令牌的行為,我們都可以追溯到創(chuàng)建令牌的用戶。我們建議你只自己用,并且不要將它分享給其他人。

另外請記住,為了安全起見,你的令牌會在 3 個月后過期,屆時你可以重新生成并更換令牌。

服務(wù)器管理

你可以在你的服務(wù)器控制臺(在啟動服務(wù)器時會顯示)里輸入命令來管理你的服務(wù)器。

通過輸入 list 然后按下 enter 鍵,你可以獲取到獨(dú)立服務(wù)器的所有可用命令:

例如,想要簡單啟動一個服務(wù)器,你可以在控制臺輸入以下命令:

ServerName Custom Dedicated Beta TestGameType TeamDeathmatchstart_gamestart_mission

通過執(zhí)行這些命令,你的自定義服務(wù)器將出現(xiàn)在服務(wù)器列表,并且所有玩家都可以訪問。

通過 ServerName 和 GameType 命令,你可以輕松地設(shè)置你的服務(wù)器名字和游戲模式。

通過 start_game 命令,你可以啟動你搭建的服務(wù)器。你的服務(wù)器將變?yōu)樗型婕铱梢?,任何進(jìn)入服務(wù)器的玩家都會在中場休息狀態(tài)下等待。

通過 start_mission 命令,你的服務(wù)器將會切換到行動模式,并且玩家能夠正式開始游玩。

你可以使用簡寫 start_game_and_mission 來替代上述兩個命令。

提示 & 技巧配置文件

你可以指定一個配置文件在初始化時加載運(yùn)行,該文件的內(nèi)容將被逐行執(zhí)行,而不是通過服務(wù)器控制臺一條一條的來輸入命令。

你可以在 Native 模組目錄下找到示例配置文件(Modules\\Native\\ds_config_*.txt)。請注意,目前為止,你自己的配置文件也必須位于該目錄下,才能被服務(wù)器讀取到。關(guān)于如何指定要運(yùn)行的配置文件,請參考下文中提到的“啟動參數(shù)”。

啟動參數(shù)

目前,有幾個特別有用的啟動參數(shù):

/dedicatedcustomserverconfigfile [配置文件名] - 指定一個要加載的配置文件,如上文“配置文件”一節(jié)中所提到的那樣。

/dedicatedcustomserverauthtoken [認(rèn)證令牌內(nèi)容] - 當(dāng)令牌通過啟動參數(shù)傳入,包含令牌的本地文件就不需要了。

/DisableErrorReporting - 禁用崩潰報(bào)告上傳(Crash Uploader)彈出和自動錯誤上報(bào)。

/LogOutputPath [輸出目錄] - 設(shè)置服務(wù)器日志文件的輸出目錄,路徑應(yīng)該用雙引號括起來。

日志文件

默認(rèn)情況下,Windows 的自定義服務(wù)器的日志文件可以在你的 ProgramData 目錄(%programdata%\\Mount and Blade II Bannerlord\\logs)下找到。

自動換圖次數(shù)

通過在 enable_automated_battle_switching 之前使用命令 set_automated_battle_count 你可以設(shè)置在服務(wù)器關(guān)閉前可以游玩的行動數(shù)量。

例如,set_automated_battle_count 10 會讓服務(wù)器運(yùn)行 10 個行動后關(guān)閉,如果你想設(shè)置為無限行動數(shù)量,將值設(shè)為 -1。

輔助模組

我們提供可選模組 DedicatedCustomServerHelper 來輔助搭建服務(wù)器,其中有幾個子模組可以實(shí)現(xiàn)不同的功能。為了使服務(wù)端模組可以通過外部網(wǎng)絡(luò)使用,你需要開放 TCP 端口 7210。

請注意,盡管該模組對于服務(wù)器搭建來說是可選的,但如果你加載了此模組,那么玩家也必須加載此模組。否則,模組不匹配的玩家將無法加入服務(wù)器。

網(wǎng)頁管理面板

這個模組啟動了一個網(wǎng)頁面板,通過一個通用的管理頁面和終端頁面與你的自定義服務(wù)器進(jìn)行交互:

你的網(wǎng)頁面板初始化完成后,你可以在你的服務(wù)器控制臺看到它的 URL 地址。

該網(wǎng)頁面板受服務(wù)器所配置的 AdminPassword 選項(xiàng)的密碼保護(hù)。默認(rèn)情況下,該選項(xiàng)的值為空,所以一定要設(shè)置一個安全的密碼。

如果你不希望除本地網(wǎng)絡(luò)或機(jī)器以外的地方能訪問網(wǎng)頁面板,同時也不需要下面的地圖下載功能,那么你只需要攔截外部對 TCP 端口 7210 的訪問即可。

游戲內(nèi)地圖下載

我們還提供了一種允許玩家通過游戲內(nèi)面板下載服務(wù)器的地圖文件的方式。作為服務(wù)器主機(jī),你必須要滿足一些條件才能讓這個功能發(fā)揮作用:

地圖文件必須置于 DedicatedCustomServerHelper 模組的 SceneObj 目錄下,就像一個典型的包含場景的模組一樣。如果沒有該目錄,你可以手動新建一個。要把這個地圖提供給玩家,必須通過 Map 選項(xiàng)或 add_map_to_automated_battle_pool 命令“注冊”到服務(wù)器。

為了讓玩家能夠打開下載面板,他們需要在加載了 DedicatedCustomServerHelper 模組后啟動游戲?,F(xiàn)在,他們可以鼠標(biāo)右擊自定義服務(wù)器列表項(xiàng),然后會打開一個上下文菜單,其中會有打開該服務(wù)器下載面板的選項(xiàng)。地圖下載成功后,無需重新啟動游戲,他們應(yīng)該就能直接加入你的服務(wù)器。

請注意,這個功能是用于支持這一簡單的使用場景。這不是一個模組管理器功能,也無法支持獲取給定的模組分布在其他資產(chǎn)(如 ModuleData、Prefabs 等)中的地圖。只有 SceneObj 目錄下的內(nèi)容會在服務(wù)端和客戶端之間傳輸。

常見問題在服務(wù)器搭建時需要 Steam 保持運(yùn)行嗎?

不,你只需要用 Steam 保持你的服務(wù)器文件為最新就行,你可以隨意拷貝服務(wù)器文件到其它計(jì)算機(jī)上搭建。但我們強(qiáng)烈推薦你帶一個 Steam 以保證文件是最新的。區(qū)別于《戰(zhàn)團(tuán)》,目前而言,任何舊版本的服務(wù)器文件都不兼容我們的系統(tǒng)。

你們計(jì)劃支持其他的游戲平臺嗎?

是的。

如果我不想用任何游戲平臺來獲取服務(wù)器文件,會有其他選擇嗎?

目前,Steam 是下載服務(wù)器文件的唯一渠道。我們計(jì)劃將服務(wù)器文件添加到其他游戲平臺,同時也在考慮未來使用 Docker 分發(fā)服務(wù)器文件這樣一個方案。

你們會提供 Linux 支持嗎?

是的。事實(shí)上,我們的后端使用的就是 Linux 服務(wù)器,但要給公眾使用的話,還需要對系統(tǒng)進(jìn)行進(jìn)一步開發(fā)。

我的服務(wù)器所有人都可以訪問嗎?

是的,你的服務(wù)器所有人都可以訪問,除非說你設(shè)置了密碼來保護(hù)。

我可以搭建多少服務(wù)器?

你可以同時運(yùn)行的服務(wù)器數(shù)量是有限的。目前,你最多可以同時運(yùn)行 5 個服務(wù)器。

我的服務(wù)器在列表里顯示了,但玩家無法加入。什么問題?

默認(rèn)情況下,獨(dú)立服務(wù)器使用 UDP 端口 7210。你必須在互聯(lián)網(wǎng)上有一個大家可以訪問的(公共)IP 地址,以及上述端口也必須可以訪問到。

硬件要求是什么?

這需要看是何種游戲模式以及玩家數(shù)量。這是我們搭建游戲服務(wù)器時,默認(rèn)的配置:

小型戰(zhàn)斗(遭遇戰(zhàn)和決斗):2 核 CPU (2GHz 到 3GHz) 和 4GB 內(nèi)存大型戰(zhàn)斗(圍攻戰(zhàn)、團(tuán)隊(duì)死斗和領(lǐng)軍戰(zhàn)):4 核 CPU (2GHz 到 3GHz) 和 8GB 內(nèi)存

但舉例來說,你總是可以在一臺 2 核機(jī)器上搭建一個較少玩家的攻城服務(wù)器。

你也可以嘗試使用單核機(jī)器來搭建一臺非常小型的服務(wù)器,但你可能在游戲中碰到一些使用率突增卡頓的情況。

帶寬要求是什么?

這取決于玩家數(shù)量。默認(rèn)情況下,我們會給每個玩家發(fā)送 60 個數(shù)據(jù)包,并且每個數(shù)據(jù)包少于 1.5 kb(千字節(jié))。對于大多數(shù)配置,任何專用服務(wù)器供應(yīng)商都應(yīng)該能夠提供足夠的網(wǎng)絡(luò)連接。

游戲支持任何自定義模組嗎?

是的!

自定義時的反作弊功能是怎樣的?

對于自定義游戲反作弊是關(guān)閉的。請注意,任何修改過游戲的玩家都無法加入官方服務(wù)器。

會有游戲內(nèi)管理面板來幫助更快更方便地管理服務(wù)器嗎?

我們打算做一個。

◆創(chuàng)建自定義游戲模式

本教程會指導(dǎo)你如何從頭開始建立一個包含自定義游戲模式的模組,教程內(nèi)提供的示例模組將會提供一個試用版本下載鏈接。

前提條件

要制作一個多人游戲模式,你首先需要在你游戲安裝目錄的 Modules 目錄下創(chuàng)建你的模組文件夾。在你的模組目錄下,你需要創(chuàng)建一個 bin 文件夾來放置 DLL 文件,還要創(chuàng)建一個 SubModule.xml 文件來存放你的模組定義和額外數(shù)據(jù)。

對于程序開發(fā),你需要有 .NET Framework 開發(fā)工具。配置開發(fā)環(huán)境的話,下載 Visual Studio 2017 社區(qū)版并安裝 .NET Framework 4.7.2 支持。完成這些步驟后,新建一個 Class Library 項(xiàng)目。對于客戶端而言,添加位于你的 Mount & Blade II: Bannerlord 安裝目錄的 Win64_Shipping_Client 目錄下的所有的 DLL 引用。對于服務(wù)端而言,添加位于你的 Mount & Blade II: Dedicated Server 安裝目錄的 Win64_Shipping_Server 目錄下的所有的 DLL 引用。

請保證你項(xiàng)目的輸出路徑是:

客戶端代碼放在你模組 bin 目錄下的 Win64_Shipping_Client 目錄下。服務(wù)器代碼放在你模組 bin 目錄下的 Win64_Shipping_Server 目錄下。

一切準(zhǔn)備完畢后,你可以開始對你的游戲模式進(jìn)行編程。請注意,本文檔中創(chuàng)建的游戲模式及其完整的源代碼和額外的數(shù)據(jù)文件,都會以 ZIP 壓縮包的形式提供給你。

模組定義(Module Definition)文件

再開始定義你的游戲模式行為(behaviors)前,你需要先填寫模組定義的 SubModule.xml 文件。在該文件中,你要給你的模組一個名字、一個 ID、一個版本,并定義它的依賴和 DLL 文件。

<Module> <Name value="MP Bounty"/> <Id value="BountyMP"/> <Version value="v1.8.0"/> <ModuleCategory value="Multiplayer"/> <DependedModules> <DependedModule Id="Native" DependentVersion="e1.8.0" Optional="false"/> </DependedModules> <SubModules> <SubModule> <Name value="BountyMP"/> <DLLName value="BountyMP.dll"/> <SubModuleClassType value="BountyMP.BountyMPSubModule"/> </SubModule> </SubModules></Module>

從這個示例定義文件中,我們可以看到一個模組的基本需求。關(guān)于多人游戲模組的 ModuleCategory 節(jié)點(diǎn),其值可以是 Multiplayer 或 Server。如果模組是一個 Multiplayer(多人游戲)模組, 這意味著它在客戶端和服務(wù)端都會被加載。Server(服務(wù)器)模組就只在服務(wù)器端被加載,并且可以用于管理和分析需要。

SubModules 節(jié)點(diǎn)定義了這個模組創(chuàng)建和使用的 DLL 文件。確保你的 DLL 文件的名稱和繼承 MBSubModuleBase 類的名稱與該文件中的名稱一致。

SubModule 類

要在代碼中定義你的游戲模式,你需要創(chuàng)建一個類并繼承自 MBSubModuleBase 類。在這個類中,重寫 OnSubModuleLoad 方法并添加此行:

Module.CurrentModule.AddMultiplayerGameMode(new MissionMultiplayerBountyMPMode("BountyMP"))

傳遞給構(gòu)造函數(shù)的字符串是你游戲模式的名字。在該示例中,我們創(chuàng)建了一個名為 BountyMP 的游戲模式。要加載有文本信息的 XML 文件,重寫 InitializeGameStarter 方法,調(diào)用其 base 方法然后添加此行:

game.GameTextManager.LoadGameTexts(ModuleHelper.GetModuleFullPath("BountyMP") + "ModuleData/multiplayer_strings.xml")

同樣,模組名和 XML 文件名都取決于你模組中的文件的名字。

在該 XML 文件中,你可以定義如下內(nèi)容,這樣你的游戲模式的名字就會顯示在服務(wù)器列表中。

<?xml version="1.0" encoding="utf-8"?><base xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="string"> <strings> <string id="str_multiplayer_official_game_type_name.BountyMP" text="{=*}Bounty" /> <string id="str_multiplayer_game_type.BountyMP" text="{=*}Bounty" /> </strings></base>

確保 ID 與你在代碼和模組定義文件中所定義的 ID 一致。

GameMode 類

要讓服務(wù)器用你的游戲模式開始一場行動(mission),你需要新建一個類繼承自 MissionBasedMultiplayerGameMode。在該類中,重寫 StartMultiplayerGame 方法如下:

public override void StartMultiplayerGame(string scene) { MissionState.OpenNew("BountyMP", new MissionInitializerRecord(scene), missionController => { if (GameNetwork.IsServer) { return new MissionBehavior[] { MissionLobbyComponent.CreateBehavior(), new MissionMultiplayerBountyMP(), new MissionMultiplayerBountyMPClient(), new MultiplayerTimerComponent(), new MultiplayerMissionAgentVisualSpawnComponent(), new SpawnComponent(new BountyMPSpawnFrameBehavior(), new BountyMPSpawningBehavior()), new MissionLobbyEquipmentNetworkComponent(), new MultiplayerTeamSelectComponent(), new MissionHardBorderPlacer(), new MissionBoundaryPlacer(), new MissionBoundaryCrossingHandler(), new MultiplayerPollComponent(), new MultiplayerAdminComponent(), new MultiplayerGameNotificationsComponent(), new MissionOptionsComponent(), new MissionScoreboardComponent(new BountyMPScoreboardData()), new MissionAgentPanicHandler(), new AgentHumanAILogic(), new EquipmentControllerLeaveLogic(), new MultiplayerPreloadHelper(), }; } else { return new MissionBehavior[] { MissionLobbyComponent.CreateBehavior(), new MissionMultiplayerBountyMPClient(), new MultiplayerAchievementComponent(), new MultiplayerTimerComponent(), new MultiplayerMissionAgentVisualSpawnComponent(), new MissionLobbyEquipmentNetworkComponent(), new MultiplayerTeamSelectComponent(), new MissionHardBorderPlacer(), new MissionBoundaryPlacer(), new MissionBoundaryCrossingHandler(), new MultiplayerPollComponent(), new MultiplayerGameNotificationsComponent(), new MissionOptionsComponent(), new MissionScoreboardComponent(new BountyMPScoreboardData()), new MissionMatchHistoryComponent(), new EquipmentControllerLeaveLogic(), new MissionRecentPlayersComponent(), new MultiplayerPreloadHelper(), }; } } );}

通過這段代碼,你可以看見 GameNetwork 有一個變量,可以用在你的代碼里,用于檢查運(yùn)行的游戲?qū)嵗欠?wù)端還是客戶端。在該方法中,你可以看到它用來分隔客戶端行為和服務(wù)器行為。這能確保正確的 MissionBehaviors 被加載到正確類型的游戲。其他方法中, GameNetwork.IsClient 和 GameNetwork.IsServer 可用于對不同事件采取不同處理。

該方法也大概展示了一場行動是如何進(jìn)行的。所有行動行為(mission behaviors)都是一個接一個加載的,它們分別處理游戲的不同方面。根據(jù)你的游戲模式,你可能希望在你的模式中使用全部這些行為,又或者是只使用一部分。另外請注意,其中一些行為之間存在依賴關(guān)系,這意味著如果一個行為不存在,其他行為可能無法正確工作。在本例中,如果你按照第一部分中提到的步驟創(chuàng)建了一個空項(xiàng)目,那么有兩個任務(wù)行為是無法實(shí)現(xiàn)的。開發(fā)者創(chuàng)建這兩個行為來添加自己的游戲邏輯,它們是 MissionMultiplayerBountyMP 和 MissionMultiplayerBountyMPClient。前者從服務(wù)端管理游戲模式,后者從客戶端管理游戲模式,確保所有重要的共享數(shù)據(jù)都在你的服務(wù)器上并正確同步。

行動行為(Mission Behaviors)

對于所有原版游戲模式,服務(wù)端的游戲模式邏輯類,示例中的 MissionMultiplayerBountyMP,繼承自 MissionMultiplayerGameModeBase。該類定義了基本的重生和同步系統(tǒng)。對于所有的原版游戲模式,客戶端游戲模式消息處理邏輯類,示例中的 MissionMultiplayerBountyMPClient,繼承自 MissionMultiplayerGameModeBaseClient。該類有幾種可用的重寫,可以確保消息處理程序(message handlers)的注冊和注銷在正確的時間發(fā)生。

行動典型(Mission Representatives)

在原版游戲模式中,所有客戶端添加了行動典型(Mission Representative)類來處理游戲模式特定的數(shù)據(jù)和邏輯。通過這一典型類,客戶端可以根據(jù)條件查詢多種關(guān)于游戲的事物。服務(wù)端也可以使用客戶端的行動典型來計(jì)算多種事物,包括獲得的金錢、旗幟信息等等。該類的內(nèi)容依賴于游戲模式自身,行動典型的基類只有客戶端的金錢和受控的 AI。在示例中,它是 BountyMPMissionRepresentative。行動典型被添加到了服務(wù)端游戲模式的先前一節(jié)提到的行動行為(Mission Behavior)類中。

搭建使用模組的自定義服務(wù)器

要搭建一個使用模組的自定義服務(wù)器,你可以使用啟動命令,如下:

DedicatedCustomServer.Starter.exe _MODULES_*Native*Multiplayer*YOUR_MODULE_NAME_1*YOUR_MODULE_NAME_2*_MODULES_

在星號之間,你可以放入任何你想要的模組的名稱。

你提供給 /dedicatedcustomserverconfigfile 參數(shù)的文件也可以包含你的自定義游戲模式的名稱。

示例模組

你可以通過地址(請前往騎砍中文站或者官方公眾號獲取)找到添加了一個新多人游戲模式的示例模組。請注意,示例模組中可能有一些小 bug,這不是一個完整的打磨過的官方游戲模式。

要編譯示例的客戶端,你需要安裝 Mount & Blade II: Bannerlord。

要編譯示例的服務(wù)端,你需要安裝 Mount & Blade II: Dedicated Server。

◆多人游戲場景的構(gòu)造

本技術(shù)介紹將使你能夠?yàn)樘囟ǖ挠螒蚰J絼?chuàng)建自定義多人場景,它詳細(xì)說明了你的多人游戲場景需要滿足哪些要求才不會崩潰。這不是設(shè)計(jì)指南或最佳實(shí)踐文檔。

游戲模式(Gamemode)細(xì)節(jié)

《霸主》中的每個游戲模式都需要一些不同的相關(guān)預(yù)制件(prefabs)的設(shè)置。

(提示:通過包含所有需要的預(yù)制件,可以使場景與多種游戲模式兼容。場景不能與使用不同重生(生成)系統(tǒng)的模式兼容,例如團(tuán)隊(duì)死斗場景不能與領(lǐng)軍戰(zhàn)場景兼容,但如果有合適的重生設(shè)置的話,領(lǐng)軍戰(zhàn)場景也可以用于遭遇戰(zhàn)。)

游戲?qū)ο?p>作為游戲模式在你的場景中運(yùn)行所需要的預(yù)制件的游戲?qū)ο螅℅ameobjects),你可以在“預(yù)制件(Prefabs)”窗口中找到這些。

通用mp_camera_start_pos

初始相機(jī)位置,這是為正在加入的玩家設(shè)置的。它基本上定義了加入服務(wù)器時選擇陣營的背景,它也是人們看到的你的場景的第一個畫面。確保你稍微旋轉(zhuǎn)了它(它默認(rèn)是向下旋轉(zhuǎn)的)。這玩意兒只用放置一個!

border_soft

定義場景周圍的軟邊界(soft border)。如果玩家越過,他們將有幾十秒時間返回。該邊界用于設(shè)置場景的邊界,確保邊界不會穿進(jìn)你的可游玩區(qū)域。你可以通過在地圖周圍放置邊界探測點(diǎn)(border probes)來定義邊界(最佳實(shí)踐是做一個六邊形的形狀)。探測點(diǎn)總是會與離其最近的 2 個探測點(diǎn)相連。

(提示:你可以通過在可見性(Visibility)窗口中啟用“邊界(Borders)”來查看形成的邊界,有時最好在這一步之前重新加載場景。)

flee_line

這些逃離線(flee lines)是 AI(在我們的游戲模式中只有 AI 馬匹)用于逃離戰(zhàn)場的,他們會嘗試使用導(dǎo)航網(wǎng)格(navmesh)來找到這些。所以這些位置需要放置在 AI 可以通過導(dǎo)航網(wǎng)格觸及到的地方。當(dāng)他們到達(dá)這些逃離線,他們會在短時間內(nèi)消失,你可以放置多個這樣的實(shí)例。

(提示:圍城戰(zhàn)時,你要確保城堡里也有這樣的逃離線,這樣城內(nèi)的馬就可以不經(jīng)過城門跑出去。導(dǎo)航網(wǎng)格和 AI 不能分清樓梯和坡道,你可能需要調(diào)整或刪除樓梯上的導(dǎo)航網(wǎng)格,以避免無人騎的馬擋住他們。)

envmap_prop

當(dāng)你創(chuàng)建一個新場景時應(yīng)該已經(jīng)存在了,如果沒有,就放置它并在“檢查器(Inspector)”窗口中將其設(shè)置為“IsGlobal”,還要確保它在一個有效位置。當(dāng)然可以有多個探測點(diǎn),但使用 local_envmap_probe 作進(jìn)一步探測。

旗幟管理(遭遇戰(zhàn)、戰(zhàn)場、領(lǐng)軍戰(zhàn))Flags

這些游戲模式都使用 3 個旗幟。不要被它們的命名搞懵,但是所有的游戲模式都使用相同的預(yù)制件!

它們的預(yù)制件:flag_pole_big_sergeant_A, flag_pole_big_sergeant_B, flag_pole_big_sergeant_C

旗幟管理(Flag Domination)需要三個獨(dú)立的旗幟,所以不要復(fù)制旗幟 A 兩次。

圍城戰(zhàn)Flags

使用了跟旗幟管理一樣的旗幟,而且顯然更多。放置從 A 到 F 的所有旗幟,并且主旗幟是 G。

它們的預(yù)制件:flag_pole_big_sergeant_A, flag_pole_big_sergeant_B, flag_pole_big_sergeant_C, flag_pole_big_sergeant_D, flag_pole_big_sergeant_E, flag_pole_big_sergeant_F, flag_pole_big_sergeant_main

Siege Engines

從技術(shù)上來講,它們與單人游戲中的圍攻的運(yùn)作方式相同,但仍有一些明顯的差別。首先,它們大多為多人游戲使用了不同的預(yù)制件,確保你使用的也是這些!

你的場景中所需的圍城戰(zhàn)器械沒有最?。ɑ蜃畲螅?shù)量的要求,也沒有部署點(diǎn)的要求,因?yàn)閲瞧餍凳怯赡愕膱鼍皼Q定的,而不是沙盒戰(zhàn)役游戲。此外,你不需要為攻城塔、攻城槌和攻城梯做大量的導(dǎo)航工作。所以你可以忽略檢查器(Inspector)中的所有導(dǎo)航網(wǎng)格輸入。

攻城槌和攻城塔仍然需要一條路徑前進(jìn)。簡單創(chuàng)建一條路徑,記住它的名稱,并且在檢查器的腳本中將其設(shè)置為“PathEntityName”。

多人游戲特定預(yù)制件:siege_tower_5m_spawnerMP, siege_tower_9m_spawnerMP, siege_tower_12m_spawnerMP, batteringram_a_spawnerMP, mangonel_a_spawnerMP, mangonel_a_spawnerFireMP, mangonel_b_spawnerMP, mangonel_b_spawnerFireMP, mangonel_a_spawnerMP, mangonel_a_spawnerFireMP, ballista_a_spawnerMP, ballista_a_spawnerFireMP, ballista_b_spawnerMP, ballista_b_spawnerFireMP

(提示:大門和攻城梯的預(yù)制件與單人游戲的相同。)

arrow_barrel

你可以將該預(yù)制件(箭筒)放置在你場景內(nèi)的任何位置,玩家可以使用它來補(bǔ)充彈藥。

rock_pile

放置該預(yù)制件允許玩家撿起石頭,它們的工作方式與默認(rèn)的圍城器械相同。在 StonePile 腳本中,你可以設(shè)置這個預(yù)制件中石頭的數(shù)量。這個預(yù)制件還有一個火罐版本:“pot_pile”

該預(yù)制件帶有子對象“icon_man”,它定義了你可以從何處撿起石頭。如果你不希望從任何方向訪問你的石堆,你可以刪除那些子對象。

Rock_pile 和 pot_pile 預(yù)制件可以伴隨投石車和拋石機(jī)一起使用。如果你想要給玩家選擇彈藥的權(quán)力,你可以直接把石堆放在圍城器械旁邊。

決斗

對于決斗模式你會需要手動創(chuàng)建地標(biāo)(landmarks)。有兩類地標(biāo),3 種定義了部隊(duì)類型,16 種較小的定義了競技場和它們所屬的類型。

Big landmarks

你可以隨意使用該預(yù)制件,它需要有這兩個標(biāo)記(tags):“duel_zone_landmark”和“flag_x”。這個 x 代表兵種類型,所以應(yīng)該用“infantry”,“cavalry”或“archery”來替換它。

你還需要(再次)使用腳本定義該區(qū)域的兵種類型。為此,添加“DuelZoneLandmark”到你的預(yù)制件,并將其設(shè)置為你打算在這里生成的任何兵種類型。

Arena landmarks

這些地標(biāo)定義了由大地標(biāo)(big landmarks)分組的競技場。同樣,你可以使用任何預(yù)制件作為其基礎(chǔ)。它需要設(shè)置兩個標(biāo)記(tags),第一個“flag_x”用于將其引用到大地標(biāo)。所以如果你想讓這個競技場用于騎兵戰(zhàn)斗,你應(yīng)該使用標(biāo)記“flag_cavalry”。

你的地標(biāo)還需要一個引用實(shí)際競技場區(qū)域的標(biāo)記(下面會解釋),基本上是一個 ID。為此,使用標(biāo)記“area_flag_x”,x 是你競技場的 ID。所以如果你有 16 個競技場,它們都應(yīng)該有它們自己的標(biāo)記,范圍從“area_flag_1”到“area_flag_16”。

volume_box

這個盒子定義了戰(zhàn)斗人員在競技場中決斗的區(qū)域,每場決斗結(jié)束后所有掉落在這個盒子里的尸體和武器都會被清除。確保它比你在場景編輯器中創(chuàng)建的物理競技場稍大。你可以使用 volume_box 預(yù)制件并縮放到你喜歡的大小。這個盒子需要一個引用你競技場 ID 的標(biāo)記:“area_box_x”,x 應(yīng)該是你競技場的 ID。

所以如果你競技場的標(biāo)記是“area_flag_5”,你應(yīng)該給你的 volmue_box 打上標(biāo)記“area_box_5”。

兩個決斗參與者的重生點(diǎn)都要放在這個盒子里,下面細(xì)說。

重生點(diǎn)

在回合開始時或回合中途玩家重生的點(diǎn)位。旗幟管理(Flag Domination)模式(領(lǐng)軍戰(zhàn)、遭遇戰(zhàn)、戰(zhàn)場)使用了幾乎相同的重生系統(tǒng),場景之間只需要做一點(diǎn)工作就可以相互兼容。從技術(shù)上來說,是兼容的。

大多數(shù)重生點(diǎn)需要設(shè)置右側(cè)標(biāo)記(tag)。這些預(yù)制件帶有默認(rèn)標(biāo)記,要么是“attacker”,要么是“defender”。顯然,你需要為對立的兩隊(duì)復(fù)制并調(diào)整這些預(yù)制件及其子對象上的標(biāo)記。有時候如果標(biāo)記還沒有出現(xiàn)在你的場景中,就需要你手動將其添加到列表中,否則它不會顯示在下拉菜單中!

通用spawn_visual

進(jìn)行兵種和特長選擇時的位置。該預(yù)制件有 6 個子對象,一個給玩家,5 個給其隊(duì)友。對于大多數(shù)游戲模式(除了遭遇戰(zhàn)和領(lǐng)軍戰(zhàn)外的所有游戲模式),只使用有標(biāo)記“sp_visual_0”的子對象,因?yàn)槲覀儧]有設(shè)置隊(duì)友的數(shù)量。

在兵種/特長選擇期間,一個鏡頭會被放在“sp_visual_0”子對象前面。

(提示:你可以忽略子對象上的“attacker”標(biāo)記。與很多其他的重生位置不同,這個位置不需要復(fù)制給防守方隊(duì)伍。)

旗幟管理(遭遇戰(zhàn)、戰(zhàn)場、領(lǐng)軍戰(zhàn))skirmish_start_spawn

該預(yù)制件定義了初始重生點(diǎn)。不要被預(yù)制件的名字迷惑到,它可以用于所有 3 個游戲模式的旗幟管理。

帶有 9 個子重生點(diǎn),但你可以復(fù)制那些來弄出更多可能的重生位置(例如,如果你不想要人們在 50 vs 50 的戰(zhàn)場模式中重生時疊在一起)。所有的子對象需要帶有“spawnpoint”,還有“attacker”或“defender”標(biāo)記。主空間(main zone)的標(biāo)記“starting”和“spawn_zone”不應(yīng)該被修改。

(提示:確保點(diǎn)位不低于你正在使用的地形和地面資產(chǎn)。也要記住,馬的重生需要周圍更大的空間,所以不要把你的重生點(diǎn)太靠近其他人和其他預(yù)制件。)

skirmish_respawn

預(yù)制件定義了遭遇戰(zhàn)的重生位置,所以玩家會在死后重生在這里。如果你不放置這些點(diǎn)位,玩家將會在重生時出生在最開始的重生點(diǎn)。

每一邊你可以放置最多 3 個。就像初始重生點(diǎn)(start spawn)一樣,你必須復(fù)制兩邊的“attacker”和“defender”,主空間的標(biāo)記“spawn_zone”不應(yīng)被修改。

重生點(diǎn)選擇系統(tǒng)檢查周圍的敵人時依賴于父實(shí)體(parent entity)的位置,玩家將在子實(shí)體(child entities)中重生。你可以利用這一點(diǎn)來調(diào)整重生位置的偏差。

圍城戰(zhàn)

圍城戰(zhàn)中的重生與其它模式中有本質(zhì)上的區(qū)別。圍城戰(zhàn)中的重生空間(Spawnzones)是否活躍取決于對局中被移除的旗幟數(shù)量。每個重生空間都通過標(biāo)記 sp_zone_x(x 是從 0 到 6 的數(shù)字)連接到游戲模式(gamemode)邏輯。

該標(biāo)記是在主重生點(diǎn)(main spawn point)預(yù)制件中設(shè)置的,其中有單個重生點(diǎn)“mp_spawnpoint”作為子對象。標(biāo)記的“x”定義了進(jìn)攻方需要占領(lǐng)(和移除)多少面旗幟,這樣重生區(qū)域才會活躍。所以在圍城戰(zhàn)開始時,玩家會重生在有標(biāo)記 sp_zone_0 的空間里,一旦第一面旗幟被移除,他們就會重生在標(biāo)記 sp_zone_1 的空間里,諸如此類。如果只剩下 G 旗(主旗幟),玩家將會重生在標(biāo)記 sp_zone_6 的空間里。

你可以在同一個重生空間上放置多個這些標(biāo)記,所以你可以為前兩面旗幟只創(chuàng)建一個重生空間,只需要給它添加 sp_zone_0 和 sp_zone_1 標(biāo)記即可。

確保重生空間的子對象有“spawnpoint”,還有“attacker”或“defender”標(biāo)記,就像其它模式一樣。

這個 spawnpoint 沒有預(yù)制件,所以大多數(shù)情況下你需要自己設(shè)置標(biāo)記。我建議你使用“skirmish_start_spawn”預(yù)制件。為此,你需要從空間中刪除“starting”標(biāo)記并把它替換為“sp_zone_x”標(biāo)記。

不要忘記放置進(jìn)攻方(attacker)和防守方(defender)重生點(diǎn)!

(提示:你可以在重生空間的“mp_spawnpoint”子對象上使用特定的標(biāo)記來調(diào)整什么兵種可以重生在這里。這里不言自明的標(biāo)記是:“exclude_mounted”和“exclude_footmen”。)

團(tuán)隊(duì)死斗

團(tuán)隊(duì)死斗不使用重生空間,重生點(diǎn)放置在場景周圍,沒有區(qū)分攻守的標(biāo)記。使用“mp_spawnpoint”預(yù)制件就行。確保它們不是另一個預(yù)制件的子對象,并且只有“spawnpoint”標(biāo)記。

決斗

決斗不使用重生空間,重生點(diǎn)被放置在場景周圍(最好是一種大廳區(qū)域),沒有區(qū)分攻守的標(biāo)記。使用“mp_spawnpoint”預(yù)制件就行。確保它們不是另一個預(yù)制件的子對象,并且只有“spawnpoint”標(biāo)記。

請記住在每個競技場內(nèi)放兩個 mp_spawnpoints,它們需要被標(biāo)記連接到競技場地標(biāo)(arena landmark)。因此,使用“spawnpoint_area_x”,x 為所屬競技場的 ID。還要確保它們被放置在該競技場的 volume_box 內(nèi)。

導(dǎo)航網(wǎng)格

一般來說,導(dǎo)航網(wǎng)格在多人游戲中不太重要,因?yàn)榇蠖鄶?shù)原版游戲模式不使用 AI 士兵。不過,導(dǎo)航網(wǎng)格還可以用來給馬匹定位,讓它們找到逃離線(flee lines),并且也可以用來烘焙全局光照。

關(guān)于如何創(chuàng)建一個正確的網(wǎng)格請參考我們已有的文檔。

你可以忽略 AI 腳本的特定 ID。

領(lǐng)軍戰(zhàn)

一般來說,領(lǐng)軍戰(zhàn)模式和單人游戲戰(zhàn)場地形導(dǎo)航網(wǎng)格工作模式是一樣的。你將不得不覆蓋一個相對較大的場景,并使用非常精確的導(dǎo)航網(wǎng)格。你無須顧及 ID,你可以像在但游戲中一樣消耗導(dǎo)航網(wǎng)格,來阻止 AI 使用某些導(dǎo)航網(wǎng)格的面。

(請記?。罕葐稳擞螒蚋匾氖牵切┩婕铱梢缘竭_(dá)但沒有導(dǎo)航網(wǎng)格的區(qū)域,給了玩家巨大的利用空間。盡量避免出現(xiàn)這樣的地方。)

圍城戰(zhàn)

城堡的大門需要在腳本中設(shè)置適當(dāng)?shù)膶?dǎo)航網(wǎng)格,就像在單人游戲中一樣(參考上面之前鏈接的文檔)。如果你不創(chuàng)建一個適當(dāng)?shù)膶?dǎo)航網(wǎng)格,馬匹會感到困惑并卡在你的門里。此外,我們忽略了用于全局光照生成的城堡大門,這將阻止光照透進(jìn)你的門樓主體。

還要確保馬匹在城堡內(nèi)外都可以夠到逃離線。請記住,馬匹總是會選擇最近的“flee_line”進(jìn)行逃離,如果“flee_line”恰好在城外,它們會試圖找到一條出路,如果你沒有正確設(shè)置大門和梯子,它們就會被卡住。

其他氛圍(Atmosphere)

與單人游戲不同,多人游戲場景只使用一種氛圍。在進(jìn)行編輯時不要忘記保存它。

標(biāo)簽(Label)

在“SceneOptions”窗口中,你可以為你的場景設(shè)置一個標(biāo)簽(Label)。如果你掃描你的場景以查找問題(頂部圖標(biāo)欄中倒數(shù)第二個按鈕),這會很有幫助。如果你把這個標(biāo)簽設(shè)為“mp”,它會過濾掉所有與單人游戲相關(guān)的問題。

避免動畫點(diǎn)(animation point)預(yù)制件

使用某些用于單人游戲的預(yù)制件會導(dǎo)致你的場景崩潰。請注意不要放置任何有關(guān)動畫點(diǎn)的資產(chǎn),這對椅子和類似的東西很重要,但對任何可能附帶有動畫的 shop_prop 預(yù)制件也很重要。

通常,所有這些預(yù)制件都有一個非動畫點(diǎn)版本。除此之外,你總是可以使用這些資產(chǎn),只需要刪除其動畫點(diǎn)子對象,并從預(yù)制件上移除所有的標(biāo)記和腳本。

避免在圍城戰(zhàn)外使用可破壞對象

可破壞對象只與我們的圍城戰(zhàn)游戲模式正確同步。在其它模式下,放置路障或圍城器械這樣的可破壞物體可能會使你的游戲崩潰,或造成其他問題。

城墻上的城齒和可破壞的屋頂也是如此。

以上就是關(guān)于pos機(jī)聯(lián)系不上服務(wù)器,騎砍2聯(lián)機(jī)自定義服務(wù)器搭建官方教程的知識,后面我們會繼續(xù)為大家整理關(guān)于pos機(jī)聯(lián)系不上服務(wù)器的知識,希望能夠幫助到大家!

轉(zhuǎn)發(fā)請帶上網(wǎng)址:http://www.rcqwhg.com/newsone/51205.html

你可能會喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。