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

Project1

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

[已经解决] 新版本的显示人名窗口,看不见边框和背景了

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
57 小时
注册时间
2012-9-1
帖子
34
跳转到指定楼层
1
发表于 2013-3-31 13:48:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 huhumaru 于 2013-4-3 15:44 编辑

我用的日站A1上面的脚本。ht(防和谐)tp://a1tktk.web.fc2.com/scripts_page/name_window.html
之前下的V1.00的版本可以正常显示,下了V2.40版本后,显示人名的窗口就看不到边框和背景了。我找了许久原因还是没找到。
求高人帮忙看一下啊~~代码和画面都放下面了

这个是问题画面


这个是老版本的代码
RUBY 代码复制
  1. #===========================================================================
  2. # ◆ A1 Scripts ◆
  3. #    ネームウィンドウ(RGSS3)
  4. #
  5. # バージョン   : 1.00 (2011/12/15)
  6. # 作者         : A1
  7. # URL     : ht(防和谐)tp://a1tktk.web.fc2.com/
  8. #---------------------------------------------------------------------------
  9. # 機能:
  10. # ・ネームウィンドウを表示します
  11. #---------------------------------------------------------------------------
  12. # 更新履歴   :2011/12/15 Ver1.00 リリース
  13. #---------------------------------------------------------------------------
  14. # 設置場所      
  15. #  RGSS3用A1共通スクリプトより下
  16. #
  17. # 必要スクリプト
  18. #    RGSS3用A1共通処理
  19. #---------------------------------------------------------------------------
  20. # 使い方
  21. # 設定項目を設定します
  22. # イベントコマンド「注釈」で表示の on/off を切り替えます
  23. #
  24. #  ネームウィンドウ on|off
  25. #==============================================================================
  26. $imported ||= {}
  27. $imported["A1_Name_Window"] = true
  28. if $imported["A1_Common_Script"]
  29. #==============================================================================
  30. # ■ 設定項目
  31. #==============================================================================
  32. module A1_System::NameWindow
  33.  
  34.   #--------------------------------------------------------------------------
  35.   # ネームウィンドウを使用するクラス
  36.   #--------------------------------------------------------------------------
  37.   USE_NAME_WINDOW_CLASS = [Window_Message]
  38.  
  39.   #--------------------------------------------------------------------------
  40.   # ネームウィンドウのフォント
  41.   #--------------------------------------------------------------------------
  42.   NAME_FONT = "UmePlus Gothic"
  43.  
  44.   #--------------------------------------------------------------------------
  45.   # 顔グラフィックと名前の対応
  46.   #
  47.   #  "[ファイル名]_[Index]" => "表示する名前" ※Index毎に設定
  48.   #  "[ファイル名]"         => "表示する名前" ※該当ファイル全てに適用
  49.   #--------------------------------------------------------------------------
  50.   NAME_LIST = {
  51.  
  52.     "美鶴"      =>  "黒姫美鶴",
  53.     "理香"      =>  "菅平理香",
  54.     "めいや"    =>  "桜井めいや",
  55.     "People1_4" =>  "先生",
  56.   }
  57.  
  58. end
  59. #==============================================================================
  60. # ■ Window_Base
  61. #------------------------------------------------------------------------------
  62. #  ゲーム中のすべてのウィンドウのスーパークラスです。
  63. #==============================================================================
  64.  
  65. class Window_Base < Window
  66.   #--------------------------------------------------------------------------
  67.   # ☆ オブジェクト初期化
  68.   #--------------------------------------------------------------------------
  69.   alias a1_name_window_window_base_initialize initialize
  70.   def initialize(x, y, width, height)
  71.     a1_name_window_window_base_initialize(x, y, width, height)
  72.     create_name_window
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ☆ フレーム更新
  76.   #--------------------------------------------------------------------------
  77.   alias a1_name_window_window_base_update update
  78.   def update
  79.     a1_name_window_window_base_update
  80.     update_name_window
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ☆ 顔グラフィックの描画
  84.   #--------------------------------------------------------------------------
  85.   alias a1_name_window_window_base_draw_face draw_face
  86.   def draw_face(face_name, face_index, x, y, size = 96)
  87.     a1_name_window_window_base_draw_face(face_name, face_index, x, y, size)
  88.     show_name_window(face_name, face_index, x, size)
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ☆ ウィンドウを閉じる
  92.   #--------------------------------------------------------------------------
  93.   alias a1_name_window_window_base_close close
  94.   def close
  95.     a1_name_window_window_base_close
  96.  
  97.     return if @name_sprite == nil
  98.     return if @name_window == nil
  99.  
  100.     name_window_close
  101.     @name_sprite.visible = false
  102.     @prev_show_name = ""
  103.     @prev_x = 0
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ☆ 解放
  107.   #--------------------------------------------------------------------------
  108.   alias a1_name_window_window_base_dispose dispose
  109.   def dispose
  110.     a1_name_window_window_base_dispose
  111.  
  112.     return if @name_sprite == nil
  113.     return if @name_window == nil
  114.     dispose_name_window
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ○ ネームウィンドウの解放
  118.   #--------------------------------------------------------------------------
  119.   def dispose_name_window
  120.     return if @name_sprite == nil
  121.     return if @name_window == nil
  122.  
  123.     @name_sprite.bitmap.dispose if @name_sprite.bitmap != nil
  124.     @name_sprite.bitmap = nil
  125.  
  126.     @name_sprite.dispose
  127.     @name_window.dispose
  128.  
  129.     @name_sprite = nil
  130.     @name_window = nil
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ○ ネームウィンドウの更新
  134.   #--------------------------------------------------------------------------
  135.   def update_name_window
  136.  
  137.     return if @name_sprite == nil
  138.     return if @name_window == nil
  139.  
  140.     @name_sprite.update
  141.     @name_window.update
  142.     @name_window.tone.set($game_system.window_tone)
  143.  
  144.     if @name_window.openness == 255
  145.       @name_sprite.visible = true
  146.     end
  147.     if @name_window_opening
  148.  
  149.       if self.openness == 255
  150.         @name_window.openness += 48
  151.       else
  152.         @name_window.openness = self.openness
  153.       end
  154.       if @name_window.openness == 255
  155.         @name_sprite.visible = true
  156.         @name_window_opening = false
  157.       end
  158.  
  159.     elsif @name_window_closing
  160.       @name_sprite.visible = false
  161.       @name_window.openness -= 48
  162.       @name_window_closing = false if @name_window.openness == 0
  163.     end
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ○ ネームウィンドウの作成
  167.   #--------------------------------------------------------------------------
  168.   def use_name_window?
  169.     for c in A1_System::NameWindow::USE_NAME_WINDOW_CLASS
  170.       return true if self.is_a?(c)
  171.     end
  172.     return false
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ○ ネームウィンドウの作成
  176.   #--------------------------------------------------------------------------
  177.   def create_name_window
  178.  
  179.     # ネームウィンドウを使用しないクラスならreturn
  180.     return unless use_name_window?
  181.  
  182.     @name_window_opening = false
  183.     @name_window_closing = false
  184.  
  185.     # 名前用スプライト
  186.     @name_sprite = Sprite.new
  187.     @name_sprite.visible = false
  188.  
  189.     # ネームウィンドウ
  190.     skin = Cache.system("Window").clone
  191.     skin.clear_rect(80, 16, 32, 32)
  192.     @name_window = Window.new
  193.     @name_window.windowskin = skin
  194.     @name_window.visible = true
  195.     @name_window.openness = 0
  196.  
  197.     # 前に表示した名前
  198.     @prev_show_name = ""
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # ○ 表示する名前の取得
  202.   #--------------------------------------------------------------------------
  203.   def show_name(face_name, face_index)
  204.     return nil unless $game_system.use_name_window
  205.     return nil if @name_sprite == nil
  206.     return nil if face_name == nil
  207.     return nil if face_name.empty?
  208.  
  209.     name = A1_System::NameWindow::NAME_LIST[sprintf("%s_%d", face_name, face_index)]
  210.     name = A1_System::NameWindow::NAME_LIST[face_name] if name == nil
  211.     return name
  212.   end
  213.   #--------------------------------------------------------------------------
  214.   # ○ ネームウィンドウの表示
  215.   #--------------------------------------------------------------------------
  216.   def show_name_window(face_name, face_index, x, size = 96)
  217.  
  218.     return if @name_sprite == nil
  219.     return if @name_window == nil
  220.  
  221.     name = show_name(face_name, face_index)
  222.  
  223.     if name == nil or name.empty?
  224.       name_window_close
  225.       @name_sprite.visible = false
  226.       @prev_show_name = ""
  227.       return
  228.     end
  229.     return if @prev_show_name == name and @prev_x == x
  230.  
  231.     @name_sprite.bitmap.dispose if @name_sprite.bitmap != nil
  232.     @name_sprite.bitmap = nil
  233.  
  234.     @prev_show_name = name
  235.     @prev_x = x
  236.  
  237.     # 計算用ダミービットマップ
  238.     bitmap = Cache.system("")
  239.     bitmap.font.name = A1_System::NameWindow::NAME_FONT
  240.     bitmap.font.size = 16
  241.     tw = bitmap.text_size(name).width + 8
  242.  
  243.     # ビットマップ作成
  244.     bitmap = Bitmap.new(tw, bitmap.font.size + 4)
  245.     bitmap.font.name = A1_System::NameWindow::NAME_FONT
  246.     bitmap.font.size = 16
  247.     bitmap.font.color = Color.new(255,255,255)
  248.     bitmap.draw_text(0, 0, bitmap.width, bitmap.height, name, 1)
  249.  
  250.     # スプライト設定
  251.     @name_sprite.bitmap = bitmap
  252.     @name_sprite.ox = bitmap.width / 2
  253.     @name_sprite.oy = bitmap.height / 2
  254.     @name_sprite.visible = true
  255.  
  256.     # ネームウィンドウリサイズ
  257.     @name_window.width = bitmap.width + 8
  258.     @name_window.height = bitmap.height + 8
  259.  
  260.     @name_window.x = x + size + 20
  261.     @name_window.y = self.y - 16
  262.     @name_window.z = self.z + 10
  263.  
  264.     if @name_window.x + @name_window.width > Graphics.width
  265.       @name_window.x = Graphics.width - @name_window.width
  266.     end
  267.  
  268.     @name_sprite.x = @name_window.x + @name_window.width / 2
  269.     @name_sprite.y = @name_window.y + @name_window.height / 2
  270.     @name_sprite.z = self.z + 20
  271.  
  272.     name_window_open
  273.  
  274.     if @name_window_opening
  275.       @name_sprite.visible = false
  276.     end
  277.   end
  278.   #--------------------------------------------------------------------------
  279.   # ○ ネームウィンドウを開く
  280.   #--------------------------------------------------------------------------
  281.   def name_window_open
  282.     @name_window_opening = true if @name_window.openness < 255
  283.     @name_window_closing = false
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ○ ネームウィンドウを閉じる
  287.   #--------------------------------------------------------------------------
  288.   def name_window_close
  289.     return if @name_sprite == nil
  290.     return if @name_window == nil
  291.     @name_window_closing = true if @name_window.openness > 0
  292.     @name_window_opening = false
  293.     @name_sprite.visible = false
  294.     @prev_show_name = ""
  295.   end
  296. end
  297. #==============================================================================
  298. # ■ Window_Message
  299. #------------------------------------------------------------------------------
  300. #  文章表示に使うメッセージウィンドウです。
  301. #==============================================================================
  302.  
  303. class Window_Message < Window_Base
  304.   #--------------------------------------------------------------------------
  305.   # ☆ 改ページ処理
  306.   #--------------------------------------------------------------------------
  307.   alias a1_name_window_window_message_new_page new_page
  308.   def new_page(text, pos)
  309.     name_window_close if $game_message.face_name.empty?
  310.     a1_name_window_window_message_new_page(text, pos)
  311.   end
  312. end
  313. #==============================================================================
  314. # ■ Game_System
  315. #------------------------------------------------------------------------------
  316. #  システム周りのデータを扱うクラスです。乗り物や BGM などの管理も行います。
  317. # このクラスのインスタンスは $game_system で参照されます。
  318. #==============================================================================
  319.  
  320. class Game_System
  321.   #--------------------------------------------------------------------------
  322.   # ○ 公開インスタンス変数
  323.   #--------------------------------------------------------------------------
  324.   attr_accessor :use_name_window                # ネームウィンドウ表示フラグ
  325.   #--------------------------------------------------------------------------
  326.   # ☆ オブジェクト初期化
  327.   #--------------------------------------------------------------------------
  328.   alias a1_name_window_game_system_initialize initialize
  329.   def initialize
  330.     a1_name_window_game_system_initialize
  331.     @use_name_window = false
  332.   end
  333. end
  334. #==============================================================================
  335. # ■ Game_Interpreter
  336. #------------------------------------------------------------------------------
  337. #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
  338. # Game_Troop クラス、Game_Event クラスの内部で使用されます。
  339. #==============================================================================
  340.  
  341. class Game_Interpreter
  342.  
  343.   #--------------------------------------------------------------------------
  344.   # ☆ 注釈の実行
  345.   #--------------------------------------------------------------------------
  346.   alias a1_name_window_proc_comment_command proc_comment_command
  347.   def proc_comment_command(command, params)
  348.  
  349.     if command == "ネームウィンドウ"
  350.       case params[0]
  351.       when "on"
  352.         $game_system.use_name_window = true
  353.       when "off"
  354.         $game_system.use_name_window = false
  355.       end
  356.     else
  357.       a1_name_window_proc_comment_command(command, params)
  358.     end
  359.   end
  360. end
  361. end



