- NeresisMembre
- Nombre de messages : 403
Age : 34
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014
[résolu]VXAce- Avoir un leader fix dans l'équipe
Mar 11 Fév 2014 - 21:11
Bonjour !
J'ai envie de garder le menu de formation pour mon jeu mais j'aimerais que le héros principale ne puisse pas changer de place. Qu'il soit griser dans le menu de formation ou qu'il n'y apparaisse tout simplement pas.
NB : Si ça doit se modifier par Script, j'utilise le "Galv's Menu Themes Engine" je ne sais pas si ça change quoi que se soit mais je préfère le préciser.
Lien du Script : http://galvs-scripts.com/2013/04/14/menu-themes-engine/
Merci d'avance
Résolus par Vincent26 :
Il suffit de mettre un nouveau Script en dessous de "▼ Materials"
Voilà ! Merci à lui !
J'ai envie de garder le menu de formation pour mon jeu mais j'aimerais que le héros principale ne puisse pas changer de place. Qu'il soit griser dans le menu de formation ou qu'il n'y apparaisse tout simplement pas.
NB : Si ça doit se modifier par Script, j'utilise le "Galv's Menu Themes Engine" je ne sais pas si ça change quoi que se soit mais je préfère le préciser.
Lien du Script : http://galvs-scripts.com/2013/04/14/menu-themes-engine/
Merci d'avance
Résolus par Vincent26 :
Il suffit de mettre un nouveau Script en dessous de "▼ Materials"
- Code:
class Scene_Menu < Scene_MenuBase
alias on_formation_ok_2 on_formation_ok
def on_formation_ok
if (@status_window.pending_index > 0)&&(@status_window.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)
else
@status_window.pending_index = @status_window.index if @status_window.index > 0
end
@status_window.activate
end
end
Voilà ! Merci à lui !
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Mar 11 Fév 2014 - 21:20
Un Héros fixe, c'est LE MAL !
Avec ce scripte :
C'est possible de "locker" le premier personnage
Avec ce scripte :
- Spoiler:
- Code:
#==============================================================================
#
# ▼ Yanfly Engine Ace - Party System v1.08
# -- Last Updated: 2012.01.23
# -- Level: Normal
# -- Requires: n/a
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["YEA-PartySystem"] = true
#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.01.23 - Bug fixed: Party members are now rearranged when newly added.
# 2012.01.14 - New Feature: Maximum Battle Members Variable added.
# 2012.01.07 - Bug fixed: Error with removing members.
# 2012.01.05 - Bug fixed: Escape skill/item effects no longer counts as death.
# 2011.12.26 - Compatibility Update: New Game+
# 2011.12.17 - Updated Spriteset_Battle to have updated sprite counts.
# 2011.12.13 - Updated to provide better visual display when more than 5 pieces
# of equipment are equipped on an actor at a time.
# 2011.12.05 - Added functionality to display faces in the Party Select Window.
# - Fixed bug that doesn't refresh the caterpillar when new members
# join the party.
# 2011.12.04 - Started Script and Finished.
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# RPG Maker VX Ace comes with a very nice party system. However, changing the
# maximum number of members isn't possible without the aid of a script. This
# script enables you the ability to change the maximum number of party members,
# change EXP rates, and/or open up a separate party menu (if desired). In
# addition to that, you can lock the position of actors within a party and
# require other actors to be in the active party before continuing.
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
#
# -----------------------------------------------------------------------------
# Script Calls - These commands are used with script calls.
# -----------------------------------------------------------------------------
# *IMPORTANT* These script calls require the new party menu to be enabled to
# use them. Otherwise, nothing will happen.
#
# lock_actor(x)
# unlock_actor(x)
# This will lock actor x in its current position in the party if the actor is
# in the current party. The actor is unable to switch position and must remain
# in that position until the lock is removed. Use the unlock script call to
# remove the locked status. This script requires the actor to have joined and
# in the current party before the script call will work.
#
# require_actor(x)
# unrequire_actor(x)
# This will cause the party to require actor x in order to continue. If the
# actor isn't in the current party but is in the reserve party, the party menu
# will open up and prompt the player to add the required actor into the party
# before being able to continue. This script call will not function unless the
# specific actor has joined the party, whether it is in the current or reserve.
#
# call_party_menu
# This will open up the party menu. This script call requires for the party
# menu to be enabled to use.
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
#==============================================================================
module YEA
module PARTY
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - General Party Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# In this section, you can adjust the general party settings for your game
# such as the maximum amount of members and whatnot, the EXP rate for
# party members in the reserve, etc.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
MAX_BATTLE_MEMBERS = 3 # Maximum party members. Default: 4
SPLIT_EXP = false # Splits EXP with more members in the party.
RESERVE_EXP_RATE = 0.50 # Reserve EXP Rate. Default: 1.00
# If you wish to be able to change the maximum number of battle members
# during the middle of your game, set this constant to a variable ID. If
# that variable ID is a number greater than 0, that variable will determine
# the current maximum number of battle members. Be cautious about using
# this during battle.
MAX_MEMBERS_VARIABLE = 0
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Party Menu Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# This section contains various menu settings for those who wish to use a
# menu separate for the party system. Here, adjust the menu command order,
# icons used, and other settings.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
ENABLE_MENU = true # Enables party menu. Default: false
COMMANDS =[ # The order at which the menu items are shown.
# [:command, "Display"],
[ :change, "Modifier",],
[ :remove, "Enlever",],
[ :revert, "Retour",],
[ :finish, "Terminer",],
] # Do not remove this.
COMMAND_ALIGN = 1 # 0:Left Align, 1:Center Align, 2:Right Align
# These settings here are used for the upper right window: the Party Select
# window where the player selects a member to swap out or remove.
PARTY_FONT_SIZE = 20 # Font size used for party member names.
LOCK_FIRST_ACTOR = false # Lock the first actor by default?
LOCKED_ICON = 125 # Icon used for locked members.
REQUIRED_ICON = 126 # Icon used for required members.
EMPTY_TEXT = "-Vide-" # Text used when a member isn't present.
DISPLAY_FACE = false # Display faces instead of sprites?
# These settings here are used for the lower left window: the Party List
# window where the player selects a member to replace.
REMOVE_ICON = 185 # Icon used for removing members.
REMOVE_TEXT = "-Enlever-" # Text used for remove member command.
ACTOR_Y_BUFFER = 12 # Amount the actor graphic be adjusted by.
# These settings here are used for the lower right window: the Party Status
# window where info about a selected actor is shown.
NO_DATA = "-Pas de donnée-" # Text used for when no actor is shown.
IN_PARTY_COLOUR = 6 # Text colour used for in party members.
STAT_FONT_SIZE = 20 # Font size used for stats.
EQUIP_TEXT = "Equipement" # Text used to display equipment.
end # PARTY
end # YEA
#==============================================================================
# ▼ Editting anything past this point may potentially result in causing
# computer damage, incontinence, explosion of user's head, coma, death, and/or
# halitosis so edit at your own risk.
#==============================================================================
#==============================================================================
# ■ Icon
#==============================================================================
module Icon
#--------------------------------------------------------------------------
# self.locked_party
#--------------------------------------------------------------------------
def self.locked_party; return YEA::PARTY::LOCKED_ICON; end
#--------------------------------------------------------------------------
# self.required_party
#--------------------------------------------------------------------------
def self.required_party; return YEA::PARTY::REQUIRED_ICON; end
#--------------------------------------------------------------------------
# self.remove_party
#--------------------------------------------------------------------------
def self.remove_party; return YEA::PARTY::REMOVE_ICON; end
end # Icon
#==============================================================================
# ■ Variable
#==============================================================================
module Variable
#--------------------------------------------------------------------------
# self.max_battle_members
#--------------------------------------------------------------------------
def self.max_battle_members
default = YEA::PARTY::MAX_BATTLE_MEMBERS
return default if YEA::PARTY::MAX_MEMBERS_VARIABLE <= 0
return default if $game_variables[YEA::PARTY::MAX_MEMBERS_VARIABLE] <= 0
return $game_variables[YEA::PARTY::MAX_MEMBERS_VARIABLE]
end
end # Variable
#==============================================================================
# ■ Numeric
#==============================================================================
class Numeric
#--------------------------------------------------------------------------
# new method: group_digits
#--------------------------------------------------------------------------
unless $imported["YEA-CoreEngine"]
def group; return self.to_s; end
end # $imported["YEA-CoreEngine"]
end # Numeric
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :locked
attr_accessor :required
#--------------------------------------------------------------------------
# alias method: setup
#--------------------------------------------------------------------------
alias game_actor_setup_ps setup
def setup(actor_id)
game_actor_setup_ps(actor_id)
@locked = false
@required = false
end
#--------------------------------------------------------------------------
# overwrite method: final_exp_rate
#--------------------------------------------------------------------------
def final_exp_rate
n = exr * (battle_member? ? 1 : reserve_members_exp_rate)
if $game_party.in_battle
n /= [$game_party.battle_members.size, 1].max if YEA::PARTY::SPLIT_EXP
end
return n
end
#--------------------------------------------------------------------------
# overwrite method: reserve_members_exp_rate
#--------------------------------------------------------------------------
def reserve_members_exp_rate
$data_system.opt_extra_exp ? YEA::PARTY::RESERVE_EXP_RATE : 0
end
end # Game_Actor
#==============================================================================
# ■ Game_Party
#==============================================================================
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :battle_members_array
#--------------------------------------------------------------------------
# alias method: initialize
#--------------------------------------------------------------------------
alias game_party_initialize_ps initialize
def initialize
game_party_initialize_ps
@battle_members_array = nil
end
#--------------------------------------------------------------------------
# overwrite method: max_battle_members
#--------------------------------------------------------------------------
def max_battle_members; return Variable.max_battle_members; end
#--------------------------------------------------------------------------
# alias method: setup_starting_members
#--------------------------------------------------------------------------
alias setup_starting_members_ps setup_starting_members
def setup_starting_members
setup_starting_members_ps
initialize_battle_members
return unless YEA::PARTY::LOCK_FIRST_ACTOR
return if members[0].nil?
members[0].locked = true
end
#--------------------------------------------------------------------------
# alias method: setup_battle_test_members
#--------------------------------------------------------------------------
alias setup_battle_test_members_ps setup_battle_test_members
def setup_battle_test_members
setup_battle_test_members_ps
return unless YEA::PARTY::LOCK_FIRST_ACTOR
return if members[0].nil?
members[0].locked = true
end
#--------------------------------------------------------------------------
# overwrite method: battle_members
#--------------------------------------------------------------------------
def battle_members
initialize_battle_members if initialize_battle_members?
array = []
for actor_id in @battle_members_array
break if array.size > max_battle_members
next if actor_id.nil?
next if $game_actors[actor_id].nil?
next unless $game_actors[actor_id].exist?
array.push($game_actors[actor_id])
end
return array
end
#--------------------------------------------------------------------------
# new method: initialize_battle_members?
#--------------------------------------------------------------------------
def initialize_battle_members?
return true if @battle_members_array.nil?
return @battle_members_array.size != max_battle_members
end
#--------------------------------------------------------------------------
# new method: initialize_battle_members
#--------------------------------------------------------------------------
def initialize_battle_members
@battle_members_array = []
for i in 0...max_battle_members
@battle_members_array.push(@actors[i]) unless @actors[i].nil?
@battle_members_array.push(0) if @actors[i].nil?
end
$game_player.refresh
end
#--------------------------------------------------------------------------
# alias method: add_actor
#--------------------------------------------------------------------------
alias game_party_add_actor_ps add_actor
def add_actor(actor_id)
game_party_add_actor_ps(actor_id)
return if @battle_members_array.include?(actor_id)
return unless @battle_members_array.include?(0)
index = @battle_members_array.index(0)
@battle_members_array[index] = actor_id
$game_player.refresh
$game_map.need_refresh = true
rearrange_actors
end
#--------------------------------------------------------------------------
# alias method: remove_actor
#--------------------------------------------------------------------------
alias game_party_remove_actor_ps remove_actor
def remove_actor(actor_id)
game_party_remove_actor_ps(actor_id)
return unless @battle_members_array.include?(actor_id)
index = @battle_members_array.index(actor_id)
@battle_members_array[index] = 0
$game_player.refresh
$game_map.need_refresh = true
rearrange_actors
end
#--------------------------------------------------------------------------
# new method: rearrange_actors
#--------------------------------------------------------------------------
def rearrange_actors
initialize_battle_members if @battle_members_array.nil?
array = []
for actor_id in @battle_members_array
next if [0, nil].include?(actor_id)
next if $game_actors[actor_id].nil?
array.push(actor_id)
end
for actor_id in @actors
next if array.include?(actor_id)
next if $game_actors[actor_id].nil?
array.push(actor_id)
end
@actors = array
end
end # Game_Party
#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# new method: lock_actor
#--------------------------------------------------------------------------
def lock_actor(actor_id)
return unless YEA::PARTY::ENABLE_MENU
actor = $game_actors[actor_id]
return unless $game_party.battle_members.include?(actor.id)
actor.locked = true
end
#--------------------------------------------------------------------------
# new method: unlock_actor
#--------------------------------------------------------------------------
def unlock_actor(actor_id)
return unless YEA::PARTY::ENABLE_MENU
actor = $game_actors[actor_id]
return unless $game_party.battle_members.include?(actor.id)
actor.locked = false
end
#--------------------------------------------------------------------------
# new method: require_actor
#--------------------------------------------------------------------------
def require_actor(actor_id)
return unless YEA::PARTY::ENABLE_MENU
return if $game_system.formation_disabled
actor = $game_actors[actor_id]
return unless $game_party.all_members.include?(actor)
actor.required = true
call_party_menu unless $game_party.battle_members.include?(actor)
end
#--------------------------------------------------------------------------
# new method: unrequire_actor
#--------------------------------------------------------------------------
def unrequire_actor(actor_id)
return unless YEA::PARTY::ENABLE_MENU
return if $game_system.formation_disabled
actor = $game_actors[actor_id]
return unless $game_party.all_members.include?(actor)
actor.required = false
call_party_menu unless $game_party.battle_members.include?(actor)
end
#--------------------------------------------------------------------------
# new method: call_party_menu
#--------------------------------------------------------------------------
def call_party_menu
return unless YEA::PARTY::ENABLE_MENU
return if $game_system.formation_disabled
SceneManager.call(Scene_Party)
end
end # Game_Interpreter
#==============================================================================
# ■ Spriteset_Battle
#==============================================================================
class Spriteset_Battle
#--------------------------------------------------------------------------
# overwrite method: create_actors
#--------------------------------------------------------------------------
def create_actors
total = $game_party.max_battle_members
@actor_sprites = Array.new(total) { Sprite_Battler.new(@viewport1) }
end
end # Spriteset_Battle
#==============================================================================
# ■ Window_PartyMenuCommand
#==============================================================================
class Window_PartyMenuCommand < Window_Command
#--------------------------------------------------------------------------
# window_width
#--------------------------------------------------------------------------
def window_width; return 160; end
#--------------------------------------------------------------------------
# visible_line_number
#--------------------------------------------------------------------------
def visible_line_number; 4; end
#--------------------------------------------------------------------------
# alignment
#--------------------------------------------------------------------------
def alignment
return Menu.command_window_align if $imported["YEA-AceMenuEngine"]
return YEA::PARTY::COMMAND_ALIGN
end
#--------------------------------------------------------------------------
# scene
#--------------------------------------------------------------------------
def scene; return SceneManager.scene; end
#--------------------------------------------------------------------------
# make_command_list
#--------------------------------------------------------------------------
def make_command_list
for command in YEA::PARTY::COMMANDS
case command[0]
when :change, :remove, :revert
add_command(command[1], command[0])
when :finish
add_command(command[1], command[0], enable_cancel?)
else; next
end
end
end
#--------------------------------------------------------------------------
# process_cancel
#--------------------------------------------------------------------------
def process_cancel
unless enable_cancel?
Sound.play_buzzer
return
end
super
end
#--------------------------------------------------------------------------
# in_party?
#--------------------------------------------------------------------------
def in_party?(actor)
return $game_party.battle_members.include?(actor)
end
#--------------------------------------------------------------------------
# enable_cancel?
#--------------------------------------------------------------------------
def enable_cancel?
return false if $game_party.battle_members.size <= 0
for actor in $game_party.all_members
next if in_party?(actor)
return false if actor.required
return false if actor.locked
end
return true
end
end # Window_PartyMenuCommand
#==============================================================================
# ■ Window_PartySelect
#==============================================================================
class Window_PartySelect < Window_Selectable
#--------------------------------------------------------------------------
# initialize
#-------------------------------------------------------------------------
def initialize(command_window)
@command_window = command_window
super(160, 0, window_width, fitting_height(visible_line_number))
select(0)
deactivate
refresh
end
#--------------------------------------------------------------------------
# col_max
#--------------------------------------------------------------------------
def col_max; return $game_party.max_battle_members; end
#--------------------------------------------------------------------------
# item_max
#--------------------------------------------------------------------------
def item_max; return $game_party.max_battle_members; end
#--------------------------------------------------------------------------
# window_width
#--------------------------------------------------------------------------
def window_width; return Graphics.width - 160; end
#--------------------------------------------------------------------------
# visible_line_number
#--------------------------------------------------------------------------
def visible_line_number; 4; end
#--------------------------------------------------------------------------
# item_rect
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new
rect.width = contents.width / item_max
rect.height = contents.height
rect.x = index * rect.width
rect.y = 0
return rect
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
make_item_list
create_contents
draw_all_items
end
#--------------------------------------------------------------------------
# make_item_list
#--------------------------------------------------------------------------
def make_item_list
@data = $game_party.battle_members_array.clone
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
actor = $game_actors[@data[index]]
rect = item_rect(index)
if actor.nil?
draw_empty(rect.clone)
return
end
dx = rect.width / 2
dy = rect.height - 16
draw_actor_face(actor, rect.x, rect.y) if display_face?
draw_actor_graphic(actor, rect.x + dx, rect.y + dy) unless display_face?
draw_actor_name(actor, rect)
draw_locked_icon(actor, rect)
draw_required_icon(actor, rect)
end
#--------------------------------------------------------------------------
# display_face?
#--------------------------------------------------------------------------
def display_face?
return YEA::PARTY::DISPLAY_FACE
end
#--------------------------------------------------------------------------
# draw_empty
#--------------------------------------------------------------------------
def draw_empty(rect)
colour = Color.new(0, 0, 0, translucent_alpha/2)
rect.x += 2
rect.y += 2
rect.width -= 4
rect.height -= 4
contents.fill_rect(rect, colour)
reset_font_settings
change_color(system_color)
text = YEA::PARTY::EMPTY_TEXT
draw_text(rect, text, 1)
reset_font_settings
end
#--------------------------------------------------------------------------
# draw_actor_name
#--------------------------------------------------------------------------
def draw_actor_name(actor, rect)
contents.font.size = YEA::PARTY::PARTY_FONT_SIZE
change_color(normal_color, actor.exist?)
draw_text(rect.x+4, rect.y, rect.width-8, line_height, actor.name, 1)
end
#--------------------------------------------------------------------------
# draw_face
#--------------------------------------------------------------------------
def draw_face(face_name, face_index, dx, dy, enabled = true)
bitmap = Cache.face(face_name)
dw = [96, item_rect(0).width-4].min
rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, dw, 92)
contents.blt(dx+2, dy+2, bitmap, rect, enabled ? 255 : translucent_alpha)
bitmap.dispose
end
#--------------------------------------------------------------------------
# draw_locked_icon
#--------------------------------------------------------------------------
def draw_locked_icon(actor, rect)
return unless actor_locked?(actor)
draw_icon(Icon.locked_party, rect.x+rect.width-26, rect.height - 26)
end
#--------------------------------------------------------------------------
# draw_required_icon
#--------------------------------------------------------------------------
def draw_required_icon(actor, rect)
return if actor_locked?(actor)
return unless actor_required?(actor)
draw_icon(Icon.required_party, rect.x+rect.width-26, rect.height - 26)
end
#--------------------------------------------------------------------------
# actor_locked?
#--------------------------------------------------------------------------
def actor_locked?(actor); return actor.locked; end
#--------------------------------------------------------------------------
# actor_required?
#--------------------------------------------------------------------------
def actor_required?(actor)
return false if actor.locked
return actor.required
end
#--------------------------------------------------------------------------
# current_item_enabled?
#--------------------------------------------------------------------------
def current_item_enabled?; enable?(@data[index]); end
#--------------------------------------------------------------------------
# enable?
#--------------------------------------------------------------------------
def enable?(item)
case @command_window.current_symbol
when :change
return true if item.nil?
return true if item == 0
when :remove
return false if item.nil?
return false if item == 0
end
actor = $game_actors[item]
return false if actor.locked
return false if actor.required
return true
end
#--------------------------------------------------------------------------
# process_handling
#--------------------------------------------------------------------------
def process_handling
return unless open? && active
return process_ok if ok_enabled? && Input.trigger?(:C)
return process_cancel if cancel_enabled? && Input.trigger?(:B)
return process_pagedown if handle?(:pagedown) && Input.repeat?(:R)
return process_pageup if handle?(:pageup) && Input.repeat?(:L)
end
#--------------------------------------------------------------------------
# cur_actor
#--------------------------------------------------------------------------
def cur_actor
actor_id = @data[index]
return $game_actors[actor_id]
end
#--------------------------------------------------------------------------
# prev_actor
#--------------------------------------------------------------------------
def prev_actor
id = index == 0 ? @data.size - 1 : index - 1
actor_id = @data[id]
return $game_actors[actor_id]
end
#--------------------------------------------------------------------------
# next_actor
#--------------------------------------------------------------------------
def next_actor
id = index == @data.size - 1 ? 0 : index + 1
actor_id = @data[id]
return $game_actors[actor_id]
end
#--------------------------------------------------------------------------
# process_pageup
#--------------------------------------------------------------------------
def process_pageup
allow = true
allow = false if !prev_actor.nil? && prev_actor.locked
allow = false if !cur_actor.nil? && cur_actor.locked
Sound.play_buzzer unless allow
if allow
super
activate
select(index == 0 ? @data.size - 1 : index - 1)
end
end
#--------------------------------------------------------------------------
# process_pagedown
#--------------------------------------------------------------------------
def process_pagedown
allow = true
allow = false if !next_actor.nil? && next_actor.locked
allow = false if !cur_actor.nil? && cur_actor.locked
Sound.play_buzzer unless allow
if allow
super
activate
select(index == @data.size - 1 ? 0 : index + 1)
end
end
#--------------------------------------------------------------------------
# item
#--------------------------------------------------------------------------
def item; return @data[index]; end
end # Window_PartySelect
#==============================================================================
# ■ Window_PartyList
#==============================================================================
class Window_PartyList < Window_Selectable
#--------------------------------------------------------------------------
# initialize
#-------------------------------------------------------------------------
def initialize(party_window)
super(0, fitting_height(4), window_width, window_height)
@party_window = party_window
select(1)
deactivate
refresh
end
#--------------------------------------------------------------------------
# window_width
#--------------------------------------------------------------------------
def window_width; return 200; end
#--------------------------------------------------------------------------
# window_height
#--------------------------------------------------------------------------
def window_height; return Graphics.height - fitting_height(4); end
#--------------------------------------------------------------------------
# item_max
#--------------------------------------------------------------------------
def item_max; return @data ? @data.size : 1; end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
make_item_list
create_contents
draw_all_items
end
#--------------------------------------------------------------------------
# make_item_list
#--------------------------------------------------------------------------
def make_item_list
@data = [0]
for member in $game_party.all_members
next if member.nil?
@data.push(member.id)
end
@data.push(0)
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
clear_item(index)
rect = item_rect(index)
if @data[index] == 0
draw_remove(rect)
return
end
actor = $game_actors[@data[index]]
draw_actor(actor, rect)
draw_actor_locked(actor, rect)
draw_actor_required(actor, rect)
end
#--------------------------------------------------------------------------
# draw_remove
#--------------------------------------------------------------------------
def draw_remove(rect)
reset_font_settings
draw_icon(Icon.remove_party, rect.x+4, rect.y)
text = YEA::PARTY::REMOVE_TEXT
draw_text(rect.x+32, rect.y, rect.width-32, line_height, text)
end
#--------------------------------------------------------------------------
# draw_actor
#--------------------------------------------------------------------------
def draw_actor(actor, rect)
buffer = YEA::PARTY::ACTOR_Y_BUFFER
draw_actor_graphic(actor, rect.x + 16, rect.y + rect.height + buffer)
text = actor.name
change_color(list_colour(actor), enabled?(actor))
draw_text(rect.x+32, rect.y, rect.width-32, line_height, text)
end
#--------------------------------------------------------------------------
# list_colour
#--------------------------------------------------------------------------
def list_colour(actor)
return text_color(YEA::PARTY::IN_PARTY_COLOUR) if in_party?(actor)
return normal_color
end
#--------------------------------------------------------------------------
# draw_actor_locked
#--------------------------------------------------------------------------
def draw_actor_locked(actor, rect)
return unless actor.locked
draw_icon(Icon.locked_party, rect.width-24, rect.y)
end
#--------------------------------------------------------------------------
# draw_actor_required
#--------------------------------------------------------------------------
def draw_actor_required(actor, rect)
return if actor.locked
return unless actor.required
draw_icon(Icon.required_party, rect.width-24, rect.y)
end
#--------------------------------------------------------------------------
# enabled?
#--------------------------------------------------------------------------
def enabled?(actor)
return false if actor.locked
return false if actor.required && in_party?(actor)
return actor.exist?
end
#--------------------------------------------------------------------------
# in_party?
#--------------------------------------------------------------------------
def in_party?(actor); return $game_party.battle_members.include?(actor); end
#--------------------------------------------------------------------------
# current_item_enabled?
#--------------------------------------------------------------------------
def current_item_enabled?
actor = $game_actors[item]
replace = $game_actors[@party_window.item]
unless actor.nil?
return false if actor.locked && in_party?(actor)
return false if actor.required && in_party?(actor)
end
return true if replace.nil?
return false if replace.locked
return false if replace.required
return true if actor.nil?
return actor.exist?
end
#--------------------------------------------------------------------------
# item
#--------------------------------------------------------------------------
def item; return @data[index]; end
end # Window_PartyList
#==============================================================================
# ** Window_PartyStatus
#==============================================================================
class Window_PartyStatus < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(party_window, list_window)
super(200, fitting_height(4), window_width, window_height)
@party_window = party_window
@list_window = list_window
@actor = active_actor
refresh
end
#--------------------------------------------------------------------------
# window_width
#--------------------------------------------------------------------------
def window_width; Graphics.width - 200; end
#--------------------------------------------------------------------------
# window_height
#--------------------------------------------------------------------------
def window_height; Graphics.height - fitting_height(4); end
#--------------------------------------------------------------------------
# update
#--------------------------------------------------------------------------
def update
super
refresh if @actor != active_actor
end
#--------------------------------------------------------------------------
# active_actor
#--------------------------------------------------------------------------
def active_actor
if @list_window.active
actor = @list_window.item
else
actor = @party_window.item
end
return nil if [0, nil].include?(actor)
return actor
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
@actor = active_actor
reset_font_settings
if @actor.nil?
draw_nil_actor
return
end
actor = $game_actors[@actor]
draw_actor_face(actor, 0, 0)
draw_actor_name(actor, 108, 0)
draw_actor_class(actor, 228, 0, contents.width-232)
draw_actor_level(actor, 108, line_height)
draw_actor_icons(actor, 228, line_height, contents.width-232)
draw_actor_hp(actor, 108, line_height*2, contents.width-112)
draw_actor_mp(actor, 108, line_height*3, contents.width-112)
draw_actor_parameters(actor, 0, line_height*4 + line_height/2)
draw_equipments(actor, contents.width/2, line_height*4 + line_height/2)
end
#--------------------------------------------------------------------------
# draw_nil_actor
#--------------------------------------------------------------------------
def draw_nil_actor
colour = Color.new(0, 0, 0, translucent_alpha/2)
rect = Rect.new(0, 0, contents.width, contents.height)
contents.fill_rect(rect, colour)
change_color(system_color)
text = YEA::PARTY::NO_DATA
draw_text(rect, text, 1)
end
#--------------------------------------------------------------------------
# draw_actor_parameters
#--------------------------------------------------------------------------
def draw_actor_parameters(actor, dx, dy)
dw = contents.width/2 - 4
rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2)
contents.font.size = YEA::PARTY::STAT_FONT_SIZE
colour = Color.new(0, 0, 0, translucent_alpha/2)
array = [:atk, :def, :mat, :mdf, :agi, :luk]
cx = 4
for stat in array
case stat
when :atk
param = Vocab::param(2)
value = actor.atk.group
when :def
param = Vocab::param(3)
value = actor.def.group
when :mat
param = Vocab::param(4)
value = actor.mat.group
when :mdf
param = Vocab::param(5)
value = actor.mdf.group
when :agi
param = Vocab::param(6)
value = actor.agi.group
when :luk
param = Vocab::param(7)
value = actor.luk.group
else; next
end
contents.fill_rect(rect, colour)
change_color(system_color)
draw_text(rect.x + cx, rect.y, rect.width-cx*2, line_height, param, 0)
change_color(normal_color)
draw_text(rect.x + cx, rect.y, rect.width-cx*2, line_height, value, 2)
rect.y += line_height
end
reset_font_settings
end
#--------------------------------------------------------------------------
# draw_equipments
#--------------------------------------------------------------------------
def draw_equipments(actor, dx, dy)
text = YEA::PARTY::EQUIP_TEXT
change_color(system_color)
draw_text(dx, dy, contents.width - dx, line_height, text, 1)
dy += line_height
if actor.equips.size <= 5
actor.equips.each_with_index do |item, i|
draw_item_name(item, dx, dy + line_height * i)
end
else
orig_x = dx
actor.equips.each_with_index do |item, i|
next if item.nil?
draw_icon(item.icon_index, dx, dy)
dy += line_height if dx + 48 > contents.width
dx = dx + 48 > contents.width ? orig_x : dx + 24
end
end
end
end # Window_PartyStatus
#==============================================================================
# ■ Scene_Menu
#==============================================================================
class Scene_Menu < Scene_MenuBase
#--------------------------------------------------------------------------
# overwrite method: command_formation
#--------------------------------------------------------------------------
if YEA::PARTY::ENABLE_MENU
def command_formation
SceneManager.call(Scene_Party)
end
end # YEA::PARTY::ENABLE_MENU
end # Scene_Menu
#==============================================================================
# ■ Scene_Party
#==============================================================================
class Scene_Party < Scene_MenuBase
#--------------------------------------------------------------------------
# start
#--------------------------------------------------------------------------
def start
super
@former_party = $game_party.battle_members_array.clone
create_command_window
create_party_window
create_list_window
create_status_window
end
#--------------------------------------------------------------------------
# create_command_window
#--------------------------------------------------------------------------
def create_command_window
@command_window = Window_PartyMenuCommand.new(0, 0)
@command_window.set_handler(:change, method(:adjust_members))
@command_window.set_handler(:remove, method(:adjust_members))
@command_window.set_handler(:revert, method(:revert_party))
@command_window.set_handler(:finish, method(:return_scene))
@command_window.set_handler(:cancel, method(:return_scene))
end
#--------------------------------------------------------------------------
# create_party_window
#--------------------------------------------------------------------------
def create_party_window
@party_window = Window_PartySelect.new(@command_window)
@party_window.set_handler(:ok, method(:on_party_ok))
@party_window.set_handler(:cancel, method(:on_party_cancel))
@party_window.set_handler(:pageup, method(:on_party_pageup))
@party_window.set_handler(:pagedown, method(:on_party_pagedown))
end
#--------------------------------------------------------------------------
# create_list_window
#--------------------------------------------------------------------------
def create_list_window
@list_window = Window_PartyList.new(@party_window)
@list_window.set_handler(:ok, method(:on_list_ok))
@list_window.set_handler(:cancel, method(:on_list_cancel))
end
#--------------------------------------------------------------------------
# create_status_window
#--------------------------------------------------------------------------
def create_status_window
@status_window = Window_PartyStatus.new(@party_window, @list_window)
end
#--------------------------------------------------------------------------
# adjust_members
#--------------------------------------------------------------------------
def adjust_members
@party_window.activate
end
#--------------------------------------------------------------------------
# window_refresh
#--------------------------------------------------------------------------
def window_refresh
$game_party.rearrange_actors
@command_window.refresh
@party_window.refresh
@list_window.refresh
$game_player.refresh
$game_map.need_refresh = true
end
#--------------------------------------------------------------------------
# revert_party
#--------------------------------------------------------------------------
def revert_party
@command_window.activate
$game_party.battle_members_array = @former_party.clone
window_refresh
end
#--------------------------------------------------------------------------
# on_party_ok
#--------------------------------------------------------------------------
def on_party_ok
case @command_window.current_symbol
when :change
@list_window.activate
when :remove
index = @party_window.index
actor = $game_actors[$game_party.battle_members_array[index]]
Sound.play_equip
$game_party.battle_members_array[index] = 0
window_refresh
@party_window.activate
end
end
#--------------------------------------------------------------------------
# on_party_cancel
#--------------------------------------------------------------------------
def on_party_cancel
@command_window.activate
end
#--------------------------------------------------------------------------
# on_party_pageup
#--------------------------------------------------------------------------
def on_party_pageup
Sound.play_equip
actor_id1 = @party_window.item
actor_id2 = @party_window.prev_actor.nil? ? 0 : @party_window.prev_actor.id
max = @party_window.item_max-1
index1 = @party_window.index
index2 = @party_window.index == 0 ? max : index1-1
$game_party.battle_members_array[index1] = actor_id2
$game_party.battle_members_array[index2] = actor_id1
window_refresh
end
#--------------------------------------------------------------------------
# on_party_pagedown
#--------------------------------------------------------------------------
def on_party_pagedown
Sound.play_equip
actor_id1 = @party_window.item
actor_id2 = @party_window.next_actor.nil? ? 0 : @party_window.next_actor.id
max = @party_window.item_max-1
index1 = @party_window.index
index2 = @party_window.index == max ? 0 : index1+1
$game_party.battle_members_array[index1] = actor_id2
$game_party.battle_members_array[index2] = actor_id1
window_refresh
end
#--------------------------------------------------------------------------
# on_list_cancel
#--------------------------------------------------------------------------
def on_list_cancel
@party_window.activate
end
#--------------------------------------------------------------------------
# on_list_ok
#--------------------------------------------------------------------------
def on_list_ok
Sound.play_equip
replace = $game_actors[@party_window.item]
actor = $game_actors[@list_window.item]
index1 = @party_window.index
actor_id1 = actor.nil? ? 0 : actor.id
if actor.nil?
$game_party.battle_members_array[index1] = 0
window_refresh
@party_window.activate
return
end
actor_id2 = replace.nil? ? 0 : replace.id
if $game_party.battle_members_array.include?(actor_id1)
index2 = $game_party.battle_members_array.index(actor_id1)
$game_party.battle_members_array[index2] = actor_id2
end
$game_party.battle_members_array[index1] = actor_id1
window_refresh
@party_window.activate
end
end # Scene_Party
#==============================================================================
#
# ▼ End of File
#
#==============================================================================
C'est possible de "locker" le premier personnage
- NeresisMembre
- Nombre de messages : 403
Age : 34
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Mar 11 Fév 2014 - 21:36
Merci, mais après vérification ça n'est pas compatible avec le "Galv's Menu Themes Engine".
Le menu ne reconnais pas les personnage que je met en haut de la liste comme faisant partie de l'équipe maintenant et le premier héros peut toujours être déplacer :/
Edit : Ou alors j'ai fait quelque chose de travers, je suis une bille en anglais et en Script, c'est un fait prouver scientifiquement !
Le menu ne reconnais pas les personnage que je met en haut de la liste comme faisant partie de l'équipe maintenant et le premier héros peut toujours être déplacer :/
Edit : Ou alors j'ai fait quelque chose de travers, je suis une bille en anglais et en Script, c'est un fait prouver scientifiquement !
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Mar 11 Fév 2014 - 21:45
Pour ce qui est de la compatibilité je ne sais pas mais sur le script que je t'ai passé, à la ligne 120 tu mets "true" à la place de "false".
Mais je ne connais pas du tout celui que tu utilises, et les scripts et moi on est pas copain DU TOUT
Mais je ne connais pas du tout celui que tu utilises, et les scripts et moi on est pas copain DU TOUT
- NeresisMembre
- Nombre de messages : 403
Age : 34
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Jeu 13 Fév 2014 - 1:52
Oui j'ai fait la manip mais ça n'a rien changer :/
Et moi aussi je ne suis pas copain avec les scripts ! Du coup j'ai fait un système d’élevage de monstre juste avec des évents ! BOUM ! Dans ta face de Script !
Je le partagerais quand il sera au point d’ailleurs !
Mais revenons a nos moutons, quelqu'un a une idée ?
Je sais que les "bouton" du Galv's Menu Themes Engine sont modulable, si tu connais la commande pour appeler le Yanfly Party System, il y a peut-être moyen de moyenner !
Edit : petit up ! Sur un malentendu quelqu'un pourra peut être avoir une solution en stock ^^
Et moi aussi je ne suis pas copain avec les scripts ! Du coup j'ai fait un système d’élevage de monstre juste avec des évents ! BOUM ! Dans ta face de Script !
Je le partagerais quand il sera au point d’ailleurs !
Mais revenons a nos moutons, quelqu'un a une idée ?
Je sais que les "bouton" du Galv's Menu Themes Engine sont modulable, si tu connais la commande pour appeler le Yanfly Party System, il y a peut-être moyen de moyenner !
Edit : petit up ! Sur un malentendu quelqu'un pourra peut être avoir une solution en stock ^^
- NeresisMembre
- Nombre de messages : 403
Age : 34
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Lun 17 Fév 2014 - 17:14
Petit up à nouveau ^^
C'est pas super presser mais j'en est quant même besoin ^^
C'est pas super presser mais j'en est quant même besoin ^^
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Lun 17 Fév 2014 - 20:56
je regarde ça mais je te garantit rien ^^
- NeresisMembre
- Nombre de messages : 403
Age : 34
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Lun 17 Fév 2014 - 20:57
Merci beaucoup
Si ça peut faire avancer c'est déjà très bien
Si ça peut faire avancer c'est déjà très bien
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Lun 17 Fév 2014 - 21:15
essaye ça :
class Scene_Menu < Scene_MenuBase
alias on_formation_ok_2 on_formation_ok
def on_formation_ok
if (@status_window.pending_index > 0)&&(@status_window.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)
else
@status_window.pending_index = @status_window.index if @status_window.index > 0
end
@status_window.activate
end
end
edit a ajouter sous materials
class Scene_Menu < Scene_MenuBase
alias on_formation_ok_2 on_formation_ok
def on_formation_ok
if (@status_window.pending_index > 0)&&(@status_window.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)
else
@status_window.pending_index = @status_window.index if @status_window.index > 0
end
@status_window.activate
end
end
edit a ajouter sous materials
- NeresisMembre
- Nombre de messages : 403
Age : 34
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Lun 17 Fév 2014 - 21:19
Quelques questions avant, je doit remettre l'autre script (proposer par hashel) ?
Il lui faut un nom spécial a ton script ?
Il lui faut un nom spécial a ton script ?
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Lun 17 Fév 2014 - 21:22
Le nom du script n'a aucune importance tu peux mettre ce que tu veux.
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Lun 17 Fév 2014 - 21:22
le nom tu met ce que tu veut et non pas besoin du script de hashel
- NeresisMembre
- Nombre de messages : 403
Age : 34
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Lun 17 Fév 2014 - 21:31
Ça marche très bien ! Merci beaucoup !!
Maintenant histoire que se soit parfait (et de faire mon chieur ^^), tu pense que ce serais possible que le premier héros dans la liste soit grisé ? Que le joueur puisse comprendre du premier coup d’œil qu'il n'est pas possible de déplacer le leader ?
Edit : Une dernière question je vais te mettre dans les crédits puisque tu m'a aider, tu veut que je mette Vincent26 ou un autre pseudo ?
Maintenant histoire que se soit parfait (et de faire mon chieur ^^), tu pense que ce serais possible que le premier héros dans la liste soit grisé ? Que le joueur puisse comprendre du premier coup d’œil qu'il n'est pas possible de déplacer le leader ?
Edit : Une dernière question je vais te mettre dans les crédits puisque tu m'a aider, tu veut que je mette Vincent26 ou un autre pseudo ?
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Lun 17 Fév 2014 - 22:07
Pas moyen de trouver ou alors ya bcp trop de truc a changer je cherche encore
EDIT : pas moyen de griser a moi de reprogrammer une bonne partie du menu ^^' désolé
EDIT : pas moyen de griser a moi de reprogrammer une bonne partie du menu ^^' désolé
- NeresisMembre
- Nombre de messages : 403
Age : 34
Distinction : Un bonhomme, un vrai ! [Hashel]
Date d'inscription : 11/02/2014
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Lun 17 Fév 2014 - 22:19
Ok pas de problème ! Je vais me satisfaire de ça alors
C'est fonctionnel donc ça me va, merci pour le temps que tu a pris
C'est fonctionnel donc ça me va, merci pour le temps que tu a pris
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu]VXAce- Avoir un leader fix dans l'équipe
Lun 17 Fév 2014 - 22:21
Dr ya pas de quoi
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|