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

Project1

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

[已经解决] 请求为状态图标化脚本添加剩余回合数。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
46
在线时间
1502 小时
注册时间
2010-8-27
帖子
392
跳转到指定楼层
1
发表于 2013-9-18 18:01:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5星屑
  1. #==============================================================================
  2. # Date 12-31-2005
  3. # 重定义类:Window_Base, Window_Help
  4. #==============================================================================
  5. # 脚本功能:
  6. # 实现战斗中和菜单中用图标显示状态,代替原来的文字显示。
  7. # 默认最多同时显示5个状态
  8. #------------------------------------------------------------------------------
  9. # 设置方法:
  10. # 一个状态对应的图标文件名为“状态的动画ID.png”
  11. # 例如某状态的动画ID为50,那么它的图标就是“Icons\50.png”
  12. # 如果找不到对应的文件,会报错 ◎_◎
  13. #==============================================================================

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

  19. ICON_STATE_IDS = 1..100

  20. #==============================================================================
  21. # ■ Window_Base
  22. #------------------------------------------------------------------------------
  23. #  游戏中全部窗口的超级类。
  24. #==============================================================================

  25. class Window_Base < Window
  26. #--------------------------------------------------------------------------
  27. # ● 描绘状态
  28. #     actor : 角色
  29. #     x     : 描画目标 X 坐标
  30. #     y     : 描画目标 Y 坐标
  31. #     width : 描画目标的宽
  32. #--------------------------------------------------------------------------
  33. def draw_actor_state(actor, x, y, width = 120)
  34.   state_size = 0
  35.   for state in actor.states
  36.     # 图标数量超出宽度就中断循环
  37.     if state_size >= width / 24
  38.       break
  39.     end
  40.     # 此状态不带图标就跳过
  41.     if !ICON_STATE_IDS.include?(state)
  42.       next
  43.     end
  44.     bitmap = RPG::Cache.icon($data_states[state].name + "_sta.png")
  45.     if actor.states_turn[state] >= $data_states[state].hold_turn/2
  46.       opacity = 255
  47.     else
  48.       opacity = 100
  49.     end
  50.     # 这里的图标大小默认是24x24,要改就改下面那个Rect.new(0, 0, 24, 24)
  51.     self.contents.blt(x + 16 * state_size, y + 8, bitmap, Rect.new(0, 0, 20, 20), opacity)
  52.     state_size += 1
  53.   end
  54. end
  55. end


  56. #==============================================================================
  57. # ■ Window_Help
  58. #------------------------------------------------------------------------------
  59. #  特技及物品的说明、角色的状态显示的窗口。
  60. #==============================================================================

  61. class Window_Help < Window_Base
  62. #--------------------------------------------------------------------------
  63. # ● 设置敌人
  64. #     enemy : 要显示名字和状态的敌人
  65. #--------------------------------------------------------------------------
  66. def set_enemy(enemy)
  67.   # 描绘状态图标
  68.   state_size = 0
  69.   for state in enemy.states
  70.     # 图标数量超出宽度就中断循环
  71.     if state_size >= width / 16
  72.       break
  73.     end
  74.     # 此状态不带图标就跳过
  75.     if !ICON_STATE_IDS.include?(state)
  76.       next
  77.     end
  78.     bitmap = RPG::Cache.icon($data_states[state].name + "_sta.png")
  79.     if enemy.states_turn[state] >= $data_states[state].hold_turn/2
  80.       opacity = 255
  81.     else
  82.       opacity = 100
  83.     end
  84.     self.contents.blt(70 + 16 * state_size, 0, bitmap, Rect.new(0, 0, 24, 24), opacity)
  85.     state_size += 1
  86.   end
  87.   # 描绘敌人名字
  88.   set_text(enemy.name, 1)
  89. end
  90. end

  91. class Game_Battler
  92. attr_reader :states_turn       # 声明状态剩余回合
  93. end
复制代码
上面是状态图标脚本,我希望能够为这个脚本增加显示状态剩余回合数的功能,回合数字显示在相应的状态图标前(调用回合数我虽然解决了,但是排序的问题始终搞不定,总是排序错误),请在修改处标上标记。
另外,如果可以的话,请允许脚本可以设定“没有限定自然解除回合”的状态显示的字符

最佳答案

查看完整内容

这个行不行?

点评

测试了下,敌人名字显示有问题,再改一下  发表于 2013-9-19 09:25

Lv5.捕梦者

梦石
0
星屑
31950
在线时间
5081 小时
注册时间
2012-11-19
帖子
4877

开拓者

