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

Project1

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

[已经过期] 怎么写脚本才能通过变量增加怪物的血量上限

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2013-11-20
帖子
23
跳转到指定楼层
1
发表于 2015-2-28 14:20:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如题 ,通过变量增加角色的血量上限可以通过事件里的能力值做到,也可以用事件做到通过变量增加怪物的生命值,

可是就是没有用变量来增加怪物的生命值上限的,笔者苦思冥想实在没有办法,来求66的大神们给予帮助,

据我所知  只能通过脚本来实现了   ,笔者 对于脚本一窍不通    有 大神 知道的能动一下举手之劳吗~

                                                                                      在这里祝看此贴的兄弟   羊年大吉   心想事成    妹子多多............

Lv5.捕梦者

梦石
0
星屑
33488
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 2015-2-28 14:58:18 | 只看该作者
  1. #用变量额外补充敌人最大血量。
  2. #最大血量 = 数据库最大血量 + [敌人ID + 200]号变量的值。
  3. #比如 1 号敌人最大血量 = 数据库血量 + 变量 201
  4. #这个只管最大血量,当前血量不会变动。
  5. #==============================================================================
  6. class Game_Enemy < Game_Battler
  7.   #--------------------------------------------------------------------------
  8.   # ● 获取基本 MaxHP
  9.   #--------------------------------------------------------------------------
  10.   def base_maxhp
  11.     return $data_enemies[@enemy_id].maxhp + $game_variables[@enemy_id+200]
  12.   end
  13. end
  14. #==============================================================================
复制代码

评分

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

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2013-11-20
帖子
23
3
 楼主| 发表于 2015-2-28 15:14:05 | 只看该作者
芯☆淡茹水 发表于 2015-2-28 14:58


谢谢好心人啊        前面几行中文  跟 脚本 无关吧?

点评

注释  发表于 2015-2-28 15:22
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2013-11-20
帖子
23
4
 楼主| 发表于 2015-2-28 16:01:07 | 只看该作者
芯☆淡茹水 发表于 2015-2-28 14:58

那我的变量 ,假如是 V001  是不是直接把200换成V001?    敌人ID是不是等于怪物的名字?

向这样#用变量额外补充敌人最大血量。
#最大血量 = 数据库最大血量 + [怪物1 + V001]号变量的值。
#比如 1 号敌人最大血量 = 数据库血量 + 变量 201
#这个只管最大血量,当前血量不会变动。
#==============================================================================
class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● 获取基本 MaxHP
  #--------------------------------------------------------------------------
  def base_maxhp
    return $data_enemies[@enemy_id].maxhp + $game_variables[@enemy_怪物1+V001]
  end
end
#==============================================================================

点评

脚本插入即可,不用在脚本上改。你要设置的话就直接用事件来给变量赋值即可。201号变量对应1号敌人的HP增加值,202号变量对应2号敌人,以此类推  发表于 2015-2-28 16:09
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2013-11-20
帖子
23
5
 楼主| 发表于 2015-2-28 16:51:14 | 只看该作者
wyjay11 发表于 2015-2-28 16:01
那我的变量 ,假如是 V001  是不是直接把200换成V001?    敌人ID是不是等于怪物的名字?

向这样#用变量 ...

不知道你说的跟我想的一样不,  比如说,我在事件里做个随机变量定为V001,它的随机值可以被设为怪物1的HP增加值,我在另一个事件里再做个随机变量定为V002,他就是另一个怪物的HP增加值,根据你给我的脚本,我怎么把随机变量V001和V002带入到你的脚本里呢?   改什么才可以变成我说的 ?  因为我想的是 不同的怪增加不同的血量上限,而且是随机的 ,所以 是不是把我说的 V001替换成你写的 201之类的呢?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2013-11-20
帖子
23
6
 楼主| 发表于 2015-2-28 16:52:22 | 只看该作者
wyjay11 发表于 2015-2-28 15:14
谢谢好心人啊        前面几行中文  跟 脚本 无关吧?

