じ☆ve冰风 发表于 2026-8-2 21:02:01

Party Member Select Script

Party Member Select Script
by NinjaChicle​

Introduction
This script lets you select an actor from your party and save their ID in a variable. Also saves the name of the actor in a different variable too if you want to.

How to Use
Put this script above Main. Then put SceneManager.call(Scene_ActorSelect) in a script call in an event, and after that put a wait command for at least 1 frame. Then you can use the variable with your saved actor id for whatever you want.





Script

                Code:       
#--------------------------------------------------------------------------
#* Party Member Select Script
#
# A script for RPG Maker VX Ace projects
#
# script by: NinjaChicle
#
# This script lets you select an actor from your party and save their ID
# in a variable. Also saves the name of the actor in a different
# variable too if you want to.
#
# To use it, just put SceneManager.call(Scene_ActorSelect) in a script call and then add the wait command for one frame,
# and you will be able to select an actor and then use the ID for
# whatever you want.
#
# credit me if you want to use it but idc anymore if you dont
#--------------------------------------------------------------------------

module YAHOO

ACTOR_ID_VAR = 1 #the variable in which the actor id will be saved in

ACTOR_NAME = 2   #this variable will save the name of the selected actor.
                   #set ACTOR_NAME to 0 if you don't need it.
SELECT_TEXT = "Choose who \nshould be \nselected." #the \n moves the text after it one line down.
end

class Scene_ActorSelect < Scene_MenuBase
def start
    super
    @okay = false
    create_actor_window
    show_sub_window(@actor_window)
end

def update
    super
    return if @okay != true
    do_stuff
    return if @actor_window.opacity != 0
    @actor_window.hide.deactivate
    @text_window.hide
    return_scene
end

def do_stuff
    move_window(@actor_window, 550, 13)
    ghost_actor_window(0)
    @text_window.opacity = @actor_window.opacity
    @actor_window.contents_opacity = @actor_window.opacity
    move_window(@text_window, -450, 13)
end
def move_window(window, x, speed)
    current_x = window.x
    window.x = .min if current_x < x
    window.x = .max if current_x > x
end
def ghost_actor_window(opacity)
    current_o = @actor_window.opacity
    @actor_window.opacity = .min if current_o < opacity
    @actor_window.opacity = .max if current_o > opacity
end
#--------------------------------------------------------------------------
# show_sub_window
#--------------------------------------------------------------------------
def show_sub_window(window)
    width_remain = Graphics.width - window.width
    window.x = width_remain
    @viewport.rect.x = @viewport.ox = 0
    @viewport.rect.width = width_remain
    window.show.activate
end

#--------------------------------------------------------------------------
# on_actor_ok
#--------------------------------------------------------------------------
def on_actor_ok
      Sound.play_ok
      $game_party.menu_actor = $game_party.members[@actor_window.index]
      $game_variables = $game_party.menu_actor.id
      window = @actor_window
      @okay = true
      $game_variables = $game_actors[$game_party.menu_actor.id].name unless YAHOO::ACTOR_NAME == 0
end

#--------------------------------------------------------------------------
# on_actor_cancel
#--------------------------------------------------------------------------
def on_actor_cancel
    Sound.play_buzzer
    @actor_window.activate
end
def create_actor_window
    @actor_window = Window_MenuActor.new
    @actor_window.set_handler(:ok,   method(:on_actor_ok))
    @actor_window.set_handler(:cancel, method(:on_actor_cancel))
    @actor_window.select_last
    @text_window = Window_Base.new(0,0,200,120)
    @text_window.width = Graphics.width - @actor_window.width
    @text = YAHOO::SELECT_TEXT
    @text_window.draw_text_ex(0,0,@text)
end
end

Terms of use
credit me if you want to.


本贴来自国际rpgmaker官方论坛作者:NinjaChicle处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/party-member-select-script.149322/
页: [1]
查看完整版本: Party Member Select Script