楼主: 1142881837

[原创发布] 【小天搬运】RMXP、VX的几个脚本。

[复制链接]
梦石
0
星屑
1166
在线时间
127 小时
注册时间
2013-2-16
回帖
368
 楼主| 发表于 2013-4-30 19:59:03 | 显示全部楼层
10、一块画面的背景                                                            
[摘要]同步滚动地图滚动全景允许您使用作为背景图像。
此外,还有的能力共同指定为每个映射的全景图像。
[脚本][pre lang="ruby" line="1"]#==============================================================================
# ++ 一枚絵を背景化 ver. 1.00 ++
#------------------------------------------------------------------------------
# パノラマ画像のスクロールをマップのスクロールと同期させ
# 背景画像として使えるようにします。
#==============================================================================

module PARA_PANORAMA
  
  # パノラマのスクロールをマップと同期させる
  #( 0:しない 1:する 2:イベントスイッチで制御 )
  FIX = 1
  # スイッチ制御に使用するスイッチ番号
  FIX_SWITCH = 999
  
  # 画像ファイルの一括指定
  #( PANORAMA[ マップID ] = ファイル名 )
  PANORAMA=[]#←この行は削除しないでください
  PANORAMA[1] = "001-Sky01"
  PANORAMA[2] = "002-Sky02"
  
end

# ↑ 設定項目ここまで
#------------------------------------------------------------------------------

#==============================================================================
# ■ Spriteset_Map
#==============================================================================

class Spriteset_Map

  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_parapano initialize
  def initialize
    initialize_parapano
    #パノラマ画像を設定
    if PARA_PANORAMA::PANORAMA[$game_map.map_id] != nil
      $game_map.panorama_name = PARA_PANORAMA::PANORAMA[$game_map.map_id]
      @panorama_name = $game_map.panorama_name
      @panorama_hue = $game_map.panorama_hue
      @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
    end
    # フレーム更新
    update
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias update_parapano update
  def update
    update_parapano
    if PARA_PANORAMA::FIX == 1 or (PARA_PANORAMA::FIX==2 and $game_switches[PARA_PANORAMA::FIX_SWITCH])
      # パノラマプレーンを更新
      @panorama.ox = $game_map.display_x / 4
      @panorama.oy = $game_map.display_y / 4
    end
  end
end
[/pre]
[图片]必须是相同的幅度全景图像和地图大小。
地图大小的图像尺寸是×32pixel。
(例如:地图大小为20×15→图像大小640×480像素)
panorama_bg.jpg
小天终于要填个新坑了,这个游戏的名字是《欲望恶魔~游侠传记》
剧情:★☆☆☆☆☆☆☆☆☆
脚本:★☆☆☆☆☆☆☆☆☆
素材:☆☆☆☆☆☆☆☆☆☆
预计明年这一个浩大的工程既可以完工了。。有木有支持的!?制作工具:RMVA
回复

使用道具 举报

梦石
0
星屑
1166
在线时间
127 小时
注册时间
2013-2-16
回帖
368
 楼主| 发表于 2013-4-30 20:04:23 | 显示全部楼层
11、伤害个性定制                                                              
[摘要]改变的伤害显示的字体。
[规格]如果指定的字体没有安装,
你可以用(或“宋体黑色”的,“MS P哥特式”)的标准字体。
[脚本][pre lang="ruby" line="1"]#==============================================================================
# ++ ダメージ文字カスタマイズ ver. 1.01 ++
#------------------------------------------------------------------------------
# ダメージ表示のフォントを変更。
#==============================================================================

