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

Project1

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

6R非官方整合脚本-血槽描绘的错误..

 关闭 [复制链接]

Lv2.观梦者

飛狐耶

梦石
0
星屑
315
在线时间
55 小时
注册时间
2007-12-15
帖子
573
跳转到指定楼层
1
发表于 2008-7-17 03:08:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
是6R非官方整合脚本里面的^

主脚本『Window_Base(血槽描绘)』
  1. #==============================================================================
  2. # ■ Window_Base
  3. #------------------------------------------------------------------------------
  4. #  插件脚本:血槽、精神槽的描绘
  5. #==============================================================================

  6. class Window_Base < Window
  7.   #--------------------------------------------------------------------------
  8.   # ● HP ゲージの描画
  9.   #--------------------------------------------------------------------------
  10.   # オリジナルのHP描画を draw_actor_hp_original と名前変更
  11.   alias :draw_actor_hp_original :draw_actor_hp
  12.   def draw_actor_hp(actor, x, y, width = 144)
  13.     if actor.maxhp != 0
  14.       rate = actor.hp.to_f / actor.maxhp
  15.     else
  16.       rate = 0
  17.     end
  18.     # plus_x:X座標位置修正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
  19.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
  20.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
  21.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
  22.     # align3:ゲージタイプ 0:左詰め 1:右詰め
  23.     plus_x = 0
  24.     rate_x = 0
  25.     plus_y = 25
  26.     plus_width = 0
  27.     rate_width = 100
  28.     height = 10
  29.     align1 = 1
  30.     align2 = 2
  31.     align3 = 0
  32.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
  33.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
  34.     grade1 = 1
  35.     grade2 = 0
  36.     # 色設定。color1:外枠,color2:中枠
  37.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー
  38.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー
  39.     color1 = Color.new(0, 0, 0, 192)
  40.     color2 = Color.new(255, 255, 192, 192)
  41.     color3 = Color.new(0, 0, 0, 192)
  42.     color4 = Color.new(64, 0, 0, 192)
  43.     color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)
  44.     color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)
  45.     # 変数spに描画するゲージの幅を代入
  46.     if actor.maxhp != 0
  47.       hp = (width + plus_width) * actor.hp * rate_width / 100 / actor.maxhp
  48.     else
  49.       hp = 0
  50.     end
  51.     # ゲージの描画
  52.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  53.                 width, plus_width + width * rate_width / 100,
  54.                 height, hp, align1, align2, align3,
  55.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  56.     # オリジナルのHP描画処理を呼び出し
  57.     draw_actor_hp_original(actor, x, y, width)
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● SP ゲージの描画
  61.   #--------------------------------------------------------------------------
  62.   # オリジナルのSP描画を draw_actor_sp_original と名前変更
  63.   alias :draw_actor_sp_original :draw_actor_sp
  64.   def draw_actor_sp(actor, x, y, width = 144)
  65.     # 変数rateに 現在のSP/MSPを代入
  66.     if actor.maxsp != 0
  67.       rate = actor.sp.to_f / actor.maxsp
  68.     else
  69.       rate = 1
  70.     end
  71.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
  72.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
  73.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
  74.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
  75.     # align3:ゲージタイプ 0:左詰め 1:右詰め
  76.     plus_x = 0
  77.     rate_x = 0
  78.     plus_y = 25
  79.     plus_width = 0
  80.     rate_width = 100
  81.     height = 10
  82.     align1 = 1
  83.     align2 = 2
  84.     align3 = 0
  85.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
  86.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
  87.     grade1 = 1
  88.     grade2 = 0
  89.     # 色設定。color1:外枠,color2:中枠
  90.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー
  91.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー
  92.     color1 = Color.new(0, 0, 0, 192)
  93.     color2 = Color.new(255, 255, 192, 192)
  94.     color3 = Color.new(0, 0, 0, 192)
  95.     color4 = Color.new(0, 64, 0, 192)
  96.     color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)
  97.     color6 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)
  98.     # 変数spに描画するゲージの幅を代入
  99.     if actor.maxsp != 0
  100.       sp = (width + plus_width) * actor.sp * rate_width / 100 / actor.maxsp
  101.     else
  102.       sp = (width + plus_width) * rate_width / 100
  103.     end
  104.     # ゲージの描画
  105.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  106.                 width, plus_width + width * rate_width / 100,
  107.                 height, sp, align1, align2, align3,
  108.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  109.     # オリジナルのSP描画処理を呼び出し
  110.     draw_actor_sp_original(actor, x, y, width)
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● EXP ゲージの描画
  114.   #--------------------------------------------------------------------------
  115.   # オリジナルのEXP描画を draw_actor_sp_original と名前変更
  116.   alias :draw_actor_exp_original :draw_actor_exp
  117.   def draw_actor_exp(actor, x, y, width = 204)
  118.     # 変数rateに 現在のexp/nextexpを代入
  119.     if actor.next_exp != 0
  120.       rate = actor.now_exp.to_f / actor.next_exp
  121.     else
  122.       rate = 1
  123.     end
  124.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
  125.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
  126.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
  127.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
  128.     # align3:ゲージタイプ 0:左詰め 1:右詰め
  129.     plus_x = 0
  130.     rate_x = 0
  131.     plus_y = 25
  132.     plus_width = 0
  133.     rate_width = 100
  134.     height = 10
  135.     align1 = 1
  136.     align2 = 2
  137.     align3 = 0
  138.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
  139.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
  140.     grade1 = 1
  141.     grade2 = 0
  142.     # 色設定。color1:外枠,color2:中枠
  143.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー
  144.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー
  145.     color1 = Color.new(0, 0, 0, 192)
  146.     color2 = Color.new(255, 255, 192, 192)
  147.     color3 = Color.new(0, 0, 0, 192)
  148.     color4 = Color.new(64, 0, 0, 192)
  149.     color5 = Color.new(80 * rate, 80 - 80 * rate ** 2, 80 - 80 * rate, 192)
  150.     color6 = Color.new(240 * rate, 240 - 240 * rate ** 2, 240 - 240 * rate, 192)
  151.     # 変数expに描画するゲージの幅を代入
  152.     if actor.next_exp != 0
  153.       exp = (width + plus_width) * actor.now_exp * rate_width /
  154.                                                           100 / actor.next_exp
  155.     else
  156.       exp = (width + plus_width) * rate_width / 100
  157.     end
  158.     # ゲージの描画
  159.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  160.                 width, plus_width + width * rate_width / 100,
  161.                 height, exp, align1, align2, align3,
  162.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  163.     # オリジナルのEXP描画処理を呼び出し
  164.     draw_actor_exp_original(actor, x, y)
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # ● ゲージの描画
  168.   #--------------------------------------------------------------------------
  169.   def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
  170.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  171.     case align1
  172.     when 1
  173.       x += (rect_width - width) / 2
  174.     when 2
  175.       x += rect_width - width
  176.     end
  177.     case align2
  178.     when 1
  179.       y -= height / 2
  180.     when 2
  181.       y -= height
  182.     end
  183.     # 枠描画
  184.     self.contents.fill_rect(x, y, width, height, color1)
  185.     self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
  186.     if align3 == 0
  187.       if grade1 == 2
  188.         grade1 = 3
  189.       end
  190.       if grade2 == 2
  191.         grade2 = 3
  192.       end
  193.     end
  194.     if (align3 == 1 and grade1 == 0) or grade1 > 0
  195.       color = color3
  196.       color3 = color4
  197.       color4 = color
  198.     end
  199.     if (align3 == 1 and grade2 == 0) or grade2 > 0
  200.       color = color5
  201.       color5 = color6
  202.       color6 = color
  203.     end
  204.     # 空ゲージの描画
  205.     self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
  206.                                   color3, color4, grade1)
  207.     if align3 == 1
  208.       x += width - gauge
  209.     end
  210.     # 実ゲージの描画
  211.     self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
  212.                                   color5, color6, grade2)
  213.   end
  214. end
