Project1

标题: 图标式状态有问题!请高手指导 [打印本页]

作者: 459974518    时间: 2011-8-18 21:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: 龙腾天下    时间: 2011-8-18 22:53
参考。。。这个比较简单。。
http://rpg.blue/forum.php?mod=vi ... p;page=1#pid1747659
作者: 459974518    时间: 2011-8-18 23:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: 龙腾天下    时间: 2011-8-18 23:45
459974518 发表于 2011-8-18 23:30
之前就是因为不行嘛!我用了之后还是只显示1个状态!
而且在菜单栏中状态的位置还是乱七八糟的!
你有看 ...

你的战斗状态图标是
先是出现一个状态图标,又再出现一个状态图标。。。。
作者: 459974518    时间: 2011-8-19 00:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 钢铁列兵    时间: 2011-8-19 01:10
本帖最后由 钢铁列兵 于 2011-8-19 01:10 编辑

我用的这套感觉兼容性还不错,你试试看
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. # 欢迎访问www.66RPG.com
  4. # 梦想世界,在你手中
  5. #==============================================================================

  6. #==============================================================================
  7. # 图标显示状态 v1.1
  8. # By 叶子
  9. # 9-30-2007 v1.1
  10. # 修正了描绘状态的一个致命BUG
  11. # 12-31-2005 v1.0
  12. # 重定义类:Window_Base, Window_Help
  13. #==============================================================================
  14. # 脚本功能:
  15. # 实现战斗中和菜单中用图标显示状态,代替原来的文字显示。
  16. # 默认最多同时显示5个状态
  17. #------------------------------------------------------------------------------
  18. # 设置方法:
  19. # 一个状态对应的图标文件名为“状态的动画ID”
  20. # 例如某状态的动画ID为50,那么它的图标就是“Icons\50.png”或“Icons\50.jpg”
  21. # 如果找不到对应的文件,会报错 ◎_◎
  22. #==============================================================================

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

  28. ICON_STATE_IDS = 1..100

  29. #==============================================================================
  30. # ■ Window_Base
  31. #------------------------------------------------------------------------------
  32. #  游戏中全部窗口的超级类。
  33. #==============================================================================

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

  66. #==============================================================================
  67. # ■ Window_Help
  68. #------------------------------------------------------------------------------
  69. #  特技及物品的说明、角色的状态显示的窗口。
  70. #==============================================================================
  71.   
  72. class Window_Help < Window_Base
  73.   #--------------------------------------------------------------------------
  74.   # ● 设置敌人
  75.   #     enemy : 要显示名字和状态的敌人
  76.   #--------------------------------------------------------------------------
  77.   def set_enemy(enemy)
  78.     @text = ""
  79.     # 描绘敌人名字
  80.     set_text(enemy.name, 1)
  81.     # 描绘状态图标
  82.     state_size = 0
  83.     for state in enemy.states
  84.       # 图标数量超出宽度就中断循环
  85.       if state_size >= 4
  86.         break
  87.       end
  88.       # 此状态不带图标就跳过
  89.       if !ICON_STATE_IDS.include?(state)
  90.         next
  91.       end
  92.       bitmap = Bitmap.new("Graphics/Status/" + $data_states[state].name + ".png")
  93.       if enemy.states_turn[state] >= $data_states[state].hold_turn/2
  94.         opacity = 255
  95.       else
  96.         opacity = 100
  97.       end
  98.       self.contents.blt(70 + 24 * state_size, 0, bitmap, Rect.new(0, 0, 24, 24), opacity)
  99.       state_size += 1
  100.     end
  101.   end
  102. end

  103. class Game_Battler
  104.   attr_reader :states_turn       # 声明状态剩余回合
  105. end

  106. #==============================================================================
  107. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  108. # 欢迎访问www.66RPG.com
  109. # 梦想世界,在你手中
  110. #==============================================================================
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1