module RPG
  class Sprite < ::Sprite
   
  #----------------------------------------------------------------------------

    # ダメージ表示用フォント
    DAMAGE_FONT_NAME = ["Georgia"]      # フォント名
    DAMAGE_FONT_SIZE = 32       # サイズ
    DAMAGE_FONT_BOLD = false    # 太字にするか(true/false)
    DAMAGE_FONT_ITALIC = false  # 斜体にするか(true/false)
    FONT_COLOR_DAMAGE = Color.new(255, 255, 255)  # ダメージ時の色
    FONT_COLOR_HEAL = Color.new(176, 255, 144)    # 回復時の色
    FONT_COLOR_D_FRAME = Color.new(0, 0, 0)         # ダメージ文字の枠の色
    FONT_COLOR_H_FRAME = Color.new(0, 0, 0)         # 回復文字の枠の色
    CRITICAL_NAME = "CRITICAL"     # クリティカルヒット時に表示する文字
    CRITICAL_FONT_SIZE = 20     # クリティカルの文字サイズ
   
  #----------------------------------------------------------------------------
   
    def damage(value, critical)
      dispose_damage
      if value.is_a?(Numeric)
        damage_string = value.abs.to_s
      else
        damage_string = value.to_s
      end
      bitmap = Bitmap.new(160, DAMAGE_FONT_SIZE*2)
      bitmap.font.name = DAMAGE_FONT_NAME + ["Arial Black", "MS Pゴシック"]
      bitmap.font.size = DAMAGE_FONT_SIZE
      bitmap.font.bold = DAMAGE_FONT_BOLD
      bitmap.font.italic = DAMAGE_FONT_ITALIC
      if value.is_a?(Numeric) and value < 0
        bitmap.font.color = FONT_COLOR_H_FRAME
      else
        bitmap.font.color = FONT_COLOR_D_FRAME
      end
      bitmap.draw_text(-1, 12-1, 160, DAMAGE_FONT_SIZE*1.2, damage_string, 1)
      bitmap.draw_text(+1, 12-1, 160, DAMAGE_FONT_SIZE*1.2, damage_string, 1)
      bitmap.draw_text(-1, 12+1, 160, DAMAGE_FONT_SIZE*1.2, damage_string, 1)
      bitmap.draw_text(+1, 12+1, 160, DAMAGE_FONT_SIZE*1.2, damage_string, 1)
      if value.is_a?(Numeric) and value < 0
        bitmap.font.color = FONT_COLOR_HEAL
      else
        bitmap.font.color = FONT_COLOR_DAMAGE
      end
      bitmap.draw_text(0, 12, 160, DAMAGE_FONT_SIZE*1.2, damage_string, 1)
      if critical
        bitmap.font.size = CRITICAL_FONT_SIZE
        bitmap.font.color = FONT_COLOR_D_FRAME
        bitmap.draw_text(-1, -1, 160, CRITICAL_FONT_SIZE, CRITICAL_NAME, 1)
        bitmap.draw_text(+1, -1, 160, CRITICAL_FONT_SIZE, CRITICAL_NAME, 1)
        bitmap.draw_text(-1, +1, 160, CRITICAL_FONT_SIZE, CRITICAL_NAME, 1)
        bitmap.draw_text(+1, +1, 160, CRITICAL_FONT_SIZE, CRITICAL_NAME, 1)
        bitmap.font.color = FONT_COLOR_DAMAGE
        bitmap.draw_text(0, 0, 160, CRITICAL_FONT_SIZE, CRITICAL_NAME, 1)
      end
      @_damage_sprite = ::Sprite.new(self.viewport)
      @_damage_sprite.bitmap = bitmap
      @_damage_sprite.ox = 80
      @_damage_sprite.oy = 20
      @_damage_sprite.x = self.x
      @_damage_sprite.y = self.y - self.oy / 2
      @_damage_sprite.z = 3000
      @_damage_duration = 40
    end
  end
end[/pre]

damage.jpg
小天终于要填个新坑了,这个游戏的名字是《欲望恶魔~游侠传记》
剧情:★☆☆☆☆☆☆☆☆☆
脚本:★☆☆☆☆☆☆☆☆☆
素材:☆☆☆☆☆☆☆☆☆☆
预计明年这一个浩大的工程既可以完工了。。有木有支持的!?制作工具:RMVA
回复

使用道具 举报

梦石
0
星屑
1166
在线时间
127 小时
注册时间
2013-2-16
回帖
368
 楼主| 发表于 2013-4-30 20:08:26 | 显示全部楼层
12、垂直类型的战斗状态                                                        
[摘要]活动时间战斗是的,这就是一个独立的唯一的状态显示窗口。
我可以包括作战系统系统其他脚本。
[脚本][pre lang="ruby" line="1"]#==============================================================================
# ++ 縦リスト型バトルステータス ver. 1.10 ++
#------------------------------------------------------------------------------
# バトルステータス画面をサイドビューらしい縦型表示にします。
#==============================================================================

module PARA_CTB
  
  # HPゲージの色(グラデーション左端)
  HP_COLOR_LEFT = Color.new(128, 0, 0, 255)
  # HPゲージの色(グラデーション右端)
  HP_COLOR_RIGHT= Color.new(255, 0, 0, 255)
  # SPゲージの色(グラデーション左端)
  SP_COLOR_LEFT = Color.new(0, 0, 128, 255)
  # SPゲージの色(グラデーション右端)
  SP_COLOR_RIGHT= Color.new(0, 0, 255, 255)
  
  # ゲージ枠の色
  FRAME_COLOR = Color.new(192, 192, 192, 255)
  # ゲージ枠の太さ
  FRAME_BORDER = 1
  # ゲージの背景色
  BACK_COLOR = Color.new(128, 128, 128, 128)

  # 名前のフォントサイズ
  NAME_FONT_SIZE =16
  # HP/SPのフォントサイズ
  HPSP_FONT_SIZE =18
  # エネミー名のフォントサイズ
  ENEMY_FONT_SIZE =16
  # 最大HP/SPを描画するか( true / false )
  MAX_DRAW = false
  
  # バトルメンバーの最大数(多人数PTスクリプトを導入している時に設定)
  PARTY_SIZE = 4
  
  # エネミー名をグループ化( true / false )
  # (trueにすると「ゴースト 2」のようにまとめて表示します)
  ENEMY_GROUPING = false

  # エネミー名の下にゲージを表示( 0:なし / 1:HP )
  # (エネミー名をグループ化している場合は無効)
  ENEMY_DRAWING_MATER = 0
  
  # アクターのヘルプウインドウにHP/SPゲージを表示( true / false )
  HELP_DRAWING_MATER_ACTOR = false
  # エネミーのヘルプウインドウにHP/SPゲージを表示( true / false )
  HELP_DRAWING_MATER_ENEMY = false
  
  # コマンドウインドウの位置を強制指定( true / false )
  #(他の方のサイドビュースクリプトを併用していて
  # コマンドウインドウの位置がどうしても不自然になるならtrueに)
  # ※trueにしても適用されない場合、このスクリプトを
  #  サイドビューよりも下に置いてみてください
  WINDOWPOS_CHANGE = false
  WINDOWPOS_X = 100   # X座標
  WINDOWPOS_Y = 320   # Y座標

  # コマンドウインドウの不透明度
  WINDOW_OPACITY = 160
  
