solaris32 0 Posted September 24, 2012 I could, but want to see if there's a solution first. Share this post Link to post Share on other sites
Caveras 40 Posted September 24, 2012 Translates to me as "I'm lazy, let the other guy do the work" ;D Nah, whatever. But I don't think that this is quite such an easy thing to "fix" since the 1024 sounds like a technical limit to me, not like a "bug" from the scripter that he should "fix." Anyway, there's white-space mode, so you would just have to write on in the next line and the script would still treat that line break as a space. Have you tried this? Share this post Link to post Share on other sites
solaris32 0 Posted September 24, 2012 That works, thanks . I had forgotten about whitespace mode. Share this post Link to post Share on other sites
Kayzee 4,032 Posted September 25, 2012 (edited) Hmm I never heard of a limit like that... so since whitespace mode works I guess it must manually enter a linebreak somewhere? I will look into it. Edit: Oh, I guess you mean the text input in the editor inserts linebreaks past 1024 characters. That's not something I can really fix if that's true. I guess whitespace mode will have to do. BTW, I should make an way to collapse spaces as well. Problem with my use of control codes is that you can't do stuff like "\brthis\brIs silly." and there are problems with spaces showing up at the start of the line with "this\br is silly" and "\br this \br is silly" I think I will do that next. Edit: Finished! Now there is version five! Edited September 25, 2012 by KilloZapit Share this post Link to post Share on other sites
Tsukihime 1,489 Posted September 25, 2012 I'm kind of curious what was being done with 1000 characters in a line in the first place, seeing how unless you were using font size 1 you probably aren't going to have more than 50 characters per line. Share this post Link to post Share on other sites
Coolie 148 Posted September 25, 2012 http://molegato.wordpress.com/category/scripts/ Apparently this dude made a similar script about a month before this one was released, and has another option or two included. You should see if the code is adaptable to make it more stable and maybe include the same options in your script or even expand upon it for any future versions. I'm still using yours. I know it works and that's good enough for me, heh. Share this post Link to post Share on other sites
solaris32 0 Posted September 26, 2012 I'm kind of curious what was being done with 1000 characters in a line in the first place, seeing how unless you were using font size 1 you probably aren't going to have more than 50 characters per line. I guess you don't know what this script is. It lets you type everything on one line in the text input box. Then when you activate the text during a game, the script automatically creates line breaks and any additional text windows for you so you don't have to do manual line breaks yourself or multiple text windows in the event. Share this post Link to post Share on other sites
solaris32 0 Posted September 26, 2012 (edited) http://molegato.word...tegory/scripts/ Apparently this dude made a similar script about a month before this one was released, and has another option or two included. You should see if the code is adaptable to make it more stable and maybe include the same options in your script or even expand upon it for any future versions. I'm still using yours. I know it works and that's good enough for me, heh. I'd certainly like to see the vertical window size auto reduce feature added here. Edited September 26, 2012 by solaris32 Share this post Link to post Share on other sites
Kayzee 4,032 Posted September 26, 2012 (edited) http://molegato.wordpress.com/category/scripts/ Apparently this dude made a similar script about a month before this one was released, and has another option or two included. You should see if the code is adaptable to make it more stable and maybe include the same options in your script or even expand upon it for any future versions. I'm still using yours. I know it works and that's good enough for me, heh. Hmm... that script doesn't really properly count wordsize or take into account escape characters like mine... I am not sure if message box resizing should be included in my script, just because it seems like it would be better as it's own script. It's gonna be kind of hard doing it my way to figure out the number of lines to use before the text is processed, unless it is done twice, which is not impossible I guess. Plus it might have some incompatibilities with other scripts. It is worth thinking about though! Edited September 26, 2012 by KilloZapit Share this post Link to post Share on other sites
Coolie 148 Posted September 30, 2012 Hey quick request. There's an Item Encyclopedia script that allows you to write notes on the item via notetags, but it can get annoying spacing out the messages correctly, and the way it draws text seems to ignore Word Wrapping from your script. Think you could alter it or make a patch that changes the way it draws text so it will work with your script? It's actually two scripts (the customization module is separate from the actual script). #============================================================================== # ■RGSS3 Item Encyclopedia Ver 1.00 Initial settings #------------------------------------------------------------------------------ #  Author: # White Demon / White Mage http://izumiwhite.web.fc2.com/ # # Translated By: # Elemental Crisis http://RPGMakerVXAce.com # #  Terms of Use: # Only available to registered users of RPG Maker VX Ace. # There is no need to report on usage or to display copyright attribution. # Feel free to modify. # Author not responsible for any problems caused by using this script. #============================================================================== #------------------------------------------------------------------------------- # ★ Initial settings. #------------------------------------------------------------------------------- module WD_itemdictionary_layout #===Layout Settins For Each Item=============================================== # # *_***_display : true - Display false - Hidden. # *_***_display_x : X coordinate of display position. # *_***_display_y : Y coordinate of display position. # *_***_display_width : Text display width. # *_***_display_text* : Text display. # #============================================================================== #===Global Settings============================================================ #Font size C_font_size = 20 #===Item Settings============================================================== #Number Display I_id_display = true I_id_display_x = 0 I_id_display_y = 0 I_id_display_width = 60 I_id_display_digit = 3 #Digit Number #Name Display I_name_display = true I_name_display_x = 84 I_name_display_y = 0 I_name_display_width = 192 #Price Display I_price_display = true I_price_display_x = 150 I_price_display_y = 32 I_price_display_width = 136 I_price_display_text1 = "Price" #Useability Display I_occasion_display = true I_occasion_display_x = 0 I_occasion_display_y = 62 I_occasion_display_width = 140 I_occasion_display_text1 = "Use" I_occasion_display_text2 = "Always" I_occasion_display_text3 = "Battle Only" I_occasion_display_text4 = "Field Only" I_occasion_display_text5 = "Never" #Consumables Display I_consumable_display = true I_consumable_display_x = 150 I_consumable_display_y = 62 I_consumable_display_width = 140 I_consumable_display_text1 = "Consumable" I_consumable_display_text2 = "Yes" I_consumable_display_text3 = "No" #Options Display I_option_display = true I_option_display_x = 0 I_option_display_y = 92 I_option_display_width = 286 I_option_display_text1 = "Notes" I_option_display_text2 = "No Notes" #===Weapon Settings=========================================================== #Number Display W_id_display = true W_id_display_x = 0 W_id_display_y = 0 W_id_display_width = 60 W_id_display_digit = 3 #Digit Number #Name Display W_name_display = true W_name_display_x = 84 W_name_display_y = 0 W_name_display_width = 172 #Type Display W_type_display = true W_type_display_x = 0 W_type_display_y = 32 W_type_display_width = 136 W_type_display_text1 = "Type" #Price Display W_price_display = true W_price_display_x = 150 W_price_display_y = 32 W_price_display_width = 136 W_price_display_text1 = "Price" #Attack Display W_atk_display = true W_atk_display_x = 0 W_atk_display_y = 62 W_atk_display_width = 136 #Defense Display W_def_display = true W_def_display_x = 150 W_def_display_y = 62 W_def_display_width = 136 #Magic Power Display W_mat_display = true W_mat_display_x = 0 W_mat_display_y = 82 W_mat_display_width = 136 #Magic Defense Display W_mdf_display = true W_mdf_display_x = 150 W_mdf_display_y = 82 W_mdf_display_width = 136 #Agility Display W_agi_display = true W_agi_display_x = 0 W_agi_display_y = 102 W_agi_display_width = 136 #Luck Display W_luk_display = true W_luk_display_x = 150 W_luk_display_y = 102 W_luk_display_width = 136 #Maximum HP Display W_mhp_display = true W_mhp_display_x = 0 W_mhp_display_y = 122 W_mhp_display_width = 136 #Maximum MP Display W_mmp_display = true W_mmp_display_x = 150 W_mmp_display_y = 122 W_mmp_display_width = 136 #Option Display W_option_display = true W_option_display_x = 0 W_option_display_y = 152 W_option_display_width = 286 W_option_display_text1 = "Notes" W_option_display_text2 = "No Notes" #===Armor Settings============================================================ #Numder Display A_id_display = true A_id_display_x = 0 A_id_display_y = 0 A_id_display_width = 60 A_id_display_digit = 3 #Digit Number #Name Display A_name_display = true A_name_display_x = 84 A_name_display_y = 0 A_name_display_width = 172 #Type Display A_type_display = true A_type_display_x = 0 A_type_display_y = 32 A_type_display_width = 136 A_type_display_text1 = "Type" #Price Display A_price_display = true A_price_display_x = 150 A_price_display_y = 32 A_price_display_width = 136 A_price_display_text1 = "Price" #Attack Display A_atk_display = true A_atk_display_x = 0 A_atk_display_y = 62 A_atk_display_width = 136 #Defense Display A_def_display = true A_def_display_x = 150 A_def_display_y = 62 A_def_display_width = 136 #Magic Power Display A_mat_display = true A_mat_display_x = 0 A_mat_display_y = 82 A_mat_display_width = 136 #Magic Defense Display A_mdf_display = true A_mdf_display_x = 150 A_mdf_display_y = 82 A_mdf_display_width = 136 #Agility Display A_agi_display = true A_agi_display_x = 0 A_agi_display_y = 102 A_agi_display_width = 136 #Luck Display A_luk_display = true A_luk_display_x = 150 A_luk_display_y = 102 A_luk_display_width = 136 #Maximum HP Display A_mhp_display = true A_mhp_display_x = 0 A_mhp_display_y = 122 A_mhp_display_width = 136 #Maximum MP Display A_mmp_display = true A_mmp_display_x = 150 A_mmp_display_y = 122 A_mmp_display_width = 136 #Option Display A_option_display = true A_option_display_x = 0 A_option_display_y = 152 A_option_display_width = 286 A_option_display_text1 = "Notes" A_option_display_text2 = "No Notes" end #------------------------------------------------------------------------------- # ★ Initial Settings End #------------------------------------------------------------------------------- And here's the actual script. #============================================================================== # ■RGSS3 Item Encyclopedia Ver 1.00 Encyclopedia Script #------------------------------------------------------------------------------ #  Author: # White Demon / White Mage http://izumiwhite.web.fc2.com/ # # Translated By: # Elemental Crisis http://RPGMakerVXAce.com # #  Terms of Use: # Only available to registered users of RPG Maker VX Ace. # There is no need to report on usage or to display copyright attribution. # Feel free to modify. # Author not responsible for any problems caused by using this script. #============================================================================== #============================================================================== # ■WD_itemdictionary #------------------------------------------------------------------------------ #  Common methods for encyclopedia items. #============================================================================== module WD_itemdictionary def i_dictionary_switch_on(id) $game_system.i_dic_sw = [] if $game_system.i_dic_sw == nil $game_system.i_dic_sw[id] = false if $game_system.i_dic_sw[id] == nil $game_system.i_dic_sw[id] = true end def i_dictionary_switch_off(id) $game_system.i_dic_sw = [] if $game_system.i_dic_sw == nil $game_system.i_dic_sw[id] = false if $game_system.i_dic_sw[id] == nil $game_system.i_dic_sw[id] = false end def i_dictionary_switch_on?(id) $game_system.i_dic_sw = [] if $game_system.i_dic_sw == nil $game_system.i_dic_sw[id] = false if $game_system.i_dic_sw[id] == nil return $game_system.i_dic_sw[id] end def w_dictionary_switch_on(id) $game_system.w_dic_sw = [] if $game_system.w_dic_sw == nil $game_system.w_dic_sw[id] = false if $game_system.w_dic_sw[id] == nil $game_system.w_dic_sw[id] = true end def w_dictionary_switch_off(id) $game_system.w_dic_sw = [] if $game_system.w_dic_sw == nil $game_system.w_dic_sw[id] = false if $game_system.w_dic_sw[id] == nil $game_system.w_dic_sw[id] = false end def w_dictionary_switch_on?(id) $game_system.w_dic_sw = [] if $game_system.w_dic_sw == nil $game_system.w_dic_sw[id] = false if $game_system.w_dic_sw[id] == nil return $game_system.w_dic_sw[id] end def a_dictionary_switch_on(id) $game_system.a_dic_sw = [] if $game_system.a_dic_sw == nil $game_system.a_dic_sw[id] = false if $game_system.a_dic_sw[id] == nil $game_system.a_dic_sw[id] = true end def a_dictionary_switch_off(id) $game_system.a_dic_sw = [] if $game_system.a_dic_sw == nil $game_system.a_dic_sw[id] = false if $game_system.a_dic_sw[id] == nil $game_system.a_dic_sw[id] = false end def a_dictionary_switch_on?(id) $game_system.a_dic_sw = [] if $game_system.a_dic_sw == nil $game_system.a_dic_sw[id] = false if $game_system.a_dic_sw[id] == nil return $game_system.a_dic_sw[id] end def t_dictionary_switch_on(item) if item.is_a?(RPG::Item) i_dictionary_switch_on(item.id) end if item.is_a?(RPG::Weapon) w_dictionary_switch_on(item.id) end if item.is_a?(RPG::Armor) a_dictionary_switch_on(item.id) end end def t_dictionary_switch_on?(item) if item.is_a?(RPG::Item) return i_dictionary_switch_on?(item.id) end if item.is_a?(RPG::Weapon) return w_dictionary_switch_on?(item.id) end if item.is_a?(RPG::Armor) return a_dictionary_switch_on?(item.id) end end def print_dictionary?(item) if item != nil if item.name.size > 0 hantei = /<Exclude>/ =~ item.note if hantei == nil return true end end end return false end def item_dictionary_perfection dic_max = 0 dic_num = 0 $data_items.each do |item| if print_dictionary?(item) dic_max += 1 if i_dictionary_switch_on?(item.id) == true dic_num += 1 end end end $data_weapons.each do |item| if print_dictionary?(item) dic_max += 1 if w_dictionary_switch_on?(item.id) == true dic_num += 1 end end end $data_armors.each do |item| if print_dictionary?(item) dic_max += 1 if a_dictionary_switch_on?(item.id) == true dic_num += 1 end end end return (100*dic_num)/dic_max end end class Game_Interpreter include WD_itemdictionary end class Game_System #-------------------------------------------------------------------------- # ◠Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :i_dic_sw attr_accessor :w_dic_sw attr_accessor :a_dic_sw #-------------------------------------------------------------------------- # ◠Object Initialization #-------------------------------------------------------------------------- alias wd_orig_initialize001 initialize def initialize wd_orig_initialize001 @i_dic_sw = [] @w_dic_sw = [] @a_dic_sw = [] end end class Game_Party < Game_Unit include WD_itemdictionary #-------------------------------------------------------------------------- # ◠Items Increased (Decreased) # include_equip : Includes Equipment #-------------------------------------------------------------------------- alias wd_orig_gain_item001 gain_item def gain_item(item, amount, include_equip = false) wd_orig_gain_item001(item, amount, include_equip = false) if amount > 0 t_dictionary_switch_on(item) end end end #============================================================================== # ■Scene_ItemDictionary #------------------------------------------------------------------------------ #  Class for processing items. #============================================================================== class Scene_ItemDictionary < Scene_ItemBase #-------------------------------------------------------------------------- # ◠Start #-------------------------------------------------------------------------- def start super create_help_window create_category_window create_status_window create_item_window create_perfection_window end #-------------------------------------------------------------------------- # ◠Create Category Window #-------------------------------------------------------------------------- def create_category_window @category_window = Window_ItemCategory.new @category_window.viewport = @viewport @category_window.help_window = @help_window @category_window.y = @help_window.height @category_window.set_handler(:ok, method(:on_category_ok)) @category_window.set_handler(:cancel, method(:return_scene)) end #-------------------------------------------------------------------------- # ◠Create Item Window #-------------------------------------------------------------------------- def create_item_window wy = @category_window.y + @category_window.height wh = Graphics.height - wy - 48 @item_window = Window_ItemDictionaryList.new(Graphics.width-172-80, wy, 172+80, wh) # EDITED LINE "48" "80" @item_window.viewport = @viewport @item_window.help_window = @help_window @item_window.status_window = @status_window @item_window.set_handler(:cancel, method(:on_item_cancel)) @category_window.item_window = @item_window end #-------------------------------------------------------------------------- # ◠Create Status Window #-------------------------------------------------------------------------- def create_status_window wy = @category_window.y + @category_window.height wh = Graphics.height - wy @status_window = Window_ItemDictionaryStatus.new(0, wy, Graphics.width-172-80, wh) # EDITED LINE "48" "80" @status_window.viewport = @viewport @status_window.set_item(nil) end #-------------------------------------------------------------------------- # ◠Create Completion Percent Window #-------------------------------------------------------------------------- def create_perfection_window wy = @item_window.y + @item_window.height wh = 48 @perfection_window = Window_ItemDictionaryPerfection.new(Graphics.width-172-80, wy, 172+80, wh) # EDITED LINE "48" "80" @perfection_window.viewport = @viewport end #-------------------------------------------------------------------------- # ◠Category [Decision] #-------------------------------------------------------------------------- def on_category_ok @item_window.activate @item_window.select_last end #-------------------------------------------------------------------------- # ◠Item [Cancellation] #-------------------------------------------------------------------------- def on_item_cancel @item_window.unselect @category_window.activate @status_window.set_item(nil) end end #============================================================================== # ■Window_ItemDictionaryList #------------------------------------------------------------------------------ #  Class for displaying all items in the encyclopedia. #============================================================================== class Window_ItemDictionaryList < Window_Selectable include WD_itemdictionary #-------------------------------------------------------------------------- # ◠Object Initialization #-------------------------------------------------------------------------- def initialize(x, y, width, height) super @category = :none @data = [] end #-------------------------------------------------------------------------- # ◠Set Category #-------------------------------------------------------------------------- def category=(category) return if @category == category @category = category refresh self.oy = 0 end #-------------------------------------------------------------------------- # ◠GetNumber Of Digits #-------------------------------------------------------------------------- def col_max return 1 end #-------------------------------------------------------------------------- # ◠Get Number Of Items #-------------------------------------------------------------------------- def item_max @data ? @data.size : 1 end #-------------------------------------------------------------------------- # ◠Get Item #-------------------------------------------------------------------------- def item @data && index >= 0 ? @data[index] : nil end #-------------------------------------------------------------------------- # ◠Get Enabled State Of Current Selection #-------------------------------------------------------------------------- def current_item_enabled? enable?(@data[index]) end #-------------------------------------------------------------------------- # ◠Include Items/Weapons/Armor #-------------------------------------------------------------------------- def include?(item) case @category when :item item.is_a?(RPG::Item) && !item.key_item? when :weapon item.is_a?(RPG::Weapon) when :armor item.is_a?(RPG::Armor) when :key_item item.is_a?(RPG::Item) && item.key_item? else false end end #-------------------------------------------------------------------------- # ◠Include Items From List #-------------------------------------------------------------------------- def make_item_list @data = [] $data_items.each do |item| if print_dictionary?(item) @data.push(item) if include?(item) end end $data_weapons.each do |item| if print_dictionary?(item) @data.push(item) if include?(item) end end $data_armors.each do |item| if print_dictionary?(item) @data.push(item) if include?(item) end end @data.push(nil) if include?(nil) end #-------------------------------------------------------------------------- # ◠Return To Last Selected Position #-------------------------------------------------------------------------- def select_last select(0) end #-------------------------------------------------------------------------- # ◠Draw Item #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] if item rect = item_rect(index) rect.width -= 4 if t_dictionary_switch_on?(item) change_color(normal_color, true) draw_item_name(item, rect.x, rect.y, true) else change_color(normal_color, false) draw_text(rect.x + 24, rect.y, 172, line_height, "????????") end end end #-------------------------------------------------------------------------- # ◠Update Help Text #-------------------------------------------------------------------------- def update_help if t_dictionary_switch_on?(item) @help_window.set_item(item) @status_window.set_item(item, @index, true) else @help_window.set_text("Find this item to learn more.") @status_window.set_item(item, @index, false) end end #-------------------------------------------------------------------------- # ◠Refresh #-------------------------------------------------------------------------- def refresh make_item_list create_contents draw_all_items end #-------------------------------------------------------------------------- # ◠Status Window Setting #-------------------------------------------------------------------------- def status_window=(status_window) @status_window = status_window end end #============================================================================== # ■Window_ItemDictionaryPerfection #------------------------------------------------------------------------------ #  Class for displaying the current encyclopedia completion percent. #============================================================================== class Window_ItemDictionaryPerfection < Window_Selectable include WD_itemdictionary #-------------------------------------------------------------------------- # ◠Object Initialization #-------------------------------------------------------------------------- def initialize(x, y, width, height) super refresh(width) end #-------------------------------------------------------------------------- # ◠Refresh #-------------------------------------------------------------------------- def refresh(width) contents.clear draw_text(0, 0, width-24, line_height, "Complete: #{item_dictionary_perfection} %", 1) end end #============================================================================== # ■Window_ItemDictionaryStatus #------------------------------------------------------------------------------ #  Class for displaying the details of an item in the encyclopedia. #============================================================================== class Window_ItemDictionaryStatus < Window_Selectable include WD_itemdictionary #-------------------------------------------------------------------------- # ◠Object Initialization #-------------------------------------------------------------------------- def initialize(x, y, width, height) super @item = nil refresh end #-------------------------------------------------------------------------- # ◠Item Settings #-------------------------------------------------------------------------- def set_item(item, index=-1, print=false) return if ((@item == item) and (@index == index)) @item = item @index = index @print = print refresh end #-------------------------------------------------------------------------- # ◠Refresh #-------------------------------------------------------------------------- def refresh contents.clear contents.font.size = 24 if @print if @item.is_a?(RPG::Item) if WD_itemdictionary_layout::I_id_display text1 = sprintf("%0#{WD_itemdictionary_layout::I_id_display_digit}d"+":",@index+1) x = WD_itemdictionary_layout::I_id_display_x y = WD_itemdictionary_layout::I_id_display_y width = WD_itemdictionary_layout::I_id_display_width height = line_height draw_text(x, y, width, height, text1, 0) end if WD_itemdictionary_layout::I_name_display x = WD_itemdictionary_layout::I_name_display_x y = WD_itemdictionary_layout::I_name_display_y draw_item_name(@item, x, y, true) end font_size = WD_itemdictionary_layout::C_font_size contents.font.size = font_size if WD_itemdictionary_layout::I_price_display text1 = WD_itemdictionary_layout::I_price_display_text1 text2 = @item.price text3 = Vocab::currency_unit x = WD_itemdictionary_layout::I_price_display_x y = WD_itemdictionary_layout::I_price_display_y width = WD_itemdictionary_layout::I_price_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) cx = text_size(Vocab::currency_unit).width change_color(normal_color) draw_text(x, y, width - cx - 2, font_size, text2, 2) change_color(system_color) draw_text(x, y, width, font_size, text3, 2) change_color(normal_color) end if WD_itemdictionary_layout::I_occasion_display text1 = WD_itemdictionary_layout::I_occasion_display_text1 text2 = WD_itemdictionary_layout::I_occasion_display_text2 text3 = WD_itemdictionary_layout::I_occasion_display_text3 text4 = WD_itemdictionary_layout::I_occasion_display_text4 text5 = WD_itemdictionary_layout::I_occasion_display_text5 x = WD_itemdictionary_layout::I_occasion_display_x y = WD_itemdictionary_layout::I_occasion_display_y width = WD_itemdictionary_layout::I_occasion_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) case @item.occasion when 0 draw_text(x, y, width, font_size, text2, 2) when 1 draw_text(x, y, width, font_size, text3, 2) when 2 draw_text(x, y, width, font_size, text4, 2) when 3 draw_text(x, y, width, font_size, text5, 2) end end if WD_itemdictionary_layout::I_consumable_display text1 = WD_itemdictionary_layout::I_consumable_display_text1 text2 = WD_itemdictionary_layout::I_consumable_display_text2 text3 = WD_itemdictionary_layout::I_consumable_display_text3 x = WD_itemdictionary_layout::I_consumable_display_x y = WD_itemdictionary_layout::I_consumable_display_y width = WD_itemdictionary_layout::I_consumable_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) if @item.consumable draw_text(x, y, width, font_size, text2, 2) else draw_text(x, y, width, font_size, text3, 2) end end if WD_itemdictionary_layout::I_option_display text1 = WD_itemdictionary_layout::I_option_display_text1 text2 = WD_itemdictionary_layout::I_option_display_text2 x = WD_itemdictionary_layout::I_option_display_x y = WD_itemdictionary_layout::I_option_display_y width = WD_itemdictionary_layout::I_option_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) i = 0 @item.note.scan(/<Note:(.*)>/){|matched| i += 1 self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0) } if i == 0 self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0) end end elsif @item.is_a?(RPG::Weapon) if WD_itemdictionary_layout::W_id_display text1 = sprintf("%0#{WD_itemdictionary_layout::W_id_display_digit}d"+":",@index+1) x = WD_itemdictionary_layout::W_id_display_x y = WD_itemdictionary_layout::W_id_display_y width = WD_itemdictionary_layout::W_id_display_width height = line_height draw_text(x, y, width, height, text1, 0) end if WD_itemdictionary_layout::W_name_display x = WD_itemdictionary_layout::W_name_display_x y = WD_itemdictionary_layout::W_name_display_y draw_item_name(@item, x, y, true) end font_size = WD_itemdictionary_layout::C_font_size contents.font.size = font_size if WD_itemdictionary_layout::W_type_display text1 = WD_itemdictionary_layout::W_type_display_text1 text2 = $data_system.weapon_types[@item.wtype_id] x = WD_itemdictionary_layout::W_type_display_x y = WD_itemdictionary_layout::W_type_display_y width = WD_itemdictionary_layout::W_type_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::W_price_display text1 = WD_itemdictionary_layout::W_price_display_text1 text2 = @item.price text3 = Vocab::currency_unit x = WD_itemdictionary_layout::W_price_display_x y = WD_itemdictionary_layout::W_price_display_y width = WD_itemdictionary_layout::W_price_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) cx = text_size(Vocab::currency_unit).width change_color(normal_color) draw_text(x, y, width - cx - 2, font_size, text2, 2) change_color(system_color) draw_text(x, y, width, font_size, text3, 2) change_color(normal_color) end if WD_itemdictionary_layout::W_atk_display text1 = Vocab::param(2) text2 = @item.params[2] x = WD_itemdictionary_layout::W_atk_display_x y = WD_itemdictionary_layout::W_atk_display_y width = WD_itemdictionary_layout::W_atk_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::W_def_display text1 = Vocab::param(3) text2 = @item.params[3] x = WD_itemdictionary_layout::W_def_display_x y = WD_itemdictionary_layout::W_def_display_y width = WD_itemdictionary_layout::W_def_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::W_mat_display text1 = Vocab::param(4) text2 = @item.params[4] x = WD_itemdictionary_layout::W_mat_display_x y = WD_itemdictionary_layout::W_mat_display_y width = WD_itemdictionary_layout::W_mat_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::W_mdf_display text1 = Vocab::param(5) text2 = @item.params[5] x = WD_itemdictionary_layout::W_mdf_display_x y = WD_itemdictionary_layout::W_mdf_display_y width = WD_itemdictionary_layout::W_mdf_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::W_agi_display text1 = Vocab::param(6) text2 = @item.params[6] x = WD_itemdictionary_layout::W_agi_display_x y = WD_itemdictionary_layout::W_agi_display_y width = WD_itemdictionary_layout::W_agi_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::W_luk_display text1 = Vocab::param(7) text2 = @item.params[7] x = WD_itemdictionary_layout::W_luk_display_x y = WD_itemdictionary_layout::W_luk_display_y width = WD_itemdictionary_layout::W_luk_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::W_mhp_display text1 = Vocab::param(0) text2 = @item.params[0] x = WD_itemdictionary_layout::W_mhp_display_x y = WD_itemdictionary_layout::W_mhp_display_y width = WD_itemdictionary_layout::W_mhp_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::W_mmp_display text1 = Vocab::param(1) text2 = @item.params[1] x = WD_itemdictionary_layout::W_mmp_display_x y = WD_itemdictionary_layout::W_mmp_display_y width = WD_itemdictionary_layout::W_mmp_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::W_option_display text1 = WD_itemdictionary_layout::W_option_display_text1 text2 = WD_itemdictionary_layout::W_option_display_text2 x = WD_itemdictionary_layout::W_option_display_x y = WD_itemdictionary_layout::W_option_display_y width = WD_itemdictionary_layout::W_option_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) i = 0 @item.note.scan(/<Note:(.*)>/){|matched| i += 1 self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0) } if i == 0 self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0) end end elsif @item.is_a?(RPG::Armor) if WD_itemdictionary_layout::A_id_display text1 = sprintf("%0#{WD_itemdictionary_layout::A_id_display_digit}d"+":",@index+1) x = WD_itemdictionary_layout::A_id_display_x y = WD_itemdictionary_layout::A_id_display_y width = WD_itemdictionary_layout::A_id_display_width height = line_height draw_text(x, y, width, height, text1, 0) end if WD_itemdictionary_layout::A_name_display x = WD_itemdictionary_layout::A_name_display_x y = WD_itemdictionary_layout::A_name_display_y draw_item_name(@item, x, y, true) end font_size = WD_itemdictionary_layout::C_font_size contents.font.size = font_size if WD_itemdictionary_layout::A_type_display text1 = WD_itemdictionary_layout::A_type_display_text1 text2 = $data_system.armor_types[@item.atype_id] x = WD_itemdictionary_layout::A_type_display_x y = WD_itemdictionary_layout::A_type_display_y width = WD_itemdictionary_layout::A_type_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::A_price_display text1 = WD_itemdictionary_layout::A_price_display_text1 text2 = @item.price text3 = Vocab::currency_unit x = WD_itemdictionary_layout::A_price_display_x y = WD_itemdictionary_layout::A_price_display_y width = WD_itemdictionary_layout::A_price_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) cx = text_size(Vocab::currency_unit).width change_color(normal_color) draw_text(x, y, width - cx - 2, font_size, text2, 2) change_color(system_color) draw_text(x, y, width, font_size, text3, 2) change_color(normal_color) end if WD_itemdictionary_layout::A_atk_display text1 = Vocab::param(2) text2 = @item.params[2] x = WD_itemdictionary_layout::A_atk_display_x y = WD_itemdictionary_layout::A_atk_display_y width = WD_itemdictionary_layout::A_atk_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::A_def_display text1 = Vocab::param(3) text2 = @item.params[3] x = WD_itemdictionary_layout::A_def_display_x y = WD_itemdictionary_layout::A_def_display_y width = WD_itemdictionary_layout::A_def_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::A_mat_display text1 = Vocab::param(4) text2 = @item.params[4] x = WD_itemdictionary_layout::A_mat_display_x y = WD_itemdictionary_layout::A_mat_display_y width = WD_itemdictionary_layout::A_mat_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::A_mdf_display text1 = Vocab::param(5) text2 = @item.params[5] x = WD_itemdictionary_layout::A_mdf_display_x y = WD_itemdictionary_layout::A_mdf_display_y width = WD_itemdictionary_layout::A_mdf_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::A_agi_display text1 = Vocab::param(6) text2 = @item.params[6] x = WD_itemdictionary_layout::A_agi_display_x y = WD_itemdictionary_layout::A_agi_display_y width = WD_itemdictionary_layout::A_agi_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::A_luk_display text1 = Vocab::param(7) text2 = @item.params[7] x = WD_itemdictionary_layout::A_luk_display_x y = WD_itemdictionary_layout::A_luk_display_y width = WD_itemdictionary_layout::A_luk_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::A_mhp_display text1 = Vocab::param(0) text2 = @item.params[0] x = WD_itemdictionary_layout::A_mhp_display_x y = WD_itemdictionary_layout::A_mhp_display_y width = WD_itemdictionary_layout::A_mhp_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::A_mmp_display text1 = Vocab::param(1) text2 = @item.params[1] x = WD_itemdictionary_layout::A_mmp_display_x y = WD_itemdictionary_layout::A_mmp_display_y width = WD_itemdictionary_layout::A_mmp_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) draw_text(x, y, width, font_size, text2, 2) end if WD_itemdictionary_layout::A_option_display text1 = WD_itemdictionary_layout::A_option_display_text1 text2 = WD_itemdictionary_layout::A_option_display_text2 x = WD_itemdictionary_layout::A_option_display_x y = WD_itemdictionary_layout::A_option_display_y width = WD_itemdictionary_layout::A_option_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) i = 0 @item.note.scan(/<Note:(.*)>/){|matched| i += 1 self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0) } if i == 0 self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0) end end end elsif @item != nil if @item.is_a?(RPG::Item) if WD_itemdictionary_layout::I_id_display text1 = sprintf("%0#{WD_itemdictionary_layout::I_id_display_digit}d"+":",@index+1) x = WD_itemdictionary_layout::I_id_display_x y = WD_itemdictionary_layout::I_id_display_y width = WD_itemdictionary_layout::I_id_display_width height = line_height draw_text(x, y, width, height, text1, 0) end if WD_itemdictionary_layout::I_name_display text1 = "- No Data -" x = WD_itemdictionary_layout::I_name_display_x y = WD_itemdictionary_layout::I_name_display_y width = WD_itemdictionary_layout::I_name_display_width height = line_height draw_text(x, y, width, height, text1, 0) end end if @item.is_a?(RPG::Weapon) if WD_itemdictionary_layout::W_id_display text1 = sprintf("%0#{WD_itemdictionary_layout::W_id_display_digit}d"+":",@index+1) x = WD_itemdictionary_layout::W_id_display_x y = WD_itemdictionary_layout::W_id_display_y width = WD_itemdictionary_layout::W_id_display_width height = line_height draw_text(x, y, width, height, text1, 0) end if WD_itemdictionary_layout::W_name_display text1 = "- No Data -" x = WD_itemdictionary_layout::W_name_display_x y = WD_itemdictionary_layout::W_name_display_y width = WD_itemdictionary_layout::W_name_display_width height = line_height draw_text(x, y, width, height, text1, 0) end end if @item.is_a?(RPG::Armor) if WD_itemdictionary_layout::A_id_display text1 = sprintf("%0#{WD_itemdictionary_layout::A_id_display_digit}d"+":",@index+1) x = WD_itemdictionary_layout::A_id_display_x y = WD_itemdictionary_layout::A_id_display_y width = WD_itemdictionary_layout::A_id_display_width height = line_height draw_text(x, y, width, height, text1, 0) end if WD_itemdictionary_layout::A_name_display text1 = "" x = WD_itemdictionary_layout::A_name_display_x y = WD_itemdictionary_layout::A_name_display_y width = WD_itemdictionary_layout::A_name_display_width height = line_height draw_text(x, y, width, height, text1, 0) end end end end end Share this post Link to post Share on other sites
Kayzee 4,032 Posted September 30, 2012 (edited) Geez, you should really use spoiler tags for long bits of code... Anyway you could try replacing this: if WD_itemdictionary_layout::A_option_display text1 = WD_itemdictionary_layout::A_option_display_text1 text2 = WD_itemdictionary_layout::A_option_display_text2 x = WD_itemdictionary_layout::A_option_display_x y = WD_itemdictionary_layout::A_option_display_y width = WD_itemdictionary_layout::A_option_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) i = 0 @item.note.scan(/<Note:(.*)>/){|matched| i += 1 self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0) } if i == 0 self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0) end end with this: if WD_itemdictionary_layout::A_option_display text1 = WD_itemdictionary_layout::A_option_display_text1 text2 = WD_itemdictionary_layout::A_option_display_text2 x = WD_itemdictionary_layout::A_option_display_x y = WD_itemdictionary_layout::A_option_display_y width = WD_itemdictionary_layout::A_option_display_width change_color(system_color) draw_text(x, y, width, font_size, text1, 0) change_color(normal_color) s = '' @item.note.scan(/<Note:(.+)>/){|matched| s += matched } draw_text_ex(x + font_size, y + font_size, s) end end Maybe I should work on giving draw_text_ex a width option sometime... Edited September 30, 2012 by KilloZapit Share this post Link to post Share on other sites
Coolie 148 Posted October 1, 2012 Sorry about that spoiler thing, there was no button for it when I was posting, at least not a clearly visible one. I see it's in "Special BBCode." Share this post Link to post Share on other sites
+ Novem 344 Posted December 11, 2012 [spoiler][/spoiler] Use that BBCode for hiding text inside of spoilers. Share this post Link to post Share on other sites
Bunni89 85 Posted December 11, 2012 Just posting to say YIPPIE! I found this again! Lol I downloaded this script back when I first got RPGmaker and then erroneously thought it was causing an incompatibility glitch and deleted it. Had to make do with modern algebra's one since I never bookmarked the topic, but that doesn't take into account text box changes or work anywhere like in skills or custom screens like modified menus. This is the best text formatter in my opinion so thank you!! Share this post Link to post Share on other sites
Kayzee 4,032 Posted December 11, 2012 I am glad to help miss cute pink bunny thing! *snuggles and pets the bunny then sprinkles it with dust* Tee-hee Share this post Link to post Share on other sites
Bunni89 85 Posted December 11, 2012 Hehe, actually I'm a bunny but the character is a made up bat creature. Its meant to be the human(ish) form of the one in my signature :3 Oh and he's a boy despite being pink, but I'm actually a girl who prefers blue XD So confusing yush XD But hehe thank you again, this is an awesome feature that really should have been default in Ace. It was so annoying to try and keep character limits per line and then have to edit over and over again when I accidentely wrote too much. Share this post Link to post Share on other sites
Kayzee 4,032 Posted December 11, 2012 (edited) Fun fact: In the Victorian era, pink was for boys and blue was for girls. It's true! :3 Edited December 11, 2012 by KilloZapit 1 Share this post Link to post Share on other sites
Bunni89 85 Posted December 11, 2012 I knew that XD This guy is actually a prince in a fantasy setting so it's accurate XD And also children of both genders used to be called 'girls' when they were toddlers and 'boy' started as sort of a general word for young servant or scribe. Like you'd yell 'Boy!' if you wanted the waiter to serve you. Not sure how they got to where they are nowadays, but back then it was only men who were 'servants' as opposed to cleaners or nursemaids or other specialized jobs so it probably got a masculine association over time. The past is odd! (But yeah I'll shut up now cos I'm way offtopic XD) 1 Share this post Link to post Share on other sites
Coolie 148 Posted December 11, 2012 Any luck on making draw_text_ex methods work with this script yet, Killo? Share this post Link to post Share on other sites
Kayzee 4,032 Posted December 11, 2012 Oh sorry... I really havn't been working on it... it's a bit deeper involved then I want to get right now, and I have been working on other things... Share this post Link to post Share on other sites
+ Novem 344 Posted February 4, 2013 Is there any way you could have it so that the script doesn't have it place single words on their own lines? It's my biggest gripe with this as it makes the text look very awkward. Share this post Link to post Share on other sites
Kayzee 4,032 Posted February 4, 2013 Well if a word is to big to fit on the current line, all it can do is either break to a new line or let the word be cut off. I guess it would be possible for it to count two words ahead at the end of a paragraph or something. It really is kinda a thing that most word wrapping ends up doing sometimes. I notice it happening for html sometimes too for example. Share this post Link to post Share on other sites
Tsukihime 1,489 Posted February 4, 2013 (edited) You could still manually break up your text like usual. Edited February 4, 2013 by Tsukihime Share this post Link to post Share on other sites
+ Novem 344 Posted February 4, 2013 Yes, but if I was doing that, then there would be no point to using the script in the first place. Seeing as it's intention is to save you time checking all of your text. Which for a game as dialogue heavy as mine will save me 80 or more hours in the long run. Share this post Link to post Share on other sites
Tsukihime 1,489 Posted February 4, 2013 (edited) So you're saying basically every other line needs to be manually broken up because the script can't figure out that two words are supposed to go together? If it's just one out of every hundred lines, it's still saving you 99% effort. The script uses a very simple heuristic (relative to the complexity of human language anyways) to determine whether a line should be broken. It's not like the script parses the sentence and looks up context to determine whether two words should go together or not. Alternatively, you could always re-word your sentence so that the problematic words are placed on a new line together. Edited February 4, 2013 by Tsukihime Share this post Link to post Share on other sites