复制代码



附带的一个脚本插件『|-Bitmap(描绘渐变色)』
  1. class Bitmap
  2.   #--------------------------------------------------------------------------
  3.   # ● 矩形渐变色表示
  4.   #     color1 : 颜色1
  5.   #     color2 : 颜色2
  6.   #     align  :  0:横渐变
  7.   #               1:纵渐变
  8.   #               2:斜渐变
  9.   #--------------------------------------------------------------------------
  10.   def gradation_rect(x, y, width, height, color1, color2, align = 0)
  11.     if align == 0
  12.       for i in x...x + width
  13.         red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
  14.         green = color1.green +
  15.                 (color2.green - color1.green) * (i - x) / (width - 1)
  16.         blue  = color1.blue +
  17.                 (color2.blue - color1.blue) * (i - x) / (width - 1)
  18.         alpha = color1.alpha +
  19.                 (color2.alpha - color1.alpha) * (i - x) / (width - 1)
  20.         color = Color.new(red, green, blue, alpha)
  21.         fill_rect(i, y, 1, height, color)
  22.       end
  23.     elsif align == 1
  24.       for i in y...y + height
  25.         red   = color1.red +
  26.                 (color2.red - color1.red) * (i - y) / (height - 1)
  27.         green = color1.green +
  28.                 (color2.green - color1.green) * (i - y) / (height - 1)
  29.         blue  = color1.blue +
  30.                 (color2.blue - color1.blue) * (i - y) / (height - 1)
  31.         alpha = color1.alpha +
  32.                 (color2.alpha - color1.alpha) * (i - y) / (height - 1)
  33.         color = Color.new(red, green, blue, alpha)
  34.         fill_rect(x, i, width, 1, color)
  35.       end
  36.     elsif align == 2
  37.       for i in x...x + width
  38.         for j in y...y + height
  39.           red   = color1.red + (color2.red - color1.red) *
  40.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  41.           green = color1.green + (color2.green - color1.green) *
  42.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  43.           blue  = color1.blue + (color2.blue - color1.blue) *
  44.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  45.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  46.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  47.           color = Color.new(red, green, blue, alpha)
  48.           set_pixel(i, j, color)
  49.         end
  50.       end
  51.     elsif align == 3
  52.       for i in x...x + width
  53.         for j in y...y + height
  54.           red   = color1.red + (color2.red - color1.red) *
  55.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  56.           green = color1.green + (color2.green - color1.green) *
  57.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  58.           blue  = color1.blue + (color2.blue - color1.blue) *
  59.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  60.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  61.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  62.           color = Color.new(red, green, blue, alpha)
  63.           set_pixel(i, j, color)
  64.         end
  65.       end
  66.     end
  67.   end
  68. end
