Re: [問題] 請教RMXP的技能與狀態的條件設定

看板RPGMaker (RPG製作大師 - RPG Maker)作者 (小風)時間15年前 (2009/04/03 22:46), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/3 (看更多)
問題一我也不知道,但二應該可用狀態鎖技能,轉66rpg的教學給你看。 雖然我沒測過,邏輯上應該可行。 在RGSS的Game_Battler 3中第26行左右插入如下內容 #===========BY 葉子=========== #冷卻的情況下不能使用 #冷卻的技能ID(xx) 和這個技能對應附加的狀態ID(yy) if skill_id == xx and self.states.include?(yy) #狀態存在時,技能無法使用 return false end #在下面可以繼續添加其他需要冷卻的技能 #如果添加 or 語句,還可以多技能實現共同冷卻 #===========BY 葉子=========== 也就是變成這個樣子 class Game_Battler #-------------------------------------------------------------------------- # ● 可以使用特技的判定 # skill_id : 特技 ID #-------------------------------------------------------------------------- def skill_can_use?(skill_id) # SP 不足的情況下不能使用 if $data_skills[skill_id].sp_cost > self.sp return false end # 戰鬥不能的情況下不能使用 if dead? return false end # 沉默狀態的情況下、物理特技以外的特技不能使用 if $data_skills[skill_id].atk_f == 0 and self.restriction == 1 return false end #===========BY 葉子=========== #冷卻的情況下不能使用 #冷卻的技能ID(xx) 和這個技能對應附加的狀態ID(yy) if skill_id == xx and self.states.include?(yy) #狀態存在時,技能無法使用 return false end #在下面可以繼續添加其他需要冷卻的技能 #如果添加 or 語句,還可以多技能實現共同冷卻 #===========BY 葉子=========== # 獲取可以使用的時機 occasion = $data_skills[skill_id].occasion # 戰鬥中的情況下 if $game_temp.in_battle # [平時] 或者是 [戰鬥中] 可以使用 return (occasion == 0 or occasion == 1) # 不是戰鬥中的情況下 else # [平時] 或者是 [菜單中] 可以使用 return (occasion == 0 or occasion == 2) end end end 使用方法:一個技能(id:xx)對應一個狀態(id:yy) 例如:要讓第80號技能火球術有冷卻,就設置一個狀態(假設是40號),設置好第n回合 解除,定量可以設得小一點,不可抵抗(當然,你喜歡的話,可以抵抗,變成有時有冷 卻,有時沒冷卻),要冷卻2回合的話,就設置一回合後100%解除火球術帶公共事件, 給使用者加上40號狀態(配合SailCat的「23種戰鬥特效公共事件版」的腳本效果更好) 只要40號狀態繼續存在,使用者就無法再次使用火球術 擴展:1.可以多個技能共用一個冷卻 2.可以弄個取消冷卻的技能(WOW裡法師那個冰系天賦) 3.物品也帶冷卻...(藥水,地精迫擊炮...) 呼~貌似DOT,詠唱,冷卻都解決了..口朝諷半解決..瞬發技能尚未解決...... 離目標又近了一步... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.162.71

04/03 23:41, , 1F
是有想過這樣設,不過狀態列表會變得很可觀...(汗)
04/03 23:41, 1F

04/03 23:41, , 2F
因為還有設定"架勢"這種東西..... orz
04/03 23:41, 2F
文章代碼(AID): #19rY5UlM (RPGMaker)
文章代碼(AID): #19rY5UlM (RPGMaker)