Accedi per seguire questo
Seguaci
0
AMS-ums UMS-Universal Message System
Da
Ally, in Scripts RPG Maker XP (RGSS)
-
Contenuti simili
-
Da Ally
Nome Script: Dimensione e Posizione Box Messaggio
Versione: N/D
Autore/i: Zerbu
Informazioni:
Questo script consente di impostare le dimensioni di una finestra di messaggio e/o impostarlo su una posizione fissa sullo schermo di gioco.
Screenshots:
Istruzioni:
Create quattro variabili per le seguenti impostazioni:
- Larghezza della finestra di messaggio
- Altezza della finestra di messaggio
- Posizione X sullo schermo
- Posizione Y sullo schermo
Quindi, modificate le impostazioni nello script per assegnare e individuare quali variabili vengono utilizzate:
#-------------------------------------------------------------------------- # Options #-------------------------------------------------------------------------- # Variable with the message width # If the variable value is 0, the full width of the window will be used MESSAGE_WIDTH = 2 # Variable with the message height # If the variable value is 0, the default height will be used MESSAGE_HEIGHT = 3 # Variable with the X position # If the variable value is -1, it will be centred on the screen MESSAGE_X = 4 # Variable with the Y position # If the variable value is 0, the position chosen in the editor # (Top, Middle, Bottom) will be used MESSAGE_Y = 5 Script:
#============================================================================== # Message Box Options #------------------------------------------------------------------------------ # by Zerbu #============================================================================== class Window_Message < Window_Base #-------------------------------------------------------------------------- # Options #-------------------------------------------------------------------------- # Variable with the message width # If the variable value is 0, the full width of the window will be used MESSAGE_WIDTH = 2 # Variable with the message height # If the variable value is 0, the default height will be used MESSAGE_HEIGHT = 3 # Variable with the X position # If the variable value is -1, it will be centred on the screen MESSAGE_X = 4 # Variable with the Y position # If the variable value is 0, the position chosen in the editor # (Top, Middle, Bottom) will be used MESSAGE_Y = 5 #-------------------------------------------------------------------------- # DO NOT EDIT BELOW unless you know what you're doing! # If you are not careful, editing below could cause chaos in your game # world, and I don't mean something the player will enjoy! #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # alias method: window_width #-------------------------------------------------------------------------- alias default_window_width window_width def window_width #--- if $game_variables[MESSAGE_WIDTH] != 0 $game_variables[MESSAGE_WIDTH] #--- else default_window_width end #--- end #-------------------------------------------------------------------------- # alias method: window_height #-------------------------------------------------------------------------- alias default_window_height window_height def window_height #--- if $game_variables[MESSAGE_HEIGHT] != 0 $game_variables[MESSAGE_HEIGHT] #--- else default_window_height #--- end end #-------------------------------------------------------------------------- # alias method: update_placement #-------------------------------------------------------------------------- alias default_placement update_placement #--- def update_placement #--- default_placement #--- if $game_variables[MESSAGE_X] == -1 x_space = Graphics.width - window_width self.x = x_space-(x_space/2) #--- else self.x = $game_variables[MESSAGE_X] #--- end #--- if $game_variables[5] != 0 self.y = $game_variables[MESSAGE_Y] end #--- if (self.width != window_width || self.height != window_height) self.width = window_width self.height = window_height create_contents end #--- end end #============================================================================== # END SCRIPT #============================================================================== -
Da Ally
Nome Script: Effetto nel Testo dei Messaggi
Versione: 2
Autore/i: Zerbu
Informazioni:
Questo script, inserisce un suono durante lo scorrimento del testo nei messaggi.
Istruzioni:
Inserite lo script sotto Material.
Per cambiare l'effetto del suono, fate riferimento a questa riga:
MESSAGE_SOUND = RPG::SE.new("Knock", 70, 80) Script:
#============================================================================== # Text Sound Effect (version 2) # NEW FEATURE: Switch to turn off sound effect #------------------------------------------------------------------------------ # by Zerbu #============================================================================== module Text_Sound_Effect #-------------------------------------------------------------------------- # Options #-------------------------------------------------------------------------- # The sound effect to play MESSAGE_SOUND = RPG::SE.new("Knock", 70, 80) # The number of characters to display before each time the sound plays # The default is 3, it's recommended you keep it as this unless you # know what you're doing MESSAGE_SOUND_FRAMES = 3 # Switch to disable sound effect # If you need to turn off the sound effect for any part of the game, # turn this switch on # Set to nil to disable this feature MESSAGE_SOUND_DISABLE = nil end class Window_Base < Window include Text_Sound_Effect #-------------------------------------------------------------------------- # alias method: process_characer #-------------------------------------------------------------------------- alias textsound_process_character_normal process_character def process_character(c, text, pos) if !MESSAGE_SOUND_DISABLE or !$game_switches[MESSAGE_SOUND_DISABLE] #--- if !defined?(@sound_frames) @sound_frames = 0 end #--- if @sound_frames == 0 MESSAGE_SOUND.play end #--- @sound_frames+=1 #--- if @sound_frames == MESSAGE_SOUND_FRAMES @sound_frames = 0 end #--- end textsound_process_character_normal(c, text, pos) end #--- end -
Da Ally
Nome Script: ATS: Codici Speciali nei Messaggi
Versione: 1.0
Autore/i: modern algebra
Informazioni:
Questo script consente di utilizzare una serie di ulteriori codici speciali nei messaggi, che saanno funzioni simili ai codici di default come v[n], c[n], ecc...
Per consultare l'elenco dei codici andate a linea 54 per un'idea completa di ciò che viene aggiunto. In sostanza, ti dà un maggiore controllo sul messaggio e ti permette di fare uso di effetti come il carattere grassetto e corsivo, e consente di recuperare e visualizzare i dati utili come i nomi di armi e armature.
Istruzioni:
Inserite lo script sotto Material.
Istruzioni all'interno dello script.
Script:
#============================================================================== # ATS: Special Message Codes [VXA] # Version: 1.0 # Author: modern algebra (rmrk.net) # Date: December 11, 2011 #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Description: # # This script allows you to use a number of additional special codes in the # message system, which will function similar to the default codes like # v[n], c[n], etc. Please see the list of special message codes starting at # line 54 for a full idea of what is added. Basically, it gives you greater # control over the delivery of a message, allows you to make use of font # effects like bolding and italicizing, and allows you to retrieve and # display useful data like the names of weapons and armors. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # ATS Series: # # This script is part of the Advanced Text System series of scripts. These # scripts are based off the Advanced Text System for RMVX, but since RMVX Ace # has a much more sensibly designed message system, it is no longer necessary # that it be one large script. For that reason, and responding to feedback on # the ATS, I have split the ATS into multiple different scripts so that you # only need to pick up the components for the features that you want. It is # therefore easier to customize and configure. # # To find more scripts in the ATS Series, please visit: # http://rmrk.net/index.php/topic,44525.0.html #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Instructions: # # This script is not difficult to use or configure. There are only two # configuration options for this script. These are: # # :message_speed # :show_fast_speed # # :message_speed allows you to set the default number of frames to wait # between drawing each letter in the message window. :show_fast_speed allows # you to control the amount it speeds up when the player presses enter. You # can gain instructions on setting the default value for both at line 180. # # As with other ATS scripts, you can change the value of these options in # game with the following codes in a script call: # # ats_next(:message_option, <img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/lunettes.gif' class='bbc_emoticon' alt='8-)' /> # ats_all(:message_option, <img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> # # Where :message_option is the symbol you want (:message_speed or # :show_fast_speed) and x is the value you want to change it to. ats_next # will only change it for the very next message, while ats_all will change it # for every message to follow. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # List of Special Message Codes: # # The default message codes are retained, and this script adds a number of # other desirable features. The following is a complete list of the message # codes at your disposal. Simply insert them into a Display Message command, # Choice Branches, or any other message related system. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Font Effects: # # fn[fontname] - Change the font to fontname. If you put multiple fontnames # separated by commas, then it will take the first one the user has installed # fs[n] - Change the font size to n. # { - Increase the font size by 8. # } - Decrease the font size by 8. # c[n] - Set the colour of the text being drawn to the nth colour of the # Windowskin palette. 0 is the normal color and 16 is the system color. # hc[RRGGBB] or c[#RRGGBB] - Set the colour of the text being drawn to any # colour, using hexadecimal values. You can set each colour (red, green, # blue) to anything from 0-255 (00-FF). You must use hexadecimal values. If # so desired, you can add an additional hex value from 00-FF to change the # alpha. # b - Turn bold on. Text drawn after this code will be bolded. # /b - Turn bold off. # i - Turn italic on. Text drawn after this code will be italicized. # /i - Turn italic off. # o - Turn outline on. # /o - Turn outline off. # s - Turn shadow on. Text drawn after this code will have a shadow. # /s - Turn shadow off. # u - Turn underline on. Text drawn after this code will be underlined. # /u - Turn underline off. # hl[n] - Turn highlight on. Text drawn after this code will be highlighted # with colour n + 1 from the windowskin palette # /hl OR hl[0] - Turn highlight off. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Message Control: # # s[n] - Sets the message speed to wait n frames between drawing every letter. # 0 is instant. # s[+n] - Sets the message speed to wait an additional n frames between drawing # every letter. # s[-n] - Sets the message speed to wait n less frames between drawing every # letter. # . - Wait 15 frames before drawing the next character # | - Wait 60 frames before drawing the next character # w[n] - Wait n frames before drawing the next character # ! - Pause text and wait for player to press Enter # ^ - Skip Pause; allows you to close a message window without requiring player # input. # > - Show line fast. # < - Stop showing line fast. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Replacement Codes: # # p[n] - Draw the name of the actor in the xth position in the party. 1 is # the party leader, 2 is the second member, etc. # n[n] - Draw the name of the actor with ID n # nn[n] - Draw the nickname of the actor with ID n. # pid[n] - Draw the ID of the actor in the nth position in the party. # ac[n] - Draw the class name of the actor with ID n. # al[n] - Draw the level of the actor with ID n. # ni[n] - Draw the name of the item with ID n. # nw[n] - Draw the name of the weapon with ID n. # na[n] - Draw the name of the armor with ID n. # ns[n] - Draw the name of the skill with ID n. # nt[n] - Draw the name of the state with ID n. # nc[n] - Draw the name of the class with ID n. # ne[n] - Draw the name of the event with ID n on the current map. # nm[n] - Draw the name of the enemy with ID n. # nv[n] - Draw the name of the variable with ID n. # nsw[n] - Draw the name of the switch with ID n. # nl[n] - Draw the name of the element with ID n. # nwt[n] - Draw the name of the weapon type with ID n. # nat[n] - Draw the name of the armor type with ID n. # nst[n] - Draw the name of the skill type with ID n. # np[n] - Draw the name of the actor in the nth position in the party. # map - Draw the name of the map the player is currently on. # map[n] - Draw the name of the map with ID n. # pg - Draws the amount of money the party has. # g - Draws the unit of currency. # vocab[method] - Will draw whatever Vocab.method returns, if it is a valid # method call. Suitable values for method are: level, level_a, hp, hp_a, # mp, mp_a, tp, tp_a, fight, escape, attack, guard, item, skill, equip, # status, formation, save, game_end, weapon, armor, key_item, equip2, # optimize, clear, new_game, continue, shutdown, to_title, cancel, # currency_unit # vocab[param, n] - Will draw the label for parameter with ID n. 0 => Max HP; # 1 => Max MP; 2 => Attack; 3 => Defence; 4 => Magic; 5 => Magic Defence; # 6 => Agility; 7 => Luck # vocab[etype, n] - Will draw the label for equipment type with ID n. # 0 => Weapon; 1 => Shield; 2 => Head; 3 => Body; 4 => Accessory #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Other Effects: # # $ - Opens a window which shows the party's gold. # n - line break # i[n] - Draw icon with index n. # ii[n] - Draw icon of the item with ID n. # iw[n] - Draw icon of the weapon with ID n. # ia[n] - Draw icon of the armor with ID n. # is[n] - Draw icon of the skill with ID n. # it[n] - Draw icon of the state with ID n. # x[n] - Draw next character at pixel n of the window contents. # s[n,text] - Will only draw text only if the switch with ID n is ON. # s![n,text] - Will only draw text only if the switch with ID n is OFF. # #{code} - This will evaluate code. So, if you know scipting, you can place # any code there and it will draw whatever is returned by it. For instance: # #{$game_system.save_count} would draw the number of times the player has # saved the current game. #============================================================================== $imported = {} unless $imported $imported[:ATS_SpecialMessageCodes] = true #============================================================================== # ** Game_ATS #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # new public instance variables - message_speed; special_message_codes #============================================================================== class Game_ATS CONFIG = {} unless $imported[:AdvancedTextSystem] CONFIG[:special_message_codes] = { special_message_codes:true, # # EDITABLE REGION #|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| # :message_speed => x, # Changing the value of x determines the default number of frames to # wait between drawing letters in a message window. 0 is instant. :message_speed => 1, # :show_fast_speed => x # Changing the value of x determines the number of frames to wait # between drawing letters when the player is holding enter. 0 is # instant :show_fast_speed => 0 #|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| # END EDITABLE REGION #//////////////////////////////////////////////////////////////////////// } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Public Instance Variables #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CONFIG[:special_message_codes].keys.each { |key| attr_accessor key } end #============================================================================== # Initialize Common ATS Data if no other ATS script interpreted first #============================================================================== if !$imported[:AdvancedTextSystem] #============================================================================ # *** DataManager #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # aliased method - create_game_objects; make_save_contents; # extract_save_contents #============================================================================ module DataManager class << self #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Create Game Objects #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias modb_ats_crtgmobj_6yh7 create_game_objects def create_game_objects(*args, &block) modb_ats_crtgmobj_6yh7(*args, &block) $game_ats = Game_ATS.new $game_ats.init_new_installs end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Make Save Contents #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias mlba_ats_mksave_5tg9 make_save_contents def make_save_contents(*args, &block) contents = mlba_ats_mksave_5tg9(*args, &block) contents[:ats] = $game_ats contents end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Extract Save Contents #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias ma_ats_extrcsvcon_8uj2 extract_save_contents def extract_save_contents(contents, *args, &block) ma_ats_extrcsvcon_8uj2(contents, *args, &block) $game_ats = contents[:ats] ? contents[:ats] : Game_ATS.new $game_ats.init_new_installs end end end #============================================================================ # ** Game_ATS #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # This class holds the default data for all scripts in the ATS series #============================================================================ class Game_ATS def initialize; reset; end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Reset any or all installed ATS scripts #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def reset(script_name = nil) if script_name.is_a? (Symbol) # If script to reset specified CONFIG[script_name].each_pair { |key, value| self.send("#{key}=".to_sym, value) $game_message.send("#{key}=".to_sym, value) } else # Reset all ATS scripts CONFIG.keys.each { |script| reset(script) } end end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Initialize any newly installed ATS scripts #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def init_new_installs CONFIG.keys.each { |script| reset(script) unless self.send(script) } end end #============================================================================ # ** Game_Message #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # aliased method - clear #============================================================================ class Game_Message #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Clear #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias mlb_ats_clrats_5tv1 clear def clear(*args, &block) mlb_ats_clrats_5tv1(*args, &block) # Run Original Method return if !$game_ats Game_ATS::CONFIG.values.each { |installed| installed.keys.each { |key| self.send("#{key}=".to_sym, $game_ats.send(key)) } } end end #============================================================================ # ** Game_Interpreter #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # new methods - ats_all; ats_next #============================================================================ class Game_Interpreter #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * ATS All #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def ats_all(sym, *args, &block) $game_ats.send("#{sym}=".to_sym, *args, &block) ats_next(sym, *args, &block) end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * ATS Next #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def ats_next(sym, *args, &block) $game_message.send("#{sym}=".to_sym, *args, &block) end end end $imported[:AdvancedTextSystem] = true class Game_Message Game_ATS::CONFIG[:special_message_codes].keys.each { |key| attr_accessor key } end #============================================================================== # ** Game_Event #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # new method - name #============================================================================== class Game_Event def name return @event ? @event.name : "" end end #============================================================================== # ** Window_Base #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # aliased methods - initialize; convert_escape_characters; calc_line_height; # process_escape_character; process_normal_character; reset_font_settings #============================================================================== class Window_Base #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Object Initialization #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias mlgb_atssmc_init_3do9 initialize def initialize(*args, &block) mlgb_atssmc_init_3do9(*args, &block) # Run Original Method @underline = false @highlight = -1 end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Convert Escape Characters #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias ma_atssmc_convesc_4rc1 convert_escape_characters def convert_escape_characters(*args, &block) result = ma_atssmc_convesc_4rc1(*args, &block) # Run Original Method # Party result.gsub!(/ePID[(d+)]/i) { $1.to_i >= 1 ? $game_party.members[$1.to_i - 1].id.to_s : "1" } result.gsub!(/ePG/i) { $game_party.gold } # Message Speed result.gsub!(/eS[([+-]?d+)]/i) { "eMS[#{$1}]" } result.gsub!(/e%/) { "eDS%"} # Hex Colour result.gsub!(/eC[#/i) { "eHC[" } # Icons result.gsub!(/eII[(d+)]/i) { "eI[#{$data_items[$1.to_i].icon_index}]" rescue "" } result.gsub!(/eIW[(d+)]/i) { "eI[#{$data_weapons[$1.to_i].icon_index}]" rescue "" } result.gsub!(/eIA[(d+)]/i) { "eI[#{$data_armors[$1.to_i].icon_index}]" rescue "" } result.gsub!(/eIS[(d+)]/i) { "eI[#{$data_skills[$1.to_i].icon_index}]" rescue "" } result.gsub!(/eIT[(d+)]/i) { "eI[#{$data_states[$1.to_i].icon_index}]" rescue "" } # Actor Stats result.gsub!(/eAC[(d+)]/i) { $data_classes[$game_actors[$1.to_i].class_id].name } result.gsub!(/eAL[(d+)]/i) { $game_actors[$1.to_i].level.to_s } # Names result.gsub!(/eMAP[(d+)]/i) { load_data(sprintf("Data/Map%03d.rvdata2", $1.to_i)).display_name rescue "" } result.gsub!(/eMAP/i) { $game_map.display_name rescue "" } result.gsub!(/eNE[(d+)]/i) { $game_map.events[$1.to_i].name } result.gsub!(/eNN[(d+)]/i) { $game_actors[$1.to_i].nickname } result.gsub!(/eNI[(d+)]/i) { $data_items[$1.to_i].name rescue "" } result.gsub!(/eNW[(d+)]/i) { $data_weapons[$1.to_i].name rescue "" } result.gsub!(/eNA[(d+)]/i) { $data_armors[$1.to_i].name rescue "" } result.gsub!(/eNS[(d+)]/i) { $data_skills[$1.to_i].name rescue "" } result.gsub!(/eNT[(d+)]/i) { $data_states[$1.to_i].name rescue "" } result.gsub!(/eNM[(d+)]/i) { $data_enemies[$1.to_i].name rescue "" } result.gsub!(/eNC[(d+)]/i) { $data_classes[$1.to_i].name rescue "" } result.gsub!(/eNV[(d+)]/i) { $data_system.variables[$1.to_i] } result.gsub!(/eNSW[(d+)]/i) { $data_system.switches[$1.to_i] } result.gsub!(/eNWT[(d+)]/i) { $data_system.weapon_types[$1.to_i] } result.gsub!(/eNAT[(d+)]/i) { $data_system.armor_types[$1.to_i] } result.gsub!(/eNST[(d+)]/i) { $data_system.skill_types[$1.to_i] } result.gsub!(/eNL[(d+)]/i) { $data_system.elements[$1.to_i] } # Vocab result.gsub!(/eVOCAB[(w+),s*(d+)s*]/i) { Vocab.send($1.downcase, $2.to_i) rescue "" } result.gsub!(/eVOCAB[(w+)]/i) { Vocab.send($1.downcase) rescue "" } # Font Settings result.gsub!(/eB/i) { "eFE[0]" } # Bold On result.gsub!(//B/i) { "eFE[1]" } # Bold Off result.gsub!(/eI([^[])/i) { "eFE[2]#{$1}" } # Italics On result.gsub!(//I/i) { "eFE[3]" } # Italics Off result.gsub!(/eO/i) { "eFE[4]" } # Outline On result.gsub!(//O/i) { "eFE[5]" } # Outline Off result.gsub!(/eS([^[!])/i) { "eFE[6]#{$1}" } # Shadow On result.gsub!(//S/i) { "eFE[7]" } # Shadow Off result.gsub!(/eU/i) { "eFE[8]" } # Underline On result.gsub!(//U/i) { "eFE[9]" } # Underline Off result.gsub!(/eHL[(d+)]/i) { "eHL[#{$1.to_i}]" } # Highlight On: custom colour result.gsub!(/eHL([^[])/i) { "eHL[17]#{$1}" }# Highlight On: system colour result.gsub!(//HL/i) { "eHL[0]" } # Hightlight Off result.gsub!(//FN/i) { "eFN[]" } # Default Font result.gsub!(//FS/i) { "eFS[#{Font.default_size}]" } # Default Font # Conditional Text result.gsub!(/eS[(d+)[,;:](.+?)]/i) { $game_switches[$1.to_i] ? $2 : "" } result.gsub!(/eS![(d+)[,;:](.+?)]/i) { $game_switches[$1.to_i] ? "" : $2 } # Evaluation result.gsub!(/e#{(.+?)}/im) { (eval($1)).to_s rescue "" } # Do resubstitutions if requested if result.sub!(/eRESUB/i, "") != nil result = convert_escape_characters(result, *args, &block) end result.gsub!(/eN/i, "n") # Line Break result # Return result end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Calculate Line Height #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias ma_atssmc_clclnhght_3ek9 calc_line_height def calc_line_height(text, *args, &block) res = ma_atssmc_clclnhght_3ek9(text, *args, &block) # Run Original Method text.slice(/^.*$/).scan(/eFS[(d+)]/i) { |num| res = [res, num[0].to_i].max } res end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Process Normal Character #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias mlra_atssmc_procnorm_5fg2 process_normal_character def process_normal_character(c, pos, *args, &block) draw_highlight_underline(c, pos) if @underline || @highlight mlra_atssmc_procnorm_5fg2(c, pos, *args, &block) # Run Original Method end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Process Escape Character #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias ma_atssmc_procesc_7gv1 process_escape_character def process_escape_character(code, text, pos, *args, &block) case code.upcase when 'X' then pos[:x] = obtain_escape_param(text) when 'HC' # Hex Colour hex = text.slice!(/^[([ABCDEFd]+)]/i) rgb = $1.scan(/../).map { |hex| hex.to_i(16) } change_color(Color.new(*rgb)) if rgb.size.between?(3,4) when 'FE' # Font Settings param = obtain_escape_param(text) case param / 2 when 0 then contents.font.bold = ((param % 2) == 0) # Bold when 1 then contents.font.italic = ((param % 2) == 0) # Italic when 2 then contents.font.outline = ((param % 2) == 0) # Outline when 3 then contents.font.shadow = ((param % 2) == 0) # Shadow when 4 then @underline = ((param % 2) == 0) # Underline end when 'HL' then @highlight = obtain_escape_param(text) - 1 # Highlight when 'FN' # Font Name text.slice!(/^[(.*?])/) param = $1 if param.nil? || param == ']' contents.font.name = Font.default_name else ary = [] while param.slice!(/s*(.+?)s*[,;:]]/) != nil do ary.push($1) end contents.font.name = ary end when 'FS' # Font Size text.slice!(/^[(d+)]/) contents.font.size = [[$1.to_i, 16].max, 64].min else ma_atssmc_procesc_7gv1(code, text, pos, *args, &block) # Run Original Method end end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Reset Font Settings #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias ma_atssmc_resetfont_8jb5 reset_font_settings def reset_font_settings(*args, &block) ma_atssmc_resetfont_8jb5(*args, &block) # Run Original Method contents.font.outline = Font.default_outline contents.font.shadow = Font.default_shadow @underline = false @highlight = -1 end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Draw Highlighting and Underlining #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def draw_highlight_underline(c, pos) text_width = text_size(c).width y_space = (pos[:height] - contents.font.size) / 2 if @underline # Underlining y = pos[:y] + pos[:height] y -= [2, y_space].max contents.fill_rect(pos[:x], y, text_width, 2, contents.font.color) end if @highlight >= 0 # Highlighting y = pos[:y] y += y_space - 1 if y_space > 0 text_height = [contents.font.size + 2, pos[:height]].min colour = text_color(@highlight) colour.alpha = 128 if colour.alpha > 128 contents.fill_rect(pos[:x], y, text_width, text_height, colour) end end end #=============================================================================== # ** Window_Message #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Summary of Changes: # aliased method - clear_instance_variables; process_escape_character; # update_show_fast; wait_for_one_character #=============================================================================== class Window_Message #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Clear Instance Variables #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias ma_atssmc_clrinsvar_3dq9 clear_instance_variables def clear_instance_variables(*args, &block) ma_atssmc_clrinsvar_3dq9(*args, &block) # Run Original Method @skip_disabled = false end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Process Escape Character #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias mnaa_atssmc_escchar_3dr9 process_escape_character def process_escape_character(code, text, pos, *args, &block) case code.upcase when 'MS' # Set Message Speed if !text[/^[([+-])/].nil? text.sub!(/^[([+-])/, '[' ) sign = $1 else sign = "" end param = obtain_escape_param(text) sign.empty? ? $game_message.message_speed = param : $game_message.message_speed += "#{sign}#{param}".to_i when 'DS' text.slice!(/^%/) # Delete buffer to ensure code isn't overextended @skip_disabled = !@skip_disabled when 'W' then wait(obtain_escape_param(text)) else mnaa_atssmc_escchar_3dr9(code, text, pos, *args, &block) # Run Original Method end end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Update Show Fast #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias mlg_atssmc_updshwfast_7yb1 update_show_fast def update_show_fast(*args, &block) mlg_atssmc_updshwfast_7yb1(*args, &block) @show_fast = Input.press? (Input::C) if $game_message.show_fast_speed > 0 @show_fast = false if @skip_disabled end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # * Wait for One Character #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alias mdrnl_smcats_waitonechar_5rf1 wait_for_one_character def wait_for_one_character(*args, &block) mdrnl_smcats_waitonechar_5rf1(*args, &block) # Run Original Method if (@show_fast || @line_show_fast) && $game_message.show_fast_speed > 0 wait($game_message.show_fast_speed) elsif $game_message.message_speed > 1 wait($game_message.message_speed - 1) end end end Incompatibilità:
Potrebbe non funzionare con script che utilizzano gli stessi codici per i messaggi.
-
Da Ally
Nome script: Mini box
Versione: N/D
Autore: Woratana, tradotto in Italiano da Yoshi91.
Informazioni:
Permette di creare dei box messaggi sui chara.
Screenshots:
Script:
#=============================================================== # ● [VX] ◦ Mini Box Messaggi sopra gli eventi ◦ □ # * Mostra testo sopra un evento * #-------------------------------------------------------------- # ◦ Creato da Woratana [[email protected]] # ◦ Della comunità di RPG Maker # - Tradotto in Ita da Yoshi91 # ◦ Aggiornato il: 22/12/2008 # ◦ Versione: 2.0 #-------------------------------------------------------------- #================================================================== # ** INFO ** #----------------------------------------------------------------- # - Mostra testo sopra il giocatore o un evento. # - Cambia l'opacità e la posizione della finestra (nello script). # - Scegli se riprodurre un suono quando viene mostrato un mini-messaggio (nello script). # - Fixato Bug nella versione 1.0 che dava errore quando parte una battaglia. #================================================================== # ** Istruzioni per l'uso ** # #----------------------------------------------------------------- # 1. Setta le impostazioni dello script nell'apposito spazio # 2. Per scrivere ciò che apparirà nel box messaggi usa un chiama script: # set_text(personaggio, nuovo_testo) # # - al posto di 'personaggio' si setterà dove apparirà: # sostituirlo con -1 per farlo apparire sul giocatore, con 0 per farlo apparire # sull'evento che si sta utilizzando e 1 e maggiore per farlo apparire su un # evento che volete voi scrivendo l'ID di questo. # # - al posto di 'nuovo_testo' si digiterà il testo che verrà mostrato a schermo. # # - Il testo che si dovrà mostrare deve essere compreso fra ' o " # # Un esempio: # set_text(10,'Ciao!') # # Con questo chiama script verrà mostrato Ciao sopra l'evento con ID 10. # #================================================================== #PS: per sovrascrivere un mini messaggio basta usare un altro chiama script, #così il vecchio messaggio viene sostituito da quello nell'ultimo chiama script, #usando sempre lo stesso codice, senza dover settare qualcosa. Comodo, no? #================================================================== module Wora_CTB #================================================================ # ** Inizio impostazioni #---------------------------------------------------------------- TEXTBOX_SKIN = 'Window' # Nome della Windowskin in cui sarà mostrato il mini # Messaggio. (bisogna inserire questa nella cartella # System del vostro gioco, e scrivere Window per usare # quella di base, che viene usata nel vostro gioco. # Scrivi Window se setti TESTBOX_OPACITY a 0. TEXTBOX_OPACITY = 0 # Opacità della windowskin usata per il mini messaggio: # 0 minimo, 255 massimo. # Setta 0 per non usare una Windowskin, 255 per averla # solida e compatta. TEXTBOX_X_OFFSET = 0 # Sposta la posizione del mini box orizzontalmente # (usa + o -, per 0 non scrivere nè + nè -.) # Scrivere - col trattino. TEXTBOX_Y_OFFSET = -1 # Sposta la posizione del mini box verticalmente # (usa + o -, per 0 non scrivere nè + nè -.) # Scrivere - col trattino. TEXTBOX_POPSOUND_MODE = 0 # Qui setta il metodo di riproduzione Suono (SE), # ovvero: # MODO 1- Non verrà riprodotto nessun SE quando verrà visualizzato il mini # messaggio. (per settare questo scrivere 0). # MODO 2- Verrà riprodotto il SE solo quando verrà mostrato il mini messaggio, # infatti quando verra modificato questo non si sentirà il suono.(per settare # questo scrivere 1). # MODO 3- Verrà riprodotto il SE quando verrà visualizzato il mini messaggio # e quando verrà sovrascritto da un altro. TEXTBOX_POPSOUND = 'Decision1' # Setta qui il nome del SE TEXTBOX_POPSOUND_VOLUME = 80 # Setta qui il volume del SE TEXTBOX_POPSOUND_PITCH = 100 # Setta qui la velocità del SE #---------------------------------------------------------------- # ** Fine impostazioni #================================================================ #================================================================ #NON MODIFICARE LE RIGHE SEGUENTI SE NON SEI UNO SCRIPTER, #SI POTREBBERO CAUSARE ERRORI!!! #================================================================ end $worale = {} if $worale.nil? $worale['Chartbox'] = true class Game_Interpreter def set_text(evid, new_text) target = get_character(evid) target.text = new_text end end class Sprite_Character < Sprite_Base alias wora_chartbox_sprcha_upd update alias wora_chartbox_sprcha_dis dispose def update wora_chartbox_sprcha_upd @chartext = '' if @chartext.nil? if @character.text != @chartext @chartext = @character.text $game_system.chartbox = {} if $game_system.chartbox.nil? case @character.class when Game_Player; char_id = -1 when Game_Event; char_id = @character.id end $game_system.chartbox[[$game_map.map_id, char_id]] = @chartext if @chartext == '' @textbox.visible = false if [email protected]? else if @textbox.nil? @textbox = Window_CharTBox.new RPG::SE.new(Wora_CTB::TEXTBOX_POPSOUND, Wora_CTB::TEXTBOX_POPSOUND_VOLUME, Wora_CTB::TEXTBOX_POPSOUND_PITCH).play if Wora_CTB::TEXTBOX_POPSOUND_MODE > 0 else RPG::SE.new(Wora_CTB::TEXTBOX_POPSOUND, Wora_CTB::TEXTBOX_POPSOUND_VOLUME, Wora_CTB::TEXTBOX_POPSOUND_PITCH).play if Wora_CTB::TEXTBOX_POPSOUND_MODE == 2 end @textbox.set_text(@chartext) @textbox.visible = true end end if @chartext != '' @textbox.x = self.x - (@textbox.width / 2) + Wora_CTB::TEXTBOX_X_OFFSET @textbox.y = self.y - self.oy - @textbox.height + Wora_CTB::TEXTBOX_Y_OFFSET end end def dispose @textbox.dispose if [email protected]? and [email protected]? wora_chartbox_sprcha_dis end end class Game_Character attr_accessor :text alias wora_chartbox_gamcha_ini initialize def initialize(*args) wora_chartbox_gamcha_ini(*args) $game_system.chartbox = {} if $game_system.chartbox.nil? case self.class when Game_Player my_text = $game_system.chartbox[[$game_map.map_id, -1]] if !$game_system.chartbox[[$game_map.map_id, -1]].nil? when Game_Event my_text = $game_system.chartbox[[$game_map.map_id, @id]] if !$game_system.chartbox[[$game_map.map_id, @id]].nil? end @text = my_text.nil? ? '' : my_text end end class Game_System attr_accessor :chartbox end class Game_Interpreter alias wora_chartbox_gamint_com201 command_201 unless $@ def command_201 if $game_map.fog_reset if @params[0] == 0; id_map = @params[1] else; id_map = $game_variables[@params[1]] end $game_system.chartbox = {} if id_map != @map_id end wora_chartbox_gamint_com201 end end class Window_CharTBox < Window_Base def initialize(x = 0, y = 0, w = 66, h = WLH+32) super(x,y,w,h) self.windowskin = Cache.system(Wora_CTB::TEXTBOX_SKIN) self.opacity = Wora_CTB::TEXTBOX_OPACITY end def set_text(text) if text != @text text_w = self.contents.text_size(text).width self.width = text_w + 32 create_contents self.contents.font.color = normal_color self.contents.draw_text(0, 0, self.contents.width, WLH, text, 1) @text = text end end end #================================================================================= # [FINE SCRIPT] Mini Box Messaggi sopra i chara da Woratana [[email protected]] #================================================================================= -
Da Ally
Nome Script: NMS - Neo Message System
Versione: 3.0
Autore/i: Woratana
Informazioni:
Un sistema di messaggi che prende piede dall'AMS di dubealex,e quindi riportato anche per VX.
Con questo script,si possono inserire opzioni che non sono presenti nel VX,esempio:
Istruzioni:
All'interno della demo ^^
Demo:
http://www.mediafire.com/?2mhjjkk4mte
-