# 「名前入力の処理」却下アクター名設定 (Since 2006/08/05)
# by Tetra-Z
#
# 「名前入力の処理」の時、受け付けないアクター名を設定します。
# 受け付けない名前の時は赤色(戦闘不能時のHP色)で表示、アクターが後ろを向きます。
# ネタと言えばネタです。

#==============================================================================
# ■ Game_System
#==============================================================================
class Game_System
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :rejection_name_list      # 却下アクター名リスト
  attr_accessor :rejection_name_now       # 却下アクター名該当中
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def tetraz_94_initialize
    @rejection_name_list = [
      #========================================================================
      # □ カスタマイズポイント 1/2
      #========================================================================
      
      # "ああああ", "あああああ", "ああああああ", 
      
      # 却下するアクター名を配列で入れます。
      #========================================================================
    ]
  end
  #--------------------------------------------------------------------------
  # ● 却下されるアクター名か?
  #--------------------------------------------------------------------------
  def rejection_name?(name)
    return true if @rejection_name_list.include?(name)
    #==========================================================================
    # □ カスタマイズポイント 2/2
    #==========================================================================
    name_array = name.split(//)
    if name_array.size >= 4
      judge = true
      for i in 1...name_array.size
        if name_array[i] != name_array[0]
          judge = false
          break
        end
      end
      return true if judge
    end
    # 却下条件をここでも設定可能。nameで入力中の名前を参照、return trueなら却下。
    # 上記は、「4文字以上の単一文字のみから成る名前」を却下しています。
    #==========================================================================
    return false
  end
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias tetraz94_initialize initialize
  def initialize
    tetraz94_initialize
    tetraz_94_initialize
  end
end
#==============================================================================
# ■ Scene_Name
#==============================================================================
class Scene_Name
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  alias tetraz94_main main
  def main
    $game_system.tetraz_94_initialize unless $game_system.rejection_name_list.is_a?(Array)
    tetraz94_main
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias tetraz94_update update
  def update
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # カーソル位置が [決定] 、名前が却下アクター名リストに入っている場合
      if @input_window.character == nil and $game_system.rejection_name?(@edit_window.name)
        # ウィンドウを更新
        @edit_window.update
        @input_window.update
        # ブザー SE を演奏
        $game_system.se_play($data_system.buzzer_se)
        return
      end
    end
    tetraz94_update
  end
end

#==============================================================================
# ■ Window_NameEdit
#==============================================================================
class Window_NameEdit < Window_Base
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  alias tetraz94_refresh refresh
  def refresh
    if $game_system.rejection_name?(@name)
      self.contents.font.color = knockout_color
      $game_system.rejection_name_now = true
    else
      self.contents.font.color = normal_color
      $game_system.rejection_name_now = nil
    end
    tetraz94_refresh
  end
end

#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● グラフィックの描画
  #     actor : アクター
  #     x     : 描画先 X 座標
  #     y     : 描画先 Y 座標
  #--------------------------------------------------------------------------
  alias tetraz94_draw_actor_graphic draw_actor_graphic
  def draw_actor_graphic(actor, x, y)
    if $game_system.rejection_name_now
      bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
      cw = bitmap.width / 4
      ch = bitmap.height / 4
      src_rect = Rect.new(0, 3 * ch, cw, ch)
      self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
      return
    end
    tetraz94_draw_actor_graphic(actor, x, y)
  end
end

[PR]看護師の好条件求人なら:転職のプロがサポート!年間5万人が利用