end

# ↑ 設定項目ここまで
#------------------------------------------------------------------------------

#==============================================================================
# ■ Scene_Battle
#==============================================================================

class Scene_Battle

  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  alias main_ctb main
  def main
    # エネミー名ウインドウを作成
    @status_window2 = Window_BattleStatus_enemy.new
    main_ctb
    # エネミー名ウインドウを破棄
    @status_window2.dispose
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias ctb_update update
  def update
    # バトルイベント実行中の場合
    if $game_system.battle_interpreter.running?
      # インタプリタを更新
      $game_system.battle_interpreter.update
      # アクションを強制されているバトラーが存在しない場合
      if $game_temp.forcing_battler == nil
        # バトルイベントの実行が終わった場合
        unless $game_system.battle_interpreter.running?
          # 戦闘継続の場合、バトルイベントのセットアップを再実行
          unless judge
            setup_battle_event
          end
        end
        # アフターバトルフェーズでなければ
        if @phase != 5
          # エネミー名リストを更新
          @status_window2.refresh
        end
      end
    end
    ctb_update
  end
  #--------------------------------------------------------------------------
  # ● アクターコマンドウィンドウのセットアップ
  #--------------------------------------------------------------------------
  alias phase3_setup_command_window_ctb phase3_setup_command_window
  def phase3_setup_command_window
    @actor_command_window.back_opacity = PARA_CTB::WINDOW_OPACITY
    phase3_setup_command_window_ctb
    if PARA_CTB::WINDOWPOS_CHANGE
      # アクターコマンドウィンドウの位置を設定
      @actor_command_window.x = PARA_CTB::WINDOWPOS_X
      @actor_command_window.y = PARA_CTB::WINDOWPOS_Y
      # ステータスウインドウに隠れないように
      @actor_command_window.z = 9999
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (プレバトルフェーズ)
  #--------------------------------------------------------------------------
  alias update_phase1_ctb update_phase1
  def update_phase1
    # エネミー名リストを更新
    @status_window2.refresh
    update_phase1_ctb
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
  #--------------------------------------------------------------------------
  alias update_phase4_step6_ctb update_phase4_step6
  def update_phase4_step6
    # エネミー名リストを更新
    @status_window2.refresh
    update_phase4_step6_ctb
  end
end

#==============================================================================
# ■ Window_BattleStatus
#==============================================================================

