|
| | Menu 6 | |
| | Auteur | Message |
---|
deadcell Trouvère Follet
Nombre de messages : 625 Age : 35 Niveau Rpg Maker : Excellent Niveau Jeux Préférés : Final Fantasy, Resident evil... Date d'inscription : 21/03/2007
| Sujet: Menu 6 Ven 06 Juil 2007, 22:23 | |
| Ce script change le style de votre menu. - Auteur : Xk8 #- Screens : - Installation : Faites un nouveau script au-dessus de Main et nommez-le "New menu" puis ajoutez ce code: - 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.sizeskill = $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 | |
| | | deadcell Trouvère Follet
Nombre de messages : 625 Age : 35 Niveau Rpg Maker : Excellent Niveau Jeux Préférés : Final Fantasy, Resident evil... Date d'inscription : 21/03/2007
| Sujet: Re: Menu 6 Ven 06 Juil 2007, 22:24 | |
| Suite du code : - Code:
-
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 | |
| | | deadcell Trouvère Follet
Nombre de messages : 625 Age : 35 Niveau Rpg Maker : Excellent Niveau Jeux Préférés : Final Fantasy, Resident evil... Date d'inscription : 21/03/2007
| Sujet: Re: Menu 6 Ven 06 Juil 2007, 22:24 | |
| Suite du code : - Code:
-
@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 | |
| | | deadcell Trouvère Follet
Nombre de messages : 625 Age : 35 Niveau Rpg Maker : Excellent Niveau Jeux Préférés : Final Fantasy, Resident evil... Date d'inscription : 21/03/2007
| Sujet: Re: Menu 6 Ven 06 Juil 2007, 22:25 | |
| Suite du code : - Code:
-
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
Manuel d'util Ajoutez ces images dans " Icons" : PS : N'oubliez pas les images transparentes, il y en a 2 !Ajoutez ces images dans " Windowskins" : | |
| | | Don Estebahn Maître du Savoir
Nombre de messages : 2145 Age : 33 Jeux Préférés : Soul Reaver, Morrowind, Way of the Samurai Date d'inscription : 18/02/2007
| Sujet: Re: Menu 6 Dim 08 Juil 2007, 14:55 | |
| Un menu très esthétique et personnalisable ; j'imagine aussi qu'il est parfait pour des Fan-games Pokémon (avec ses icones toutes mignones, peut-être un peu moins pour un projet à l'ambiance sombre par contre ^^ quoique ça peut se changer, ça... ). Bref, merci à toi encore une fois . | |
| | | Invité Invité
| Sujet: Re: Menu 6 Mer 11 Juil 2007, 12:34 | |
| J'ai un leger probleme c que quand je veut ouvrir le menu il me fait : le fichier no such file or directory-Graphic/icon/menu00 n'a pas été trouvé aidez moi svp |
| | | Don Estebahn Maître du Savoir
Nombre de messages : 2145 Age : 33 Jeux Préférés : Soul Reaver, Morrowind, Way of the Samurai Date d'inscription : 18/02/2007
| Sujet: Re: Menu 6 Mer 11 Juil 2007, 13:33 | |
| chaosdu46 > Je suis pas un spécialiste en scripts, mais apparemment, c'est qu'il te manque un icone dans ton menu graphics. Le script en a besoin pour afficher le menu, il le cherche mais ne le trouve pas, du coup le script fait planter le projet. - chaosdu46 a écrit:
- no such file or directory-Graphic/icon/menu00
Là, t'as recopié approximativement le message d'erreur, c'est ça? Jte conseille de vérifier que tu n'as pas oublié d'enregistrer une icone fournie avec le script dans ton dossier Icon (regarde à la fin du dernier message de deadcell ). Si ça marche pas, copie-moi lettre pour lettre le message d'erreur et on avisera. | |
| | | Contenu sponsorisé
| Sujet: Re: Menu 6 | |
| |
| | | | Menu 6 | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |
|