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

Project1

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

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

跳转到指定楼层
1
发表于 2014-1-1 12:03:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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

RUBY 代码复制
  1. $states_icon = {}
  2. $data_states = load_data("Data/States.rxdata")
  3. (0...$data_states.size).each{|i|$states_icon[i]=0}
  4. #下面设置每个状态的图标
  5. $states_icon[10]="050-State07"
  6. #上面设置每个状态的图标
  7. =begin
  8.  Date 01-01-2014
  9.  重定义类:Window_Base, Window_Help
  10.  
  11.  脚本功能:
  12.  实现战斗中和菜单中用图标显示状态,代替原来的文字显示。
  13.  默认最多同时显示5个状态
  14.  
  15.  设置方法:
  16.  一个状态对应的图标文件名为“状态的动画ID.png”
  17.  例如某状态的动画ID为50,那么它的图标就是“Icons\50.png”
  18.  如果找不到对应的文件,会报错 ◎_◎
  19. =end
  20. #==============================================================================
  21. # ■ Window_Base
  22. #------------------------------------------------------------------------------
  23. #  游戏中全部窗口的超级类。
  24. #==============================================================================
  25.  
  26. class Window_Base < Window
  27. #--------------------------------------------------------------------------
  28. # ● 描绘状态
  29. #     actor : 角色
  30. #     x     : 描画目标 X 坐标
  31. #     y     : 描画目标 Y 坐标
  32. #     width : 描画目标的宽
  33. #--------------------------------------------------------------------------
  34. def draw_actor_state(actor, x, y, width = 160)
  35.   state_size = 0
  36.   for state in actor.states
  37.     # 图标数量超出宽度就中断循环
  38.     if state_size >= width / 40
  39.       break
  40.     end
  41.     # 此状态不带图标就跳过
  42.     if $states_icon[state]==""
  43.       next
  44.     end
  45.     bitmap = RPG::Cache.icon($states_icon[state] + ".png")
  46.     if actor.states_turn[state] >= $data_states[state].hold_turn/2
  47.       opacity = 255
  48.     else
  49.       opacity = 100
  50.     end
  51.     txt = actor.states_turn[state].to_s
  52.     # 这里的图标大小默认是24x24,要改就改下面那个Rect.new(0, 0, 24, 24)
  53.     ax = x + 2 * state_size * 20
  54.     self.contents.blt(ax, y + 4, bitmap, Rect.new(0, 0, 32, 32), opacity)
  55.     self.contents.font.color = text_color(6)
  56.     self.contents.draw_text(ax + 24, y, 24, 32, txt)
  57.     state_size += 1
  58.   end
  59. end
  60. end
  61.  
  62.  
  63. #==============================================================================
  64. # ■ Window_Help
  65. #------------------------------------------------------------------------------
  66. #  特技及物品的说明、角色的状态显示的窗口。
  67. #==============================================================================
  68.  
  69. class Window_Help < Window_Base
  70. #--------------------------------------------------------------------------
  71. # ● 设置敌人
  72. #     enemy : 要显示名字和状态的敌人
  73. #--------------------------------------------------------------------------
  74. def set_enemy(enemy)
  75.   self.contents.clear
  76.   # 描绘状态图标
  77.   state_size = 0
  78.   for state in enemy.states
  79.     # 图标数量超出宽度就中断循环
  80.     if state_size >= width / 40
  81.       break
  82.     end
  83.     # 此状态不带图标就跳过
  84.     if $states_icon[state]==""
  85.       next
  86.     end
  87.     bitmap = RPG::Cache.icon($states_icon[state]+".png")
  88.     if enemy.states_turn[state] >= $data_states[state].hold_turn/2
  89.       opacity = 255
  90.     else
  91.       opacity = 100
  92.     end
  93.     txt = enemy.states_turn[state].to_s
  94.     ax = 70 + 40 * state_size
  95.     self.contents.blt(ax, 4, bitmap, Rect.new(0, 0, 32, 32), opacity)
  96.     self.contents.font.color = text_color(6)
  97.     self.contents.draw_text(ax + 24, 0, 24, 32, txt)
  98.     state_size += 1
  99.   end
  100.   # 描绘敌人名字
  101.   set_text(enemy.name, 1)
  102. end
  103. end
  104.  
  105. class Game_Battler
  106. attr_reader :states_turn       # 声明状态剩余回合
  107. end
  108. #==============================================================================

点评

从楼下的评论可见,bug多  发表于 2014-1-1 17:36
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

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


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

使用道具 举报

Lv2.观梦者

梦石
0
星屑
458
在线时间
182 小时
注册时间
2009-7-12
帖子
155
3
发表于 2014-1-1 14:57:02 | 只看该作者
那个0是什么

点评

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

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

5
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42397
在线时间
7602 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

6
发表于 2014-1-6 13:03:50 | 只看该作者
这重新载一次数据库是闹哪样!
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

7
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 11:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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