AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



Le Deal du moment : -45%
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre ...
Voir le deal
339 €

Partagez
 

 Demande d'add-on [option auto] [résolu]

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Matsuo Kaito
+ Heir Øf Ŧime +
+ Heir Øf Ŧime +
Matsuo Kaito


Masculin Age : 32
Inscrit le : 27/06/2008
Messages : 10881

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 17:15

Bonjour What a Face

Pour une fois, j'aurais une petite demande qui pourrait d'ailleurs intéresser d'autres personnes. Comme dans les Suikodens, j'aimerais qu'on ait un choix supplémentaire entre "combattre" et "fuir", qui serait "auto". Cette option sert, pour ceux qui ne connaissent pas, à faire en sorte que tous les héros attaquent simplement à tour de rôle. Bref, c'est comme passer un tour à appuyer sur "attaque" à chaque perso ( donc quatre fois ) sauf que ça se fait en une seule touche. Une fois le tour fini, on a à nouveau le choix entre combattre, fuir et auto.

Pour les compatiblités, j'utilise le SBS (3.3) et le PHS, ce qui fait qu'il y a déjà une option supplémentaire à côté de combat et fuir, c'est à dire ré-organiser la team.

Merci d'avance pour celui ou celle qui voudra bien essayer /O/

Petite image pourrie d'illustration >

Demande d'add-on [option auto] [résolu] Suikoden+5+034


Dernière édition par Matsuo Kaito le Sam 27 Fév 2010 - 19:05, édité 1 fois
Revenir en haut Aller en bas
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 17:24

je ne sais pas si c'est ce que tu recherches, mais je connais ça :

http://www.pockethouse.com/yez/bez-formation-macros/

Le problème étant que je ne pense pas qu'il soit compatible avec le SBS.
Essaye quand même.
Au pire ça servira de base a ceux qui voudraient te faire l'add-on.
Revenir en haut Aller en bas
Matsuo Kaito
+ Heir Øf Ŧime +
+ Heir Øf Ŧime +
Matsuo Kaito


Masculin Age : 32
Inscrit le : 27/06/2008
Messages : 10881

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 17:29

Je n'ai pas vraiment tout lu, mais d'après le début et les screens, ce n'est pas ça non x) Tout ce que je souhaite, c'est un truc tout bête permettant de forcer tous les personnages à attaquer sans devoir appuyer quatre fois sur "attaque" ( je sais pas si ce que je dis est clair ou pas xD ), pas quelque chose d'aussi élaboré que ça.
Revenir en haut Aller en bas
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 17:39

En fait dans ce script tu peux définir une liste d'actions. Et quand tu utiliseras ces actions cela fera automatiquement le fait d'enchainer.

À défaut d'être exactement ce que tu veux cela pourrait être un moyen de subsistance en attendant non ?
Revenir en haut Aller en bas
Matsuo Kaito
+ Heir Øf Ŧime +
+ Heir Øf Ŧime +
Matsuo Kaito


Masculin Age : 32
Inscrit le : 27/06/2008
Messages : 10881

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 17:52

Oui, ça s'en rapproche effectivement. Le problème étant que je ne souhaite pas ce système pour mes combats, et que ce que je souhaite est un petit truc plug and play qui permettrait juste de conclure rapidement les combats les plus faciles, en effectuant rapidement l'attaque basique. Etant donné que c'est un petit truc pour faciliter la vie au joueur, ce n'est pas non plus absolument nécessaire non plus, c'est pourquoi je ne souhaite pas un système trop différent et plus "approfondi".

Mais merci du partage x)

( actuellement, je cherche une vidéo sur youtube pour le système que je souhaite, mais c'est pas gagné, généralement les vidéos portent sur les boss et il est rare d'utiliser auto contre eux )

Edit : trouvé ici =>

https://www.youtube.com/watch?v=4pvpzhkNj4U


Dernière édition par Matsuo Kaito le Sam 27 Fév 2010 - 17:55, édité 1 fois
Revenir en haut Aller en bas
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 17:54

Hum je vois de quoi tu parles...

Ouais suffit de bricoler un truc a partir de Scene_Battle, Window_BattleCommand et Geme_Interpreter.
Revenir en haut Aller en bas
Matsuo Kaito
+ Heir Øf Ŧime +
+ Heir Øf Ŧime +
Matsuo Kaito


Masculin Age : 32
Inscrit le : 27/06/2008
Messages : 10881

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 17:56

J'ai édité mon message au dessus, j'ai trouvé une vidéo avec le système en question. Comme on peut le voir, en appuyant sur auto les persos attaquent tous ( l'attaque basique ).
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 18:08

C'pas long à faire j'te fait ca =) Passe moi le lien de ton PHS par contre
Revenir en haut Aller en bas
Matsuo Kaito
+ Heir Øf Ŧime +
+ Heir Øf Ŧime +
Matsuo Kaito


Masculin Age : 32
Inscrit le : 27/06/2008
Messages : 10881

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 18:11

Merci Blockie /O/ *ému*
Je te marchande le script contre des points de graphisme 8D
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 18:19

Et le lien de ton PHS ? xD
Ils attaquent tous le même ennemi ? Ou un ennemi aléatoire ?
Revenir en haut Aller en bas
Matsuo Kaito
+ Heir Øf Ŧime +
+ Heir Øf Ŧime +
Matsuo Kaito


Masculin Age : 32
Inscrit le : 27/06/2008
Messages : 10881

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 18:22

Mon PHS ? x)

Le voilà >

Code:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ? ??????? - KGC_LargeParty ? VX ?
#_/ ? Last update : 2008/02/06 ?
#_/----------------------------------------------------------------------------
#_/ 5?????????????????????
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ? ???????? - Customize ?
#==============================================================================

module KGC
module LargeParty
# ? ?????????????????
# ??????? ON/OFF ???????? ??/??? ????????
PARTYFORM_SWITCH = 1
# ? ?????????????????????
# ??????????????????????????????????
BATTLE_PARTYFORM_SWITCH = 1
# ? ?????????????
# true ?????????????????????????????????
# ???? ON ??????
DEFAULT_PARTYFORM_ENABLED = true

# ? ????????? (??????)
# 5 Nombre mximum dans les combats. (pas plus de 5)
MAX_BATTLE_MEMBERS = 4
# ? ???????????
# Game_Party::MAX_MEMBERS ????????
# 100 ?????? [Window_MenuStatus] ???????
MAX_MEMBERS = 8

# ? ??????????????
# ???????????????????????????
FORBID_CHANGE_SHIFT_FIXED = true

