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

Project1

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

[已经过期] 怎么修改战斗血条和魔法颜色

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
180
在线时间
211 小时
注册时间
2011-10-29
帖子
30
跳转到指定楼层
1
发表于 2011-10-29 16:53:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在哪个脚本修改啊,怎么样改.

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2009-3-16
帖子
46
2
发表于 2011-10-29 17:40:34 | 只看该作者
本帖最后由 niji 于 2011-10-29 17:46 编辑

血条脚本在66里搜一下不就有了吗 比如这个:
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================


# ————————————————————————————————————

# ▼▲▼ XRXS_BP 7. バトルステータス?クリアデザイン ver.1.03 ▼▲▼
# by 桜雅 在土

#==============================================================================
# ■ Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :update_cp_only # CPメーターのみの更新
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias xrxs_bp7_initialize initialize
  def initialize
    # 初期化
    @previous_hp = []
    @previous_sp = []
    # 呼び戻す
    xrxs_bp7_initialize
    # ↓Full-Viewの場合は下二行の # を消してください。
    #self.opacity = 0
    #self.back_opacity = 0
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  alias xrxs_bp7_refresh refresh
  def refresh
    # CPメーターの更新のみ の場合
    if @update_cp_only
      xrxs_bp7_refresh
      return
    end
    # 変更するものがない場合、飛ばす
    @item_max = $game_party.actors.size
    bool = false
    for i in 0...@item_max
      actor = $game_party.actors
      if (@previous_hp != actor.hp) or (@previous_sp != actor.sp)
        bool = true
      end
    end
    return if bool == false
    # 描写を開始
    self.contents.clear
    for i in 0...@item_max
      actor = $game_party.actors
      actor_x = i * 160 + 21
      # 歩行キャラグラフィックの描写
      draw_actor_graphic(actor, actor_x - 0, 0)
      # HP/SPメーターの描写
      draw_actor_hp_meter_line(actor, actor_x, 52, 96, 12)
      draw_actor_sp_meter_line(actor, actor_x, 84, 96, 12)
      # HP数値の描写
      self.contents.font.size = 24 # HP/SP数値の文字の大きさ
      self.contents.font.color = Color.new(0,0,0,192)
      self.contents.draw_text(actor_x, 40, 96, 24, actor.hp.to_s, 2)
      self.contents.font.color = actor.hp == 0 ? knockout_color :
      actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
      self.contents.draw_text(actor_x-2, 38, 96, 24, actor.hp.to_s, 2)
      # SP数値の描写
      self.contents.font.color = Color.new(0,0,0,192)
      self.contents.draw_text(actor_x, 72, 96, 24, actor.sp.to_s, 2)
      self.contents.font.color = actor.sp == 0 ? knockout_color :
      actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
      self.contents.draw_text(actor_x-2, 70, 96, 24, actor.sp.to_s, 2)
      # 用語「HP」と用語「SP」の描写
      self.contents.font.size = 18 # 用語「HP/SP」の文字の大きさ
      self.contents.font.color = Color.new(0,0,0,192)
      self.contents.draw_text(actor_x+2, 32, 196, 24, $data_system.words.hp)
      self.contents.draw_text(actor_x+2, 64, 196, 24, $data_system.words.sp)
      self.contents.font.color = system_color # 用語「HP/SP」の文字の色
      self.contents.draw_text(actor_x, 30, 196, 24, $data_system.words.hp)
      self.contents.draw_text(actor_x, 62, 196, 24, $data_system.words.sp)
      # ステートの描写
      draw_actor_state(actor, actor_x, 100)
      # 値を更新
      @previous_hp = actor.hp
      @previous_hp = actor.hp
    end
  end
