作者ritud (小风)
看板RPGMaker
标题Re: [问题] 请教RMXP的技能与状态的条件设定
时间Fri Apr 3 22:46:53 2009
问题一我也不知道,但二应该可用状态锁技能,转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
1F:推 behemoth:是有想过这样设,不过状态列表会变得很可观...(汗) 04/03 23:41
2F:→ behemoth:因为还有设定"架势"这种东西..... orz 04/03 23:41