# ? ??????????
# ????????? Color.new(0, 0, 0, 0)
STAND_BY_COLOR = Color.new(0, 0, 0, 128)
# ? ??????????
FIXED_COLOR = Color.new(255, 128, 64, 96)
# ? ?????????
SELECTED_COLOR = Color.new(64, 255, 128, 128)

# ? ????????? (???????)
# ????????????????????????????????
# ???????? nil
MENU_PARTYFORM_BUTTON = Input::A
# ? ??????????????????????
# ???????????????????????
# ?????????????«????????????» ?????????
USE_MENU_PARTYFORM_COMMAND = true
# ? ????????????????????
VOCAB_MENU_PARTYFORM = "Formation"

# ? ???????????????????
# ????????????????????(???????)???
USE_BATTLE_PARTYFORM = true
# ? ?????????????????
VOCAB_BATTLE_PARTYFORM = "Ré-ordonner"

# ? ???????????????? [?, ??]
# ???????????????????????????????
PARTY_FORM_CHARACTER_SIZE = [40, 48]
# ? ????????????????????????????
BATTLE_MEMBER_BLANK_TEXT = "Vide"
# ? ???????????????????????
# ???????????????????????
# ???? 1 ????????
PARTY_MEMBER_WINDOW_ROW_MAX = 2
# ? ??????????????????????????????
SHOW_BATTLE_MEMBER_IN_PARTY = false
# ? ??????????????????????????????
PARTY_MEMBER_BLANK_TEXT = "-"

# ? ??????????????????
CAPTION_WINDOW_WIDTH = 192
# ? ???????????????????????
BATTLE_MEMBER_CAPTION = "Membres au Combat"

if SHOW_BATTLE_MEMBER_IN_PARTY
# ? ?????????????????????????
# SHOW_BATTLE_MEMBER_IN_PARTY = true ???
PARTY_MEMBER_CAPTION = "Membres au combat"
else
# ? ?????????????????????????
# SHOW_BATTLE_MEMBER_IN_PARTY = false ???
PARTY_MEMBER_CAPTION = "Membres en réserve"
end

# ? ???????????
CONFIRM_WINDOW_WIDTH = 160
# ? ?????????????
# ??????·??????????????
CONFIRM_WINDOW_COMMANDS = ["Confirmer la Modification", "Annuler la Modification", "Retour"]

# ? ???????????????????????????????
# ?????????????????????????????
# ?????????????? nil ????
# «????????????»?????????????????
SHOP_STATUS_SCROLL_BUTTON = Input::A

# ? ????????????????:‰(??? 1‰=0.1%)?
# 500 ?? 50.0% ???
STAND_BY_EXP_RATE = 500
# ? ?????????????????????????
# false ???????????????????
SHOW_STAND_BY_LEVEL_UP = true
end
end

#???????????????????????????????????????

$imported = {} if $imported == nil
$imported["LargeParty"] = true

#???????????????????????????????????????

#==============================================================================
# ? KGC::Commands
#==============================================================================

module KGC::Commands
# ??????????
SORT_BY_ID = 0 # ID?
SORT_BY_NAME = 1 # ???
SORT_BY_LEVEL = 2 # ????

module_function
#--------------------------------------------------------------------------
# ? ?????????????
#--------------------------------------------------------------------------
def call_partyform
return if $game_temp.in_battle
$game_temp.next_scene = :partyform
end
#--------------------------------------------------------------------------
# ? ????????????
# value : ?? (????????????????)
#--------------------------------------------------------------------------
def set_max_battle_member_count(value = nil)
$game_party.max_battle_member_count = value
end
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def party_full?
return $game_party.full?
end
#--------------------------------------------------------------------------
# ? ???????????
# enabled : ????? (??? : true)
#--------------------------------------------------------------------------
def permit_partyform(enabled = true)
$game_switches[KGC::LargeParty::PARTYFORM_SWITCH] = enabled
end
#--------------------------------------------------------------------------
# ? ???????????????
# enabled : ????? (??? : true)
#--------------------------------------------------------------------------
def permit_battle_partyform(enabled = true)
$game_switches[KGC::LargeParty::BATTLE_PARTYFORM_SWITCH] = enabled
end
#--------------------------------------------------------------------------
# ? ????????????
# actor_id : ???? ID
# fixed : ????? (??? : true)
#--------------------------------------------------------------------------
def fix_actor(actor_id, fixed = true)
$game_party.fix_actor(actor_id, fixed)
end
#--------------------------------------------------------------------------
# ? ????
# ????? index1 ??? index2 ????????
#--------------------------------------------------------------------------
def change_party_shift(index1, index2)
$game_party.change_shift(index1, index2)
end
#--------------------------------------------------------------------------
# ? ?????? (??)
# sort_type : ????? (SORT_BY_xxx)
# reverse : true ????
#--------------------------------------------------------------------------
def sort_party_member(sort_type = SORT_BY_ID, reverse = false)
$game_party.sort_member(sort_type, reverse)
end
end

class Game_Interpreter
include KGC::Commands
end

#???????????????????????????????????????

#==============================================================================
# ¦ Vocab
#==============================================================================

module Vocab
# ????????????? (????)
def self.partyform
return KGC::LargeParty::VOCAB_MENU_PARTYFORM
end

# ????????????? (??)
def self.partyform_battle
return KGC::LargeParty::VOCAB_BATTLE_PARTYFORM
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ? ?????????????
#--------------------------------------------------------------------------
def party_index
return $game_party.all_members.index(self)
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def battle_member?
return $game_party.battle_members.include?(self)
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Game_Party
#==============================================================================

class Game_Party
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
MAX_MEMBERS = KGC::LargeParty::MAX_MEMBERS # ????????
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
alias initialize_KGC_LargeParty initialize
def initialize
initialize_KGC_LargeParty

@max_battle_member_count = nil
@battle_member_count = 0
@fixed_actors = []
end
#--------------------------------------------------------------------------
# ? ???????????
#--------------------------------------------------------------------------
def max_battle_member_count
if @max_battle_member_count == nil
return KGC::LargeParty::MAX_BATTLE_MEMBERS
else
return @max_battle_member_count
end
end
#--------------------------------------------------------------------------
# ? ???????????
#--------------------------------------------------------------------------
def max_battle_member_count=(value)
if value.is_a?(Integer)
value = [value, 1].max
end
@max_battle_member_count = value
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def battle_member_count
if @battle_member_count == nil
@battle_member_count = @actors.size
end
@battle_member_count =
[@battle_member_count, @actors.size, max_battle_member_count].min
return @battle_member_count
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def battle_member_count=(value)
@battle_member_count = [[value, 0].max,
@actors.size, max_battle_member_count].min
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
alias members_KGC_LargeParty members
def members
return ($game_temp.in_battle ? battle_members : members_KGC_LargeParty)
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def all_members
return members_KGC_LargeParty
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def battle_members
result = []
battle_member_count.times { |i| result << $game_actors[@actors[i]] }
return result
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def stand_by_members
return (all_members - battle_members)
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def fixed_members
result = []
@fixed_actors.each { |i| result << $game_actors[i] }
return result
end
#--------------------------------------------------------------------------
# ? ?????????????
#--------------------------------------------------------------------------
alias setup_starting_members_KGC_LargeParty setup_starting_members
def setup_starting_members
setup_starting_members_KGC_LargeParty

