赞 | 0 |
VIP | 1 |
好人卡 | 0 |
积分 | 1 |
经验 | 1064 |
最后登录 | 2012-12-8 |
在线时间 | 4 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 4 小时
- 注册时间
- 2008-6-5
- 帖子
- 312
|
3楼
楼主 |
发表于 2009-2-6 23:21:13
|
只看该作者
哦!顺便再问一个...
- #==============================================================================
- # 本脚本来自www.66RPG.com,使用和转载请保留此信息
- #==============================================================================
-
- #◆◇◆◇◆-----XRXS54. マップ上で簡易ウィンドウ表示 ver1.0 -----◇◆◇◆◇
- # by 刻宮
- # 「ディフォルト機能 & 仕様」
- # ・$WIN_2 = true。としても、スイッチがONでかつ、アクターが存在しなければ
- # ウィンドウは表示されません。この3要素が揃った時にウィンドウを表示します。
- # ・逆にこの要素が一つでも欠けるとウィンドウは自動的に非表示になります。
- # ・ツクール開始時はスイッチはOFFなので、ONにしないと表示されません。
- #------------------------------------------------------------------
- # カスタマイズポイント
- #(*存在しないスイッチを指定されるとエラーになります。)
- #----------------------------------------------------------------
- # 使用说明(66RPG提示:本脚本其实难度不是很高,建议学习RGSS略有心得
- # 的人尝试自己编写一个同类功能窗口)
- #----------------------------------------------------------------
- WIN_1 = true # 是否使用1号窗口,true为使用,false为不使用
- SWITVH_1 = 40 # 当此编号开关打开的时候窗口显示。如设置为40则40号开关打开,1号窗口显示
- OPACITY_1 = 0 # 1号窗口透明度
- X_1 = 495 # 1号窗口X坐标
- Y_1 = -2 # 1号窗口Y坐标
-
-
- SET_SP = [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
-
- main_tokimiya # 旧メソッドの呼び出し
-
- # 簡易ウィンドウの解放
- @simple_window1.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
- end
-
- end
- class Game_Actor < Game_Battler
- def now_exp
- return @exp - @exp_list[@level]
- end
- def next_exp
- return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
- end
- end
-
-
- #==========================================================
- # ■ Window_Base
- #------------------------------------------------------------
- # ゲーム中のすべてのウィンドウのスーパークラスです。
- #============================================================
- class Window_Base < Window
- #--------------------------------------------------------
- # ● HP ゲージの描画
- #--------------------------------------------------
- # オリジナルのHP描画を draw_actor_hp_original と名前変更
- alias :draw_actor_hp_original :draw_actor_hp
- def draw_actor_hp2(actor, x, y, width = 124)
- # 変数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 = 0
- plus_y = 25
- plus_width = 0
- rate_width = 100
- height = 10
- 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)
- # オリジナルのHP描画処理を呼び出し
- draw_actor_hp_original(actor, x, y, width)
- end
- #--------------------------------------------------------------
- # ● SP ゲージの描画
- #------------------------------------------------------------
- # オリジナルのSP描画を draw_actor_sp_original と名前変更
- alias :draw_actor_sp_original :draw_actor_sp
- def draw_actor_sp2(actor, x, y, width = 124)
- # 変数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 = 0
- plus_y = 25
- plus_width = 0
- rate_width = 100
- height = 10
- 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描画処理を呼び出し
- draw_actor_sp_original(actor, x, y, width)
- end
- #--------------------------------------------------------
- # ● EXP ゲージの描画
- #----------------------------------------------------------
- # オリジナルのEXP描画を draw_actor_sp_original と名前変更
- alias :draw_actor_exp_original :draw_actor_exp
- def draw_actor_exp2(actor, x, y, width = 124)
- # 変数rateに 現在のexp/nextexpを代入
- if actor.next_exp != 0
- rate = actor.now_exp.to_f / actor.next_exp
- 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 = 0
- plus_y = 25
- plus_width = 0
- rate_width = 100
- height = 10
- 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 * rate, 80 - 80 * rate ** 2, 80 - 80 * rate, 192)
- color6 = Color.new(240 * rate, 240 - 240 * rate ** 2, 240 - 240 * rate, 192)
- # 変数expに描画するゲージの幅を代入
- if actor.next_exp != 0
- exp = (width + plus_width) * actor.now_exp * rate_width /
- 100 / actor.next_exp
- else
- exp = (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, exp, align1, align2, align3,
- color1, color2, color3, color4, color5, color6, grade1, grade2)
- # オリジナルのEXP描画処理を呼び出し
- draw_actor_exp_original(actor, x-20, y)
- 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
- end
- #--------------------------------------------------------------
- # Bitmapクラスに新たな機能を追加します。
- #===================================================================
- 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,使用和转载请保留此信息
- #==================================================================
-
-
-
-
-
-
-
-
- #=========================================================================
- # ■ Window_MapStatus,脚本来自www.66rpg.com,转载请注意说明
- #=========================================================================
- class Window_MapStatus < Window_Base
- #--------------------------------------------------------------------------
- # ○ 公開インスタンス変数
- #--------------------------------------------------------------------------
- attr_accessor :before_1 # 更新前のウィンドウ1のパラメーター
- #---------------------------------------------------------------------
- # ● フレーム更新
- #---------------------------------------------------------------------
- def initialize(x,y,id)
- super(x,y-32,160,96+32)
- self.contents = Bitmap.new(width - 32, height - 32)
- self.contents.font.size = 18
- @before_1=[]
- # 現段階のアクターのパラメーターと可視状態を記憶。
- 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
- 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_hp2(actor, 0, 18)
- else
- draw_actor_hp2(actor, 0, 28)
- end
- # SPの描画
- if SET_SP[id]
- draw_actor_sp2(actor, 0, 36)
- end
- draw_actor_exp2(actor,0,36+18)
- end
-
- end
- #==============================================================================
- # 本脚本来自www.66RPG.com,使用和转载请保留此信息
- #==============================================================================
复制代码
我使用了这个脚本后血条上为什么出现文字HP和SP我想去调怎么弄? |
|