2
发表于 2013-9-18 18:01:41 | 只看该作者
这个行不行?
  1. #==============================================================================
  2. # Date 12-31-2005
  3. # 重定义类:Window_Base, Window_Help
  4. #==============================================================================
  5. # 脚本功能:
  6. # 实现战斗中和菜单中用图标显示状态,代替原来的文字显示。
  7. # 默认最多同时显示5个状态
  8. #------------------------------------------------------------------------------
  9. # 设置方法:
  10. # 一个状态对应的图标文件名为“状态的动画ID.png”
  11. # 例如某状态的动画ID为50,那么它的图标就是“Icons\50.png”
  12. # 如果找不到对应的文件,会报错 ◎_◎
  13. #==============================================================================

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

  19. ICON_STATE_IDS = 1..100

  20. #==============================================================================
  21. # ■ Window_Base
  22. #------------------------------------------------------------------------------
  23. #  游戏中全部窗口的超级类。
  24. #==============================================================================

  25. class Window_Base < Window
  26. #--------------------------------------------------------------------------
  27. # ● 描绘状态
  28. #     actor : 角色
  29. #     x     : 描画目标 X 坐标
  30. #     y     : 描画目标 Y 坐标
  31. #     width : 描画目标的宽
  32. #--------------------------------------------------------------------------
  33. def draw_actor_state(actor, x, y, width = 160)
  34.   state_size = 0
  35.   for state in actor.states
  36.     # 图标数量超出宽度就中断循环
  37.     if state_size >= width / 40
  38.       break
  39.     end
  40.     # 此状态不带图标就跳过
  41.     if !ICON_STATE_IDS.include?(state)
  42.       next
  43.     end
  44.     bitmap = RPG::Cache.icon($data_states[state].name + "_sta.png")
  45.     if actor.states_turn[state] >= $data_states[state].hold_turn/2
  46.       opacity = 255
  47.     else
  48.       opacity = 100
  49.     end
  50.     txt = actor.states_turn[state].to_s
  51.     # 这里的图标大小默认是24x24,要改就改下面那个Rect.new(0, 0, 24, 24)
  52.     ax = x + 2 * state_size * 20
  53.     self.contents.blt(ax, y + 4, bitmap, Rect.new(0, 0, 20, 20), opacity)
  54.     self.contents.font.color = text_color(6)
  55.     self.contents.draw_text(ax + 24, y, 24, 32, txt)
  56.     state_size += 1
  57.   end
  58. end
  59. end


  60. #==============================================================================
  61. # ■ Window_Help
  62. #------------------------------------------------------------------------------
  63. #  特技及物品的说明、角色的状态显示的窗口。
  64. #==============================================================================

  65. class Window_Help < Window_Base
  66. #--------------------------------------------------------------------------
  67. # ● 设置敌人
  68. #     enemy : 要显示名字和状态的敌人
  69. #--------------------------------------------------------------------------
  70. def set_enemy(enemy)
  71.   self.contents.clear
  72.   # 描绘状态图标
  73.   state_size = 0
  74.   for state in enemy.states
  75.     # 图标数量超出宽度就中断循环
  76.     if state_size >= width / 40
  77.       break
  78.     end
  79.     # 此状态不带图标就跳过
  80.     if !ICON_STATE_IDS.include?(state)
  81.       next
  82.     end
  83.     bitmap = RPG::Cache.icon($data_states[state].name + "_sta.png")
  84.     if enemy.states_turn[state] >= $data_states[state].hold_turn/2
  85.       opacity = 255
  86.     else
  87.       opacity = 100
  88.     end
  89.     txt = enemy.states_turn[state].to_s
  90.     ax = 70 + 40 * state_size
  91.     self.contents.blt(ax, 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  92.     self.contents.font.color = text_color(6)
  93.     self.contents.draw_text(ax + 24, 0, 24, 32, txt)
  94.     state_size += 1
  95.   end
  96.   # 描绘敌人名字
  97.   set_text(enemy.name, 1)
  98. end
  99. end

  100. class Game_Battler
  101. attr_reader :states_turn       # 声明状态剩余回合
  102. end
  103. #==============================================================================
复制代码

点评

名字的问题不需要了,我用的也不是上面那个,原来的名字显示是有些问题早就修改过了,这个脚本我也只是拿显示回合数的部分就够了。  发表于 2013-9-19 16:24
没想到这么简单……果然复杂未必是好啊,多谢了  发表于 2013-9-19 07:21
又麻烦你了,我先试一下,谢谢  发表于 2013-9-18 20:37
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 08:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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