self.battle_member_count = @actors.size
end
#--------------------------------------------------------------------------
# ? ?????????????????
#--------------------------------------------------------------------------
alias setup_battle_test_members_KGC_LargeParty setup_battle_test_members
def setup_battle_test_members
setup_battle_test_members_KGC_LargeParty

self.battle_member_count = @actors.size
end
#--------------------------------------------------------------------------
# ? ?????????
# new_member : ???????
#--------------------------------------------------------------------------
def set_member(new_member)
@actors = []
new_member.each { |actor| @actors << actor.id }
end
#--------------------------------------------------------------------------
# ? ???????????
# new_member : ?????????
#--------------------------------------------------------------------------
def set_battle_member(new_member)
new_battle_member = []
new_member.each { |actor|
@actors.delete(actor.id)
new_battle_member << actor.id
}
@actors = new_battle_member + @actors
self.battle_member_count = new_member.size
end
#--------------------------------------------------------------------------
# ? ????????????????
#--------------------------------------------------------------------------
def partyform_enable?
return $game_switches[KGC::LargeParty::PARTYFORM_SWITCH]
end
#--------------------------------------------------------------------------
# ? ????????????????????
#--------------------------------------------------------------------------
def battle_partyform_enable?
return false unless partyform_enable?
return $game_switches[KGC::LargeParty::BATTLE_PARTYFORM_SWITCH]
end
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def full?
return (@actors.size >= MAX_MEMBERS)
end
#--------------------------------------------------------------------------
# ? ?????????
# actor_id : ????????? ID
#--------------------------------------------------------------------------
def actor_fixed?(actor_id)
return @fixed_actors.include?(actor_id)
end
#--------------------------------------------------------------------------
# ? ????????
# actor_id : ???? ID
#--------------------------------------------------------------------------
alias add_actor_KGC_LargeParty add_actor
def add_actor(actor_id)
last_size = @actors.size

add_actor_KGC_LargeParty(actor_id)

if last_size < @actors.size
self.battle_member_count += 1
end
end
#--------------------------------------------------------------------------
# ? ????????????
# actor_id : ???? ID
# fixed : ????? (??? : false)
#--------------------------------------------------------------------------
def fix_actor(actor_id, fixed = false)
unless @actors.include?(actor_id)
return
end

if fixed
# ??
unless @fixed_actors.include?(actor_id)
@fixed_actors << actor_id
unless battle_members.include?($game_actors[actor_id])
self.battle_member_count += 1
end
end
# ????
apply_force_launch
else
# ????
@fixed_actors.delete(actor_id)
end
$game_player.refresh
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def apply_force_launch
@actors -= @fixed_actors
@actors = @fixed_actors + @actors
end
#--------------------------------------------------------------------------
# ? ?????? (??)
# sort_type : ????? (SORT_BY_xxx)
# reverse : true ????
#--------------------------------------------------------------------------
def sort_member(sort_type = KGC::Commands::SORT_BY_ID,
reverse = false)
# ???????
b_actors = battle_members
actors = all_members - b_actors
f_actors = fixed_members
# ????????????
if KGC::LargeParty::FORBID_CHANGE_SHIFT_FIXED
actors -= f_actors
b_actors -= f_actors
end
# ???
case sort_type
when KGC::Commands::SORT_BY_ID # ID?
actors.sort! { |a, b| a.id <=> b.id }
b_actors.sort! { |a, b| a.id <=> b.id }
when KGC::Commands::SORT_BY_NAME # ???
actors.sort! { |a, b| a.name <=> b.name }
b_actors.sort! { |a, b| a.name <=> b.name }
when KGC::Commands::SORT_BY_LEVEL # ????
actors.sort! { |a, b| a.level <=> b.level }
b_actors.sort! { |a, b| a.level <=> b.level }
end
# ??
if reverse
actors.reverse!
b_actors.reverse!
end
# ??????????????
if KGC::LargeParty::FORBID_CHANGE_SHIFT_FIXED
actors = f_actors + actors
b_actors = f_actors + b_actors
end
# ??
set_member(actors)
set_battle_member(b_actors)

apply_force_launch
$game_player.refresh
end
#--------------------------------------------------------------------------
# ? ????
# ??????? index1 ??? index2 ????????
#--------------------------------------------------------------------------
def change_shift(index1, index2)
size = @actors.size
if index1 >= size || index2 >= size
return
end
buf = @actors[index1]
@actors[index1] = @actors[index2]
@actors[index2] = buf
$game_player.refresh
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Window_Command
#==============================================================================

class Window_Command < Window_Selectable
unless method_defined?(:add_command)
#--------------------------------------------------------------------------
# ? ???????
# ?????????
#--------------------------------------------------------------------------
def add_command(command)
@commands << command
@item_max = @commands.size
item_index = @item_max - 1
refresh_command
draw_item(item_index)
return item_index
end
#--------------------------------------------------------------------------
# ? ???????????
#--------------------------------------------------------------------------
def refresh_command
buf = self.contents.clone
self.height = [self.height, row_max * WLH + 32].max
create_contents
self.contents.blt(0, 0, buf, buf.rect)
buf.dispose
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def insert_command(index, command)
@commands.insert(index, command)
@item_max = @commands.size
refresh_command
refresh
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def remove_command(command)
@commands.delete(command)
@item_max = @commands.size
refresh
end
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Window_MenuStatus
#==============================================================================

