Project1

标题: 有没有任务提示的简单脚本呢? [打印本页]

作者: nhycs01    时间: 2025-3-16 14:49
标题: 有没有任务提示的简单脚本呢?
本帖最后由 nhycs01 于 2025-3-16 14:51 编辑

比如我想在画面上方,出现一排简短的文字(一直显示),提示玩家现在该去做什么,类似简易的任务提示。
并且这个文字随着任务的结束,可以由我在事件里消除,并添加新的任务提示。
有类似的插件吗?请大佬们指点。对了,得可以商用的。
作者: 魔法丶小肉包    时间: 5 天前
自家坑里挖出来简单适配了一下默认工程的简陋提示功能 (x 如图
使用方法事件脚本set_maphelp("主线提示")
需要准备一张背景图片作为素材,素材名为Map_Help,放在Graphics\system文件夹里,参考图里用的素材尺寸为272*60px作为绘制参考~(图中为自制素材且在自家游戏里使用中所以暂不提供)


RUBY 代码复制
  1. class << DataManager
  2.   alias mf_240331msc make_save_contents
  3.   def make_save_contents
  4.     contents = mf_240331msc
  5.     contents[:maphelp] = $map_help
  6.     contents
  7.   end
  8.   alias mf_240331esc extract_save_contents
  9.   def extract_save_contents(contents)
  10.     mf_240331esc(contents)
  11.     $map_help = contents[:maphelp]
  12.   end
  13. end
  14. class Game_Interpreter
  15.   def set_maphelp(text)
  16.     $window_mh.set_text(text)
  17.   end
  18. end
  19. class Window_MapHelp < Window_Base
  20.   def initialize(x,y)
  21.     super(x, y, Graphics.width/2, fitting_height(2))
  22.     self.opacity = 0
  23.     $map_help ||= ""
  24.     contents.font.size = 12
  25.     refresh
  26.   end
  27.   def update
  28.     super
  29.     @back_sprite.x = self.x
  30.     @back_sprite.y = self.y
  31.   end
  32.   def set_text(text)
  33.     if text != $map_help
  34.       $map_help = text
  35.       refresh
  36.     end
  37.   end
  38.   def clear
  39.     set_text("")
  40.   end
  41.   def refresh
  42.     contents.clear
  43.     contents.font.size = 16
  44.     draw_text(60, 7, width, line_height, $map_help)
  45.   end
  46.   def draw_back_sprite
  47.     @back_sprite = Sprite.new
  48.     @back_sprite.bitmap = Cache.system("Map_Help")
  49.     @back_sprite.x = self.x
  50.     @back_sprite.y = self.y
  51.   end
  52.   def dispose_backsprite
  53.     @back_sprite.dispose
  54.   end
  55. end
  56. class Scene_Map
  57.   alias mf230530_start start
  58.   def start
  59.     mf230530_start
  60.     c_mh_window
  61.   end
  62.   def c_mh_window
  63.     $window_mh ||= Window_MapHelp.new(Graphics.width/2,0)
  64.     $window_mh.show
  65.     $window_mh.draw_back_sprite
  66.   end
  67. end

作者: nhycs01    时间: 5 天前
魔法丶小肉包 发表于 2025-3-23 20:25
自家坑里挖出来简单适配了一下默认工程的简陋提示功能 (x 如图
使用方法事件脚本set_maphelp("主线提示")
...

大大,我试了一下还不错。但是我想让任务栏暂时消失的命令该怎么写?
还有我想调整任务图片的位置和文字的位置该怎么调呢?
作者: 魔法丶小肉包    时间: 3 天前
nhycs01 发表于 2025-3-23 22:03
大大,我试了一下还不错。但是我想让任务栏暂时消失的命令该怎么写?
还有我想调整任务图片的位置和文字 ...

把这段放进去,然后事件脚本调用show_maphelp或者show_maphelp(false) 分别是显示和隐藏
RUBY 代码复制
  1. class Game_Interpreter
  2.   def show_maphelp(show=true)
  3.     $window_mh.visible = show
  4.     $window_mh.sprite.visible = show
  5.   end
  6. end
  7. class Window_MapHelp
  8.   def sprite
  9.     @back_sprite
  10.   end
  11. end


然后位置调整的话呢在63行括号里(x,y)
作者: 写给妖精的情诗    时间: 3 天前
RPGMAKER MZ 任务插件教程和演示
https://www.bilibili.com/video/BV1Ph4y1i7U8/?vd_source=fd84198c79e8abb85db5da3c83dba99e
上面这里有一个MZ版的插件视频,评论区还有UP主特意留下的截图。

[RPG Maker MV / MZ] 可以轻松介绍任务系统的插件介绍 | 不会掉落的书籍
https://motomiyaraimu.com/tkool-quest-plugin/
好像就是上面这里的这个插件,因为都是搜索QuestSystem.js这个插件名找到的。

虽然写的是MV/MZ,但是里面有 BOOTH ([VXAce/MV/MZ] Advanced Quest System (Japanese)) 这么一个链接,
https://booth.pm/en/items/3351199
点击之后进入上面这个网页,好像是可以免费下载的,那里的100日元写着是援助,好像是打赏的性质,我猜应该是给不给都可以的。




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