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

Project1

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

[已经解决] 【提问】关于RTAB战斗系统

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
38 小时
注册时间
2013-3-7
帖子
11
跳转到指定楼层
1
发表于 2013-4-22 12:20:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 RANDOM 于 2013-4-23 12:55 编辑

其实有好几个问题的,研究了好久脚本太长了日语注释也看不懂,于是还是来问了。。。
1,当己方一个成员的AT条满了行动的时候,我希望其他的队友AT条停止,脚本该怎么改?
2,如图,己方CP条的长度比较短,但是我设的宽度都是144.。。。这是怎么回事?(显示CP条的脚本在下面)
。。。
RUBY 代码复制
  1. class Window_Base < Window
  2. #--------------------------------------------------------------------------
  3.   # ● CP 表的绘画
  4.   #--------------------------------------------------------------------------
  5.   # draw_actor_cp_original 和名字变更原创的 CP 绘画
  6.   alias :draw_actor_cp_original :draw_actor_cp
  7.   def draw_actor_cp(actor, x, y, width = 144)
  8.     # 变数 rate 在现在的 SP/MSP 代入
  9.     if actor.maxcp != 0
  10.       rate = actor.cp.to_f / actor.maxcp
  11.     else
  12.       rate = 1
  13.     end
  14.     # plus_x: X 座标的位置补正 rate_x:X 座标的位置补正 (%) plus_y:Y 座标的位置补正
  15.     # plus_width: 宽度的补正 rate_width:宽度的补正 (%) height:纵宽度
  16.     # align1:描画タイプ10: 左装 1:中央聚集 2:右边装
  17.     # align2:描画タイプ20: 上装 1:中央聚集 2:下包装
  18.     # align3:ゲージタイプ0: 左装 1:右边装
  19.     plus_x = 0
  20.     rate_x = 0
  21.     plus_y = 25
  22.     plus_width = 0
  23.     rate_width = 100
  24.     height = 10
  25.     align1 = 1
  26.     align2 = 2
  27.     align3 = 0
  28.     # 浓淡法设定 grade1:空表 grade2:实际表
  29.     #(0:在横浓淡法 1:纵向地浓淡法 2:斜浓淡法 (激烈重 ) )
  30.     grade1 = 1
  31.     grade2 = 0
  32.     # 设定颜色。color1: 外范围,color2:整个范围
  33.     # color3: 空表黑的彩色,color4:空表右方彩色
  34.     # color5: 实际表黑的彩色,color6:实际表右方彩色
  35.     color1 = Color.new(0, 0, 0, 192)
  36.     color2 = Color.new(255, 255, 192, 192)
  37.     color3 = Color.new(0, 0, 0, 192)
  38.     color4 = Color.new(0, 64, 0, 192)
  39.     color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)
  40.     color6 = Color.new(0 * rate, 240 - 72 * rate, 0 * rate, 192)
  41.     # 变数 cp 描绘表的宽度代入
  42.     if actor.maxcp != 0
  43.       cp = (width + plus_width) * actor.cp * rate_width / 100 / actor.maxcp
  44.     else
  45.       cp = (width + plus_width) * rate_width / 100
  46.     end
  47.     # 表的绘画
  48.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  49.                 width, plus_width + width * rate_width / 100,
  50.                 height, cp, align1, align2, align3,
  51.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  52.     # 叫出来原创的 SP 绘画处理
  53.     draw_actor_cp_original(actor, x, y, width)
  54.   end
  55.  
  56.   #--------------------------------------------------------------------------
  57.   # ●表的绘画
  58.   #--------------------------------------------------------------------------
  59.   def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
  60.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  61.     case align1
  62.     when 1
  63.       x += (rect_width - width) / 2
  64.     when 2
  65.       x += rect_width - width
  66.     end
  67.     case align2
  68.     when 1
  69.       y -= height / 2
  70.     when 2
  71.       y -= height
  72.     end
  73.     # 绘画范围
  74.     self.contents.fill_rect(x, y, width, height, color1)
  75.     self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
  76.     if align3 == 0
  77.       if grade1 == 2
  78.         grade1 = 3
  79.       end
  80.       if grade2 == 2
  81.         grade2 = 3
  82.       end
  83.     end
  84.     if (align3 == 1 and grade1 == 0) or grade1 > 0
  85.       color = color3
  86.       color3 = color4
  87.       color4 = color
  88.     end
  89.     if (align3 == 1 and grade2 == 0) or grade2 > 0
  90.       color = color5
  91.       color5 = color6
  92.       color6 = color
  93.     end
  94.     # 空表的绘画
  95.     self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
  96.                                   color3, color4, grade1)
  97.     if align3 == 1
  98.       x += width - gauge
  99.     end
  100.     # 实际表的绘画
  101.     self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
  102.                                   color5, color6, grade2)
  103.   end
  104.  
  105.  
  106. end
  107.  
  108. class Bitmap
  109.   #--------------------------------------------------------------------------
  110.   # ●浓淡法表示长方形
  111.   #     color1 : 开始彩色
  112.   #     color2 : 终局彩色
  113.   #     align  :  0:横浓淡法
  114.   #               1:纵向地浓淡法
  115.   #               2:斜浓淡法(因激烈重注意)
  116.   #--------------------------------------------------------------------------
  117.   def gradation_rect(x, y, width, height, color1, color2, align = 0)
  118.     if align == 0
  119.       for i in x...x + width
  120.         red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
  121.         green = color1.green +
  122.                 (color2.green - color1.green) * (i - x) / (width - 1)
  123.         blue  = color1.blue +
  124.                 (color2.blue - color1.blue) * (i - x) / (width - 1)
  125.         alpha = color1.alpha +
  126.                 (color2.alpha - color1.alpha) * (i - x) / (width - 1)
  127.         color = Color.new(red, green, blue, alpha)
  128.         fill_rect(i, y, 1, height, color)
  129.       end
  130.     elsif align == 1
  131.       for i in y...y + height
  132.         red   = color1.red +
  133.                 (color2.red - color1.red) * (i - y) / (height - 1)
  134.         green = color1.green +
  135.                 (color2.green - color1.green) * (i - y) / (height - 1)
  136.         blue  = color1.blue +
  137.                 (color2.blue - color1.blue) * (i - y) / (height - 1)
  138.         alpha = color1.alpha +
  139.                 (color2.alpha - color1.alpha) * (i - y) / (height - 1)
  140.         color = Color.new(red, green, blue, alpha)
  141.         fill_rect(x, i, width, 1, color)
  142.       end
  143.     elsif align == 2
  144.       for i in x...x + width
  145.         for j in y...y + height
  146.           red   = color1.red + (color2.red - color1.red) *
  147.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  148.           green = color1.green + (color2.green - color1.green) *
  149.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  150.           blue  = color1.blue + (color2.blue - color1.blue) *
  151.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  152.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  153.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  154.           color = Color.new(red, green, blue, alpha)
  155.           set_pixel(i, j, color)
  156.         end
  157.       end
  158.     elsif align == 3
  159.       for i in x...x + width
  160.         for j in y...y + height
  161.           red   = color1.red + (color2.red - color1.red) *
  162.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  163.           green = color1.green + (color2.green - color1.green) *
  164.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  165.           blue  = color1.blue + (color2.blue - color1.blue) *
  166.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  167.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  168.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  169.           color = Color.new(red, green, blue, alpha)
  170.           set_pixel(i, j, color)
  171.         end
  172.       end
  173.     end
  174.   end
  175. end

