Zarok RPG Maker
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
AccueilDernières imagesS'enregistrerConnexion
Le Deal du moment : -48%
Philips Hue Pack Decouverte 2024 : lightstrip 3M + ...
Voir le deal
119 €

Partagez | 
 

 Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
ferrox
Molécule
Molécule
ferrox


Messages : 74
Loisirs : JEUX VIDEO, DORMIR, FRITES, RPG
Date d'inscription : 24/07/2010

Caractéristiques du membre
Evolution: Atome
Job: Making
XP:
Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. Left_bar_bleue20/20Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. Empty_bar_bleue  (20/20)

Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. Empty
MessageSujet: Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles.   Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. EmptyJeu 29 Juil 2010 - 10:18

Bonjour,
j'ai trouvé ce script sur rpg créative et j'avais envi de le partager. Il est très facile à installer et à supprimer. L'auteur est Xk8.
Lien: http://rpgcreative.net/rpgmaker/scripts-49-menu-2.html
Alors, voici un screnn.
Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. New%20menu_6

Alors maintenant, voici le script.

Code:
#=====================REPLACE SCENE_MENU WITH ALL THIS CODE=====================
#===================================#
#Pokémon-Style Menu by Xk8          #
#===================================#
#The Menustatus are made using Zieg's system.
#make sure you have the icons called menu00.png, menu01.png, menu02.png,
#menu03.png, menu04.png,menu05, menu06, menu07 and menu08.png
#and add windowskins with the names: skin00.png, skin01.png and
#skin02.png.
#also make sure that in the database, skin00.png is the windowskin.
#If used, don't steal, please give credit.
# -Xk8

#IMPORTANT: the icons: [color00 and color08] are fully transparant.
#IMPORTANT2: the icons [color01-07] are NOT transparant

