1-Scene CMS, Made by LegACy of RMXP.org |
|
|
|
|
Jul 19 2006, 09:16 AM
|
Level 8

Group: Banned
Posts: 115
Type: None
RM Skill: Beginner

|
Yep, a new script, but the script is in development. I have the latest version though.
Here it is!
[code]#============================================================= # 1-Scene Custom Menu System #============================================================= # LegACy # Version 1.16 # 7.14.06 #============================================================= # This script is a further development of Hydrolic's CMS # request. I enhance it toward every aspect of a menu system # so now it all operates in one scene full of animation. # There's an animated sprite and element wheel features. # There's also different category for items implemented. # Now there's enhanced equipment features as well as faceset # features. Don't forget the icon command feature, too! # The newest version now has an integrated party swapper! # # To put items into different catagory, simply apply # attributes to them, you can apply more than 1 attributes # to each item. In default, the attributes are : # :: 17 > Recovery items # :: 18 > Weaponry # :: 19 > Armor # :: 20 > Accessories # :: 21 > Key Items # :: 22 > Miscellanous Items # # Faceset pictures should be 'Potrait_', or 'Class_' if you based it # on actor's class, followed with the ID of the actor. So for Arshes # it will either 'Potrait_1' or 'Class_1' # # For customization, look in LegACy class, further explanation's # located there. # # Special thanks to Hydrolic for the idea, Diego for the # element wheel, SephirotSpawn for sprite animation, KGC # for the his AlterEquip script and Squall for his ASM. #=============================================================
#========================================================================== ==== # ** LegACy's Script Customization (CMS) #========================================================================== ==== class LegACy #-------------------------------------------------------------------------- # * Features Customization Constants #-------------------------------------------------------------------------- ANIMATED = false # True if you want to have animated chara feature. EXTRA_EQUIP = true # True if you want to use Enhanced Equipment feature. PARTY_SWAP = true # True if you want to use Party Swapper feature. BATTLE_BAR = true # True if you want to have bar for battle system. #-------------------------------------------------------------------------- # * Item Grouping Customization Constants #-------------------------------------------------------------------------- ITEMS = [17, 18, 19, 20, 21, 22] # Attributes ID for Item Catagory in order. #-------------------------------------------------------------------------- # * Display Customization Constants #-------------------------------------------------------------------------- ICON_NAME = ['menu', 'item'] # Image name for icon, first is for main menu while the second is for item command. POTRAIT = [false, false] # True if you want to use faceset instead of charset display, first is for front menu while the second is for status window. CLASS_POTRAIT = [false, false] # True if you want to base the faceset on class instead of actor, first is for front menu while the second is for status window. POTRAIT_DIR = 'Potrait_' # Image name for actor-based faceset. CLASS_DIR = 'Class_' # Image name for class-based faceset. #-------------------------------------------------------------------------- # * Element Wheel Customization Constants #-------------------------------------------------------------------------- ELEMENT_NUMBER = 8 # Number of elements applied in the element wheel. ELEMENTS = [1, 2, 3, 4, 5, 6, 7, 8] # Elements that appear on the element wheel, in order. end #========================================================================== ==== # ** Bitmap #========================================================================== ==== class Bitmap def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color) distance = (start_x - end_x).abs + (start_y - end_y).abs if end_color == start_color for i in 1..distance x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i if width == 1 self.set_pixel(x, y, start_color) else self.fill_rect(x, y, width, width, start_color) end end else for i in 1..distance x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i r = start_color.red * (distance-i)/distance + end_color.red * i/distance g = start_color.green * (distance-i)/distance + end_color.green * i/distance b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance if width == 1 self.set_pixel(x, y, Color.new(r, g, b, a)) else self.fill_rect(x, y, width, width, Color.new(r, g, b, a)) end end end end end
#========================================================================== ==== # ** Game_Actor #------------------------------------------------------------------------------ # This class handles the actor. It's used within the Game_Actors class # ($game_actors) and refers to the Game_Party class ($game_party). #========================================================================== ==== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # * Get Current Experience Points #-------------------------------------------------------------------------- def now_exp return @exp - @exp_list[@level] end #-------------------------------------------------------------------------- # * Get Needed Experience Points #-------------------------------------------------------------------------- def next_exp return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0 end end #========================================================================== ==== # ** Game_Party #------------------------------------------------------------------------------ # This class handles the party. It includes information on amount of gold # and items. Refer to "$game_party" for the instance of this class. #========================================================================== ==== class Game_Party #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :reserve # reserve actors #-------------------------------------------------------------------------- # * Alias Initialization #-------------------------------------------------------------------------- alias legacy_CMS_gameparty_init initialize #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize # Create reserve actor array @reserve = [] legacy_CMS_gameparty_init end #-------------------------------------------------------------------------- # * Add an Actor # actor_id : actor ID #-------------------------------------------------------------------------- def add_actor(actor_id) # Get actor actor = $game_actors[actor_id] # If the party has less than 4 members and this actor is not in the party if @actors.size < 4 and not @actors.include?(actor) # Add actor @actors.push(actor) else @reserve.push(actor) end # Refresh player $game_player.refresh end #-------------------------------------------------------------------------- # * Remove Actor # actor_id : actor ID #-------------------------------------------------------------------------- def remove_actor(actor_id) # Get actor actor = $game_actors[actor_id] # Delete actor @actors.delete(actor) if @actors.include?(actor) @reserve.delete(actor) if @reserve.include?(actor) # Refresh player $game_player.refresh end end #========================================================================== ==== # ** Game_Map #------------------------------------------------------------------------------ # This class handles the map. It includes scrolling and passable determining # functions. Refer to "$game_map" for the instance of this class. #========================================================================== ==== class Game_Map #-------------------------------------------------------------------------- # * Get Map Name #-------------------------------------------------------------------------- def name load_data("Data/MapInfos.rxdata")[@map_id].name end end #========================================================================== ==== # ** Window_Base #------------------------------------------------------------------------------ # This class is for all in-game windows. #========================================================================== ==== class Window_Base < Window FONT_SIZE = 16 GRAPH_SCALINE_COLOR = Color.new(255, 255, 255, 128) GRAPH_SCALINE_COLOR_SHADOW = Color.new( 0, 0, 0, 192) GRAPH_LINE_COLOR = Color.new(255, 255, 64, 255) GRAPH_LINE_COLOR_MINUS = Color.new( 64, 255, 255, 255) GRAPH_LINE_COLOR_PLUS = Color.new(255, 64, 64, 255) def draw_actor_element_radar_graph(actor, x, y, radius = 43) cx = x + radius + FONT_SIZE + 48 cy = y + radius + FONT_SIZE + 32 for loop_i in 0..LegACy::ELEMENT_NUMBER if loop_i != 0 @pre_x = @now_x @pre_y = @now_y @pre_ex = @now_ex @pre_ey = @now_ey @color1 = @color2 end if loop_i == LegACy::ELEMENT_NUMBER eo = LegACy::ELEMENTS[0] else eo = LegACy::ELEMENTS[loop_i] end er = actor.element_rate(eo) estr = $data_system.elements[eo] @color2 = er < 0 ? GRAPH_LINE_COLOR_MINUS : er > 100 ? GRAPH_LINE_COLOR_PLUS : GRAPH_LINE_COLOR er = er.abs th = Math::PI * (0.5 - 2.0 * loop_i / LegACy::ELEMENT_NUMBER) @now_x = cx + (radius * Math.cos(th)).floor @now_y = cy - (radius * Math.sin(th)).floor @now_wx = cx - 6 + ((radius + FONT_SIZE * 3 / 2) * Math.cos(th)).floor - FONT_SIZE @now_wy = cy - ((radius + FONT_SIZE * 1 / 2) * Math.sin(th)).floor - FONT_SIZE/2 @now_vx = cx + ((radius + FONT_SIZE * 8 / 2) * Math.cos(th)).floor - FONT_SIZE @now_vy = cy - ((radius + FONT_SIZE * 3 / 2) * Math.sin(th)).floor - FONT_SIZE/2 @now_ex = cx + (er*radius/100 * Math.cos(th)).floor @now_ey = cy - (er*radius/100 * Math.sin(th)).floor if loop_i == 0 @pre_x = @now_x @pre_y = @now_y @pre_ex = @now_ex @pre_ey = @now_ey @color1 = @color2 else end next if loop_i == 0 self.contents.draw_line(cx+1,cy+1, @now_x+1,@now_y+1, GRAPH_SCALINE_COLOR_SHADOW) self.contents.draw_line(@pre_x+1,@pre_y+1, @now_x+1,@now_y+1, GRAPH_SCALINE_COLOR_SHADOW) self.contents.draw_line(cx,cy, @now_x,@now_y, GRAPH_SCALINE_COLOR) self.contents.draw_line(@pre_x,@pre_y, @now_x,@now_y, GRAPH_SCALINE_COLOR) self.contents.draw_line(@pre_ex,@pre_ey, @now_ex,@now_ey, @color1, 2, @color2) self.contents.font.color = system_color self.contents.draw_text(@now_wx,@now_wy, FONT_SIZE*3.1, FONT_SIZE, estr, 1) self.contents.font.color = Color.new(255,255,255,128) self.contents.draw_text(@now_vx,@now_vy, FONT_SIZE*2, FONT_SIZE, er.to_s + "%", 2) self.contents.font.color = normal_color end end #-------------------------------------------------------------------------- # Draw Stat Bar # actor : actor # x : bar x-coordinate # y : bar y-coordinate # stat : stat to be displayed #-------------------------------------------------------------------------- def draw_bar(actor, x, y, stat, width = 156, height = 7) bar_color = Color.new(0, 0, 0, 255) end_color = Color.new(255, 0, 0, 255) max = 10 case stat when "hp" bar_color = Color.new(150, 0, 0, 255) end_color = Color.new(255, 255, 60, 255) min = actor.hp max = actor.maxhp when "sp" bar_color = Color.new(0, 0, 155, 255) end_color = Color.new(255, 255, 255, 255) min = actor.sp max = actor.maxsp when "exp" bar_color = Color.new(0, 155, 0, 255) end_color = Color.new(255, 255, 255, 255) unless actor.level == $data_actors[actor.id].final_level min = actor.now_exp max = actor.next_exp else min = 1 max = 1 end end # Draw Border for i in 0..height self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255)) end # Draw Background for i in 1..(height - 1) r = 100 * (height - i) / height + 0 * i / height g = 100 * (height - i) / height + 0 * i / height b = 100 * (height - i) / height + 0 * i / height a = 255 * (height - i) / height + 255 * i / height self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a)) end # Draws Bar for i in 1..( (min.to_f / max.to_f) * width - 1) for j in 1..(height - 1) r = bar_color.red * (width - i) / width + end_color.red * i / width g = bar_color.green * (width - i) / width + end_color.green * i / width b = bar_color.blue * (width - i) / width + end_color.blue * i / width a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a)) end end case stat when "hp" draw_actor_hp(actor, x - 1, y - 18) when "sp" draw_actor_sp(actor, x - 1, y - 18) when "exp" draw_actor_exp(actor, x - 1, y - 18) end end #-------------------------------------------------------------------------- # * Draw Sprite #-------------------------------------------------------------------------- def draw_sprite(x, y, name, hue, frame) bitmap = RPG::Cache.character(name, hue) cw = bitmap.width / 4 ch = bitmap.height / 4 # Current Animation Slide case frame when 0;b = 0 when 1;b = cw when 2;b = cw * 2 when 3;b = cw * 3 end # Bitmap Rectange src_rect = Rect.new(b, 0, cw, ch) # Draws Bitmap self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) end #-------------------------------------------------------------------------- # * Get Upgrade Text Color #-------------------------------------------------------------------------- def up_color return Color.new(74, 210, 74) end #-------------------------------------------------------------------------- # * Get Downgrade Text Color #-------------------------------------------------------------------------- def down_color return Color.new(170, 170, 170) end #-------------------------------------------------------------------------- # * Draw Potrait # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_actor_potrait(actor, x, y, classpotrait = false, width = 96, height = 96) classpotrait ? bitmap = RPG::Cache.picture(LegACy::CLASS_DIR + actor.class_id.to_s) : bitmap = RPG::Cache.picture(LegACy::CLASS_DIR + actor.id.to_s) src_rect = Rect.new(0, 0, width, height) self.contents.blt(x, y, bitmap, src_rect) end #-------------------------------------------------------------------------- # * Draw parameter # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # type : parameter type #------------------------------------------------------------------------ def draw_actor_parameter(actor, x, y, type, width = 120) case type when 0 parameter_name = $data_system.words.atk parameter_value = actor.atk when 1 parameter_name = $data_system.words.pdef parameter_value = actor.pdef when 2 parameter_name = $data_system.words.mdef parameter_value = actor.mdef when 3 parameter_name = $data_system.words.str parameter_value = actor.str when 4 parameter_name = $data_system.words.dex parameter_value = actor.dex when 5 parameter_name = $data_system.words.agi parameter_value = actor.agi when 6 parameter_name = $data_system.words.int parameter_value = actor.int when 7 parameter_name = "Evasion" parameter_value = actor.eva end self.contents.font.color = system_color self.contents.draw_text(x, y, 120, 32, parameter_name) self.contents.font.color = normal_color self.contents.draw_text(x + width, y, 36, 32, parameter_value.to_s, 2) end end #========================================================================== ==== # ** Window_NewCommand #------------------------------------------------------------------------------ # This window deals with general command choices. #========================================================================== ====
class Window_NewCommand < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # width : window width # commands : command text string array #-------------------------------------------------------------------------- def initialize(width, commands, icon) # Compute window height from command quantity super(0, 0, width, commands.size / 3 * 32 + 32) @item_max = commands.size @commands = commands @icon = icon @column_max = 3 self.contents = Bitmap.new(width - 32, @item_max/3 * 32) refresh self.index = 0 end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...@item_max draw_item(i, normal_color) end end #-------------------------------------------------------------------------- # * Draw Item # index : item number # color : text color #-------------------------------------------------------------------------- def draw_item(index, color) self.contents.font.color = color self.contents.font.size = 20 self.contents.font.bold = true rect = Rect.new((109 * (index / 2)), 32 * (index % 2), self.width / @column_max - 12, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(@icon + index.to_s) self.contents.blt((106 * (index / 2)), 32 * (index % 2) + 4, bitmap, Rect.new(0, 0, 24, 24)) self.contents.draw_text(rect, @commands[index]) end #-------------------------------------------------------------------------- # * Disable Item # index : item number #-------------------------------------------------------------------------- def disable_item(index) draw_item(index, disabled_color) end end
#========================================================================== ==== # ** Window_NewMenuStatus #------------------------------------------------------------------------------ # This window displays party member status on the menu screen. #========================================================================== ====
class Window_NewMenuStatus < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize $game_party.actors.size < 4 ? i = 14 : i = 0 $game_party.actors.size == 1 ? i = 24 : i = i if $game_party.actors.size <= 4 super(0, 0, 480, ($game_party.actors.size * 84) + i) else super(0, 0, 480, (4 * 84) + i) end self.contents = Bitmap.new(width - 32, height - 32) refresh self.active = false end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...$game_party.actors.size x = 4 y = (i * 76) - 6 actor = $game_party.actors[i] self.contents.font.size = 19 self.contents.font.bold = true draw_actor_class(actor, x, y - 1) draw_actor_state(actor, x + 160, y - 1) self.contents.font.size = 15 draw_actor_parameter(actor, x, y + 14, 0) draw_actor_parameter(actor, x, y + 29, 1) draw_actor_parameter(actor, x, y + 44, 2) draw_actor_parameter(actor, x, y + 59, 3) draw_actor_parameter(actor, x + 240, y + 14, 4) draw_actor_parameter(actor, x + 240, y + 29, 5) draw_actor_parameter(actor, x + 240, y + 44, 6) draw_bar(actor, x + 240, y + 75, 'exp') end end end
#========================================================================== ==== # ** Window_Actor #------------------------------------------------------------------------------ # This window displays party member status on the menu screen. #========================================================================== ====
class Window_Actor < Window_Selectable #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :party # party switcher #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize $game_party.actors.size < 4 ? i = 14 : i = 0 $game_party.actors.size == 1 ? i = 24 : i = i super(0, 0, 160, ($game_party.actors.size * 84) + i) self.contents = Bitmap.new(width - 32, height - 32) @frame = 0 @party = false refresh self.active = false self.index = -1 end #-------------------------------------------------------------------------- # * Returning Party Swapping State #-------------------------------------------------------------------------- def party return @party end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear @party ? @item_max = $game_party.actors.size : @item_max = 4 $game_party.actors.size <= 4 ? @item_max = $game_party.actors.size : a = 0 self.contents = Bitmap.new(width - 32, (@item_max * 84) - 32) for i in 0...@item_max x = 4 y = (i * 77) - 12 actor = $game_party.actors[i] self.contents.font.size = 17 self.contents.font.bold = true LegACy::POTRAIT[0] ? draw_actor_potrait(actor, x, y - 1, LegACy::CLASS_POTRAIT[0]) : draw_sprite(x + 20, y + 57, actor.character_name, actor.character_hue, @frame) draw_actor_name(actor, x + 52, y + 6) draw_actor_level(actor, x + 52, y + 24) draw_bar(actor, x - 3, y + 60, 'hp', 120) draw_bar(actor, x - 3, y + 75, 'sp', 120) end end #-------------------------------------------------------------------------- # * Cursor Rectangle Update #-------------------------------------------------------------------------- def update_cursor_rect @index > 3 ? self.oy = (@index - 3) * 77 : self.oy = 0 if @index < 0 self.cursor_rect.empty else self.cursor_rect.set(-4, (@index * 77) - 2 - self.oy, self.width - 24, 77) end end #-------------------------------------------------------------------------- # Frame Update #-------------------------------------------------------------------------- def frame_update @frame == 3 ? @frame = 0 : @frame += 1 refresh end end #========================================================================== ==== # ** Window_Stat #------------------------------------------------------------------------------ # This window displays play time on the menu screen. #========================================================================== ====
class Window_Stat < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 320, 96) self.contents = Bitmap.new(width - 32, height - 32) refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.color = system_color self.contents.font.size = 18 self.contents.font.bold = true self.contents.draw_text(4, -4, 120, 32, "Play Time") cx = contents.text_size($data_system.words.gold).width self.contents.draw_text(4, 18, 120, 32, "Step Count") self.contents.draw_text(4, 38, cx, 32, $data_system.words.gold, 2) @total_sec = Graphics.frame_count / Graphics.frame_rate hour = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 text = sprintf("%02d:%02d:%02d", hour, min, sec) self.contents.font.color = normal_color self.contents.draw_text(144, -4, 120, 32, text, 2) self.contents.draw_text(144, 18, 120, 32, $game_party.steps.to_s, 2) self.contents.draw_text(144, 40, 120, 32, $game_party.gold.to_s, 2) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if Graphics.frame_count / Graphics.frame_rate != @total_sec refresh end end end #========================================================================== ==== # ** Window_Location #------------------------------------------------------------------------------ # This window displays current map name. #========================================================================== ==== class Window_Location < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 640, 48) self.contents = Bitmap.new(width - 32, height - 32) refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.color = system_color self.contents.font.bold = true self.contents.font.size = 20 self.contents.draw_text(4, -4, 120, 24, "Location") self.contents.font.color = normal_color self.contents.draw_text(170, -4, 400, 24, $game_map.name.to_s, 2) end end #========================================================================== ==== # ** Window_NewHelp #------------------------------------------------------------------------------ # This window shows skill and item explanations along with actor status. #========================================================================== ====
class Window_NewHelp < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 640, 48) self.contents = Bitmap.new(width - 32, height - 32) end #-------------------------------------------------------------------------- # * Set Text # text : text string displayed in window # align : alignment (0..flush left, 1..center, 2..flush right) #-------------------------------------------------------------------------- def set_text(text, align = 0) self.contents.font.bold = true self.contents.font.size = 20 # If at least one part of text and alignment differ from last time if text != @text or align != @align # Redraw text self.contents.clear self.contents.font.color = normal_color self.contents.draw_text(4, -4, self.width - 40, 24, text, align) @text = text @align = align @actor = nil end self.visible = true end end
#========================================================================== ==== # ** Window_NewItem #------------------------------------------------------------------------------ # This window displays items in possession on the item and battle screens. #========================================================================== ====
class Window_NewItem < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 96, 480, 336) @column_max = 2 @attribute = LegACy::ITEMS[0] refresh self.index = 0 self.active = false end #-------------------------------------------------------------------------- # * Get Item #-------------------------------------------------------------------------- def item return @data[self.index] end #-------------------------------------------------------------------------- # * Updates Window With New Item Type # attribute : new item type #-------------------------------------------------------------------------- def update_item(attribute) @attribute = attribute refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Add item for i in 1...$data_items.size if $game_party.item_number(i) > 0 and $data_items[i].element_set.include?(@attribute) @data.push($data_items[i]) end end # Also add weapons and armors for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 and $data_weapons[i].element_set.include?(@attribute) @data.push($data_weapons[i]) end end for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 and $data_armors[i].guard_element_set.include?(@attribute) @data.push($data_armors[i]) end end # If item count is not 0, make a bit map and draw all items @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] case item when RPG::Item number = $game_party.item_number(item.id) when RPG::Weapon number = $game_party.weapon_number(item.id) when RPG::Armor number = $game_party.armor_number(item.id) end if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end x = 4 + index % 2 * (208 + 32) y = index / 2 * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(item.icon_name) opacity = self.contents.font.color == normal_color ? 255 : 128 self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 132, 32, item.name, 0) self.contents.draw_text(x + 160, y, 16, 32, ":", 1) self.contents.draw_text(x + 176, y, 24, 32, number.to_s, 2) end #-------------------------------------------------------------------------- # * Help Text Update #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end #========================================================================== ==== # ** Window_NewSkill #------------------------------------------------------------------------------ # This window displays usable skills on the skill screen. #========================================================================== ====
class Window_NewSkill < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize(actor) super(0, 96, 480, 336) @actor = actor @column_max = 2 refresh self.index = 0 self.active = false end #-------------------------------------------------------------------------- # * Acquiring Skill #-------------------------------------------------------------------------- def skill return @data[self.index] end #-------------------------------------------------------------------------- # * Updates Window With New Actor # actor : new actor #-------------------------------------------------------------------------- def update_actor(actor) @actor = actor refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] for i in 0...@actor.skills.size skill = $data_skills[@actor.skills[i]] if skill != nil @data.push(skill) end end # If item count is not 0, make a bit map and draw all items @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) skill = @data[index] if @actor.skill_can_use?(skill.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end x = 4 + index % 2 * (208 + 32) y = index / 2 * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(skill.icon_name) opacity = self.contents.font.color == normal_color ? 255 : 128 self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 124, 32, skill.name, 0) self.contents.draw_text(x + 152 , y, 48, 32, skill.sp_cost.to_s, 2) end #-------------------------------------------------------------------------- # * Help Text Update #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.skill == nil ? "" : self.skill.description) end end
#========================================================================== ==== # ** Window_EquipStat #------------------------------------------------------------------------------ # This window displays actor parameter changes on the equipment screen. #========================================================================== ==== class Window_EquipStat < Window_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :changes attr_accessor :mode #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize(actor) super(0, 96, 240, 336) self.contents = Bitmap.new(width - 32, height - 32) @actor = actor @changes = [0, 0, 0, 0, 0, 0, 0, 0] @mode = 0 @elem_text = "" @stat_text = "" refresh end #-------------------------------------------------------------------------- # * Updates Window With New Actor # actor : new actor #-------------------------------------------------------------------------- def update_actor(actor) @actor = actor refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.size = 18 self.contents.font.bold = true for i in 0..7 draw_actor_parameter(@actor, 16, (i * 20) - 8, i, 96) end self.contents.font.color = system_color oldelem_text = "" oldstat_text = "" if @mode == 0 item = $data_weapons[@actor.weapon_id] if item != nil more = false for i in item.element_set next if i == LegACy::ITEMS[0] || i == LegACy::ITEMS[1] || i == LegACy::ITEMS[2] || i == LegACy::ITEMS[3] || i == LegACy::ITEMS[4] || i == LegACy::ITEMS[5] oldelem_text += ", " if more oldelem_text += $data_system.elements[i].to_s more = true end more = false for i in item.plus_state_set oldstat_text += ", " if more oldstat_text += $data_states[i].name more = true end else oldelem_text = "" oldstat_text = "" end else item = $data_armors[eval("@actor.armor#{mode}_id")] if item != nil more = false for i in item.guard_element_set next if i == LegACy::ITEMS[0] || i == LegACy::ITEMS[1] || i == LegACy::ITEMS[2] || i == LegACy::ITEMS[3] || i == LegACy::ITEMS[4] || i == LegACy::ITEMS[5] oldelem_text += ", " if more oldelem_text += $data_system.elements[i].to_s more = true end more = false for i in item.guard_state_set oldstat_text += ", " if more oldstat_text += $data_states[i].name more = true end else oldelem_text = "" oldstat_text = "" end end if @mode == 0 self.contents.draw_text(4, 176, 200, 32, "Elemental Attack:") self.contents.draw_text(4, 240, 200, 32, "Status Attack:") else self.contents.draw_text(4, 176, 200, 32, "Elemental Defense:") self.contents.draw_text(4, 240, 200, 32, "Status Defense:") end self.contents.font.color = normal_color self.contents.draw_text(24, 194, 220, 32, oldelem_text) self.contents.draw_text(24, 258, 220, 32, oldstat_text) if @elem_text != "" self.contents.draw_text(24, 218, 220, 32, @elem_text) end if @stat_text != "" self.contents.draw_text(24, 282, 220, 32, @stat_text)
__________________________
Duplicate account
|
|
|
|
|
|
|
|
|
Jul 19 2006, 09:34 AM
|
Level 8