不知道你说的跟我想的一样不,  比如说,我在事件里做个随机变量定为V001,它的随机值可以被设为怪物1的HP增加值,我在另一个事件里再做个随机变量定为V002,他就是另一个怪物的HP增加值,根据你给我的脚本,我怎么把随机变量V001和V002带入到你的脚本里呢?   改什么才可以变成我说的 ?  因为我想的是 不同的怪增加不同的血量上限,而且是随机的 ,所以 是不是把我说的 V001替换成你写的 201之类的呢?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2013-11-20
帖子
23
7
 楼主| 发表于 2015-2-28 22:28:12 | 只看该作者
芯☆淡茹水 发表于 2015-2-28 14:58

你做的脚本我试过了,不会用。怎么把我设的变量代入到你的脚本里呢?

那个201哪来的?  事件里的变量都是V001...2之类的,所以我把201用/{v001}代替 没用  ,怎么调呢?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33488
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

8
发表于 2015-2-28 23:09:11 | 只看该作者
ID为 1 的敌人最大血量 = 本身最大血量 加上 201 号变量的值;
ID为 2 的敌人最大血量 = 本身最大血量 加上 202 号变量的值;
ID为 3 的敌人最大血量 = 本身最大血量 加上 203 号变量的值;


以此类推

你要改变某个敌人最大血量,只需要改变其相对应的变量值就行了。
比如 10 号敌人,就改变 210 号变量值。
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2013-11-20
帖子
23
9
 楼主| 发表于 2015-3-1 14:20:26 | 只看该作者
芯☆淡茹水 发表于 2015-2-28 14:58


帮我看下这个脚本吧,朋友。我在66找的显示怪物血量的脚本,可是放进去一点反应都没有





#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================




#◆◇◆◇◆-----XRXS54. マップ上で簡易ウィンドウ表示 ver1.0 -----◇◆◇◆◇
# by 刻宮

# 「ディフォルト機能 & 仕様」
#  ・$WIN_2 = true。としても、スイッチがONでかつ、アクターが存在しなければ
#   ウィンドウは表示されません。この3要素が揃った時にウィンドウを表示します。
#  ・逆にこの要素が一つでも欠けるとウィンドウは自動的に非表示になります。
#  ・ツクール開始時はスイッチはOFFなので、ONにしないと表示されません。
#------------------------------------------------------------------
# カスタマイズポイント
#(*存在しないスイッチを指定されるとエラーになります。)


#----------------------------------------------------------------
# 使用说明(66RPG提示:本脚本其实难度不是很高,建议学习RGSS略有心得
#           的人尝试自己编写一个同类功能窗口)
#----------------------------------------------------------------
WIN_1     = true  # 是否使用1号窗口,true为使用,false为不使用
SWITVH_1  = 494   # 当此编号开关打开的时候窗口显示。如设置为40则40号开关打开,1号窗口显示
OPACITY_1 = 0 # 1号窗口透明度
X_1       = 320     # 1号窗口X坐标
Y_1       = 384   # 1号窗口Y坐标

$WIN_2    = true  # 是否使用2号窗口,true为使用,false为不使用
SWITVH_2  = 41    # 当此编号开关打开的时候窗口显示。如设置为41则41号开关打开,2号窗口显示
OPACITY_2 = 255   # 2号窗口透明度
X_2       = 160   # 2号窗口X坐标
Y_2       = 384   # 2号窗口Y坐标

WIN_3     = true  # 是否使用3号窗口,true为使用,false为不使用
SWITVH_3  = 42    # 当此编号开关打开的时候窗口显示。如设置为42则42号开关打开,3号窗口显示
OPACITY_3 = 255   # 3号窗口透明度
X_3       = 320   # 3号窗口X坐标
Y_3       = 384   # 3号窗口Y坐标

WIN_4     = true  # 是否使用4号窗口,true为使用,false为不使用
SWITVH_4  = 43    # 当此编号开关打开的时候窗口显示。如设置为43则43号开关打开,4号窗口显示
OPACITY_4 = 255   # 4号窗口透明度
X_4       = 480   # 4号窗口X坐标
Y_4       = 384   # 4号窗口Y坐标

SET_SP    = [false,false,true,true] # 决定各个窗口是否显示SP数值,true为显示,false为不显示。
OPTION    =44   # 决定在对话的时候是否让窗口隐藏的开关编号。
                   # 比如设置为44,则当44号开关打开,则在对话的时候窗口隐藏
                   # 否则窗口不隐藏。


