Project1

标题: 支持横版战斗的敌人血条脚本问题,超屏问题 [打印本页]

作者: 请叫我爽子    时间: 2014-8-14 17:42
标题: 支持横版战斗的敌人血条脚本问题,超屏问题
使用敌人显血脚本出的问题 下面上脚本#==============================================================================
# ■ module n01
#------------------------------------------------------------------------------
#  ターゲット選択時のヘルプ表示セッティング Ver1.1
#==============================================================================
module N01
  
# 文字ステートを表示するならtrue
  WORD_STATE_DISPLAY = true
  
# 何もステートがない時に表示する文字 ""とすると非表示になります
  WORD_NORMAL_STATE = "正常"
  
# HPゲージを表示するならtrue ステート表示と併用可
  HP_DISPLAY = true
  
# 上記設定をアクターに適用するならtrue
  ACTOR_DISPLAY = true
  
# 上記設定を適用しないエネミーID  複数ある場合は[1,2,3]のように
  ENEMY_NON_DISPLAY = [55,56,113]
  
# 非表示にするステートID  複数ある場合は[1,2,3]のように
  STATE_NON_DISPLAY = [20,46,47,48,49,50,52]
  
  
end
#-------------------------------設定ここまで-----------------------------------

#==============================================================================
# ■ Window_Help
#------------------------------------------------------------------------------
#  スキルやアイテムの説明、アクターのステータスなどを表示するウィンドウです。
#==============================================================================

class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # ● テキスト設定
  #--------------------------------------------------------------------------
  def set_text_n01add(member)
    self.contents.clear
    self.contents.font.color = normal_color
    if !member.actor? && N01::ENEMY_NON_DISPLAY.include?(member.enemy_id)
      return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
    elsif member.actor? && !N01::ACTOR_DISPLAY
      return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
    end
    if N01::WORD_STATE_DISPLAY && N01::HP_DISPLAY
      self.contents.draw_text(0, 0, 180, WLH, member.name, 1)
      draw_actor_hp(member, 182, 0, 120)
      text = "["
      for state in member.states
        next if N01::STATE_NON_DISPLAY.include?(state.id)
        text += " " if text != "["
        text += state.name
      end
      text += N01::WORD_NORMAL_STATE if text == "["
      text += "]"
      text = "" if text == "[]"
      self.contents.draw_text(315, 0, 195, WLH, text, 0)
    elsif N01::WORD_STATE_DISPLAY
      text = member.name + "  ["
      for state in member.states
        next if N01::STATE_NON_DISPLAY.include?(state.id)
        text += " " if text != member.name + "  ["
        text += state.name
      end
      text += N01::WORD_NORMAL_STATE if text == member.name + "  ["
      text += "]"
      text = "" if text == "[]"
      self.contents.draw_text(4, 0, self.width - 40, WLH, text, 1)
    elsif N01::HP_DISPLAY
      self.contents.draw_text(4, 0, 240, WLH, member.name, 1)
      draw_actor_hp(member, 262, 0, 120)
    end
  end
end

#==============================================================================
# ■ Scene_Battle
#------------------------------------------------------------------------------
#  バトル画面の処理を行うクラスです。
#==============================================================================
class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ● ターゲット選択の開始
  #--------------------------------------------------------------------------
  def start_target_selection(actor = false)
    members = $game_party.members if actor
    members = $game_troop.members unless actor
    # カーソルスプライトの作成
    @cursor = Sprite.new
    @cursor.bitmap = Cache.character("cursor")
    @cursor.src_rect.set(0, 0, 32, 32)
    @cursor_flame = 0
    @cursor.x = -200
    @cursor.y = -200
    @cursor.ox = @cursor.width
    @cursor.oy = @cursor.height
    # ターゲット名を表示するヘルプウインドウを作成
    @help_window = Window_Help.new if @help_window == nil
    # 不要なウインドウを消す
    @actor_command_window.active = false
    @skill_window.visible = false if @skill_window != nil
    @item_window.visible = false if @item_window != nil
    # 存在しているターゲットで最も番号の低い対象を最初に指すように
    @index = 0
    @max_index = members.size - 1
    # アクターは戦闘不能者でもターゲットできるようにエネミーと区別
    unless actor
      members.size.times do
        break if members[@index].exist?
        @index += 1
      end
    end  
    @help_window.set_text_n01add(members[@index])
    select_member(actor)
  end
  #--------------------------------------------------------------------------
  # ● カーソルを前に移動
  #--------------------------------------------------------------------------
  def cursor_up(members, actor)
    Sound.play_cursor
    members.size.times do
      @index += members.size - 1
      @index %= members.size
      break if actor
      break if members[@index].exist?
    end
    @help_window.set_text_n01add(members[@index])
  end
  #--------------------------------------------------------------------------
  # ● カーソルを次に移動
  #--------------------------------------------------------------------------
  def cursor_down(members, actor)
    Sound.play_cursor
    members.size.times do
      @index += 1
      @index %= members.size
      break if actor
      break if members[@index].exist? && !actor
    end
    @help_window.set_text_n01add(members[@index])
  end
end  
@白鬼 @正太君 大大们麻烦你们了
作者: 千夙    时间: 2014-8-14 18:06
so看错版
作者: 白鬼    时间: 2014-8-14 18:16
妹子,首先我可以告诉你,
如果你不想让名字减少的话
那你只能增加这个窗口的宽度了
还有,记得调整X坐标,因为增加了宽度,但是X坐标不变的话,
起点还是在这里,还是会超出屏幕,只不过是另外一种超出屏幕的效果。
记得增加了多宽,X坐标就减少多少

还有一件事啊,我是XP党,VX的脚本不熟。。。

作者: 正太君    时间: 2014-8-14 18:35
  1. @help_window = Window_Help.new if @help_window == nil
复制代码
下面加上
  1. @help_window.x = 0
复制代码
试试
作者: 请叫我爽子    时间: 2014-8-15 02:16
不行呀正太大大,直接都不显示字了@正太君
作者: 请叫我爽子    时间: 2014-8-23 22:41
大神能解决吗@怪蜀黍  




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1