查看: 2680|回复: 2

[已经过期] rmxp脚本中怎样描述角色每次sp的消耗值?

[复制链接]
梦石
0
星屑
75
在线时间
73 小时
注册时间
2015-7-10
回帖
26
发表于 2015-10-30 21:46:26 来自手机 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
我想做一个被动技能

   学习了该技能的角色根据每次減少的sp的值来恢复hp.
   假设 a =  本次減少的sp值
            b =  本次減少的sp值为maxsp的百分比
    角色恢复的hp = b × mxahp

想要做的效果如此,现在苦于不知道怎么描述
每次角色減少的sp值……

   请求论坛大神给个助攻
            
梦石
0
星屑
75
在线时间
73 小时
注册时间
2015-7-10
回帖
26
 楼主| 发表于 2015-10-30 21:49:21 来自手机 | 显示全部楼层
抱歉,刚才网络太卡了,还以为上个帖子没发成功
回复

使用道具 举报

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2015-10-30 22:25:21 | 显示全部楼层
本帖最后由 RyanBern 于 2015-10-30 23:50 编辑

在Scene_Battle4中有如下定义
[pre lang="Ruby"]  def make_skill_action_result
    # 获取特技
    @skill = $data_skills[@active_battler.current_action.skill_id]
    # 如果不是强制行动
    unless @active_battler.current_action.forcing
      # 因为 SP 耗尽而无法使用的情况下
      unless @active_battler.skill_can_use?(@skill.id)
        # 清除强制行动对像的战斗者
        $game_temp.forcing_battler = nil
        # 移至步骤 1
        @phase4_step = 1
        return
      end
    end
    # 消耗 SP
    @active_battler.sp -= @skill.sp_cost
    # 刷新状态窗口
    @status_window.refresh
    # 在帮助窗口显示特技名
    @help_window.set_text(@skill.name, 1)
    # 设置动画 ID
    @animation1_id = @skill.animation1_id
    @animation2_id = @skill.animation2_id
    # 设置公共事件 ID
    @common_event_id = @skill.common_event_id
    # 设置对像侧战斗者
    set_target_battlers(@skill.scope)
    # 应用特技效果
    for target in @target_battlers
      target.skill_effect(@active_battler, @skill)
    end
  end[/pre]
这里有个消耗 SP。可以在这里做修改。
一种可行的办法(仅供参考,未测试)
[pre lang="Ruby"]if @active_battler.is_a?(Game_Actor) && @active_battler.skill_learn?(变SP消耗为HP的技能ID)
  @active_battler.damage = -Integer(1.0 * @skill.sp_cost * @active_battler.maxhp / @active_battler.maxsp)
  @active_battler.hp -= @active_battler.damage
  @active_battler.damage_pop = true
end[/pre]   

点评

我这里测试有效。可能是你使用的别的脚本导致原始Scene_Battle被覆盖。可以试着搜索make_skill_action_result 然后在最后一处脚本里添加  发表于 2015-10-30 23:51
加上去也不行哇,看起来系统对着段代码根本就没有什么反应  发表于 2015-10-30 23:40
具体效果在代码中已经完善,当前技能消耗的SP数就是该角色SP的变化数,请参考上面的代码修改。  发表于 2015-10-30 23:37
少了一句@active_battler.hp -= @active_battler.damage,需要加上才能真正回复HP  发表于 2015-10-30 23:34
有没有办法描述一下,角色SP值的前后变化的差量?  发表于 2015-10-30 23:32
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部