Posted September 3, 2006 · Report post Una cosa, tngo el ff7 menu pero como lo hago para que haya tambien la ventanilla de limite y de materia, si alguien me lo postea con ya todo hecho mejor k a mi el scripteado no se me da muy bienffvii menu [SPOILER]CODE#*********************************************************#Final Fantasy VII menu setup by AcedentProne#*********************************************************#To use:#If you do not want Faces, go to line 94#and change delete the # of draw_actor_graphic#and put a # infront of draw_actor_face##Create a new folder in the Characters folder, and call it Faces#Adding faces: add a 80x80 picture with the same name as the characterset it#corrosponds with in the Faces folder#========================================#■ Window_Base#--------------------------------------------------------------------------------# Setting functions for the "Base"#========================================class Window_Base < Windowdef draw_actor_face(actor, x, y)face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)fw = face.widthfh = face.heightsrc_rect = Rect.new(0, 0, fw, fh)self.contents.blt(x - fw / 23, y - fh, face, src_rect)endenddef draw_actor_battler_graphic(actor, x, y)bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)cw = bitmap.widthch = bitmap.heightsrc_rect = Rect.new(0, 0, cw, ch)self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)end#========================================#■ Game_Map#--------------------------------------------------------------------------------# Setting functions for the Map#========================================class Game_Mapdef name$map_infos[@map_id]endend#========================================#■ Window_Title#--------------------------------------------------------------------------------# Setting functions for the Title#========================================class Scene_Title$map_infos = load_data("Data/MapInfos.rxdata")for key in $map_infos.keys$map_infos[key] = $map_infos[key].nameendend#==============================================================================# ■ Window_MenuStatus#------------------------------------------------------------------------------# Sets up the Choosing.#==============================================================================class Window_MenuStatus < Window_Selectable#--------------------------------------------------------------------------# Set up#--------------------------------------------------------------------------def initializesuper(0, 0, 560, 454)self.contents = Bitmap.new(width - 32, height - 32)self.contents.font.name = $fontfaceself.contents.font.size = $fontsizerefreshself.active = falseself.index = -1end#--------------------------------------------------------------------------# Drawing Info on Screen#--------------------------------------------------------------------------def refreshself.contents.clear@item_max = $game_party.actors.sizefor i in 0...$game_party.actors.sizex = 94y = i * 110actor = $game_party.actors[i]#draw_actor_face(actor, 12, y + 90) #To get rid of the Face, put a "#" before the draw_ of this linedraw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this linedraw_actor_name(actor, x, y)draw_actor_class(actor, x + 72, y)draw_actor_level(actor, x, y + 18)draw_actor_state(actor, x + 168, y)draw_actor_exp(actor, x+ 144, y + 38)draw_actor_hp(actor, x, y + 38)draw_actor_sp(actor, x, y + 58)endend#--------------------------------------------------------------------------# Update of Cursor#--------------------------------------------------------------------------def update_cursor_rectif @index < 0self.cursor_rect.emptyelseself.cursor_rect.set(0, @index * 110, self.width - 32, 96)endendend#=======================================## ■Window_GameStats ## written by AcedentProne ##------------------------------------------------------------------------------#class Window_GameStats < Window_Basedef initializesuper(0, 0, 160, 60)self.contents = Bitmap.new(width - 32, height - 32)self.contents.font.name = $fontfaceself.contents.font.size = $fontsizerefreshenddef refreshself.contents.clear#Drawing gold into separate commas by Dubealexcase $game_party.goldwhen 0..9999gold = $game_party.goldwhen 10000..99999gold = $game_party.gold.to_sarray = gold.split(//)gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_swhen 100000..999999gold = $game_party.gold.to_sarray = gold.split(//)gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_swhen 1000000..9999999gold = $game_party.gold.to_sarray = gold.split(//)gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_send#Draw Goldself.contents.font.color = system_colorgold_word = $data_system.words.gold.to_scx = contents.text_size(gold_word).widthcx2=contents.text_size(gold.to_s).widthself.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)self.contents.font.color = normal_colorself.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)self.contents.font.color = system_color# Draw "Time"@total_sec = Graphics.frame_count / Graphics.frame_ratehour = @total_sec / 60 / 60min = @total_sec / 60 % 60sec = @total_sec % 60text = sprintf("%02d:%02d:%02d", hour, min, sec)self.contents.font.color = normal_colorself.contents.draw_text(4, -10, 120, 32, text, 2)self.contents.font.color = system_colorself.contents.draw_text(4, -10, 120, 32, "Tiempo")end#--------------------------------------------------------------------------# Update of The count#--------------------------------------------------------------------------def updatesuperif Graphics.frame_count / Graphics.frame_rate != @total_secrefreshendendend#==============================================================================# ■ Window_Mapname#------------------------------------------------------------------------------# Draws the Map name#==============================================================================class Window_Mapname < Window_Base#--------------------------------------------------------------------------# Set up#--------------------------------------------------------------------------def initializesuper(0, 0, 320, 44)self.contents = Bitmap.new(width - 52, height - 32)self.contents.font.name = $fontfaceself.contents.font.size = $fontsizerefreshend#-------------------------------------------------------## Draws info on screen#-------------------------------------------------------#def refreshself.contents.clear# Map Name#map = $game_map.nameself.contents.font.color = system_colorself.contents.draw_text(4, -10, 220, 32, "Localización")self.contents.font.color = normal_colorself.contents.draw_text(120, -10, 310, 32, $game_map.name)endend#==============================================================================# ■ Scene_Menu#------------------------------------------------------------------------------# FF7 menu layout as requested by AcedentProne.#==============================================================================class Scene_Menu#--------------------------- edit-------------------------------attr_reader :status_window#/--------------------------- edit-------------------------------def initialize(menu_index = 0)@menu_index = menu_indexenddef mains1 = $data_system.words.items2 = $data_system.words.skills3 = $data_system.words.equips4 = "Estado"s5 = "Guardar"s7 = "Salir"#--------------------------- edit-------------------------------# Command menu@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s7])@command_window.x = 640 - @command_window.width@command_window.y = 480@command_window.z = 110@command_window.index = @menu_index#If certain options are avaliableif $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)endif $game_system.save_disabled@command_window.disable_item(4)end#Showing location window@map = Window_Mapname.new@map.x = 640 - @map.width@map.y = 0 - @map.height - 1@map.z = 110#Showing the game stats@game_stats_window = Window_GameStats.new@game_stats_window.x = 0 - @game_stats_window.width@game_stats_window.y = 480 - @map.height - @game_stats_window.height@game_stats_window.z =110#Showing the Menu Status window@status_window = Window_MenuStatus.new@status_window.x = 640@status_window.y = 8@status_window.z = 100Graphics.transitionloop doGraphics.updateInput.updateupdateif $scene != selfbreakendendGraphics.freeze@command_window.dispose@game_stats_window.dispose@status_window.dispose@map.disposeend#--------------------------------------------------------------------------#Defining the delay#--------------------------------------------------------------------------def delay(seconds)for i in 0...(seconds * 1)sleep 0.01Graphics.updateendend#--------------------------------------------------------------------------# Updating#--------------------------------------------------------------------------def update@command_window.update@game_stats_window.update@status_window.update@map.update#Moving Windows inplacegamepos = 640 - @game_stats_window.widthmappos = 480 - @map.height - 1if @command_window.y > 0@command_window.y -= 60endif @game_stats_window.x < gamepos@game_stats_window.x += 80endif @map.y < mappos@map.y += 80endif @status_window.x > 0@status_window.x -= 80end#Saying if options are activeif @command_window.activeupdate_commandreturnendif @status_window.activeupdate_statusreturnendend#--------------------------------------------------------------------------# Updating the Command Selection#--------------------------------------------------------------------------def update_command# If B button is pushedif Input.trigger?(Input::B)# Plays assigned SE$game_system.se_play($data_system.cancel_se)#Looping for moving windows outloop doif @command_window.y < 480@command_window.y += 40endif @game_stats_window.x > 0 - @game_stats_window.width@game_stats_window.x -= 40endif @map.y > 0 - @map.height@map.y -= 40endif @status_window.x < 640@status_window.x += 40enddelay(0.5)if @status_window.x >= 640breakendend# Go to Map$scene = Scene_Map.newreturnend# If C button is pusedif Input.trigger?(Input::C)# Checks actor sizeif $game_party.actors.size == 0 and @command_window.index < 4# plays SE$game_system.se_play($data_system.buzzer_se)returnendcase @command_window.indexwhen 0$game_system.se_play($data_system.decision_se)loop doif @command_window.y < 480@command_window.y += 40endif @game_stats_window.x > 0 - @game_stats_window.width@game_stats_window.x -= 40endif @map.y > 0 - @map.height@map.y -= 40endif @status_window.x < 640@status_window.x += 40enddelay(0.5)if @status_window.x >= 640breakendend$scene = Scene_Item.newwhen 1$game_system.se_play($data_system.decision_se)@command_window.active = false@status_window.active = true@status_window.index = 0when 2$game_system.se_play($data_system.decision_se)@command_window.active = false@status_window.active = true@status_window.index = 0when 3$game_system.se_play($data_system.decision_se)@command_window.active = false@status_window.active = true@status_window.index = 0when 4if $game_system.save_disabled$game_system.se_play($data_system.buzzer_se)returnend$game_system.se_play($data_system.decision_se)loop doif @command_window.y < 480@command_window.y += 40endif @game_stats_window.x > 0 - @game_stats_window.width@game_stats_window.x -= 40endif @map.y > 0 - @map.height@map.y -= 40endif @status_window.x < 640@status_window.x += 40enddelay(0.5)if @status_window.x >= 640breakendend$scene = Scene_Save.newwhen 5$game_system.se_play($data_system.decision_se)loop doif @command_window.y < 480@command_window.y += 40endif @game_stats_window.x > 0 - @game_stats_window.width@game_stats_window.x -= 40endif @map.y > 0 - @map.height@map.y -= 40endif @status_window.x < 640@status_window.x += 40enddelay(0.5)if @status_window.x >= 640breakendend$scene = Scene_End.newendreturnendend#--------------------------------------------------------------------------# Updating Status Screen#--------------------------------------------------------------------------def update_statusif Input.trigger?(Input::B)$game_system.se_play($data_system.cancel_se)@command_window.active = true@status_window.active = false@status_window.index = -1returnendif Input.trigger?(Input::C)case @command_window.indexwhen 1if $game_party.actors[@status_window.index].restriction >= 2$game_system.se_play($data_system.buzzer_se)returnend$game_system.se_play($data_system.decision_se)loop doif @command_window.y < 480@command_window.y += 40endif @game_stats_window.x > 0 - @game_stats_window.width@game_stats_window.x -= 40endif @map.y > 0 - @map.height@map.y -= 40endif @status_window.x < 640@status_window.x += 40enddelay(0.5)if @status_window.x >= 640breakendend$scene = Scene_Skill.new(@status_window.index)when 2$game_system.se_play($data_system.decision_se)loop doif @command_window.y < 480@command_window.y += 40endif @game_stats_window.x > 0 - @game_stats_window.width@game_stats_window.x -= 40endif @map.y > 0 - @map.height@map.y -= 40endif @status_window.x < 640@status_window.x += 40enddelay(0.5)if @status_window.x >= 640breakendend$scene = Scene_Equip.new(@status_window.index)when 3$game_system.se_play($data_system.decision_se)loop doif @command_window.y < 480@command_window.y += 40endif @game_stats_window.x > 0 - @game_stats_window.width@game_stats_window.x -= 40endif @map.y > 0 - @map.height@map.y -= 40endif @status_window.x < 640@status_window.x += 40enddelay(0.5)if @status_window.x >= 640breakendend$scene = Scene_Status.new(@status_window.index)endreturnendendend[/SPOILER]Materia system[SPOILER]CODE#==============================================================================# Materia System#==============================================================================# SephirothSpawn# 1.28.06# Version 2.01#==============================================================================#------------------------------------------------------------------------------# * Explanations: #------------------------------------------------------------------------------# ~ Weapon & Armor Materia Slots# - Basic Syntax: Item ID # => Slots Array# - Slots Array: [Number of Paired Slots, Single Slots]# ** You must not exceed 8 (Paired * 2 + Single * 1 <= 10)# ~ Materia List# * Creating Your Own Materia# - Basic Syntax: Materia.new(id, name, type, stat_effects,# elements, states, new_value, m_value,# skills, exp_levels, special_effect) ## - id : The Idea Number of you materia. Start from 1 and add 1# - name : The Name of your materia# - type : The Type Of Materia. Choose From One of The Following:# 'Skill', 'Command', 'Summon', 'Support', 'Independent'# - stat_effects : The Percent of each stat that materia will effect# [ Hp, Sp, Str, Dex, Agi, Int ]# - elements : An Array of each Element ID from the systems tab# - states : An Array of each State Id from the Status tab# - new_value : The cost to buy the Materia# - master_value : The value of the Materia when Mastered# - Skills : An array of the skills you learn from the Materia.# (Use for Skill, Command & Summon)# - Exp Levels : An array of the experience required to level# The First value in the array is required to get level 2# - Special Effect : A special Effect of the Materia.# ~ All# ~ Elemental# ~ Status# ~ Steal As Well# ~ HP Absorb# ~ MP Absorb# ~ MP Turbo# ~ Exp Plus# ~ Gil Plus# ~ HP Plus# ~ SP Plus# ~ Strength Plus# ~ Defense Plus# ~ Speed Plus# ~ Magic Plus#------------------------------------------------------------------------------#==============================================================================# ** RPG#==============================================================================module RPG #============================================================================ # ** Weapon #============================================================================ class Weapon #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :paired_materia attr_accessor :single_materia #-------------------------------------------------------------------------- # * Set Materia Slots #-------------------------------------------------------------------------- def set_materia_slots(slots) @paired_materia, @single_materia = slots[0], slots[1] end end #============================================================================ # ** Armor #============================================================================ class Armor #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :paired_materia attr_accessor :single_materia #-------------------------------------------------------------------------- # * Set Materia Slots #-------------------------------------------------------------------------- def set_materia_slots(slots) @paired_materia, @single_materia = slots[0], slots[1] end endend#==============================================================================# ** Materia#==============================================================================class Materia #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :id attr_accessor :name attr_accessor :type attr_accessor :stat_effects attr_accessor :elements attr_accessor :states attr_accessor :new_value attr_accessor :master_value attr_accessor :skills attr_accessor :exp_levels attr_accessor :special_effect #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(id, name, type, stat_effects = [], elements = [], states = [], n_value = 500, m_value = 1000, skills = [], exp_levels = [], s_effect = nil) # Sets Parameters @id, @name, @type, @stat_effects, @elements, @states, @new_value, @master_value, @skills, @exp_levels, @special_effect = id, name, type, stat_effects, elements, states, n_value, m_value, skills, exp_levels, s_effect # Sets Exp @experience = 0 end #-------------------------------------------------------------------------- # * Experince #-------------------------------------------------------------------------- def experience return @experience end #-------------------------------------------------------------------------- # * Experince #-------------------------------------------------------------------------- def experience=(num) @experience = [num, @exp_levels[@exp_levels.size - 1]].min end #-------------------------------------------------------------------------- # * Level #-------------------------------------------------------------------------- def level for i in 0...@exp_levels.size if @experience >= @exp_levels[@exp_levels.size - (1 + i)] return @exp_levels.size - i + 1 end end return 1 end #-------------------------------------------------------------------------- # * Buy Value #-------------------------------------------------------------------------- def buy_value return @new_value end #-------------------------------------------------------------------------- # * Sell Value #-------------------------------------------------------------------------- def sell_value return [(@master_value * (@experience / @exp_levels[@exp_levels.size - 1].to_f)).to_i, @new_value / 2].max end #-------------------------------------------------------------------------- # * Get Hue #-------------------------------------------------------------------------- def get_hue case @type when 'Skill' hue = 130 when 'Command' hue = 60 when 'Summon' hue = 10 when 'Support' hue = 180 when 'Independent' hue = 300 end return hue endend#==============================================================================# ** Materia_System#==============================================================================module Materia_System #============================================================================== # ** CONSTANTS #============================================================================== # ~ Weapons Materia Slots WEAPON_MATERIA_SLOTS = { 1 => [1, 1], 2 => [1, 2], 3 => [2, 2], 4 => [4, 0], 5 => [1, 1], 6 => [1, 2], 7 => [2, 2], 8 => [4, 0], 9 => [1, 1], 10 => [1, 2], 11 => [2, 2], 12 => [4, 0], 13 => [1, 1], 14 => [1, 2], 15 => [2, 2], 16 => [4, 0], 17 => [1, 1], 18 => [1, 2], 19 => [2, 2], 20 => [4, 0], 21 => [1, 1], 22 => [1, 2], 23 => [2, 2], 24 => [4, 0], 25 => [1, 1], 26 => [1, 2], 27 => [2, 2], 28 => [4, 0], 29 => [1, 1], 30 => [1, 2], 31 => [2, 2], 32 => [4, 0], 33 => [2, 1], 34 => [2, 2], 35 => [3, 2], 36 => [3, 2], 37 => [1, 2], 38 => [2, 2], 39 => [4, 0], 40 => [2, 1], 41 => [2, 2], 42 => [2, 1], 43 => [2, 2], 44 => [2, 1], 45 => [2, 2], 46 => [2, 1], 47 => [4, 0], 48 => [2, 3], 49 => [2, 3], 50 => [2, 3] } # ~ Armors Materia Slots ARMORS_MATERIA_SLOTS = { 1 => [1, 1], 2 => [1, 2], 3 => [2, 2], 4 => [4, 0], 5 => [1, 1], 6 => [1, 2], 7 => [2, 2], 8 => [4, 0], 9 => [1, 1], 10 => [1, 2], 11 => [2, 2], 12 => [4, 0], 13 => [1, 1], 14 => [1, 2], 15 => [2, 2], 16 => [4, 0], 17 => [1, 1], 18 => [1, 2], 19 => [2, 2], 20 => [4, 0], 21 => [1, 1], 22 => [1, 2], 23 => [2, 2], 24 => [4, 0], 25 => [1, 1], 26 => [1, 2], 27 => [2, 2], 28 => [4, 0], 29 => [1, 1], 30 => [1, 2], 31 => [2, 2], 32 => [4, 0] } # ~ Materia List# (id, name, type, stat_effects = [], elements = [], states = [], # n_value = 500, m_value = 1000, skills = [], exp_levels = [], s_effect = nil) MATERIA_LIST = [nil, # Skill Materia Materia.new(1, 'Cura', 'Skill', [ -5, 5, -3, 0, 0, 3 ], [], [], 1000, 10000, [1, 2, 3, 6], [1000, 3000, 6000, 10000]), Materia.new(2,'Remedio', 'Skill', [ -4, 4, -3, 0, 0, 3 ], [], [], 750, 5000, [4, 5], [2500, 5000]), Materia.new(3, 'Fuego', 'Skill', [ -3, 3, -1, 0, 0, 1 ], [1], [], 1000, 7500, [7, 8, 9], [1000, 3000, 7500]), Materia.new(4, 'Hielo', 'Skill', [ -3, 3, -1, 0, 0, 1 ], [2], [], 1000, 7500, [10, 11, 12], [1000, 3000, 7500]), Materia.new(5, 'Rayo', 'Skill', [ -3, 3, -1, 0, 0, 1 ], [3], [], 1000, 7500, [13, 14, 15], [1000, 3000, 7500]), Materia.new(6, 'Agua', 'Skill', [ -3, 3, -1, 0, 0, 1 ], [4], [], 1000, 7500, [16, 17, 18], [1000, 3000, 7500]), Materia.new(7, 'Tierra', 'Skill', [ -3, 3, -1, 0, 0, 1 ], [5], [], 1000, 7500, [19, 20, 21], [1000, 3000, 7500]), Materia.new(8, 'Viento', 'Skill', [ -3, 3, -1, 0, 0, 1 ], [6], [], 1000, 7500, [22, 23, 24], [1000, 3000, 7500]), Materia.new(9, 'Luz', 'Skill', [ -5, 5, -3, 0, 0, 3 ], [7], [], 1000, 7500, [25, 26, 27], [1000, 3000, 7500]), Materia.new(10, 'Oscuro', 'Skill', [ -5, 5, -3, 0, 0, 3 ], [8], [], 1000, 7500, [28, 29, 30], [1000, 3000, 7500]), Materia.new(11, 'Fulgor', 'Skill', [ -4, 4, -2, 0, 0, 2 ], [], [], 1500, 7500, [31, 32], [3000, 7500]), Materia.new(12, 'Veneno', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [3], 750, 4500, [33, 34], [1500, 4500]), Materia.new(13, 'Dizzy', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [4], 750, 4500, [35, 36], [1500, 4500]), Materia.new(14, 'Mudo', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [5], 750, 4500, [37, 38], [1500, 4500]), Materia.new(15, 'Confusion', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [6], 750, 4500, [39, 40], [1500, 4500]), Materia.new(16, 'Dormir', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [7], 750, 4500, [41, 42], [1500, 4500]), Materia.new(17, 'Paralizar', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [8], 750, 4500, [43, 44], [1500, 4500]), Materia.new(18, 'Debilidad', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [9], 750, 4500, [45, 46], [1500, 4500]), Materia.new(19, 'Maldicion', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [10], 750, 4500, [47, 48], [1500, 4500]), Materia.new(20, 'Freno', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [11], 750, 4500, [49, 50], [1500, 4500]), Materia.new(21, 'Reducción', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [12], 750, 4500, [51, 52], [1500, 4500]), Materia.new(22, 'Furia', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [13], 750, 4500, [53], [3000]), Materia.new(23, 'Barrera', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [14], 750, 4500, [54], [3000]), Materia.new(24, 'Resistir', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [15], 750, 4500, [55], [3000]), Materia.new(25, 'Blink', 'Skill', [ -2, 2, 0, 0, 0, 0 ], [], [16], 750, 4500, [56], [3000]), # Command Materia Materia.new(26, 'Guerrero', 'Command', [0, 0, 5, 3, - 3, - 5], [], [], 3000, 20000, [57, 58, 59, 60], [2500, 5000, 9000, 14000, 2000]), Materia.new(27, 'Lancero', 'Command', [0, 0, 4, 4, - 4, - 4], [], [], 3000, 20000, [61, 62, 63, 64], [2500, 5000, 9000, 14000, 2000]), Materia.new(28, 'Mercenario', 'Command', [0, 0, 7, 2, - 2, - 7], [], [], 3000, 20000, [65, 66, 67, 68], [2500, 5000, 9000, 14000, 2000]), Materia.new(29, 'Ladron', 'Command', [0, 0, 1, 8, - 8, - 1], [], [], 3000, 20000, [69, 70, 71, 72], [2500, 5000, 9000, 14000, 2000]), Materia.new(30, 'Cazador', 'Command', [2, 2, 2, 2, 2, 2], [], [], 3000, 20000, [73, 74, 75, 76], [2500, 5000, 9000, 14000, 2000]), Materia.new(31, 'Pistolero', 'Command', [0, 4, 4, 0, 4, 0], [], [], 3000, 20000, [77, 78, 79, 80], [2500, 5000, 9000, 14000, 2000]), # Summon Materia (Not real summons, but you would set them up the same Materia.new(32, 'Invocación 1', 'Summon', [-10, 10, -5, -5, 0, 10], [], [], 5000, 25000, [60, 64], [6500, 15000, 25000]), Materia.new(33, 'Invocación 2', 'Summon', [-10, 10, -5, -5, 0, 10], [], [], 5000, 25000, [68, 72], [6500, 15000, 25000]), Materia.new(34, 'Invocación 3', 'Summon', [-10, 10, -5, -5, 0, 10], [], [], 5000, 25000, [76, 80], [6500, 15000, 25000]), # Support Materia Materia.new(35, 'Todos', 'Support', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'All'), Materia.new(36, 'Elemental', 'Support', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'Elemental'), Materia.new(37, 'Estado', 'Support', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'Status'), Materia.new(38, 'Robo', 'Support', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'Steal as well'), Materia.new(39, 'HP Absorber', 'Support', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'HP Absorb'), Materia.new(40, 'MP Absorber', 'Support', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'MP Absorb'), Materia.new(41, 'MP Turbo', 'Support', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'MP Turbo'), # Independent Mater Materia.new(42, 'Exp Plus', 'Independent', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'Exp Plus'), Materia.new(43, 'Guil Plus', 'Independent', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'Gil Plus'), Materia.new(44, 'HP Plus', 'Independent', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'HP Plus'), Materia.new(45, 'SP Plus', 'Independent', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'SP Plus'), Materia.new(46, 'Fuerza Plus', 'Independent', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'Strength Plus'), Materia.new(47, 'Defensa Plus', 'Independent', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'Defense Plus'), Materia.new(48, 'Velocidad Plus', 'Independent', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'Speed Plus'), Materia.new(49, 'Magia Plus', 'Independent', [0, 0, 0, 0, 0, 0], [], [], 2000, 10000, [], [2000, 4000, 7000, 11000], 'Magic Plus') ]end#==============================================================================# ** Game_Battler (part 3)#==============================================================================class Game_Battler #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias seph_materiasystem_gamebattler_skilleffect skill_effect #-------------------------------------------------------------------------- # * Apply Skill Effects # user : the one using skills (battler) # skill : skill #-------------------------------------------------------------------------- def skill_effect(user, skill) # Orginal Skill Effects Method seph_materiasystem_gamebattler_skilleffect(user, skill) if user.is_a?(Game_Actor) # Gets Paired Materia materia_set = user.return_paired_materia for paired_set in materia_set materia = paired_set[2] other_materia = paired_set[3] # HP Absorb if materia.special_effect == 'HP Absorb' for skill_id in other_materia.skills unless skill_id == 0 m_skill = $data_skills[skill_id] if skill == m_skill hp = (user.maxhp * 0.1).to_i user.hp += [hp, user.maxhp - hp].min user.damage = - [hp, user.maxhp - hp].min user.damage_pop = true end end end end # MP Absorb if materia.special_effect == 'MP Absorb' for skill_id in other_materia.skills unless skill_id == 0 m_skill = $data_skills[skill_id] if skill == m_skill sp = (user.maxsp * 0.1).to_i user.sp += [sp, user.maxsp - sp].min user.damage = - [sp, user.maxsp - sp].min user.damage_pop = true end end end end # MP Turbo if materia.special_effect == 'MP Turbo' for skill_id in other_materia.skills unless skill_id == 0 m_skill = $data_skills[skill_id] if skill == m_skill unless user.sp < skill.sp_cost * 2 if self.damage > 0 self.damage *= 2 user.sp -= skill.sp_cost user.damage = 'MP TURBO!' user.damage_pop = true end end end end end end # Steal As Well if materia.special_effect == 'Steal as well' for skill_id in other_materia.skills unless skill_id == 0 m_skill = $data_skills[skill_id] if skill == m_skill if self.is_a?(Game_Battler) if (rand(100) < self.treasure_prob) unless self.item_id == 0 item = $data_items[self.item_id] end unless self.weapon_id == 0 item = $data_weapons[self.weapon_id] end unless self.armor_id == 0 item = $data_armors[self.armor_id] end unless item.nil? case item when RPG::Item $game_party.gain_item(self.item_id, 1) when RPG::Weapon $game_party.gain_weapon(self.weapon_id, 1) when RPG::Armor $game_party.gain_armor(self.armor_id, 1) end user.damage = "Stole #{item.name}" user.damage_pop = true end end end end end end end end end endend#==============================================================================# ** Game_Actor#==============================================================================class Game_Actor #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :weapon_materia attr_accessor :armor1_materia attr_accessor :armor2_materia attr_accessor :armor3_materia attr_accessor :armor4_materia attr_accessor :materia_skills #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias seph_materiasystem_gameactor_init initialize alias seph_materiasystem_gameactor_setup setup alias seph_materiasystem_gameactor_skills skills alias seph_materiasystem_gameactor_maxhp maxhp alias seph_materiasystem_gameactor_maxsp maxsp alias seph_materiasystem_gameactor_str str alias seph_materiasystem_gameactor_dex dex alias seph_materiasystem_gameactor_agi agi alias seph_materiasystem_gameactor_int int alias seph_materiasystem_gameactor_equip equip alias seph_materiasystem_gameactor_exp exp alias seph_materiasystem_gameactor_elementrate element_rate alias seph_materiasystem_gameactor_stateguard? state_guard? alias seph_materiasystem_gameactor_elementset element_set alias seph_materiasystem_gameactor_plusstateset plus_state_set #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(actor_id) # Sets Up Materia Slots @weapon_materia = Array.new @armor1_materia = Array.new @armor2_materia = Array.new @armor3_materia = Array.new @armor4_materia = Array.new # Orginal Initialization Method seph_materiasystem_gameactor_init(actor_id) end #-------------------------------------------------------------------------- # * Setup #-------------------------------------------------------------------------- def setup(actor_id) # Orginal Setup Method seph_materiasystem_gameactor_setup(actor_id) # Materia Skills @materia_skills = [] # Adds Weapon Materia sn = $data_weapons[@weapon_id].paired_materia * 2 + $data_weapons[@weapon_id].single_materia unless @weapon_id == 0 @weapon_materia = @weapon_id == 0 ? [] : Array.new(sn, nil) # Adds Shield Materia sn = $data_armors[@armor1_id].paired_materia * 2 + $data_armors[@armor1_id].single_materia unless @armor1_id == 0 @armor1_materia = @armor1_id == 0 ? [] : Array.new(sn, nil) # Adds Head Materia sn = $data_armors[@armor2_id].paired_materia * 2 + $data_armors[@armor2_id].single_materia unless @armor2_id == 0 @armor2_materia = @armor2_id == 0 ? [] : Array.new(sn, nil) # Adds Body Materia sn = $data_armors[@armor3_id].paired_materia * 2 + $data_armors[@armor3_id].single_materia unless @armor3_id == 0 @armor3_materia = @armor3_id == 0 ? [] : Array.new(sn, nil) # Adds Accessory Materia sn = $data_armors[@armor4_id].paired_materia * 2 + $data_armors[@armor4_id].single_materia unless @armor4_id == 0 @armor4_materia = @armor4_id == 0 ? [] : Array.new(sn, nil) end #-------------------------------------------------------------------------- # * Skills #-------------------------------------------------------------------------- def skills # Deletes Materia Skills for skill_id in @materia_skills self.forget_skill(skill_id) end # Original Skills Method skills = seph_materiasystem_gameactor_skills # Adds Skills Attached to Weapon & Armors for materia in @weapon_materia + @armor1_materia + @armor2_materia + @armor3_materia + @armor4_materia unless materia.nil? self.learn_materia_skill(materia) end end # Returns Skills return @skills end #-------------------------------------------------------------------------- # * Learn Materia Skill #-------------------------------------------------------------------------- def learn_materia_skill(materia) # If Skill Materia if materia.type == 'Skill' || materia.type == 'Command' || materia.type == 'Summon' for i in 0...materia.level skill_id = materia.skills[i] # Learn Skill self.learn_skill(skill_id) # Adds Skills To Materia Skills @materia_skills << skill_id end end end #-------------------------------------------------------------------------- # * Get Maximum HP #-------------------------------------------------------------------------- def maxhp # Orginal Max Hp Method n = seph_materiasystem_gameactor_maxhp # Collects HP Difference From Materia variance = 0 for materia in @weapon_materia + @armor1_materia + @armor2_materia + @armor3_materia + @armor4_materia unless materia.nil? variance += materia.stat_effects[0] if materia.special_effect == 'HP Plus' variance += (materia.level * 10) end end end # Takes Percentage n *= ((100 + variance) / 100.0) n = [[Integer(n), 0].max, 9999].min return n end #-------------------------------------------------------------------------- # * Get HP #-------------------------------------------------------------------------- def hp @hp = [@hp, maxhp].min return @hp end #-------------------------------------------------------------------------- # * Get Maximum SP #-------------------------------------------------------------------------- def maxsp # Orginal Max Sp Method n = seph_materiasystem_gameactor_maxsp # Collects SP Difference From Materia variance = 0 for materia in @weapon_materia + @armor1_materia + @armor2_materia + @armor3_materia + @armor4_materia unless materia.nil? variance += materia.stat_effects[1] if materia.special_effect == 'SP Plus' variance += (materia.level * 10) end end end # Takes Percentage n *= ((100 + variance) / 100.0) n = [[Integer(n), 0].max, 9999].min return n end #-------------------------------------------------------------------------- # * Get SP #-------------------------------------------------------------------------- def sp @sp = [@sp, maxsp].min return @sp end #-------------------------------------------------------------------------- # * Get Strength (STR) #-------------------------------------------------------------------------- def str # Orginal Max Str Method n = seph_materiasystem_gameactor_str # Collects SP Difference From Materia variance = 0 for materia in @weapon_materia + @armor1_materia + @armor2_materia + @armor3_materia + @armor4_materia unless materia.nil? variance += materia.stat_effects[2] if materia.special_effect == 'Strength Plus' variance += (materia.level * 5) end end end # Takes Percentage n *= ((100 + variance) / 100.0) n = [[Integer(n), 1].max, 999].min return n end #-------------------------------------------------------------------------- # * Get Dexterity (DEX) #-------------------------------------------------------------------------- def dex # Orginal Max Dex Method n = seph_materiasystem_gameactor_dex # Collects SP Difference From Materia variance = 0 for materia in @weapon_materia + @armor1_materia + @armor2_materia + @armor3_materia + @armor4_materia unless materia.nil? variance += materia.stat_effects[3] if materia.special_effect == 'Defense Plus' variance += (materia.level * 5) end end end # Takes Percentage n *= ((100 + variance) / 100.0) n = [[Integer(n), 1].max, 999].min return n end #-------------------------------------------------------------------------- # * Get Agility (AGI) #-------------------------------------------------------------------------- def agi # Orginal Max Agi Method n = seph_materiasystem_gameactor_agi # Collects SP Difference From Materia variance = 0 for materia in @weapon_materia + @armor1_materia + @armor2_materia + @armor3_materia + @armor4_materia unless materia.nil?   0 Share this post Link to post Share on other sites Posted September 3, 2006 · Report post No se si lo pueden borrar todos los usuarios... si quieres borro el último tuyo. Para que salgan la ventana de lÃmite y materia tienes que tener esos dos scripts para empezar. Para seguir, ponme aquà cómo se llama a esos scripts y en un momento lo agrego. 0 Share this post Link to post Share on other sites Posted September 3, 2006 (edited) · Report post es k no se como se llama a esos scripts XD aora posteo los scriptshttp://www.freewebs.com/rsooo/limite.txthttp://www.freewebs.com/rsooo/materia.txtEDIT: equipar materia $scene = Scene_MateriaEquip.new pero el de limite no se Edited September 3, 2006 by Sampi 0 Share this post Link to post Share on other sites Posted September 3, 2006 · Report post Este tiene integrado el sistema de materia, si te gusta el lugar donde aparece dÃmelo para que te de u par de indicaciones más. No he podido poner el de lÃmite porque parece que si pongo algo más a mi me crea conflicto con otro script... asà que mejor dime primero si como está de momento te parece bien.[spoiler]CODE#*********************************************************#Final Fantasy VII menu setup by AcedentProne#*********************************************************#To use:#If you do not want Faces, go to line 94#and change delete the # of draw_actor_graphic#and put a # infront of draw_actor_face##Create a new folder in the Characters folder, and call it Faces#Adding faces: add a 80x80 picture with the same name as the characterset it#corrosponds with in the Faces folder#========================================#■ Window_Base#--------------------------------------------------------------------------------# Setting functions for the "Base"#========================================class Window_Base < Windowdef draw_actor_face(actor, x, y)face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)fw = face.widthfh = face.heightsrc_rect = Rect.new(0, 0, fw, fh)self.contents.blt(x - fw / 23, y - fh, face, src_rect)endenddef draw_actor_battler_graphic(actor, x, y)bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)cw = bitmap.widthch = bitmap.heightsrc_rect = Rect.new(0, 0, cw, ch)self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)end#========================================#■ Game_Map#--------------------------------------------------------------------------------# Setting functions for the Map#========================================class Game_Mapdef name$map_infos[@map_id]endend#========================================#■ Window_Title#--------------------------------------------------------------------------------# Setting functions for the Title#========================================class Scene_Title$map_infos = load_data("Data/MapInfos.rxdata")for key in $map_infos.keys$map_infos[key] = $map_infos[key].nameendend#==============================================================================# ■ Window_MenuStatus#------------------------------------------------------------------------------# Sets up the Choosing.#==============================================================================class Window_MenuStatus < Window_Selectable#--------------------------------------------------------------------------# Set up#--------------------------------------------------------------------------def initializesuper(0, 0, 560, 454)self.contents = Bitmap.new(width - 32, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshself.active = falseself.index = -1end#--------------------------------------------------------------------------# Drawing Info on Screen#--------------------------------------------------------------------------def refreshself.contents.clear@item_max = $game_party.actors.sizefor i in 0...$game_party.actors.sizex = 94y = i * 110actor = $game_party.actors[i]#draw_actor_face(actor, 12, y + 90) #To get rid of the Face, put a "#" before the draw_ of this linedraw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this linedraw_actor_name(actor, x, y)draw_actor_class(actor, x + 72, y)draw_actor_level(actor, x, y + 18)draw_actor_state(actor, x + 168, y)draw_actor_exp(actor, x+ 144, y + 38)draw_actor_hp(actor, x, y + 38)draw_actor_sp(actor, x, y + 58)endend#--------------------------------------------------------------------------# Update of Cursor#--------------------------------------------------------------------------def update_cursor_rectif @index < 0self.cursor_rect.emptyelseself.cursor_rect.set(0, @index * 110, self.width - 32, 96)endendend#=======================================## ■Window_GameStats ## written by AcedentProne ##------------------------------------------------------------------------------#class Window_GameStats < Window_Basedef initializesuper(0, 0, 160, 60)self.contents = Bitmap.new(width - 32, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshenddef refreshself.contents.clear#Drawing gold into separate commas by Dubealexcase $game_party.goldwhen 0..9999 gold = $game_party.goldwhen 10000..99999 gold = $game_party.gold.to_s array = gold.split(//) gold = array[0].to_s+array[1].to_s+" "+array[2].to_s+array[3].to_s+array[4].to_swhen 100000..999999 gold = $game_party.gold.to_s array = gold.split(//) gold = array[0].to_s+array[1].to_s+array[2].to_s+" "+array[3].to_s+array[4].to_s+array[5].to_swhen 1000000..9999999 gold = $game_party.gold.to_s array = gold.split(//) gold = array[0].to_s+" "+array[1].to_s+array[2].to_s+array[3].to_s+" "+array[4].to_s+array[5].to_s+array[6].to_send#Draw Goldself.contents.font.color = system_colorgold_word = $data_system.words.gold.to_scx = contents.text_size(gold_word).widthcx2=contents.text_size(gold.to_s).widthself.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)self.contents.font.color = normal_colorself.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)self.contents.font.color = system_color# Draw "Time"@total_sec = Graphics.frame_count / Graphics.frame_ratehour = @total_sec / 60 / 60min = @total_sec / 60 % 60sec = @total_sec % 60text = sprintf("%02d:%02d:%02d", hour, min, sec)self.contents.font.color = normal_colorself.contents.draw_text(4, -10, 120, 32, text, 2)self.contents.font.color = system_colorself.contents.draw_text(4, -10, 120, 32, "Tiempo")end#--------------------------------------------------------------------------# Update of The count#--------------------------------------------------------------------------def updatesuperif Graphics.frame_count / Graphics.frame_rate != @total_secrefreshendendend#==============================================================================# ■ Window_Mapname#------------------------------------------------------------------------------# Draws the Map name#==============================================================================class Window_Mapname < Window_Base#--------------------------------------------------------------------------# Set up#--------------------------------------------------------------------------def initializesuper(0, 0, 320, 44)self.contents = Bitmap.new(width - 52, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshend#--------------------------------------------------------------------------# Draws info on screen#--------------------------------------------------------------------------def refreshself.contents.clear# Map Name#map = $game_map.nameself.contents.font.color = system_colorself.contents.draw_text(4, -10, 220, 32, "Localización")self.contents.font.color = normal_colorself.contents.draw_text(120, -10, 310, 32, $game_map.name)endend#==============================================================================# ■ Scene_Menu#------------------------------------------------------------------------------# FF7 menu layout as requested by AcedentProne.#==============================================================================class Scene_Menu#--------------------------- edit-------------------------------attr_reader :status_window#/--------------------------- edit-------------------------------def initialize(menu_index = 0)@menu_index = menu_indexenddef main s1 = $data_system.words.items2 = "Materia"s3 = $data_system.words.skills4 = $data_system.words.equips5 = "Estado"s6 = "Guardar"s7 = "Salir"#--------------------------- edit------------------------------- # Command menu@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])@command_window.x = 640 - @command_window.width@command_window.y = 480@command_window.z = 110@command_window.index = @menu_index#If certain options are avaliableif $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)endif $game_system.save_disabled @command_window.disable_item(4)end#Showing location window@map = Window_Mapname.new@map.x = 640 - @map.width@map.y = 0 - @map.height - 1@map.z = 110#Showing the game stats@game_stats_window = Window_GameStats.new@game_stats_window.x = 0 - @game_stats_window.width@game_stats_window.y = 480 - @map.height - @game_stats_window.height@game_stats_window.z =110 #Showing the Menu Status window@status_window = Window_MenuStatus.new@status_window.x = 640@status_window.y = 8@status_window.z = 100 Graphics.transitionloop do Graphics.update Input.update update if $scene != self break endendGraphics.freeze@command_window.dispose@game_stats_window.dispose@status_window.dispose@map.disposeend#--------------------------------------------------------------------------#Defining the delay#--------------------------------------------------------------------------def delay(seconds)for i in 0...(seconds * 1) sleep 0.01 Graphics.updateendend#--------------------------------------------------------------------------# Updating#--------------------------------------------------------------------------def update@command_window.update@game_stats_window.update@status_window.update@map.update#Moving Windows inplacegamepos = 640 - @game_stats_window.widthmappos = 480 - @map.height - 1if @command_window.y > 0@command_window.y -= 60endif @game_stats_window.x < gamepos@game_stats_window.x += 80endif @map.y < mappos@map.y += 80endif @status_window.x > 0 @status_window.x -= 80end#Saying if options are activeif @command_window.active update_command returnendif @status_window.active update_status returnendend#--------------------------------------------------------------------------# Updating the Command Selection#--------------------------------------------------------------------------def update_command# If B button is pushedif Input.trigger?(Input::B) # Plays assigned SE $game_system.se_play($data_system.cancel_se) #Looping for moving windows out loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end # Go to Map$scene = Scene_Map.new returnend# If C button is pusedif Input.trigger?(Input::C) # Checks actor size if $game_party.actors.size == 0 and @command_window.index < 4 # plays SE $game_system.se_play($data_system.buzzer_se) return end case @command_window.index when 0 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Item.new when 1 $game_system.se_play($data_system.decision_se) $scene = Scene_MateriaEquip.new when 2 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 3 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 5 if $game_system.save_disabled $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Save.new when 6 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_End.new end returnendend#--------------------------------------------------------------------------# Updating Status Screen#--------------------------------------------------------------------------def update_statusif Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @command_window.active = true @status_window.active = false @status_window.index = -1 returnendif Input.trigger?(Input::C) case @command_window.index when 2 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) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Skill.new(@status_window.index) when 3 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Equip.new(@status_window.index) when 4 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Status.new(@status_window.index) end returnendendend[/spoiler] 0 Share this post Link to post Share on other sites Posted September 4, 2006 · Report post creo q este script ya estaba posteado xD 0 Share this post Link to post Share on other sites Posted September 4, 2006 (edited) · Report post Para abrir el limite es $scene = Scene_Limit.newEDIT: Fegarur ya que estas te puedes mirar el de limite, es k me da error de "Can't convert nil into string"Cuando se carga del todo y se llena la barra del ABS Edited September 4, 2006 by Sampi 0 Share this post Link to post Share on other sites Posted September 4, 2006 · Report post Aquà está añadido el lÃmite... intentaré mirar qué pasa pero no creo que sepa hacer nada con eso.Script con Materia y LÃmite:[spoiler]CODE*********************************************************#Final Fantasy VII menu setup by AcedentProne#*********************************************************#To use:#If you do not want Faces, go to line 94#and change delete the # of draw_actor_graphic#and put a # infront of draw_actor_face##Create a new folder in the Characters folder, and call it Faces#Adding faces: add a 80x80 picture with the same name as the characterset it#corrosponds with in the Faces folder#========================================#■ Window_Base#--------------------------------------------------------------------------------# Setting functions for the "Base"#========================================class Window_Base < Windowdef draw_actor_face(actor, x, y)face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)fw = face.widthfh = face.heightsrc_rect = Rect.new(0, 0, fw, fh)self.contents.blt(x - fw / 23, y - fh, face, src_rect)endenddef draw_actor_battler_graphic(actor, x, y)bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)cw = bitmap.widthch = bitmap.heightsrc_rect = Rect.new(0, 0, cw, ch)self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)end#========================================#■ Game_Map#--------------------------------------------------------------------------------# Setting functions for the Map#========================================class Game_Mapdef name$map_infos[@map_id]endend#========================================#■ Window_Title#--------------------------------------------------------------------------------# Setting functions for the Title#========================================class Scene_Title$map_infos = load_data("Data/MapInfos.rxdata")for key in $map_infos.keys$map_infos[key] = $map_infos[key].nameendend#==============================================================================# ■ Window_MenuStatus#------------------------------------------------------------------------------# Sets up the Choosing.#==============================================================================class Window_MenuStatus < Window_Selectable#--------------------------------------------------------------------------# Set up#--------------------------------------------------------------------------def initializesuper(0, 0, 560, 454)self.contents = Bitmap.new(width - 32, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshself.active = falseself.index = -1end#--------------------------------------------------------------------------# Drawing Info on Screen#--------------------------------------------------------------------------def refreshself.contents.clear@item_max = $game_party.actors.sizefor i in 0...$game_party.actors.sizex = 94y = i * 110actor = $game_party.actors[i]#draw_actor_face(actor, 12, y + 90) #To get rid of the Face, put a "#" before the draw_ of this linedraw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this linedraw_actor_name(actor, x, y)draw_actor_class(actor, x + 72, y)draw_actor_level(actor, x, y + 18)draw_actor_state(actor, x + 168, y)draw_actor_exp(actor, x+ 144, y + 38)draw_actor_hp(actor, x, y + 38)draw_actor_sp(actor, x, y + 58)endend#--------------------------------------------------------------------------# Update of Cursor#--------------------------------------------------------------------------def update_cursor_rectif @index < 0self.cursor_rect.emptyelseself.cursor_rect.set(0, @index * 110, self.width - 32, 96)endendend#=======================================## ■Window_GameStats ## written by AcedentProne ##------------------------------------------------------------------------------#class Window_GameStats < Window_Basedef initializesuper(0, 0, 160, 60)self.contents = Bitmap.new(width - 32, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshenddef refreshself.contents.clear#Drawing gold into separate commas by Dubealexcase $game_party.goldwhen 0..9999gold = $game_party.goldwhen 10000..99999gold = $game_party.gold.to_sarray = gold.split(//)gold = array[0].to_s+array[1].to_s+" "+array[2].to_s+array[3].to_s+array[4].to_swhen 100000..999999gold = $game_party.gold.to_sarray = gold.split(//)gold = array[0].to_s+array[1].to_s+array[2].to_s+" "+array[3].to_s+array[4].to_s+array[5].to_swhen 1000000..9999999gold = $game_party.gold.to_sarray = gold.split(//)gold = array[0].to_s+" "+array[1].to_s+array[2].to_s+array[3].to_s+" "+array[4].to_s+array[5].to_s+array[6].to_send#Draw Goldself.contents.font.color = system_colorgold_word = $data_system.words.gold.to_scx = contents.text_size(gold_word).widthcx2=contents.text_size(gold.to_s).widthself.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)self.contents.font.color = normal_colorself.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)self.contents.font.color = system_color# Draw "Time"@total_sec = Graphics.frame_count / Graphics.frame_ratehour = @total_sec / 60 / 60min = @total_sec / 60 % 60sec = @total_sec % 60text = sprintf("%02d:%02d:%02d", hour, min, sec)self.contents.font.color = normal_colorself.contents.draw_text(4, -10, 120, 32, text, 2)self.contents.font.color = system_colorself.contents.draw_text(4, -10, 120, 32, "Tiempo")end#--------------------------------------------------------------------------# Update of The count#--------------------------------------------------------------------------def updatesuperif Graphics.frame_count / Graphics.frame_rate != @total_secrefreshendendend#==============================================================================# ■ Window_Mapname#------------------------------------------------------------------------------# Draws the Map name#==============================================================================class Window_Mapname < Window_Base#--------------------------------------------------------------------------# Set up#--------------------------------------------------------------------------def initializesuper(0, 0, 320, 44)self.contents = Bitmap.new(width - 52, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshend#--------------------------------------------------------------------------# Draws info on screen#--------------------------------------------------------------------------def refreshself.contents.clear# Map Name#map = $game_map.nameself.contents.font.color = system_colorself.contents.draw_text(4, -10, 220, 32, "Localización")self.contents.font.color = normal_colorself.contents.draw_text(120, -10, 310, 32, $game_map.name)endend#==============================================================================# ■ Scene_Menu#------------------------------------------------------------------------------# FF7 menu layout as requested by AcedentProne.#==============================================================================class Scene_Menu#--------------------------- edit-------------------------------attr_reader :status_window#/--------------------------- edit-------------------------------def initialize(menu_index = 0)@menu_index = menu_indexenddef main s1 = $data_system.words.items2 = "Materia"s3 = "LÃmite"s4 = $data_system.words.skills5 = $data_system.words.equips6 = "Estado"s7 = "Guardar"s8 = "Salir"#--------------------------- edit------------------------------- # Command menu@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8])@command_window.x = 640 - @command_window.width@command_window.y = 480@command_window.z = 110@command_window.index = @menu_index#If certain options are avaliableif $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)endif $game_system.save_disabled @command_window.disable_item(4)end#Showing location window@map = Window_Mapname.new@map.x = 640 - @map.width@map.y = 0 - @map.height - 1@map.z = 110#Showing the game stats@game_stats_window = Window_GameStats.new@game_stats_window.x = 0 - @game_stats_window.width@game_stats_window.y = 480 - @map.height - @game_stats_window.height@game_stats_window.z =110 #Showing the Menu Status window@status_window = Window_MenuStatus.new@status_window.x = 640@status_window.y = 8@status_window.z = 100 Graphics.transitionloop do Graphics.update Input.update update if $scene != self break endendGraphics.freeze@command_window.dispose@game_stats_window.dispose@status_window.dispose@map.disposeend#--------------------------------------------------------------------------#Defining the delay#--------------------------------------------------------------------------def delay(seconds)for i in 0...(seconds * 1) sleep 0.01 Graphics.updateendend#--------------------------------------------------------------------------# Updating#--------------------------------------------------------------------------def update@command_window.update@game_stats_window.update@status_window.update@map.update#Moving Windows inplacegamepos = 640 - @game_stats_window.widthmappos = 480 - @map.height - 1if @command_window.y > 0@command_window.y -= 60endif @game_stats_window.x < gamepos@game_stats_window.x += 80endif @map.y < mappos@map.y += 80endif @status_window.x > 0 @status_window.x -= 80end#Saying if options are activeif @command_window.active update_command returnendif @status_window.active update_status returnendend#--------------------------------------------------------------------------# Updating the Command Selection#--------------------------------------------------------------------------def update_command# If B button is pushedif Input.trigger?(Input::B) # Plays assigned SE $game_system.se_play($data_system.cancel_se) #Looping for moving windows out loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end# Go to Map$scene = Scene_Map.new returnend# If C button is pusedif Input.trigger?(Input::C) # Checks actor size if $game_party.actors.size == 0 and @command_window.index < 4 # plays SE $game_system.se_play($data_system.buzzer_se) return end case @command_window.index when 0 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Item.new when 1 $game_system.se_play($data_system.decision_se) $scene = Scene_MateriaEquip.new when 2 $game_system.se_play($data_system.decision_se) $scene = Scene_Limit.new when 3 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 5 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 6 if $game_system.save_disabled $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Save.new when 7 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_End.new end returnendend#--------------------------------------------------------------------------# Updating Status Screen#--------------------------------------------------------------------------def update_statusif Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @command_window.active = true @status_window.active = false @status_window.index = -1 returnendif Input.trigger?(Input::C) case @command_window.index when 3 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) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Skill.new(@status_window.index) when 4 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Equip.new(@status_window.index) when 5 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Status.new(@status_window.index) end returnendendend[/spoiler]Bien, asà como está, cuando salgas al menú la flecha saldrá 2 opciones por encima de la correcta... asà que vamos a arreglarlo. En Scene_Skill busca QUOTE$scene = Scene_Menu.new(1) y cambia el 1 por un 3.En Scene_Equip cambia el 2 de QUOTE$scene = Scene_Menu.new(2) por un 4.En Scene_Status cambia el 3 de QUOTE$scene = Scene_Menu.new(3) por un 5.En Scene_Save cambia el 4 de QUOTE$scene = Scene_Menu.new(4)por un 6, cuidado que aparece en dos sitios.En Scene_End cambia el 5 de QUOTE$scene = Scene_Menu.new(5)por un 7, también sale en dos sitios. Por el momento al menos el script deberÃa funcinar bien con eso incluido. 0 Share this post Link to post Share on other sites Posted September 8, 2006 · Report post esta muy bien fegarur pero no se puede hacer algo para que se pueda elegir de quien cambiar la materia o el limite? 0 Share this post Link to post Share on other sites Posted September 8, 2006 · Report post Cuando tienes seleccionado ya al protagonista, si pulsas W y Q (creo que eran esas) cambia entre los personajes. Al menos en el de materia... Y siento lo del lÃmite, pero no supe arreglar ese problemilla. 0 Share this post Link to post Share on other sites Posted September 8, 2006 · Report post se como hacer k salga lo de legir pero no se como hacer que entonces salga para equipar lo de materia de ese personaje, o con el limite 0 Share this post Link to post Share on other sites Posted September 8, 2006 · Report post Ya no recuerdo cómo funcionaba el de materia, pero su puedes elegir podrás equipar, ¿no? En el de lÃmite ya no se nada... 0 Share this post Link to post Share on other sites Posted September 8, 2006 · Report post puedo elegir en los dos pero luego no me deja aceptar el personajee 0 Share this post Link to post Share on other sites Posted September 8, 2006 · Report post Pues me has dejado K.O. No se... ¿alguien que sepa? 0 Share this post Link to post Share on other sites Posted August 6, 2007 · Report post el d matria no me funciona con el sistema de mathura...parece q el d limites tampoko...pero no importa exelent script QUOTEPara abrir el limite es $scene = Scene_Limit.newEDIT: Fegarur ya que estas te puedes mirar el de limite, es k me da error de "Can't convert nil into string"Cuando se carga del todo y se llena la barra del ABSeso pasa xq algun scrip te krea conflicto.Revisa si no tienes el ABS y el de comandos individuales,por ejemplo saludosss! 0 Share this post Link to post Share on other sites This topic is now closed to further replies. Sign in to follow this Followers 0
Posted September 3, 2006 · Report post No se si lo pueden borrar todos los usuarios... si quieres borro el último tuyo. Para que salgan la ventana de lÃmite y materia tienes que tener esos dos scripts para empezar. Para seguir, ponme aquà cómo se llama a esos scripts y en un momento lo agrego. 0 Share this post Link to post Share on other sites
Posted September 3, 2006 (edited) · Report post es k no se como se llama a esos scripts XD aora posteo los scriptshttp://www.freewebs.com/rsooo/limite.txthttp://www.freewebs.com/rsooo/materia.txtEDIT: equipar materia $scene = Scene_MateriaEquip.new pero el de limite no se Edited September 3, 2006 by Sampi 0 Share this post Link to post Share on other sites
Posted September 3, 2006 · Report post Este tiene integrado el sistema de materia, si te gusta el lugar donde aparece dÃmelo para que te de u par de indicaciones más. No he podido poner el de lÃmite porque parece que si pongo algo más a mi me crea conflicto con otro script... asà que mejor dime primero si como está de momento te parece bien.[spoiler]CODE#*********************************************************#Final Fantasy VII menu setup by AcedentProne#*********************************************************#To use:#If you do not want Faces, go to line 94#and change delete the # of draw_actor_graphic#and put a # infront of draw_actor_face##Create a new folder in the Characters folder, and call it Faces#Adding faces: add a 80x80 picture with the same name as the characterset it#corrosponds with in the Faces folder#========================================#■ Window_Base#--------------------------------------------------------------------------------# Setting functions for the "Base"#========================================class Window_Base < Windowdef draw_actor_face(actor, x, y)face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)fw = face.widthfh = face.heightsrc_rect = Rect.new(0, 0, fw, fh)self.contents.blt(x - fw / 23, y - fh, face, src_rect)endenddef draw_actor_battler_graphic(actor, x, y)bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)cw = bitmap.widthch = bitmap.heightsrc_rect = Rect.new(0, 0, cw, ch)self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)end#========================================#■ Game_Map#--------------------------------------------------------------------------------# Setting functions for the Map#========================================class Game_Mapdef name$map_infos[@map_id]endend#========================================#■ Window_Title#--------------------------------------------------------------------------------# Setting functions for the Title#========================================class Scene_Title$map_infos = load_data("Data/MapInfos.rxdata")for key in $map_infos.keys$map_infos[key] = $map_infos[key].nameendend#==============================================================================# ■ Window_MenuStatus#------------------------------------------------------------------------------# Sets up the Choosing.#==============================================================================class Window_MenuStatus < Window_Selectable#--------------------------------------------------------------------------# Set up#--------------------------------------------------------------------------def initializesuper(0, 0, 560, 454)self.contents = Bitmap.new(width - 32, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshself.active = falseself.index = -1end#--------------------------------------------------------------------------# Drawing Info on Screen#--------------------------------------------------------------------------def refreshself.contents.clear@item_max = $game_party.actors.sizefor i in 0...$game_party.actors.sizex = 94y = i * 110actor = $game_party.actors[i]#draw_actor_face(actor, 12, y + 90) #To get rid of the Face, put a "#" before the draw_ of this linedraw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this linedraw_actor_name(actor, x, y)draw_actor_class(actor, x + 72, y)draw_actor_level(actor, x, y + 18)draw_actor_state(actor, x + 168, y)draw_actor_exp(actor, x+ 144, y + 38)draw_actor_hp(actor, x, y + 38)draw_actor_sp(actor, x, y + 58)endend#--------------------------------------------------------------------------# Update of Cursor#--------------------------------------------------------------------------def update_cursor_rectif @index < 0self.cursor_rect.emptyelseself.cursor_rect.set(0, @index * 110, self.width - 32, 96)endendend#=======================================## ■Window_GameStats ## written by AcedentProne ##------------------------------------------------------------------------------#class Window_GameStats < Window_Basedef initializesuper(0, 0, 160, 60)self.contents = Bitmap.new(width - 32, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshenddef refreshself.contents.clear#Drawing gold into separate commas by Dubealexcase $game_party.goldwhen 0..9999 gold = $game_party.goldwhen 10000..99999 gold = $game_party.gold.to_s array = gold.split(//) gold = array[0].to_s+array[1].to_s+" "+array[2].to_s+array[3].to_s+array[4].to_swhen 100000..999999 gold = $game_party.gold.to_s array = gold.split(//) gold = array[0].to_s+array[1].to_s+array[2].to_s+" "+array[3].to_s+array[4].to_s+array[5].to_swhen 1000000..9999999 gold = $game_party.gold.to_s array = gold.split(//) gold = array[0].to_s+" "+array[1].to_s+array[2].to_s+array[3].to_s+" "+array[4].to_s+array[5].to_s+array[6].to_send#Draw Goldself.contents.font.color = system_colorgold_word = $data_system.words.gold.to_scx = contents.text_size(gold_word).widthcx2=contents.text_size(gold.to_s).widthself.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)self.contents.font.color = normal_colorself.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)self.contents.font.color = system_color# Draw "Time"@total_sec = Graphics.frame_count / Graphics.frame_ratehour = @total_sec / 60 / 60min = @total_sec / 60 % 60sec = @total_sec % 60text = sprintf("%02d:%02d:%02d", hour, min, sec)self.contents.font.color = normal_colorself.contents.draw_text(4, -10, 120, 32, text, 2)self.contents.font.color = system_colorself.contents.draw_text(4, -10, 120, 32, "Tiempo")end#--------------------------------------------------------------------------# Update of The count#--------------------------------------------------------------------------def updatesuperif Graphics.frame_count / Graphics.frame_rate != @total_secrefreshendendend#==============================================================================# ■ Window_Mapname#------------------------------------------------------------------------------# Draws the Map name#==============================================================================class Window_Mapname < Window_Base#--------------------------------------------------------------------------# Set up#--------------------------------------------------------------------------def initializesuper(0, 0, 320, 44)self.contents = Bitmap.new(width - 52, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshend#--------------------------------------------------------------------------# Draws info on screen#--------------------------------------------------------------------------def refreshself.contents.clear# Map Name#map = $game_map.nameself.contents.font.color = system_colorself.contents.draw_text(4, -10, 220, 32, "Localización")self.contents.font.color = normal_colorself.contents.draw_text(120, -10, 310, 32, $game_map.name)endend#==============================================================================# ■ Scene_Menu#------------------------------------------------------------------------------# FF7 menu layout as requested by AcedentProne.#==============================================================================class Scene_Menu#--------------------------- edit-------------------------------attr_reader :status_window#/--------------------------- edit-------------------------------def initialize(menu_index = 0)@menu_index = menu_indexenddef main s1 = $data_system.words.items2 = "Materia"s3 = $data_system.words.skills4 = $data_system.words.equips5 = "Estado"s6 = "Guardar"s7 = "Salir"#--------------------------- edit------------------------------- # Command menu@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])@command_window.x = 640 - @command_window.width@command_window.y = 480@command_window.z = 110@command_window.index = @menu_index#If certain options are avaliableif $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)endif $game_system.save_disabled @command_window.disable_item(4)end#Showing location window@map = Window_Mapname.new@map.x = 640 - @map.width@map.y = 0 - @map.height - 1@map.z = 110#Showing the game stats@game_stats_window = Window_GameStats.new@game_stats_window.x = 0 - @game_stats_window.width@game_stats_window.y = 480 - @map.height - @game_stats_window.height@game_stats_window.z =110 #Showing the Menu Status window@status_window = Window_MenuStatus.new@status_window.x = 640@status_window.y = 8@status_window.z = 100 Graphics.transitionloop do Graphics.update Input.update update if $scene != self break endendGraphics.freeze@command_window.dispose@game_stats_window.dispose@status_window.dispose@map.disposeend#--------------------------------------------------------------------------#Defining the delay#--------------------------------------------------------------------------def delay(seconds)for i in 0...(seconds * 1) sleep 0.01 Graphics.updateendend#--------------------------------------------------------------------------# Updating#--------------------------------------------------------------------------def update@command_window.update@game_stats_window.update@status_window.update@map.update#Moving Windows inplacegamepos = 640 - @game_stats_window.widthmappos = 480 - @map.height - 1if @command_window.y > 0@command_window.y -= 60endif @game_stats_window.x < gamepos@game_stats_window.x += 80endif @map.y < mappos@map.y += 80endif @status_window.x > 0 @status_window.x -= 80end#Saying if options are activeif @command_window.active update_command returnendif @status_window.active update_status returnendend#--------------------------------------------------------------------------# Updating the Command Selection#--------------------------------------------------------------------------def update_command# If B button is pushedif Input.trigger?(Input::B) # Plays assigned SE $game_system.se_play($data_system.cancel_se) #Looping for moving windows out loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end # Go to Map$scene = Scene_Map.new returnend# If C button is pusedif Input.trigger?(Input::C) # Checks actor size if $game_party.actors.size == 0 and @command_window.index < 4 # plays SE $game_system.se_play($data_system.buzzer_se) return end case @command_window.index when 0 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Item.new when 1 $game_system.se_play($data_system.decision_se) $scene = Scene_MateriaEquip.new when 2 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 3 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 5 if $game_system.save_disabled $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Save.new when 6 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_End.new end returnendend#--------------------------------------------------------------------------# Updating Status Screen#--------------------------------------------------------------------------def update_statusif Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @command_window.active = true @status_window.active = false @status_window.index = -1 returnendif Input.trigger?(Input::C) case @command_window.index when 2 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) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Skill.new(@status_window.index) when 3 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Equip.new(@status_window.index) when 4 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Status.new(@status_window.index) end returnendendend[/spoiler] 0 Share this post Link to post Share on other sites
Posted September 4, 2006 · Report post creo q este script ya estaba posteado xD 0 Share this post Link to post Share on other sites
Posted September 4, 2006 (edited) · Report post Para abrir el limite es $scene = Scene_Limit.newEDIT: Fegarur ya que estas te puedes mirar el de limite, es k me da error de "Can't convert nil into string"Cuando se carga del todo y se llena la barra del ABS Edited September 4, 2006 by Sampi 0 Share this post Link to post Share on other sites
Posted September 4, 2006 · Report post Aquà está añadido el lÃmite... intentaré mirar qué pasa pero no creo que sepa hacer nada con eso.Script con Materia y LÃmite:[spoiler]CODE*********************************************************#Final Fantasy VII menu setup by AcedentProne#*********************************************************#To use:#If you do not want Faces, go to line 94#and change delete the # of draw_actor_graphic#and put a # infront of draw_actor_face##Create a new folder in the Characters folder, and call it Faces#Adding faces: add a 80x80 picture with the same name as the characterset it#corrosponds with in the Faces folder#========================================#■ Window_Base#--------------------------------------------------------------------------------# Setting functions for the "Base"#========================================class Window_Base < Windowdef draw_actor_face(actor, x, y)face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)fw = face.widthfh = face.heightsrc_rect = Rect.new(0, 0, fw, fh)self.contents.blt(x - fw / 23, y - fh, face, src_rect)endenddef draw_actor_battler_graphic(actor, x, y)bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)cw = bitmap.widthch = bitmap.heightsrc_rect = Rect.new(0, 0, cw, ch)self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)end#========================================#■ Game_Map#--------------------------------------------------------------------------------# Setting functions for the Map#========================================class Game_Mapdef name$map_infos[@map_id]endend#========================================#■ Window_Title#--------------------------------------------------------------------------------# Setting functions for the Title#========================================class Scene_Title$map_infos = load_data("Data/MapInfos.rxdata")for key in $map_infos.keys$map_infos[key] = $map_infos[key].nameendend#==============================================================================# ■ Window_MenuStatus#------------------------------------------------------------------------------# Sets up the Choosing.#==============================================================================class Window_MenuStatus < Window_Selectable#--------------------------------------------------------------------------# Set up#--------------------------------------------------------------------------def initializesuper(0, 0, 560, 454)self.contents = Bitmap.new(width - 32, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshself.active = falseself.index = -1end#--------------------------------------------------------------------------# Drawing Info on Screen#--------------------------------------------------------------------------def refreshself.contents.clear@item_max = $game_party.actors.sizefor i in 0...$game_party.actors.sizex = 94y = i * 110actor = $game_party.actors[i]#draw_actor_face(actor, 12, y + 90) #To get rid of the Face, put a "#" before the draw_ of this linedraw_actor_graphic(actor, 48, y + 65) #and delete the "#" infront of draw of this linedraw_actor_name(actor, x, y)draw_actor_class(actor, x + 72, y)draw_actor_level(actor, x, y + 18)draw_actor_state(actor, x + 168, y)draw_actor_exp(actor, x+ 144, y + 38)draw_actor_hp(actor, x, y + 38)draw_actor_sp(actor, x, y + 58)endend#--------------------------------------------------------------------------# Update of Cursor#--------------------------------------------------------------------------def update_cursor_rectif @index < 0self.cursor_rect.emptyelseself.cursor_rect.set(0, @index * 110, self.width - 32, 96)endendend#=======================================## ■Window_GameStats ## written by AcedentProne ##------------------------------------------------------------------------------#class Window_GameStats < Window_Basedef initializesuper(0, 0, 160, 60)self.contents = Bitmap.new(width - 32, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshenddef refreshself.contents.clear#Drawing gold into separate commas by Dubealexcase $game_party.goldwhen 0..9999gold = $game_party.goldwhen 10000..99999gold = $game_party.gold.to_sarray = gold.split(//)gold = array[0].to_s+array[1].to_s+" "+array[2].to_s+array[3].to_s+array[4].to_swhen 100000..999999gold = $game_party.gold.to_sarray = gold.split(//)gold = array[0].to_s+array[1].to_s+array[2].to_s+" "+array[3].to_s+array[4].to_s+array[5].to_swhen 1000000..9999999gold = $game_party.gold.to_sarray = gold.split(//)gold = array[0].to_s+" "+array[1].to_s+array[2].to_s+array[3].to_s+" "+array[4].to_s+array[5].to_s+array[6].to_send#Draw Goldself.contents.font.color = system_colorgold_word = $data_system.words.gold.to_scx = contents.text_size(gold_word).widthcx2=contents.text_size(gold.to_s).widthself.contents.draw_text(4, 4, 120-cx-2, 32, gold_word)self.contents.font.color = normal_colorself.contents.draw_text(124-cx2+1, 4, cx2, 32, gold.to_s, 2)self.contents.font.color = system_color# Draw "Time"@total_sec = Graphics.frame_count / Graphics.frame_ratehour = @total_sec / 60 / 60min = @total_sec / 60 % 60sec = @total_sec % 60text = sprintf("%02d:%02d:%02d", hour, min, sec)self.contents.font.color = normal_colorself.contents.draw_text(4, -10, 120, 32, text, 2)self.contents.font.color = system_colorself.contents.draw_text(4, -10, 120, 32, "Tiempo")end#--------------------------------------------------------------------------# Update of The count#--------------------------------------------------------------------------def updatesuperif Graphics.frame_count / Graphics.frame_rate != @total_secrefreshendendend#==============================================================================# ■ Window_Mapname#------------------------------------------------------------------------------# Draws the Map name#==============================================================================class Window_Mapname < Window_Base#--------------------------------------------------------------------------# Set up#--------------------------------------------------------------------------def initializesuper(0, 0, 320, 44)self.contents = Bitmap.new(width - 52, height - 32)self.contents.font.name = $defaultfonttypeself.contents.font.size = $defaultfontsizerefreshend#--------------------------------------------------------------------------# Draws info on screen#--------------------------------------------------------------------------def refreshself.contents.clear# Map Name#map = $game_map.nameself.contents.font.color = system_colorself.contents.draw_text(4, -10, 220, 32, "Localización")self.contents.font.color = normal_colorself.contents.draw_text(120, -10, 310, 32, $game_map.name)endend#==============================================================================# ■ Scene_Menu#------------------------------------------------------------------------------# FF7 menu layout as requested by AcedentProne.#==============================================================================class Scene_Menu#--------------------------- edit-------------------------------attr_reader :status_window#/--------------------------- edit-------------------------------def initialize(menu_index = 0)@menu_index = menu_indexenddef main s1 = $data_system.words.items2 = "Materia"s3 = "LÃmite"s4 = $data_system.words.skills5 = $data_system.words.equips6 = "Estado"s7 = "Guardar"s8 = "Salir"#--------------------------- edit------------------------------- # Command menu@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8])@command_window.x = 640 - @command_window.width@command_window.y = 480@command_window.z = 110@command_window.index = @menu_index#If certain options are avaliableif $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)endif $game_system.save_disabled @command_window.disable_item(4)end#Showing location window@map = Window_Mapname.new@map.x = 640 - @map.width@map.y = 0 - @map.height - 1@map.z = 110#Showing the game stats@game_stats_window = Window_GameStats.new@game_stats_window.x = 0 - @game_stats_window.width@game_stats_window.y = 480 - @map.height - @game_stats_window.height@game_stats_window.z =110 #Showing the Menu Status window@status_window = Window_MenuStatus.new@status_window.x = 640@status_window.y = 8@status_window.z = 100 Graphics.transitionloop do Graphics.update Input.update update if $scene != self break endendGraphics.freeze@command_window.dispose@game_stats_window.dispose@status_window.dispose@map.disposeend#--------------------------------------------------------------------------#Defining the delay#--------------------------------------------------------------------------def delay(seconds)for i in 0...(seconds * 1) sleep 0.01 Graphics.updateendend#--------------------------------------------------------------------------# Updating#--------------------------------------------------------------------------def update@command_window.update@game_stats_window.update@status_window.update@map.update#Moving Windows inplacegamepos = 640 - @game_stats_window.widthmappos = 480 - @map.height - 1if @command_window.y > 0@command_window.y -= 60endif @game_stats_window.x < gamepos@game_stats_window.x += 80endif @map.y < mappos@map.y += 80endif @status_window.x > 0 @status_window.x -= 80end#Saying if options are activeif @command_window.active update_command returnendif @status_window.active update_status returnendend#--------------------------------------------------------------------------# Updating the Command Selection#--------------------------------------------------------------------------def update_command# If B button is pushedif Input.trigger?(Input::B) # Plays assigned SE $game_system.se_play($data_system.cancel_se) #Looping for moving windows out loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end# Go to Map$scene = Scene_Map.new returnend# If C button is pusedif Input.trigger?(Input::C) # Checks actor size if $game_party.actors.size == 0 and @command_window.index < 4 # plays SE $game_system.se_play($data_system.buzzer_se) return end case @command_window.index when 0 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Item.new when 1 $game_system.se_play($data_system.decision_se) $scene = Scene_MateriaEquip.new when 2 $game_system.se_play($data_system.decision_se) $scene = Scene_Limit.new when 3 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 5 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = true @status_window.index = 0 when 6 if $game_system.save_disabled $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Save.new when 7 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_End.new end returnendend#--------------------------------------------------------------------------# Updating Status Screen#--------------------------------------------------------------------------def update_statusif Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @command_window.active = true @status_window.active = false @status_window.index = -1 returnendif Input.trigger?(Input::C) case @command_window.index when 3 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) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Skill.new(@status_window.index) when 4 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Equip.new(@status_window.index) when 5 $game_system.se_play($data_system.decision_se) loop do if @command_window.y < 480 @command_window.y += 40 end if @game_stats_window.x > 0 - @game_stats_window.width @game_stats_window.x -= 40 end if @map.y > 0 - @map.height @map.y -= 40 end if @status_window.x < 640 @status_window.x += 40 end delay(0.5) if @status_window.x >= 640 break end end $scene = Scene_Status.new(@status_window.index) end returnendendend[/spoiler]Bien, asà como está, cuando salgas al menú la flecha saldrá 2 opciones por encima de la correcta... asà que vamos a arreglarlo. En Scene_Skill busca QUOTE$scene = Scene_Menu.new(1) y cambia el 1 por un 3.En Scene_Equip cambia el 2 de QUOTE$scene = Scene_Menu.new(2) por un 4.En Scene_Status cambia el 3 de QUOTE$scene = Scene_Menu.new(3) por un 5.En Scene_Save cambia el 4 de QUOTE$scene = Scene_Menu.new(4)por un 6, cuidado que aparece en dos sitios.En Scene_End cambia el 5 de QUOTE$scene = Scene_Menu.new(5)por un 7, también sale en dos sitios. Por el momento al menos el script deberÃa funcinar bien con eso incluido. 0 Share this post Link to post Share on other sites
Posted September 8, 2006 · Report post esta muy bien fegarur pero no se puede hacer algo para que se pueda elegir de quien cambiar la materia o el limite? 0 Share this post Link to post Share on other sites
Posted September 8, 2006 · Report post Cuando tienes seleccionado ya al protagonista, si pulsas W y Q (creo que eran esas) cambia entre los personajes. Al menos en el de materia... Y siento lo del lÃmite, pero no supe arreglar ese problemilla. 0 Share this post Link to post Share on other sites
Posted September 8, 2006 · Report post se como hacer k salga lo de legir pero no se como hacer que entonces salga para equipar lo de materia de ese personaje, o con el limite 0 Share this post Link to post Share on other sites
Posted September 8, 2006 · Report post Ya no recuerdo cómo funcionaba el de materia, pero su puedes elegir podrás equipar, ¿no? En el de lÃmite ya no se nada... 0 Share this post Link to post Share on other sites
Posted September 8, 2006 · Report post puedo elegir en los dos pero luego no me deja aceptar el personajee 0 Share this post Link to post Share on other sites
Posted September 8, 2006 · Report post Pues me has dejado K.O. No se... ¿alguien que sepa? 0 Share this post Link to post Share on other sites
Posted August 6, 2007 · Report post el d matria no me funciona con el sistema de mathura...parece q el d limites tampoko...pero no importa exelent script QUOTEPara abrir el limite es $scene = Scene_Limit.newEDIT: Fegarur ya que estas te puedes mirar el de limite, es k me da error de "Can't convert nil into string"Cuando se carga del todo y se llena la barra del ABSeso pasa xq algun scrip te krea conflicto.Revisa si no tienes el ABS y el de comandos individuales,por ejemplo saludosss! 0 Share this post Link to post Share on other sites