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

Project1

 找回密码
 注册会员
搜索
查看: 1511|回复: 11
打印 上一主题 下一主题

[已经解决] 药品治疗量百分比增加回复量

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2914
在线时间
387 小时
注册时间
2010-12-4
帖子
141
1
发表于 2023-2-10 13:56:35 | 显示全部楼层
本帖最后由 letppigogo 于 2023-2-11 17:11 编辑

可以在Game_Battler 3的第142行也就是 self.damage = power * rate / 20 和 # 属性修正  中间插入以下内容
     
      if @armor4_id == (饰品数据库号) and skill.power < 0
        self.damage = power * rate / 20 * 1.3
        #伤害为整数
        self.damage = Integer(self.damage)
      end

这是比较笨的写法,高明的我也不会,不过应该可以满足你的要求

@armor4_id 就是饰品,@armor3_id 是身体防具,以此类推,武器是@weapon_id。
and skill.power < 0 是在装备某饰品的情况下追加判断技能威力是否为负数,负数技能威力在特技里就是治疗技能。
self.damage = power * rate / 20 * 1.3 中的*1.3就是你要的增加30%以此类推。
self.damage = Integer(self.damage)是为了避免最终效果出现小数点。
如果还有其他饰品,可以在end下面在重新复制一组。


评分

参与人数 1星屑 +20 +1 收起 理由
guoxiaomi + 20 + 1 感谢参与讨论~

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2914
在线时间
387 小时
注册时间
2010-12-4
帖子
141
2
发表于 2023-2-11 12:40:13 | 显示全部楼层
本帖最后由 letppigogo 于 2023-2-11 17:36 编辑

你好,四楼的回复是错误的,232行一下是对伤害物品造成伤害的描述,里面包含了目标的物理和魔法防御修正,这么写最终的效果是有误差的。

正确的应该是 在232行插入

      if @armor4_id == (25)
        recover_hp = maxhp * item.recover_hp_rate / 100 * 函数 + item.recover_hp + 函数
      end   

范例如下:
    # 命中的情况
    if hit_result == true
      # 计算回复量
      recover_hp = maxhp * item.recover_hp_rate / 100 + item.recover_hp
      recover_sp = maxsp * item.recover_sp_rate / 100 + item.recover_sp
      # 饰品增加恢复效果 PS:装备25号饰品,所有治疗物品增加30点治疗量
      if @armor4_id == (25)
        recover_hp = maxhp * item.recover_hp_rate / 100  + item.recover_hp + 30
      end      

      if recover_hp < 0
        recover_hp += self.pdef * item.pdef_f / 20
        recover_hp += self.mdef * item.mdef_f / 20
        recover_hp = [recover_hp, 0].min
      end

如果是增加百分比,例如增加30%的治疗量可以在这样
    # 命中的情况
    if hit_result == true
      # 计算回复量
      recover_hp = maxhp * item.recover_hp_rate / 100 + item.recover_hp
      recover_sp = maxsp * item.recover_sp_rate / 100 + item.recover_sp
      # 饰品增加恢复效果 PS:装备25号饰品,所有治疗物品增加30%治疗量
      if @armor4_id == (25)
        recover_hp = maxhp * item.recover_hp_rate / 100 * 1.3 + item.recover_hp
      end
     
      if recover_hp < 0
        recover_hp += self.pdef * item.pdef_f / 20
        recover_hp += self.mdef * item.mdef_f / 20
        recover_hp = [recover_hp, 0].min
      end

这样就可以了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2914
在线时间
387 小时
注册时间
2010-12-4
帖子
141
3
发表于 2023-2-11 17:38:30 | 显示全部楼层
letppigogo 发表于 2023-2-11 12:40
你好,四楼的回复是错误的,232行一下是对伤害物品造成伤害的描述,里面包含了目标的物理和魔法防御修正, ...

晚上回家对4楼的方案进行了实测,确实可以行。不过我的方案也是没有问题的。
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-5-16 15:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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