end
#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● HPメーター の描画
  #--------------------------------------------------------------------------
  def draw_actor_hp_meter_line(actor, x, y, width = 156, height = 4)
    w = width * actor.hp / [actor.maxhp,1].max
    hp_color_1 = Color.new(255, 0, 0, 192)
    hp_color_2 = Color.new(255, 255, 0, 192)
    self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
    draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
    x -= 1
    y += (height/4).floor
    self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
    draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
    x -= 1
    y += (height/4).ceil
    self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
    draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
    x -= 1
    y += (height/4).ceil
    self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
    draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  end
  #--------------------------------------------------------------------------
  # ● SPメーター の描画
  #--------------------------------------------------------------------------
  def draw_actor_sp_meter_line(actor, x, y, width = 156, height = 4)
    w = width * actor.sp / [actor.maxsp,1].max
    hp_color_1 = Color.new( 0, 0, 255, 192)
    hp_color_2 = Color.new( 0, 255, 255, 192)
    self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
    draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
    x -= 1
    y += (height/4).floor
    self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
    draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
    x -= 1
    y += (height/4).ceil
    self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
    draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
    x -= 1
    y += (height/4).ceil
    self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
    draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  end
  #--------------------------------------------------------------------------
  # ● 名前の描画
  #--------------------------------------------------------------------------
  alias xrxs_bp7_draw_actor_name draw_actor_name
  def draw_actor_name(actor, x, y)
    xrxs_bp7_draw_actor_name(actor, x, y) if @draw_ban != true
  end
  #--------------------------------------------------------------------------
  # ● ステートの描画
  #--------------------------------------------------------------------------
  alias xrxs_bp7_draw_actor_state draw_actor_state
  def draw_actor_state(actor, x, y, width = 120)
    xrxs_bp7_draw_actor_state(actor, x, y, width) if @draw_ban != true
  end
  #--------------------------------------------------------------------------
  # ● HP の描画
  #--------------------------------------------------------------------------
  alias xrxs_bp7_draw_actor_hp draw_actor_hp
  def draw_actor_hp(actor, x, y, width = 144)
    xrxs_bp7_draw_actor_hp(actor, x, y, width) if @draw_ban != true
  end
  #--------------------------------------------------------------------------
  # ● SP の描画
  #--------------------------------------------------------------------------
  alias xrxs_bp7_draw_actor_sp draw_actor_sp
  def draw_actor_sp(actor, x, y, width = 144)
    xrxs_bp7_draw_actor_sp(actor, x, y, width) if @draw_ban != true
  end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias xrxs_bp7_update update
  def update
    xrxs_bp7_update
    # メッセージウィンドウ表示中の場合
    if $game_temp.message_window_showing
      @status_window.update_cp_only = true      
    else
      @status_window.update_cp_only = false
    end
  end
end
#==============================================================================
# ◇ 外部ライブラリ
#==============================================================================
class Window_Base
  #--------------------------------------------------------------------------
  # ● ライン描画 軽量版 by 桜雅 在土
  #--------------------------------------------------------------------------
  def draw_lineght(start_x, start_y, end_x, end_y, start_color)
    # 描写距離の計算。大きめに直角時の長さ。
    distance = (start_x - end_x).abs + (start_y - end_y).abs
    # 描写開始
    for i in 1..distance
      x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
      y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
      self.contents.set_pixel(x, y, start_color)
    end
  end
  #--------------------------------------------------------------------------
  # ● ライン描画 by 桜雅 在土
  #--------------------------------------------------------------------------
  def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
    # 描写距離の計算。大きめに直角時の長さ。
    distance = (start_x - end_x).abs + (start_y - end_y).abs
    # 描写開始
    if end_color == start_color
      for i in 1..distance
        x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
        y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
        if width == 1
          self.contents.set_pixel(x, y, start_color)
        else
          self.contents.fill_rect(x, y, width, width, start_color)
        end
      end
    else
      for i in 1..distance
        x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
        y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
        r = start_color.red * (distance-i)/distance + end_color.red * i/distance
        g = start_color.green * (distance-i)/distance + end_color.green * i/distance
        b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance
        a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
        if width == 1
          self.contents.set_pixel(x, y, Color.new(r, g, b, a))
        else
          self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))
        end
      end
    end
  end
end


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


niji于2011-10-29 17:43补充以下内容:
魔法颜色可以在数据库-----动画----动画图形的色相中修改

回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 00:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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