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

[转载发布] 2 Actor Menu

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

    连续签到: 2 天

    [LV.7]常住居民III

    4446

    主题

    864

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

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

    灌水之王

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

    This is my first script ive only used Windows and Scenes in the Scripts index.
    I just wanted to contribute something to the site as you have all been amazing and helpful to me so here goes
    im not expecting brilliant replys and probably a lot of laughs

                    Code:       
                                         #2 Actor Menu#                                                   #By Stulee1#                 #Makes Rpgmaker Vx Think Your Only Using 2 Characters #                             #Place Above Main But Below Materials##==============================================================================# ** 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, 160, WLH + 34)    refresh  end  #--------------------------------------------------------------------------  # * Refresh  #--------------------------------------------------------------------------  def refresh    self.contents.clear    draw_currency_value($game_party.gold, 4, 0, 120)  endend#==============================================================================# ** Scene_Menu#------------------------------------------------------------------------------#  This class performs the menu screen processing.#==============================================================================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, 175)    @status_window = Window_MenuStatus.new(160, 0)  end  #--------------------------------------------------------------------------  # * Termination Processing  #--------------------------------------------------------------------------  def terminate    super    dispose_menu_background    @command_window.dispose    @gold_window.dispose    @status_window.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(160, [s1, s2, s3, s4, s5, s6])    @command_window.index = @menu_index    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::B)      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::B)      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  endend#==============================================================================# ** 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, 233)    refresh    self.active = false    self.index = -1  end  #--------------------------------------------------------------------------  # * Refresh  #--------------------------------------------------------------------------  def refresh    self.contents.clear    @item_max = $game_party.members.size    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  endend




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

    使用道具 举报

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

    本版积分规则

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

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-7-14 14:21 , Processed in 0.065847 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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