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

Project1

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

[已经解决] 想要調整選擇物品的框的大小的腳本,卻無法移動高度[已...

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2580
在线时间
244 小时
注册时间
2016-10-2
帖子
33
跳转到指定楼层
1
发表于 2017-8-31 12:55:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 yukibana_227 于 2017-9-5 18:44 编辑

事情是這樣的,想要做一個比較小一點的物品選擇欄,讓他在畫面裡置中(已經把物品選擇改成一欄了),但無論怎麼調他都會置頂。



像這樣↑

然後我改的地方是這裡:

RUBY 代码复制
  1. class Window_KeyItem < Window_ItemList
  2.   #--------------------------------------------------------------------------
  3.   # ● オブジェクト初期化
  4.   #--------------------------------------------------------------------------
  5.   def initialize(message_window)
  6.     @message_window = message_window
  7.     super(185, 40, 270, 400)
  8.     self.openness = 0
  9.     deactivate
  10.     set_handler(:ok,     method(:on_ok))
  11.     set_handler(:cancel, method(:on_cancel))
  12.   end


想請問一下該改什麼地方才能讓它不要置頂呢?(順便一提介面大小是640×480)


↑是這個東西

Lv4.逐梦者

梦石
0
星屑
19433
在线时间
3102 小时
注册时间
2013-1-11
帖子
1291
2
发表于 2017-8-31 17:33:58 | 只看该作者
本帖最后由 张咚咚 于 2017-8-31 20:46 编辑


点评

總之目前是沒有問題的,非常感謝您的幫忙!鬼打牆了好一陣子真是非常抱歉orz  发表于 2017-8-31 21:50
找到衝突的腳本了......目前把衝突腳本裡的那段全部刪掉了,暫時還相安無事......  发表于 2017-8-31 21:20
看到鬼我開了新檔案竟然是可以的(震驚 現在正在測試是不是哪個腳本衝突了|||orz  发表于 2017-8-31 21:06
不会啊,原版测试有效啊  发表于 2017-8-31 20:44
糟糕,沒用,他還是置頂......(說真的這個我之前就試過了,就算整段都刪除也完全不會有任何改變我非常困惑)  发表于 2017-8-31 20:33
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2580
在线时间
244 小时
注册时间
2016-10-2
帖子
33
3
 楼主| 发表于 2017-8-31 21:24:10 | 只看该作者
目前是找到衝突的腳本了orz
貼一下衝突的腳本:



  1. #==============================================================================
  2. #                   「ロングメッセージ」(ACE) ver.3.0  by奈々
  3. #
  4. #   ◇使用規約
  5. #   使用される場合はスクリプト作成者として「奈々」を明記して下さい。
  6. #   このスクリプトを改変したり、改変したものを配布するなどは自由ですが
  7. #   その場合も元のスクリプトの作成者として名前は載せて下さい。
  8. #   その他、詳しい利用規約はブログを参照して下さい。
  9. #
  10. #------------------------------------------------------------------------------
  11. #
  12. #   デフォルトでは4行で固定の「文章の表示」を好きな行に可変させます。
  13. #   (ロングメッセージと言いつつ、ショートメッセージも作れます)
  14. #   また「文章のスクロール表示」を使って長いテキストを1回で入力できます。
  15. #   
  16. #   ・可変行
  17. #   まず初期設定でゲーム開始時の行数を指定します。
  18. #   ゲーム中に変更したい場合はイベントコマンドの「スクリプト」に
  19. #   change_message_row(行数)
  20. #   と入力します。
  21. #   
  22. #   ・長文入力
  23. #   イベントコマンド「文章の表示」に1行「header」とだけ入れて
  24. #   その直後に「文章のスクロール表示」を置くことで
  25. #   スクロール表示ではなく、通常の文章の表示として使用できます。
  26. #   (顔グラや表示位置などの設定はheaderのものが適用されます)
  27. #   可変行で5行以上のメッセージを入力したい場合や
  28. #   4行ずつ入力するのが面倒な場合に活用して下さい。
  29. #   
  30. #   ・メッセージウィンドウの位置設定
  31. #   イベントコマンド「スクリプト」で
  32. #   set_mesbox(x座標, y座標, 横幅)
  33. #   と入力することでゲーム中にこれらを変更できます。
  34. #   デフォルト設定に戻す(変更しない)場合は、数値の変わりに「nil」を指定します。
  35. #
  36. #==============================================================================
  37. # ◇初期設定
  38. module NanaSeven
  39.   
  40.   START_TEXT_ROW = 4      # 表示行数の初期値
  41.   
  42. end
  43. #==============================================================================

  44. #==============================================================================
  45. # ■ Game_System
  46. #------------------------------------------------------------------------------
  47. #  システム周りのデータを扱うクラスです。セーブやメニューの禁止状態などを保存
  48. # します。このクラスのインスタンスは $game_system で参照されます。
  49. #==============================================================================

  50. class Game_System
  51.   #--------------------------------------------------------------------------
  52.   # ● 公開インスタンス変数(追加)
  53.   #--------------------------------------------------------------------------
  54.   attr_accessor :nana_message_row       # メッセージ行数
  55.   attr_accessor :mesbox_x               # メッセージウィンドウX座標(nilで自動)
  56.   attr_accessor :mesbox_y               # メッセージウィンドウY座標(nilで自動)
  57.   attr_accessor :mesbox_width           # メッセージウィンドウ横幅(nilで通常)
  58.   #--------------------------------------------------------------------------
  59.   # ● オブジェクト初期化(alias再定義)
  60.   #--------------------------------------------------------------------------
  61.   alias long_text_initialize initialize
  62.   def initialize
  63.     long_text_initialize
  64.     @nana_message_row = NanaSeven::START_TEXT_ROW
  65.   end
  66. end
  67. #==============================================================================
  68. # ■ Window_Message
  69. #------------------------------------------------------------------------------
  70. #  文章表示に使うメッセージウィンドウです。
  71. #==============================================================================

  72. class Window_Message < Window_Base
  73.   #--------------------------------------------------------------------------
  74.   # ● 表示行数の取得
  75.   #--------------------------------------------------------------------------
  76.   def visible_line_number
  77.     return $game_system.nana_message_row
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● ウィンドウ幅の取得
  81.   #--------------------------------------------------------------------------
  82.   def window_width
  83.     $game_system.mesbox_width ? $game_system.mesbox_width : Graphics.width
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # ● ウィンドウ位置の更新
  87.   #--------------------------------------------------------------------------
  88.   def update_placement
  89.     self.x = ($game_system.mesbox_x ? $game_system.mesbox_x : 0)
  90.    
  91.     if $game_system.mesbox_y
  92.       self.y = $game_system.mesbox_y
  93.     else
  94.       @position = $game_message.position
  95.       self.y = @position * (Graphics.height - height) / 2
  96.     end
  97.    
  98.     @gold_window.y = y > 0 ? 0 : Graphics.height - @gold_window.height
  99.   end
  100. end

  101. #選択肢などのウィンドウが画面外に吹き飛ぶのを防止
  102. #==============================================================================
  103. # ■ Window_ChoiceList
  104. #------------------------------------------------------------------------------
  105. #  イベントコマンド[選択肢の表示]に使用するウィンドウです。
  106. #==============================================================================

  107. class Window_ChoiceList < Window_Command
  108.   #--------------------------------------------------------------------------
  109.   # ● ウィンドウ位置の更新
  110.   #--------------------------------------------------------------------------
  111.   def update_placement
  112.     self.width = [max_choice_width + 12, 96].max + padding * 2
  113.     self.width = [width, Graphics.width].min
  114.     self.height = fitting_height($game_message.choices.size)
  115.     self.x = Graphics.width - width
  116.     #ウィンドウ位置が下
  117.     if $game_message.position == 2
  118.       self.y = @message_window.y - height
  119.     #ウィンドウ位置が上か中
  120.     else
  121.       self.y = @message_window.y + @message_window.height
  122.     end
  123.   end
  124. end
  125. #==============================================================================
  126. # ■ Window_NumberInput
  127. #------------------------------------------------------------------------------
  128. #  イベントコマンド[数値入力の処理]に使用するウィンドウです。
  129. #==============================================================================

  130. class Window_NumberInput < Window_Base
  131.   #--------------------------------------------------------------------------
  132.   # ● ウィンドウ位置の更新
  133.   #--------------------------------------------------------------------------
  134.   def update_placement
  135.     self.width = @digits_max * 20 + padding * 2
  136.     self.height = fitting_height(1)
  137.     self.x = (Graphics.width - width) / 2
  138.     if $game_message.position == 2
  139.       self.y = @message_window.y - height - 8
  140.     else
  141.       self.y = @message_window.y + @message_window.height + 8
  142.     end
  143.   end
  144. end
  145. #==============================================================================
  146. # ■ Window_KeyItem
  147. #------------------------------------------------------------------------------
  148. #  イベントコマンド[アイテム選択の処理]に使用するウィンドウです。
  149. #==============================================================================

  150. class Window_KeyItem < Window_ItemList
  151.   #--------------------------------------------------------------------------
  152.   # ● ウィンドウ位置の更新
  153.   #--------------------------------------------------------------------------
  154.   def update_placement
  155.     if $game_message.position == 2
  156.       self.y = 0
  157.     else
  158.       self.y = Graphics.height - height
  159.     end
  160.   end
  161. end


  162. #==============================================================================
  163. # ■ Game_Interpreter
  164. #------------------------------------------------------------------------------
  165. #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
  166. # Game_Troop クラス、Game_Event クラスの内部で使用されます。
  167. #==============================================================================

  168. class Game_Interpreter
  169.   #--------------------------------------------------------------------------
  170.   # ● 文章の表示(再定義)
  171.   #--------------------------------------------------------------------------
  172.   def command_101
  173.     wait_for_message
  174.     $game_message.face_name = @params[0]
  175.     $game_message.face_index = @params[1]
  176.     $game_message.background = @params[2]
  177.     $game_message.position = @params[3]
  178.     while next_event_code == 401       # 文章データ
  179.       @index += 1
  180.       header = (@list[@index].parameters[0] == "header")
  181.       $game_message.add(@list[@index].parameters[0]) unless header
  182.     end
  183.     while next_event_code == 105 && header
  184.       @index += 1
  185.     end
  186.     while next_event_code == 405 && header
  187.       @index += 1
  188.       $game_message.add(@list[@index].parameters[0])
  189.     end
  190.     case next_event_code
  191.     when 102  # 選択肢の表示
  192.       @index += 1
  193.       setup_choices(@list[@index].parameters)
  194.     when 103  # 数値入力の処理
  195.       @index += 1
  196.       setup_num_input(@list[@index].parameters)
  197.     when 104  # アイテム選択の処理
  198.       @index += 1
  199.       setup_item_choice(@list[@index].parameters)
  200.     end
  201.     wait_for_message
  202.   end
  203.   #--------------------------------------------------------------------------
  204.   # ● メッセージ行数の変更
  205.   #--------------------------------------------------------------------------
  206.   def change_message_row(value)
  207.     $game_system.nana_message_row = value
  208.     Fiber.yield while $game_message.visible
  209.     if SceneManager.scene_is?(Scene_Map) || SceneManager.scene_is?(Scene_Battle)
  210.       SceneManager.scene.create_message_window
  211.     end
  212.   end
  213.   #--------------------------------------------------------------------------
  214.   # ● メッセージウィンドウの位置設定
  215.   #--------------------------------------------------------------------------
  216.   def set_mesbox(x, y, width)
  217.     $game_system.mesbox_x = x
  218.     $game_system.mesbox_y = y
  219.     $game_system.mesbox_width = width
  220.     Fiber.yield while $game_message.visible
  221.     if SceneManager.scene_is?(Scene_Map) || SceneManager.scene_is?(Scene_Battle)
  222.       SceneManager.scene.create_message_window
  223.     end
  224.   end
  225. end

复制代码


基本上目前是把衝突的這一塊刪掉了

  1. #==============================================================================
  2. # ■ Window_KeyItem
  3. #------------------------------------------------------------------------------
  4. #  イベントコマンド[アイテム選択の処理]に使用するウィンドウです。
  5. #==============================================================================

  6. class Window_KeyItem < Window_ItemList
  7.   #--------------------------------------------------------------------------
  8.   # ● ウィンドウ位置の更新
  9.   #--------------------------------------------------------------------------
  10.   def update_placement
  11.     if $game_message.position == 2
  12.       self.y = 0
  13.     else
  14.       self.y = Graphics.height - height
  15.     end
  16.   end
  17. end
复制代码


雖然目前回到遊戲裡覺得好像沒有差很多,但說真的其實搞不清楚他這一段在整個腳本的重要性,還是有點不安就是了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 16:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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