class Window_Command_Menu < Window_Selectable
def initialize(width, commands)
super(0, 0, width, commands.size * 32 + 32)
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, @item_max * 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
self.index = 0
end
 
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
 
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon("menu0" + index.to_s)
self.contents.blt(x + 3, index * 32 +4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(rect, @commands[index])
end
 
def disable_item(index)
draw_item(index, disabled_color)
end
end

class Window_HelpItemSkill < Window_Base
 
def initialize
super(0, 0, 320, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
end
 
def set_text(text, align = 0)
   
if text != @text or align != @align
     
self.contents.clear
self.contents.font.color = normal_color
self.contents.font.size = 18
self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
@text = text
@align = align
@actor = nil
end
self.visible = true
end
 
def set_actor(actor)
if actor != @actor
self.contents.clear
draw_actor_name(actor, 4, 0)
draw_actor_state(actor, 140, 0)
draw_actor_hp(actor, 284, 0)
draw_actor_sp(actor, 460, 0)
@actor = actor
@text = nil
self.visible = true
end
end
 
def set_enemy(enemy)
text = enemy.name
state_text = make_battler_state_text(enemy, 112, false)
if state_text != ""
text += "  " + state_text
end
set_text(text, 1)
end
end

class Window_SkillStatus2 < Window_Base
 
def initialize(actor)
super(0, 64, 320, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = 18
@actor = actor
refresh
end
 
def refresh
self.contents.clear
draw_actor_name(@actor, 4, 0)
draw_actor_state(@actor, 60, 0)
draw_actor_sp(@actor, 130, 0)
end
end

class Window_Item2 < Window_Selectable
 
def initialize
super(0, 64, 320, 416)
@column_max = 1
refresh
self.index = 0
   
if $game_temp.in_battle
self.y = 64
self.height = 256
self.back_opacity = 160
end
end
 
def item
return @data[self.index]
end
 
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
   
for i in 1...$data_items.size
if $game_party.item_number(i) > 0
@data.push($data_items[i])
end
end
   
unless $game_temp.in_battle
for i in 1...$data_weapons.size
if $game_party.weapon_number(i) > 0
@data.push($data_weapons[i])
end
end

for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0
@data.push($data_armors[i])
end
end
end
   
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
for i in 0...@item_max
draw_item(i)
end
end
end
 
def draw_item(index)
item = @data[index]
case item
when RPG::Item
number = $game_party.item_number(item.id)
when RPG::Weapon
number = $game_party.weapon_number(item.id)
when RPG::Armor
number = $game_party.armor_number(item.id)
end
   
if item.is_a?(RPG::Item) and
$game_party.item_can_use?(item.id)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
x = 4 + index % 1 * (288 + 32)
y = index / 1 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
end
 
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
end
end

class Window_Skill2 < Window_Selectable
 
def initialize(actor)
super(0, 128, 320, 352)
@actor = actor
@column_max = 1
refresh
self.index = 0
   
if $game_temp.in_battle
self.y = 64
self.height = 256
self.back_opacity = 160
end
end
 
def skill
return @data[self.index]
end
 
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
for i in 0...@actor.skills.size
skill = $data_skills[@actor.skills[i]]
if skill != nil
@data.push(skill)
end
end
   
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
for i in 0...@item_max
draw_item(i)
end
end
end
 
def draw_item(index)
skill = @data[index]
if @actor.skill_can_use?(skill.id)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
x = 4 + index % 1 * (288 + 32)
y = index / 1 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(skill.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
end
 
def update_help
@help_window.set_text(self.skill == nil ? "" : self.skill.description)
end
end

class Window_Target2 < Window_Selectable
 
def initialize
super(0, 0, 320, 400)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = 18
self.z += 10
@item_max = $game_party.actors.size
refresh
end
 
def refresh
self.contents.clear
for i in 0...$game_party.actors.size
x = 4
y = i *  90
actor = $game_party.actors[i]
draw_actor_face(actor, x, y + 70)
draw_actor_name(actor, x + 40, y)
draw_actor_class(actor, x + 200, y + 32)
draw_actor_level(actor, x + 200, y + 64)
draw_actor_state(actor, x + 100, y)
draw_actor_hp(actor, x + 40, y + 32)
draw_actor_sp(actor, x + 40, y + 64)
end
end

def draw_actor_face(actor, x, y)
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
cw = bitmap.rect.width / 4
ch = bitmap.rect.height / 4
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 23, y - ch, bitmap, src_rect)
end


def update_cursor_rect
   
if @index <= -2
self.cursor_rect.set(0, (@index + 10) * 90, self.width - 32, 96)
elsif @index == -1
self.cursor_rect.set(0, 0, self.width - 32, @item_max * 90 - 20)
else
self.cursor_rect.set(0, @index * 90, self.width - 32, 96)
end
end
end

class Scene_Item2
 
def main
@spriteset = Spriteset_Map.new
@help_window = Window_HelpItemSkill.new
@help_window.back_opacity = 160
@help_window.x = -320
@item_window = Window_Item2.new
@item_window.back_opacity = 160
@item_window.help_window = @help_window
@item_window.x = -320
@target_window = Window_Target2.new
@target_window.visible = false
@target_window.active = false
@target_window.back_opacity = 160
@target_window.y = 480

Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
   
Graphics.freeze
@help_window.dispose
@item_window.dispose
@target_window.dispose
@spriteset.dispose
end
 
def update
@help_window.update
if @help_window.x < 0
@help_window.x +=10
end
@item_window.update
if @item_window.x < 0
@item_window.x +=10
end
@target_window.update
if @target_window.y > 0
@target_window.y -= 15
end 
if @item_window.active
update_item
return
end
   
if @target_window.active
update_target
return
end
end
 
def update_item
   
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(0)
return
end
   
if Input.trigger?(Input::C)
@item = @item_window.item
unless @item.is_a?(RPG::Item)
$game_system.se_play($data_system.buzzer_se)
return
end
     
unless $game_party.item_can_use?(@item.id)
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
if @item.scope >= 3
@item_window.active = false
@target_window.x = 320
@target_window.y = 480
@target_window.visible = true
@target_window.active = true
       
if @item.scope == 4 || @item.scope == 6
@target_window.index = -1
else
@target_window.index = 0
end
else
 
if @item.common_event_id > 0
$game_temp.common_event_id = @item.common_event_id
$game_system.se_play(@item.menu_se)
         
if @item.consumable
$game_party.lose_item(@item.id, 1)
@item_window.draw_item(@item_window.index)
end
         
$scene = Scene_Map.new
return
end
end
return
end
end
 
def update_target
   
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
unless $game_party.item_can_use?(@item.id)
@item_window.refresh
end

@item_window.active = true
@target_window.visible = false
@target_window.active = false
@target_window.y = 480
return
end
   
if Input.trigger?(Input::C)
if $game_party.item_number(@item.id) == 0
$game_system.se_play($data_system.buzzer_se)
return
end
if @target_window.index == -1
used = false
for i in $game_party.actors
          used |= i.item_effect(@item)
end
end
     
if @target_window.index >= 0
target = $game_party.actors[@target_window.index]
used = target.item_effect(@item)
end
   
if used
$game_system.se_play(@item.menu_se)
if @item.consumable
$game_party.lose_item(@item.id, 1)
@item_window.draw_item(@item_window.index)
end
       
@target_window.refresh
if $game_party.all_dead?
$scene = Scene_Gameover.new
return
end
if @item.common_event_id > 0
$game_temp.common_event_id = @item.common_event_id
$scene = Scene_Map.new
return
end
end
   
unless used
$game_system.se_play($data_system.buzzer_se)
end
return
end
end
end

class Scene_Skill2
 
def initialize(actor_index = 0, equip_index = 0)
@actor_index = actor_index
end
 
def main
@spriteset = Spriteset_Map.new

@actor = $game_party.actors[@actor_index]
@help_window = Window_HelpItemSkill.new
@help_window.back_opacity = 160
@help_window.x = -320
@status_window = Window_SkillStatus2.new(@actor)
@status_window.back_opacity = 160
@status_window.x = -320
@skill_window = Window_Skill2.new(@actor)
@skill_window.back_opacity = 160
@skill_window.help_window = @help_window
@skill_window.x = -320
@target_window = Window_Target2.new
@target_window.visible = false
@target_window.active = false
@target_window.back_opacity = 160
@target_window.y = 480
   
Graphics.transition
   
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
   
Graphics.freeze
@help_window.dispose
@status_window.dispose
@skill_window.dispose
@target_window.dispose
@spriteset.dispose
end
 
def update
@help_window.update
if @help_window.x < 0
@help_window.x += 10
end
@status_window.update
if @status_window.x < 0
@status_window.x += 10
end
@skill_window.update
if @skill_window.x < 0
@skill_window.x += 10
end
@target_window.update
if @target_window.y > 0
@target_window.y -= 15
end
if @skill_window.active
update_skill
return
end
   
if @target_window.active
update_target
return
end
end
 
def update_skill
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(1)
return
end
 
if Input.trigger?(Input::C)
@skill = @skill_window.skill
if @skill == nil or not @actor.skill_can_use?(@skill.id)
$game_system.se_play($data_system.buzzer_se)
return
end
 
$game_system.se_play($data_system.decision_se)
if @skill.scope >= 3
@skill_window.active = false
@target_window.x = 320
@target_window.y = 480
@target_window.visible = true
@target_window.active = true
     
if @skill.scope == 4 || @skill.scope == 6
@target_window.index = -1
elsif @skill.scope == 7
@target_window.index = @actor_index - 10
else
@target_window.index = 0
end
else
if @skill.common_event_id > 0
$game_temp.common_event_id = @skill.common_event_id
$game_system.se_play(@skill.menu_se)
@actor.sp -= @skill.sp_cost
@status_window.refresh
@skill_window.refresh
@target_window.refresh
$scene = Scene_Map.new
return
end
end
return
end
   
if Input.trigger?(Input::R)
$game_system.se_play($data_system.cursor_se)
@actor_index += 1
@actor_index %= $game_party.actors.size
$scene = Scene_Skill.new(@actor_index)
return
end
   
if Input.trigger?(Input::L)
$game_system.se_play($data_system.cursor_se)
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
$scene = Scene_Skill.new(@actor_index)
return
end
end
 
def update_target
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@skill_window.active = true
@target_window.visible = false
@target_window.active = false
if @skill_window.active = true
@target_window.y = 480
end
return
end
 
if Input.trigger?(Input::C)
unless @actor.skill_can_use?(@skill.id)
$game_system.se_play($data_system.buzzer_se)
return
end
     
if @target_window.index == -1
used = false
for i in $game_party.actors
used |= i.skill_effect(@actor, @skill)
end
end
     
if @target_window.index <= -2
target = $game_party.actors[@target_window.index + 10]
used = target.skill_effect(@actor, @skill)
end
     
if @target_window.index >= 0
target = $game_party.actors[@target_window.index]
used = target.skill_effect(@actor, @skill)
end
   
if used
$game_system.se_play(@skill.menu_se)
@actor.sp -= @skill.sp_cost
@status_window.refresh
@skill_window.refresh
@target_window.refresh
       
if $game_party.all_dead?
$scene = Scene_Gameover.new
return
end
       
if @skill.common_event_id > 0
$game_temp.common_event_id = @skill.common_event_id
$scene = Scene_Map.new
return
end
end
   
unless used
$game_system.se_play($data_system.buzzer_se)
end
return
end
end
end

class Window_EquipLeft2 < Window_Base
 
def initialize(actor)
super(0, 64, 272, 416)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
@actor = actor
refresh
end
 
def refresh
self.contents.clear
draw_actor_graphic(@actor, 20, 58)
draw_actor_face(@actor, 136, 360)
draw_actor_name(@actor, 52, 0)
draw_actor_level(@actor, 52, 32)
draw_actor_parameter(@actor, 4, 64, 0)
draw_actor_parameter(@actor, 4, 96, 1)
draw_actor_parameter(@actor, 4, 128, 2)
if @new_atk != nil
self.contents.font.name = "Arial"
self.contents.font.color = system_color
self.contents.draw_text(160, 64, 40, 32, "»", 1)
self.contents.font.color = normal_color
self.contents.draw_text(200, 64, 36, 32, @new_atk.to_s, 2)
end

if @new_pdef != nil
self.contents.font.color = system_color
self.contents.draw_text(160, 96, 40, 32, "»", 1)
self.contents.font.color = normal_color
self.contents.draw_text(200, 96, 36, 32, @new_pdef.to_s, 2)
end
if @new_mdef != nil
self.contents.font.color = system_color
self.contents.draw_text(160, 128, 40, 32, "»", 1)
self.contents.font.color = normal_color
self.contents.draw_text(200, 128, 36, 32, @new_mdef.to_s, 2)
end
end
 
def set_new_parameters(new_atk, new_pdef, new_mdef)
self.contents.font.name = $fontface
if @new_atk != new_atk or @new_pdef != new_pdef or @new_mdef != new_mdef
@new_atk = new_atk
@new_pdef = new_pdef
@new_mdef = new_mdef
refresh
end
end

def draw_actor_face(actor, x, y)
face = RPG::Cache.battler(actor.character_name, actor.character_hue)
fw = face.width
fh = face.height
src_rect = Rect.new(3, -1, fw, fh)
self.contents.blt(x - fw / 23, y - fh, face, src_rect)
end 
end

class Window_EquipRight2 < Window_Selectable
 
def initialize(actor)
super(272, 64, 368, 192)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
@actor = actor
refresh
   
self.index = 0
end
 
def item
return @data[self.index]
end
 
def refresh
self.contents.clear
@data = []
@data.push($data_weapons[@actor.weapon_id])
@data.push($data_armors[@actor.armor1_id])
@data.push($data_armors[@actor.armor2_id])
@data.push($data_armors[@actor.armor3_id])
@data.push($data_armors[@actor.armor4_id])
@item_max = @data.size
self.contents.font.color = system_color
self.contents.draw_text(4, 32 * 0, 92, 32, $data_system.words.weapon)
self.contents.draw_text(4, 32 * 1, 92, 32, $data_system.words.armor1)
self.contents.draw_text(4, 32 * 2, 92, 32, $data_system.words.armor2)
self.contents.draw_text(4, 32 * 3, 92, 32, $data_system.words.armor3)
self.contents.draw_text(5, 32 * 4, 92, 32, $data_system.words.armor4)
draw_item_name(@data[0], 92, 32 * 0)
draw_item_name(@data[1], 92, 32 * 1)
draw_item_name(@data[2], 92, 32 * 2)
draw_item_name(@data[3], 92, 32 * 3)
draw_item_name(@data[4], 92, 32 * 4)
end
 
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
end
end

class Window_EquipItem2 < Window_Selectable
 
def initialize(actor, equip_type)
super(272, 256, 368, 224)
@actor = actor
@equip_type = equip_type
@column_max = 1
refresh
self.active = false
self.index = -1
end
 
def item
return @data[self.index]
end
 
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
   
if @equip_type == 0
weapon_set = $data_classes[@actor.class_id].weapon_set
for i in 1...$data_weapons.size
if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)
@data.push($data_weapons[i])
end
end
end
   
if @equip_type != 0
armor_set = $data_classes[@actor.class_id].armor_set
for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0 and armor_set.include?(i)
if $data_armors[i].kind == @equip_type-1
@data.push($data_armors[i])
end
end
end
end
   
@data.push(nil)
   
@item_max = @data.size
self.contents = Bitmap.new(width - 32, row_max * 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
for i in 0...@item_max-1
draw_item(i)
end
end
 
def draw_item(index)
item = @data[index]
x = 4 + index % 2 * (288 + 32)
y = index / 2 * 32
case item
when RPG::Weapon
number = $game_party.weapon_number(item.id)
when RPG::Armor
number = $game_party.armor_number(item.id)
end
bitmap = RPG::Cache.icon(item.icon_name)
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
self.contents.font.color = normal_color
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
end
 
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
end
end

class Scene_Equip2
 
def initialize(actor_index = 0, equip_index = 0)
@actor_index = actor_index
@equip_index = equip_index
end
 
def main
@spriteset = Spriteset_Map.new
@actor = $game_party.actors[@actor_index]
@help_window = Window_Help.new
@help_window.back_opacity = 160
@help_window.y = -100
@left_window = Window_EquipLeft2.new(@actor)
@left_window.back_opacity = 160
@left_window.x = -280
@right_window = Window_EquipRight2.new(@actor)
@right_window.back_opacity = 160
@right_window.x = 642
@item_window1 = Window_EquipItem2.new(@actor, 0)
@item_window1.back_opacity = 160
@item_window1.y = 486
@item_window2 = Window_EquipItem2.new(@actor, 1)
@item_window2.back_opacity = 160
@item_window2.y = 486
@item_window3 = Window_EquipItem2.new(@actor, 2)
@item_window3.back_opacity = 160
@item_window3.y = 486
@item_window4 = Window_EquipItem2.new(@actor, 3)
@item_window4.back_opacity = 160
@item_window4.y = 486
@item_window5 = Window_EquipItem2.new(@actor, 4)
@item_window5.back_opacity = 160
@item_window5.y = 486
@right_window.help_window = @help_window
@item_window1.help_window = @help_window
@item_window2.help_window = @help_window
@item_window3.help_window = @help_window
@item_window4.help_window = @help_window
@item_window5.help_window = @help_window
@right_window.index = @equip_index
   
refresh
Graphics.transition
loop do
Graphics.update
Input.update
     
update
if $scene != self
break
end
end
   
Graphics.freeze
@help_window.dispose
@left_window.dispose
@right_window.dispose
@item_window1.dispose
@item_window2.dispose
@item_window3.dispose
@item_window4.dispose
@item_window5.dispose
@spriteset.dispose
end
 
def refresh
@item_window1.visible = (@right_window.index == 0)
@item_window2.visible = (@right_window.index == 1)
@item_window3.visible = (@right_window.index == 2)
@item_window4.visible = (@right_window.index == 3)
@item_window5.visible = (@right_window.index == 4)
   
item1 = @right_window.item
   
case @right_window.index
when 0
@item_window = @item_window1
when 1
@item_window = @item_window2
when 2
@item_window = @item_window3
when 3
@item_window = @item_window4
when 4
@item_window = @item_window5
end
   
if @right_window.active
     
@left_window.set_new_parameters(nil, nil, nil)
end
 
if @item_window.active
item2 = @item_window.item
last_hp = @actor.hp
last_sp = @actor.sp
@actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
new_atk = @actor.atk
new_pdef = @actor.pdef
new_mdef = @actor.mdef
@actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
@actor.hp = last_hp
@actor.sp = last_sp
@left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
end
end
 
def update
if @help_window.y < 0
@help_window.y += 10
end
@left_window.update
if @left_window.x < 0
@left_window.x += 10
end
@right_window.update
if @right_window.x > 272
@right_window.x -= 10
end
@item_window.update
if @item_window1.y > 256
@item_window1.y -= 10
end
if @item_window2.y > 256
@item_window2.y -= 10
end
if @item_window3.y > 256
@item_window3.y -= 10
end
if @item_window4.y > 256
@item_window4.y -= 10
end
if @item_window5.y > 256
@item_window5.y -= 10
end
refresh
   
if @right_window.active
update_right
return
end
   
if @item_window.active
update_item
return
end
end
 
def update_right
   
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(2)
return
end

if Input.trigger?(Input::C)
if @actor.equip_fix?(@right_window.index)
$game_system.se_play($data_system.buzzer_se)
return
end
     
$game_system.se_play($data_system.decision_se)
@right_window.active = false
@item_window.active = true
@item_window.index = 0
return
end
 
if Input.trigger?(Input::R)
$game_system.se_play($data_system.cursor_se)
@actor_index += 1
@actor_index %= $game_party.actors.size
$scene = Scene_Equip.new(@actor_index, @right_window.index)
return
end

if Input.trigger?(Input::L)
$game_system.se_play($data_system.cursor_se)
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
$scene = Scene_Equip.new(@actor_index, @right_window.index)
return
end
end
 
def update_item
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@right_window.active = true
@item_window.active = false
@item_window.index = -1
return
end
   
if Input.trigger?(Input::C)
$game_system.se_play($data_system.equip_se)
item = @item_window.item
@actor.equip(@right_window.index, item == nil ? 0 : item.id)
@right_window.active = true
@item_window.active = false
@item_window.index = -1
@right_window.refresh
@item_window.refresh
return
end
end
end

class Window_Status2 < Window_Base
 
def initialize(actor)
super(0, 0, 430, 370)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
@actor = actor
refresh
end
 
def refresh
self.contents.clear
draw_actor_graphic(@actor, 20, 45)
draw_actor_face(@actor, 270, 250)
draw_actor_name(@actor, 4 + 40, 10)
draw_actor_class(@actor, 4 + 160 + 40, 10)
draw_actor_level(@actor, 96 + 40, 10)
draw_actor_state(@actor, 244+ 40, 10)
self.contents.font.size = 18
draw_actor_hp(@actor, 0, 100, 172)
draw_actor_sp(@actor, 0, 116, 172)
draw_actor_parameter(@actor, 0, 160, 0)
draw_actor_parameter(@actor, 0, 224 - 32, 1)
draw_actor_parameter(@actor, 0, 256 - 32, 2)
draw_actor_parameter(@actor, 0, 304 - 32, 3)
draw_actor_parameter(@actor, 0, 336 - 32, 4)
draw_actor_parameter(@actor, 0 + 200, 304 - 32, 5)
draw_actor_parameter(@actor, 0 + 200, 336 - 32, 6)
   
self.contents.font.color = system_color
self.contents.draw_text(0, 48, 80, 32, "EXP")
self.contents.draw_text(0, 64, 80, 32, "NEXT")
self.contents.font.color = normal_color
self.contents.draw_text(0 + 80, 48, 84, 32, @actor.exp_s, 2)
self.contents.draw_text(0 + 80, 64, 84, 32, @actor.next_rest_exp_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(200, 48, 96, 32, "Equipment")
draw_item_name($data_weapons[@actor.weapon_id], 200 + 4, 80)
draw_item_name($data_armors[@actor.armor1_id], 200 + 4, 128)
draw_item_name($data_armors[@actor.armor2_id], 200 + 4, 304 - 128)
draw_item_name($data_armors[@actor.armor3_id], 200 + 4, 352 - 128)
draw_item_name($data_armors[@actor.armor4_id], 200 + 4, 400 - 128)
end

def draw_actor_face(actor, x, y)
face = RPG::Cache.battler(actor.character_name, actor.character_hue)
fw = face.width
fh = face.height
src_rect = Rect.new(3, -1, fw, fh)
opacity = 120
self.contents.blt(x - fw / 23, y - fh, face, src_rect, opacity)
end 
end

class Scene_Status2
def initialize(actor_index = 0, equip_index = 0)
@actor_index = actor_index
end
 
def main
@spriteset = Spriteset_Map.new
@actor = $game_party.actors[@actor_index]
@status_window = Window_Status2.new(@actor)
@status_window.back_opacity = 160
@status_window.x = -430
Graphics.transition
loop do
Graphics.update
Input.update
update
   
if $scene != self
break
end
end
   
Graphics.freeze
@status_window.dispose
@spriteset.dispose
end
 
def update
if @status_window.x < 0
@status_window.x +=10
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(3)
return
end
   
if Input.trigger?(Input::R)
$game_system.se_play($data_system.cursor_se)
@actor_index += 1
@actor_index %= $game_party.actors.size
$scene = Scene_Status.new(@actor_index)
return
end
   
if Input.trigger?(Input::L)
$game_system.se_play($data_system.cursor_se)
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
$scene = Scene_Status.new(@actor_index)
return
end
end
end

class Scene_End2
 
def main
@spriteset = Spriteset_Map.new
s1 = "Ecran titre"
s2 = "Quitter"
s3 = "Annuler"
@command_window2 = Window_Command.new(192, [s1, s2, s3])
@command_window2.x = -192
@command_window2.y = 240 - @command_window2.height / 2
@command_window2.back_opacity = 160
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window2.dispose
@spriteset.dispose
if $scene.is_a?(Scene_Title)
Graphics.transition
Graphics.freeze
end
end
 
def update
@command_window2.update

if@command_window2.x < 320 - @command_window2.width / 2
@command_window2.x += 10
end

if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(8)
return
end
if Input.trigger?(Input::C)
case @command_window2.index
when 0 
$game_system.se_play($data_system.decision_se)
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
$scene = Scene_Title.new
when 1 
$game_system.se_play($data_system.decision_se)
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
$scene = nil
when 2 
$game_system.se_play($data_system.decision_se)
$scene = Scene_Menu.new(8)
end
return
end
end
end

class Window_SelectableOp < Window_Base
 
attr_reader  :index                   
attr_reader  :help_window             
 
def initialize(x, y, width, height)
super(x, y, width, height)
@item_max = 1
@column_max = 1
@index = -1
end
 
def index=(index)
@index = index
if self.active and @help_window != nil
update_help
end
update_cursor_rect
end
 
def row_max
return (@item_max + @column_max - 1) / @column_max
end
 
def top_row
return self.oy / 32
end
 
def top_row=(row)
if row < 0
row = 0
end
   
if row > row_max - 1
row = row_max - 1
end
self.oy = row * 32
end
 
def page_row_max
return (self.height - 32) / 32
end
 
def page_item_max
return page_row_max * @column_max
end
 
def help_window=(help_window)
@help_window = help_window
if self.active and @help_window != nil
update_help
end
end
 
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
cursor_width = self.width / @column_max - 32
x = @index % @column_max * (cursor_width + 32)
y = @index / @column_max * 32 - self.oy
self.cursor_rect.set(x, y, cursor_width, 32)
end
 
def update
super
if self.active and @item_max > 0 and @index >= 0
   
if Input.repeat?(Input::DOWN)
if index == 8
$game_system.se_play($data_system.cursor_se)
@index -= 8
end
if @column_max >= 1 and @index < @item_max - 1
$game_system.se_play($data_system.cursor_se)
@index += 1
elsif @column_max >= 1 and @index >= 0
$game_system.se_play($data_system.cursor_se)
@index -= 7
end
end
     
if Input.repeat?(Input::UP)
if index == 1
$game_system.se_play($data_system.cursor_se)
@index += 8
end
if @column_max >= 1 and @index > 0
$game_system.se_play($data_system.cursor_se)
@index -= 1
end
end
     
if Input.repeat?(Input::RIGHT)
if @column_max >= 2 and @index < @item_max - 1
$game_system.se_play($data_system.cursor_se)
@index += 1
end
end
     
if Input.repeat?(Input::LEFT)
if @column_max >= 2 and @index > 0
$game_system.se_play($data_system.cursor_se)
@index -= 1
end
end
     
if Input.repeat?(Input::R)
if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
$game_system.se_play($data_system.cursor_se)
@index = [@index + self.page_item_max, @item_max - 1].min
self.top_row += self.page_row_max
end
end
     
if Input.repeat?(Input::L)
if self.top_row > 0
$game_system.se_play($data_system.cursor_se)
@index = [@index - self.page_item_max, 0].max
self.top_row -= self.page_row_max
end
end
end
if self.active and @help_window != nil
update_help
end
update_cursor_rect
end
end

class Window_CommandOp < Window_SelectableOp
 
def initialize(width, commands)
super(0, 0, width, commands.size * 32 + 32)
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, @item_max * 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
self.index = 0
end
 
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
 
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon("color0" + index.to_s)
self.contents.blt(x + 3, index * 32 +4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(rect, @commands[index])
self.contents.font.name = "Arial"
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 120, 32, "Interface")
self.contents.draw_text(0, 0, 120, 544, "Return")
end
 
def disable_item(index)
draw_item(index, disabled_color)
end
end

class Scene_WindowOp
 
def main
@spriteset = Spriteset_Map.new
s1 = ""
s2 = "    Vert"
s3 = "    Bleu"
s4 = "    Rouge"
s5 = "    Noir"
s6 = "    Jaune"
s7 = "    Vilolet"
s8 = "    Bleu marine"
s9 = ""
@command_window2 = Window_CommandOp.new(192, [s1, s2, s3, s4, s5, s6, s7, s8, s9])
@command_window2.x = 640
@command_window2.y = 240 - @command_window2.height / 2
@command_window2.index = 1
@command_window2.back_opacity = 160

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

Graphics.freeze
@command_window2.dispose
@spriteset.dispose
if $scene.is_a?(Scene_Title)
Graphics.transition
Graphics.freeze
end
end
 
def update
@command_window2.update
if @command_window2.x > 320 - @command_window2.width / 2
@command_window2.x -=15
end

if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(7)
return
end
if Input.trigger?(Input::C)
case @command_window2.index
when 0 
when 1 
$game_system.se_play($data_system.decision_se)
$game_system.windowskin_name = "skin00"
$scene = Scene_Menu.new(7)
when 2
$game_system.se_play($data_system.decision_se)
$game_system.windowskin_name = "skin01"
$scene = Scene_Menu.new(7)
when 3
$game_system.se_play($data_system.decision_se)
$game_system.windowskin_name = "skin02"
$scene = Scene_Menu.new(7)
when 4
$game_system.se_play($data_system.decision_se)
$game_system.windowskin_name = "skin03"
$scene = Scene_Menu.new(7)
when 5
$game_system.se_play($data_system.decision_se)
$game_system.windowskin_name = "skin04"
$scene = Scene_Menu.new(7)
when 6
$game_system.se_play($data_system.decision_se)
$game_system.windowskin_name = "skin05"
$scene = Scene_Menu.new(7)
when 7
$game_system.se_play($data_system.decision_se)
$game_system.windowskin_name = "skin06"
$scene = Scene_Menu.new(7)
when 8 
$game_system.se_play($data_system.decision_se)
$scene = Scene_Menu.new(7) 
end
return
end
end
end



class Window_NewMenuStatus < Window_Selectable

def initialize
super(204, 64, 160, 240)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
self.active = false
self.index = -1
end

def refresh
self.contents.clear
self.contents.font.name = $fontface
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 80
y = 50 * i
actor = $game_party.actors[i]
draw_actor_face(actor, x - 72, y + 47)
draw_actor_name(actor, x - 20, y + 6)
end
end

def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 50, self.width - 34, 48)
end
end

def draw_actor_face(actor, x, y)
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
cw = bitmap.rect.width / 4
ch = bitmap.rect.height / 4
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 23, y - ch, bitmap, src_rect)
end
end

class Scene_Menu

def initialize(menu_index = 0)
@menu_index = menu_index
end
 
def main
@spriteset = Spriteset_Map.new
s1 = "    Objet"   
s2 = "    Compétence" 
s3 = "    Equipement"
s4 = "    Statut"
s5 = "    Sauvegarder"
s6 = "    Argent"
s7 = "    Temps"
s8 = "    Fenêtre"
s9 = "    Quitter"
@command_window = Window_Command_Menu.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9]) #this
@command_window.index = @menu_index
@command_window.x = -160
@command_window.back_opacity = 160
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)
end
if $game_system.save_disabled
@command_window.disable_item(4)
end

