Accueil du SiteAccueil du Site  AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  ConnexionConnexion  S'enregistrerS'enregistrer  



-67%
Le deal à ne pas rater :
Carte Fnac+ à 4,99€ au lieu de 14,99€ (nouveaux clients / ...
4.99 € 14.99 €
Voir le deal

Partagez
 

 [XP] Menu pour plus de 4 héros

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Creme brulée
Chevalier Mage (niveau 4)
Chevalier Mage (niveau 4)
Creme brulée

Masculin
Messages postés : 465
Date d'inscription : 04/02/2012
Jauge LPC :
[XP] Menu pour plus de 4 héros 891527140010 / 10010 / 100[XP] Menu pour plus de 4 héros 8915271400

[XP] Menu pour plus de 4 héros Membre10
[XP] Menu pour plus de 4 héros Altrui10
[XP] Menu pour plus de 4 héros Partag10
[XP] Menu pour plus de 4 héros Collec10
[XP] Menu pour plus de 4 héros Collec11
[XP] Menu pour plus de 4 héros Collec12


[XP] Menu pour plus de 4 héros Empty
MessageSujet: [XP] Menu pour plus de 4 héros   [XP] Menu pour plus de 4 héros EmptyMer 14 Mar 2012 - 18:39

Bonjour à tous, voilà un menu pour plus de 4 héros et qui est assez sympa je trouve.
Il est paramétré pour 20 héros mais en début de script vous pouvez changer le nombre.
Seul les 4 premiers héros combattront mais vous pouvez changer l'ordre des héros donc c'est bon ^^

Voilà un screen : [XP] Menu pour plus de 4 héros Screen-328e4a9

(Pour le dragon jaune, il s'agit d'un autre perso se trouvant sur une ligne en dessous.)

et maintenant le code, nommé le script "Game_Party"

Code:
#=================================#
# Traduction par masterjojo.
# Modifié par Sihn
#=================================#

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

class Game_Party
#--------------------------------------------------------------------------
# ? define instance variable
#--------------------------------------------------------------------------
attr_accessor :actors
#--------------------------------------------------------------------------
# Vous pouvez changer le nombre rouge par celui de votre
# choix: c'est le nombre max de personne pouvant integrer
# votre équipe (par défaut: 20).
#--------------------------------------------------------------------------
def add_actor(actor_id)
actor = $game_actors[actor_id]
if @actors.size < 20 and not @actors.include?(actor)
@actors.push(actor)
$game_player.refresh
end
end
end

#==============================================================================
# ¦ Window_Base
#==============================================================================

class Window_Base < Window
#--------------------------------------------------------------------------
# ? draw character's battle sprite
#--------------------------------------------------------------------------
def draw_actor_battlegraphic(actor, x, y, opacity = 255)
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
src_rect = Rect.new(0, 0, 111, 111)
self.contents.blt(x, y, bitmap, src_rect, opacity)
end
#--------------------------------------------------------------------------
# ? draw character's HP meter
#--------------------------------------------------------------------------
def draw_actor_hp_meter(actor, x, y, width = 70, type = 0)
if type == 1 and actor.hp == 0
return
end
self.contents.font.color = system_color
self.contents.fill_rect(x-1, y+27, width+2,5, Color.new(0, 0, 0, 255))
w = width * actor.hp / actor.maxhp
self.contents.fill_rect(x, y+28, w,1, Color.new(174, 68, 89, 255))
self.contents.fill_rect(x, y+29, w,1, Color.new(156, 61, 80, 255))
self.contents.fill_rect(x, y+30, w,1, Color.new(138, 53, 70, 255))
end
#--------------------------------------------------------------------------
# ? draw character's SP meter
#--------------------------------------------------------------------------
def draw_actor_sp_meter(actor, x, y, width = 70, type = 0)
if type == 1 and actor.sp == 0
return
end
self.contents.font.color = system_color
self.contents.fill_rect(x-1, y+27, width+2,5, Color.new(0, 0, 0, 255))
w = width * actor.sp / actor.maxsp
self.contents.fill_rect(x, y+28, w,1, Color.new(62, 72, 164, 255))
self.contents.fill_rect(x, y+29, w,1, Color.new(55, 65, 149, 255))
self.contents.fill_rect(x, y+30, w,1, Color.new(49, 57, 130, 255))
end
#--------------------------------------------------------------------------
# ? define method to draw squares
#--------------------------------------------------------------------------
def draw_square(x, y, width, color)
self.contents.fill_rect(x, y, width, 1, color)
self.contents.fill_rect(x, y, 1, width, color)
self.contents.fill_rect(x + width, y, 1, width + 1, color)
self.contents.fill_rect(x, y + width, width + 1, 1, color)
end
end

#==============================================================================
# ¦ Window_Gold
#------------------------------------------------------------------------------
# le texte a été remplacé par une icone
#==============================================================================

class Window_Gold < Window_Base
#--------------------------------------------------------------------------
# ? initialize
#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
end
#--------------------------------------------------------------------------
# ? refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
cx = 24
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
self.contents.font.color = system_color
bitmap = RPG::Cache.icon("032-Item01")
rect = Rect.new(0, 0, 24, 24)
self.contents.blt(124-cx, 0, bitmap, rect)
end
end

#==============================================================================
# ¦ Window_PlayTime
#------------------------------------------------------------------------------
# cette fenêtre a été compacté pour montrer toutes les commandes dans le menu
#==============================================================================

class Window_PlayTime < Window_Base
#--------------------------------------------------------------------------
# ? initialize
#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
end
#--------------------------------------------------------------------------
# ? refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120, 32, text, 2)
end
#--------------------------------------------------------------------------
# ? redefine update method
#--------------------------------------------------------------------------
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end

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

class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# ? initialize
#--------------------------------------------------------------------------
def initialize
super(0, 0, 480, 480)
@column_max = 4
@item_max = $game_party.actors.size
self.contents = Bitmap.new(width - 32, row_max * 112)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize/1.2
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# ? refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...$game_party.actors.size
x = i % 4 * 112
y = i / 4 * 112
actor = $game_party.actors[i]
#dessine un carré pour séparer les characters, changer couleur transparente par ce que vous voulez
#couleur désirée... (methode pour faire un carré ci-dessous)
draw_square(x, y, 111, disabled_color)
draw_actor_battlegraphic(actor, x, y, 150)#Rep
draw_actor_graphic(actor, x + 90, y + 50)
draw_actor_name(actor, x + 5, y)
self.contents.draw_text(x + 5, y + 20, 112, 32, "HP : #{actor.hp}")
self.contents.draw_text(x + 5, y + 40, 112, 32, "MP : #{actor.sp}")
draw_actor_level(actor, x + 5, y + 60)
draw_actor_state(actor, x + 5, y + 80)
draw_actor_hp_meter(actor, x + 5, y + 17)
draw_actor_sp_meter(actor, x + 5, y + 37)
end
end
#--------------------------------------------------------------------------
# ? define the page's top row
#--------------------------------------------------------------------------
def top_row
return self.oy / 112
end
#--------------------------------------------------------------------------
# ? define the page maximum rows
#--------------------------------------------------------------------------
def page_row_max
return (self.height - 32) / 112
end
#--------------------------------------------------------------------------
# ? defines a method to change the page's top row
#--------------------------------------------------------------------------
def top_row=(row)
if row < 0
row = 0
end
if row > row_max - 1
row = row_max - 1
end
self.oy = row * 112
end
#--------------------------------------------------------------------------
# ? update the cursor movement
#--------------------------------------------------------------------------
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
return
end
row = @index / @column_max
if row < self.top_row
self.top_row = row
end
if row > self.top_row + (self.page_row_max - 1)
self.top_row = row - (self.page_row_max - 1)
end
self.cursor_rect.set(@index % 4 * 112, @index / 4 * 112 - self.oy, 112, 112)
end
end


#==============================================================================
# ¦ Window_Target
#==============================================================================

class Window_Target < Window_Selectable
#--------------------------------------------------------------------------
# ? initialize
#--------------------------------------------------------------------------
def initialize
super(0, 0, 336, 480)
@column_max = 2
@item_max = $game_party.actors.size
self.contents = Bitmap.new(width - 32, row_max * 112)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize/1.2
self.z += 10
refresh
end
#--------------------------------------------------------------------------
# ? refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...$game_party.actors.size
x = i % 2 * 112 + 36
y = i / 2 * 112
actor = $game_party.actors[i]
#dessine un carré pour séparer les characters, changer couleur transparente par ce que vous voulez
#coleur désirée... (methode pour faire un carré ci-dessous)
draw_square(x, y, 111, disabled_color)
draw_actor_battlegraphic(actor, x, y, 150)
draw_actor_graphic(actor, x + 90, y + 50)
draw_actor_name(actor, x + 5, y)
self.contents.draw_text(x + 5, y + 20, 112, 32, "HP : #{actor.hp}")
self.contents.draw_text(x + 5, y + 40, 112, 32, "MP : #{actor.sp}")
draw_actor_level(actor, x + 5, y + 60)
draw_actor_state(actor, x + 5, y + 80)
draw_actor_hp_meter(actor, x + 5, y + 17)
draw_actor_sp_meter(actor, x + 5, y + 37)
end
end
#--------------------------------------------------------------------------
# ? define the page's top row
#--------------------------------------------------------------------------
def top_row
return self.oy / 112
end
#--------------------------------------------------------------------------
# ? define the page maximum rows
#--------------------------------------------------------------------------
def page_row_max
return (self.height - 32) / 112
end
#--------------------------------------------------------------------------
# ? defines a method to change the page's top row
#--------------------------------------------------------------------------
def top_row=(row)
if row < 0
row = 0
end
if row > row_max - 1
row = row_max - 1
end
self.oy = row * 112
end
#--------------------------------------------------------------------------
# ? update the cursor movement
#--------------------------------------------------------------------------
def update_cursor_rect
row = @index / @column_max
if row < self.top_row
self.top_row = row
end
if row > self.top_row + (self.page_row_max - 1)
self.top_row = row - (self.page_row_max - 1)
end
if @index <= -2
self.cursor_rect.empty
elsif @index == -1
self.cursor_rect.set(0, 0, self.width - 32, @item_max * 116 - 20)
else
self.cursor_rect.set(@index % 2 * 112 + 36, @index / 2 * 112 - self.oy, 112, 112)
end
end
end

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

class Scene_Menu
#--------------------------------------------------------------------------
# ? initialize
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
@actor_change = false
end
#--------------------------------------------------------------------------
# ? main
#--------------------------------------------------------------------------
def main
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Statuts"
s5 = "Sauvegarder"
s6 = "Ordre"
s7 = "Quitter"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
@command_window.index = @menu_index
if $game_party.actors.size == 0
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
@command_window.disable_item(5)
end
if $game_system.save_disabled
@command_window.disable_item(4)
end
@playtime_window = Window_PlayTime.new
@playtime_window.x = 0
@playtime_window.y = 256 #224

@steps_window = Window_Steps.new
@steps_window.x = 0
@steps_window.y = 320

@gold_window = Window_Gold.new
@gold_window.x = 0
@gold_window.y = 416

@status_window = Window_MenuStatus.new
@status_window.x = 160
@status_window.y = 0

Graphics.transition

loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze

@command_window.dispose
@playtime_window.dispose
@steps_window.dispose
@gold_window.dispose
@status_window.dispose
end
#--------------------------------------------------------------------------
# ? update the windows
#--------------------------------------------------------------------------
def update
@command_window.update
@playtime_window.update
@steps_window.update
@gold_window.update
@status_window.update

if @command_window.active
update_command
return
end
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
# ? update the command window
#--------------------------------------------------------------------------
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 0 and @command_window.index < 4
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0 # Item
$game_system.se_play($data_system.decision_se)
$scene = Scene_Item.new
when 1 # Skill
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2 # Equip
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3 # Status
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4 # Save
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Save.new
when 5 # party actors switch
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 6 # End
$game_system.se_play($data_system.decision_se)
$scene = Scene_End.new
end
return
end
end
#--------------------------------------------------------------------------
# ? update the status window
#--------------------------------------------------------------------------
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
@actor_change = false
return
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
case @command_window.index
when 1 # Skill
if $game_party.actors[@status_window.index].restriction >= 2
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Skill.new(@status_window.index)
when 2 # Equip
$game_system.se_play($data_system.decision_se)
$scene = Scene_Equip.new(@status_window.index)
when 3 # Status
$game_system.se_play($data_system.decision_se)
$scene = Scene_Status.new(@status_window.index)
when 5 # party actors switch
if @actor_change == true
$game_system.se_play($data_system.decision_se)
$game_party.actors[@old_index] = $game_party.actors[@status_window.index]
$game_party.actors[@status_window.index] = @new_actor
$game_player.refresh
@actor_change = false
@status_window.refresh
return
end
@old_index = @status_window.index
@new_actor = $game_party.actors[@status_window.index]
@actor_change = true
end
return
end
end
end

#==============================================================================
# ¦ Scene_Battle (Part 1)
#==============================================================================

class Scene_Battle
#--------------------------------------------------------------------------
# ? main
#--------------------------------------------------------------------------
def main
$game_temp.in_battle = true
$game_temp.battle_turn = 0
$game_temp.battle_event_flags.clear
$game_temp.battle_abort = false
$game_temp.battle_main_phase = false
$game_temp.battleback_name = $game_map.battleback_name
$game_temp.forcing_battler = nil
$game_system.battle_interpreter.setup(nil, 0)
@troop_id = $game_temp.battle_troop_id
$game_troop.setup(@troop_id)
#memorize actors in party and cut the party down to 4 actors
@party_mem = $game_party.actors
$game_party.actors = $game_party.actors[0..3]
s1 = $data_system.words.attack
s2 = $data_system.words.skill
s3 = $data_system.words.guard
s4 = $data_system.words.item
@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
@actor_command_window.y = 160
@actor_command_window.back_opacity = 160
@actor_command_window.active = false
@actor_command_window.visible = false
@party_command_window = Window_PartyCommand.new
@help_window = Window_Help.new
@help_window.back_opacity = 160
@help_window.visible = false
@status_window = Window_BattleStatus.new
@message_window = Window_Message.new
@spriteset = Spriteset_Battle.new
@wait_count = 0
if $data_system.battle_transition == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
$data_system.battle_transition)
end
start_phase1
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
$game_map.refresh
Graphics.freeze
@actor_command_window.dispose
@party_command_window.dispose
@help_window.dispose
@status_window.dispose
@message_window.dispose
if @skill_window != nil
@skill_window.dispose
end
if @item_window != nil
@item_window.dispose
end
if @result_window != nil
@result_window.dispose
end
@spriteset.dispose
if $scene.is_a?(Scene_Title)
Graphics.transition
Graphics.freeze
end
if $BTEST and not $scene.is_a?(Scene_Gameover)
$scene = nil
end
end
#--------------------------------------------------------------------------
# ? battle end
#--------------------------------------------------------------------------
def battle_end(result)
$game_temp.in_battle = false
$game_party.clear_actions
for actor in $game_party.actors
actor.remove_states_battle
end
$game_troop.enemies.clear
if $game_temp.battle_proc != nil
$game_temp.battle_proc.call(result)
$game_temp.battle_proc = nil
end
$game_party.actors = @party_mem
$scene = Scene_Map.new
end
end

