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

Project1

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

[已经过期] 关于战斗的问题

[复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
22 小时
注册时间
2010-8-15
帖子
22
跳转到指定楼层
1
发表于 2010-8-18 12:09:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

梦石
0
星屑
50
在线时间
180 小时
注册时间
2010-8-17
帖子
770
2
发表于 2010-8-18 12:23:55 | 只看该作者
。。。。。。。偶也不晓得
人生就是一场容量为70亿G的游戏,尽管有众多的NPC,但玩家却只有自己一个。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2010-7-29
帖子
69
3
发表于 2010-8-18 17:01:26 | 只看该作者
不知道战斗系统不同会不会影响到,但先给你个血槽的,不知道你能不能用
  1. #==============================================================================
  2. # ■ Game_Actor
  3. #------------------------------------------------------------------------------
  4. #  アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors)
  5. # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。
  6. #==============================================================================

  7. class Game_Actor < Game_Battler
  8.   def now_exp
  9.     return @exp - @exp_list[@level]
  10.   end
  11.   def next_exp
  12.     return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  13.   end
  14. end

  15. #==============================================================================
  16. # ■ Window_Base
  17. #------------------------------------------------------------------------------
  18. #  ゲーム中のすべてのウィンドウのスーパークラスです。
  19. #==============================================================================

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

  230. #------------------------------------------------------------------------------
  231. #  Bitmapクラスに新たな機能を追加します。
  232. #==============================================================================

  233. class Bitmap
  234.   #--------------------------------------------------------------------------
  235.   # ● 矩形をグラデーション表示
  236.   #     color1 : スタートカラー
  237.   #     color2 : エンドカラー
  238.   #     align  :  0:横にグラデーション
  239.   #               1:縦にグラデーション
  240.   #               2:斜めにグラデーション(激重につき注意)
  241.   #--------------------------------------------------------------------------
  242.   def gradation_rect(x , y, width, height, color1, color2, align = 0)
  243.     if align == 0
  244.       for i in x...x + width
  245.         red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
  246.         green = color1.green +
  247.                 (color2.green - color1.green) * (i - x) / (width - 1)
  248.         blue  = color1.blue +
  249.                 (color2.blue - color1.blue) * (i - x) / (width - 1)
  250.         alpha = color1.alpha +
  251.                 (color2.alpha - color1.alpha) * (i - x) / (width - 1)
  252.         color = Color.new(red, green, blue, alpha)
  253.         fill_rect(i, y, 1, height, color)
  254.       end
  255.     elsif align == 1
  256.       for i in y...y + height
  257.         red   = color1.red +
  258.                 (color2.red - color1.red) * (i - y) / (height - 1)
  259.         green = color1.green +
  260.                 (color2.green - color1.green) * (i - y) / (height - 1)
  261.         blue  = color1.blue +
  262.                 (color2.blue - color1.blue) * (i - y) / (height - 1)
  263.         alpha = color1.alpha +
  264.                 (color2.alpha - color1.alpha) * (i - y) / (height - 1)
  265.         color = Color.new(red, green, blue, alpha)
  266.         fill_rect(x, i, width, 1, color)
  267.       end
  268.     elsif align == 2
  269.       for i in x...x + width
  270.         for j in y...y + height
  271.           red   = color1.red + (color2.red - color1.red) *
  272.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  273.           green = color1.green + (color2.green - color1.green) *
  274.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  275.           blue  = color1.blue + (color2.blue - color1.blue) *
  276.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  277.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  278.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  279.           color = Color.new(red, green, blue, alpha)
  280.           set_pixel(i, j, color)
  281.         end
  282.       end
  283.     elsif align == 3
  284.       for i in x...x + width
  285.         for j in y...y + height
  286.           red   = color1.red + (color2.red - color1.red) *
  287.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  288.           green = color1.green + (color2.green - color1.green) *
  289.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  290.           blue  = color1.blue + (color2.blue - color1.blue) *
  291.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  292.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  293.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  294.           color = Color.new(red, green, blue, alpha)
  295.           set_pixel(i, j, color)
  296.         end
  297.       end
  298.     end
  299.   end
  300. end




  301. #==============================================================================
  302. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  303. #==============================================================================
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-5
帖子
483
4
发表于 2010-8-18 17:09:25 | 只看该作者
1,头像:请在天干宝典里找,找不到就到站内找
2,血槽:想要什么风格的?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-6 22:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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