查看: 2802|回复: 10

[已经解决] 求教状态回合数显示脚本问题。。

[复制链接]
梦石
0
星屑
1182
在线时间
179 小时
注册时间
2018-11-6
回帖
26
发表于 2019-5-11 21:27:32 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 VIPArcher 于 2019-11-20 12:03 编辑

请教大佬,我用了状态回合数显示脚本后系统默认的属性提升的状态图标被更改了,求教如何修改?以下是脚本
[pre lang="ruby"]#==============================================================================
# ■状态剩余回合数显示 for RGSS3 Ver1.01-β
# □作成者 kure
#==============================================================================
#
# 状态备注:  <不显示剩余回合数>   则不会显示剩余回合数
#

#==============================================================================
# ■ RPG::State(追加定義)
#==============================================================================
class RPG::State < RPG::BaseItem
  #--------------------------------------------------------------------------
  # ☆残りターン非表示の定義(追加定義)
  #--------------------------------------------------------------------------  
  def view_turns?
    return true unless @note
    return false if @note.include?("<不显示剩余回合数>")
    return true
  end
end

#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● ステートおよび強化/弱体のアイコンを描画(再定義)
  #--------------------------------------------------------------------------
  def draw_actor_icons(actor, x, y, width = 96)
    icons = (actor.state_icons_adv + actor.buff_icons_adv)[0, width / 24]
   
    last = contents.font.size
    contents.font.size = 18
    change_color(crisis_color)
    icons.each_with_index {|n, i| draw_state_icon_turns(n, x + 24 * i, y) }
    change_color(normal_color)
    contents.font.size = last
   
  end
  #--------------------------------------------------------------------------
  # ● 残りのターンを加えたアイコンの描画(追加定義)
  #--------------------------------------------------------------------------
  def draw_state_icon_turns(data, x, y)
    draw_icon(data[0], x, y)
    draw_text(x + 12, y + 8, 12, 18, data[1],2)
  end
end

#==============================================================================
# ■ Game_BattlerBase
#==============================================================================
class Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 現在のステートをアイコンINDEX、残りターン、ステートIDで取得(追加定義)
  #--------------------------------------------------------------------------
  def state_icons_adv
    icons = states.collect {|state| [state.icon_index, @state_turns[state.id], state.id] }
    for i in 0..icons.size - 1
      if icons[0] == 0
        icons = nil
      else
        icons[1] = "" if $data_states[icons[2]].auto_removal_timing == 0
        icons[1] = "" unless $data_states[icons[2]].view_turns?
      end
    end
    icons.compact!
    return icons
  end
  #--------------------------------------------------------------------------
  # ● 現在の強化/弱体をアイコンINDEX、残りターンで取得(追加定義)
  #--------------------------------------------------------------------------
  def buff_icons_adv
    icons = []
    @buffs.each_with_index {|lv, i| [icons.push(buff_icon_index(lv, i)),@buff_turns] }
    for i in 0..icons.size - 1
      icons = nil if icons[0] == 0
    end
    icons.compact!
    return icons
  end
end[/pre]

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2019-5-13 14:42:46 | 显示全部楼层
总觉得  def buff_icons_adv  这个方法里的第二行怪怪的,
尝试改成这样看看?
  1. @buffs.each_with_index {|lv, i| icons.push([buff_icon_index(lv, i),@buff_turns[i]]) }
复制代码
回复 1 0

使用道具 举报

梦石
0
星屑
1182
在线时间
179 小时
注册时间
2018-11-6
回帖
26
 楼主| 发表于 2019-5-13 21:30:43 | 显示全部楼层
感谢大佬!现在图标解决了,只是显示的数字后面多了个‘.0’,能否再修改只显示个位数?
4.png
回复

使用道具 举报

梦石
0
星屑
1182
在线时间
179 小时
注册时间
2018-11-6
回帖
26
 楼主| 发表于 2019-5-13 21:31:28 | 显示全部楼层
cinderelmini 发表于 2019-5-13 14:42
总觉得  def buff_icons_adv  这个方法里的第二行怪怪的,
尝试改成这样看看?
...

感谢大佬!
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2019-5-13 21:38:30 | 显示全部楼层
leontonydz 发表于 2019-5-13 21:30
感谢大佬!现在图标解决了,只是显示的数字后面多了个‘.0’,能否再修改只显示个位数?
...

在 def draw_state_icon_turns(data, x, y) 方法里,
在data[1]后面加上.to_i应该可以:
draw_text(x + 12, y + 8, 12, 18, data[1].to_i, 2)
回复

使用道具 举报

梦石
0
星屑
1182
在线时间
179 小时
注册时间
2018-11-6
回帖
26
 楼主| 发表于 2019-5-13 22:22:53 | 显示全部楼层
cinderelmini 发表于 2019-5-13 21:38
在 def draw_state_icon_turns(data, x, y) 方法里,
在data[1]后面加上.to_i应该可以:
draw_text(x + 1 ...

再次感谢大佬!
但是常驻buff上多了数字感觉不美观,能删除吗?
4.png
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2019-5-14 13:43:10 | 显示全部楼层
leontonydz 发表于 2019-5-13 22:22
再次感谢大佬!
但是常驻buff上多了数字感觉不美观,能删除吗?

好像装状态图标数据的那个数组后面还有带了个状态ID,那么利用一下的话……
可以获取到这个ID的状态实例,于是可以获取到这个状态是不是自动解除的状态,
不是的话就不显示剩余回合数……
于是(想是这样想的,没实践测试,可能有问题):
  1.   #--------------------------------------------------------------------------
  2.   # ● 残りのターンを加えたアイコンの描画(追加定義)
  3.   #--------------------------------------------------------------------------
  4.   def draw_state_icon_turns(data, x, y)
  5.     draw_icon(data[0], x, y)
  6.     if data[2] and $data_states[data[2]] and $data_states[data[2]].auto_removal_timing == 0
  7.       return
  8.     end
  9.     draw_text(x + 12, y + 8, 12, 18, data[1],2)
  10.   end
复制代码

评分

参与人数 1星屑 +50 收起 理由
VIPArcher + 50 认可答案

查看全部评分

回复 1 0

使用道具 举报

梦石
1
星屑
22083
在线时间
4885 小时
注册时间
2014-12-22
回帖
1509

开拓者

发表于 2019-5-14 13:54:31 | 显示全部楼层
leontonydz 发表于 2019-5-13 22:22
再次感谢大佬!
但是常驻buff上多了数字感觉不美观,能删除吗?

在不需要的状态备注这个就可以了吧?

# 状态备注:  <不显示剩余回合数>   则不会显示剩余回合数
回复

使用道具 举报

梦石
0
星屑
1182
在线时间
179 小时
注册时间
2018-11-6
回帖
26
 楼主| 发表于 2019-5-14 14:45:11 | 显示全部楼层
cinderelmini 发表于 2019-5-14 13:43
好像装状态图标数据的那个数组后面还有带了个状态ID,那么利用一下的话……
可以获取到这个ID的状态实例 ...

感谢大佬!!!实践确实可行!不过要把.to_i加上
回复

使用道具 举报

梦石
0
星屑
1182
在线时间
179 小时
注册时间
2018-11-6
回帖
26
 楼主| 发表于 2019-5-14 14:46:07 | 显示全部楼层
shencao 发表于 2019-5-14 13:54
在不需要的状态备注这个就可以了吧?

# 状态备注:     则不会显示剩余回合数

大佬我试过这个备注了没用,不过上面那位给出解决方法,感谢!

点评

嗯嗯,解决了就好~  发表于 2019-5-14 15:18
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部