J'espère que ça vous sera utile.
Revenir en haut Aller en bas
Invité
Invité
Anonymous


[XP] Menu pour plus de 4 héros Empty
MessageSujet: Re: [XP] Menu pour plus de 4 héros   [XP] Menu pour plus de 4 héros EmptyMer 14 Mar 2012 - 18:48

Merci du partage + 2 LPDM.
Revenir en haut Aller en bas
Jin
Ancien staffeux
Ancien staffeux
Jin

Masculin
Messages postés : 8557
Date d'inscription : 08/12/2010
Jauge LPC :
[XP] Menu pour plus de 4 héros 891527140069 / 10069 / 100[XP] Menu pour plus de 4 héros 8915271400

G 1 petit zizi Very Happy
Nn C pa vré Sad
[XP] Menu pour plus de 4 héros Membre15
[XP] Menu pour plus de 4 héros Partag10
[XP] Menu pour plus de 4 héros Travai10
[XP] Menu pour plus de 4 héros Event-10
[XP] Menu pour plus de 4 héros Altrui10
[XP] Menu pour plus de 4 héros Riche_10
[XP] Menu pour plus de 4 héros Couhil10
[XP] Menu pour plus de 4 héros Nain_p11
[XP] Menu pour plus de 4 héros Connar10


[XP] Menu pour plus de 4 héros Empty
MessageSujet: Re: [XP] Menu pour plus de 4 héros   [XP] Menu pour plus de 4 héros EmptyMer 14 Mar 2012 - 19:20

