Project1

标题: 人物中了状态之后,状态icon显示在人名旁→这个怎么做? [打印本页]

作者: milly    时间: 2012-11-23 22:40
标题: 人物中了状态之后,状态icon显示在人名旁→这个怎么做?
本帖最后由 milly 于 2012-11-24 10:51 编辑

收集了一堆状态icon,不知道怎么用OTL
求破
作者: darkten    时间: 2012-11-24 02:24
以下是6R找到的脚本...icon位置可以自己调节...
  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 / 24
  47.         break
  48.       end
  49.       # 此状态不带图标就跳过
  50.       if !ICON_STATE_IDS.include?(state)
  51.         next
  52.       end
  53.       bitmap = RPG::Cache.icon($data_states[state].animation_id.to_s)
  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 + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  61.       state_size += 1
  62.     end
  63.   end
  64. end
  65.   
  66.   
  67. #==============================================================================
  68. # ■ Window_Help
  69. #------------------------------------------------------------------------------
  70. #  特技及物品的说明、角色的状态显示的窗口。
  71. #==============================================================================
  72.   
  73. class Window_Help < Window_Base
  74.   #--------------------------------------------------------------------------
  75.   # ● 设置敌人
  76.   #     enemy : 要显示名字和状态的敌人
  77.   #--------------------------------------------------------------------------
  78.   def set_enemy(enemy)
  79.     @text = ""
  80.     # 描绘敌人名字
  81.     set_text(enemy.name, 1)
  82.     # 描绘状态图标
  83.     state_size = 0
  84.     for state in enemy.states
  85.       # 图标数量超出宽度就中断循环
  86.       if state_size >= 5
  87.         break
  88.       end
  89.       # 此状态不带图标就跳过
  90.       if !ICON_STATE_IDS.include?(state)
  91.         next
  92.       end
  93.       bitmap = RPG::Cache.icon($data_states[state].animation_id.to_s)
  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(70 + 24 * state_size, 0, bitmap, Rect.new(0, 0, 24, 24), opacity)
  100.       state_size += 1
  101.     end
  102.   end
  103. end

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

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

作者: milly    时间: 2012-11-24 10:51
darkten 发表于 2012-11-24 02:24
以下是6R找到的脚本...icon位置可以自己调节...

嗯嗯,知道了~3Q~




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