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

Project1

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

[已经解决] 【求助】如何在某些特定状态后增加图标显示?

[复制链接]

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

跳转到指定楼层
1
发表于 2013-8-10 12:23:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 美丽晨露 于 2013-8-10 12:40 编辑

在状态Window_Status内
比如:显示1、2、3、4、5号状态时
在状态名称之后显示一个或者多个图标。
当然,每种状态后面显示的图标是不同的。
请问怎么做?
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2013-7-11
帖子
15
2
发表于 2013-8-10 12:32:29 | 只看该作者
貌似不用在Window_Status中吧。。。。下面那个脚本是从一个游戏中找的。。你试试看,不冲突就行了
  1. # 脚本功能:
  2. # 实现战斗中和菜单中用图标显示状态,代替原来的文字显示。
  3. # 默认最多同时显示5个状态
  4. #------------------------------------------------------------------------------
  5. # 设置方法:
  6. # 一个状态对应的图标文件名为“状态的动画ID.png”
  7. # 例如某状态的动画ID为50,那么它的图标就是“Icons\50.png”
  8. # 如果找不到对应的文件,会报错 ◎_◎
  9. #==============================================================================

  10. # 注意,在ICON_STATE_IDS中写上需要带图标的状态ID
  11. # ICON_STATE_IDS是一个数组,数组的方法请参考帮助文件
  12. # 例如:
  13. # 只要1,5,8号状态带图标,就这样:ICON_STATE_IDS = [1,5,8]
  14. # 要20到50号状态带图标:ICON_STATE_IDS = 20..50

  15. ICON_STATE_IDS = [1,2,3,4,5,6,7,8,9,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,52,55,59]
  16. # 注意,在ICON_STATE_IDS中写上需要带图标的状态ID!!!

  17. #==============================================================================
  18. # ■ Window_Base
  19. #------------------------------------------------------------------------------
  20. #  游戏中全部窗口的超级类。
  21. #==============================================================================

  22. class Window_Base < Window
  23. #--------------------------------------------------------------------------
  24. # ● 描绘状态
  25. #     actor : 角色
  26. #     x     : 描画目标 X 坐标
  27. #     y     : 描画目标 Y 坐标
  28. #     width : 描画目标的宽
  29. #--------------------------------------------------------------------------
  30. def draw_actor_state(actor, x, y, width = 96)
  31.   state_size = 0
  32.   size = 0
  33.   for i in actor.states
  34.         size += 1 if i >= 16
  35.   end
  36.   for state in actor.states
  37.     # 图标数量超出宽度就中断循环
  38.     if state_size >= 1
  39.       break
  40.     end
  41.     # 此状态不带图标就跳过
  42.     if !ICON_STATE_IDS.include?(state)
  43.       next
  44.     end
  45.     bitmap = RPG::Cache.icon($data_states[state].name + "_sta")
  46.     opacity = 255
  47.     # 这里的图标大小默认是24x24,要改就改下面那个Rect.new(0, 0, 24, 24)
  48.     if state_size < 1 or (size >= 1 && state >= 16)
  49.     self.contents.blt(x + 92, y + 36, bitmap, Rect.new(0, 0, 20, 20), opacity)
  50.     state_size += 1
  51.     end
  52.   end
  53. end
  54. def draw_actor_state2(actor, x, y, width = 96)
  55.   state_size = 0
  56.   for state in actor.states
  57.     # 图标数量超出宽度就中断循环
  58.     if state_size >= 6
  59.       break
  60.     end
  61.     # 此状态不带图标就跳过
  62.     if !ICON_STATE_IDS.include?(state)
  63.       next
  64.     end
  65.     bitmap = RPG::Cache.icon($data_states[state].name + "_sta")
  66.     opacity = 255
  67.     # 这里的图标大小默认是24x24,要改就改下面那个Rect.new(0, 0, 24, 24)
  68.     if state_size < 6
  69.     self.contents.blt(x + 20 * state_size, y + 9, bitmap, Rect.new(0, 0, 20, 20), opacity)
  70.     state_size += 1
  71.     end
  72.   end
  73. end
  74. end
  75. class Window_Help < Window_Base
  76. #--------------------------------------------------------------------------
  77. # ● 设置敌人
  78. #     enemy : 要显示名字和状态的敌人
  79. #--------------------------------------------------------------------------
  80. def set_enemy(enemy)
  81.   # 描绘状态图标
  82.   self.contents.clear
  83.   state_size = 0
  84.   for state in enemy.states
  85.     # 图标数量超出宽度就中断循环
  86.     if state_size >= 6
  87.       break
  88.     end
  89.     # 此状态不带图标就跳过
  90.     if !ICON_STATE_IDS.include?(state)
  91.       next
  92.     end
  93.     bitmap = RPG::Cache.icon($data_states[state].name + "_sta")
  94.     if enemy.states_turn[state] >= $data_states[state].hold_turn/2
  95.       opacity = 255
  96.     else
  97.       opacity = 100
  98.     end
  99.     self.contents.blt(160 + 20 * state_size, 6, bitmap, Rect.new(0, 0, 24, 24), opacity)
  100.     state_size += 1
  101.   end
  102.   # 描绘敌人名字
  103.     self.contents.draw_text(10, 0, 200, 32, enemy.name)
  104.     carol3_draw_hp_bar(enemy, 290, 0)
  105.     carol3_draw_sp_bar(enemy, 440, 0)
  106.     @text = nil
  107.     self.visible = true
  108. end
  109.   
  110.   def carol3_draw_hp_bar(actor, x, y, width = 128) #宽度可调
  111.     self.contents.font.color = system_color
  112.     self.contents.fill_rect(x-1, y+17, width+2,6, Color.new(0, 0, 0, 255))
  113.     w = width * actor.hp / [actor.maxhp,1].max
  114.     self.contents.fill_rect(x, y+18, w,1, Color.new(255, 96, 96, 255))
  115.     self.contents.fill_rect(x, y+19, w,1, Color.new(255, 0, 0, 255))
  116.     self.contents.fill_rect(x, y+20, w,1, Color.new(128, 0, 0, 255))
  117.     self.contents.fill_rect(x, y+21, w,1, Color.new(0, 0, 0, 255))
  118.     self.contents.draw_text(x,y,128,32,$data_system.words.hp,1)
  119.     self.contents.font.color = normal_color
  120.   end
  121.   def carol3_draw_sp_bar(actor, x, y, width = 128)
  122.     self.contents.font.color = system_color
  123.     self.contents.fill_rect(x-1, y+17, width+2,6, Color.new(0, 0, 0, 255))
  124.     w = width * actor.sp / [actor.maxsp,1].max
  125.     self.contents.fill_rect(x, y+18, w,1, Color.new(128, 255, 255, 255))
  126.     self.contents.fill_rect(x, y+19, w,1, Color.new(0, 255, 255, 255))
  127.     self.contents.fill_rect(x, y+20, w,1, Color.new(0, 192, 192, 255))
  128.     self.contents.fill_rect(x, y+21, w,1, Color.new(0, 128, 128, 255))
  129.     self.contents.draw_text(x,y,128,32,$data_system.words.sp,1)
  130.     self.contents.font.color = normal_color
  131.   end
  132. end

  133. class Game_Battler
  134. attr_reader :states_turn       # 声明状态剩余回合
  135. end