Bouarf le code est pas indenté beark x)

Merci du partage.

Tout ça parce que je t'ai tanné pour que tu indente tes codes sur le site (sous menace de te tuer)
Revenir en haut Aller en bas
Siegfried
Mage (niveau 2)
Mage (niveau 2)
Siegfried

Masculin
Messages postés : 286
Date d'inscription : 31/07/2011
Jauge LPC :
[XP] Menu pour plus de 4 héros 891527140080 / 10080 / 100[XP] Menu pour plus de 4 héros 8915271400

[XP] Menu pour plus de 4 héros Altrui10
[XP] Menu pour plus de 4 héros Script10


[XP] Menu pour plus de 4 héros Empty
MessageSujet: Re: [XP] Menu pour plus de 4 héros   [XP] Menu pour plus de 4 héros EmptyLun 26 Mar 2012 - 18:43

Voici le code indenté (je m'ennuyais) :
Code:
#=================================#
# Traduction par masterjojo.
# Modifié par Sihn
#=================================#

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

class Game_Party
  #--------------------------------------------------------------------------
  # ? define instance variable
  #--------------------------------------------------------------------------
  attr_accessor :actors
  #--------------------------------------------------------------------------
  # Vous pouvez changer le nombre rouge par celui de votre
  # choix: c'est le nombre max de personne pouvant integrer
  # votre équipe (par défaut: 20).
  #--------------------------------------------------------------------------
  def add_actor(actor_id)
    actor = $game_actors[actor_id]
    if @actors.size < 20 and not @actors.include?(actor)
      @actors.push(actor)
      $game_player.refresh
    end
  end
end

#==============================================================================
# ¦ Window_Base
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ? draw character's battle sprite
  #--------------------------------------------------------------------------
  def draw_actor_battlegraphic(actor, x, y, opacity = 255)
    bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
    src_rect = Rect.new(0, 0, 111, 111)
    self.contents.blt(x, y, bitmap, src_rect, opacity)
  end
  #--------------------------------------------------------------------------
  # ? draw character's HP meter
  #--------------------------------------------------------------------------
  def draw_actor_hp_meter(actor, x, y, width = 70, type = 0)
    if type == 1 and actor.hp == 0
      return
    end
    self.contents.font.color = system_color
    self.contents.fill_rect(x-1, y+27, width+2,5, Color.new(0, 0, 0, 255))
    w = width * actor.hp / actor.maxhp
    self.contents.fill_rect(x, y+28, w,1, Color.new(174, 68, 89, 255))
    self.contents.fill_rect(x, y+29, w,1, Color.new(156, 61, 80, 255))
  self.contents.fill_rect(x, y+30, w,1, Color.new(138, 53, 70, 255))
  end
  #--------------------------------------------------------------------------
  # ? draw character's SP meter
  #--------------------------------------------------------------------------
  def draw_actor_sp_meter(actor, x, y, width = 70, type = 0)
    if type == 1 and actor.sp == 0
      return
    end
    self.contents.font.color = system_color
    self.contents.fill_rect(x-1, y+27, width+2,5, Color.new(0, 0, 0, 255))
    w = width * actor.sp / actor.maxsp
    self.contents.fill_rect(x, y+28, w,1, Color.new(62, 72, 164, 255))
    self.contents.fill_rect(x, y+29, w,1, Color.new(55, 65, 149, 255))
    self.contents.fill_rect(x, y+30, w,1, Color.new(49, 57, 130, 255))
  end
  #--------------------------------------------------------------------------
  # ? define method to draw squares
  #--------------------------------------------------------------------------
  def draw_square(x, y, width, color)
    self.contents.fill_rect(x, y, width, 1, color)
    self.contents.fill_rect(x, y, 1, width, color)
    self.contents.fill_rect(x + width, y, 1, width + 1, color)
    self.contents.fill_rect(x, y + width, width + 1, 1, color)
  end
end

#==============================================================================
# ¦ Window_Gold
#------------------------------------------------------------------------------
# le texte a été remplacé par une icone
#==============================================================================

class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # ? initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
  end
  #--------------------------------------------------------------------------
  # ? refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    cx = 24
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    bitmap = RPG::Cache.icon("032-Item01")
    rect = Rect.new(0, 0, 24, 24)
    self.contents.blt(124-cx, 0, bitmap, rect)
  end
end

#==============================================================================
# ¦ Window_PlayTime
#------------------------------------------------------------------------------
# cette fenêtre a été compacté pour montrer toutes les commandes dans le menu
#==============================================================================

class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # ? initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
  end
  #--------------------------------------------------------------------------
  # ? refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # ? redefine update method
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end

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

class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # ? initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 480, 480)
    @column_max = 4
    @item_max = $game_party.actors.size
    self.contents = Bitmap.new(width - 32, row_max * 112)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize/1.2
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # ? refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...$game_party.actors.size
      x = i % 4 * 112
      y = i / 4 * 112
      actor = $game_party.actors[i]
      #dessine un carré pour séparer les characters, changer couleur transparente par ce que vous voulez
      #couleur désirée... (methode pour faire un carré ci-dessous)
      draw_square(x, y, 111, disabled_color)
      draw_actor_battlegraphic(actor, x, y, 150)#Rep
      draw_actor_graphic(actor, x + 90, y + 50)
      draw_actor_name(actor, x + 5, y)
      self.contents.draw_text(x + 5, y + 20, 112, 32, "HP : #{actor.hp}")
      self.contents.draw_text(x + 5, y + 40, 112, 32, "MP : #{actor.sp}")
      draw_actor_level(actor, x + 5, y + 60)
      draw_actor_state(actor, x + 5, y + 80)
      draw_actor_hp_meter(actor, x + 5, y + 17)
      draw_actor_sp_meter(actor, x + 5, y + 37)
    end
  end
  #--------------------------------------------------------------------------
  # ? define the page's top row
  #--------------------------------------------------------------------------
  def top_row
    return self.oy / 112
  end
  #--------------------------------------------------------------------------
  # ? define the page maximum rows
  #--------------------------------------------------------------------------
  def page_row_max
    return (self.height - 32) / 112
  end
  #--------------------------------------------------------------------------
  # ? defines a method to change the page's top row
  #--------------------------------------------------------------------------
  def top_row=(row)
    if row < 0
      row = 0
    end
    if row > row_max - 1
      row = row_max - 1
    end
    self.oy = row * 112
  end
  #--------------------------------------------------------------------------
  # ? update the cursor movement
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
      return
    end
    row = @index / @column_max
    if row < self.top_row
      self.top_row = row
    end
    if row > self.top_row + (self.page_row_max - 1)
      self.top_row = row - (self.page_row_max - 1)
    end
    self.cursor_rect.set(@index % 4 * 112, @index / 4 * 112 - self.oy, 112, 112)
  end
end


#==============================================================================
# ¦ Window_Target
#==============================================================================

class Window_Target < Window_Selectable
  #--------------------------------------------------------------------------
  # ? initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 336, 480)
    @column_max = 2
    @item_max = $game_party.actors.size
    self.contents = Bitmap.new(width - 32, row_max * 112)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize/1.2
    self.z += 10
    refresh
  end
  #--------------------------------------------------------------------------
  # ? refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...$game_party.actors.size
      x = i % 2 * 112 + 36
      y = i / 2 * 112
      actor = $game_party.actors[i]
      #dessine un carré pour séparer les characters, changer couleur transparente par ce que vous voulez
      #coleur désirée... (methode pour faire un carré ci-dessous)
      draw_square(x, y, 111, disabled_color)
      draw_actor_battlegraphic(actor, x, y, 150)
      draw_actor_graphic(actor, x + 90, y + 50)
      draw_actor_name(actor, x + 5, y)
      self.contents.draw_text(x + 5, y + 20, 112, 32, "HP : #{actor.hp}")
      self.contents.draw_text(x + 5, y + 40, 112, 32, "MP : #{actor.sp}")
      draw_actor_level(actor, x + 5, y + 60)
      draw_actor_state(actor, x + 5, y + 80)
      draw_actor_hp_meter(actor, x + 5, y + 17)
      draw_actor_sp_meter(actor, x + 5, y + 37)
    end
  end
  #--------------------------------------------------------------------------
  # ? define the page's top row
  #--------------------------------------------------------------------------
  def top_row
    return self.oy / 112
  end
  #--------------------------------------------------------------------------
  # ? define the page maximum rows
  #--------------------------------------------------------------------------
  def page_row_max
    return (self.height - 32) / 112
  end
  #--------------------------------------------------------------------------
  # ? defines a method to change the page's top row
  #--------------------------------------------------------------------------
  def top_row=(row)
    if row < 0
      row = 0
    end
    if row > row_max - 1
      row = row_max - 1
    end
    self.oy = row * 112
  end
  #--------------------------------------------------------------------------
  # ? update the cursor movement
  #--------------------------------------------------------------------------
  def update_cursor_rect
    row = @index / @column_max
    if row < self.top_row
      self.top_row = row
    end
    if row > self.top_row + (self.page_row_max - 1)
      self.top_row = row - (self.page_row_max - 1)
    end
    if @index <= -2
      self.cursor_rect.empty
    elsif @index == -1
      self.cursor_rect.set(0, 0, self.width - 32, @item_max * 116 - 20)
    else
      self.cursor_rect.set(@index % 2 * 112 + 36, @index / 2 * 112 - self.oy, 112, 112)
    end
  end
end

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

class Scene_Menu
  #--------------------------------------------------------------------------
  # ? initialize
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
    @actor_change = false
  end
  #--------------------------------------------------------------------------
  # ? main
  #--------------------------------------------------------------------------
  def main
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Statuts"
    s5 = "Sauvegarder"
    s6 = "Ordre"
    s7 = "Quitter"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
    @command_window.index = @menu_index
    if $game_party.actors.size == 0
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
      @command_window.disable_item(5)
    end
    if $game_system.save_disabled
      @command_window.disable_item(4)
    end
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 256 #224
   
    @steps_window = Window_Steps.new
    @steps_window.x = 0
    @steps_window.y = 320
   
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
   
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
   
    Graphics.transition
   
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
   
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # ? update the windows
  #--------------------------------------------------------------------------
  def update
  @command_window.update
  @playtime_window.update
  @steps_window.update
  @gold_window.update
  @status_window.update
 
  if @command_window.active
  update_command
  return
  end
  if @status_window.active
  update_status
  return
  end
  end
  #--------------------------------------------------------------------------
  # ? update the command window
  #--------------------------------------------------------------------------
  def update_command
  if Input.trigger?(Input::B)
  $game_system.se_play($data_system.cancel_se)
  $scene = Scene_Map.new
  return
  end
  if Input.trigger?(Input::C)
  if $game_party.actors.size == 0 and @command_window.index < 4
  $game_system.se_play($data_system.buzzer_se)
  return
  end
  case @command_window.index
  when 0 # Item
  $game_system.se_play($data_system.decision_se)
  $scene = Scene_Item.new
  when 1 # Skill
  $game_system.se_play($data_system.decision_se)
  @command_window.active = false
  @status_window.active = true
  @status_window.index = 0
  when 2 # Equip
  $game_system.se_play($data_system.decision_se)
  @command_window.active = false
  @status_window.active = true
  @status_window.index = 0
  when 3 # Status
  $game_system.se_play($data_system.decision_se)
  @command_window.active = false
  @status_window.active = true
  @status_window.index = 0
  when 4 # Save
  if $game_system.save_disabled
  $game_system.se_play($data_system.buzzer_se)
  return
  end
  $game_system.se_play($data_system.decision_se)
  $scene = Scene_Save.new
  when 5 # party actors switch
  $game_system.se_play($data_system.decision_se)
  @command_window.active = false
  @status_window.active = true
  @status_window.index = 0
  when 6 # End
  $game_system.se_play($data_system.decision_se)
  $scene = Scene_End.new
  end
  return
  end
  end
  #--------------------------------------------------------------------------
  # ? update the status window
  #--------------------------------------------------------------------------
  def update_status
  if Input.trigger?(Input::B)
  $game_system.se_play($data_system.cancel_se)
  @command_window.active = true
  @status_window.active = false
  @status_window.index = -1
  @actor_change = false
  return
  end
  if Input.trigger?(Input::C)
  $game_system.se_play($data_system.decision_se)
  case @command_window.index
  when 1 # Skill
  if $game_party.actors[@status_window.index].restriction >= 2
  $game_system.se_play($data_system.buzzer_se)
  return
  end
  $game_system.se_play($data_system.decision_se)
  $scene = Scene_Skill.new(@status_window.index)
  when 2 # Equip
  $game_system.se_play($data_system.decision_se)
  $scene = Scene_Equip.new(@status_window.index)
  when 3 # Status
  $game_system.se_play($data_system.decision_se)
  $scene = Scene_Status.new(@status_window.index)
  when 5 # party actors switch
  if @actor_change == true
  $game_system.se_play($data_system.decision_se)
  $game_party.actors[@old_index] = $game_party.actors[@status_window.index]
  $game_party.actors[@status_window.index] = @new_actor
  $game_player.refresh
  @actor_change = false
  @status_window.refresh
  return
  end
  @old_index = @status_window.index
  @new_actor = $game_party.actors[@status_window.index]
  @actor_change = true
  end
  return
  end
  end
end

#==============================================================================
# ¦ Scene_Battle (Part 1)
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # ? main
  #--------------------------------------------------------------------------
  def main
    $game_temp.in_battle = true
    $game_temp.battle_turn = 0
    $game_temp.battle_event_flags.clear
    $game_temp.battle_abort = false
    $game_temp.battle_main_phase = false
    $game_temp.battleback_name = $game_map.battleback_name
    $game_temp.forcing_battler = nil
    $game_system.battle_interpreter.setup(nil, 0)
    @troop_id = $game_temp.battle_troop_id
    $game_troop.setup(@troop_id)
    #memorize actors in party and cut the party down to 4 actors
    @party_mem = $game_party.actors
    $game_party.actors = $game_party.actors[0..3]
    s1 = $data_system.words.attack
    s2 = $data_system.words.skill
    s3 = $data_system.words.guard
    s4 = $data_system.words.item
    @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
    @actor_command_window.y = 160
    @actor_command_window.back_opacity = 160
    @actor_command_window.active = false
    @actor_command_window.visible = false
    @party_command_window = Window_PartyCommand.new
    @help_window = Window_Help.new
    @help_window.back_opacity = 160
    @help_window.visible = false
    @status_window = Window_BattleStatus.new
    @message_window = Window_Message.new
    @spriteset = Spriteset_Battle.new
    @wait_count = 0
    if $data_system.battle_transition == ""
      Graphics.transition(20)
    else
      Graphics.transition(40, "Graphics/Transitions/" +
      $data_system.battle_transition)
    end
    start_phase1
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    $game_map.refresh
    Graphics.freeze
    @actor_command_window.dispose
    @party_command_window.dispose
    @help_window.dispose
    @status_window.dispose
    @message_window.dispose
    if @skill_window != nil
      @skill_window.dispose
    end
    if @item_window != nil
      @item_window.dispose
    end
    if @result_window != nil
      @result_window.dispose
    end
    @spriteset.dispose
    if $scene.is_a?(Scene_Title)
      Graphics.transition
      Graphics.freeze
    end
    if $BTEST and not $scene.is_a?(Scene_Gameover)
      $scene = nil
    end
  end
  #--------------------------------------------------------------------------
  # ? battle end
  #--------------------------------------------------------------------------
  def battle_end(result)
    $game_temp.in_battle = false
    $game_party.clear_actions
    for actor in $game_party.actors
      actor.remove_states_battle
    end
    $game_troop.enemies.clear
      if $game_temp.battle_proc != nil
      $game_temp.battle_proc.call(result)
      $game_temp.battle_proc = nil
    end
    $game_party.actors = @party_mem
    $scene = Scene_Map.new
  end
end
Revenir en haut Aller en bas
http://saleth.fr
Contenu sponsorisé




[XP] Menu pour plus de 4 héros Empty
MessageSujet: Re: [XP] Menu pour plus de 4 héros   [XP] Menu pour plus de 4 héros Empty

Revenir en haut Aller en bas
 
[XP] Menu pour plus de 4 héros
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Scripts pour menu et pour Game Over
» [Résolu] Code pour définir si le héros est dans l'équipe
» [VX] Musique différente pour le menu
» [Demande]Script pour faire un menu pause simple
» Menu Parchemin 1.0 (Menu Principal personnalisé)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ PARTAGE ~ :: Scripts et plugins :: RPG Maker XP :: Menu-
Sauter vers: