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

Project1

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

[已经解决] ACE 战斗时状态栏好少,只能放2个。请问怎么能多放几个。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
1294
在线时间
22 小时
注册时间
2015-1-26
帖子
4
跳转到指定楼层
1
发表于 2015-1-26 21:50:06 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
   求帮助

Lv1.梦旅人

梦石
0
星屑
1294
在线时间
22 小时
注册时间
2015-1-26
帖子
4
7
 楼主| 发表于 2015-1-30 22:59:59 | 只看该作者
这个很好 谢谢。又有头像又有状态。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

6
发表于 2015-1-29 22:59:22 | 只看该作者
https://rpg.blue/thread-223765-1-1.html
图书馆里杂兵天下大大制作的脸图战斗,用这个可以显示4个BUFF图标,理论上还有很多空位可以显示更多状态图标,但可惜我不会脚本。
我以前用的就是4楼的那种,缺点是无法掩盖原本界面上的BUFF,也就是说增加了图标显示数量并改了图标显示位置之后任何BUFF都变成双重存在,这让人很难接受
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
1294
在线时间
22 小时
注册时间
2015-1-26
帖子
4
5
 楼主| 发表于 2015-1-29 22:09:25 | 只看该作者
这个真好! 谢谢~~
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
发表于 2015-1-28 10:23:10 | 只看该作者
三途亚梦 发表于 2015-1-26 19:09
想放多少都行,但是放第三个就挡住血条了,这样的效果你想要吗?