class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
STATUS_HEIGHT = 96 # ???????????
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def create_contents
self.contents.dispose
self.contents = Bitmap.new(width - 32,
[height - 32, row_max * STATUS_HEIGHT].max)
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def top_row
return self.oy / STATUS_HEIGHT
end
#--------------------------------------------------------------------------
# ? ???????
# row : ????????
#--------------------------------------------------------------------------
def top_row=(row)
super(row)
self.oy = self.oy / WLH * STATUS_HEIGHT
end
#--------------------------------------------------------------------------
# ? 1 ??????????????
#--------------------------------------------------------------------------
def page_row_max
return (self.height - 32) / STATUS_HEIGHT
end
#--------------------------------------------------------------------------
# ? ????????????
# index : ????
#--------------------------------------------------------------------------
def item_rect(index)
rect = super(index)
rect.height = STATUS_HEIGHT
rect.y = index / @column_max * STATUS_HEIGHT
return rect
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def refresh
@item_max = $game_party.all_members.size
create_contents
fill_stand_by_background
draw_member
end
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def draw_member
for actor in $game_party.members
draw_actor_face(actor, 2, actor.party_index * 96 + 2, 92)
x = 104
y = actor.party_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
#--------------------------------------------------------------------------
# ? ?????????????
#--------------------------------------------------------------------------
def fill_stand_by_background
color = KGC::LargeParty::STAND_BY_COLOR
dy = STATUS_HEIGHT * $game_party.battle_members.size
dh = STATUS_HEIGHT * $game_party.stand_by_members.size
if dh > 0
self.contents.fill_rect(0, dy, self.width - 32, dh, color)
end
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def update_cursor
if @index < 0 # ??????
self.cursor_rect.empty
elsif @index < @item_max # ??
super
elsif @index >= 100 # ??
self.cursor_rect.set(0, (@index - 100) * STATUS_HEIGHT,
contents.width, STATUS_HEIGHT)
else # ??
self.cursor_rect.set(0, 0, contents.width, @item_max * STATUS_HEIGHT)
end
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Window_ShopStatus
#==============================================================================

class Window_ShopStatus < Window_Base
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def create_contents
self.contents.dispose
self.contents = Bitmap.new(width - 32,
WLH * ($game_party.members.size + 1) * 2)
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Window_BattleStatus
#==============================================================================

class Window_BattleStatus < Window_Selectable
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def create_contents
self.contents.dispose
self.contents = Bitmap.new(width - 32,
[WLH * $game_party.members.size, height - 32].max)
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias refresh_KGC_LargeParty refresh
def refresh
create_contents

refresh_KGC_LargeParty
end
end

#???????????????????????????????????????

#==============================================================================
# ? Window_PartyFormCaption
#------------------------------------------------------------------------------
#  ??????????????????????????????????
#==============================================================================

class Window_PartyFormCaption < Window_Base
#--------------------------------------------------------------------------
# ? ?????????
# caption : ??????????
#--------------------------------------------------------------------------
def initialize(caption = "")
super(0, 0, KGC::LargeParty::CAPTION_WINDOW_WIDTH, WLH + 32)
self.z = 1500
@caption = caption
refresh
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.draw_text(0, 0, width - 32, WLH, @caption)
end
end

#???????????????????????????????????????

#==============================================================================
# ? Window_PartyFormMember
#------------------------------------------------------------------------------
#  ??????????????????????????
#==============================================================================

class Window_PartyFormMember < Window_Selectable
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
DRAW_SIZE = KGC::LargeParty::PARTY_FORM_CHARACTER_SIZE
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
attr_accessor :selected_index # ??????????
#--------------------------------------------------------------------------
# ? ?????????
# x : ?????? X ??
# y : ?????? Y ??
# width : ???????
# height : ????????
# spacing : ??????????????
#--------------------------------------------------------------------------
def initialize(x, y, width, height, spacing = 8)
super(x, y, width, height, spacing)
self.z = 1000
end
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def create_contents
self.contents.dispose
self.contents = Bitmap.new(width - 32,
[height - 32, row_max * DRAW_SIZE[1]].max)
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def top_row
return self.oy / DRAW_SIZE[1]
end
#--------------------------------------------------------------------------
# ? ???????
# row : ????????
#--------------------------------------------------------------------------
def top_row=(row)
super(row)
self.oy = self.oy / WLH * DRAW_SIZE[1]
end
#--------------------------------------------------------------------------
# ? 1 ??????????????
#--------------------------------------------------------------------------
def page_row_max
return (self.height - 32) / DRAW_SIZE[1]
end
#--------------------------------------------------------------------------
# ? ????????????
# index : ????
#--------------------------------------------------------------------------
def item_rect(index)
rect = super(index)
rect.width = DRAW_SIZE[0]
rect.height = DRAW_SIZE[1]
rect.y = index / @column_max * DRAW_SIZE[1]
return rect
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def actor
return @actors[self.index]
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def refresh
self.contents.clear
restore_member_list
draw_member
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def restore_member_list
# ??????
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def draw_member
# ??????
end
#--------------------------------------------------------------------------
# ? ????????
# index : ????
#--------------------------------------------------------------------------
def draw_empty_actor(index)
# ??????
end
#--------------------------------------------------------------------------
# ? ?????????
# index : ????
#--------------------------------------------------------------------------
def draw_fixed_back(index)
rect = item_rect(index)
self.contents.fill_rect(rect, KGC::LargeParty::FIXED_COLOR)
end
#--------------------------------------------------------------------------
# ? ??????????
# index : ????
#--------------------------------------------------------------------------
def draw_selected_back(index)
rect = item_rect(index)
self.contents.fill_rect(rect, KGC::LargeParty::SELECTED_COLOR)
end
end

#???????????????????????????????????????

#==============================================================================
# ? Window_PartyFormBattleMember
#------------------------------------------------------------------------------
#  ????????????????????????????
#==============================================================================

class Window_PartyFormBattleMember < Window_PartyFormMember
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
attr_accessor :selected_index # ??????????
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def initialize
super(0, 0, 64, DRAW_SIZE[1] + 32)
column_width = DRAW_SIZE[0] + @spacing
nw = [column_width * $game_party.max_battle_member_count + 32,
Graphics.width].min
self.width = nw

@item_max = $game_party.max_battle_member_count
@column_max = width / column_width
@selected_index = nil
create_contents
refresh
self.active = true
self.index = 0
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def restore_member_list
@actors = $game_party.battle_members
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def draw_member
@item_max.times { |i|
actor = @actors[i]
if actor == nil
draw_empty_actor(i)
else
if i == @selected_index
draw_selected_back(i)
elsif $game_party.actor_fixed?(actor.id)
draw_fixed_back(i)
end
rect = item_rect(i)
draw_actor_graphic(actor,
rect.x + DRAW_SIZE[0] / 2,
rect.y + DRAW_SIZE[1] - 4)
end
}
end
#--------------------------------------------------------------------------
# ? ????????
# index : ????
#--------------------------------------------------------------------------
def draw_empty_actor(index)
rect = item_rect(index)
self.contents.font.color = system_color
self.contents.draw_text(rect, KGC::LargeParty::BATTLE_MEMBER_BLANK_TEXT, 1)
self.contents.font.color = normal_color
end
end