这个是新版本的代码
RUBY 代码复制
  1. #===========================================================================
  2. # ◆ A1 Scripts ◆
  3. #    ネームウィンドウ(RGSS2/RGSS3共用)
  4. #
  5. # バージョン   : 2.40 (2012/01/19)
  6. # 作者         : A1
  7. # URL     : ht(防和谐)tp://a1tktk.web.fc2.com/
  8. #---------------------------------------------------------------------------
  9. # 機能:
  10. # ・ネームウィンドウを表示します
  11. #---------------------------------------------------------------------------
  12. # 更新履歴   :2011/12/15 Ver1.00 リリース
  13. #            :2011/12/29 Ver1.10 アクター名表示対応
  14. #            :2011/12/30 Ver2.00 左右顔グラフィック対応
  15. #            :2011/12/30 Ver2.00 表示位置「上」対応
  16. #            :2011/12/30 Ver2.10 RGSS2対応
  17. #            :2011/12/30 Ver2.11 名前が切り替わる度にウィンドウを閉じる不具合を修正
  18. #            :2012/01/02 Ver2.20 同じ顔グラフィックの別名表示機能追加
  19. #            :2012/01/02 Ver2.20 表示名の直接指定機能追加
  20. #            :2012/01/02 Ver2.30 A1共通スクリプトVer3.30対応
  21. #            :2012/01/19 Ver2.40 バトルネームウィンドウ対応
  22. #---------------------------------------------------------------------------
  23. # 設置場所      
  24. #  A1共通スクリプトより下
  25. #  (左右顔グラフィックスクリプトより下)
  26. #
  27. # 必要スクリプト
  28. #    A1共通スクリプトVer3.30以上
  29. #---------------------------------------------------------------------------
  30. # 使い方
  31. # 設定項目を設定します
  32. # 
  33. #   設定項目の「表示する名前」を Actor[ID] とすると
  34. #   IDで指定したアクターの名前を表示します
  35. # 
  36. # イベントコマンド「注釈」に記述
  37. #
  38. #  ネームウィンドウ on|off
  39. #      表示の on/off を切り替えます
  40. #
  41. #    NWインデックス index
  42. #      同じ顔グラフィックに複数の名前を配列で登録している場合
  43. #      次に表示するネームウィンドウを指定した index の名前を使用します
  44. #      省略時には 0番目 の名前を使用します
  45. #
  46. #    NW名前指定 Name
  47. #      次に表示するネームウィンドウに Name を使用します
  48. #      顔グラフィックなしでも表示されます
  49. #==============================================================================
  50. $imported ||= {}
  51. $imported["A1_Name_Window"] = true
  52. if $imported["A1_Common_Script"]
  53. old_common_script("ネームウィンドウ", "3.30") if common_version < 3.30
  54. #==============================================================================
  55. # ■ 設定項目
  56. #==============================================================================
  57. module A1_System::NameWindow
  58.  
  59.   #--------------------------------------------------------------------------
  60.   # ネームウィンドウを使用するクラス
  61.   #--------------------------------------------------------------------------
  62.   USE_NAME_WINDOW_CLASS = [Window_Message]
  63.  
  64.   #--------------------------------------------------------------------------
  65.   # ネームウィンドウのフォント
  66.   #--------------------------------------------------------------------------
  67.   NAME_FONT = "UmePlus Gothic"
  68.  
  69.   #--------------------------------------------------------------------------
  70.   # 長い名前の時に左(右)に寄せる
  71.   #--------------------------------------------------------------------------
  72.   FIX_LONG_NAME = false
  73.  
  74.   #--------------------------------------------------------------------------
  75.   # 顔グラフィックと名前の対応
  76.   #
  77.   #  "[ファイル名]_[Index]" => "表示する名前" ※Index毎に設定
  78.   #  "[ファイル名]"         => "表示する名前" ※該当ファイル全てに適用
  79.   #                            "Actor[ID]"    ※該当するIDのアクター名を表示
  80.   #--------------------------------------------------------------------------
  81.   NAME_LIST = {
  82.     "Actor4_0"    => "エリック",
  83.     "Actor4_4"    => "アーネスト",
  84.     "Actor4_5"    => "ティファ",
  85.   }
  86. end
  87. #==============================================================================
  88. # ■ Cache
  89. #------------------------------------------------------------------------------
  90. #  各種グラフィックを読み込み、Bitmap オブジェクトを作成、保持するモジュール
  91. # です。読み込みの高速化とメモリ節約のため、作成した Bitmap オブジェクトを内部
  92. # のハッシュに保存し、同じビットマップが再度要求されたときに既存のオブジェクト
  93. # を返すようになっています。
  94. #==============================================================================
  95.  
  96. module Cache
  97.   #--------------------------------------------------------------------------
  98.   # ○ ネームウィンドウ用ビットマップの取得
  99.   #--------------------------------------------------------------------------
  100.   def self.name_bitmap(name)
  101.     return load_name_bitmap(name)
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ○ 名前bitmapの作成
  105.   #--------------------------------------------------------------------------
  106.   def self.load_name_bitmap(name)
  107.     @cache ||= {}
  108.     key = [name, "name_window"]
  109.     return @cache[key] if include?(key)
  110.  
  111.     # 計算用ダミービットマップ
  112.     bitmap = Cache.system("")
  113.     bitmap.font.name = A1_System::NameWindow::NAME_FONT
  114.     bitmap.font.size = 16
  115.     tw = bitmap.text_size(name).width + 8
  116.  
  117.     # ビットマップ作成
  118.     bitmap = Bitmap.new(tw, bitmap.font.size + 4)
  119.     bitmap.font.name = A1_System::NameWindow::NAME_FONT
  120.     bitmap.font.size = 16
  121.     bitmap.font.color = Color.new(255,255,255)
  122.     bitmap.draw_text(0, 0, bitmap.width, bitmap.height, name, 1)
  123.  
  124.     @cache[key] = bitmap
  125.     return @cache[key]
  126.   end
  127. end
  128. #==============================================================================
  129. # ■ Window_FaceName
  130. #==============================================================================
  131.  
  132. class Window_FaceName < Window_Base
  133.   #--------------------------------------------------------------------------
  134.   # ○ オブジェクト初期化
  135.   #--------------------------------------------------------------------------
  136.   def initialize(name, z)
  137.     info = create_name_sprite(name)
  138.     super(0, 0, info[0], info[1])
  139.     self.visible = true
  140.     self.openness = 0
  141.     self.z = z
  142.     skin = Cache.system("Window").clone
  143.     skin.clear_rect(80, 16, 32, 32)
  144.     self.windowskin = skin
  145.     @name_sprite.z = self.z + 10
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ○ ネームウィンドウのセットアップ
  149.   #--------------------------------------------------------------------------
  150.   def setup_name_window(name)
  151.     info = create_name_sprite(name)
  152.     self.width  = info[0]
  153.     self.height = info[1]
  154.     create_contents
  155.     @name_sprite.z = self.z + 10
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ○ フレーム更新
  159.   #--------------------------------------------------------------------------
  160.   def update
  161.     super
  162.     @name_sprite.visible = self.visible && self.open?
  163.     return unless self.open?
  164.     @name_sprite.update
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # ○ 解放
  168.   #--------------------------------------------------------------------------
  169.   def dispose
  170.     @name_sprite.bitmap.dispose
  171.     @name_sprite.dispose
  172.     super
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ○ ウィンドウを開く
  176.   #--------------------------------------------------------------------------
  177.   def open
  178.     super
  179.     @name_sprite.x = self.x + self.width / 2
  180.     @name_sprite.y = self.y + self.height / 2
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ○ スプライトの作成
  184.   #--------------------------------------------------------------------------
  185.   def create_name_sprite(name)
  186.     # ビットマップの取得
  187.     bitmap = Cache.name_bitmap(name)
  188.  
  189.     # スプライト設定
  190.     @name_sprite         = Sprite.new
  191.     @name_sprite.bitmap  = bitmap
  192.     @name_sprite.ox      = bitmap.width / 2
  193.     @name_sprite.oy      = bitmap.height / 2
  194.     @name_sprite.visible = false
  195.  
  196.     return [bitmap.width + 8, bitmap.height + 8]
  197.   end
  198. end
  199. #==============================================================================
  200. # ■ Window_Base
  201. #------------------------------------------------------------------------------
  202. #  ゲーム中のすべてのウィンドウのスーパークラスです。
  203. #==============================================================================
  204.  
  205. class Window_Base < Window
  206.   #--------------------------------------------------------------------------
  207.   # ☆ オブジェクト初期化
  208.   #--------------------------------------------------------------------------
  209.   alias a1_name_window_window_base_initialize initialize
  210.   def initialize(x, y, width, height)
  211.     a1_name_window_window_base_initialize(x, y, width, height)
  212.     create_name_window
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # ☆ フレーム更新
  216.   #--------------------------------------------------------------------------
  217.   alias a1_name_window_window_base_update update
  218.   def update
  219.     a1_name_window_window_base_update
  220.     update_name_window
  221.   end
  222.   #--------------------------------------------------------------------------
  223.   # ☆ 顔グラフィックの描画
  224.   #--------------------------------------------------------------------------
  225.   alias a1_name_window_window_base_draw_face draw_face
  226.   def draw_face(face_name, face_index, x, y, size = 96)
  227.     a1_name_window_window_base_draw_face(face_name, face_index, x, y, size)
  228.     show_name_window(face_name, face_index, x, size)
  229.   end
  230.   #--------------------------------------------------------------------------
  231.   # ☆ ウィンドウを閉じる
  232.   #--------------------------------------------------------------------------
  233.   alias a1_name_window_window_base_close close
  234.   def close
  235.     a1_name_window_window_base_close
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ☆ 解放
  239.   #--------------------------------------------------------------------------
  240.   alias a1_name_window_window_base_dispose dispose
  241.   def dispose
  242.     a1_name_window_window_base_dispose
  243.     dispose_name_window
  244.   end
  245.   #--------------------------------------------------------------------------
  246.   # ○ ネームウィンドウの解放
  247.   #--------------------------------------------------------------------------
  248.   def dispose_name_window
  249.     @name_windows.values.each {|window| window.dispose }
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ○ ネームウィンドウの更新
  253.   #--------------------------------------------------------------------------
  254.   def update_name_window
  255.     @name_windows.values.each {|window| window.update }
  256.   end
  257.   #--------------------------------------------------------------------------
  258.   # ○ ネームウィンドウを使用?
  259.   #--------------------------------------------------------------------------
  260.   def use_name_window?
  261.     A1_System::NameWindow::USE_NAME_WINDOW_CLASS.each {|clas| return true if self.is_a?(clas) }
  262.     return false
  263.   end
  264.   #--------------------------------------------------------------------------
  265.   # ○ ネームウィンドウの作成
  266.   #--------------------------------------------------------------------------
  267.   def create_name_window
  268.     @name_windows = {}
  269.   end
  270.   #--------------------------------------------------------------------------
  271.   # ○ 表示する名前の取得
  272.   #--------------------------------------------------------------------------
  273.   def show_name(face_name, face_index)
  274.     return nil unless $game_system.use_name_window
  275.     name = $game_temp.direct_show_name
  276.     if name.empty?
  277.       return nil if face_name == nil || face_name.empty?
  278.       name = A1_System::NameWindow::NAME_LIST[sprintf("%s_%d", face_name, face_index)]
  279.       name = A1_System::NameWindow::NAME_LIST[face_name] if name == nil
  280.       name = name[$game_temp.name_index] if name.is_a?(Array)
  281.       name = $game_actors[$1.to_i].name if name =~ /Actor\[(\d+)\]/
  282.     end
  283.     $game_temp.name_index       = 0
  284.     $game_temp.direct_show_name = ""
  285.     return name
  286.   end
  287.   #--------------------------------------------------------------------------
  288.   # ○ ネームウィンドウの表示
  289.   #--------------------------------------------------------------------------
  290.   def show_name_window(face_name, face_index, x, size = 96)
  291.     return unless use_name_window?
  292.     name = show_name(face_name, face_index)
  293.     return if name == nil or name.empty?
  294.     @name_windows[name] ||= Window_FaceName.new(name, self.z + 10)
  295.     if x <= Graphics.width / 2
  296.       @name_windows[name].x = x + size + 20
  297.       @name_windows[name].x = 0 if @name_windows[name].x + @name_windows[name].width > Graphics.width / 2 and A1_System::NameWindow::FIX_LONG_NAME
  298.     else
  299.       @name_windows[name].x = Graphics.width - size - @name_windows[name].width
  300.       @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
  301.     end
  302.     @name_windows[name].y = self.y      - 16 if self.y  > 0
  303.     @name_windows[name].y = self.height - 16 if self.y == 0
  304.     @name_windows[name].openness = 255 if self.open?
  305.     @name_windows[name].open
  306.     @name_windows[name].visible = true
  307.   end
  308.   #--------------------------------------------------------------------------
  309.   # ○ ネームウィンドウを閉じる
  310.   #--------------------------------------------------------------------------
  311.   def name_window_close
  312.     @name_windows.values.each {|window| window.close }
  313.   end
  314.   #--------------------------------------------------------------------------
  315.   # ○ ネームウィンドウを非表示
  316.   #--------------------------------------------------------------------------
  317.   def name_window_visible_false
  318.     @name_windows.values.each {|window| window.visible = false }
  319.   end
  320. end
  321. #==============================================================================
  322. # ■ Window_Message
  323. #------------------------------------------------------------------------------
  324. #  文章表示に使うメッセージウィンドウです。
  325. #==============================================================================
  326.  
  327. class Window_Message
  328.   #--------------------------------------------------------------------------
  329.   # ○ ウィンドウを閉じる
  330.   #--------------------------------------------------------------------------
  331.   def close
  332.     name_window_close
  333.     super
  334.   end
  335. end
  336. #==============================================================================
  337. # ◆ RGSS3用処理
  338. #==============================================================================
  339. if rgss_version == 3
  340. #==============================================================================
  341. # ■ Window_Message
  342. #------------------------------------------------------------------------------
  343. #  文章表示に使うメッセージウィンドウです。
  344. #==============================================================================
  345.  
  346. class Window_Message < Window_Base
  347.   #--------------------------------------------------------------------------
  348.   # ☆ 改ページ処理
  349.   #--------------------------------------------------------------------------
  350.   alias a1_name_window_window_message_new_page new_page
  351.   def new_page(text, pos)
  352.     name_window_visible_false
  353.     a1_name_window_window_message_new_page(text, pos)
  354.   end
  355. end
  356. #==============================================================================
  357. # ◆ RGSS2用処理
  358. #==============================================================================
  359. elsif rgss_version == 2
  360. #==============================================================================
  361. # ■ Window_Message
  362. #------------------------------------------------------------------------------
  363. #  文章表示に使うメッセージウィンドウです。
  364. #==============================================================================
  365.  
  366. class Window_Message < Window_Selectable
  367.   #--------------------------------------------------------------------------
  368.   # ☆ 改ページ処理
  369.   #--------------------------------------------------------------------------
  370.   alias a1_name_window_window_message_new_page new_page
  371.   def new_page
  372.     name_window_visible_false
  373.     a1_name_window_window_message_new_page
  374.   end
  375. end
  376. #==============================================================================
  377. # ◆ RGSS用処理
  378. #==============================================================================
  379. elsif rgss_version == 1
  380. end
  381. #==============================================================================
  382. # ■ Game_System
  383. #------------------------------------------------------------------------------
  384. #  システム周りのデータを扱うクラスです。乗り物や BGM などの管理も行います。
  385. # このクラスのインスタンスは $game_system で参照されます。
  386. #==============================================================================
  387.  
  388. class Game_System
  389.   #--------------------------------------------------------------------------
  390.   # ○ 公開インスタンス変数
  391.   #--------------------------------------------------------------------------
  392.   attr_accessor :use_name_window                # ネームウィンドウ表示フラグ
  393.   #--------------------------------------------------------------------------
  394.   # ☆ オブジェクト初期化
  395.   #--------------------------------------------------------------------------
  396.   alias a1_name_window_game_system_initialize initialize
  397.   def initialize
  398.     a1_name_window_game_system_initialize
  399.     @use_name_window = false
  400.   end
  401. end
  402. #==============================================================================
  403. # ■ Game_Temp
  404. #------------------------------------------------------------------------------
  405. #  セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン
  406. # スタンスは $game_temp で参照されます。
  407. #==============================================================================
  408.  
  409. class Game_Temp
  410.   #--------------------------------------------------------------------------
  411.   # ○ 公開インスタンス変数
  412.   #--------------------------------------------------------------------------
  413.   attr_accessor :name_index
  414.   attr_accessor :direct_show_name
  415.   #--------------------------------------------------------------------------
  416.   # ☆ オブジェクト初期化
  417.   #--------------------------------------------------------------------------
  418.   alias a1_name_window_gt_initialize initialize
  419.   def initialize
  420.     a1_name_window_gt_initialize
  421.     @name_index       = 0
  422.     @direct_show_name = ""
  423.   end
  424. end
  425. #==============================================================================
  426. # ■ A1_System::CommonModule
  427. #==============================================================================
  428.  
  429. class A1_System::CommonModule
  430.   #--------------------------------------------------------------------------
  431.   # ☆ 注釈コマンド定義
  432.   #--------------------------------------------------------------------------
  433.   alias a1_name_window_define_command define_command
  434.   def define_command
  435.     a1_name_window_define_command
  436.     @cmd_108["ネームウィンドウ"] = :name_window
  437.     @cmd_108["NWインデックス"]   = :nw_index
  438.     @cmd_108["NW名前指定"]       = :nw_set_name
  439.   end
  440. end
  441. #==============================================================================
  442. # ■ Game_Interpreter
  443. #------------------------------------------------------------------------------
  444. #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
  445. # Game_Troop クラス、Game_Event クラスの内部で使用されます。
  446. #==============================================================================
  447.  
  448. class Game_Interpreter
  449.   #--------------------------------------------------------------------------
  450.   # ○ ネームウィンドウ
  451.   #--------------------------------------------------------------------------
  452.   def name_window(params)
  453.     $game_system.use_name_window = params[0] == "on" ? true : false
  454.   end
  455.   #--------------------------------------------------------------------------
  456.   # ○ NWインデックス
  457.   #--------------------------------------------------------------------------
  458.   def nw_index(params)
  459.     $game_temp.name_index = params[0].to_i
  460.   end
  461.   #--------------------------------------------------------------------------
  462.   # ○ NW名前指定
  463.   #--------------------------------------------------------------------------
  464.   def nw_set_name(params)
  465.     $game_temp.direct_show_name = params[0]
  466.   end
  467. end
  468. end

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

2
发表于 2013-4-2 19:27:32 | 只看该作者
在这脚本内搜索一下opacity = 0,
改成255或者行前加#看看行不行。

点评

hcm
没有啊,我又说错了吗。  发表于 2013-4-2 21:20
脚本内似乎是没有 opacity 的。  发表于 2013-4-2 20:13
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
758
在线时间
2064 小时
注册时间
2011-10-3
帖子
1686
3
发表于 2013-4-2 22:53:56 | 只看该作者
其实是2.4版的修正了,本来是3种模式的对话框名字都有边框,现在是只有正常对话窗口有边框了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 15:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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