Group: Banned
Posts: 115
Type: None
RM Skill: Beginner

|
Oh, crud, it cut me off!!
[code] #========================================================================== ==== # ** Window_EquipStat #------------------------------------------------------------------------------ # This window displays actor parameter changes on the equipment screen. #========================================================================== ==== class Window_EquipStat < Window_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :changes attr_accessor :mode #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize(actor) super(0, 96, 240, 336) self.contents = Bitmap.new(width - 32, height - 32) @actor = actor @changes = [0, 0, 0, 0, 0, 0, 0, 0] @mode = 0 @elem_text = "" @stat_text = "" refresh end #-------------------------------------------------------------------------- # * Updates Window With New Actor # actor : new actor #-------------------------------------------------------------------------- def update_actor(actor) @actor = actor refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.size = 18 self.contents.font.bold = true for i in 0..7 draw_actor_parameter(@actor, 16, (i * 20) - 8, i, 96) end self.contents.font.color = system_color oldelem_text = "" oldstat_text = "" if @mode == 0 item = $data_weapons[@actor.weapon_id] if item != nil more = false for i in item.element_set next if i == LegACy::ITEMS[0] || i == LegACy::ITEMS[1] || i == LegACy::ITEMS[2] || i == LegACy::ITEMS[3] || i == LegACy::ITEMS[4] || i == LegACy::ITEMS[5] oldelem_text += ", " if more oldelem_text += $data_system.elements[i].to_s more = true end more = false for i in item.plus_state_set oldstat_text += ", " if more oldstat_text += $data_states[i].name more = true end else oldelem_text = "" oldstat_text = "" end else item = $data_armors[eval("@actor.armor#{mode}_id")] if item != nil more = false for i in item.guard_element_set next if i == LegACy::ITEMS[0] || i == LegACy::ITEMS[1] || i == LegACy::ITEMS[2] || i == LegACy::ITEMS[3] || i == LegACy::ITEMS[4] || i == LegACy::ITEMS[5] oldelem_text += ", " if more oldelem_text += $data_system.elements[i].to_s more = true end more = false for i in item.guard_state_set oldstat_text += ", " if more oldstat_text += $data_states[i].name more = true end else oldelem_text = "" oldstat_text = "" end end if @mode == 0 self.contents.draw_text(4, 176, 200, 32, "Elemental Attack:") self.contents.draw_text(4, 240, 200, 32, "Status Attack:") else self.contents.draw_text(4, 176, 200, 32, "Elemental Defense:") self.contents.draw_text(4, 240, 200, 32, "Status Defense:") end self.contents.font.color = normal_color self.contents.draw_text(24, 194, 220, 32, oldelem_text) self.contents.draw_text(24, 258, 220, 32, oldstat_text) if @elem_text != "" self.contents.draw_text(24, 218, 220, 32, @elem_text) end if @stat_text != "" self.contents.draw_text(24, 282, 220, 32, @stat_text) end if @new_atk != nil self.contents.font.color = system_color self.contents.draw_text(152, -8, 32, 32, "??", 1) if @changes[0] == 0 self.contents.font.color = normal_color elsif @changes[0] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(176, -8, 32, 32, @new_atk.to_s, 2) end if @new_pdef != nil self.contents.font.color = system_color self.contents.draw_text(152, 12, 32, 32, "??", 1) if @changes[1] == 0 self.contents.font.color = normal_color elsif @changes[1] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(176, 12, 32, 32, @new_pdef.to_s, 2) end if @new_mdef != nil self.contents.font.color = system_color self.contents.draw_text(152, 32, 32, 32, "??", 1) if @changes[2] == 0 self.contents.font.color = normal_color elsif @changes[2] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(176, 32, 32, 32, @new_mdef.to_s, 2) end if @new_str != nil self.contents.font.color = system_color self.contents.draw_text(152, 52, 32, 32, "??", 1) if @changes[3] == 0 self.contents.font.color = normal_color elsif @changes[3] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(176, 52, 32, 32, @new_str.to_s, 2) end if @new_dex != nil self.contents.font.color = system_color self.contents.draw_text(152, 72, 32, 32, "??", 1) if @changes[4] == 0 self.contents.font.color = normal_color elsif @changes[4] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(176, 72, 32, 32, @new_dex.to_s, 2) end if @new_agi != nil self.contents.font.color = system_color self.contents.draw_text(152, 92, 32, 32, "??", 1) if @changes[5] == 0 self.contents.font.color = normal_color elsif @changes[5] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(176, 92, 32, 32, @new_agi.to_s, 2) end if @new_int != nil self.contents.font.color = system_color self.contents.draw_text(152, 112, 32, 32, "??", 1) if @changes[6] == 0 self.contents.font.color = normal_color elsif @changes[6] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(176, 112, 32, 32, @new_int.to_s, 2) end if @new_eva != nil self.contents.font.color = system_color self.contents.draw_text(152, 132, 32, 32, "??", 1) if @changes[7] == 0 self.contents.font.color = normal_color elsif @changes[7] == -1 self.contents.font.color = down_color else self.contents.font.color = up_color end self.contents.draw_text(176, 132, 32, 32, @new_eva.to_s, 2) end end #-------------------------------------------------------------------------- # * Set parameters after changing equipment # new_atk : attack power after changing equipment # new_pdef : physical defense after changing equipment # new_mdef : magic defense after changing equipment # new_str : strength after changing equipment # new_dex : dexterity after changing equipment # new_agi : agility after changing equipment # new_int : inteligence after changing equipment # new_eva : evasion after changing equipment #-------------------------------------------------------------------------- def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int, new_eva, elem_text, stat_text) flag = false if new_atk != @new_atk || new_pdef != @new_pdef || new_str != @new_str || new_mdef != @new_mdef || new_dex != @new_dex || new_agi != @new_agi || new_eva != @new_eva || elem_text != @elem_text || stat_text != @stat_text flag = true end @new_atk = new_atk @new_pdef = new_pdef @new_mdef = new_mdef @new_str = new_str @new_dex = new_dex @new_agi = new_agi @new_int = new_int @new_eva = new_eva @elem_text = elem_text @stat_text = stat_text if flag refresh end end end #========================================================================== ==== # ** Window_Equipment #------------------------------------------------------------------------------ # This window displays items the actor is currently equipped with on the # equipment screen. #========================================================================== ====
class Window_Equipment < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize(actor) super(0, 96, 240, 176) self.contents = Bitmap.new(width - 32, height - 32) @actor = actor refresh self.index = 0 self.active = false end #-------------------------------------------------------------------------- # * Updates Window With New Actor # actor : new actor #-------------------------------------------------------------------------- def update_actor(actor) @actor = actor refresh end #-------------------------------------------------------------------------- # * Item Acquisition #-------------------------------------------------------------------------- def item return @data[self.index] end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear @data = [] @data.push($data_weapons[@actor.weapon_id]) @data.push($data_armors[@actor.armor1_id]) @data.push($data_armors[@actor.armor2_id]) @data.push($data_armors[@actor.armor3_id]) @data.push($data_armors[@actor.armor4_id]) @item_max = @data.size self.contents.font.color = system_color self.contents.font.size = 19 self.contents.font.bold = true self.contents.draw_text(0, 28 * 0, 76, 32, $data_system.words.weapon) self.contents.draw_text(0, 28 * 1, 76, 32, $data_system.words.armor1) self.contents.draw_text(0, 28 * 2, 76, 32, $data_system.words.armor2) self.contents.draw_text(0, 28 * 3, 76, 32, $data_system.words.armor3) self.contents.draw_text(0, 28 * 4, 76, 32, $data_system.words.armor4) self.contents.font.bold = false for i in 0..4 draw_item_name(@data[i], 76, 28 * i) end end #-------------------------------------------------------------------------- # * Update Cursor Rectangle #-------------------------------------------------------------------------- def update_cursor_rect # Calculate cursor width cursor_width = self.width / @column_max - 24 # Calculate cursor coordinates x = @index % @column_max * (cursor_width + 24) y = @index * 28 # Update cursor rectangle self.cursor_rect.set(x - 4, y, cursor_width, 32) end def update #super # If cursor is movable if self.active and @item_max > 0 and @index >= 0 # If pressing down on the directional buttons if Input.repeat?(Input::DOWN) # If column count is 1 and directional button was pressed down with no # repeat, or if cursor position is more to the front than # (item count - column count) if (@column_max == 1 and Input.trigger?(Input::DOWN)) or @index < @item_max - @column_max # Move cursor down $game_system.se_play($data_system.cursor_se) @index = (@index + @column_max) % @item_max end end # If the up directional button was pressed if Input.repeat?(Input::UP) # If column count is 1 and directional button was pressed up with no # repeat, or if cursor position is more to the back than column count if (@column_max == 1 and Input.trigger?(Input::UP)) or @index >= @column_max # Move cursor up $game_system.se_play($data_system.cursor_se) @index = (@index - @column_max + @item_max) % @item_max end end # If the right directional button was pressed if Input.repeat?(Input::RIGHT) # If column count is 2 or more, and cursor position is closer to front # than (item count -1) if @column_max >= 2 and @index < @item_max - 1 # Move cursor right $game_system.se_play($data_system.cursor_se) @index += 1 end end # If the left directional button was pressed if Input.repeat?(Input::LEFT) # If column count is 2 or more, and cursor position is more back than 0 if @column_max >= 2 and @index > 0 # Move cursor left $game_system.se_play($data_system.cursor_se) @index -= 1 end end end # Update help text (update_help is defined by the subclasses) if self.active and @help_window != nil update_help end # Update cursor rectangle update_cursor_rect end #-------------------------------------------------------------------------- # * Help Text Update #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end #========================================================================== ==== # ** Window_EquipmentItem #------------------------------------------------------------------------------ # This window displays choices when opting to change equipment on the # equipment screen. #========================================================================== ====
class Window_EquipmentItem < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # actor : actor # equip_type : equip region (0-3) #-------------------------------------------------------------------------- def initialize(actor, equip_type) super(0, 272, 240, 160) @actor = actor @equip_type = equip_type refresh self.active = false self.index = -1 end #-------------------------------------------------------------------------- # * Updates Window With New Actor # actor : new actor #-------------------------------------------------------------------------- def update_actor(actor) @actor = actor refresh end #-------------------------------------------------------------------------- # * Updates Window With New Equipment Type # equip_type : new teyp of equipment #-------------------------------------------------------------------------- def update_equipment(equip_type) @equip_type = equip_type refresh end #-------------------------------------------------------------------------- # * Item Acquisition #-------------------------------------------------------------------------- def item if self.index == 0 return @data[@item_max - 1] else return @data[self.index - 1] end end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Add equippable weapons if @equip_type == 0 weapon_set = $data_classes[@actor.class_id].weapon_set for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 and weapon_set.include?(i) @data.push($data_weapons[i]) end end end # Add equippable armor if @equip_type != 0 armor_set = $data_classes[@actor.class_id].armor_set for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 and armor_set.include?(i) if $data_armors[i].kind == @equip_type-1 @data.push($data_armors[i]) end end end end # Add blank page @data.push(nil) # Make a bit map and draw all items @item_max = @data.size self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max - 1 draw_item(i) end self.contents.draw_text(4, 0, 204, 32, 'Unequip', 0) end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] x = 4 y = (index + 1) * 32 case item when RPG::Weapon number = $game_party.weapon_number(item.id) when RPG::Armor number = $game_party.armor_number(item.id) end bitmap = RPG::Cache.icon(item.icon_name) self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24)) self.contents.font.color = normal_color self.contents.font.size = 20 self.contents.font.bold = true self.contents.draw_text(x + 28, y, 132, 32, item.name, 0) self.contents.draw_text(x + 160, y, 12, 32, ":", 1) self.contents.draw_text(x + 176, y, 24, 32, number.to_s, 2) end #-------------------------------------------------------------------------- # * Help Text Update #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.item == nil ? 'Unequip the current equipment.' : self.item.description) end end #========================================================================== ==== # ** Window_Status #------------------------------------------------------------------------------ # This window displays full status specs on the status screen. #========================================================================== ====
class Window_NewStatus < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize(actor) super(0, 96, 640, 336) self.contents = Bitmap.new(width - 32, height - 32) @actor = actor refresh self.active = false end #-------------------------------------------------------------------------- # * Updates Window With New Actor # actor : new actor #-------------------------------------------------------------------------- def update_actor(actor) @actor = actor refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.size = 22 self.contents.font.bold = false draw_actor_name(@actor, 12, 0) if LegACy::POTRAIT[1] draw_actor_potrait(@actor, 12, 40, LegACy::POTRAIT[1]) draw_bar(@actor, 120, 60, 'hp', 200) draw_bar(@actor, 120, 92, 'sp', 200) draw_bar(@actor, 120, 124, 'exp', 200) else draw_actor_graphic(@actor, 40, 120) draw_bar(@actor, 96, 60, 'hp', 200) draw_bar(@actor, 96, 92, 'sp', 200) draw_bar(@actor, 96, 124, 'exp', 200) end draw_actor_class(@actor, 262, 0) draw_actor_level(@actor, 184, 0) draw_actor_state(@actor, 96, 0) self.contents.font.size = 17 self.contents.font.bold = true for i in 0..7 draw_actor_parameter(@actor, 386, (i * 20) - 6, i) end self.contents.font.color = system_color self.contents.font.size = 16 draw_actor_element_radar_graph(@actor, 48, 136) self.contents.font.size = 18 self.contents.font.color = system_color self.contents.draw_text(380, 156, 96, 32, "Equipment") self.contents.draw_text(300, 180, 96, 32, "Weapon") self.contents.draw_text(300, 204, 96, 32, "Shield") self.contents.draw_text(300, 228, 96, 32, "Helmet") self.contents.draw_text(300, 252, 96, 32, "Armor") self.contents.draw_text(300, 276, 96, 32, "Accessory") equip = $data_weapons[@actor.weapon_id] if @actor.equippable?(equip) draw_item_name($data_weapons[@actor.weapon_id], 406, 180) else self.contents.font.color = knockout_color self.contents.draw_text(406, 180, 192, 32, "Nothing equipped") end equip1 = $data_armors[@actor.armor1_id] if @actor.equippable?(equip1) draw_item_name($data_armors[@actor.armor1_id], 406, 204) else self.contents.font.color = crisis_color self.contents.draw_text(406, 204, 192, 32, "Nothing equipped") end equip2 = $data_armors[@actor.armor2_id] if @actor.equippable?(equip2) draw_item_name($data_armors[@actor.armor2_id], 406, 228) else self.contents.font.color = crisis_color self.contents.draw_text(406, 228, 192, 32, "Nothing equipped") end equip3 = $data_armors[@actor.armor3_id] if @actor.equippable?(equip3) draw_item_name($data_armors[@actor.armor3_id], 406, 252) else self.contents.font.color = crisis_color self.contents.draw_text(406, 252, 192, 32, "Nothing equipped") end equip4 = $data_armors[@actor.armor4_id] if @actor.equippable?(equip4) draw_item_name($data_armors[@actor.armor4_id], 406, 276) else self.contents.font.color = crisis_color self.contents.draw_text(406, 276, 192, 32, "Nothing equipped") end end def dummy self.contents.font.color = system_color self.contents.draw_text(320, 112, 96, 32, $data_system.words.weapon) self.contents.draw_text(320, 176, 96, 32, $data_system.words.armor1) self.contents.draw_text(320, 240, 96, 32, $data_system.words.armor2) self.contents.draw_text(320, 304, 96, 32, $data_system.words.armor3) self.contents.draw_text(320, 368, 96, 32, $data_system.words.armor4) draw_item_name($data_weapons[@actor.weapon_id], 320 + 24, 144) draw_item_name($data_armors[@actor.armor1_id], 320 + 24, 208) draw_item_name($data_armors[@actor.armor2_id], 320 + 24, 272) draw_item_name($data_armors[@actor.armor3_id], 320 + 24, 336) draw_item_name($data_armors[@actor.armor4_id], 320 + 24, 400) end end #========================================================================== ==== # ** Window_File #------------------------------------------------------------------------------ # This window shows a list of recorded save files. #========================================================================== ====
class Window_File < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize() super(0, 96, 320, 336) self.contents = Bitmap.new(width - 32, 99 * 32) index = $game_temp.last_file_index == nil ? 0 : $game_temp.last_file_index self.index = index self.active = false @item_max = 99 refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.font.color = normal_color time_stamp = Time.at(0) for i in 0...99 filename = "Save#{i + 1}.rxdata" self.contents.draw_text(1, i * 32, 32, 32, (i + 1).to_s, 1) if FileTest.exist?(filename) size = File.size(filename) if size.between?(1000, 999999) size /= 1000 size_str = "#{size} KB" elsif size > 999999 size /= 1000000 size_str = "#{size} MB" else size_str = size.to_s end time_stamp = File.open(filename, "r").mtime date = time_stamp.strftime("%m/%d/%Y") time = time_stamp.strftime("%H:%M") self.contents.font.size = 20 self.contents.font.bold = true self.contents.draw_text(38, i * 32, 120, 32, date) self.contents.draw_text(160, i * 32, 100, 32, time) self.contents.draw_text(0, i * 32, 284, 32, size_str, 2) end end end end
#========================================================================== ==== # ** Window_FileStatus #------------------------------------------------------------------------------ # This window shows the status of the currently selected save file #========================================================================== ====
class Window_FileStatus < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # save_window : current save file #-------------------------------------------------------------------------- def initialize(save_window) super(0, 96, 320, 336) self.contents = Bitmap.new(width - 32, height - 32) @save_window = save_window @index = @save_window.index refresh end #-------------------------------------------------------------------------- # # Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear filename = "Save#{@index + 1}.rxdata" return unless FileTest.exist?(filename) file = File.open(filename, "r") Marshal.load(file) frame_count = Marshal.load(file) for i in 0...6 Marshal.load(file) end party = Marshal.load(file) Marshal.load(file) map = Marshal.load(file) self.contents.font.size = 20 self.contents.font.bold = true for i in 0...party.actors.size actor = party.actors[i] x = 4 y = i * 56 draw_bar(actor, x + 112, y + 14, 'hp', 160) draw_bar(actor, x + 112, y + 36, 'sp', 160) draw_actor_name(actor, x + 40, y - 2) draw_actor_level(actor, x + 40, y + 22) draw_actor_graphic(actor, x + 10, y + 48) end total_sec = frame_count / Graphics.frame_rate hour = total_sec / 60 / 60 min = total_sec / 60 % 60 sec = total_sec % 60 text = sprintf("%02d:%02d:%02d", hour, min, sec) map_name = load_data("Data/MapInfos.rxdata")[map.map_id].name self.contents.font.color = system_color self.contents.draw_text(4, 224, 96, 32, "Play Time ") self.contents.draw_text(4, 252, 96, 32, $data_system.words.gold) self.contents.draw_text(4, 280, 96, 32, "Location ") self.contents.draw_text(104, 224, 16, 32, ":") self.contents.draw_text(104, 252, 16, 32, ":") self.contents.draw_text(104, 280, 16, 32, ":") self.contents.font.color = normal_color self.contents.draw_text(120, 224, 144, 32, text) self.contents.draw_text(120, 252, 144, 32, party.gold.to_s) self.contents.draw_text(120, 280, 144, 32, map_name) end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update if @index != @save_window.index @index = @save_window.index refresh end super end end #========================================================================== ==== # ** Scene_Menu #------------------------------------------------------------------------------ # This class performs menu screen processing. #========================================================================== ====
class Scene_Menu #-------------------------------------------------------------------------- # * Object Initialization # menu_index : command cursor's initial position #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index @update_frame = 0 @targetactive = false @exit = false @actor = $game_party.actors[0] @old_actor = nil end #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Make command window s1 = ' ' + $data_system.words.item s2 = ' ' + $data_system.words.skill s3 = ' ' + $data_system.words.equip s4 = ' ' + 'Status' s5 = ' ' + 'Save' s6 = ' ' + 'Exit' t1 = ' ' + 'Recov.' t2 = ' ' + 'Weapon' t3 = ' ' + 'Armor' t4 = ' ' + 'Accessory' t5 = ' ' + 'Quest' t6 = ' ' + 'Misc.' u1 = 'To Title' u2 = 'Quit' v1 = 'Optimize' v2 = 'Unequip All' @command_window = Window_NewCommand.new(320, [s1, s2, s3, s4, s5, s6], LegACy::ICON_NAME[0]) @command_window.y = -96 @command_window.index = @menu_index # If number of party members is 0 if $game_party.actors.size == 0 # Disable items, skills, equipment, and status @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end # If save is forbidden if $game_system.save_disabled # Disable save @command_window.disable_item(4) end # Make stat window @stat_window = Window_Stat.new @stat_window.x = 320 @stat_window.y = -96 # Make status window @status_window = Window_NewMenuStatus.new @status_window.x = 640 @status_window.y = 96 #@status_window.z = 110 @location_window = Window_Location.new @location_window.y = 480 @actor_window = Window_Actor.new @actor_window.x = -160 @actor_window.y = 96 @itemcommand_window = Window_NewCommand.new(320, [t1, t2, t3, t4, t5, t6], LegACy::ICON_NAME[1]) @itemcommand_window.x = -320 @itemcommand_window.active = false @help_window = Window_NewHelp.new @help_window.x = -640 @help_window.y = 432 @item_window = Window_NewItem.new @item_window.x = -480 @item_window.help_window = @help_window @skill_window = Window_NewSkill.new(@actor) @skill_window.x = -480 @skill_window.help_window = @help_window @equipstat_window = Window_EquipStat.new(@actor) @equipstat_window.x = -480 @equip_window = Window_Equipment.new(@actor) @equip_window.x = -240 @equip_window.help_window = @help_window @equipitem_window = Window_EquipmentItem.new(@actor, 0) @equipitem_window.x = -240 @equipitem_window.help_window = @help_window @equipenhanced_window = Window_Command.new(160, [v1, v2]) @equipenhanced_window.x = -160 @equipenhanced_window.active = false @playerstatus_window = Window_NewStatus.new(@actor) @playerstatus_window.x = -640 @file_window = Window_File.new @file_window.x = -640 @filestatus_window = Window_FileStatus.new(@file_window) @filestatus_window.x = -320 @end_window = Window_Command.new(120, [u1, u2]) @end_window.x = 640 @end_window.active = false @spriteset = Spriteset_Map.new @windows = [@command_window, @stat_window, @status_window, @location_window, @actor_window, @itemcommand_window,@help_window, @item_window, @skill_window, @equipstat_window, @equip_window, @equipitem_window, @equipenhanced_window, @playerstatus_window, @file_window, @filestatus_window, @end_window] @windows.each {|i| i.opacity = 200} # Execute transition Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Prepare for transition Graphics.freeze # Dispose of windows @spriteset.dispose @windows.each {|i| i.dispose} end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Update windows @windows.each {|i| i.update} animate menu_update update_scroll if @skill_window.active || @equip_window.active || @playerstatus_window.active if LegACy::ANIMATED @update_frame += 1 if @update_frame == 3 @update_frame = 0 @actor_window.frame_update end end end #-------------------------------------------------------------------------- # * Animating windows. #-------------------------------------------------------------------------- def animate if @command_window.active && @skill_window.x == -480 && @file_window.x == -640 @command_window.y += 6 if @command_window.y < 0 @stat_window.y += 6 if @stat_window.y < 0 @actor_window.x += 10 if @actor_window.x < 0 @status_window.x -= 30 if @status_window.x > 160 @location_window.y -= 3 if @location_window.y > 432 elsif @exit == true @command_window.y -= 6 if @command_window.y > -96 @stat_window.y -= 6 if @stat_window.y > -96 @actor_window.x -= 10 if @actor_window.x > -160 @status_window.x += 30 if @status_window.x < 640 @location_window.y += 3 if @location_window.y < 480 $scene = Scene_Map.new if @location_window.y == 480 end if @itemcommand_window.active if @itemcommand_window.x < 0 @stat_window.x += 40 @command_window.x += 40 @itemcommand_window.x += 40 end else if @itemcommand_window.x > -320 && @command_window.active @stat_window.x -= 40 @command_window.x -= 40 @itemcommand_window.x -= 40 end end if @item_window.active if @item_window.x < 0 @location_window.x += 40 @help_window.x += 40 @status_window.x += 30 @actor_window.x += 30 @item_window.x += 30 end elsif @targetactive != true if @item_window.x > -480 && @command_window.index == 0 @help_window.x -= 40 @location_window.x -= 40 @item_window.x -= 30 @actor_window.x -= 30 @status_window.x -= 30 end end if @skill_window.active if @skill_window.x < 0 @location_window.x += 40 @help_window.x += 40 @status_window.x += 30 @actor_window.x += 30 @skill_window.x += 30 end elsif @targetactive != true if @skill_window.x > -480 && @command_window.index == 3 @help_window.x -= 40 @location_window.x -= 40 @skill_window.x -= 30 @actor_window.x -= 30 @status_window.x -= 30 end end if @equip_window.active if @equipstat_window.x < 0 @status_window.x += 48 @actor_window.x += 48 @equip_window.x += 48 @equipitem_window.x += 48 @equipstat_window.x += 48 @location_window.x += 64 @help_window.x += 64 end elsif ! @equipitem_window.active && ! @equipenhanced_window.active if @equipstat_window.x > -480 && @command_window.index == 1 @equipstat_window.x -= 48 @equip_window.x -= 48 @equipitem_window.x -= 48 @actor_window.x -= 48 @status_window.x -= 48 @help_window.x -= 64 @location_window.x -= 64 end end if @equipenhanced_window.active if @equipenhanced_window.x < 0 @stat_window.x += 16 @command_window.x += 16 @equipenhanced_window.x += 16 end else if @equipenhanced_window.x > -160 && @equip_window.active @equipenhanced_window.x -= 16 @stat_window.x -= 16 @command_window.x -= 16 end end if @playerstatus_window.active if @playerstatus_window.x < 0 @status_window.x += 40 @actor_window.x += 40 @playerstatus_window.x += 40 end else if @playerstatus_window.x > -640 && @command_window.index == 4 @playerstatus_window.x -= 40 @actor_window.x -= 40 @status_window.x -= 40 end end if @file_window.active if @file_window.x < 0 @status_window.x += 40 @actor_window.x += 40 @filestatus_window.x += 40 @file_window.x += 40 end else if @file_window.x > -640 && @command_window.index == 2 @file_window.x -= 40 @filestatus_window.x -= 40 @actor_window.x -= 40 @status_window.x -= 40 en
__________________________
Duplicate account
|
|
|
|
|
|
|
|
|
Jul 19 2006, 09:39 AM
|
Level 8