#???????????????????????????????????????

#==============================================================================
# ? Window_PartyFormAllMember
#------------------------------------------------------------------------------
#  ???????????????????????????
#==============================================================================

class Window_PartyFormAllMember < Window_PartyFormMember
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def initialize
super(0, 0, 64, 64)
restore_member_list
@item_max = $game_party.all_members.size

# ???????
column_width = DRAW_SIZE[0] + @spacing
sw = [@item_max * column_width + 32, Graphics.width].min
@column_max = (sw - 32) / column_width
sh = ([@item_max - 1, 0].max / @column_max + 1) * DRAW_SIZE[1] + 32
sh = [sh, DRAW_SIZE[1] * KGC::LargeParty::PARTY_MEMBER_WINDOW_ROW_MAX + 32].min

# ??·?????
self.y += DRAW_SIZE[1] + 32
self.width = sw
self.height = sh

create_contents
refresh
self.active = false
self.index = 0
end
#--------------------------------------------------------------------------
# ? ???????????????????
#--------------------------------------------------------------------------
def actor_index
return @index_offset + self.index
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def restore_member_list
if KGC::LargeParty::SHOW_BATTLE_MEMBER_IN_PARTY
@actors = $game_party.all_members
@index_offset = 0
else
@actors = $game_party.stand_by_members
@index_offset = $game_party.battle_members.size
end
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def draw_member
@item_max.times { |i|
actor = @actors[i]
if actor == nil
draw_empty_actor(i)
next
end

if $game_party.actor_fixed?(actor.id)
draw_fixed_back(i)
end
rect = item_rect(i)
opacity = ($game_party.battle_members.include?(actor) ? 96 : 255)
draw_actor_graphic(actor,
rect.x + DRAW_SIZE[0] / 2,
rect.y + DRAW_SIZE[1] - 4,
opacity)
}
end
#--------------------------------------------------------------------------
# ? ???????????????
# actor : ????
# x : ??? X ??
# y : ??? Y ??
# opacity : ????
#--------------------------------------------------------------------------
def draw_actor_graphic(actor, x, y, opacity = 255)
draw_character(actor.character_name, actor.character_index, x, y, opacity)
end
#--------------------------------------------------------------------------
# ? ???????????
# character_name : ???????? ?????
# character_index : ???????? ??????
# x : ??? X ??
# y : ??? Y ??
# opacity : ????
#--------------------------------------------------------------------------
def draw_character(character_name, character_index, x, y, opacity = 255)
return if character_name == nil
bitmap = Cache.character(character_name)
sign = character_name[/^[\!\$]./]
if sign != nil and sign.include?('$')
cw = bitmap.width / 3
ch = bitmap.height / 4
else
cw = bitmap.width / 12
ch = bitmap.height / 8
end
n = character_index
src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, opacity)
end
#--------------------------------------------------------------------------
# ? ????????
# index : ????
#--------------------------------------------------------------------------
def draw_empty_actor(index)
rect = item_rect(index)
self.contents.font.color = system_color
self.contents.draw_text(rect, KGC::LargeParty::PARTY_MEMBER_BLANK_TEXT, 1)
self.contents.font.color = normal_color
end
end

#???????????????????????????????????????

#==============================================================================
# ? Window_PartyFormStatus
#------------------------------------------------------------------------------
#  ????????????????????????????????
#==============================================================================

class Window_PartyFormStatus < Window_Base
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def initialize
super(0, 0, 384, 128)
self.z = 1000
@actor = nil
refresh
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def set_actor(actor)
if @actor != actor
@actor = actor
refresh
end
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def refresh
self.contents.clear
if @actor == nil
return
end

draw_actor_face(@actor, 0, 0)
dx = 104
draw_actor_name(@actor, dx, 0)
draw_actor_level(@actor, dx, WLH * 1)
draw_actor_hp(@actor, dx, WLH * 2)
draw_actor_mp(@actor, dx, WLH * 3)
4.times { |i|
draw_actor_parameter(@actor, dx + 128, WLH * i, i, 120)
}
end
#--------------------------------------------------------------------------
# ? ??????
# actor : ????
# x : ??? X ??
# y : ??? Y ??
# type : ?????? (0~3)
# width : ???
#--------------------------------------------------------------------------
def draw_actor_parameter(actor, x, y, type, width = 156)
case type
when 0
parameter_name = Vocab::atk
parameter_value = actor.atk
when 1
parameter_name = Vocab::def
parameter_value = actor.def
when 2
parameter_name = Vocab::spi
parameter_value = actor.spi
when 3
parameter_name = Vocab::agi
parameter_value = actor.agi
end
nw = width - 36
self.contents.font.color = system_color
self.contents.draw_text(x, y, nw, WLH, parameter_name)
self.contents.font.color = normal_color
self.contents.draw_text(x + nw, y, 36, WLH, parameter_value, 2)
end
end

#???????????????????????????????????????

#==============================================================================
# ? Window_PartyFormControl
#------------------------------------------------------------------------------
#  ??????????????????????????
#==============================================================================

class Window_PartyFormControl < Window_Base
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
MODE_BATTLE_MEMBER = 0
MODE_SHIFT_CHANGE = 1
MODE_PARTY_MEMBER = 2
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def initialize
super(0, 0, Graphics.width - 384, 128)
self.z = 1000
@mode = MODE_BATTLE_MEMBER
refresh
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
def mode=(value)
@mode = value
refresh
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def refresh
self.contents.clear
case @mode
when MODE_BATTLE_MEMBER # ??????
buttons = [
"A: Remove",
"B: End",
"C: Confirm",
"X: Sort"
]
when MODE_SHIFT_CHANGE # ????
buttons = [
"B: Cancel",
"C: Confirm",
"X: Confirm"
]
when MODE_PARTY_MEMBER # ????????
buttons = [
"B: Cancel",
"C: Confirm"
]
else
return
end

buttons.each_with_index { |c, i|
self.contents.draw_text(0, WLH * i, width - 32, WLH, c)
}
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Scene_Title
#==============================================================================

class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# ? ??????????????
#--------------------------------------------------------------------------
alias create_game_objects_KGC_LargeParty create_game_objects
def create_game_objects
create_game_objects_KGC_LargeParty

if KGC::LargeParty::DEFAULT_PARTYFORM_ENABLED
$game_switches[KGC::LargeParty::PARTYFORM_SWITCH] = true
$game_switches[KGC::LargeParty::BATTLE_PARTYFORM_SWITCH] = true
end
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
alias update_scene_change_KGC_LargeParty update_scene_change
def update_scene_change
return if $game_player.moving? # ??????????

