Re: [問題] 請教RMXP的技能與狀態的條件設定
看板RPGMaker (RPG製作大師 - RPG Maker)作者ritud (小風)時間15年前 (2009/04/03 22:46)推噓1(1推 0噓 1→)留言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
04/03 23:41, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 3 篇):
RPGMaker 近期熱門文章
PTT遊戲區 即時熱門文章