if @name_window.openness == 255
@name_sprite.visible = true
end
if @name_window_opening
if self.openness == 255
@name_window.openness += 48
else
@name_window.openness = self.openness
end
if @name_window.openness == 255
@name_sprite.visible = true
@name_window_opening = false
end
elsif @name_window_closing
@name_sprite.visible = false
@name_window.openness -= 48
@name_window_closing = false if @name_window.openness == 0
end
end
#--------------------------------------------------------------------------
# ○ ネームウィンドウの作成
#--------------------------------------------------------------------------
def use_name_window?
for c in A1_System::NameWindow::USE_NAME_WINDOW_CLASS
return true if self.is_a?(c)
end
return false
end
#--------------------------------------------------------------------------
# ○ ネームウィンドウの作成
#--------------------------------------------------------------------------
def create_name_window
# 前に表示した名前
@prev_show_name = ""
end
#--------------------------------------------------------------------------
# ○ 表示する名前の取得
#--------------------------------------------------------------------------
def show_name(face_name, face_index)
return nil unless $game_system.use_name_window
return nil if @name_sprite == nil
return nil if face_name == nil
return nil if face_name.empty?
name = A1_System::NameWindow::NAME_LIST[sprintf("%s_%d", face_name, face_index)]
name = A1_System::NameWindow::NAME_LIST[face_name] if name == nil
return name
end
#--------------------------------------------------------------------------
# ○ ネームウィンドウの表示
#--------------------------------------------------------------------------
def show_name_window(face_name, face_index, x, size = 96)
return if @name_sprite == nil
return if @name_window == nil
name = show_name(face_name, face_index)
if name == nil or name.empty?
name_window_close
@name_sprite.visible = false
@prev_show_name = ""
return
end
return if @prev_show_name == name and @prev_x == x
@name_sprite.bitmap.dispose if @name_sprite.bitmap != nil
@name_sprite.bitmap = nil
if command == "ネームウィンドウ"
case params[0]
when "on"
$game_system.use_name_window = true
when "off"
$game_system.use_name_window = false
end
else
a1_name_window_proc_comment_command(command, params)
end
end
end
end[/pre]
return [bitmap.width + 8, bitmap.height + 8]
end
end
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
# ゲーム中のすべてのウィンドウのスーパークラスです。
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# ☆ オブジェクト初期化
#--------------------------------------------------------------------------
alias a1_name_window_window_base_initialize initialize
def initialize(x, y, width, height)
a1_name_window_window_base_initialize(x, y, width, height)
create_name_window
end
#--------------------------------------------------------------------------
# ☆ フレーム更新
#--------------------------------------------------------------------------
alias a1_name_window_window_base_update update
def update
a1_name_window_window_base_update
update_name_window
end
#--------------------------------------------------------------------------
# ☆ 顔グラフィックの描画
#--------------------------------------------------------------------------
alias a1_name_window_window_base_draw_face draw_face
def draw_face(face_name, face_index, x, y, size = 96)
a1_name_window_window_base_draw_face(face_name, face_index, x, y, size)
show_name_window(face_name, face_index, x, size)
end
#--------------------------------------------------------------------------
# ☆ ウィンドウを閉じる
#--------------------------------------------------------------------------
alias a1_name_window_window_base_close close
def close
a1_name_window_window_base_close
end
#--------------------------------------------------------------------------
# ☆ 解放
#--------------------------------------------------------------------------
alias a1_name_window_window_base_dispose dispose
def dispose
a1_name_window_window_base_dispose
dispose_name_window
end
#--------------------------------------------------------------------------
# ○ ネームウィンドウの解放
#--------------------------------------------------------------------------
def dispose_name_window
@name_windows.values.each {|window| window.dispose }
end
#--------------------------------------------------------------------------
# ○ ネームウィンドウの更新
#--------------------------------------------------------------------------
def update_name_window
@name_windows.values.each {|window| window.update }
end
#--------------------------------------------------------------------------
# ○ ネームウィンドウを使用?
#--------------------------------------------------------------------------
def use_name_window?
A1_System::NameWindow::USE_NAME_WINDOW_CLASS.each {|clas| return true if self.is_a?(clas) }
return false
end
#--------------------------------------------------------------------------
# ○ ネームウィンドウの作成
#--------------------------------------------------------------------------
def create_name_window
@name_windows = {}
end
#--------------------------------------------------------------------------
# ○ 表示する名前の取得
#--------------------------------------------------------------------------
def show_name(face_name, face_index)
return nil unless $game_system.use_name_window
name = $game_temp.direct_show_name
if name.empty?
return nil if face_name == nil || face_name.empty?
name = A1_System::NameWindow::NAME_LIST[sprintf("%s_%d", face_name, face_index)]
name = A1_System::NameWindow::NAME_LIST[face_name] if name == nil
name = name[$game_temp.name_index] if name.is_a?(Array)
name = $game_actors[$1.to_i].name if name =~ /Actor\[(\d+)\]/
end
$game_temp.name_index = 0
$game_temp.direct_show_name = ""
return name
end
#--------------------------------------------------------------------------
# ○ ネームウィンドウの表示
#--------------------------------------------------------------------------
def show_name_window(face_name, face_index, x, size = 96)
return unless use_name_window?
name = show_name(face_name, face_index)
return if name == nil or name.empty?
@name_windows[name] ||= Window_FaceName.new(name, self.z + 10)
if x <= Graphics.width / 2
@name_windows[name].x = x + size + 20
@name_windows[name].x = 0 if @name_windows[name].x + @name_windows[name].width > Graphics.width / 2 and A1_System::NameWindow::FIX_LONG_NAME
else
@name_windows[name].x = Graphics.width - size - @name_windows[name].width
@name_windows[name].x = Graphics.width - @name_windows[name].width if @name_windows[name].x < Graphics.width / 2 and A1_System::NameWindow::FIX_LONG_NAME
end
@name_windows[name].y = self.y - 16 if self.y > 0
@name_windows[name].y = self.height - 16 if self.y == 0
@name_windows[name].openness = 255 if self.open?
@name_windows[name].open
@name_windows[name].visible = true
end
#--------------------------------------------------------------------------
# ○ ネームウィンドウを閉じる
#--------------------------------------------------------------------------
def name_window_close
@name_windows.values.each {|window| window.close }
end
#--------------------------------------------------------------------------
# ○ ネームウィンドウを非表示
#--------------------------------------------------------------------------
def name_window_visible_false
@name_windows.values.each {|window| window.visible = false }
end
end
#==============================================================================
# ■ Window_Message
#------------------------------------------------------------------------------
# 文章表示に使うメッセージウィンドウです。
#==============================================================================
class Window_Message
#--------------------------------------------------------------------------
# ○ ウィンドウを閉じる
#--------------------------------------------------------------------------
def close
name_window_close
super
end
end
#==============================================================================
# ◆ RGSS3用処理
#==============================================================================
if rgss_version == 3
#==============================================================================
# ■ Window_Message
#------------------------------------------------------------------------------
# 文章表示に使うメッセージウィンドウです。
#==============================================================================
class Window_Message < Window_Base
#--------------------------------------------------------------------------
# ☆ 改ページ処理
#--------------------------------------------------------------------------
alias a1_name_window_window_message_new_page new_page
def new_page(text, pos)
name_window_visible_false
a1_name_window_window_message_new_page(text, pos)
end
end
#==============================================================================
# ◆ RGSS2用処理
#==============================================================================
elsif rgss_version == 2
#==============================================================================
# ■ Window_Message
#------------------------------------------------------------------------------
# 文章表示に使うメッセージウィンドウです。
#==============================================================================
class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
# ☆ 改ページ処理
#--------------------------------------------------------------------------
alias a1_name_window_window_message_new_page new_page
def new_page
name_window_visible_false
a1_name_window_window_message_new_page
end
end
#==============================================================================
# ◆ RGSS用処理
#==============================================================================
elsif rgss_version == 1
end
#==============================================================================
# ■ Game_System
#------------------------------------------------------------------------------
# システム周りのデータを扱うクラスです。乗り物や BGM などの管理も行います。
# このクラスのインスタンスは $game_system で参照されます。
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ○ 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :use_name_window # ネームウィンドウ表示フラグ
#--------------------------------------------------------------------------
# ☆ オブジェクト初期化
#--------------------------------------------------------------------------
alias a1_name_window_game_system_initialize initialize
def initialize
a1_name_window_game_system_initialize
@use_name_window = false
end
end
#==============================================================================
# ■ Game_Temp
#------------------------------------------------------------------------------
# セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン
# スタンスは $game_temp で参照されます。
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# ○ 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :name_index
attr_accessor :direct_show_name
#--------------------------------------------------------------------------
# ☆ オブジェクト初期化
#--------------------------------------------------------------------------
alias a1_name_window_gt_initialize initialize
def initialize
a1_name_window_gt_initialize
@name_index = 0
@direct_show_name = ""
end
end
#==============================================================================
# ■ A1_System::CommonModule
#==============================================================================
class A1_System::CommonModule
#--------------------------------------------------------------------------
# ☆ 注釈コマンド定義
#--------------------------------------------------------------------------
alias a1_name_window_define_command define_command
def define_command
a1_name_window_define_command
@cmd_108["ネームウィンドウ"] = :name_window
@cmd_108["NWインデックス"] = :nw_index
@cmd_108["NW名前指定"] = :nw_set_name
end
end
#==============================================================================
# ■ Game_Interpreter
#------------------------------------------------------------------------------
# イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
# Game_Troop クラス、Game_Event クラスの内部で使用されます。
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ○ ネームウィンドウ
#--------------------------------------------------------------------------
def name_window(params)
$game_system.use_name_window = params[0] == "on" ? true : false
end
#--------------------------------------------------------------------------
# ○ NWインデックス
#--------------------------------------------------------------------------
def nw_index(params)
$game_temp.name_index = params[0].to_i
end
#--------------------------------------------------------------------------
# ○ NW名前指定
#--------------------------------------------------------------------------
def nw_set_name(params)
$game_temp.direct_show_name = params[0]
end
end
end
[/pre] 作者: hcm 时间: 2013-4-2 19:27
在这脚本内搜索一下opacity = 0,
改成255或者行前加#看看行不行。作者: 布里蓝 时间: 2013-4-2 22:53
其实是2.4版的修正了,本来是3种模式的对话框名字都有边框,现在是只有正常对话窗口有边框了