赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 5 |
经验 | 920 |
最后登录 | 2024-2-8 |
在线时间 | 50 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 511
- 在线时间
- 50 小时
- 注册时间
- 2009-7-1
- 帖子
- 87
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 daiboy12 于 2010-8-24 22:11 编辑
首先在Game_Battler中定义如下- class Game_Battler
- def skill_cost_hp?(skill_id)
- if skill_id == 1 or
- skill_id == 2
- return true
- end
- end
- end
复制代码 也就是说1号技能和2号技能视为消耗HP的技能。
接下来在下面一点的地方改一下def skill_can_use?(skill_id)这块- if skill_cost_hp?(skill_id)
- if $data_skills[skill_id].sp_cost > self.hp - 1
- return false
- end
- else
- if $data_skills[skill_id].sp_cost > self.sp
- return false
- end
- end
复制代码 消耗HP的技能如果HP不足消耗量的话就视为不能使用。这样在下面可以少改很多窗口的地方。
-1是为了防止玩家使用技能造成死亡。
然后在Scene_Skill中
有个使用特技的情况下
大概在124行有这个- if @actor.skill_cost_hp?(@skill.id)
- @actor.hp -= @skill.sp_cost
- else
- @actor.sp -= @skill.sp_cost
- end
复制代码 把消耗SP改为消耗HP
接下来在战斗中还要再修改一次消耗HP。我用的是RTAB战斗脚本,所以就只能在这个脚本上改了。
大概在1789行中的- battler.sp -= @skill.sp_cost
复制代码 修改成- if battler.skill_cost_hp?(@skill.id)
- battler.hp -= @skill.sp_cost
- else
- battler.sp -= @skill.sp_cost
- end
复制代码 之后就大功告成啦!
请高手帮我看看有没有问题吧!至少我现在测试起来是OK了。
还有一个问题,就是在Game_Battler中的定义我好像做的太复杂了。如果有很多个技能就要打很多个 skill_id == XX 有什么办法可以简化吗?看很多其他人写的脚本中间都是隔着一个逗号就能行的。 |
|