Group: Banned
Posts: 115
Type: None
RM Skill: Beginner

|
I again got cut off!! Here I go again! CODE end end if @file_window.active if @file_window.x < 0 @status_window.x += 40 @actor_window.x += 40 @filestatus_window.x += 40 @file_window.x += 40 end else if @file_window.x > -640 && @command_window.index == 2 @file_window.x -= 40 @filestatus_window.x -= 40 @actor_window.x -= 40 @status_window.x -= 40 end end if @end_window.active if @end_window.x > 520 @stat_window.x -= 10 @command_window.x -= 10 @end_window.x -= 10 end else if @end_window.x < 640 && @command_window.index == 5 @end_window.x += 10 @stat_window.x += 10 @command_window.x += 10 end end end #-------------------------------------------------------------------------- # * Checking Update Method Needed #-------------------------------------------------------------------------- def menu_update if @command_window.active && @command_window.y == 0 && @command_window.x == 0 && @file_window.x == -640 then update_command elsif @item_window.x == -480 && @itemcommand_window.active && @itemcommand_window.x == 0 then update_itemcommand elsif @item_window.active && @item_window.x == 0 then update_item elsif @skill_window.active then update_skill elsif @targetactive == true then update_target elsif @equip_window.active && @equip_window.x == 240 then update_equip elsif @equipitem_window.active then update_equipment elsif @equipenhanced_window.x == 0 then update_extraequip elsif @playerstatus_window.x == 0 then update_playerstatus elsif @file_window.x == 0 then update_save elsif @actor_window.active && @actor_window.x == 0 then update_status elsif @end_window.active then update_end end end #-------------------------------------------------------------------------- # * Windows Actor Scrolling Update #-------------------------------------------------------------------------- def update_scroll if Input.trigger?(Input::R) # Play cursor SE $game_system.se_play($data_system.cursor_se) # To next actor if $game_party.actors.size - 1 == @actor_window.index @actor_window.index = 0 else @actor_window.index += 1 end actor = $game_party.actors[@actor_window.index] @skill_window.update_actor(actor) if @skill_window.active if @equip_window.active @equip_window.update_actor(actor) @equipitem_window.update_actor(actor) @equipstat_window.update_actor(actor) end @playerstatus_window.update_actor(actor) if @playerstatus_window.active return end # If L button was pressed if Input.trigger?(Input::L) # Play cursor SE $game_system.se_play($data_system.cursor_se) # To previous actor if @actor_window.index == 0 @actor_window.index = $game_party.actors.size - 1 else @actor_window.index -= 1 end actor = $game_party.actors[@actor_window.index] @skill_window.update_actor(actor) if @skill_window.active if @equip_window.active @equip_window.update_actor(actor) @equipitem_window.update_actor(actor) @equipstat_window.update_actor(actor) end @playerstatus_window.update_actor(actor) if @playerstatus_window.active return end end #-------------------------------------------------------------------------- # * Frame Update (when command window is active) #-------------------------------------------------------------------------- def update_command # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to map screen @command_window.active = false @exit = true return end # If B button was pressed if Input.trigger?(Input::SHIFT) && LegACy::PARTY_SWAP # Play cancel SE $game_system.se_play($data_system.decision_se) # Switch to map screen @command_window.active = false @actor_window.party = true unless $game_party.reserve == [] for i in 0...$game_party.reserve.size $game_party.actors.push($game_party.reserve[i]) end end @actor_window.refresh @actor_window.active = true @actor_window.index = 0 return end # If C button was pressed if Input.trigger?(Input::C) # If command other than save or end game, and party members = 0 if $game_party.actors.size == 0 and @command_window.index < 4 # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Branch by command window cursor position case @command_window.index when 0 # item # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to item screen @command_window.active = false @itemcommand_window.active = true when 1 # equipment # Play decision SE $game_system.se_play($data_system.decision_se) # Make status window active @command_window.active = false @actor_window.active = true @actor_window.index = 0 when 2 # save # If saving is forbidden if $game_system.save_disabled # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to save screen @command_window.active = false @file_window.active = true when 3..4 # skill & status # Play decision SE $game_system.se_play($data_system.decision_se) # Make status window active @command_window.active = false @actor_window.active = true @actor_window.index = 0 when 5 # end game # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to end game screen @command_window.active = false @end_window.active = true end return end end #-------------------------------------------------------------------------- # * Frame Update (when item command window is active) #-------------------------------------------------------------------------- def update_itemcommand # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to item command window @command_window.active = true @itemcommand_window.active = false return end # If C button was pressed if Input.trigger?(Input::C) # Play decision SE $game_system.se_play($data_system.decision_se) # Branch by command window cursor position type = LegACy::ITEMS[@itemcommand_window.index] @item_window.active = true @itemcommand_window.active = false @item_window.update_item(type) @item_window.index = 0 @help_window.active = true return end end #-------------------------------------------------------------------------- # * Frame Update (when item window is active) #-------------------------------------------------------------------------- def update_item # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to item command window @item_window.active = false @itemcommand_window.active = true @help_window.active = false return end # If C button was pressed if Input.trigger?(Input::C) # Get currently selected data on the item window @item = @item_window.item # If not a use item unless @item.is_a?(RPG::Item) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # If it can't be used unless $game_party.item_can_use?(@item.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # If effect scope is an ally if @item.scope >= 3 # Activate target window @item_window.active = false @targetactive = true @actor_window.active = true # Set cursor position to effect scope (single / all) if @item.scope == 4 || @item.scope == 6 @actor_window.index = -1 else @actor_window.index = 0 end # If effect scope is other than an ally else # If command event ID is valid if @item.common_event_id > 0 # Command event call reservation $game_temp.common_event_id = @item.common_event_id # Play item use SE $game_system.se_play(@item.menu_se) # If consumable if @item.consumable # Decrease used items by 1 $game_party.lose_item(@item.id, 1) # Draw item window item @item_window.draw_item(@item_window.index) end # Switch to map screen $scene = Scene_Map.new return end end return end end #-------------------------------------------------------------------------- # * Frame Update (if skill window is active) #-------------------------------------------------------------------------- def update_skill # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to main command menu @skill_window.active = false @help_window.active = false @actor_window.active = true return end # If C button was pressed if Input.trigger?(Input::C) # Get currently selected data on the skill window @skill = @skill_window.skill # If unable to use if @skill == nil or not @actor.skill_can_use?(@skill.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # If effect scope is ally if @skill.scope >= 3 # Activate target window @skill_window.active = false @targetactive = true @actor_window.active = true # Set cursor position to effect scope (single / all) if @skill.scope == 4 || @skill.scope == 6 @actor_window.index = -1 elsif @skill.scope == 7 @actor_index = @actor_window.index @actor_window.index = @actor_index - 10 else @actor_window.index = 0 end # If effect scope is other than ally else # If common event ID is valid if @skill.common_event_id > 0 # Common event call reservation $game_temp.common_event_id = @skill.common_event_id # Play use skill SE $game_system.se_play(@skill.menu_se) # Use up SP @actor.sp -= @skill.sp_cost # Remake each window content @actor_window.refresh @skill_window.refresh # Switch to map screen $scene = Scene_Map.new return end end return end end #-------------------------------------------------------------------------- # * Frame Update (when target window is active) #-------------------------------------------------------------------------- def update_target # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # If unable to use because items ran out @actor_window.index = 0 if @command_window.index == 0 # Remake item window contents @item_window.refresh @item_window.active = true @actor_window.active = false end if @command_window.index == 3 # Remake skill window contents @skill_window.refresh @skill_window.active = true @actor_window.active = false @skill_window.update_actor($game_party.actors[0]) end @targetactive = false return end # If C button was pressed if Input.trigger?(Input::C) if @command_window.index == 0 # If items are used up if $game_party.item_number(@item.id) == 0 # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # If target is all if @actor_window.index == -1 # Apply item effects to entire party used = false for i in $game_party.actors used |= i.item_effect(@item) end end # If single target if @actor_window.index >= 0 # Apply item use effects to target actor target = $game_party.actors[@actor_window.index] used = target.item_effect(@item) end # If an item was used if used # Play item use SE $game_system.se_play(@item.menu_se) # If consumable if @item.consumable # Decrease used items by 1 $game_party.lose_item(@item.id, 1) # Redraw item window item @item_window.draw_item(@item_window.index) end # Remake target window contents @actor_window.refresh @status_window.refresh # If all party members are dead if $game_party.all_dead? @targetactive = false # Switch to game over screen $scene = Scene_Gameover.new return end # If common event ID is valid if @item.common_event_id > 0 # Common event call reservation $game_temp.common_event_id = @item.common_event_id @targetactive = false # Switch to map screen $scene = Scene_Map.new return end end # If item wasn't used unless used # Play buzzer SE $game_system.se_play($data_system.buzzer_se) end return end if @command_window.index == 3 # If unable to use because SP ran out unless @actor.skill_can_use?(@skill.id) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # If target is all if @actor_window.index == -1 # Apply skill use effects to entire party used = false for i in $game_party.actors used |= i.skill_effect(@actor, @skill) end end # If target is user if @actor_window.index <= -2 # Apply skill use effects to target actor target = $game_party.actors[@actor_window.index + 10] used = target.skill_effect(@actor, @skill) end # If single target if @actor_window.index >= 0 # Apply skill use effects to target actor target = $game_party.actors[@actor_window.index] used = target.skill_effect(@actor, @skill) end # If skill was used if used # Play skill use SE $game_system.se_play(@skill.menu_se) # Use up SP @actor.sp -= @skill.sp_cost # Remake each window content @actor_window.refresh @skill_window.refresh # If entire party is dead if $game_party.all_dead? # Switch to game over screen @targetactive = false $scene = Scene_Gameover.new return end # If command event ID is valid if @skill.common_event_id > 0 # Command event call reservation $game_temp.common_event_id = @skill.common_event_id @targetactive = false # Switch to map screen $scene = Scene_Map.new return end end # If skill wasn't used unless used # Play buzzer SE $game_system.se_play($data_system.buzzer_se) end return end end end #-------------------------------------------------------------------------- # * Frame Update (when equip window is active) #-------------------------------------------------------------------------- def update_equip @equipitem_window.update_equipment(@equip_window.index) @equipstat_window.mode = @equip_window.index @equipstat_window.refresh # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) @status_window.refresh # Switch to menu screen @equip_window.active = false @help_window.active = false @actor_window.active = true return end # If C button was pressed if Input.trigger?(Input::C) # If equipment is fixed if @actor.equip_fix?(@equip_window.index) # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Activate item window @equip_window.active = false @equipitem_window.active = true @equipitem_window.index = 0 return end # If Shift button was pressed if Input.trigger?(Input::SHIFT) && LegACy::EXTRA_EQUIP # Play decision SE $game_system.se_play($data_system.decision_se) # Activate item window @equip_window.active = false @equipenhanced_window.active = true @equipenhanced_window.index = 0 return end end #-------------------------------------------------------------------------- # * Frame Update (when equipment item window is active) #-------------------------------------------------------------------------- def update_equipment # Get currently item item1 = @equip_window.item item2 = @equipitem_window.item last_hp = @actor.hp last_sp = @actor.sp old_atk = @actor.atk old_pdef = @actor.pdef old_mdef = @actor.mdef old_str = @actor.str old_dex = @actor.dex old_agi = @actor.agi old_int = @actor.int old_eva = @actor.eva @actor.equip(@equip_window.index, item2 == nil ? 0 : item2.id) # Get parameters for after equipment change new_atk = @actor.atk new_pdef = @actor.pdef new_mdef = @actor.mdef new_str = @actor.str new_dex = @actor.dex new_agi = @actor.agi new_int = @actor.int new_eva = @actor.eva @equipstat_window.changes = [0, 0, 0, 0, 0, 0, 0, 0] @equipstat_window.changes[0] = new_atk > old_atk ? 1 : @equipstat_window.changes[0] @equipstat_window.changes[0] = new_atk < old_atk ? -1 : @equipstat_window.changes[0] @equipstat_window.changes[1] = new_pdef > old_pdef ? 1 : @equipstat_window.changes[1] @equipstat_window.changes[1] = new_pdef < old_pdef ? -1 : @equipstat_window.changes[1] @equipstat_window.changes[2] = new_mdef > old_mdef ? 1 : @equipstat_window.changes[2] @equipstat_window.changes[2] = new_mdef < old_mdef ? -1 : @equipstat_window.changes[2] @equipstat_window.changes[3] = new_str > old_str ? 1 : @equipstat_window.changes[3] @equipstat_window.changes[3] = new_str < old_str ? -1 : @equipstat_window.changes[3] @equipstat_window.changes[4] = new_dex > old_dex ? 1 : @equipstat_window.changes[4] @equipstat_window.changes[4] = new_dex < old_dex ? -1 : @equipstat_window.changes[4] @equipstat_window.changes[5] = new_agi > old_agi ? 1 : @equipstat_window.changes[5] @equipstat_window.changes[5] = new_agi < old_agi ? -1 : @equipstat_window.changes[5] @equipstat_window.changes[6] = new_int > old_int ? 1 : @equipstat_window.changes[6] @equipstat_window.changes[6] = new_int < old_int ? -1 : @equipstat_window.changes[6] @equipstat_window.changes[7] = new_eva > old_eva ? 1 : @equipstat_window.changes[7] @equipstat_window.changes[7] = new_eva < old_eva ? -1 : @equipstat_window.changes[7] # Return equipment @actor.equip(@equip_window.index, item1 == nil ? 0 : item1.id) @actor.hp = last_hp @actor.sp = last_sp elem_text = "" stat_text = "" if item2.is_a?(RPG::Weapon) flag = false for i in item2.element_set next if i == LegACy::ITEMS[0] || i == LegACy::ITEMS[1] || i == LegACy::ITEMS[2] || i == LegACy::ITEMS[3] || i == LegACy::ITEMS[4] || i == LegACy::ITEMS[5] elem_text += ", " if flag elem_text += $data_system.elements[i] flag = true end flag = false for i in item2.plus_state_set stat_text += ", " if flag stat_text += $data_states[i].name flag = true end end if item2.is_a?(RPG::Armor) flag = false for i in item2.guard_element_set next if i == LegACy::ITEMS[0] || i == LegACy::ITEMS[1] || i == LegACy::ITEMS[2] || i == LegACy::ITEMS[3] || i == LegACy::ITEMS[4] || i == LegACy::ITEMS[5] elem_text += ", " if flag elem_text += $data_system.elements[i] flag = true end flag = false for i in item2.guard_state_set stat_text += ", " if flag stat_text += $data_states[i].name flag = true end end # Draw in left window @equipstat_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int, new_eva, elem_text, stat_text) # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Erase parameters for after equipment change @equipstat_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil, nil, '', '') # Activate right window @equip_window.active = true @equipitem_window.active = false @equipitem_window.index = -1 return end # If C button was pressed if Input.trigger?(Input::C) # Play equip SE $game_system.se_play($data_system.equip_se) # Get currently selected data on the item window item = @equipitem_window.item # Change equipment @actor.equip(@equip_window.index, item == nil ? 0 : item.id) # Erase parameters for after equipment change @equipstat_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil, nil, '', '') # Activate right window @equip_window.active = true @equipitem_window.active = false @equipitem_window.index = -1 # Remake right window and item window contents @equip_window.refresh @equipitem_window.refresh return end end #-------------------------------------------------------------------------- # * Frame Update (when enhnaced equip window is active) #-------------------------------------------------------------------------- def update_extraequip # If B button was pressed if Input.trigger?(Input::B) || Input.trigger?(Input::SHIFT) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to menu screen @equipenhanced_window.active = false @equip_window.active = true return end # If C button was pressed if Input.trigger?(Input::C) $game_system.se_play($data_system.equip_se) case @equipenhanced_window.index when 0 for i in 0..4 @actor.equip(i, 0) unless @actor.equip_fix?(i) next if @actor.equip_fix?(i) case i when 0 weapons = [] weapon_set = $data_classes[@actor.class_id].weapon_set for j in 1...$data_weapons.size if $game_party.weapon_number(j) > 0 && weapon_set.include?(j) weapons.push($data_weapons[j]) end end next if weapons == [] weapons = weapons.reverse strongest_weapon = weapons[0] for weapon in weapons strongest_weapon = weapon if strongest_weapon.atk < weapon.atk end @actor.equip(0, strongest_weapon.id) when 1..4 armors = [] armor_set = $data_classes[@actor.class_id].armor_set for j in 1...$data_armors.size if $game_party.armor_number(j) > 0 && armor_set.include?(j) if $data_armors[j].kind == i - 1 armors.push($data_armors[j]) end end end next if armors == [] armors = armors.reverse strongest_armor = armors[0] for armor in armors strongest_armor = armor if strongest_armor.pdef < armor.pdef end @actor.equip(i, strongest_armor.id) end end when 1 for j in 0..4 @actor.equip(j, 0) unless @actor.equip_fix?(j) end end @equip_window.refresh @equipitem_window.refresh @equipstat_window.refresh return end end #-------------------------------------------------------------------------- # * Frame Update (when status window is active) #-------------------------------------------------------------------------- def update_playerstatus # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to menu screen @playerstatus_window.active = false @actor_window.active = true return end end #-------------------------------------------------------------------------- # * Frame Update (when save window is active) #-------------------------------------------------------------------------- def update_save # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to menu screen @file_window.active = false @command_window.active = true return end # If C button was pressed if Input.trigger?(Input::C) $game_system.se_play($data_system.save_se) file = File.open("Save#{@file_window.index + 1}.rxdata", "wb") characters = [] for i in 0...$game_party.actors.size actor = $game_party.actors[i] characters.push([actor.character_name, actor.character_hue]) end Marshal.dump(characters, file) Marshal.dump(Graphics.frame_count, file) $game_system.save_count += 1 $game_system.magic_number = $data_system.magic_number Marshal.dump($game_system, file) Marshal.dump($game_switches, file) Marshal.dump($game_variables, file) Marshal.dump($game_self_switches, file) Marshal.dump($game_screen, file) Marshal.dump($game_actors, file) Marshal.dump($game_party, file) Marshal.dump($game_troop, file) Marshal.dump($game_map, file) Marshal.dump($game_player, file) file.close @file_window.refresh @filestatus_window.refresh return end end #-------------------------------------------------------------------------- # * Frame Update (when status window is active) #-------------------------------------------------------------------------- def update_status @actor = $game_party.actors[@actor_window.index] # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) if @old_actor == nil @command_window.active = true @actor_window.active = false if @actor_window.party for i in 4...$game_party.actors.size unless $game_party.reserve == [] $game_party.reserve[i - 4] = $game_party.actors[4] $game_party.actors.delete($game_party.actors[4]) end end @actor_window.party = false @actor_window.refresh end @actor_window.index = -1 else @old_actor = nil end return end # If C button was pressed if Input.trigger?(Input::C) if @actor_window.party == false # Branch by command window cursor position case @command_window.index when 1 # equipment # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to skill screen @equip_window.active = true @equip_window.update_actor(@actor) @equipitem_window.update_actor(@actor) @equipstat_window.update_actor(@actor) @help_window.active = true @actor_window.active = false when 3 # skill # If this actor's action limit is 2 or more if $game_party.actors[@actor_window.index].restriction >= 2 # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to skill screen @skill_window.active = true @skill_window.index = 0 @skill_window.update_actor(@actor) @help_window.active = true @actor_window.active = false when 4 # status # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to status screen @playerstatus_window.active = true @playerstatus_window.update_actor(@actor) @actor_window.active = false end return else # Play decision SE $game_system.se_play($data_system.decision_se) if @old_actor == nil @old_actor = @actor else $game_party.actors[$game_party.actors.index(@old_actor)] = $game_party.actors[@actor_window.index] $game_party.actors[@actor_window.index] = @old_actor @actor_window.refresh @old_actor = nil end return end end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update_end # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to menu screen @end_window.active = false @command_window.active = true return end # If C button was pressed if Input.trigger?(Input::C) # Play decision SE $game_system.se_play($data_system.decision_se) # Fade out BGM, BGS, and ME Audio.bgm_fade(800) Audio.bgs_fade(800) Audio.me_fade(800) # Branch by command window cursor position case @end_window.index when 0 # to title # Switch to title screen $scene = Scene_Title.new when 1 # shutdown # Shutdown $scene = nil end return end end end #========================================================================== ==== # ** Window_BattleStatus #------------------------------------------------------------------------------ # This window displays the status of all party members on the battle screen. #========================================================================== ==== if LegACy::BATTLE_BAR class Window_BattleStatus < Window_Base #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear @item_max = $game_party.actors.size for i in 0...$game_party.actors.size actor = $game_party.actors[i] actor_x = i * 160 + 4 draw_actor_name(actor, actor_x, 0) draw_bar(actor, actor_x - 4, 46, 'hp', 120) draw_bar(actor, actor_x - 4, 76, 'sp', 120) if @level_up_flags[i] self.contents.font.color = normal_color self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!") else draw_actor_state(actor, actor_x, 96) end end end end end
__________________________
Duplicate account
|
|
|
|
|
|
|
|
|
Jul 19 2006, 09:47 AM
|
Level 8