#=========================================================================
# ■ Scene_Map
#=========================================================================
class Scene_Map
#---------------------------------------------------------------------
# ● フレーム更新
#---------------------------------------------------------------------
alias main_tokimiya main
def main
   # 簡易ウィンドウ1を作成
     @simple_window1 = Window_MapStatus.new(X_1,Y_1,0)
        @simple_window1.opacity = OPACITY_1
     @simple_window1.visible = $game_switches[SWITVH_1]
     unless $game_party.actors.size > 0
       @simple_window1.visible = false
     end
   # 簡易ウィンドウ2を作成
     @simple_window2 = Window_MapStatus.new(X_2,Y_2,1)
     @simple_window2.opacity = OPACITY_2
     @simple_window2.visible = $game_switches[SWITVH_2]
     unless $game_party.actors.size > 1
       @simple_window2.visible = false
     end
   # 簡易ウィンドウ3を作成
     @simple_window3 = Window_MapStatus.new(X_3,Y_3,2)
     @simple_window3.opacity = OPACITY_3
     @simple_window3.visible = $game_switches[SWITVH_3]
     unless $game_party.actors.size > 2
       @simple_window3.visible = false
     end
   # 簡易ウィンドウ4を作成
     @simple_window4 = Window_MapStatus.new(X_4,Y_4,3)
     @simple_window4.opacity = OPACITY_4
     @simple_window4.visible = $game_switches[SWITVH_4]
     unless $game_party.actors.size > 3
       @simple_window4.visible = false
     end

     main_tokimiya   # 旧メソッドの呼び出し

   # 簡易ウィンドウの解放
     @simple_window1.dispose
     @simple_window2.dispose
     @simple_window3.dispose
     @simple_window4.dispose
end

