
# 「名前入力の処理」却下アクター名設定 (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