回覆列表
  • 1 # 小笑哲

    技能系統核心功能有兩個,一個是定義表現流程,一個是處理邏輯效果。所謂表現流程就是角色在什麼時候播放什麼動畫、特效、音效,什麼時候判定傷害,什麼時候發射拋射物。 所謂邏輯效果就是技能給目標造成多少傷害,附加什麼buff/debuff效果。

    在我設計的技能系統中,核心基礎是lua指令碼,透過lua指令碼處理複雜的技能邏輯。基礎內容有這麼幾個部分:

    1、Actor,這個是角色本身,它不屬於技能系統,但是它要給技能系統開放足夠的介面,比如播放動畫、播放聲音、控制位移、造成傷害、新增buff等等

    2、Skill,這個就是技能本身,它在合適的時機呼叫指令碼中的相應函式,指令碼中可以在OnCreate OnHit OnDeath OnHeroDeath OnSoldierDeath等事件中寫相應程式碼。由於是指令碼,所以程式碼非常靈活,而由於限定了只處理技能相關功能,所以程式碼也不會很複雜,有經驗的策劃絕對搞的定。

    3、Buff,這個是技能效果的核心。它可以是有時限的,也可以是被動無時限的。在它對應的指令碼中,定義了這個Buff會影響哪些角色屬性(如血量、暴擊、攻擊力等等)或者角色狀態(如眩暈、隱身、沉默等等),同樣,buff指令碼也支援事件機制,在指令碼的相應事件處理其邏輯功能,可以實現非常豐富的效果。

    4、Modifier,這個是一個技能修改器。技能修改器可以修改技能的流程和效果(比如技能傷害增加、火球擊中人會爆炸等等),具體可以參考風暴英雄中的技能天賦系統。技能修改器並沒有指令碼與之對應,一個技能如果支援某個修改器,需要在指令碼中處理相應功能。

  • 中秋節和大豐收的關聯?
  • 人們都羨慕別人家的孩子,誰知道別人家的孩子是怎麼做到那麼愛學習,次次第一名的?