#---------------------------------------------------------------------
# ● フレーム更新
#---------------------------------------------------------------------
alias update_tokimiya update
def update
   update_tokimiya   # 旧メソッドの呼び出し
   # 以前のパラメーターと相違があれば、内容を更新する。
   #
   # ウィンドウ1の更新。
   if WIN_1 == true and $game_party.actors.size > 0
     # データの更新
     actor = $game_party.actors[0]
     factor_1 = @simple_window1.before_1[0] != actor.name
     factor_2 = @simple_window1.before_1[1] != actor.hp
     factor_3 = @simple_window1.before_1[2] != actor.sp
     if factor_1 or factor_2 or factor_3
       @simple_window1.before_1[0] = actor.name
       @simple_window1.before_1[1] = actor.hp
       @simple_window1.before_1[2] = actor.sp
       @simple_window1.refresh(0)
     end
     # 非表示機能の実行
     if @message_window.visible == true and $game_switches[OPTION] == true
       @simple_window1.before_1[3] = false
       @simple_window1.visible = false
     elsif @simple_window1.before_1[3] != $game_switches[SWITVH_1]
       @simple_window1.before_1[3] = $game_switches[SWITVH_1]
       @simple_window1.visible = $game_switches[SWITVH_1]
     end
   end

   # ウィンドウ2の更新。
   if $WIN_2 == true and $game_party.actors.size > 1
     # データの更新
     actor = $game_party.actors[1]
     factor_1 = @simple_window2.before_2[0] != actor.name
     factor_2 = @simple_window2.before_2[1] != actor.hp
     factor_3 = @simple_window2.before_2[2] != actor.sp
     if factor_1 or factor_2 or factor_3
       @simple_window2.before_2[0] = actor.name
       @simple_window2.before_2[1] = actor.hp
       @simple_window2.before_2[2] = actor.sp
       @simple_window2.refresh(1)
       # ウィンドウを強制的に生成
       @simple_window2.before_2[3] = true
       @simple_window2.visible = true
     end
     # 非表示機能の実行
     if @message_window.visible == true and $game_switches[OPTION] == true
       @simple_window2.before_2[3] = false
       @simple_window2.visible = false
     elsif @simple_window2.before_2[3] != $game_switches[SWITVH_2]
       @simple_window2.before_2[3] = $game_switches[SWITVH_2]
       @simple_window2.visible = $game_switches[SWITVH_2]
     end
   # アクターが存在しないのにウィンドウが表示されたままの場合。
   elsif @simple_window2.visible == true and @simple_window2.before_2 != nil
     # ウィンドウを消去。
     @simple_window2.before_2[3] = false
     @simple_window2.visible = false
   end

   # ウィンドウ3の更新。
   if WIN_3 == true and $game_party.actors.size > 2
     # データの更新
     actor = $game_party.actors[2]
     factor_1 = @simple_window3.before_3[0] != actor.name
     factor_2 = @simple_window3.before_3[1] != actor.hp
     factor_3 = @simple_window3.before_3[2] != actor.sp
     if factor_1 or factor_2 or factor_3
       @simple_window3.before_3[0] = actor.name
       @simple_window3.before_3[1] = actor.hp
       @simple_window3.before_3[2] = actor.sp
       @simple_window3.refresh(2)
       # ウィンドウを強制的に生成
       @simple_window3.before_3[3] = true
       @simple_window3.visible = true
     end
     # 非表示機能の実行
     if @message_window.visible == true and $game_switches[OPTION] == true
       @simple_window3.before_3[3] = false
       @simple_window3.visible = false
     elsif @simple_window3.before_3[3] != $game_switches[SWITVH_3]
       @simple_window3.before_3[3] = $game_switches[SWITVH_3]
       @simple_window3.visible = $game_switches[SWITVH_3]
     end
   # アクターが存在しないのにウィンドウが表示されたままの場合。
   elsif @simple_window3.visible == true and @simple_window3.before_3 != nil
     # ウィンドウを消去。
     @simple_window3.before_3[3] = false
     @simple_window3.visible = false
   end

   # ウィンドウ4の更新。
   if WIN_4 == true and $game_party.actors.size > 3
     # データの更新
     actor = $game_party.actors[3]
     factor_1 = @simple_window4.before_4[0] != actor.name
     factor_2 = @simple_window4.before_4[1] != actor.hp
     factor_3 = @simple_window4.before_4[2] != actor.sp
     if factor_1 or factor_2 or factor_3
       @simple_window4.before_4[0] = actor.name
       @simple_window4.before_4[1] = actor.hp
       @simple_window4.before_4[2] = actor.sp
       @simple_window4.refresh(3)
       # ウィンドウを強制的に生成
       @simple_window4.before_4[3] = true
       @simple_window4.visible = true
     end
     # 非表示機能の実行
     if @message_window.visible == true and $game_switches[OPTION] == true
       @simple_window4.before_4[3] = false
       @simple_window4.visible = false
     elsif @simple_window4.before_4[3] != $game_switches[SWITVH_4]
       @simple_window4.before_4[3] = $game_switches[SWITVH_4]
       @simple_window4.visible = $game_switches[SWITVH_4]
     end
   # アクターが存在しないのにウィンドウが表示されたままの場合。
   elsif @simple_window4.visible == true and @simple_window4.before_4 != nil
     # ウィンドウを消去。
     @simple_window4.before_4[3] = false
     @simple_window4.visible = false
   end
end
end



#=========================================================================
# ■ Window_MapStatus,脚本来自www.66rpg.com,转载请注意说明
#=========================================================================
class Window_MapStatus < Window_Base
#--------------------------------------------------------------------------
# ○ 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor   :before_1              # 更新前のウィンドウ1のパラメーター
attr_accessor   :before_2              # 更新前のウィンドウ2のパラメーター
attr_accessor   :before_3              # 更新前のウィンドウ3のパラメーター
attr_accessor   :before_4              # 更新前のウィンドウ4のパラメーター
#---------------------------------------------------------------------
# ● フレーム更新
#---------------------------------------------------------------------
def initialize(x,y,id)
   #super(x,y,160,96)
   super(0,0,640,128)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.size = 18
   @before_1=[]
   @before_2=[]
   @before_3=[]
   @before_4=[]
    # 現段階のアクターのパラメーターと可視状態を記憶。
   data
   # 項目の描画。
   refresh(id)