Group: Banned
Posts: 115
Type: None
RM Skill: Beginner

|
Alright, since I have to say how to put this script together, I will. Copy each part of the script into the script editor as one script. Then go to RMXP.org and register to get the ability to go into the resource and script sections. In the script section, search for the 1-Scene CMS topic, and get the icons that are in the first page (the first post is the one that always gets edited).
There is no telling when the script will be fully complete. Check the site on a regular basis to see when the script is going to be done.
__________________________
Duplicate account
|
|
|
|
|
|
|
|
|
Jul 20 2006, 07:30 AM
|
Level 8

Group: Banned
Posts: 115
Type: None
RM Skill: Beginner

|
QUOTE (jens009 @ Jul 19 2006, 11:52 AM) Please give credit to author next time, Instead of making the members register there, why dont you just get the graphics and post it up here since your the submitter? Nice CMS by the way Okay, jens009, two things: First, I forgot to give him credit (due to my memory). Second, the images wouldn't go up in the site. I guess I'll have to upload a demo of the system with the icons in the demo. QUOTE (ember2inferno @ Jul 20 2006, 04:08 AM) Just take it from me, its pretty frigen awesome. Thanks, ember2inferno, for the support. I needed someone to help me with this. Okay, people, I'm up to uploading this. Expect me to get different versions of it up at a time!! P.S. I should put in a screenshot as well. I'll get to it. P.S.S. I got to it!! No, this is not an editing, people.   I hope you enjoy!! EDIT: The second screen is the one that has the party switching in it. To get that system, people, you should press the shift key while in the menu. When the problems that are there get fixed (should've warned you guys about the bugs in the script.) then the things will work that are supposed to work.
This post has been edited by thechocobohunter: Jul 20 2006, 07:34 AM
__________________________
Duplicate account
|
|
|
|
|
|
|
|
|
Jul 24 2006, 08:11 AM
|

welcome to the rad sunglasses zone. you will never escape

Group: Revolutionary
Posts: 1,240
Type: Musician
RM Skill: Advanced

|
It shall be done! MUAHAHAHAHA! LeGaCy's One Scene CMSAnd the icons. CODE http://redsectora.bravehost.com/rmxp_scripts/item0.png http://redsectora.bravehost.com/rmxp_scripts/item1.png http://redsectora.bravehost.com/rmxp_scripts/item2.png http://redsectora.bravehost.com/rmxp_scripts/item3.png http://redsectora.bravehost.com/rmxp_scripts/item4.png http://redsectora.bravehost.com/rmxp_scripts/item5.png http://redsectora.bravehost.com/rmxp_scripts/menu0.png http://redsectora.bravehost.com/rmxp_scripts/menu1.png http://redsectora.bravehost.com/rmxp_scripts/menu2.png http://redsectora.bravehost.com/rmxp_scripts/menu3.png http://redsectora.bravehost.com/rmxp_scripts/menu4.png http://redsectora.bravehost.com/rmxp_scripts/menu5.png You'll want to save the .txt file.
|
|
|
|
|
|
|
|
|
Jul 24 2006, 08:26 AM
|
Level 8

Group: Banned
Posts: 115
Type: None
RM Skill: Beginner

|
Okay, guys, what I'm really waiting for from the maker of the script is version 1.17b. I really am needing it to make it work in my game with the KH ABS. Ok, ok, I'm done.
__________________________
Duplicate account
|
|
|
|
|
|
|
|
|
Sep 9 2008, 10:43 PM
|

Level 71

Group: +Gold Member
Posts: 3,284
Type: Musician
RM Skill: Advanced
Rev Points: 10

|
There are several things you should post if you want help. First off, did you copy the script directly from his posts? I noticed at the end of the first post, it said "en" instead of "end", which could cause a syntax error, I'm sure. If you did, I'd suggest deleting the script and downloading the text file Rockman uploaded from here.And don't forget the images: QUOTE (Rockman) CODE http://redsectora.bravehost.com/rmxp_scripts/item0.png http://redsectora.bravehost.com/rmxp_scripts/item1.png http://redsectora.bravehost.com/rmxp_scripts/item2.png http://redsectora.bravehost.com/rmxp_scripts/item3.png http://redsectora.bravehost.com/rmxp_scripts/item4.png http://redsectora.bravehost.com/rmxp_scripts/item5.png http://redsectora.bravehost.com/rmxp_scripts/menu0.png http://redsectora.bravehost.com/rmxp_scripts/menu1.png http://redsectora.bravehost.com/rmxp_scripts/menu2.png http://redsectora.bravehost.com/rmxp_scripts/menu3.png http://redsectora.bravehost.com/rmxp_scripts/menu4.png http://redsectora.bravehost.com/rmxp_scripts/menu5.png If that doesn't work, I can't help you(I know nothing about scripting), but if you post the following information, I'm sure someone else can: 1) What's the error? In this case(Syntax Error), does it say a specific line number? 2) Are you using any other scripts that might conflict with this(anything that edits a menu, I'd guess, including adding commands and such)?
__________________________
|
|
|
|
|
|
|
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
RPG RPG Revolution is an Privacy
Policy and Legal
|
|