可以用滚动显示
你可以试试这个
  1. #————————————————————————————————————————
  2. # ●Dicon_States By.Lyaci
  3. #https://rpg.blue/forum.php?mod=viewthread&tid=366991&extra=page%3D3%26filter%3Dtypeid%26typeid%3D368%26typeid%3D368
  4. #不同的是这个版本可以自定义栏数(即抛弃a版的固定栏数),
  5. #显示状态CD(状态剩余回合)的功能,默认按A键显示或者隐蔽
  6. #   *状态与BUFF图标交替显示-b版
  7. #   -b版理论比a版效率高,同时可以自定义图标栏数量
  8. #    b版排序规则为默认,即不分固定状态或buff栏
  9. #   Ver:1.0b Date:2014.6.20
  10. #   Ver:1.1b Date:2014.6.20
  11. #   -增加剩余回合数(状态CD)显示
  12. #   Ver:1.2b Date:2014.6.21
  13. #   -增加显示对话框时的开关补丁
  14. #————————————————————————————————————————
  15. class Dicon_States < Sprite
  16.   #————————————————————————————————————————
  17.   #●设置
  18.   #————————————————————————————————————————
  19.   TIME_INT = 60   #图标之间的更新帧,建议40~60
  20.   ICON_NUM = 2    #显示图标栏数,建议 2
  21.   ICON_X = 248    #显示的X坐标,建议更改栏数时改变
  22.   ICON_Y = 12     #显示的Y坐标,建议不变
  23.   #————————————————————————————————————————
  24.   CD_TF_KEY = :X       #隐蔽/显示 剩余回合数快捷键
  25.   CD_TF_INI = false     #初始时隐蔽/显示
  26.   CDTXT_OX = 5         #剩余回合数显示的X坐标(相对)
  27.   CDTXT_OY = 0         #剩余回合数显示的Y坐标(相对)
  28.   CDTXT_NAME = "黑体"  #设置字体
  29.   CDTXT_SIZE = 24      #设置字号
  30.   CDTXT_BOLD = true   #是否粗体
  31.   CDTXT_COLOR = Color.new(100,255,0,255)  #字体颜色
  32.   CDBACK_WH = 24                          #背景尺寸
  33.   CDBACK_COLOR = Color.new(0,0,0,164)     #背景颜色
  34.   #————————————————————————————————————————
  35.   #初始化
  36.   #————————————————————————————————————————
  37.   def initialize(x,y,time_int)
  38.     super()
  39.     @count = @iconx = @iconw = 0
  40.     @time_int = time_int
  41.     @icon_bitmap = Cache.system("Iconset")
  42.     @cdspr = Sprite.new
  43.     sprite(self,x,y);sprite(@cdspr,x,y)
  44.     cdspr_set ; update
  45.   end
  46.   #————————————————————————————————————————
  47.   #设置精灵
  48.   #————————————————————————————————————————
  49.   def sprite(spr,x,y)
  50.     spr.x,spr.y,spr.z = x,y,1000
  51.     spr.bitmap = Bitmap.new(384,24)
  52.     spr.src_rect = Rect.new(0,0,ICON_NUM*24,24)
  53.   end
  54.   #————————————————————————————————————————
  55.   #设置CD文字
  56.   #————————————————————————————————————————
  57.   def cdspr_set
  58.     @cdspr.visible = CD_TF_INI
  59.     @cdspr.bitmap.font.name = CDTXT_NAME
  60.     @cdspr.bitmap.font.size = CDTXT_SIZE
  61.     @cdspr.bitmap.font.bold = CDTXT_BOLD
  62.     @cdspr.bitmap.font.color = CDTXT_COLOR
  63.   end
  64.   #————————————————————————————————————————
  65.   #设置视口
  66.   #————————————————————————————————————————
  67.   def vie=(v) ; self.viewport = @cdspr.viewport = v ; end
  68.   #————————————————————————————————————————
  69.   #设置图标、CD可视状态
  70.   #————————————————————————————————————————
  71.   def sprvis=(vis) ; self.visible = @cdspr.visible = vis ; end
  72.   #————————————————————————————————————————
  73.   #载入状态、BUFF
  74.   #————————————————————————————————————————
  75.   def actor_states(states,buffs)
  76.     icon_index = states[0] + buffs[0]
  77.     icon_trues = states[-1] + buffs[-1]
  78.     icon_index.size <= ICON_NUM ?
  79.     (icon_index ; src_rect.x = @cdspr.src_rect.x = 0) :
  80.     (icon_index << icon_index[0] ; icon_trues << icon_trues[0])
  81.     bitmap.clear ; @cdspr.bitmap.clear
  82.     icon_index.each_with_index {|icon_id,index|
  83.     icon_rect = Rect.new(icon_id % 16 * 24, icon_id / 16 * 24, 24, 24)
  84.     bitmap.blt(index*24,0,@icon_bitmap,icon_rect)
  85.     icon_cd = icon_trues[index]
  86.     if icon_cd > 0
  87.       @cdspr.bitmap.fill_rect(index*24,0,CDBACK_WH,CDBACK_WH,CDBACK_COLOR)
  88.       @cdspr.bitmap.draw_text(index*24+CDTXT_OX,CDTXT_OY,24,24,icon_cd.truncate)
  89.     end }
  90.     @iconw = icon_index.size * 24
  91.     @icon_true = @iconw > ICON_NUM * 24
  92.     @width_end = @iconw - ICON_NUM * 24
  93.   end
  94.   #————————————————————————————————————————
  95.   #按键更新
  96.   #————————————————————————————————————————
  97.   def key_update
  98.     @cdspr.visible = [email protected] if Input.trigger?(CD_TF_KEY)
  99.   end
  100.   #————————————————————————————————————————
  101.   #全部更新
  102.   #————————————————————————————————————————
  103.   def update
  104.     super ; key_update
  105.     if @count < @time_int ; @count += 1
  106.     else ; @count = 0
  107.      if @icon_true
  108.        if @iconx < @width_end ; @iconx += 24
  109.        else ; @iconx = 0 ; end
  110.        src_rect.x = @cdspr.src_rect.x = @iconx
  111.      end
  112.     end
  113.   end
  114.   #————————————————————————————————————————
  115.   #全部释放
  116.   #————————————————————————————————————————
  117.   def dispose
  118.     if self.bitmap != nil
  119.       self.bitmap.dispose ; @icon_bitmap.dispose
  120.       @cdspr.dispose ; @cdspr.bitmap.dispose
  121.     end
  122.     super
  123.   end
  124. end
  125. #————————————————————————————————————————
  126. # ●Window_BattleStatus
  127. #   *战斗画面中,显示“队伍成员状态”的窗口。
  128. #————————————————————————————————————————
  129. class Window_BattleStatus < Window_Selectable
  130.   #————————————————————————————————————————
  131.   #初始化对象
  132.   #————————————————————————————————————————
  133.   def initialize
  134.     super(0, 0, window_width, window_height)
  135.     @self_true = self.class == Window_BattleStatus
  136.     dicon if @self_true ; refresh
  137.     self.openness = 0
  138.   end
  139.   #————————————————————————————————————————
  140.   #建立精灵
  141.   #————————————————————————————————————————
  142.   def dicon
  143.     mb = $game_party.max_battle_members
  144.     x,y = Dicon_States::ICON_X,Dicon_States::ICON_Y
  145.     @dicon = Array.new(mb) {|index|
  146.     Dicon_States.new(x,y+index*24,Dicon_States::TIME_INT)}
  147.   end
  148.   #————————————————————————————————————————
  149.   #绘制项目
  150.   #————————————————————————————————————————
  151.   def draw_item(index)
  152.     actor = $game_party.battle_members[index]
  153.     @dicon[index].actor_states(actor.state_data,actor.buff_data) if @self_true
  154.     draw_basic_area(basic_area_rect(index), actor)
  155.     draw_gauge_area(gauge_area_rect(index), actor)
  156.   end
  157.   #————————————————————————————————————————
  158.   #窗口打开关闭时的处理
  159.   #————————————————————————————————————————
  160.   def close ; super ; @dicon.each {|dicon| dicon.sprvis = false } if open? ; end
  161.   def open ; super ; @dicon.each {|dicon| dicon.sprvis = true } if close? ; end
  162.   #————————————————————————————————————————
  163.   #更新图标
  164.   #————————————————————————————————————————
  165.   def update ; super ; @dicon.each {|dicon| dicon.update} if @self_true ; end
  166.   #————————————————————————————————————————
  167.   #释放图标
  168.   #————————————————————————————————————————
  169.   def dispose ; super ; @dicon.each {|dicon| dicon.dispose} if @self_true ; end
  170.   #————————————————————————————————————————
  171.   #设置视口
  172.   #————————————————————————————————————————
  173.   def viewport=(v) ; super(v) ; @dicon.each {|dicon| dicon.vie = v} ; end
  174.   #————————————————————————————————————————
  175.   #绘制基本区域
  176.   #————————————————————————————————————————
  177.   def draw_basic_area(rect, actor)
  178.     draw_actor_name(actor, rect.x + 0, rect.y, 100)
  179.   end
  180. end
  181. #————————————————————————————————————————
  182. # ●Game_BattlerBase
  183. #————————————————————————————————————————
  184. class Game_BattlerBase
  185.   #————————————————————————————————————————
  186.   #状态数据
  187.   #————————————————————————————————————————
  188.   def state_data
  189.     data = [[],[]]
  190.     auto = [-1,1,0]
  191.     states.each {|st| state_index = st.icon_index
  192.     ftm = auto[st.auto_removal_timing]
  193.     if state_index != 0 ; data[0]<<state_index;data[-1]<<@state_turns[st.id]+ftm
  194.     end } ; data
  195.   end
  196.   #————————————————————————————————————————
  197.   #BUFF数据
  198.   #————————————————————————————————————————
  199.   def buff_data
  200.     data = [[],[]]
  201.     @buffs.each_with_index {|lv, i| buff_index = buff_icon_index(lv, i)
  202.     if buff_index != 0 ; data[0]<<buff_index ; data[-1]<<@buff_turns[i]+1
  203.     end } ; data
  204.   end
  205. end
复制代码

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
1294
在线时间
22 小时
注册时间
2015-1-26
帖子
4
3
 楼主| 发表于 2015-1-27 19:08:57 | 只看该作者
了解了 谢谢。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
2
发表于 2015-1-27 12:09:52 | 只看该作者
想放多少都行,但是放第三个就挡住血条了,这样的效果你想要吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 16:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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