查看: 2651|回复: 2

[已经解决] 如何制作双刃类技能?

[复制链接]
梦石
0
星屑
1507
在线时间
199 小时
注册时间
2016-8-9
回帖
48
发表于 2017-5-29 13:18:09 | 显示全部楼层 |阅读模式

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

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

×
例如像“攻击后使用者hp扣除本次伤害的X%”或者“技能发动时使用者损失X%的hp后再处理技能效果”这样的0.0

点评

【警告】版规A-8 弃帖/提问后不管  发表于 2017-6-25 19:36
正在做的游戏,缓慢填坑中……
梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2017-5-29 16:04:36 | 显示全部楼层
在技能备注里写<双刃技能 数字>
比如<双刃技能 2> 那么就是除以2

想要扣除此次伤害百分比的hp的话
[pre lang="ruby"]class Game_Battler < Game_BattlerBase
  def make_damage_value(user, item)
    value = item.damage.eval(user, self, $game_variables)
    value *= item_element_rate(user, item)
    value *= pdr if item.physical?
    value *= mdr if item.magical?
    value *= rec if item.damage.recover?
    value = apply_critical(value) if @result.critical
    value = apply_variance(value, item.damage.variance)
    value = apply_guard(value)
    @result.make_damage(value.to_i, item)
    if item.note =~ /<双刃技能\s*(\d+)>/
      user.hp -= (value/$1.to_f).to_i
    end
  end
end[/pre]

想要扣除最大hp的百分比的话
[pre lang="ruby"]class Game_Battler < Game_BattlerBase
  def item_apply(user, item)
    if item.note =~ /<双刃技能\s*(\d+)>/
      user.hp -= (user.mhp/$1.to_f).to_i
    end
    @result.clear
    @result.used = item_test(user, item)
    @result.missed = (@result.used && rand >= item_hit(user, item))
    @result.evaded = (!@result.missed && rand < item_eva(user, item))
    if @result.hit?
      unless item.damage.none?
        @result.critical = (rand < item_cri(user, item))
        make_damage_value(user, item)
        execute_damage(user)
      end
      item.effects.each {|effect| item_effect_apply(user, item, effect) }
      item_user_effect(user, item)
    end
  end
end[/pre]

评分

参与人数 1梦石 +1 收起 理由
RaidenInfinity + 1 版主认可的答案

查看全部评分

笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部