if $game_temp.next_scene == :partyform
call_partyform
return
end

update_scene_change_KGC_LargeParty
end
#--------------------------------------------------------------------------
# ? ??????????????
#--------------------------------------------------------------------------
def call_partyform
$game_temp.next_scene = nil
$scene = Scene_PartyForm.new(0, Scene_PartyForm::HOST_MAP)
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Scene_Menu
#==============================================================================

class Scene_Menu < Scene_Base
if KGC::LargeParty::USE_MENU_PARTYFORM_COMMAND
#--------------------------------------------------------------------------
# ? ????????????
#--------------------------------------------------------------------------
alias create_command_window_KGC_LargeParty create_command_window
def create_command_window
create_command_window_KGC_LargeParty

return if $imported["CustomMenuCommand"]

@__command_partyform_index =
@command_window.add_command(Vocab.partyform)
@command_window.draw_item(@__command_partyform_index,
$game_party.partyform_enable?)
if @command_window.oy > 0
@command_window.oy -= Window_Base::WLH
end
@command_window.index = @menu_index
end
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
alias update_command_selection_KGC_LargeParty update_command_selection
def update_command_selection
current_menu_index = @__command_partyform_index
call_partyform_flag = false

if Input.trigger?(Input::C)
case @command_window.index
when @__command_partyform_index # ??????
call_partyform_flag = true
end
# ???????????
elsif KGC::LargeParty::MENU_PARTYFORM_BUTTON != nil &&
Input.trigger?(KGC::LargeParty::MENU_PARTYFORM_BUTTON)
call_partyform_flag = true
current_menu_index = @command_window.index if current_menu_index == nil
end

# ???????????
if call_partyform_flag
if $game_party.members.size == 0 || !$game_party.partyform_enable?
Sound.play_buzzer
return
end
Sound.play_decision
$scene = Scene_PartyForm.new(current_menu_index)
return
end

update_command_selection_KGC_LargeParty
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Scene_Shop
#==============================================================================

unless $imported["HelpExtension"]
class Scene_Shop < Scene_Base
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias udpate_KGC_LargeParty update
def update
# ???????
if !@command_window.active &&
KGC::LargeParty::SHOP_STATUS_SCROLL_BUTTON != nil &&
Input.press?(KGC::LargeParty::SHOP_STATUS_SCROLL_BUTTON)
super
update_menu_background
update_scroll_status
return
else
@status_window.cursor_rect.empty
end

udpate_KGC_LargeParty
end
#--------------------------------------------------------------------------
# ? ??????????????????
#--------------------------------------------------------------------------
def update_scroll_status
# ??????????????????
@status_window.cursor_rect.width = @status_window.contents.width
@status_window.cursor_rect.height = @status_window.height - 32
@status_window.update

if Input.press?(Input::UP)
@status_window.oy = [@status_window.oy - 4, 0].max
elsif Input.press?(Input::DOWN)
max_pos = [@status_window.contents.height -
(@status_window.height - 32), 0].max
@status_window.oy = [@status_window.oy + 4, max_pos].min
end
end
end
end

#???????????????????????????????????????

#==============================================================================
# ? Scene_PartyForm
#------------------------------------------------------------------------------
#  ????????????????????
#==============================================================================

class Scene_PartyForm < Scene_Base
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
CAPTION_OFFSET = 40 # ????????????????
HOST_MENU = 0 # ????? : ????
HOST_MAP = 1 # ????? : ???
HOST_BATTLE = 2 # ????? : ??
#--------------------------------------------------------------------------
# ? ?????????
# menu_index : ?????????????
# host_scene : ????? (0..???? 1..??? 2..??)
#--------------------------------------------------------------------------
def initialize(menu_index = 0, host_scene = HOST_MENU)
@menu_index = menu_index
@host_scene = host_scene
end
#--------------------------------------------------------------------------
# ? ????
#--------------------------------------------------------------------------
def start
super
create_menu_background

create_windows
create_confirm_window
adjust_window_location

# ???????????
@battle_actors = $game_party.battle_members.dup
@party_actors = $game_party.all_members.dup
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def create_windows
# ???????????
@battle_member_window = Window_PartyFormBattleMember.new
@party_member_window = Window_PartyFormAllMember.new
@status_window = Window_PartyFormStatus.new
@status_window.set_actor(@battle_member_window.actor)

# ????????????
@battle_member_caption_window =
Window_PartyFormCaption.new(KGC::LargeParty::BATTLE_MEMBER_CAPTION)
@party_member_caption_window =
Window_PartyFormCaption.new(KGC::LargeParty::PARTY_MEMBER_CAPTION)
@control_window = Window_PartyFormControl.new
end
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def create_confirm_window
commands = KGC::LargeParty::CONFIRM_WINDOW_COMMANDS
@confirm_window =
Window_Command.new(KGC::LargeParty::CONFIRM_WINDOW_WIDTH, commands)
@confirm_window.index = 0
@confirm_window.x = (Graphics.width - @confirm_window.width) / 2
@confirm_window.y = (Graphics.height - @confirm_window.height) / 2
@confirm_window.z = 2000
@confirm_window.openness = 0
@confirm_window.active = false
end
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def adjust_window_location
# ???????
base_x = [@battle_member_window.width, @party_member_window.width].max
base_x = [(Graphics.width - base_x) / 2, 0].max
base_y = @battle_member_window.height + @party_member_window.height +
@status_window.height + CAPTION_OFFSET * 2
base_y = [(Graphics.height - base_y) / 2, 0].max

# ???????????????
@battle_member_window.x = base_x
@battle_member_window.y = base_y + CAPTION_OFFSET
@party_member_window.x = base_x
@party_member_window.y = @battle_member_window.y +
@battle_member_window.height + CAPTION_OFFSET
@status_window.x = 0
@status_window.y = @party_member_window.y + @party_member_window.height

