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

[转载发布] Three Actor Menu

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 207 天

    连续签到: 1 天

    [LV.7]常住居民III

    3646

    主题

    862

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

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

    灌水之王

    发表于 4 天前 | 显示全部楼层 |阅读模式
    Three Actor Menu 1.0.0

    by Todd (or DoctorTodd on RMRK)

    Introduction

    A menu that is modified to work as if you are only using three actors.

    Features

    Original design

    No configuration required

    Screenshots

    http://desmond.image....png&res=medium

    How to Use

    Paste above main

    Demo

    I don't think it's really neccessary.

    Script

    Spoiler#===============================================================================#

    # DT's Three actor menu

    # Author: DoctorTodd

    # Date (02/19/2012)

    # Type: (Menu)

    # Version: (1.0.0)

    # Level: (Simple)

    # Email: BeaconGames2011@gmail.com

    #

    #===============================================================================

    #

    # Description: A menu that is modified to work as if you are only using three

    # actors.

    #

    # Credits: Me (DoctorTodd), Sykval for location window.

    #

    #===============================================================================

    #

    # Instructions

    # Paste above main.

    #

    #===============================================================================

    #

    # This script requires no editing.

    #

    #===============================================================================

    class Scene_Menu < Scene_Base

      #--------------------------------------------------------------------------

      # * Object Initialization

      #         menu_index : command cursor's initial position

      #--------------------------------------------------------------------------

      def initialize(menu_index = 0)

            @menu_index = menu_index

      end

      #--------------------------------------------------------------------------

      # * Start processing

      #--------------------------------------------------------------------------

      def start

            super

            create_menu_background

            create_command_window

            @gold_window = Window_Gold.new(0, 360)

            @status_window = Window_MenuStatus.new(0, 55)

            @win_loc = Scene_Menu::Window_location.new(272, 360)

            @title = Window_MenuTitle.new(0, 0)

      end

      #--------------------------------------------------------------------------

      # * Termination Processing

      #--------------------------------------------------------------------------

      def terminate

            super

            dispose_menu_background

            @command_window.dispose

            @gold_window.dispose

            @status_window.dispose

            @win_loc.dispose

            @title.dispose

      end

      #--------------------------------------------------------------------------

      # * Frame Update

      #--------------------------------------------------------------------------

      def update

            super

            update_menu_background

            @command_window.update

            @gold_window.update

            @status_window.update

            if @command_window.active

            update_command_selection

            elsif @status_window.active

              update_actor_selection

            end

      end

      #--------------------------------------------------------------------------

      # * Create Command Window

      #--------------------------------------------------------------------------

      def create_command_window

            s1 = Vocab::item

            s2 = Vocab::skill

            s3 = Vocab::equip

            s4 = Vocab::status

            s5 = Vocab::save

            s6 = Vocab::game_end

            @command_window = Window_Command.new(165, [s1, s2, s3, s4, s5, s6])

            @command_window.index = @menu_index

            @command_window.x = 381

            @command_window.y = 55

            if $game_party.members.size == 0                  # If number of party members is 0

              @command_window.draw_item(0, false)         # Disable item

              @command_window.draw_item(1, false)         # Disable skill

              @command_window.draw_item(2, false)         # Disable equipment

              @command_window.draw_item(3, false)         # Disable status

            end

            if $game_system.save_disabled                         # If save is forbidden

              @command_window.draw_item(4, false)         # Disable save

            end

      end

      #--------------------------------------------------------------------------

      # * Update Command Selection

      #--------------------------------------------------------------------------

      def update_command_selection

            if Input.trigger?(Input::  


              Sound.play_cancel

              $scene = Scene_Map.new

            elsif Input.trigger?(Input::C)

              if $game_party.members.size == 0 and @command_window.index < 4

                    Sound.play_buzzer

                    return

              elsif $game_system.save_disabled and @command_window.index == 4

                    Sound.play_buzzer

                    return

              end

              Sound.play_decision

              case @command_window.index

              when 0          # Item

                    $scene = Scene_Item.new

              when 1,2,3  # Skill, equipment, status

                    start_actor_selection

              when 4          # Save

                    $scene = Scene_File.new(true, false, false)

              when 5          # End Game

                    $scene = Scene_End.new

              end

            end

      end

      #--------------------------------------------------------------------------

      # * Start Actor Selection

      #--------------------------------------------------------------------------

      def start_actor_selection

            @command_window.active = false

            @status_window.active = true

            if $game_party.last_actor_index < @status_window.item_max

              @status_window.index = $game_party.last_actor_index

            else

              @status_window.index = 0

            end

      end

      #--------------------------------------------------------------------------

      # * End Actor Selection

      #--------------------------------------------------------------------------

      def end_actor_selection

            @command_window.active = true

            @status_window.active = false

            @status_window.index = -1

      end

      #--------------------------------------------------------------------------

      # * Update Actor Selection

      #--------------------------------------------------------------------------

      def update_actor_selection

            if Input.trigger?(Input::  


              Sound.play_cancel

              end_actor_selection

            elsif Input.trigger?(Input::C)

              $game_party.last_actor_index = @status_window.index

              Sound.play_decision

              case @command_window.index

              when 1  # skill

                    $scene = Scene_Skill.new(@status_window.index)

              when 2  # equipment

                    $scene = Scene_Equip.new(@status_window.index)

              when 3  # status

                    $scene = Scene_Status.new(@status_window.index)

              end

            end

      end

    end

    #==============================================================================

    # ** Window_MenuStatus

    #------------------------------------------------------------------------------

    #  This window displays party member status on the menu screen.

    #==============================================================================

    class Window_MenuStatus < Window_Selectable

      #--------------------------------------------------------------------------

      # * Object Initialization

      #         x : window X coordinate

      #         y : window Y coordinate

      #--------------------------------------------------------------------------

      def initialize(x, y)

            super(x, y, 384, 305)

            refresh

             self.active = false

            self.index = -1

      end

      #--------------------------------------------------------------------------

      # * Refresh

      #--------------------------------------------------------------------------

      def refresh

            self.contents.clear

            @item_max = 3

            for actor in $game_party.members

              draw_actor_face(actor, 2, actor.index * 96 + 2, 92)

              x = 104

              y = actor.index * 96 + WLH / 2

              draw_actor_name(actor, x, y)

              draw_actor_class(actor, x + 120, y)

              draw_actor_level(actor, x, y + WLH * 1)

              draw_actor_state(actor, x, y + WLH * 2)

              draw_actor_hp(actor, x + 120, y + WLH * 1)

              draw_actor_mp(actor, x + 120, y + WLH * 2)

            end

      end

      #--------------------------------------------------------------------------

      # * Update cursor

      #--------------------------------------------------------------------------

      def update_cursor

            if @index < 0                           # No cursor

              self.cursor_rect.empty

            elsif @index < @item_max        # Normal

              self.cursor_rect.set(0, @index * 96, contents.width, 96)

            elsif @index >= 100                 # Self

              self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)

            else                                                # All

              self.cursor_rect.set(0, 0, contents.width, @item_max * 96)

            end

      end

    end

    #==============================================================================

    # ** Window_Gold

    #------------------------------------------------------------------------------

    #  This window displays the amount of gold.

    #==============================================================================

    class Window_Gold < Window_Base

      #--------------------------------------------------------------------------

      # * Object Initialization

      #         x : window X coordinate

      #         y : window Y coordinate

      #--------------------------------------------------------------------------

      def initialize(x, y)

            super(x, y, 272, WLH + 32)

            refresh

      end

      #--------------------------------------------------------------------------

      # * Refresh

      #--------------------------------------------------------------------------

      def refresh

            self.contents.clear

            draw_currency_value($game_party.gold, 4, 0, 230)

      end

    end

    #==============================================================================

    # ** Window_Location

    #------------------------------------------------------------------------------

    #  This class shows the current map name.

    #==============================================================================

    class Window_location < Window_Base

      #--------------------------------------------------------------------------

      # * Object Initialization

      #--------------------------------------------------------------------------

      def initialize(x, y)

            super(x, y, 272, WLH + 32)

            self.contents = Bitmap.new(width - 32, height - 32)

            refresh

      end

      #--------------------------------------------------------------------------

      # * Refresh

      #--------------------------------------------------------------------------

      def refresh

            self.contents.clear

            $maps = load_data("Data/MapInfos.rvdata")

            @map_id = $game_map.map_id

            @currmap = $maps[@map_id].name

            self.contents.font.color = system_color

            self.contents.draw_text(0, -4, 128, 35, "Location:")

            self.contents.font.color = normal_color

            self.contents.draw_text(0, -4, 230, 35, @currmap, 1)

      end

    end

    #==============================================================================

    # ** Window_MenuTitle

    #------------------------------------------------------------------------------

    #  This window is almost pointless, it just draws a window saying Main Menu.

    #==============================================================================

    class Window_MenuTitle < Window_Base

      #--------------------------------------------------------------------------

      # * Object Initialization

      #         x : window X coordinate

      #         y : window Y coordinate

      #--------------------------------------------------------------------------

      def initialize(x, y)

            super(x, y, 544, WLH + 32)

            refresh

      end

      #--------------------------------------------------------------------------

      # * Refresh

      #--------------------------------------------------------------------------

      def refresh

            self.contents.clear

            self.contents.font.color = system_color

            self.contents.draw_text(0, -4, 128, 35, "Main Menu")

      end

    end



                    Code:        






    FAQ

    None right now.

    Credit and Thanks

    - Todd

    - Sykval for location window

    Author's Notes

    Free for non-commercial and commercial games. You must credit me! If you use this in a commercial game I expect a free copy.


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

    本帖子中包含更多资源

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

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

    使用道具 举报

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

    本版积分规则

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

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-7-10 02:09 , Processed in 0.117707 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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