end
#--------------------------------------------------------------------------
# ● 項目の描画
#--------------------------------------------------------------------------
def data
   # アクター1の記憶(ただし、パーティが1名以上の場合)
   if $game_party.actors.size > 0
     actor = $game_party.actors[0]
     @before_1 = [actor.name, actor.hp, actor.sp,true]
   end
   # アクター2の記憶(ただし、パーティが2名以上の場合)
   if $game_party.actors.size > 1
     actor = $game_party.actors[1]
     @before_2 = [actor.name, actor.hp, actor.sp,true]
   end
   # アクター3の記憶(ただし、パーティが3名以上の場合)
   if $game_party.actors.size > 2
     actor = $game_party.actors[2]
     @before_3 = [actor.name, actor.hp, actor.sp,true]
   end
   # アクター3の記憶(ただし、パーティが4名以上の場合)
   if $game_party.actors.size > 3
     actor = $game_party.actors[3]
     @before_4 = [actor.name, actor.hp, actor.sp,true]
   end
end
#--------------------------------------------------------------------------
# ● 項目の描画
#--------------------------------------------------------------------------
def refresh(id)
   # 再描画のために一旦内容を破棄する
   self.contents.clear
   # 対応するアクターがいなければ、何もせずに終了する。
   actor = $game_party.actors[id]
   if actor == nil
     return
   end
   # 名前の描画
   draw_actor_name(actor, 0, -5)
   # HPの描画
   if SET_SP[id]
     draw_actor_hp_bar(actor, 0, 18)
   else
     draw_actor_hp_bar(actor, 0, 28)
   end
   # SPの描画
   if SET_SP[id]
     draw_actor_sp_bar(actor, 0, 36)
   end
end
end


class Window_Base < Window
#--------------------------------------------------------------------------
# ● HP ゲージの描画
#--------------------------------------------------------------------------
# オリジナルのHP描画を draw_actor_hp_original と名前変更
def draw_actor_hp_bar(actor, x, y, width = 144)
   # 変数rateに 現在のHP/MHPを代入
   if actor.maxhp != 0
     rate = actor.hp.to_f / actor.maxhp
   else
     rate = 0
   end
   # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
   # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
   # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
   # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
   # align3:ゲージタイプ 0:左詰め 1:右詰め
   plus_x = 0
   rate_x = 120#HP条的X
   plus_y = 25#HP条的Y
   plus_width = 0
   rate_width = 300 #HP条的高
   height = 10#HP条的高
   align1 = 1
   align2 = 2
   align3 = 0
   # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
   # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
   grade1 = 1
   grade2 = 0
   # 色設定。color1:外枠,color2:中枠
   # color3:空ゲージダークカラー,color4:空ゲージライトカラー
   # color5:実ゲージダークカラー,color6:実ゲージライトカラー
   color1 = Color.new(0, 0, 0, 192)
   color2 = Color.new(255, 255, 192, 192)
   color3 = Color.new(0, 0, 0, 192)
   color4 = Color.new(64, 0, 0, 192)
   color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)
   color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)







   # 変数spに描画するゲージの幅を代入
   if actor.maxhp != 0
     hp = (width + plus_width) * actor.hp * rate_width / 100 / actor.maxhp
   else
     hp = 0
   end
   # ゲージの描画
   gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
               width, plus_width + width * rate_width / 100,
               height, hp, align1, align2, align3,
               color1, color2, color3, color4, color5, color6, grade1, grade2)

end
#--------------------------------------------------------------------------
# ● SP ゲージの描画
#--------------------------------------------------------------------------
# オリジナルのSP描画を draw_actor_sp_original と名前変更

def draw_actor_sp_bar(actor, x, y, width = 144)
   # 変数rateに 現在のSP/MSPを代入
   if actor.maxsp != 0
     rate = actor.sp.to_f / actor.maxsp
   else
     rate = 1
   end
   # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
   # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
   # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
   # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
   # align3:ゲージタイプ 0:左詰め 1:右詰め
   plus_x = 0
   rate_x = 120#SP条的X
   plus_y = 25#SP条的Y
   plus_width = 0
   rate_width = 300 #SP条宽
   height = 10#SP条的高
   align1 = 1
   align2 = 2
   align3 = 0
   # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
   # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
   grade1 = 1
   grade2 = 0
   # 色設定。color1:外枠,color2:中枠
   # color3:空ゲージダークカラー,color4:空ゲージライトカラー
   # color5:実ゲージダークカラー,color6:実ゲージライトカラー
   color1 = Color.new(0, 0, 0, 192)
   color2 = Color.new(255, 255, 192, 192)
   color3 = Color.new(0, 0, 0, 192)
   color4 = Color.new(0, 64, 0, 192)
   color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)
   color6 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)
   # 変数spに描画するゲージの幅を代入
   if actor.maxsp != 0
     sp = (width + plus_width) * actor.sp * rate_width / 100 / actor.maxsp
   else
     sp = (width + plus_width) * rate_width / 100
   end
   # ゲージの描画
   gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
               width, plus_width + width * rate_width / 100,
               height, sp, align1, align2, align3,
               color1, color2, color3, color4, color5, color6, grade1, grade2)
   # オリジナルのSP描画処理を呼び出し

