Project1

标题: 如何实现用事件打开说明窗口? [打印本页]

作者: alianlord    时间: 2021-2-8 22:16
标题: 如何实现用事件打开说明窗口?
比如说,踏上某个格子。然后就弹出一个窗口说明这里前面10步有道具店。不想用对话,想用画面上方一个窗口显示。
古思良久,终未寻得善法。还请不吝指教,谢谢。
作者: alexncf125    时间: 2021-2-8 23:53
如果你说的"说明窗口"是指Window_Help的话, 用纯事件应该是无法实现的...
脚本的解決方案, 随便搜一搜应该都有十个八个吧...
我就写个简陋的你看看能用不...

RUBY 代码复制
  1. module HELP_WINDOW
  2.   REGION_ID = 1          #踏入此ID的区域时显示帮助窗口
  3.   TEXT_VAR = 1          #此ID的变量用于儲存帮助窗口的內容
  4.   LINE_HEIGHT = 1          #帮助窗口的行数, 如果设成2+, 那內容如何换行我就不知道了~~
  5. end
  6.  
  7. class Scene_Map < Scene_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 更新画面
  10.   #--------------------------------------------------------------------------
  11.   alias update_with_help_window update
  12.   def update
  13.     update_with_help_window
  14.     unless @help_window_text == help_window_text
  15.       @help_window_text = help_window_text
  16.       @help_window.set_text(@help_window_text)
  17.     end
  18.     if $game_map.region_id($game_player.x, $game_player.y) == HELP_WINDOW::REGION_ID && !@help_window_text.empty?
  19.       @help_window.visible = true
  20.     elsif @help_window.visible == true
  21.       @help_window.visible = false
  22.       $game_variables[HELP_WINDOW::TEXT_VAR] = ""
  23.     end
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 生成所有窗口
  27.   #--------------------------------------------------------------------------
  28.   alias create_all_windows_with_help_window create_all_windows
  29.   def create_all_windows
  30.     create_all_windows_with_help_window
  31.     create_help_window
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 生成帮助窗口
  35.   #--------------------------------------------------------------------------
  36.   def create_help_window
  37.     @help_window = Window_Help.new(HELP_WINDOW::LINE_HEIGHT)
  38.     @help_window.visible = false
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 获取帮助窗口的文本
  42.   #--------------------------------------------------------------------------
  43.   def help_window_text
  44.     return $game_variables[HELP_WINDOW::TEXT_VAR] == 0 ? "" : $game_variables[1].to_s
  45.   end
  46. end

作者: alianlord    时间: 2021-2-9 00:10
谢谢,我这就前去调试。
作者: 迷你及其人    时间: 2021-2-9 18:32
不知道楼主的问题解决没有。我自己有一个功能差不多的,你不嫌弃可以拿去用。

https://rpg.blue/thread-484462-1-1.html

带有范例工程的,不清除可以下载看看。
作者: alianlord    时间: 2021-2-10 11:07
迷你及其人 发表于 2021-2-9 18:32
不知道楼主的问题解决没有。我自己有一个功能差不多的,你不嫌弃可以拿去用。

https://rpg.blue/thread-48 ...

谢谢热心帮助。下载研究中。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1