查看: 3011|回复: 6

[RMXP发布] 元旦节福利——状态显示强化版

[复制链接]
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2014-1-1 12:03:51 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 chd114 于 2014-1-1 12:07 编辑

[pre lang="ruby" line="1"]$states_icon = {}
$data_states = load_data("Data/States.rxdata")
(0...$data_states.size).each{|i|$states_icon=0}
#下面设置每个状态的图标
$states_icon[10]="050-State07"
#上面设置每个状态的图标
=begin
Date 01-01-2014
重定义类:Window_Base, Window_Help

脚本功能:
实现战斗中和菜单中用图标显示状态,代替原来的文字显示。
默认最多同时显示5个状态

设置方法:
一个状态对应的图标文件名为“状态的动画ID.png”
例如某状态的动画ID为50,那么它的图标就是“Icons\50.png”
如果找不到对应的文件,会报错 ◎_◎
=end
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  游戏中全部窗口的超级类。
#==============================================================================

class Window_Base < Window
#--------------------------------------------------------------------------
# ● 描绘状态
#     actor : 角色
#     x     : 描画目标 X 坐标
#     y     : 描画目标 Y 坐标
#     width : 描画目标的宽
#--------------------------------------------------------------------------
def draw_actor_state(actor, x, y, width = 160)
  state_size = 0
  for state in actor.states
    # 图标数量超出宽度就中断循环
    if state_size >= width / 40
      break
    end
    # 此状态不带图标就跳过
    if $states_icon[state]==""
      next
    end
    bitmap = RPG::Cache.icon($states_icon[state] + ".png")
    if actor.states_turn[state] >= $data_states[state].hold_turn/2
      opacity = 255
    else
      opacity = 100
    end
    txt = actor.states_turn[state].to_s
    # 这里的图标大小默认是24x24,要改就改下面那个Rect.new(0, 0, 24, 24)
    ax = x + 2 * state_size * 20
    self.contents.blt(ax, y + 4, bitmap, Rect.new(0, 0, 32, 32), opacity)
    self.contents.font.color = text_color(6)
    self.contents.draw_text(ax + 24, y, 24, 32, txt)
    state_size += 1
  end
end
end


#==============================================================================
# ■ Window_Help
#------------------------------------------------------------------------------
#  特技及物品的说明、角色的状态显示的窗口。
#==============================================================================

class Window_Help < Window_Base
#--------------------------------------------------------------------------
# ● 设置敌人
#     enemy : 要显示名字和状态的敌人
#--------------------------------------------------------------------------
def set_enemy(enemy)
  self.contents.clear
  # 描绘状态图标
  state_size = 0
  for state in enemy.states
    # 图标数量超出宽度就中断循环
    if state_size >= width / 40
      break
    end
    # 此状态不带图标就跳过
    if $states_icon[state]==""
      next
    end
    bitmap = RPG::Cache.icon($states_icon[state]+".png")
    if enemy.states_turn[state] >= $data_states[state].hold_turn/2
      opacity = 255
    else
      opacity = 100
    end
    txt = enemy.states_turn[state].to_s
    ax = 70 + 40 * state_size
    self.contents.blt(ax, 4, bitmap, Rect.new(0, 0, 32, 32), opacity)
    self.contents.font.color = text_color(6)
    self.contents.draw_text(ax + 24, 0, 24, 32, txt)
    state_size += 1
  end
  # 描绘敌人名字
  set_text(enemy.name, 1)
end
end

class Game_Battler
attr_reader :states_turn       # 声明状态剩余回合
end
#==============================================================================[/pre]

点评

从楼下的评论可见,bug多  发表于 2014-1-1 17:36
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

 楼主| 发表于 2014-1-1 12:06:51 | 显示全部楼层
强化版说明:
1、状态图标的设定变得与物品图标设定一样自由
2、没有设定图标名称(空白)的状态默认不显示
效果图:

1.png
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
473
在线时间
183 小时
注册时间
2009-7-12
回帖
125
发表于 2014-1-1 14:57:02 | 显示全部楼层
那个0是什么

点评

还有呢···  发表于 2014-1-1 17:09
应该是剩余回合数吧……那么永久状态显示多少?……算了我自己试试看  发表于 2014-1-1 15:01
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2014-1-1 15:03:05 | 显示全部楼层
szzyc0 发表于 2014-1-1 14:57
那个0是什么

永久显示0

点评

还有装备附加的状态显示-1。另外敌人的名字不显示了,好好捉虫。  发表于 2014-1-1 15:13
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2014-1-1 15:43:27 | 显示全部楼层
szzyc0 发表于 2014-1-1 14:57
那个0是什么

恩,还有啥bug?

点评

都说了敌人的名字不显示  发表于 2014-1-1 16:25
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45692
在线时间
7947 小时
注册时间
2009-7-6
回帖
13335

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2014-1-6 13:03:50 | 显示全部楼层
这重新载一次数据库是闹哪样!
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2014-1-6 14:41:16 | 显示全部楼层
fux2 发表于 2014-1-6 13:03
这重新载一次数据库是闹哪样!

方便而已······
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部