# ????????????????
@battle_member_caption_window.x = [base_x - 16, 0].max
@battle_member_caption_window.y = @battle_member_window.y - CAPTION_OFFSET
@party_member_caption_window.x = [base_x - 16, 0].max
@party_member_caption_window.y = @party_member_window.y - CAPTION_OFFSET
@control_window.x = @status_window.width
@control_window.y = @status_window.y
end
#--------------------------------------------------------------------------
# ? ????
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@battle_member_window.dispose
@party_member_window.dispose
@status_window.dispose
@battle_member_caption_window.dispose
@party_member_caption_window.dispose
@control_window.dispose
@confirm_window.dispose
end
#--------------------------------------------------------------------------
# ? ????????????
#--------------------------------------------------------------------------
def create_menu_background
super
@menuback_sprite.z = 500
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def return_scene
case @host_scene
when HOST_MENU
$scene = Scene_Menu.new(@menu_index)
when HOST_MAP
$scene = Scene_Map.new
when HOST_BATTLE
$scene = Scene_Battle.new
end
$game_player.refresh
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def update
super
update_menu_background
update_window
if @battle_member_window.active
update_battle_member
elsif @party_member_window.active
update_party_member
elsif @confirm_window.active
update_confirm
end
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def update_window
@battle_member_window.update
@party_member_window.update
@status_window.update
@battle_member_caption_window.update
@party_member_caption_window.update
@control_window.update
@confirm_window.update
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def refresh_window
@battle_member_window.refresh
@party_member_window.refresh
end
#--------------------------------------------------------------------------
# ? ?????? (????????????????????)
#--------------------------------------------------------------------------
def update_battle_member
@status_window.set_actor(@battle_member_window.actor)
if Input.trigger?(Input::A)
if @battle_member_window.selected_index == nil # ????????
actor = @battle_member_window.actor
# ???????????
if actor == nil || $game_party.actor_fixed?(actor.id)
Sound.play_buzzer
return
end
# ???????
Sound.play_decision
actors = $game_party.battle_members
actors.delete_at(@battle_member_window.index)
$game_party.set_battle_member(actors)
refresh_window
end
elsif Input.trigger?(Input::B)
if @battle_member_window.selected_index == nil # ????????
# ????????????
Sound.play_cancel
show_confirm_window
else # ?????
# ??????
Sound.play_cancel
@battle_member_window.selected_index = nil
@battle_member_window.refresh
@control_window.mode = Window_PartyFormControl::MODE_BATTLE_MEMBER
end
elsif Input.trigger?(Input::C)
if @battle_member_window.selected_index == nil # ????????
actor = @battle_member_window.actor
# ???????????
if actor != nil && $game_party.actor_fixed?(actor.id)
Sound.play_buzzer
return
end
# ??????????????????
Sound.play_decision
@battle_member_window.active = false
@party_member_window.active = true
@control_window.mode = Window_PartyFormControl::MODE_PARTY_MEMBER
else # ?????
unless can_change_shift?(@battle_member_window.actor)
Sound.play_buzzer
return
end
# ??????
Sound.play_decision
index1 = @battle_member_window.selected_index
index2 = @battle_member_window.index
change_shift(index1, index2)
@control_window.mode = Window_PartyFormControl::MODE_BATTLE_MEMBER
end
elsif Input.trigger?(Input::X)
# ??????????
unless can_change_shift?(@battle_member_window.actor)
Sound.play_buzzer
return
end
if @battle_member_window.selected_index == nil # ????????
# ??????
Sound.play_decision
@battle_member_window.selected_index = @battle_member_window.index
@battle_member_window.refresh
@control_window.mode = Window_PartyFormControl::MODE_SHIFT_CHANGE
else # ?????
# ??????
Sound.play_decision
index1 = @battle_member_window.selected_index
index2 = @battle_member_window.index
change_shift(index1, index2)
@control_window.mode = Window_PartyFormControl::MODE_BATTLE_MEMBER
end
end
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
def can_change_shift?(actor)
# ???????????????????????????
if actor == nil ||
(KGC::LargeParty::FORBID_CHANGE_SHIFT_FIXED &&
$game_party.actor_fixed?(actor.id))
return false
end
return true
end
#--------------------------------------------------------------------------
# ? ????
#--------------------------------------------------------------------------
def change_shift(index1, index2)
# ???????
$game_party.change_shift(index1, index2)
# ??????????????
@battle_member_window.selected_index = nil
refresh_window
end
#--------------------------------------------------------------------------
# ? ?????? (??????????????????)
#--------------------------------------------------------------------------
def update_party_member
@status_window.set_actor(@party_member_window.actor)
if Input.trigger?(Input::B)
Sound.play_cancel
# ????????????????
@battle_member_window.active = true
@party_member_window.active = false
@control_window.mode = Window_PartyFormControl::MODE_BATTLE_MEMBER
elsif Input.trigger?(Input::C)
actor = @party_member_window.actor
# ??????????????????
if $game_party.battle_members.include?(actor)
Sound.play_buzzer
return
end
# ?????????
Sound.play_decision
actors = $game_party.all_members
battle_actors = $game_party.battle_members
if @battle_member_window.actor != nil
actors[@party_member_window.actor_index] = @battle_member_window.actor
actors[@battle_member_window.index] = actor
$game_party.set_member(actors.compact)
end
battle_actors[@battle_member_window.index] = actor
$game_party.set_battle_member(battle_actors.compact)
refresh_window
# ????????????????
@battle_member_window.active = true
@party_member_window.active = false
@control_window.mode = Window_PartyFormControl::MODE_BATTLE_MEMBER
end
end
#--------------------------------------------------------------------------
# ? ?????? (????????????????)
#--------------------------------------------------------------------------
def update_confirm
if Input.trigger?(Input::B)
Sound.play_cancel
hide_confirm_window
elsif Input.trigger?(Input::C)
case @confirm_window.index
when 0 # ????
# ????????????
if $game_party.battle_members.size == 0
Sound.play_buzzer
return
end
Sound.play_decision
return_scene
when 1 # ????
Sound.play_decision
# ??????????????
$game_party.set_member(@party_actors)
$game_party.set_battle_member(@battle_actors)
return_scene
when 2 # ?????
Sound.play_cancel
hide_confirm_window
end
end
end
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def show_confirm_window
if @battle_member_window.active
@last_active_window = @battle_member_window
else
@last_active_window = @party_member_window
end
@battle_member_window.active = false
@party_member_window.active = false

@confirm_window.draw_item(0, $game_party.battle_members.size > 0)
@confirm_window.open
@confirm_window.active = true
end
#--------------------------------------------------------------------------
# ? ???????????
#--------------------------------------------------------------------------
def hide_confirm_window
@confirm_window.active = true
@confirm_window.close
@last_active_window.active = true
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Scene_Battle
#==============================================================================

class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ? ?????????????????
#--------------------------------------------------------------------------
alias wait_for_message_KGC_LargeParty wait_for_message
def wait_for_message
return if @ignore_wait_for_message # ?????????????????

wait_for_message_KGC_LargeParty
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
alias display_level_up_KGC_LargeParty display_level_up
def display_level_up
@ignore_wait_for_message = true

display_level_up_KGC_LargeParty