复制代码



和我的脚本放一起,玩的时候把菜单打开就会出错..
附上偶的脚本文件,这个文件是还木有把这个血槽描绘加进去滴..
各位大大还得劳烦自己动手一下...谢谢了!

http://rpg.blue/upload_program/files/Scripts_96663936.rar
你好,我是蓝狐狸。

Lv2.观梦者

飛狐耶

梦石
0
星屑
315
在线时间
55 小时
注册时间
2007-12-15
帖子
573
2
 楼主| 发表于 2008-7-17 14:25:58 | 只看该作者
各位大大进来看看呵``{/pz}
你好,我是蓝狐狸。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

逃兵

3
发表于 2008-7-17 18:32:50 | 只看该作者
请附上出现错误提示的对话框的图
「If you judge people, you have no time to love them.」—— Mother Teresa
回复 支持 反对

使用道具 举报

Lv2.观梦者

飛狐耶

梦石
0
星屑
315
在线时间
55 小时
注册时间
2007-12-15
帖子
573
4
 楼主| 发表于 2008-7-19 21:38:30 | 只看该作者
哦……好滴……
你好,我是蓝狐狸。
回复 支持 反对

使用道具 举报

Lv2.观梦者

飛狐耶

梦石
0
星屑
315
在线时间
55 小时
注册时间
2007-12-15
帖子
573
5
 楼主| 发表于 2008-7-19 22:04:21 | 只看该作者
哦,找到原因咯,忘了复制一个“在菜单中显示当前及下一级EXP”的脚本,谢谢大家!
偶结帖啦!~
你好,我是蓝狐狸。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-8-9 13:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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