網站首頁 單機圖文攻略 單機視頻攻略 單機遊戲攻略 單機遊戲問答 遊戲常見問題 遊戲心得體會 手遊圖文攻略 手遊視頻攻略 手遊圖鑑攻略 手遊軟件教程 手遊攻略問題 網遊圖文攻略 網遊綜合攻略 網遊遊戲問答
當前位置:趣味遊戲館 > 網遊圖文攻略 > 

守望先鋒生化模式怎麼做|OW地圖工坊生化模式

欄目: 網遊圖文攻略 / 發佈於: / 人氣:3.21W

OW守望先鋒的地圖工坊一曝光就引起了大量討論,地圖編輯器將會給遊戲帶來無限可能。下面就給大家帶來OW地圖工坊生化模式製作指南,看看如何用OW地圖工坊做出來一個生化模式吧。

OW地圖工坊生化模式 守望先鋒生化模式怎麼做

本文將介紹如何從零開始創造一個“生化模式”——相信很多人都玩過CSOL的生化模式。在閲讀本文前,建議你先簡單閲讀[官方説明],對地圖工坊有初步瞭解,或者進入遊戲,簡單看看官方的幾個示例。

選擇基本模版

OW基本模式有:推車、佔點、AB點、混合。除此之外,還有個人死鬥、團隊死鬥、突擊模式。我們先想一下,哪個模式最合適?因為我們需要動態的修改敵對關係,所以我們只能選擇個人死鬥作為基礎模式。

從基本功能開始

如何走出第一步?我建議從基本功能開始。“生化模式”的基本功能應該是感染。這個過程是什麼樣的?

殭屍抓了人一下

把人變成殭屍

所以,我們應該有一個這樣的規則:

事件:玩家受到傷害

條件:受傷玩家是人,攻擊方是殭屍

動作:受傷玩家變成殭屍

如何判斷玩家是殭屍還是人類?考慮到人類英雄可能不止一個,用英雄來判斷不是一個好的選擇。我們可以用一個玩家變量(例如B)來標記一個玩家是人類還是殭屍,那麼條件就是:

玩家變量(事件玩家, B) == 真

玩家變量(攻擊方, B) == 假

動作:

設置玩家變量(事件玩家, B, 假)

開始強制玩家選擇英雄(事件玩家, 英雄(殭屍英雄))

修改玩家分數(攻擊方, 1)

完善整體框架

我們想想這個模式框架還要些什麼:

倒計時後隨機母體殭屍

獲勝判定

倒計時後隨機母體殭屍

查詢手冊,我們知道有一個值是“總計消耗時間”。它似乎和我們的要求一致。但仔細想想:它包括了準備時間和攻防轉換時間。這和我們的要求有很大差別。目前沒有直接能用的值,我們只能用變量來模擬:

有一個變量,一開始是30

遊戲開始後,每秒將它-1

當它是0時,就代表時間到了

於是,我們寫出這樣一個規則:

事件

持續 - 全局

條件

遊戲正在進行中 == 真

全局變量(C) >= 0

動作

根據條件跳過(比較(全局變量(C), >, 0), 3)

設置全局變量(Z, 數組隨機值(所有玩家(所有隊伍)))

設置玩家變量(全局變量(Z), B, 假)

開始強制玩家選擇英雄(全局變量(Z), 英雄(殭屍英雄))

修改全局變量(C, 減, 1)

等待(1, 無視條件)

如條件為“真”則循環

當然,這只是最核心的部分,你可以加上如倒計時提示等功能,來改善遊戲體驗。

獲勝判定

有兩種獲勝情況:

殭屍感染了全部人類,殭屍獲勝

人類堅持到了最後一秒,人類獲勝

考慮到遊戲中可能有玩家進入、退出,我們最好這樣判斷:

事件

持續 - 全局

條件

遊戲正在進行中 == 真

全局變量(C) < 0

空數組 == 已過濾的數組(所有玩家(所有隊伍), 玩家變量(當前數組元素,B))

動作

宣告玩家勝利(全局變量(Z))

事件

持續 - 全局

條件

遊戲正在進行中 == 真

全局變量(C) < 0

比賽時間 <= 0.200

空數組 != 已過濾的數組(所有玩家(所有隊伍), 玩家變量(當前數組元素,B))

動作

設置全局變量(Y,數組中的值(已排序的數組(已過濾的數組(所有玩家(所有隊伍), 玩家變量(當前數組元素,B)), 分數(當前數組元素,B)),0))

宣告玩家勝利(全局變量(Y))

完善遊戲邏輯

這個時候我們的“生化模式”已經可以玩了!但是當你作為第一批玩家試玩時,你會發現少了一些東西:

有隊友傷害

沒有擊退效果

殭屍不能自己回覆生命值

殭屍死亡沒有自動復活

