查看: 3934|回复: 9

[已经过期] 请问关于持续伤害的问题

[复制链接]
梦石
0
星屑
453
在线时间
33 小时
注册时间
2017-10-4
回帖
24
发表于 2017-12-10 19:53:01 | 显示全部楼层 |阅读模式

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

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

×
关于持续伤害的问题,在论坛里找到了一个脚本
  1.   #--------------------------------------------------------------------------
  2.   # ● HP 自动恢复
  3.   #--------------------------------------------------------------------------
  4.   def regenerate_hp
  5.     damage = -(mhp * hrg).to_i
  6.     damage -= ($game_actors[X].atk * Y).to_i if state?(Z)
  7.     perform_map_damage_effect if $game_party.in_battle && damage > 0
  8.     @result.hp_damage = [damage, max_slip_damage].min
  9.     self.hp -= @result.hp_damage
  10.   end
复制代码


根据说明是X号人物施加的Z状态,每回合造成X人物攻击Y倍的伤害?
但实际放进游戏发现没用……并不会造成伤害,请问是哪里出问题了呢?
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2017-12-10 23:13:20 | 显示全部楼层
因为x号角色并没有受到z状态的效果
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
453
在线时间
33 小时
注册时间
2017-10-4
回帖
24
 楼主| 发表于 2017-12-10 23:54:43 | 显示全部楼层
chd114 发表于 2017-12-10 23:13
因为x号角色并没有受到z状态的效果

难道是说Z状态只有作用于X号角色才有效果吗?也就是说不能实现我给怪套个DEBUFF,它减血根据X号角色某项属性而定这样的效果?
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2017-12-11 13:00:29 | 显示全部楼层
melatin 发表于 2017-12-10 23:54
难道是说Z状态只有作用于X号角色才有效果吗?也就是说不能实现我给怪套个DEBUFF,它减血根据X号角色某项 ...

不,这里的意思是只要有单位受到z号状态的效果,就能按x号角色的攻击乘以y提升恢复的hp(damage为负数的情况下是恢复效果)
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
453
在线时间
33 小时
注册时间
2017-10-4
回帖
24
 楼主| 发表于 2017-12-11 15:08:31 | 显示全部楼层
chd114 发表于 2017-12-11 13:00
不,这里的意思是只要有单位受到z号状态的效果,就能按x号角色的攻击乘以y提升恢复的hp(damage为负数的 ...

QQ截图20171211150123.png QQ截图20171211150517.png QQ截图20171211150149.png QQ截图20171211150058.png QQ截图20171211150345.png QQ截图20171211150203.png

确实这样设置了,但是不会造成伤害……请问是什么地方设置出了问题吗?

点评

state?(56),正确是 if self.state?(56) self(目标)光光state?(X)没用没有目标  发表于 2017-12-15 18:35
回复

使用道具 举报

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2017-12-11 16:03:15 | 显示全部楼层
本帖最后由 jianyulei 于 2017-12-11 16:07 编辑

点击展开/收起[pre lang="ruby"]
class Game_Battler < Game_BattlerBase
  def regenerate_hp
    damage = -(mhp * hrg).to_i

self.feature_objects.each do |object|  
  if object.note.include?("<持续伤害")
     object.note.match(/<持续伤害[:: ](\S*)[,, ](\S*)>/)
     damage += (eval($1) * self.element_rate(eval($2))).to_i
  end
end#object循环

    perform_map_damage_effect if $game_party.in_battle && damage > 0
    @result.hp_damage = [damage, max_slip_damage].min
    self.hp -= @result.hp_damage
  end
end#class  
[/pre]



在有特性栏的地方备注 <持续伤害 self.hp*0.08 3>  意思是回合结束时造成对象现有HP8%的伤害,伤害属于数据库的3号属性(计算属性伤害减免),次脚本不能用于判断状态的释放者,只能判断中状态的对象,如果是特定角色附加的可以用$game_actors[1]来代替。你也可以不用计算式直接用数字造成固定伤害。持续伤害和计算式之间可以用冒号代替空格,而属性和计算式之间可以用逗号代替空格。
回复

使用道具 举报

梦石
0
星屑
453
在线时间
33 小时
注册时间
2017-10-4
回帖
24
 楼主| 发表于 2017-12-11 19:11:10 | 显示全部楼层
jianyulei 发表于 2017-12-11 16:03
[fold]
class Game_Battler < Game_BattlerBase
  def regenerate_hp

好的谢谢啦,虽然还是挺想要做根据释放者自身属性决定伤害的哈哈…………

点评

damge += 5 if self.state?(1)如果目标存在1号状态,回合伤害+5 没有self.无效  发表于 2017-12-15 18:37
不是你无效而是你写错了,你可以加我QQ1286124843,我可以详细 教你怎么写,这一块我还是会写的  发表于 2017-12-15 18:36
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部