class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(160, 320, 480, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    @level_up_flags = []
    for i in 0..$game_party.actors.size
      @level_up_flags.push(false)
    end
    @before_hp = []
    @before_sp = []
    @before_states = []
    @now_hp = []
    @now_sp = []
    @now_states = []
    refresh
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      actor = $game_party.actors
      line_height = 120 / PARA_CTB::PARTY_SIZE
      actor_y = i * line_height + 4
      # 現在のステータスを配列に
      @now_hp = actor.hp
      @now_sp = actor.sp
      @now_states = actor.states
      # レベルアップ
      if @level_up_flags
        self.contents.fill_rect(344, actor_y, 100, 32, Color.new(0, 0, 0, 0))
        self.contents.font.color = normal_color
        self.contents.draw_text(344, actor_y, 120, 32, "LEVEL UP!")
      end
    end
    # バトルステータスの軽量化処理
    # ステータスの配列が変化したときのみ描画処理
    if @before_hp == nil or @before_sp == nil or @before_states == nil or @before_hp != @now_hp or @before_sp != @now_sp or @before_states != @now_states
      self.contents.clear
      for i2 in 0...$game_party.actors.size
        actor = $game_party.actors[i2]
        line_height = 120 / PARA_CTB::PARTY_SIZE
        actor_y = i2 * line_height + 4
        self.contents.font.size = PARA_CTB::NAME_FONT_SIZE
        # 名前を描画
        draw_actor_name(actor, 4, actor_y+16-PARA_CTB::NAME_FONT_SIZE)
        # HPを描画
        hp_color1 = PARA_CTB::HP_COLOR_LEFT
        hp_color2 = PARA_CTB::HP_COLOR_RIGHT
        draw_meter(actor.hp, actor.maxhp, 125, actor_y+14, 80, 8, hp_color1, hp_color2)
        draw_actor_hp(actor, 102, actor_y+16-PARA_CTB::HPSP_FONT_SIZE, 100)
        # SPを描画
        sp_color1 = PARA_CTB::SP_COLOR_LEFT
        sp_color2 = PARA_CTB::SP_COLOR_RIGHT
        draw_meter(actor.sp, actor.maxsp, 245, actor_y+14, 80, 8, sp_color1, sp_color2)
        draw_actor_sp(actor, 222, actor_y+16-PARA_CTB::HPSP_FONT_SIZE, 100)
        # 変化後のステータスを配列に
        @before_hp[i2] = actor.hp
        @before_sp[i2] = actor.sp
        @before_states[i2] = actor.states
        # レベルアップ
        if @level_up_flags[i2] == false
          draw_actor_state(actor, 344, actor_y)
        end
      end
    end
   
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
  end
  #--------------------------------------------------------------------------
  # ● HP の描画
  #     actor : アクター
  #     x     : 描画先 X 座標
  #     y     : 描画先 Y 座標
  #     width : 描画先の幅
  #--------------------------------------------------------------------------
  def draw_actor_hp(actor, x, y, width = 144)
    # 文字列 "HP" を描画
    self.contents.font.color = system_color
    self.contents.font.size = 16
    self.contents.draw_text(x, y+2, 32, 32, $data_system.words.hp)
    self.contents.font.color = normal_color
    self.contents.font.size = PARA_CTB::HPSP_FONT_SIZE
    if PARA_CTB::MAX_DRAW
      # MaxHP を描画
      self.contents.draw_text(x, y, width, 32, actor.maxhp.to_s, 2)
      text_size = self.contents.text_size(actor.maxhp.to_s)
      text_x = x + width - text_size.width - 12
      self.contents.draw_text(text_x, y, 12, 32, "/", 1)
      # HP を描画
      self.contents.font.color = actor.hp == 0 ? knockout_color :
        actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
      text_x = text_x - text_size.width
      self.contents.draw_text(text_x, y, text_size.width, 32, actor.hp.to_s, 2)
    else
      self.contents.font.color = actor.hp == 0 ? knockout_color :
        actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
      self.contents.draw_text(x, y, width, 32, actor.hp.to_s, 2)
    end
  end
  #--------------------------------------------------------------------------
  # ● SP の描画
  #     actor : アクター
  #     x     : 描画先 X 座標
  #     y     : 描画先 Y 座標
  #     width : 描画先の幅
  #--------------------------------------------------------------------------
  def draw_actor_sp(actor, x, y, width = 144)
    # 文字列 "SP" を描画
    self.contents.font.color = system_color
    self.contents.font.size = 16
    self.contents.draw_text(x, y+2, 32, 32, $data_system.words.sp)
    self.contents.font.color = normal_color
    self.contents.font.size = PARA_CTB::HPSP_FONT_SIZE
    if PARA_CTB::MAX_DRAW
    # MaxSP を描画
      self.contents.draw_text(x, y, width, 32, actor.maxsp.to_s, 2)
      text_size = self.contents.text_size(actor.maxsp.to_s)
      text_x = x + width - text_size.width - 12
      self.contents.draw_text(text_x, y, 12, 32, "/", 1)
      # SP を描画
      self.contents.font.color = actor.sp == 0 ? knockout_color :
        actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
      text_x = text_x - text_size.width
      self.contents.draw_text(text_x, y, text_size.width, 32, actor.sp.to_s, 2)
    else
      self.contents.font.color = actor.sp == 0 ? knockout_color :
        actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
      self.contents.draw_text(x, y, width, 32, actor.sp.to_s, 2)
    end
  end
end

#==============================================================================
# □ 敵の名前を表示するウインドウ
#==============================================================================

class Window_BattleStatus_enemy < Window_Base
  #--------------------------------------------------------------------------
  # ○ オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 320, 160, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # ○ リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.font.size = PARA_CTB::ENEMY_FONT_SIZE
    @exist_enemies = []
    if $game_troop.enemies != nil
      if PARA_CTB::ENEMY_GROUPING
        ememy_list = []
        ememy_list_index = []
        # エネミーをグループ化
        for i in 0...$game_troop.enemies.size
          enemy = $game_troop.enemies
          if enemy.exist?
            if ememy_list.include?(enemy.name)
              ememy_list_index[ememy_list.index(enemy.name)] += 1
            else
              # エネミー名を記録
              ememy_list.push(enemy.name)
              ememy_list_index[ememy_list.index(enemy.name)] = 1
            end
          end
        end
        # エネミーの名前と数を描画
        enemy_index = 0
        for enemy_name in ememy_list
          enemy_y = enemy_index * (PARA_CTB::ENEMY_FONT_SIZE+6) + 4
          if ememy_list_index[enemy_index] > 1
            enemy_name = enemy_name + " " + ememy_list_index[enemy_index].to_s
          end
          self.contents.draw_text(4, enemy_y, 160, 20, enemy_name)
          enemy_index += 1
        end
      else
        # エネミーの名前を描画
        enemy_index = 0
        for i in 0...$game_troop.enemies.size
          enemy = $game_troop.enemies
          if enemy.exist?
            @exist_enemies.push(enemy)
            line_height = PARA_CTB::ENEMY_FONT_SIZE + 6
            if PARA_CTB::ENEMY_DRAWING_MATER != 0
              line_height += 10
            end
            enemy_y = enemy_index * line_height + 4
            self.contents.draw_text(4, enemy_y, 160, 20, enemy.name)
            enemy_index += 1
            # HPゲージを描画
            if PARA_CTB::ENEMY_DRAWING_MATER == 1
              hp_color1 = PARA_CTB::HP_COLOR_LEFT
              hp_color2 = PARA_CTB::HP_COLOR_RIGHT
              y = enemy_y + PARA_CTB::ENEMY_FONT_SIZE + 3
              draw_meter(enemy.hp, enemy.maxhp, 4, y, 80, 8, hp_color1, hp_color2)
            end
          end
        end
      end
    end
  end
end

#==============================================================================
# ■ Window_Base
#==============================================================================

class Window_Base < Window
  
  #--------------------------------------------------------------------------
  # ○ ゲージを描画
  #--------------------------------------------------------------------------
  def draw_meter(now, max, x, y, width, height, start_color, end_color=start_color )
    self.contents.fill_rect(x, y, width, height, PARA_CTB::FRAME_COLOR)
    self.contents.fill_rect(x+PARA_CTB::FRAME_BORDER, y+PARA_CTB::FRAME_BORDER, width-PARA_CTB::FRAME_BORDER*2, height-PARA_CTB::FRAME_BORDER*2, PARA_CTB::BACK_COLOR)
    now = now > max ? max : now
    percentage = max != 0 ? (width-2) * now / max.to_f : 0
    if start_color == end_color
      self.contents.fill_rect(x+1, y+1, percentage, height-2, start_color)
    else
      for i in 1..percentage
        r = start_color.red + (end_color.red - start_color.red) / percentage * i
        g = start_color.green + (end_color.green - start_color.green) / percentage * i
        b = start_color.blue + (end_color.blue - start_color.blue) / percentage * i
        a = start_color.alpha + (end_color.alpha - start_color.alpha) / percentage * i
        self.contents.fill_rect(x+i, y+1, 1, height-2, Color.new(r, g, b, a))
      end
    end
  end
end

#==============================================================================
# ■ Window_Help
#==============================================================================

class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # ● アクター設定
  #     actor : ステータスを表示するアクター
  #--------------------------------------------------------------------------
  alias set_actor_ctb set_actor
  def set_actor(actor)
    if PARA_CTB::HELP_DRAWING_MATER_ACTOR
      self.contents.clear
      draw_actor_name(actor, 4, 0)
      draw_actor_state(actor, 140, 0)
      hp_color1 = PARA_CTB::HP_COLOR_LEFT
      hp_color2 = PARA_CTB::HP_COLOR_RIGHT
      draw_meter(actor.hp, actor.maxhp, 316, 18, 112, 8, hp_color1, hp_color2)
      draw_actor_hp(actor, 284, 0)
      sp_color1 = PARA_CTB::SP_COLOR_LEFT
      sp_color2 = PARA_CTB::SP_COLOR_RIGHT
      draw_meter(actor.sp, actor.maxsp, 492, 18, 112, 8, sp_color1, sp_color2)
      draw_actor_sp(actor, 460, 0)
      @actor = actor
      @text = nil
      self.visible = true
    else
      set_actor_ctb(actor)
    end
  end
  #--------------------------------------------------------------------------
  # ● エネミー設定
  #     enemy : 名前とステートを表示するエネミー
  #--------------------------------------------------------------------------
  alias set_enemy_ctb set_enemy
  def set_enemy(enemy)
    if PARA_CTB::HELP_DRAWING_MATER_ENEMY
      self.contents.clear
      draw_actor_name(enemy, 4, 0)
      draw_actor_state(enemy, 140, 0)
      hp_color1 = PARA_CTB::HP_COLOR_LEFT
      hp_color2 = PARA_CTB::HP_COLOR_RIGHT
      draw_meter(enemy.hp, enemy.maxhp, 316, 18, 112, 8, hp_color1, hp_color2)
      draw_actor_hp(enemy, 284, 0)
      sp_color1 = PARA_CTB::SP_COLOR_LEFT
      sp_color2 = PARA_CTB::SP_COLOR_RIGHT
      draw_meter(enemy.sp, enemy.maxsp, 492, 18, 112, 8, sp_color1, sp_color2)
      draw_actor_sp(enemy, 460, 0)
      self.visible = true
    else
      set_enemy_ctb(enemy)
    end
  end
end[/pre]

上面的照片(步行图文版)侧面视图战斗 已经一起使用。

上面的照片(步行图文版)侧面视图战斗 已经一起使用。
小天终于要填个新坑了,这个游戏的名字是《欲望恶魔~游侠传记》
剧情:★☆☆☆☆☆☆☆☆☆
脚本:★☆☆☆☆☆☆☆☆☆
素材:☆☆☆☆☆☆☆☆☆☆
预计明年这一个浩大的工程既可以完工了。。有木有支持的!?制作工具:RMVA
回复

使用道具 举报

梦石
0
星屑
1166
在线时间
127 小时
注册时间
2013-2-16
回帖
368
 楼主| 发表于 2013-4-30 20:14:25 | 显示全部楼层
13、标题画面订制                                                                  
[摘要]我用一个菜单项标题画面的形象。
如果你不想使用菜单中的形象,你可以设置窗口的透明度和位置。
[脚本][pre lang="ruby" line="1"]#==============================================================================
# ++ タイトル画面カスタマイズ [VX] ver. 1.00 ++
#------------------------------------------------------------------------------
# タイトルメニューに画像を使用、もしくはメニューウインドウの外見を変更します。
#==============================================================================

module PARA_TITLE_CUSTOM
  
  # メニューコマンドに画像を使う( true / false )
  IMG_MENU = true

#↓---メニューコマンドに画像を使う時の設定---

  # メニューコマンドに使う画像ファイル名(「Graphics/System」にインポート )
  #( 書式は [ コマンド未選択時 , コマンドが選択されたとき ] )

  # ニューゲーム
  IMG_NEWGAME = ["newgame","newgame_active"]
  IMG_NEWGAME_X = 200   # 横位置
  IMG_NEWGAME_Y = 300   # 縦位置
  # コンティニュー
  IMG_CONTINUE = ["continue","continue_active"]
  IMG_CONTINUE_X = 200   # 横位置
  IMG_CONTINUE_Y = 332   # 縦位置
  # シャットダウン
  IMG_SHUTDOWN = ["shutdown","shutdown_active"]
  IMG_SHUTDOWN_X = 200   # 横位置
  IMG_SHUTDOWN_Y = 364   # 縦位置
  
  # コンティニュー無効時( 0:半透明 / 1:画像を指定 )
  LOAD_DISABLED_TYPE = 0
  
  # コンティニュー無効時の画像
  IMG_CONTINUE_DISABLED = ["continue_disabled","continue_disabled_active"]
  
  # 画像の合成方法( 0:通常 / 1:加算  / 2:減算 )
  BLEND_TYPE = 0

#↓---メニューコマンドに画像を使わない時の設定---
  
  # ウィンドウ枠を非表示にする( true / false )
  WINDOW_TRANS = false
  # ウィンドウの透明度(ウィンドウ枠を表示している時に指定)
  WINDOW_OPACITY = 160

  # ウィンドウの横サイズ
  WINDOW_WIDTH = 172
  # ウィンドウの横位置( 0:座標指定 / 1:左端  / 2:中央 / 3:右端 )
  WINDOW_ALIGN = 2
  # 「座標指定」の時のウィンドウの横座標
  WINDOW_POS_X = 0
  # ウィンドウの縦位置( 0:座標指定 / 1:上端  / 2:中央 / 3:下端 )
  WINDOW_VALIGN = 0
  # 「座標指定」の時のウィンドウの縦座標
  WINDOW_POS_Y = 288

end

# ↑ 設定項目ここまで
#------------------------------------------------------------------------------

#==============================================================================
# ■ Scene_Title
#==============================================================================

class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # ● コマンドウィンドウの作成
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::new_game
    s2 = Vocab::continue
    s3 = Vocab::shutdown
    w = PARA_TITLE_CUSTOM::WINDOW_WIDTH
    @command_window = Window_Command.new(w, [s1, s2, s3])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = 288
    if @continue_enabled                    # コンティニューが有効な場合
      @command_window.index = 1             # カーソルを合わせる
    else                                    # 無効な場合
      @command_window.draw_item(1, false)   # コマンドを半透明表示にする
    end
    @command_window.openness = 0
    # 画像コマンドウィンドウを使うか
    if PARA_TITLE_CUSTOM::IMG_MENU
      # コマンドウィンドウを非表示に
      @command_window.opacity = 0
      @command_window.contents_opacity = 0
      create_img_command_window
    else
      change_window_visual
    end
    @command_window.open
  end
  #--------------------------------------------------------------------------
  # ○ コマンドウィンドウの外見設定
  #--------------------------------------------------------------------------
  def change_window_visual
    # ウィンドウの透明度
    if PARA_TITLE_CUSTOM::WINDOW_TRANS
      @command_window.opacity = 0
    else
      @command_window.back_opacity = PARA_TITLE_CUSTOM::WINDOW_OPACITY
    end
    # ウィンドウの位置を指定
    case PARA_TITLE_CUSTOM::WINDOW_ALIGN
      when 0
        @command_window.x = PARA_TITLE_CUSTOM::WINDOW_POS_X
      when 1
        @command_window.x = 0
      when 2
        @command_window.x = ( 544 - @command_window.width ) / 2
      when 3
        @command_window.x = 544 - @command_window.width
    end
    case PARA_TITLE_CUSTOM::WINDOW_VALIGN
      when 0
        @command_window.y = PARA_TITLE_CUSTOM::WINDOW_POS_Y
      when 1
        @command_window.y = 0
      when 2
        @command_window.y = ( 416 - @command_window.height ) / 2
      when 3
        @command_window.y = 416 - @command_window.height
    end
  end
  #--------------------------------------------------------------------------
  # ○ 画像コマンドウィンドウの作成
  #--------------------------------------------------------------------------
  def create_img_command_window
    # スプライト生成
    sprite1 = Sprite.new
    sprite1.x = PARA_TITLE_CUSTOM::IMG_NEWGAME_X
    sprite1.y = PARA_TITLE_CUSTOM::IMG_NEWGAME_Y
    sprite1.blend_type = PARA_TITLE_CUSTOM::BLEND_TYPE
    sprite2 = Sprite.new
    sprite2.x = PARA_TITLE_CUSTOM::IMG_CONTINUE_X
    sprite2.y = PARA_TITLE_CUSTOM::IMG_CONTINUE_Y
    sprite2.blend_type = PARA_TITLE_CUSTOM::BLEND_TYPE
    sprite3 = Sprite.new
    sprite3.x = PARA_TITLE_CUSTOM::IMG_SHUTDOWN_X
    sprite3.y = PARA_TITLE_CUSTOM::IMG_SHUTDOWN_Y
    sprite3.blend_type = PARA_TITLE_CUSTOM::BLEND_TYPE
    # スプライトセットで管理
    @command_sprites = [sprite1, sprite2, sprite3]
    # ビットマップファイル名を配列で管理
    @command_bitmaps = [PARA_TITLE_CUSTOM::IMG_NEWGAME, PARA_TITLE_CUSTOM::IMG_CONTINUE, PARA_TITLE_CUSTOM::IMG_SHUTDOWN]
    if @continue_enabled                    # コンティニューが有効な場合
      select_img_item(1)                    # カーソルを合わせる
    else                                    # 無効な場合
      case PARA_TITLE_CUSTOM::LOAD_DISABLED_TYPE
        when 0  # コンティニュー無効時半透明
          @command_sprites[1].opacity = 160
        when 1  # コンティニュー無効時専用画像
          @command_bitmaps[1] = PARA_TITLE_CUSTOM::IMG_CONTINUE_DISABLED
      end
      select_img_item(0)                    # カーソルを合わせる
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    @command_window.update
    if PARA_TITLE_CUSTOM::IMG_MENU
      if Input.repeat?(Input::UP) or Input.repeat?(Input::DOWN)
        # 画像切り替え
        select_img_item(@command_window.index)
      end
    end
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0    # ニューゲーム
        command_new_game
      when 1    # コンティニュー
        command_continue
      when 2    # シャットダウン
        command_shutdown
      end
    end
  end
  #--------------------------------------------------------------------------
  # ○ メニュー選択時の画像切り替え
  #--------------------------------------------------------------------------
  def select_img_item(index)
    case index
      when 0
        @command_sprites[0].bitmap = Cache.system(@command_bitmaps[0][1])
        @command_sprites[1].bitmap = Cache.system(@command_bitmaps[1][0])
        @command_sprites[2].bitmap = Cache.system(@command_bitmaps[2][0])
      when 1
        @command_sprites[0].bitmap = Cache.system(@command_bitmaps[0][0])
        @command_sprites[1].bitmap = Cache.system(@command_bitmaps[1][1])
        @command_sprites[2].bitmap = Cache.system(@command_bitmaps[2][0])
      when 2
        @command_sprites[0].bitmap = Cache.system(@command_bitmaps[0][0])
        @command_sprites[1].bitmap = Cache.system(@command_bitmaps[1][0])
        @command_sprites[2].bitmap = Cache.system(@command_bitmaps[2][1])
    end
  end
  #--------------------------------------------------------------------------
  # ● コマンドウィンドウの解放
  #--------------------------------------------------------------------------
  def dispose_command_window
    @command_window.dispose
    if @command_sprites != nil
      @command_sprites[0].dispose
      @command_sprites[1].dispose
      @command_sprites[2].dispose
    end
  end
  #--------------------------------------------------------------------------
  # ● コマンドウィンドウを開く
  #--------------------------------------------------------------------------
  def open_command_window
    # ウィンドウの背景が非表示のときは瞬間表示
    if PARA_TITLE_CUSTOM::WINDOW_TRANS
      @command_window.openness = 255
    end
    @command_window.open
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 255
  end
  #--------------------------------------------------------------------------
  # ● コマンドウィンドウを閉じる
  #--------------------------------------------------------------------------
  def close_command_window
    # ウィンドウの背景が非表示のときはクローズしないようにする
    if not(PARA_TITLE_CUSTOM::WINDOW_TRANS)
      @command_window.close
      begin
        @command_window.update
        Graphics.update
      end until @command_window.openness == 0
    end
  end
end[/pre]

[用法]填写在图像用于菜单命令导入“图形/系统”。
请注明后来设置的显示位置和文件名。


[奖励](我可以用任何透明处理。背景黑色以外的菜单图像)


(下载“图片另存为”右击→)

更多图片 小图 大图
组图打开中,请稍候......
小天终于要填个新坑了,这个游戏的名字是《欲望恶魔~游侠传记》
剧情:★☆☆☆☆☆☆☆☆☆
脚本:★☆☆☆☆☆☆☆☆☆
素材:☆☆☆☆☆☆☆☆☆☆
预计明年这一个浩大的工程既可以完工了。。有木有支持的!?制作工具:RMVA
回复

使用道具 举报

梦石
0
星屑
1166
在线时间
127 小时
注册时间
2013-2-16
回帖
368
 楼主| 发表于 2013-4-30 20:18:42 | 显示全部楼层
14、字体变化                                                                           
[摘要]您可以更改使用的字体的字符显示。
束通过一个字体文件,字体未安装在PC上播放器
,也可用于。※字体的捆绑相当于重新分配。 检查许可证的字体文件必须与分配,请遵循的条款和条件。
[脚本]
[pre lang="ruby" line="1"]#==============================================================================
# ++ フォント変更 [VX] ver. 1.00 ++
#  Script by パラ犬
#  http://2d6.parasite.jp/
#------------------------------------------------------------------------------
# 文字表示に使用するフォントを変更します。
# システムにインストールされていないフォントを直接使用する場合は
# プロジェクトのルートディレクトリ(AudioやGraphicsフォルダがある所)に
# 「Fonts」という名前のフォルダを作り、フォントファイルを入れてください。
#==============================================================================

module PARA_FONT_CUSTOM

  #フォント名(複数候補の場合は「,」で区切る。例:["HGP行書体", "MS ゴシック"])
  #※ファイル名ではなく書体名を記述してください
  FONT_NAME = ["パラ字 梅"]

  FONT_SIZE = 20        # デフォルトのフォントサイズ
  FONT_BOLD = false     # 太字にするか(true/false)
  FONT_ITALIC = false   # 斜体にするか(true/false)

end

# ↑ 設定項目ここまで
#------------------------------------------------------------------------------

#==============================================================================
# ■ Window_Base
#==============================================================================

class Window_Base < Window

  Font.default_name = PARA_FONT_CUSTOM::FONT_NAME + ["UmePlus Gothic", "MS ゴシック", "Courier New"]
  Font.default_size = PARA_FONT_CUSTOM::FONT_SIZE
  Font.default_bold = PARA_FONT_CUSTOM::FONT_BOLD
  Font.default_italic = PARA_FONT_CUSTOM::FONT_ITALIC
  
end[/pre]
[用法]如果你想直接使用您的系统上没有安装的字体
(或图形文件夹和音频)项目的根目录下
创建一个新的名为“字体”的文件夹,请把字体文件。

上面的图片“段型梅花”

上面的图片“段型梅花”

用法

用法
小天终于要填个新坑了,这个游戏的名字是《欲望恶魔~游侠传记》
剧情:★☆☆☆☆☆☆☆☆☆
脚本:★☆☆☆☆☆☆☆☆☆
素材:☆☆☆☆☆☆☆☆☆☆
预计明年这一个浩大的工程既可以完工了。。有木有支持的!?制作工具:RMVA
回复

使用道具 举报

永久原子

梦石
18
星屑
180
在线时间
2054 小时
注册时间
2010-10-25
回帖
3907

开拓者

发表于 2013-4-30 22:23:26 | 显示全部楼层
唉,脚本不错,不过我都不用XP了。。。。话说怎么没有ACE的呢?

点评

哎,正是没有啊。。  发表于 2013-5-1 07:29
人不在了,有事烧纸。
回复

使用道具 举报

梦石
0
星屑
3905
在线时间
1972 小时
注册时间
2013-1-3
回帖
9146
发表于 2013-5-1 07:11:14 | 显示全部楼层
脚本还不错,不过最后一个是VX的
还有这些是原创?不能吧?
支持,转来更多的脚本吧~
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复

使用道具 举报

梦石
0
星屑
75
在线时间
1074 小时
注册时间
2012-1-16
回帖
1855
发表于 2013-5-1 09:05:55 | 显示全部楼层
不错不错……搬运来这么多好脚本……
可以申精了【这里不素贴吧啊喂!!
继续加油吧!期待VA向整合……
看到现在MS全是XP和VX的……

点评

谢谢!  发表于 2013-5-1 09:08
本人目前已被作业山压死,有事请烧(call)纸(me)……
回复

使用道具 举报

梦石
0
星屑
75
在线时间
435 小时
注册时间
2012-7-31
回帖
744
发表于 2013-5-1 09:17:36 | 显示全部楼层
小天最好不要把借鉴来的东西说成原创的啊~
脚本灰常不错,收下了、

点评

不是的,我整合了,还没有人整合过,所以就叫做原创。  发表于 2013-5-1 09:52
回复

使用道具 举报

梦石
0
星屑
1166
在线时间
127 小时
注册时间
2013-2-16
回帖
368
 楼主| 发表于 2013-5-1 10:47:09 | 显示全部楼层
@LBQ ,为什么不叫原创呢?我把它们给弄到一块,我和你的理解不同。

点评

这叫捆绑或者衍生…… 你做了工作,但仅限于你整合的过程……  发表于 2013-5-4 02:15
不叫...=-=  发表于 2013-5-3 07:38
这也是你的原创,因为这三个游戏是独体的,你把它弄一起,就形成了一个整体。这难道不叫原创吗?  发表于 2013-5-1 16:02
那我举个例子吧,如果你发了3个游戏,然后我把你的三个游戏整合到一个里了(我也许没有经过你的同意),然后我就可以对着世界宣称这个游戏是我原创的?  发表于 2013-5-1 13:15
是的。  发表于 2013-5-1 11:21
小天终于要填个新坑了,这个游戏的名字是《欲望恶魔~游侠传记》
剧情:★☆☆☆☆☆☆☆☆☆
脚本:★☆☆☆☆☆☆☆☆☆
素材:☆☆☆☆☆☆☆☆☆☆
预计明年这一个浩大的工程既可以完工了。。有木有支持的!?制作工具:RMVA
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部