請問遊戲中如何設計存在相互覆蓋的角色狀態?

時間 2021-09-10 03:16:28

1樓:卡拉迦迪斯

actor.無敵 = true;

actor.無敵 = [a];

A失效, actor.無敵.remove(a);

C頂掉A,actor.無敵.set(c);

C不頂掉A,actor.無敵.add(c);

2樓:inaisekai

設定分組生效,每個組別按效果從高到低排序,優先生效和顯示效果最高的。

如果buff數量不多的話,這樣做就可以。

buff數量過多的時候就用覆蓋邏輯做。

3樓:Cryonyx

不是策劃,提供乙個實現向的思路。

對於例1,可以採用對狀態、標記的計數方式,每有乙個狀態疊加,對應狀態的計數+1;當乙個buff結束,狀態清除時,對應計數-1,當計數大於0時,無敵狀態生效。

對於例2,可以採用動態的屬性計算,而不是簡單的設定還原,也不用單獨開乙個屬性值的佇列。比如當乙個buff修改了速度值時、buff結束時,都整體性重新計算一遍速度屬性,而這時候就可以根據buff生效時間、優先順序、疊加規則等來自定義屬性的計算方式。

至於如何確定優先順序、疊加規則,這就要看你們遊戲的玩法設計了。

一般來說,屬性修改有類似這樣的公式:(A ± B) × C ± D

其中 A 是基礎屬性值,B 是基礎屬性加成值,C 是百分比加成值,D 是最終加成值

所以對應下來,buff 的屬性修改就可以在 B、C、D 這三種數值上進行分類和操作。優先順序用於確定當同類 buff 存在時,誰生效;疊加規則用於確定當同類buff存在時,數值(百分比)是相加還是相乘,有多少能生效。

最終的規則可能是乙個很複雜的混合體。一切都看遊戲玩法、數值設計了。

4樓:小何

狀態的基礎屬性裡面一般是帶有頂替規則這一項,用於處理一些狀態型別。

一般包括,同時,頂替,重新整理時間,高效這幾種。

具體的規則可以自行設定。

像題目中說到的屬性相關,一般是通過屬性公式統一解決。無敵/控制等則是單獨的標記結算,可以換個其他方式(如無敵標記改成+1,結束-1)去實現。

5樓:豐悼公

相同的Buff可以區分等級,例如:1 2 3

進一步設定規則,例如:

同級Buff時間疊加

1級移速buff,增速25%持續3秒,

1秒後再獲得乙個1級增速,增速25%變成了持續5秒。

高階Buff覆蓋(驅散)

1級移速buff,增速25%持續3秒,

2級移速buff,增速35%持續5秒,

當擁有1級移速,再獲得2級移速時,會清除1級移速再新增2級移速。(或者說是效果覆蓋了)

上面提到了buff的驅散,其實不僅限於同樣的buff。

Buff可以分為「出現」和「消失」兩個狀態。

所以可以在這兩個事件後寫邏輯。

哪些事件可以導致buff出現?

被遊戲事件新增

被其他buff新增

哪些事件可以導致buff消失?

被其他遊戲事件移除

被其他buff驅散

被同種buff覆蓋

持續時間結束

例如:獲得灼燒buff時,會驅散冰凍效果。

當灼燒buff消失時,獲得移速下降buff。

當然不同的遊戲有不同的做法,

例如:有的遊戲buff不區分等級,

有的重新獲得同樣的buff只是重置時間,而不是疊加時間。

下面簡單說說dot傷害和buff的區別

假設單機遊戲,且只有我乙個玩家,我打了怪物一刀,附帶出皿效果,每秒掉5HP,持續3秒。

如果我要達到的效果是:我打第二次時,會重置出皿效果。那麼我用buff和dot來做都是Ok的。

如果我要達到的效果是,第一刀和第二刀的出皿效果分開計算。

也就是說可以達到怪物1秒扣2次HP的效果時,甚至出皿效果不是固定的5HP,而是會受到我角色屬性和裝備的加成時,就不太適合用buff來做。

可以改成,每砍怪物一刀,就會生成乙個object,裡面記錄著「角色和裝備的屬性」、「持續的時間」等資訊,然後週期性對怪物造成傷害。

持續時間結束後銷毀自己,或者進物件池。

回到多人遊戲,如果兩個玩家用同樣的技能攻擊怪物。

就需要好好規劃一下遊戲裡期望達到什麼樣的效果。

例如回合制遊戲,

100級A玩家的封印會封住敵人10回合,

50級B玩家可以封印5回合,

那麼A玩家封印後,B玩家再次封印且生效了,你希望敵人被封印幾回合。

仍是10回合?

變成5回合?

變成15回合?

針對你想要達到的不同效果,

buff的驅散規則就定出來了。

回到題主的問題

角色無敵,假設A和C都叫無敵buff。

A buff新增了無敵buff,設定無敵=1,持續3秒

A buff失效時,設定無敵=0;

C buff 被新增時,

先判斷無敵等級是否大於當時無敵buff。

如果大於,

應該需要先驅散A buff,再設定無敵buff,設定計時器。

如果等於,獲取計時器時間,累加之。

如果小於,則不執行邏輯

(或者重置A buff的倒計時。)

遊戲中的任務應該如何設計?

首先確定遊戲型別,不同遊戲的任務內容肯定不同,而任務本身是達到目的的過程,所以首先目的要明確。任務的過程一般也根據遊戲型別設計對應階段的行為,而行為對應的就是玩法。所以拆解下來任務本身就是指引玩法和做階段獎勵投放用的,根好玩沒有關係。如果說完成任務的行為無趣,那就是玩法無趣,跟任務沒啥關係。 何霓 ...

當遊戲中的你下線後,如何設計讓遊戲中的你繼續跟隨虛擬時間活下去?

網遊裡的體現就是下線前掛機,再次上線後能領一些東西。單機,GTA5單機模式裡,你關閉遊戲再啟動,你會發現角色會和剛才不一樣,比如剛才老麥在家裡,你再啟動遊戲到街上了。我覺得這個問題你應該這麼考慮,你設計讓虛擬角色下線或者關閉後繼續做一些活動,那麼這樣的意義何在?如果網遊掛機上線領取獎勵可以理解,單機...

如何設計網路遊戲中的貨幣體系?

大明白 貨幣的本質是什麼好像沒人記得,遊戲中貨幣體系的設計其實在貨幣之外。也就是貨幣所能夠換取的虛擬物品的 真實程度 在玩家心中的重要程度 所以先不要就現在存在的各種遊戲貨幣體系進行解釋與假設,而應思考遊戲在玩家心中的地位,然後以此來權衡遊戲物品的價值。最後進行體系的建立。盡量使它變得有意義。然後再...