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

Project1

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

[有事请教] 一件装备降低技能百分比消耗蓝量

[复制链接]

Lv5.捕梦者

梦石
24
星屑
7052
在线时间
247 小时
注册时间
2020-12-4
帖子
306

极短24获奖极短23获奖极短22获奖

1
发表于 2023-5-29 10:38:49 | 显示全部楼层
本帖最后由 纯属小虫 于 2023-5-29 10:40 编辑

楼上的哥们说的基本对了,不过要考虑显示、以及使用条件,总共有三处要改:
1:技能消耗的显示
2:技能使用SP需求
3:技能使用后SP消耗


1.Window_Skill 类 draw_item(index) 定义里

找到 : self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)

改成 :
        sp_cost = skill.sp_cost.to_s
        sp_cost *= 0.9 if self.is_a?(Actior) and self.weapon_id == ..............   或者是防具 self.armor1_id ==.......... 条件自己选吧
        self.contents.draw_text(x + 232, y, 48, 32, sp_cost, 2)


2. Game _Battler 类  skill_can_use?(skill_id) 定义里

    # SP 不足的情况下不能使用
    if $data_skills[skill_id].sp_cost > self.sp
      return false
    end
   
    这一行加一个条件,改成
   
    # SP 不足的情况下不能使用
    sp_cost = $data_skills[skill_id].sp_cost
    sp_cost *= 0.9 if self.is_a?(Actior) and self.weapon_id == ..............   或者是防具 self.armor1_id ==.......... 条件自己选吧
    if sp_cost > self.sp
      return false
    end

3. Scene_Battle 4 类  make_skill_action_result 定义里

    # 消耗 SP
    @active_battler.sp -= @skill.sp_cost

改成:
  
        # 消耗 SP
        sp_cost = @skill.sp_cost
        sp_cost *= 0.9 if @active_battler.is_a?(Actior) and @active_battler.weapon_id == ..............   或者是防具 @active_battler.armor1_id ==.......... 条件自己选吧
        @active_battler.sp -= sp_cost


应该是还有更简单的修改方法的.....不过脚本学艺不精,只能凑合着用了

哦 对了,最好不要用*0.9   而是用 a = a * 9 / 10   或者转换为int  不然小数点很难搞

回复 支持 1 反对 0

使用道具 举报

Lv5.捕梦者

梦石
24
星屑
7052
在线时间
247 小时
注册时间
2020-12-4
帖子
306

极短24获奖极短23获奖极短22获奖

2
发表于 2023-5-30 12:50:05 | 显示全部楼层
qq634488405 发表于 2023-5-30 08:50
这个三个地方都是相同的修改方式,应该可以直接修改sp_cost

有道理。。。。
之前也是想着,直接改Skill 类里的 sp_cost就好了
不过不好引入 Battler 对象
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-11 01:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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