@playtime_window = Window_PlayTime.new
@playtime_window.x = -200
@playtime_window.y = 208
@playtime_window.back_opacity = 160
@playtime_window.visible = false
   

@gold_window = Window_Gold.new
@gold_window.x = -200
@gold_window.y = 176
@gold_window.back_opacity = 160
@gold_window.visible = false

@status_window = Window_NewMenuStatus.new
@status_window.x = -200
@status_window.y = 0
@status_window.back_opacity = 160
@status_window.visible = false
   
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@playtime_window.dispose
@gold_window.dispose
@status_window.dispose
@spriteset.dispose
end
 
def update
@command_window.update
@playtime_window.update
@gold_window.update
@status_window.update

if @command_window.x < 0
@command_window.x += 5
end

if @playtime_window.visible
if @playtime_window.x < 160
@playtime_window.x += 10
end
end

if @command_window.active
update_command
return
end
   
if @status_window.active
if @status_window.x < 160
@status_window.x += 10
end
update_status
return
end
if @gold_window.active
if @gold_window.x < 160
@gold_window.x += 10
end
update_status
return
end
if @playtime_window.active
update_status
return
end
end
 
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
$game_system.se_play($data_system.decision_se)
$scene = Scene_Item2.new
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.visible = true
@status_window.active = true
@status_window.index = 0
@status_window.x = -200
@status_window.y = 48
when 2
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.visible = true
@status_window.active = true
@status_window.index = 0
@status_window.x = -200
@status_window.y = 80
when 3
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.visible = true
@status_window.active = true
@status_window.index = 0
@status_window.x = -200
@status_window.y = 112
when 4 
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
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@gold_window.visible = true
when 6
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@playtime_window.visible = true
when 7
$game_system.se_play($data_system.decision_se)
$scene = Scene_WindowOp.new
when 8 
$game_system.se_play($data_system.decision_se)
$scene = Scene_End2.new
end
return
end
end
 
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@gold_window.visible = false
@playtime_window.visible = false
@status_window.active = false
@status_window.visible = false
@status_window.index = -1
@status_window.x = -200
@gold_window.x = -200
@playtime_window.x = -200
return
end
if Input.trigger?(Input::C)