未命名1.jpg (36.89 KB, 下载次数: 7)

未命名1.jpg

Lv1.梦旅人

梦石
0
星屑
60
在线时间
568 小时
注册时间
2012-9-7
帖子
611
2
发表于 2013-4-22 15:34:34 | 只看该作者
本帖最后由 wingzeroplus 于 2013-4-22 15:36 编辑

RTAB战斗系统 Ver XX
第50行改为
@active = 0
即可当任意一BATTLER AT满后 全场停止

另外你的脚本复制不了,直接上工程吧
FTM正式版已经发布,点击图片开启传送门
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
38 小时
注册时间
2013-3-7
帖子
11
3
 楼主| 发表于 2013-4-22 20:26:52 | 只看该作者
wingzeroplus 发表于 2013-4-22 15:34
RTAB战斗系统 Ver XX
第50行改为
@active = 0

多谢。。。原来就在上面的注释部分。。。
还有一个问题就是战斗脚本中每次行动之后刷新HP和SP的部分在哪里?貌似CP不能及时刷新。。。
只上传脚本数据可以吧,整个工程有点大。。。

Scripts.rxdata

190.09 KB, 下载次数: 14

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
568 小时
注册时间
2012-9-7
帖子
611
4
发表于 2013-4-22 20:56:06 | 只看该作者
刷新HP和SP是在
バトル画面でアクターのステータスを個々に表示するウィンドウです
(我自己的RTAB脚本已经被我改得面目全非了,说第几行不好找)
还是从那个地方往上找有
ATゲージをリフレッシュ   
  def at_refresh
    @status_window[4].refresh($game_party.actors[@actor_num])
  end
还是那个地方下面几行
   when 4
      draw_actor_atg     ###这个2地方就是刷新AT用的

你把CP分别加进入就行……不过注意窗口高度

评分

参与人数 1星屑 +20 收起 理由
明特·布兰马修 + 20 精品文章

查看全部评分

FTM正式版已经发布,点击图片开启传送门
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
38 小时
注册时间
2013-3-7
帖子
11
5
 楼主| 发表于 2013-4-23 12:56:05 | 只看该作者
wingzeroplus 发表于 2013-4-22 20:56
刷新HP和SP是在
バトル画面でアクターのステータスを個々に表示するウィンドウです
(我自己的RTAB脚本已经 ...

多谢,,,已经改好了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-5 10:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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