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

Project1

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

[已经解决] 如何在战斗中显示多个状态

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
745
在线时间
12 小时
注册时间
2009-12-20
帖子
4
跳转到指定楼层
1
发表于 2009-12-20 12:44:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我给一敌人分别上了【混乱】,【睡眠】。。。。。。怎么都显示出来

Lv1.梦旅人

神之瞳

梦石
0
星屑
60
在线时间
5 小时
注册时间
2009-7-5
帖子
314
2
发表于 2009-12-20 13:11:53 | 只看该作者
  1. #==============================================================================

  2. # ■ 状态图标化

  3. #------------------------------------------------------------------------------

  4. #  主要是改变支持了我自己的战斗系统

  5. #   By whbm

  6. #==============================================================================

  7. #==============================================================================

  8. # Date 12-31-2005

  9. # 重定义类:Window_Base, Window_Help

  10. #==============================================================================

  11. # 脚本功能:

  12. # 实现战斗中和菜单中用图标显示状态,代替原来的文字显示。

  13. # 默认最多同时显示5个状态

  14. #------------------------------------------------------------------------------

  15. # 设置方法:

  16. # 一个状态对应的图标文件名为“状态的动画ID.png”

  17. # 例如某状态的动画ID为50,那么它的图标就是“Icons\50.png”

  18. # 如果找不到对应的文件,会报错 ◎_◎

  19. #==============================================================================



  20. # 注意,在ICON_STATE_IDS中写上需要带图标的状态ID

  21. # ICON_STATE_IDS是一个数组,数组的方法请参考帮助文件

  22. # 例如:

  23. # 只要1,5,8号状态带图标,就这样:ICON_STATE_IDS = [1,5,8]

  24. # 要20到50号状态带图标:ICON_STATE_IDS = 20..50



  25. ICON_STATE_IDS = 1..100



  26. #==============================================================================

  27. # ■ Window_Base

  28. #------------------------------------------------------------------------------

  29. #  游戏中全部窗口的超级类。

  30. #==============================================================================



  31. class Window_Base < Window

  32. #--------------------------------------------------------------------------

  33. # ● 描绘状态

  34. #     actor : 角色

  35. #     x     : 描画目标 X 坐标

  36. #     y     : 描画目标 Y 坐标

  37. #     width : 描画目标的宽

  38. #--------------------------------------------------------------------------

  39. def draw_actor_state(actor, x, y, width = 120)

  40.   state_size = 0

  41.   for state in actor.states

  42.     # 图标数量超出宽度就中断循环

  43.     if state_size >= width / 24

  44.       break

  45.     end

  46.     # 此状态不带图标就跳过

  47.     if !ICON_STATE_IDS.include?(state)

  48.       next

  49.     end

  50.     bitmap = RPG::Cache.icon($data_states[state].name + "_sta.png")

  51.   

  52.     if actor.states_turn[state] >= $data_states[state].hold_turn/2

  53.       opacity = 255

  54.     else

  55.       opacity = 100

  56.     end

  57.     # 这里的图标大小默认是24x24,要改就改下面那个Rect.new(0, 0, 24, 24)

  58.     #..........................................................................

  59.     if $game_temp.in_battle

  60.       self.contents.blt(x - 8, y + 16 - 16 * state_size, bitmap, Rect.new(0, 0, 16, 16), opacity)

  61.     else

  62.       self.contents.blt(x + 16 * state_size, y + 8, bitmap, Rect.new(0, 0, 16, 16), opacity)

  63.     end

  64.     state_size += 1

  65.     #..........................................................................

  66.   end

  67. end

  68. end

  69. #==============================================================================

  70. # ■ Window_Help

  71. #------------------------------------------------------------------------------

  72. #  特技及物品的说明、角色的状态显示的窗口。

  73. #==============================================================================



  74. class Window_Help < Window_Base

  75. #--------------------------------------------------------------------------

  76. # ● 设置敌人

  77. #     enemy : 要显示名字和状态的敌人

  78. #--------------------------------------------------------------------------

  79. def set_enemy(enemy)

  80.   # 描绘状态图标

  81.   state_size = 0

  82.   for state in enemy.states

  83.     # 图标数量超出宽度就中断循环

  84.     if state_size >= width / 16

  85.       break

  86.     end

  87.     # 此状态不带图标就跳过

  88.     if !ICON_STATE_IDS.include?(state)

  89.       next

  90.     end

  91.     bitmap = RPG::Cache.icon($data_states[state].name + "_sta.png")

  92.     if enemy.states_turn[state] >= $data_states[state].hold_turn/2

  93.       opacity = 255

  94.     else

  95.       opacity = 100

  96.     end

  97.     self.contents.blt(70 + 16 * state_size, 0, bitmap, Rect.new(0, 0, 24, 24), opacity)

  98.     state_size += 1

  99.   end

  100.   # 描绘敌人名字

  101.   set_text(enemy.name, 1)

  102. end

  103. end



  104. class Game_Battler

  105. attr_reader :states_turn       # 声明状态剩余回合

  106. end
复制代码

九月三日

  有时我真不理解,怎么有另一个人能够爱她,可以爱她,殊不知我爱她爱得如此真切,如此忘情,如此情意缱倦,除了她我什么也不了解,什么也不知道,什么也没有呀!
——摘自《少年维特之烦恼》

谨以 纪念一段消逝了的感情
ILY ZXY

NOIp什么的最讨厌了!

啊……讨厌,为什么我的网盘全部坏掉了……
zoomshare恢复了,虚惊一场
可恶的skydrive,我XX你的OO,竟把我的帐号封了!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
745
在线时间
12 小时
注册时间
2009-12-20
帖子
4
3
 楼主| 发表于 2009-12-21 15:29:22 | 只看该作者
谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 12:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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