case @command_window.index
when 1 
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_Skill2.new(@status_window.index)
when 2 
$game_system.se_play($data_system.decision_se)
$scene = Scene_Equip2.new(@status_window.index)
when 3 
$game_system.se_play($data_system.decision_se)
$scene = Scene_Status2.new(@status_window.index)
end
return
end
end
end

Ensuite, veuillez télécharger la démo et copier les ressources dans votre projet.
http://rpgcreative.net/rpgmaker/script/demo/Ressources_Menu6.zip

Voilà c'est terminé, j'éspère que ce script vous aura aidé,
ferrox[url][/url]
Revenir en haut Aller en bas
Skaaz
Embryon
Embryon
Skaaz


Masculin Messages : 638
Age : 28
Loisirs : Making, graphisme
Date d'inscription : 07/11/2010

Caractéristiques du membre
Evolution: Atome
Job: Graphisme
XP:
Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. Left_bar_bleue20/20Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. Empty_bar_bleue  (20/20)

Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. Empty
MessageSujet: Re: Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles.   Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. EmptyLun 14 Fév 2011 - 17:53

Merci pour le menu Pokemon, et tu pourrait dire aussi que on peu déplacer le menu.

Shika
Revenir en haut Aller en bas
Redlagoon
Redlagoon


Masculin Messages : 1430
Age : 32
Loisirs : Ordi-Théâtre-Guitare
Date d'inscription : 31/12/2009

Caractéristiques du membre
Evolution: Atome
Job: psychologue de Zarok ^^
XP:
Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. Left_bar_bleue20/20Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. Empty_bar_bleue  (20/20)

Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. Empty
MessageSujet: Re: Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles.   Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. EmptyLun 14 Fév 2011 - 18:13

Merci de ce brillant Nécropost Shika.

Comme tu peux le voir, même si le nécro est très controversé, il n'en reste pas moins sanctionné quand effectif.
Je t'ai déjà repris plusieurs fois pour la taille de ta signature, et tu as compris.

J'aimerais à l'avenir, ne plus te reprendre sur le nécropost.

Merci de ta bienveillante coopération Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. 518134
Revenir en haut Aller en bas
Contenu sponsorisé



Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. Empty
MessageSujet: Re: Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles.   Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles. Empty

Revenir en haut Aller en bas
 

Un menu très beau et très utile, idéal pour ceux qui veulent des menus faciles.

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

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Zarok RPG Maker :: 

 :: SCRIPTS :: Script XP :: Scripts d'interfaces/ menus
-
Sauter vers: