设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

求让一部分特技同时也会消耗HP的脚本

查看数: 2530 | 评论数: 7 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-8-29 20:07

正文摘要:

本来是用公共事件做的,后来听从别人建议,认为如果加上【HP不足就不能释放】的设定比较好些,因此就搜索了一下 于是,没找到。。。 跟职业没关系,所有人释放该特技都需要消耗HP,如果HP不足就不能释放(当然SP不足 ...

回复

牛肉面 发表于 2014-8-30 15:00:24
找到game_battler 3 第14行
加上
  1. # HP 不足的情况下不能使用
  2.      if skill_id == 1 && self.hp <= 100
  3.       return false
  4.     end
复制代码
然后
scene_battle 4  342行增加
  1. # 消耗 HP
  2.     case @skill.id
  3.     when 1
  4.       @active_battler.hp -= 100
  5.     when 2  
  6.       @active_battler.hp -= 200
  7.     end
复制代码

点评

这种方法的确简单明了。不过再在这里认可一遍算不算黑幕,明明刚刚就在QQ上帮我解决了。。。  发表于 2014-8-30 15:05

评分

参与人数 2星屑 +230 收起 理由
RyanBern + 200 认可答案,牛肉面版主新技能get.
无忧谷主幻 + 30 认可答案,竟然还不如魔哆评的多.

查看全部评分

芯☆淡茹水 发表于 2014-8-30 08:18:53
本帖最后由 芯☆淡茹水 于 2014-8-30 08:25 编辑

增加一个设置,修改 2 处
  1. #消耗 HP 技能ID以及消耗量。
  2. CONSUME_HP_SKILLS = {57=>100,61=>120}
  3. class Game_Battler
  4.   #--------------------------------------------------------------------------
  5.   alias add_skill_can_use?_xdrs skill_can_use?
  6.   def skill_can_use?(skill_id)
  7.     if CONSUME_HP_SKILLS.keys.include?(skill_id)
  8.       return self.hp > CONSUME_HP_SKILLS[skill_id]
  9.     end
  10.     add_skill_can_use?_xdrs(skill_id)
  11.   end
  12. end
  13. #=============================================================================
  14. class Scene_Battle
  15.   #--------------------------------------------------------------------------
  16.   def make_skill_action_result
  17.     # 获取特技
  18.     [url=home.php?mod=space&uid=260100]@skill[/url] = $data_skills[@active_battler.current_action.skill_id]
  19.     # 如果不是强制行动
  20.     unless @active_battler.current_action.forcing
  21.       # 因为 SP 耗尽而无法使用的情况下
  22.       unless @active_battler.skill_can_use?(@skill.id)
  23.         # 清除强制行动对像的战斗者
  24.         $game_temp.forcing_battler = nil
  25.         # 移至步骤 1
  26.         @phase4_step = 1
  27.         return
  28.       end
  29.     end
  30.     # 消耗 SP
  31.     @active_battler.sp -= @skill.sp_cost
  32.     ######################################################################
  33.     if CONSUME_HP_SKILLS.keys.include?(@skill.id)
  34.       @active_battler.hp -= CONSUME_HP_SKILLS[@skill.id]
  35.     end
  36.     ######################################################################
  37.     # 刷新状态窗口
  38.     @status_window.refresh
  39.     # 在帮助窗口显示特技名
  40.     @help_window.set_text(@skill.name, 1)
  41.     # 设置动画 ID
  42.     @animation1_id = @skill.animation1_id
  43.     @animation2_id = @skill.animation2_id
  44.     # 设置公共事件 ID
  45.     @common_event_id = @skill.common_event_id
  46.     # 设置对像侧战斗者
  47.     set_target_battlers(@skill.scope)
  48.     # 应用特技效果
  49.     for target in @target_battlers
  50.       target.skill_effect(@active_battler, @skill)
  51.     end
  52.   end
  53. end
复制代码

评分

参与人数 1星屑 +200 收起 理由
RyanBern + 200 认可答案

查看全部评分

上贺茂润 发表于 2014-8-29 21:07:32
你在魔法消耗那里加入一个when的判断 用skill_id判断消耗
RyanBern 发表于 2014-8-29 20:18:00
本帖最后由 RyanBern 于 2014-8-30 13:25 编辑

还是要黑一下skill_can_use,插入Main前
  1. class Game_Battler
  2.   alias skill_can_use? rb_skill_can_use?
  3.   def skill_can_use?(skill_id)
  4.     # 1号特技在HP为100以下不能使用,注意和SP不同的是,这里必须要带等号,否则使用之后角色会死掉的。
  5.     if skill_id == 1 && self.hp <= 100
  6.       return false
  7.     end
  8.     if skill_id == 2 && self.hp <= 200
  9.       return false
  10.     end
  11.     rb_skill_can_use?(skill_id)
  12.   end
  13. end
复制代码
然后就是Scene_Battle4的def make_skill_action_result
找到#消耗SP那一行注释,平行地添加消耗HP的脚本
  1. if @skill.id == 1
  2.   @active_battler.hp -= 100
  3. end
  4. if @skill_id == 2
  5.   @active_battler.hp -= 200
  6. end
复制代码
至于LZ说的情况,默认系统已经作了考虑(比如选好技能后突然中了个沉默,这时候行动会清空)
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-2-23 12:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表