隊友傷害

我們只要保證同類型的玩家間無法互相傷害:

事件:玩家受到傷害

條件:玩家變量(事件玩家, B) == 玩家變量(攻擊方, B)

動作:設置受到傷害(事件玩家, 0)

擊退效果

我們想一下CSOL中是什麼樣的:

殭屍一瞬間的移動速度變得很慢

往人類-殭屍的方向上移動一小段距離

因此,我們可以寫出這樣的規則:

事件

玩家受到傷害

雙方 全部

條件

玩家變量(事件玩家, B) == 假

玩家變量(攻擊方, B) == 真

動作

設置移動速度(事件玩家,10)

施加推力(事件玩家,向量(位置(攻擊方), 位置(事件玩家)), 3,至地圖, 取消相反運動)

等待(0.500, 無視條件)

設置移動速度(事件玩家, 100)

殭屍回覆生命值

CSOL中有一個有意思的設定:殭屍在原地停三秒鐘,就可以回覆生命值,並且原地跳躍不算移動。我們不能直接知道玩家在幾秒內有沒有動,也不知道玩家幾秒前的座標。但我們可以換一個思路:我們每秒記一下玩家的位置。如果X、Z座標與上一秒相同,那麼我們就可以給計數器+1。計數器>3時,就可以給玩家回覆生命值。

事件

持續 - 每名玩家

雙方 全部

條件

玩家變量(事件玩家, B) == 假

動作

// 標記玩家的X座標、Z座標與上一秒鐘的座標是否相同

設置玩家變量(事件玩家,G, 比較(X方向分量(位置(事件玩家)), ==, 玩家變量(事件家,D)))

設置玩家變量(事件玩家,H, 比較(Z方向分量(位置(事件玩家)), ==, 玩家變量(事件家,E)))

// 如果任意一個座標不相同,則跳過下一條給計數器+1的語句

根據條件跳過(或(非(玩家變量(事件玩家, G)), 非(玩家變量(事件玩家, H)), 1)

修改玩家變量(事件玩家,F, 加,1)

// 如果兩個座標都相同,則跳過下面重置計數器與座標的語句

根據條件跳過(與(玩家變量(事件玩家, G), 玩家變量(事件玩家, H)), 3)

設置玩家變量(事件玩家, F, 0)

設置玩家變量(事件玩家, D, X方向分量(位置(事件玩家)))

設置玩家變量(事件玩家, E, Z方向分量(位置(事件玩家)))

// 如果計數器 < 3 或 玩家達到最大生命值,則跳過回覆生命值的語句

根據條件跳過(或(比較(玩家變量(事件玩家, F), <, 3), 比較(最大生命值(事件玩家), ==, 生命值(事件玩家))), 1)

治療(事件玩家,無,180)

// 等一秒後繼續檢查

等待(1, 無視條件)

如條件為"真"則循環

# 殭屍死亡自動復活

OW本身就提供了重生的函數,並且同時支持原地重生和隨即地點重生,因此我們的規則也非常簡單:

事件

玩家陣亡

雙方 全部

條件

玩家變量(事件玩家, B) == 假

動作

重生(事件玩家)

初始化規則

初始化規則並不是一個一開始就設計好的,或者説單獨存在的規則。它服務於我們的其他規則。例如,在上面的那麼多規則裏面,我們需要初始化一些變量:

全局變量C默認是倒計時秒數

玩家變量B默認是真

玩家變量F默認是0

我們將初始化規則寫成兩條,一條是全局規則,一條是玩家規則。事件分別是“持續 - 全局”和“持續 - 每名玩家”。原因是,“持續 - 全局”中不能使用“事件玩家”,操作每名玩家非常麻煩。而“持續 - 每名玩家”會對每名玩家都運行一遍,如果把初始化全局變量的功能放在這裏面,就有可能引起變量的混亂。

OW地圖工坊生化模式 守望先鋒生化模式怎麼做 第2張

總結

目前為止,我們的“生化模式”已經基本完成了,我們可以在此基礎上完善一些細節,例如不同英雄的擊退距離不一樣等。這些就留給各位自行發揮了。

各位如果想自己設計一個有意思的模式,請記住:不要急於上手。建議各位仿照本文,將自己的模式分割為很多個小功能,然後一步一步完善。

另外給大家一個個人建議:在編寫規則的時候,最好開一個記事本,記一下自己的變量都用來幹什麼了。否則規則一多,變量維護起來會很麻煩。例如本文中,我們用到了這些變量:

玩家變量B:是否是人類

玩家變量D:最後停止的X座標

玩家變量E:最後停止的Z座標

玩家變量F:停止計數器

玩家變量G、H:停止布爾(方便判斷)

全局變量C:開始倒計時

全局變量Y:勝利人類玩家

全局變量Z:母體殭屍