设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 106|回复: 0

[转载发布] Dragon Quest Style Scripts (Menu)

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9071

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    58883
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    68848

    灌水之王

    发表于 2026-8-2 18:03:00 | 显示全部楼层 |阅读模式
    DQ Style Menu
    Jamiras843 

    Introduction
    This script is used to give the game a more DQ stylesque menu. It is my first script and rather large and clunky but there is no lag or what not in the playing. I have not encountered any major bugs, just some visual quirks that may annoy such as one window taking longer to fade away etc. Anyway this script was made due no one converting Woratana's lite menu or having a menu system that suits my needs. Thus my script will now be publicized for those who are like me. feel free to PM me if there are any bug issues.
    NOTE: Have some ideas for an update but may not get around to it unless there are major bugs :NOTE

    Features
    V2.00 Fixes known bugs.
    V1.50


    • Full customization of windows, sizes, locations, and opacity with minor exceptions (mainly the character HUD)
    • A custom HUD at the bottom of the screen DQ style with options on face graphics, HP/MP, and level display
    • Revamped gold menu
    • Options for a gold/location window
    • Menu style options to have classic RPG Maker character select screen or Classic DQ screen
    • The ability to remove the Save, Quit, or Formation cmd
    Screenshots

    Spoiler


    Menu showing columns and location window




    Showing new character select screen




    Showing new gold window with character HUD with no Face Graphic displayed



    How to Use
    Plug and play in the Materials section above main

    Script
    Spoiler#============================================================================# [VXAce] Dragon Quest Menu V2.00#----------------------------------------------------------------------------# By Jamiras843## Features:# V2.00# * Fixed menu close issue# * Added the ability to hide HP/MP Bars# V1.50# * Fixed menu overlap issues# * Added charater HUD with options# V1.00# * Simplified menu layout that has adjustable columns and rows.# * New actor selection menu which is smaller and simpler in design.#============================================================================$imported = {} if $imported.nil?$imported["Dragon Quest Menu"] = truemodule Jami_DQ_Menu#========================================================================# Script options#------------------------------------------------------------------------# Here you edit menu specific things, such as height, x/y origin, column# number, etc.## Make all simple edits here! They are easy to understand and labled!#========================================================================WINDOW_OPACITY = 255 #Number 0-255 that determines window opacityDRAW_HP_MP_BARS = false #If true shows default RPG maker barMENU_COLUMN = 2 #Number of columns for the menuMENU_LINE = 2 #Number of max lines for the menuMENU_HEIGHT = 100 #Menu height (at least 80 per line, no <80)MENU_WIDTH = 180 #Menu width (at least 90 per column)MENU_X = 0 #Menu X originMENU_Y = 0 #Menu Y originLOC_X = 0 #Custom location window X originLOC_Y = 306 - 75 #Custom location window Y originGOLD_X = 0 #Custom gold window X originGOLD_Y = 306 - 54 #Custom gold window Y origin#=========================================================================# Menu Command options#-------------------------------------------------------------------------# This is where you set up what commands you want in the menu, including# custom ones using common events.#=========================================================================SHOW_SAVE_CMD = false #If false removes save option from menuSHOW_EXIT_GAME = true #If false removes quit game option from the menuSHOW_FORMATION = true #If false removes the formation commandSHOW_LOCATION = true #If true shows custom gold window w/ locationVOCAB_LOC = "Location:"VOCAB_GOLD = "Gold Coins:"SIMPLE_STATUS = true #If true shows a list staus menu DW2,3,&4 styleACTOR_WINDOW = trueSHOW_FACE = trueSHOW_HP = trueSHOW_MP = trueSHOW_LEVEL = trueend #end module Jami_DQ_Menu#============================================================================# WARNING: Do not edit below unless you know what you are doing. This script# is rather sloppy but it does its job.#============================================================================#============================================================================# * DQ Window (over writes menu command window)#============================================================================class Window_DQ_Menu < Window_Command#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initializesuper(Jami_DQ_Menu::MENU_X, Jami_DQ_Menu::MENU_Y)end#--------------------------------------------------------------------------# * Get Number of Lines to Show#--------------------------------------------------------------------------def visible_line_numberreturn Jami_DQ_Menu::MENU_LINEend#--------------------------------------------------------------------------# * Get Digit Count#--------------------------------------------------------------------------def col_maxreturn Jami_DQ_Menu::MENU_COLUMNend#--------------------------------------------------------------------------# * Set Width#--------------------------------------------------------------------------def window_widthreturn Jami_DQ_Menu::MENU_WIDTHend#--------------------------------------------------------------------------# * Set Height#--------------------------------------------------------------------------def window_heightreturn Jami_DQ_Menu::MENU_HEIGHTend#--------------------------------------------------------------------------# * Create Command List#--------------------------------------------------------------------------def make_command_listadd_main_commandsadd_formation_commandadd_game_end_commandend#--------------------------------------------------------------------------# * Create Command List#--------------------------------------------------------------------------def make_command_listadd_main_commandsadd_formation_commandadd_save_commandadd_game_end_commandend#--------------------------------------------------------------------------# * Add Main Commands to List#--------------------------------------------------------------------------def add_main_commandsadd_command(Vocab::item, :item, main_commands_enabled)add_command(Vocab::skill, :skill, main_commands_enabled)add_command(Vocab::equip, :equip, main_commands_enabled)add_command(Vocab::status, :status, main_commands_enabled)end#--------------------------------------------------------------------------# * Add Save to Command List#--------------------------------------------------------------------------def add_save_commandadd_command(Vocab::save, :save, save_enabled) if Jami_DQ_Menu::SHOW_SAVE_CMD == trueend#--------------------------------------------------------------------------# * Add Formation to Command List#--------------------------------------------------------------------------def add_formation_commandadd_command(Vocab::formation, :formation, formation_enabled) if Jami_DQ_Menu::SHOW_FORMATION == trueend#--------------------------------------------------------------------------# * Add Exit Game to Command List#--------------------------------------------------------------------------def add_game_end_commandadd_command(Vocab::game_end, :game_end) if Jami_DQ_Menu::SHOW_EXIT_GAME == trueend#-------------------------------------------------------------------------# * Get Activation State of Main Commands#-------------------------------------------------------------------------def main_commands_enabled$game_party.existsend#-------------------------------------------------------------------------# * Get Activation State of Save#-------------------------------------------------------------------------def save_enabled!$game_system.save_disabledend#-------------------------------------------------------------------------# * Get Activation State of Formation#-------------------------------------------------------------------------def formation_enabled$game_party.members.size >= 2 && !$game_system.formation_disabledendend #class Window_DQ_Menu#============================================================================# * Window Base#----------------------------------------------------------------------------# Edit which changes base window#============================================================================class Window_Base < Window#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initialize(x, y, width, height)superself.windowskin = Cache.system("Window")update_paddingupdate_tonecreate_contents@opening = @closing = falseself.back_opacity = Jami_DQ_Menu::WINDOW_OPACITYend#--------------------------------------------------------------------------# * Draw HP#--------------------------------------------------------------------------def draw_actor_hp(actor, x, y, width = 124)if Jami_DQ_Menu:
    RAW_HP_MP_BARS == truedraw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)endchange_color(system_color)draw_text(x, y, 30, line_height, Vocab::hp_a)draw_current_and_max_values(x, y, width, actor.hp, actor.mhp,hp_color(actor), normal_color)end#--------------------------------------------------------------------------# * Draw MP#--------------------------------------------------------------------------def draw_actor_mp(actor, x, y, width = 124)if Jami_DQ_Menu:
    RAW_HP_MP_BARS == truedraw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)endchange_color(system_color)draw_text(x, y, 30, line_height, Vocab::mp_a)draw_current_and_max_values(x, y, width, actor.mp, actor.mmp,mp_color(actor), normal_color)endend#============================================================================# ** Gold/location Window#============================================================================class Window_Location < Window_Base#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initializesuper(Jami_DQ_Menu::LOC_X, Jami_DQ_Menu::LOC_Y,300,75)self.contents = Bitmap.new(width - 32, height - 32)refreshend#--------------------------------------------------------------------------# * Refresh#--------------------------------------------------------------------------def refreshself.contents.clearself.contents.draw_text(0,0,140,32, Jami_DQ_Menu::VOCAB_LOC)self.contents.draw_text(120,0,140,32, $game_map.display_name)self.contents.draw_text(0,20,140,32, Jami_DQ_Menu::VOCAB_GOLD)self.contents.draw_text(120,20,140,32, $game_party.gold)endend #end class Window_Location#============================================================================# ** Gold Window (No location)#============================================================================class Window_Gold < Window_Base#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initializesuper(Jami_DQ_Menu::GOLD_X, Jami_DQ_Menu::GOLD_Y,245,54)self.contents = Bitmap.new(width - 32, height - 32)refreshend#--------------------------------------------------------------------------# * Refresh#--------------------------------------------------------------------------def refreshself.contents.clearself.contents.draw_text(0,0,140,32, Jami_DQ_Menu::VOCAB_GOLD)self.contents.draw_text(120,0,140,32, $game_party.gold)endend #end class Window_Location#============================================================================# ** Actor Window#============================================================================class Window_Actor < Window_Base#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initializeif $game_party.members.size < 4super(0,306,110 * $game_party.members.size,110)elsesuper(0,306,110 * 4,110)endcreate_contents@actor1 = $game_party.members[0]@actor2 = $game_party.members[1]@actor3 = $game_party.members[2]@actor4 = $game_party.members[3]refreshend#----------------------------------------------------# * Refresh#----------------------------------------------------def refreshcontents.cleardraw_window_contentdraw_horiz_line (line_height * 1)end#----------------------------------------------------# * Draw Window Contents#----------------------------------------------------def draw_window_content# Faceif Jami_DQ_Menu::SHOW_FACE == truedraw_face(@actor1.face_name, @actor1.face_index, 0, 0, enabled = false)if $game_party.members.size > 1draw_face(@actor2.face_name, @actor2.face_index, 110, 0, enable = false)end # > 1if $game_party.members.size > 2draw_face(@actor3.face_name, @actor3.face_index, 220, 0, enable = false)end # > 2if $game_party.members.size > 3draw_face(@actor4.face_name, @actor4.face_index, 330, 0, enable = false)end # > 3end # if face# Actor Namedraw_actor_name(@actor1, 0, 0)if $game_party.members.size > 1draw_actor_name(@actor2, 110, 0)end # > 1if $game_party.members.size > 2draw_actor_name(@actor3, 220, 0)end # > 2if $game_party.members.size > 3draw_actor_name(@actor4, 330, 0)end # > 3# Actor HPif Jami_DQ_Menu::SHOW_HP == truedraw_actor_hp(@actor1, 0, 24, 80)if $game_party.members.size > 1draw_actor_hp(@actor2, 110, 24, 80)end # > 1if $game_party.members.size > 2draw_actor_hp(@actor3, 220, 24, 80)end # > 2if $game_party.members.size > 3draw_actor_hp(@actor4, 330, 24, 80)end # > 3end #if SHOW_HP# Actor MPif Jami_DQ_Menu::SHOW_MP == truedraw_actor_mp(@actor1, 0, 44, 80)if $game_party.members.size > 1draw_actor_mp(@actor2, 110, 44, 80)end # > 1if $game_party.members.size > 2draw_actor_mp(@actor3, 220, 44, 80)end # > 2if $game_party.members.size > 3draw_actor_mp(@actor4, 330, 44, 80)end # > 3end #if SHOW_MP# Actor LVif Jami_DQ_Menu::SHOW_LEVEL == truedraw_actor_level(@actor1, 0, 64)if $game_party.members.size > 1draw_actor_level(@actor2, 110, 64)end # > 1if $game_party.members.size > 2draw_actor_level(@actor3, 220, 64)end # > 2if $game_party.members.size > 3draw_actor_level(@actor4, 330, 64)end # > 3end #if SHOW_Levelend # df draw_window_contentend #end class Window_Location#--------------------------------------------------------------------------# * Draw Horizontal Line#--------------------------------------------------------------------------def draw_horiz_line(y)contents.fill_rect(0, 22, contents_width, 2, line_color)end#--------------------------------------------------------------------------# * Get Color of Horizontal Line#--------------------------------------------------------------------------def line_colorcolor = normal_colorcolor.alpha = 200colorend#==============================================================================# ** Window_MenuStatus#------------------------------------------------------------------------------# This window displays party member status on the menu screen.#==============================================================================class Window_Simple_MenuStatus < Window_Selectable#--------------------------------------------------------------------------# * Public Instance Variables#--------------------------------------------------------------------------attr_reader
    ending_index # Pending position (for formation)#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initialize(x, y)super(x, y, window_width, window_height)@pending_index = -1refreshend#--------------------------------------------------------------------------# * Get Window Width#--------------------------------------------------------------------------def window_widthJami_DQ_Menu::MENU_WIDTHend#--------------------------------------------------------------------------# * Get Window Height#--------------------------------------------------------------------------def window_height124end#--------------------------------------------------------------------------# * Get Number of Items#--------------------------------------------------------------------------def item_max$game_party.members.sizeend#--------------------------------------------------------------------------# * Get Item Height#--------------------------------------------------------------------------def item_height22end#--------------------------------------------------------------------------# * Draw Item#--------------------------------------------------------------------------def draw_item(index)actor = $game_party.members[index]enabled = $game_party.battle_members.include?(actor)rect = item_rect(index)draw_item_background(index)draw_actor_name(actor, 4, rect.y - 2)end#--------------------------------------------------------------------------# * Draw Background for Item#--------------------------------------------------------------------------def draw_item_background(index)if index == @pending_indexcontents.fill_rect(item_rect(index), pending_color)endend#--------------------------------------------------------------------------# * Processing When OK Button Is Pressed#--------------------------------------------------------------------------def process_oksuper$game_party.menu_actor = $game_party.members[index]end#--------------------------------------------------------------------------# * Restore Previous Selection Position#--------------------------------------------------------------------------def select_lastselect($game_party.menu_actor.index || 0)end#--------------------------------------------------------------------------# * Set Pending Position (for Formation)#--------------------------------------------------------------------------def pending_index=(index)last_pending_index = @pending_index@pending_index = indexredraw_item(@pending_index)redraw_item(last_pending_index)endend#============================================================================# ** Scene_Menu#----------------------------------------------------------------------------# This overwrites menu#============================================================================class Scene_Menu < Scene_MenuBase#--------------------------------------------------------------------------# * Start Processing#--------------------------------------------------------------------------def startsupercreate_command_windowif Jami_DQ_Menu::SHOW_LOCATION == falsecreate_gold_windowelsecreate_location_windowendif Jami_DQ_Menu::SIMPLE_STATUS == falsecreate_status_windowelsecreate_simple_status_windowendif Jami_DQ_Menu::ACTOR_WINDOW == truecreate_actor_windowendend#--------------------------------------------------------------------------# * Create Command Window#--------------------------------------------------------------------------def create_command_window@command_window = Window_DQ_Menu.new@command_window.set_handler
    item, method
    command_item))@command_window.set_handler
    skill, method
    command_personal))@command_window.set_handler
    equip, method
    command_personal))@command_window.set_handler
    status, method
    command_personal))@command_window.set_handler
    formation, method
    command_formation))@command_window.set_handler
    save, method
    command_save))@command_window.set_handler
    game_end, method
    command_game_end))@command_window.set_handler
    cancel, method
    return_scene))end#--------------------------------------------------------------------------# * Create Status Window#--------------------------------------------------------------------------def create_status_window@status_window = Window_MenuStatus.new(0,0)@status_window.hideend#--------------------------------------------------------------------------# * Create Simple Status Window#--------------------------------------------------------------------------def create_simple_status_window@simple_status_window = Window_Simple_MenuStatus.new(0,0)@simple_status_window.hideend#--------------------------------------------------------------------------# * [Skill], [Equipment] and [Status] Commands#--------------------------------------------------------------------------def command_personalif Jami_DQ_Menu::SIMPLE_STATUS == false@status_window.show@command_window.hideif Jami_DQ_Menu::ACTOR_WINDOW == true@actor_window.hideend@status_window.select_last@status_window.activate@status_window.set_handler
    ok, method
    on_personal_ok))@status_window.set_handler
    cancel, method
    on_personal_cancel))else@simple_status_window.show@command_window.hide@simple_status_window.select_last@simple_status_window.activate@simple_status_window.set_handler
    ok, method
    on_personal_ok))@simple_status_window.set_handler
    cancel, method
    on_personal_cancel))endend#--------------------------------------------------------------------------# * [Cancel] Personal Command#--------------------------------------------------------------------------def on_personal_cancelif Jami_DQ_Menu::SIMPLE_STATUS == false@status_window.unselect@status_window.hideif Jami_DQ_Menu::ACTOR_WINDOW == true@actor_window.dispose@actor_window = Window_Actor.newend@command_window.show@command_window.activateelse@simple_status_window.unselect@command_window.show@simple_status_window.hideif Jami_DQ_Menu::ACTOR_WINDOW == true@actor_window.dispose@actor_window = Window_Actor.newend@command_window.activateendend#--------------------------------------------------------------------------# * [Formation] Command#--------------------------------------------------------------------------def command_formationif Jami_DQ_Menu::SIMPLE_STATUS == false@status_window.show@command_window.hideif Jami_DQ_Menu::ACTOR_WINDOW == true@actor_window.hideend@status_window.select_last@status_window.activate@status_window.set_handler
    ok, method
    on_formation_ok))@status_window.set_handler
    cancel, method
    on_formation_cancel))else@simple_status_window.show@command_window.hide@simple_status_window.select_last@simple_status_window.activate@simple_status_window.set_handler
    ok, method
    on_formation_ok))@simple_status_window.set_handler
    cancel, method
    on_formation_cancel))endend#--------------------------------------------------------------------------# * Formation [OK]#--------------------------------------------------------------------------def on_formation_okif Jami_DQ_Menu::SIMPLE_STATUS == falseif @status_window.pending_index >= 0$game_party.swap_order(@status_window.index,@status_window.pending_index)@status_window.pending_index = -1@status_window.redraw_item(@status_window.index)if Jami_DQ_Menu::ACTOR_WINDOW == true@actor_window.dispose@actor_window = Window_Actor.new@actor_window.hideendelse@status_window.pending_index = @status_window.indexend@status_window.activateelseif @simple_status_window.pending_index >= 0$game_party.swap_order(@simple_status_window.index,@simple_status_window.pending_index)@simple_status_window.pending_index = -1@simple_status_window.redraw_item(@simple_status_window.index)if Jami_DQ_Menu::ACTOR_WINDOW == true@actor_window.dispose@actor_window = Window_Actor.newendelse@simple_status_window.pending_index = @simple_status_window.indexend@simple_status_window.activateendend#--------------------------------------------------------------------------# * Formation [Cancel]#--------------------------------------------------------------------------def on_formation_cancelif Jami_DQ_Menu::SIMPLE_STATUS == falseif @status_window.pending_index >= 0@status_window.pending_index = -1@status_window.activateelse@status_window.unselect@status_window.hideif Jami_DQ_Menu::ACTOR_WINDOW == true@actor_window.dispose@actor_window = Window_Actor.newend@command_window.show@command_window.activateendelseif @simple_status_window.pending_index >= 0@simple_status_window.pending_index = -1@simple_status_window.activateelse@simple_status_window.unselect@simple_status_window.hideif Jami_DQ_Menu::ACTOR_WINDOW == true@actor_window.dispose@actor_window = Window_Actor.newend@command_window.show@command_window.activateendendend#--------------------------------------------------------------------------# * Location window#--------------------------------------------------------------------------def create_location_window@location_window = Window_Location.newend#--------------------------------------------------------------------------# * Create Gold Window#--------------------------------------------------------------------------def create_gold_window@gold_window = Window_Gold.newend#--------------------------------------------------------------------------# * Create Actor Window#--------------------------------------------------------------------------def create_actor_window@actor_window = Window_Actor.newendend # end Scene_Menu



    FAQ
    None as of yet

    Credit and Thanks

    • Jamiras843
    • Woratana (influence)
    • lilcooldude69 (modified HUD)
    • EvilEagles (menu opacity code)
    Author's Notes (AKA Bug Log)


    • none note as of V2.00.



    本贴来自国际rpgmaker官方论坛作者:jamiras843处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/dragon-quest-style-scripts-menu.15572/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-17 09:31 , Processed in 0.147600 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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