复制代码

点评

那真对不起。。没看清问题。。。我对脚本还是入门级的,没法帮到你。。。  发表于 2013-8-10 13:07
恩,不然这个问题就没有意义了  发表于 2013-8-10 12:56
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

3
 楼主| 发表于 2013-8-10 12:40:27 | 只看该作者
HeRo_SKY 发表于 2013-8-10 12:32
貌似不用在Window_Status中吧。。。。下面那个脚本是从一个游戏中找的。。你试试看,不冲突就行了 ...

这个是状态图表化脚本吧
这样做添加会令状态文字消失的

点评

是的。。。是会这样。。。一定要文字+图么。。。  发表于 2013-8-10 12:50
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

4
发表于 2013-8-10 15:10:14 | 只看该作者
露露非要这样弄么……这样好麻烦呃……
首先默认的显示状态名称是一列串的字符,并不是逐一显示名称的,由此一来要在名称后插入状态图标就得在相应的状态名之前插入足量的空格用来显示图标,
而XP默认的状态名宽度两个多点有效……
要修改的话,最好是能配合你自己的游戏UI来进行修改,并将状态描绘的方法改成逐一显示。

露露最好是能截一张你游戏中需要显示状态的窗口界面。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

5
 楼主| 发表于 2013-8-10 17:42:26 | 只看该作者
弗雷德 发表于 2013-8-10 15:10
露露非要这样弄么……这样好麻烦呃……
首先默认的显示状态名称是一列串的字符,并不是逐一显示名称的,由 ...

这是偏方,PS一张张做的话。
我可能会累倒的

点评

你先截一张你游戏中需要显示状态的图。  发表于 2013-8-10 17:48
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

6
发表于 2013-8-11 11:09:27 | 只看该作者
露露截张图,俺好对着改呀……

点评

嗯,好的。那要麻烦熊叔叔了  发表于 2013-8-11 11:26
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

7
 楼主| 发表于 2013-8-11 11:38:36 | 只看该作者
@弗雷德
这里截图跟范例
请在状态名称的左右各一边描绘出一个图标
先以2-6号为模板吧。


Project73.zip (512.02 KB, 下载次数: 35)
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

8
发表于 2013-8-11 14:27:54 | 只看该作者
状态图标.rar (502.57 KB, 下载次数: 54)
因为俺没做优先显示的判断,所以请务必把想要显示图标的状态的定量改成10,让它优先显示。这样才能对应上图标……
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

9
 楼主| 发表于 2013-8-11 15:40:52 | 只看该作者
弗雷德 发表于 2013-8-11 14:27
因为俺没做优先显示的判断,所以请务必把想要显示图标的状态的定量改成10,让它优先显示。这样才能对应上 ...

已经没有问题了
谢谢熊叔叔
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-3 03:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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