end  
end


def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
               color1, color2, color3, color4, color5, color6, grade1, grade2)
   case align1
   when 1
     x += (rect_width - width) / 2
   when 2
     x += rect_width - width
   end
   case align2
   when 1
     y -= height / 2
   when 2
     y -= height
   end
   # 枠描画
   self.contents.fill_rect(x, y, width, height, color1)
   self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
   if align3 == 0
     if grade1 == 2
       grade1 = 3
     end
     if grade2 == 2
       grade2 = 3
     end
   end
   if (align3 == 1 and grade1 == 0) or grade1 > 0
     color = color3
     color3 = color4
     color4 = color
   end
   if (align3 == 1 and grade2 == 0) or grade2 > 0
     color = color5
     color5 = color6
     color6 = color
   end
   # 空ゲージの描画
   self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
                                 color3, color4, grade1)
   if align3 == 1
     x += width - gauge
   end
   # 実ゲージの描画
   self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
                                 color5, color6, grade2)
end





class Bitmap
#--------------------------------------------------------------------------
# ● 矩形をグラデーション表示
#     color1 : スタートカラー
#     color2 : エンドカラー
#     align  :  0:横にグラデーション
#               1:縦にグラデーション
#               2:斜めにグラデーション(激重につき注意)
#--------------------------------------------------------------------------
def gradation_rect(x, y, width, height, color1, color2, align = 0)
   if align == 0
     for i in x...x + width
       red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
       green = color1.green +
               (color2.green - color1.green) * (i - x) / (width - 1)
       blue  = color1.blue +
               (color2.blue - color1.blue) * (i - x) / (width - 1)
       alpha = color1.alpha +
               (color2.alpha - color1.alpha) * (i - x) / (width - 1)
       color = Color.new(red, green, blue, alpha)
       fill_rect(i, y, 1, height, color)
     end
   elsif align == 1
     for i in y...y + height
       red   = color1.red +
               (color2.red - color1.red) * (i - y) / (height - 1)
       green = color1.green +
               (color2.green - color1.green) * (i - y) / (height - 1)
       blue  = color1.blue +
               (color2.blue - color1.blue) * (i - y) / (height - 1)
       alpha = color1.alpha +
               (color2.alpha - color1.alpha) * (i - y) / (height - 1)
       color = Color.new(red, green, blue, alpha)
       fill_rect(x, i, width, 1, color)
     end
   elsif align == 2
     for i in x...x + width
       for j in y...y + height
         red   = color1.red + (color2.red - color1.red) *
                 ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
         green = color1.green + (color2.green - color1.green) *
                 ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
         blue  = color1.blue + (color2.blue - color1.blue) *
                 ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
         alpha = color1.alpha + (color2.alpha - color1.alpha) *
                 ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
         color = Color.new(red, green, blue, alpha)
         set_pixel(i, j, color)
       end
     end
   elsif align == 3
     for i in x...x + width
       for j in y...y + height
         red   = color1.red + (color2.red - color1.red) *
               ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
         green = color1.green + (color2.green - color1.green) *
               ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
         blue  = color1.blue + (color2.blue - color1.blue) *
               ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
         alpha = color1.alpha + (color2.alpha - color1.alpha) *
               ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
         color = Color.new(red, green, blue, alpha)
         set_pixel(i, j, color)
       end
     end
   end
end
end



#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

点评

请仔细阅读脚本设置里的说明,并正确的设置。  发表于 2015-3-1 15:07
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2013-11-20
帖子
23
10
 楼主| 发表于 2015-3-1 16:04:10 | 只看该作者
芯☆淡茹水 发表于 2015-2-28 14:58

我把true换成了 false  我只听懂了 这一句  ,我这样做了   也试过   没反应
我对C语言 完全 外行  能  告诉我 改哪里吗
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 08:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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