exp = $game_troop.exp_total * KGC::LargeParty::STAND_BY_EXP_RATE / 1000
$game_party.stand_by_members.each { |actor|
if actor.exist?
actor.gain_exp(exp, KGC::LargeParty::SHOW_STAND_BY_LEVEL_UP)
end
}
@ignore_wait_for_message = false
wait_for_message
end
#--------------------------------------------------------------------------
# ? ?????????????
#--------------------------------------------------------------------------
alias start_party_command_selection_KGC_LargeParty start_party_command_selection
def start_party_command_selection
if $game_temp.in_battle
@status_window.index = 0
end

start_party_command_selection_KGC_LargeParty
end

if KGC::LargeParty::USE_BATTLE_PARTYFORM
#--------------------------------------------------------------------------
# ? ?????????????
#--------------------------------------------------------------------------
alias create_info_viewport_KGC_LargeParty create_info_viewport
def create_info_viewport
create_info_viewport_KGC_LargeParty

@__command_partyform_index =
@party_command_window.add_command(Vocab.partyform_battle)
@party_command_window.draw_item(@__command_partyform_index,
$game_party.battle_partyform_enable?)
end
#--------------------------------------------------------------------------
# ? ?????????????
#--------------------------------------------------------------------------
alias update_party_command_selection_KGC_LargeParty update_party_command_selection
def update_party_command_selection
if Input.trigger?(Input::C)
case @party_command_window.index
when @__command_partyform_index # ??????
unless $game_party.battle_partyform_enable?
Sound.play_buzzer
return
end
Sound.play_decision
process_partyform
return
end
end

update_party_command_selection_KGC_LargeParty
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def process_partyform
Graphics.freeze
snapshot_for_background
$scene = Scene_PartyForm.new(0, Scene_PartyForm::HOST_BATTLE)
$scene.main
$scene = self
@status_window.refresh
perform_transition
end
end
end

Pour l'ennemi je ne me souviens plus dans Suikoden ... mais par facilité pour le jeu, je dirais le même x)
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 18:57

J'te conseille de modifier la valeur CONFIRM_WINDOW_WIDTH pour que tes textes "Confirmer la Modification", "Annuler la Modification", "Retour" soient pas écrasés.

Tiens cadeau :
Code:

#===============================================================
# ● [VX] ◦ Auto Battle pour SBS
#--------------------------------------------------------------
# ◦ Par  Blockade
# ◦ http://rpg-maker-vx.bbactif.com/forum.htm
# ◦ Crée le 27/02/2010, d'une requête
# ◦ Version 1.0
#--------------------------------------------------------------
#===============================================================
#===============================================================
# Notes de version :
#---------------------------------------------------------------
# ~ Version 1.0 :
#  - Création du script
#===============================================================
# Description du script
#---------------------------------------------------------------
# Permet au joueur de faire attaquer tout ses personnages avec une seule
# commande. Il est possible de désactiver la commande à l'aide d'un interrupteur.
#===============================================================
# Utilisation :
#  Plug & Play, insérez le au dessus de Main.
#  Jetez un coup d'oeil au module de configuration !
#===============================================================
# Compatibilité :
#  Placez le en dessous des scripts du SBS, et au-dessus PHS de KGC si
#  vous l'utilisez.
#===============================================================
#===============================================================
#  Blockade::Config_Report Début du Module de configuration
#===============================================================
module Blockade
  module Auto_Battle
#-------------------------------------------
# >> Configuration du texte
#--------------------------------------------
    # > Nom de la commande
    Name_Auto = "Auto"

#-------------------------------------------
# >> Désactivation
#--------------------------------------------
    # > Option de désactivation
    Activer_desactivation = false # Activer la désactivation par interrupteur ? true = oui ; false = non
    Interrupteur_Auto = 2          # ID de l'interrupteur. Si il est désactivé alors l'option aussi, et vice versa.
  end
end
#===============================================================
#  Blockade::Config_Report Fin du Module de configuration
#===============================================================
#==============================================================================
# ** Window_PartyCommand
#------------------------------------------------------------------------------
#  Fenêtre qui affiche les actions générales de combat.
#==============================================================================

class Window_PartyCommand < Window_Command
  include Blockade::Auto_Battle
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize
    s1 = Vocab::fight
    s2 = Vocab::escape
    s3 = Name_Auto
    super(128, [s1, s2,s3], 1, 4)
    draw_item(0, true)
    draw_item(1, $game_troop.can_escape)
    if Activer_desactivation
      draw_item(2, $game_switches[Interrupteur_Auto])
    else
      draw_item(2, true)
    end
    self.active = false
  end
end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  Scene qui gére les combats.
#==============================================================================
class Scene_Battle < Scene_Base
    include Blockade::Auto_Battle
  #--------------------------------------------------------------------------
  # * Exécute les actions en fonction du choix de Window_PartyCommand.
  #--------------------------------------------------------------------------
  def update_party_command_selection
    if Input.trigger?(Input::C)
      case @party_command_window.index
      when 0  # Fight
        Sound.play_decision
        @status_window.index = @actor_index = -1
        next_actor
      when 1  # Escape
        if $game_troop.can_escape == false
          Sound.play_buzzer
          return
        end
        Sound.play_decision
        process_escape
    when 2 # Auto Battle
      if Activer_desactivation and not $game_switches[Interrupteur_Auto]
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      procces_auto_battle
    end
  end
end

  #--------------------------------------------------------------------------
  # * Ordonne à tous les héros d'attaquer.
  #--------------------------------------------------------------------------
  def procces_auto_battle
    $game_party.existing_members.each { |actor|
      actor.action.set_attack
      actor.action.target_index = $game_troop.smooth_target(0).index
    }
    start_main
  end
end
Revenir en haut Aller en bas
Matsuo Kaito
+ Heir Øf Ŧime +
+ Heir Øf Ŧime +
Matsuo Kaito


Masculin Age : 32
Inscrit le : 27/06/2008
Messages : 10881

Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitimeSam 27 Fév 2010 - 19:02

Exactement ce que je voulais ^^ ( j'ai testé et ça fonctionne parfaitement )
Merci encore Blockie ♥
Revenir en haut Aller en bas
Contenu sponsorisé




Demande d'add-on [option auto] [résolu] Empty
MessageSujet: Re: Demande d'add-on [option auto] [résolu]   Demande d'add-on [option auto] [résolu] Icon_minitime

Revenir en haut Aller en bas
 

Demande d'add-on [option auto] [résolu]

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Option des actor dans la bbd.[Résolu]
» Mon personnage marche partout [Auto Résolu mode boulet off]
» utilisation de l'option coller une carte dans VX (Résolu)
» [Résolu] Ecran du titre en event - Option "charger une partie"
» [RESOLU][VX] Demande de script.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Requêtes :: Archives-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit