相位技術(shù)
相位技術(shù)大規(guī)模出現(xiàn)在魔獸世界WLK版本, 現(xiàn)在應(yīng)用已經(jīng)廣泛應(yīng)用在各種MMORPG游戲中. 下面對(duì)相位技術(shù)的做法進(jìn)行簡單歸納匯總
表現(xiàn)分類
副本相位
早期副本的出現(xiàn), 避免搶怪問題. 所以, 副本其實(shí)本身就是一種相位技術(shù). 只不過實(shí)現(xiàn)時(shí), 我們一般會(huì)將小隊(duì)和怪物直接預(yù)分配在獨(dú)立的一個(gè)副本實(shí)例中(所以副本原文也是實(shí)例的意思)
分線相位
相位技術(shù)還沒有正式命名時(shí), 同一個(gè)場景, 玩家進(jìn)到不同的分線看到的玩家不一樣, 也是屬于相位的一種. 當(dāng)然, 如果是組隊(duì)玩家, 服務(wù)器默認(rèn)會(huì)分配所有隊(duì)伍玩家在同一個(gè)線(位面)
真相位
副本相位和分線相位其實(shí)都是靜態(tài)相位, 一旦進(jìn)入, 中途不會(huì)有切換或者混合查看的過程. 真相位可以在一個(gè)場景中,動(dòng)態(tài)切換相位, 相位內(nèi)和相位外所以不同
我們常見的真相位表現(xiàn)為: 相位中的角色+玩家+隊(duì)伍成員
在護(hù)送任務(wù)時(shí), 還會(huì)在上面所見角色中疊加世界中的所有角色, 也就是說, 你和隊(duì)伍成員可以看到的角色, 其他人看不到, 其他人也看不到你和你的隊(duì)伍成員
為了清晰的簡單的描述, 我為相位創(chuàng)建如下概念與名詞
相位客體
表現(xiàn)為除玩家外的角色(怪物,交互物體與相位可見場景)
私有客體
這是最常見的一種相位內(nèi)角色
持有變量
取PhasingID時(shí),為PhasingTargetID
生成規(guī)則
當(dāng)玩家開啟相位后, 在玩家相位內(nèi)生成的角色為私有客體.
此時(shí), 將 PhasingTargetID設(shè)置為相位生成者的實(shí)例ID
刪除規(guī)則
如果玩家退出相位, 私有客體會(huì)存在一段時(shí)間或按照需求刪除
公共客體
一般指提前放置在場景中, 世界內(nèi)不可見, 但是能被同相位玩家可見,且同相位玩家都可以互相可見 比如: 只要接了同一個(gè)任務(wù)的玩家, 都可以看到的NPC
持有變量
取PhasingID時(shí),為PublicPhasingID
生成規(guī)則
通過場景編輯器, 放置角色時(shí), 設(shè)置其可被觀察到的任務(wù)ID
角色被加載后, 將任務(wù)ID設(shè)置到StaticPhasingID
刪除規(guī)則
場景刪除, 角色刪除
相位主體
包含玩家與同隊(duì)伍玩家
開啟相位后, 可見私有客體+公有客體
隊(duì)長視為相位主體, 單人時(shí), 自己為隊(duì)長
隊(duì)伍其他成員共享隊(duì)長的私有相位客體
隊(duì)伍其他成員根據(jù)自己的PublicPhasingID匹配目標(biāo)對(duì)象的PublicPhasingID時(shí)可互相可見
持有變量
相位開啟時(shí), 取PhasingID時(shí), 為角色實(shí)例ID
相位關(guān)閉時(shí), 取PhasingID時(shí), 為0
PublicPhasingID
可見規(guī)則
當(dāng)兩個(gè)角色的PhasingID相等時(shí), 主體與私有客體互相可見
當(dāng)兩個(gè)角色的PublicPhasingID相等時(shí), 主體與公有客體互相可見
可以通過開關(guān)設(shè)置, 是否在可見的相位客體基礎(chǔ)上, 疊加世界角色(護(hù)送任務(wù))
約束