Vai al contenuto

Rilevato Ad-Blocker. Per favore disabilita il tuo adblocker quando navighi su makerando.com - Non c'è nessun annuncio invasivo.

Ally

Utente
  • Numero contenuti

    1074
  • Iscritto

  • Ultima visita

  • Days Won

    17

Tutti i contenuti di Ally

  1. Ally

    bug riscontrati

    Perfetto.. Adesso vedo di risolvere per il problema degli accenti nel forum..
  2. Nome Script: Game Over con Scelte Versione: N/D Autore/i: bStefan Informazioni: Lo script da la possibilità nel Game Over di riavviare una battaglia, caricare un salvaggio, tornare al titolo, o di uscire semplicemente dal gioco. Istruzioni: Inserite lo script sotto Material. Per customizzare lo script in alcune opzioni, seguite qui sotto come fare: - Per modificare la posizione della finestra, fate riferimento alle righe 82-83 - Per modificare la larghezza della finestra, fate riferimento alla riga 47 - Se si vogliono inserire più colonne, fate riferimento alla riga 40 (si avrà bisogno anche delllo script qui di seguito): http://rpgmkr.net/forum/colonne-multiple-in-command-window-t2429.html - Se volete altri comandi, modificate make_command_list e create_command_window aggiungendo anche i metodi richiesti - Se volete eliminare la possibilità di riavviare la battaglia, fate riferimento alla riga 34 Script: #================================================= # by bStefan aka. regendo # please give credit if used # for use with RMVX ACE #================================================= # GameOver with choices #================================================= # adds four choices to Scene_Gameover: # : Retry Battle (if you lost the battle) # : Load Savegame (if there is a savefile) # : Return to Title # : Quit Game #================================================= # implement over Main # implement under Multiple_Cols_in_Command_Window # if existant #================================================= module Regendo unless @scripts @scripts = Hash.new def self.contains?(key) @scripts[key] == true end end @scripts["GameOver_Window"] = true module GameOver_Window def self.multiple_cols? return false unless Regendo::contains?("Horizontal_Command") USE_MULTIPLE_COLUMNS end #======= #CONFIG #======= RETRY = true #if false, Retry Battle function will not be aviable #============================================== #requires Horizontal_Command script by regendo #============================================== if Regendo::contains?("Horizontal_Command") USE_MULTIPLE_COLUMNS = true #use Horizontal_Command Script? COLUMNS = 2 #requires ^ set to true end #================================================= #only used if not using Horizontal_Command Script #================================================= WINDOW_WIDTH = 225 end end if Regendo::GameOver_Window::multiple_cols? class Window_GameOver < Window_HorizontalCommand #more than one column possible end else class Window_GameOver < Window_Command #only one column end end class Window_GameOver def initialize if Regendo::GameOver_Window::multiple_cols? if Regendo::GameOver_Window::COLUMNS super(0, 0, Regendo::GameOver_Window::COLUMNS) else super(0, 0) end else super(0, 0) end update_placement self.openness = 0 open end unless Regendo::GameOver_Window::multiple_cols? def window_width Regendo::GameOver_Window::WINDOW_WIDTH end end def update_placement self.x = (Graphics.width - width) / 2 self.y = (Graphics.height - height) / 1.1 end #====================================== # add your own to this list # also requires changes at # Scene_Gameover#create_command_window #====================================== def make_command_list add_command("Retry Battle", :tryagain) if SceneManager.scene.is_defeat? add_command("Load Savestate", :load, load_enabled) add_command(Vocab::to_title, :to_title) add_command(Vocab::shutdown, :shutdown) end def load_enabled DataManager.save_file_exists? end end class Scene_Gameover < Scene_Base attr_reader :command_window alias start_old start def start start_old create_command_window end def pre_terminate super close_command_window end def update super end #====================================== # add your own to this list # also requires changes at # Window_GameOver#make_command_list # and requires adding your own methods #====================================== def create_command_window @command_window = Window_GameOver.new @command_window.set_handler(:tryagain, method(:command_retry)) if is_defeat? @command_window.set_handler(:load, method(:command_load)) @command_window.set_handler(:to_title, method(:goto_title)) @command_window.set_handler(:shutdown, method(:command_shutdown)) end def close_command_window @command_window.close if @command_window update until @command_window.close? end def command_load close_command_window fadeout_all SceneManager.call(Scene_Load) end def goto_title close_command_window fadeout_all SceneManager.goto(Scene_Title) end def command_shutdown close_command_window fadeout_all SceneManager.exit end def command_retry fadeout_all SceneManager.goto(Scene_Battle) BattleManager.setup(@troop_id, @can_escape, @can_lose) $game_party.members.each do |actor| actor.recover_all end $game_troop.members.each do |enemy| enemy.recover_all end BattleManager.bmgs_by_regendo(@map_bgm, @map_bgs) BattleManager.play_battle_bgm Sound.play_battle_start end def is_defeat (b = true) @defeat = b end def is_defeat? Regendo::GameOver_Window::RETRY ? @defeat : false end def battle_setup (troop_id, can_escape = true, can_lose = false) @troop_id = troop_id @can_escape = can_escape @can_lose = can_lose end def bgms_setup(map_bgm, map_bgs) @map_bgm = map_bgm @map_bgs = map_bgs end end module BattleManager class << self alias_method :setup_old, :setup end def self.setup(troop_id, can_escape = true, can_lose = false) self.setup_old(troop_id, can_escape = true, can_lose = false) @troop_id = troop_id end def self.bmgs_by_regendo(map_bgm, map_bgs) @map_bgm = map_bgm @map_bgs = map_bgs end def self.process_defeat $game_message.add(sprintf(Vocab::Defeat, $game_party.name)) wait_for_message if @can_lose revive_battle_members replay_bgm_and_bgs SceneManager.return else SceneManager.goto(Scene_Gameover) SceneManager.scene.is_defeat #this is new SceneManager.scene.battle_setup(@troop_id, @can_escape, @can_lose) #this also SceneManager.scene.bgms_setup(@map_bgm, @map_bgs) #and this end battle_end(2) return true end end
  3. Nome Script: Transizioni Battaglie Versione: 1.0 Autore/i: FlipelyFlip Informazioni: Permette di inserire transizioni per battaglie specifiche oppure di lasciarle casuali ad ogni battaglia. Istruzioni: Inserite lo script sotto Material. Le istruzioni sono all'interno dello script. Script: #=============================================================================== # * Battle Transistion System V1.0 #------------------------------------------------------------------------------- # By FlipelyFlip #=============================================================================== =begin With this script you can change the battle transition to randomize the transition for random battles. Also you can set random transition for boss battles or set a specified transition for battles. Everything is possible (: =end module Flip TransitTypVarID = 1 # Variable ID for defining if it's a normal, special or # boss battle transition. BossDuratVarID = 2 # Variable ID for the duration of the transition # standard is 60. The higher the number, the longer the transition would take. BossDirect = "Graphics/System/" # sets the direction where the graphics are BossTransit = [ # <-- do not remove this!! "BossStart", # set up the graphics name for boss transition "BossBattle2", "BossBattle3", ] # <-- do not remove this!! SpecialDuratVarID = 3 # Variable ID for the duration of the transition # no standard. The higher the number, the longer the transition would take. SpecialDirect = "Graphics/System/" # sets the direction where the graphics are SpecialTransit = [ # <-- do not remove this!! "BattleStart5", # set up the graphics name for special "BattleStart6", # transition "BattleStart7", ] # <-- do not remove this!! CustomDuratVarID = 4 # Variable ID for the duration of the transition # standard is 60. The higher the number, the longer the transition would take. CustomDirect = "Graphics/System/" # sets the direction where the graphics are. CustomTransitVarID = 5 # Variable ID to save the name of the transition. # to set the name of transition in a variable, you have to use the call script # command. Write then in: # $game_variables[Flip] = "TransitionName" RandomDuratVarID = 6 # Variable ID for the Duration of the transition # standard is 60. The higher the number, the longer the transition would take. RandomDirect = "Graphics/System/" # sets the direction where the graphics are RandomTransit = [ # <-- do not remove this!! "BattleStart1", # set up the graphics name for random "BattleStart2", # transitions. "BattleStart3", "BattleStart4", "BattleStart", ] # <-- do not remove this!! end #============================================================================== # ** Scene_Map #------------------------------------------------------------------------------ # This class performs the map screen processing. #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # ● Execute Pre-battle Transition #-------------------------------------------------------------------------- def perform_battle_transition if $game_variables[Flip] == 1 # check if variable == 1 for # Bossbattletransition (: Graphics.transition($game_variables[BossDuratVarID], Flip::BossDirect+Flip::BossTransit[rand(Flip::BossTransit.size)], 100) elsif $game_variables[Flip] == 2 # check if variable == 2 for # Specialtransition. Used for Transitions which are not for random battles, # also not for boss battles. Graphics.transition($game_variables[Flip], Flip::SpecialDirect+Flip::SpecialTransit[rand(Flip::SpecialTransit.size)], 100) elsif $game_variables[Flip] == 3 # check if variable == 3 for # Customtransition. Used to specify one transition for a battle. Graphics.transition($game_variables[Flip], Flip::CustomDirect+$game_variables[Flip], 100) else # Used for random battles Graphics.transition($game_variables[Flip], Flip::RandomDirect+Flip::RandomTransit[rand(Flip::RandomTransit.size)], 100) end Graphics.freeze end end class Scene_Title < Scene_Base #-------------------------------------------------------------------------- # ● Command New Game #-------------------------------------------------------------------------- alias flip_transition_default_command_new_game command_new_game def command_new_game flip_transition_default_command_new_game $game_variables[Flip] = 60 # sets the BossDurationVarID to 60 $game_variables[Flip] = 60 # sets the CustomDurationVarID to # 60 $game_variables[Flip] = 60 # sets the RandomDuratVarID to 60 end end Note dell'Autore:Lo script è di libero utilizzo. Se dovesse venire utilizzato per scopi commerciali, contattate l'Autore.
  4. Nome Script: Set Transizioni Versione: 1.0 Autore/i: Rafael Sol Maker Informazioni: Può sembrare uguale all'altro script per impostare le transition, ma non è così http://rpgmkr.net/forum/public/style_emoticons/default/xd.gif Infatti in questo è possibile modificare quello per il trasporto su una mappa, quello per iniziare la battaglia, e così via... Istruzioni: Inserite lo script sotto Material. Le immagini delle Transition, dovranno essere inserite nella rispettiva cartella. Script: #=============================================================================== # RAFAEL_SOL_MAKER's ACE TRANSITION SET v1.0 #------------------------------------------------------------------------------- # Description | With this script you can use a set of multiple customized # | transitions in the teleport, or at the beginning or end of # | battles. You can configure in and out transitions, so a total # | of six different transitions can be used within your game. #------------------------------------------------------------------------------- # Script Usage | To change the transitions in-game use the following command: # | # -> | set_transition (transition, filename) # | # | Where 'transition' accepts the following values: MAP_IN, # | MAP_OUT, BATTLE_IN, BATTLE_OUT, BATTLE_END_IN, BATTLE_END_OUT; # | And 'filename' is the name of the bitmap used for transition, # | which should be in the folder 'Graphics/Transitions/'. # | If you prefer to use the fade effect instead, just use a blank # | filename, a empty quote: "" ; # | # -> | set_transition_wait (duration) # | # | To set the transition's delay time, in frames. # | # -> | OBS.: Also uses a teleport sound effect that can be configured # | by Sound module. The settings and default values can be found # | in the configurable module. #------------------------------------------------------------------------------- # Special Thanks: Angel Ivy-chan #------------------------------------------------------------------------------- #=============================================================================== #=============================================================================== # VERSION HISTORY #------------------------------------------------------------------------------- # ACE TRANSITION SET v1.0 - 04/12/2011(dd/mm/yyyy) # * Initial release (and my very first script in RGSS3!) #------------------------------------------------------------------------------- #=============================================================================== module PPVXAce_General_Configs # TRANSITION BETWEEN THE SCENES Transition_In = 'Blind01' # Map Transition (in) Transition_Out = 'Blind02' # Map Transition (out) Battle_In = 'Blind03' # Battle Transition (in) Battle_Out = 'Blind04' # Battle Transition (out) Battle_End_In = 'Brick01' # Battle End Transition (in) Battle_End_Out = 'Brick02' # Battle End Transition (out) Transition_Wait = 60 # Transition Delay, in Frames end module Cache # Preparation of Transitions in Cache def self.transition(filename) load_bitmap('Graphics/Transitions/', filename) end end module Sound # Teleport's Sound Effect def self.play_teleport Audio.se_play('Audio/SE/Run', 25, 50) end end class Game_Interpreter include PPVXAce_General_Configs MAP_IN = 1 #Transition: Map In MAP_OUT = 2 #Transition: Map Out BATTLE_IN = 3 #Transition: Battle In BATTLE_OUT = 4 #Transition: Battle Out BATTLE_END_IN = 5 #Transition: End of Battle In BATTLE_END_OUT = 6 #Transition: End of Battle Out #-------------------------------------------------------------------------- # Change Transitions Between Scenes #-------------------------------------------------------------------------- def set_transition (transition = MAP_IN, filename = '') # Selects which transition will be changed case transition when MAP_IN $game_system.map_in = filename when MAP_OUT $game_system.map_out = filename when BATTLE_IN $game_system.battle_in = filename when BATTLE_OUT $game_system.battle_out = filename when BATTLE_END_IN $game_system.battle_end_in = filename when BATTLE_END_OUT $game_system.battle_end_out = filename end end #-------------------------------------------------------------------------- # Change the Transition Delay #-------------------------------------------------------------------------- def set_transition_wait (duration = 45) $game_system.transition_wait = duration end end class Game_System include PPVXAce_General_Configs attr_accessor :map_in attr_accessor :map_out attr_accessor :battle_in attr_accessor :battle_out attr_accessor :battle_end_in attr_accessor :battle_end_out attr_accessor :transition_wait attr_accessor :was_in_battle alias solmaker_transition_initialize initialize def initialize solmaker_transition_initialize load_transitions end def load_transitions @map_in = Transition_In @map_out = Transition_Out @battle_in = Battle_In @battle_out = Battle_Out @battle_end_in = Battle_End_In @battle_end_out = Battle_End_Out @transition_wait = Transition_Wait @was_in_battle = false end end class Scene_Map < Scene_Base def pre_transfer @map_name_window.close case $game_temp.fade_type when 0 perform_map_transition_out when 1 white_fadeout(fadeout_speed) end end def post_transfer case $game_temp.fade_type when 0 perform_map_transition_in when 1 white_fadein(fadein_speed) end @map_name_window.open end def perform_transition if Graphics.brightness == 0 Graphics.transition(0) fadein(fadein_speed) else $game_system.was_in_battle ? perform_battle_end_transition : super end end def perform_battle_transition filename = "" if $game_system.battle_out != "" filename = 'Graphics/Transitions/'+ $game_system.battle_out end Graphics.transition($game_system.transition_wait, filename) Graphics.freeze end def perform_battle_end_transition $game_system.was_in_battle = false filename = "" if $game_system.battle_end_in != "" filename = 'Graphics/Transitions/' + $game_system.battle_end_in end Graphics.transition($game_system.transition_wait, filename) end def perform_map_transition_out Graphics.freeze @spriteset.dispose filename = "" if $game_system.map_out != "" filename = 'Graphics/Transitions/' + $game_system.map_out end Graphics.transition($game_system.transition_wait, filename) end def perform_map_transition_in Graphics.wait($game_system.transition_wait / 2) Graphics.freeze @spriteset = Spriteset_Map.new filename = "" if $game_system.map_in != "" filename = 'Graphics/Transitions/' + $game_system.map_in end Graphics.transition($game_system.transition_wait, filename) end end class Scene_Battle < Scene_Base def perform_transition filename = "" if $game_system.battle_in != "" filename = 'Graphics/Transitions/'+ $game_system.battle_in end Graphics.transition($game_system.transition_wait, filename) end def pre_terminate super $game_system.was_in_battle = true perform_map_transition if SceneManager.scene_is?(Scene_Map) Graphics.fadeout(60) if SceneManager.scene_is?(Scene_Title) end def perform_map_transition Graphics.freeze @spriteset.dispose filename = "" if $game_system.battle_end_out != "" filename = 'Graphics/Transitions/' + $game_system.battle_end_out end Graphics.transition($game_system.transition_wait, filename) end end Note dell'Autore:Per un uso commerciale, contattate l'Autore.
  5. Nome Script: Window_MenuPlus Versione: 1.0 Autore/i: Melosx Informazioni: Aggiunge tempo di gioco, luogo e passi al menu. Screenshot: Istruzioni: Copiare sotto materials e sopra Main Script: #============================================================================= # ** Window_MenuPlus #============================================================================= # Autore: Melosx # Piattaforma: RGSS3 # Versione: 1.0 => 26-12-2011 #============================================================================= class Window_MenuPlus < Window_Base def initialize(x, y) super(x, y, 160, 176) refresh end def update super sec = (Graphics.frame_count / Graphics.frame_rate) % 60 if sec > @total_sec % 60 or sec == 0 refresh end end def refresh self.contents.clear @total_sec = Graphics.frame_count / Graphics.frame_rate ora = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 tempo = sprintf("%02d:%02d:%02d", ora, min, sec) self.contents.draw_text(0, 10, 130 ,56, tempo, 2) self.contents.draw_text(0, -10, 130, 56, "Tempo:", 0) self.contents.draw_text(0, 40, 130, 56, "Luogo:", 0) if $game_map.display_name.empty? self.contents.draw_text(0, 60, 130, 56, "-", 2) else self.contents.draw_text(0, 60, 130, 56, $game_map.display_name, 2) end self.contents.draw_text(0, 90, 130, 56, "Passi:", 0) self.contents.draw_text(0, 110, 130, 56, $game_party.steps.to_s, 2) end end #============================================================================ # ** Scene_Menu #============================================================================= class Scene_Menu < Scene_MenuBase alias msx_start start unless $@ def start msx_start @menu_plus = Window_MenuPlus.new(0, 192) end alias msx_terminate terminate unless $@ def terminate @menu_plus.dispose msx_terminate end alias msx_update update unless $@ def update @menu_plus.update msx_update end end
  6. 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 #==============================================================================
  7. Nome Script: Auto-Backup Versione: N/D Autore/i: woratana, Mr. Bubble Informazioni: Ad ogni avvio del test di gioco, verrà creata una cartella di back up ^^ Istruzioni: Inserite lo script sotto Material. Script: #=============================================================== # ● [VXA] ◦ Auto-Backup VX Ace ◦ □ #-------------------------------------------------------------- # ◦ by Woratana [[email protected]] # ◦ Thaiware RPG Maker Community # ◦ Originally released on: 07/12/2008 # ◦ Ported to VX Ace by Mr. Bubble on: 27/12/2011 #-------------------------------------------------------------- # ◦ Features: # - Automatically backup your rvdata2 files when you run the game. # - Now in VX Ace, the Backup Report will appear in the debug console. #-------------------------------------------------------------- # ◦ How to use: # - Setup the script below, # - You may want to run your game now to backup data files the first time. #-------------------------------------------------------------- module WData_Backup BACKUP_WHEN_TEST = true # (true/false) Do you want to backup data files only # when running game through editor (When you press F12 in editor) ? BACKUP_REPORT = true # (true/false) Show textbox when backup process finish? DIRNAME = 'Backup_Data' # Name of the backup folder # (Script will automatically create folder if it doesn't exist) SCRIPT = <<_SCRIPT_ if (BACKUP_WHEN_TEST && '$TEST') || !BACKUP_WHEN_TEST time = Time.now Dir.mkdir(DIRNAME) unless File.directory?(DIRNAME) ftype = 'rvdata2' flist = Dir.glob('./Data/*.{' + ftype + '}') flist.each_index do |i| flist[i] = flist[i].split('/').last save_data(load_data('Data/' + flist[i]), DIRNAME + '/' + flist[i]) end p('Backup Finished!: ' + (Time.now - time).to_s + ' sec') if BACKUP_REPORT end _SCRIPT_ eval(SCRIPT) unless $@ end
  8. Nome Script: Animazione Nemici Versione: N/D Autore/i: Rhyme Informazioni: Script che anima la grafica dei nemici. La velocità dell'animazione e le dimensioni degli sprite sono regolabili. Si tratta di un semplice script, quindi non aspettatevi molto (non è un sistema di battaglia laterale). Istruzioni: Inserite lo script sotto Material. Script: #============================================================================== # ■ Animated Enemy Sprites # Merry Christmas and happy holidays! #============================================================================== # Notebox Tag: # Enemy: !Flip #============================================================================== # Spritesheet Data for referencing # # 0. Idle # 1. Defend # 2. Weak # 3. Damaged # 4. Attack # 5. Item # 6. Skill # 7. Magic # 8. Advance (n/a) # 9. Retreat (n/a) # 10. Victory (n/a) # 11. Enter # 12. Dead # 13. Credits and/or etc (n/a) #============================================================================== # ~rhyme #============================================================================== module Animated_Enemy_Sprites Delay = 8 FrameSize = [4, 14] DefaultBlink = false end #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler < Game_BattlerBase attr_accessor :pose #-------------------------------------------------------------------------- # ● Flip #-------------------------------------------------------------------------- def flip_sprite return false end #-------------------------------------------------------------------------- # ● Reset Pose #-------------------------------------------------------------------------- def reset_pose @pose = 0 @pose = 2 if @hp < mhp / 4 if @states != nil @pose = 2 if @states.size > 0 end @pose = 1 if guard? @pose = 12 if dead? end #-------------------------------------------------------------------------- # ● Use Item #-------------------------------------------------------------------------- alias use_item_ani use_item def use_item(item) if item.is_a?(RPG::Item) @pose = 4 else if item.is_a?(RPG::Skill) if item.id == attack_skill_id @pose = 4 elsif item.physical? @pose = 6 elsif item.magical? @pose = 7 end end end use_item_ani(item) end #-------------------------------------------------------------------------- # ● Perform Damage #-------------------------------------------------------------------------- alias perform_map_damage_effect_ani perform_map_damage_effect def perform_map_damage_effect perform_map_damage_effect_ani @pose = 3 unless @guarding end #-------------------------------------------------------------------------- # ● Upon Damage #-------------------------------------------------------------------------- alias on_damage_ani on_damage def on_damage(value) @pose = 3 unless @guarding on_damage_ani(value) end end #============================================================================== # ■ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● Flip #-------------------------------------------------------------------------- def flip_sprite return true if Scan::string($data_enemies[@enemy_id].note, "!Flip") return super end end #============================================================================== # ■ Sprite_Battler #============================================================================== class Sprite_Battler < Sprite_Base attr_accessor :battler #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize(viewport, battler = nil) super(viewport) @battler = battler @battler_visible = false @effect_type = nil @effect_duration = 0 @spritesheet = true @pose = 11 @counter = 0 @delay = Animated_Enemy_Sprites::Delay @frame_size = Animated_Enemy_Sprites::FrameSize end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super if @battler @battler.reset_pose if @battler.pose == nil self.mirror = @battler.flip_sprite @use_sprite = @battler.use_sprite? if @spritesheet update_pose if @pose != 11 end if Graphics.frame_count % @delay == 0 @counter += 1 if @counter >= @frame_size[0] @counter = 0 if @pose == 11 update_pose else @battler.reset_pose end end end if @use_sprite update_bitmap update_origin update_position end setup_new_effect setup_new_animation update_effect else @effect_type = nil end self.opacity = 255 self.visible = true end #-------------------------------------------------------------------------- # ● Update bitmap #-------------------------------------------------------------------------- def update_bitmap if @spritesheet @spritesheet_bitmap = Cache.battler(@battler.battler_name + "-spritesheet", @battler.battler_hue) ss_size = [@spritesheet_bitmap.width, @spritesheet_bitmap.height] new_bitmap = Bitmap.new(ss_size[0] / @frame_size[0], ss_size[1] / @frame_size[1]) cx = @counter * (ss_size[0] / @frame_size[0]) cy = @pose * (ss_size[1] / @frame_size[1]) crop_rect = Rect.new(cx, cy, ss_size[0], ss_size[1]) new_bitmap.blt(0, 0, @spritesheet_bitmap, crop_rect) else new_bitmap = Cache.battler(@battler.battler_name, @battler.battler_hue) end if bitmap != new_bitmap self.bitmap = new_bitmap init_visibility end end #-------------------------------------------------------------------------- # ● Update Pose #-------------------------------------------------------------------------- def update_pose oldpose = @pose newpose = @battler.pose if newpose != oldpose @counter = 0 @pose = newpose end end #-------------------------------------------------------------------------- # ● Blink #-------------------------------------------------------------------------- def update_blink self.opacity = (@effect_duration % 10 < 5) ? 255 : 0 if Animated_Enemy_Sprites::DefaultBlink end end #============================================================================ # ▼ Scan #============================================================================ module Scan #-------------------------------------------------------------------------- # ● Scan.string(object, string) #-------------------------------------------------------------------------- def self.string(object, string) if object[/#{Regexp.quote string}/] return true end return false end end Demo: http://rpgmaker.net/users/Rhyme/locker/animate.zip
  9. Nome Script: Pop-Ups Battaglia Versione: N/D Autore/i: Jet Informazioni: Come si può vedere dallo screen, lo script aggiunge dei pop-ups quando si colpisce un mostro, si recuperano HP etc... Istruzioni: Inserite lo script sotto Material. Potete tradurre i testi cambiare il font modificando le righe in questione all'interno dello script. Script: #=============================================================================== # Battle Pop-Ups # By Jet10985 (Jet) #=============================================================================== # This script will create and show pop-ups for multiple battle events such as # hp/mp/tp loss and being inflicted with states. # This script has: 25 customization options. #=============================================================================== # Overwritten Methods: # None #------------------------------------------------------------------------------- # Aliased methods: # Game_Actor: level_up, gain_exp # Game_Battler: add_state # Sprite_Battler: initialize, update, dispose, start_new_effect #=============================================================================== module Jet module BattlePopUps # This is the name of the font you want to use for pop-ups. POPUP_FONT = "Verdana" # The text and color shown when a character is knocked out (dies). KNOCKOUT_TEXT = "Knockout" KNOCKOUT_COLOR = Color.new(255, 167, 0) # The text and color shown when a character takes damage. # The actual damage is appended to the end. HURT_TEXT = "Damage +" HURT_COLOR = Color.new(255, 0, 0) HURT_TEXT_MP = "Mana -" HURT_COLOR_MP = Color.new(225, 30, 255) HURT_TEXT_TP = "TP -" HURT_COLOR_TP = Color.new(225, 30, 35) # The text and color shown when a character heals health. # The actual health is appended to the end. HEAL_TEXT = "Heal +" HEAL_COLOR = Color.new(0, 255, 0) HEAL_TEXT_MP = "Mana +" HEAL_COLOR_MP = Color.new(35, 200, 255) HEAL_TEXT_TP = "TP +" HEAL_COLOR_TP = Color.new(35, 35, 255) # The text and color shown when a character gains exp. # The actual exp is appended to the end. EXP_PLUS_TEXT = "EXP +" EXP_PLUS_COLOR = Color.new(167, 167, 0) # The text and color shown when an attack is critical. CRITICAL_TEXT = "Critical" CRITICAL_COLOR = Color.new(255, 106, 43) # The text and color shown when an attack misses. MISSED_TEXT = "Miss" MISS_COLOR = Color.new(45, 78, 99) # The text and color shown when an attack is evaded. EVADED_TEXT = "Evaded" EVADE_COLOR = Color.new(156, 187, 255) # The text, color, and animation shown when a character levels up. # For no animation, use 0. LEVEL_TEXT = "Level Up" LEVEL_COLOR = Color.new(167, 255, 52) # These are the colors used for displaying when a state is added. # It follows this format: state_id => Color.new(r, g, STATE_ADDED_COLORS = { 2 => Color.new(128, 0, 255), 3 => Color.new(128, 0, 255), 4 => Color.new(128, 0, 255) } # This is the default state added color. STATE_ADDED_COLORS.default = Color.new(128, 0, 255) end end #=============================================================================== # DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO. #=============================================================================== ($imported ||= {})[:jet] ||= {} $imported[:jet][:BattlePopUps] = true class Game_Actor alias jet4921_level_up level_up def level_up(*args, &block) jet4921_level_up(*args, &block) unless self.exp >= next_level_exp and next_level_exp > 0 make_popup(Jet::BattlePopUps::LEVEL_TEXT, Jet::BattlePopUps::LEVEL_COLOR) end end alias jet1029_gain_exp gain_exp def gain_exp(exp) make_popup(Jet::BattlePopUps::EXP_PLUS_TEXT + exp.to_s, Jet::BattlePopUps::EXP_PLUS_COLOR) jet1029_gain_exp(exp) end end class Game_Battler alias jet8573_add_state add_state def add_state(sid) before = state?(sid) jet8573_add_state(sid) return if before == state?(sid) if sid == death_state_id make_popup(Jet::BattlePopUps::KNOCKOUT_TEXT, Jet::BattlePopUps::KNOCKOUT_COLOR) else make_popup("+#{$data_states[sid].name}", Jet::BattlePopUps::STATE_ADDED_COLORS[sid]) end end def make_popup(text, color) return unless SceneManager.scene_is?(Scene_Battle) f = self.battle_sprite; return if f.nil? f.popups.unshift(Sprite_JetPopup.new(text.to_s, color, f)) if !f.nil? end def battle_sprite return nil unless SceneManager.scene_is?(Scene_Battle) SceneManager.scene.spriteset.battler_sprites.each {|a| return a if a.battler == self } return nil end end class Scene_Battle attr_reader :spriteset end class Sprite_JetPopup < Sprite_Base def initialize(text, color, obj) super(nil) @text = text @color = color @character = obj self.visible = false @y_prog = 0 form_self end def form_self samp = Bitmap.new(1, 1) self.bitmap = Bitmap.new(samp.text_size(@text).width, 24) self.bitmap.font.color = @color self.bitmap.font.name = Jet::BattlePopUps::POPUP_FONT self.bitmap.draw_text(0, 0, self.bitmap.width, 24, @text) self.x = @character.x - (self.bitmap.width / 2) self.x += (@character.src_rect.width / 2) if @character.battler.actor? self.y = @character.battler.enemy? ? @character.y : (@character.y + @character.src_rect.height) self.y += @character.src_rect.height if @character.battler.actor? samp.dispose end def update super self.x = @character.x - (self.bitmap.width / 2) if $imported[:jet][:AnimatedBattlers] self.x += (@character.src_rect.width / 2) if @character.battler.actor? end self.y = @character.y - 16 - @y_prog if $imported[:jet][:AnimatedBattlers] self.y += @character.src_rect.height if @character.battler.actor? end @y_prog += 1 self.opacity -= 2.125 if self.opacity <= 0 self.dispose end end end class Sprite_Battler attr_accessor :popups alias jet4758_initialize initialize def initialize(*args, &block) @popups = [] @updating_sprites = [] @popup_wait = 0 jet4758_initialize(*args, &block) end alias jet7467_update update def update(*args, &block) jet7467_update(*args, &block) if @popup_wait == 0 if [email protected]? @updating_sprites.push(@popups.pop) @popup_wait = 30 end else @popup_wait -= 1 end @updating_sprites.each {|a| a.visible = true if !a.visible a.update @updating_sprites.delete(a) if a.disposed? } end alias jet5483_dispose dispose def dispose(*args, &block) (@updating_sprites + @popups).each {|a| a.dispose } jet5483_dispose(*args, &block) end alias jet3745_setup_new_effect setup_new_effect def setup_new_effect(*args, &block) jet3745_setup_new_effect(*args, &block) do_sprite_popups end def make_popup(text, color) @popups.unshift(Sprite_JetPopup.new(text.to_s, color, self)) end def do_sprite_popups return if @battler.nil? if @battler_struct.nil? @battler_struct = Struct.new(:hp, :mp, :tp).new(0, 0, 0) @battler_struct.hp = @battler.hp @battler_struct.mp = @battler.mp @battler_struct.tp = @battler.tp end check_success_popup check_hp_popup check_mp_popup check_tp_popup end def check_success_popup if @battler.result.success if @battler.result.critical make_popup(Jet::BattlePopUps::CRITICAL_TEXT, Jet::BattlePopUps::CRITICAL_COLOR) elsif @battler.result.missed make_popup(Jet::BattlePopUps::MISSED_TEXT, Jet::BattlePopUps::MISS_COLOR) elsif @battler.result.evaded make_popup(Jet::BattlePopUps::EVADED_TEXT, Jet::BattlePopUps::EVADE_COLOR) end @battler.result.clear_hit_flags end end def check_hp_popup if @battler_struct.hp != @battler.hp f = @battler_struct.hp - @battler.hp if f > 0 make_popup(Jet::BattlePopUps::HURT_TEXT + f.to_s, Jet::BattlePopUps::HURT_COLOR) elsif f < 0 make_popup(Jet::BattlePopUps::HEAL_TEXT + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR) end @battler_struct.hp = @battler.hp end end def check_mp_popup if @battler_struct.mp != @battler.mp f = @battler_struct.mp - @battler.mp if f > 0 make_popup(Jet::BattlePopUps::HURT_TEXT_MP + f.to_s, Jet::BattlePopUps::HURT_COLOR_MP) elsif f < 0 make_popup(Jet::BattlePopUps::HEAL_TEXT_MP + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR_MP) end @battler_struct.mp = @battler.mp end end def check_tp_popup if @battler_struct.tp != @battler.tp f = (@battler_struct.tp - @battler.tp).round if f > 0 make_popup(Jet::BattlePopUps::HURT_TEXT_TP + f.to_s, Jet::BattlePopUps::HURT_COLOR_TP) elsif f < 0 make_popup(Jet::BattlePopUps::HEAL_TEXT_TP + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR_TP) end @battler_struct.tp = @battler.tp end end end
  10. 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
  11. Nome Script: Ottimizzazione Cache Versione: N/D Autore/i: Jet Informazioni: Script che velocizza il caricamento delle bitmap in game :3 Istruzioni: Inserite lo script Sotto Material. Script: #=============================================================================== # Cache Optimization # By Jet10985 (Jet) #=============================================================================== # This snippet will pre-cache all images at the beginning of the game to # quicken the loading of bitmaps in-game, and return dups instead of originals # to prevent having to recreate after disposing it. # This script has: 0 customization options. #=============================================================================== # Overwritten Methods: # None #------------------------------------------------------------------------------- # Aliased methods: # Cache: load_bitmap #=============================================================================== if File.directory?("Graphics") g_array = Dir.entries("Graphics") g_array.each {|a| next if [".", ".."].include?(a) if !File.directory?("Graphics/#{a}") Cache.load_bitmap("Graphics/", a) rescue next next end file = Dir.entries("Graphics/#{a}") file.each {|b| next if [".", ".."].include?( if File.directory?("Graphics/#{a}/#{b}") g_array << "#{a}/#{b}" next end Cache.load_bitmap("Graphics/#{a}/", rescue next } } end class << Cache alias jet3745_load_bitmap load_bitmap unless $@ def load_bitmap(*args, &block) (jet3745_load_bitmap(*args, &block)).dup end end
  12. Nome Script: Game Over con scelta Versione: N/D Autore/i: regendo Informazioni: Questo script aggiunge una finestra nella scena del Game Over, che da la possibilità di uscire dal gioco, di ritornare al titolo o di caricare una partita. Screenshot: Istruzioni: Inserite lo script sotto Material. Se volete poi cambiare posizione della finestra, fare riferimento alle linee 26 e 27, mentre se volete allargarla, fate riferimento alla linea 22. Script: # by bStefan aka. regendo # please give credit if used # for use with RMVX ACE #============================================ # GameOver with choices #============================================ # adds three choices to Scene_Gameover: # Load Savegame, Return to Title, Quit Game # implement over Main #============================================ class Window_GameOver < Window_Command def initialize super(0, 0) update_placement self.openness = 0 open end def window_width return 225 end def update_placement self.x = (Graphics.width - width) / 2 self.y = (Graphics.height - height) / 1.1 end def make_command_list add_command("Load Savestate", :load, load_enabled) add_command(Vocab::to_title, :to_title) add_command(Vocab::shutdown, :shutdown) end def load_enabled DataManager.save_file_exists? end end class Scene_Gameover < Scene_Base alias start_old start def start start_old create_command_window end def pre_terminate super close_command_window end def update super end def create_command_window @command_window = Window_GameOver.new @command_window.set_handler(:load, method(:command_load)) @command_window.set_handler(:to_title, method(:goto_title)) @command_window.set_handler(:shutdown, method(:command_shutdown)) end def close_command_window @command_window.close if @command_window update until @command_window.close? end def command_load close_command_window fadeout_all SceneManager.call(Scene_Load) end def goto_title close_command_window fadeout_all SceneManager.goto(Scene_Title) end def command_shutdown close_command_window fadeout_all SceneManager.exit end end
  13. Ally

    HUD Barra Testo

    Nome Script: Barra Testo Versione: N/D Autore/i: Death10 Informazioni: Script che permette di visualizzare una barra con un testo nella mappa (funzione utile se si vuole far comparire il nome della mappa). Screenshots: Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #============================================================================== # ** Text Bar #============================================================================== # Author: Death10 # [url="http://itbinhdan.com"]http://itbinhdan.com[/url] #============================================================================== # *Call script: # -On: $game_system.ads_option = 1 # -Off: $game_system.ads_option = 2 # -Change: # +Text: $game_system.ads_x = "Text" # +Back image: $game_system.ads_back = "Back.png" #============================================================================== DataManager.load_normal_databaseclass Game_System attr_accessor :ads attr_accessor :ads_on attr_accessor :ads_x attr_accessor :ads_option attr_accessor :ads_back alias initialize_ads initialize def initialize initialize_ads @ads = "Text Bar" @ads_back = Cache.title1($data_system.title1_name) @ads_option = 1 @ads_on = 1 @ads_x = 0 end end class TB < Window_Base def initialize super(0, 0, 544, 64) self.opacity = 0 $game_system = Game_System.new refresh end def refresh case $game_system.ads_option when 1 $game_system.ads_on = 1 $game_system.ads_x = -contents.text_size($game_system.ads).width $game_system.ads_option = 0 when 2 $game_system.ads_on = 0 $game_system.ads_option = 0 end contents.clear cx = contents.text_size($game_system.ads).width if $game_system.ads_x == 544 $game_system.ads_x = -cx else $game_system.ads_x += 0.5 end if $game_system.ads_on == 1 contents.blt(0, 0, $game_system.ads_back, Rect.new(0, 0, 544, 32), 160) contents.draw_text($game_system.ads_x, 0, cx, 32, $game_system.ads, 2) end end def open super refresh end end class Scene_Map alias caw create_all_windows def create_all_windows caw @ads = TB.new end alias update_ads update def update update_ads @ads.open end alias utp update_transfer_player def update_transfer_player utp case $game_system.ads_on when 0 @map_name_window.y = 0 when 1 @map_name_window.y = 44 end end end
  14. 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.
  15. Nome Script: MSX_SceneTitle_Plus Versione: 1.0 Autore/i: Melosx Informazioni: Permettedi aggiungere un sottotiolo alla schermata del titolo. Inoltre sia il titolo che il sottotitolo sono personalizzabili in colore, font, dimensione font, ecc.ecc. La sezione configurazione vi dirà tutto. Istruzioni: Nello script. Screenshot: Script: #============================================================================== # ** MSX_Scene_Title_Plus #============================================================================== # Autore: Melosx # Versione: 1.0 => 23/12/2011 # Data rilascio: 23/12/2011 # #------------------------------------------------------------------------------ # Istruzioni: # Copiare lo script sotto Materials e sopra Main. # Cambiate i parametri chiesti nella sezione CONFIGURAZIONE. # #============================================================================== class Scene_Title < Scene_Base #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=CONFIGURAZIONE=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=TITOLO=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# T_POS = 1 # Posizione: 0 => Sinistra; 1 => Centrato; 2 => Destra T_FONT = "Comic Sans MS" # Nome del Font T_FONT_SIZE = 48 # Grandezza del Font T_FONT_COLOR = Color.new(255, 255, 255, 255) # Colore del Font (R, G, B, A) T_FONT_GR = false # Grassetto: true/false => si/no T_FONT_COR = false # Corsivo: true/false => si/no T_FONT_OMBRA = false # Ombra: true/false => si/no T_FONT_BORDO = true # Bordo: true/false => si/no T_FONT_BORDO_COLOR = Color.new(0, 0, 0, 128) # Colore Bordo (R, G, B, A) #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=SOTTOTITOLO-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# SOTTOTITOLO = "MSX_SceneTitle_Plus" # Sottotitolo ST_POS = 1 # Posizione: 0 => Sinistra; 1 => Centrato; 2 => Destra ST_FONT = "Arial" # Nome del Font ST_FONT_SIZE = 24 # Grandezza del Font ST_FONT_COLOR = Color.new(0, 0, 0, 255) # Colore del Font (R, G, B, A) ST_FONT_GR = false # Grassetto: true/false => si/no ST_FONT_COR = false # Corsivo: true/false => si/no ST_FONT_OMBRA = false # Ombra: true/false => si/no ST_FONT_BORDO = true # Bordo: true/false => si/no ST_FONT_BORDO_COLOR = Color.new(255, 255, 255, 128) # Colore Bordo (R, G, B, A) #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=CONFIGURAZIONE=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=FINE=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# def draw_game_title @foreground_sprite.bitmap.font.size = T_FONT_SIZE @foreground_sprite.bitmap.font.name = T_FONT @foreground_sprite.bitmap.font.color = T_FONT_COLOR @foreground_sprite.bitmap.font.bold = T_FONT_GR @foreground_sprite.bitmap.font.italic = T_FONT_COR @foreground_sprite.bitmap.font.outline = T_FONT_BORDO @foreground_sprite.bitmap.font.out_color = T_FONT_BORDO_COLOR @foreground_sprite.bitmap.font.shadow = T_FONT_OMBRA rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2) @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, T_POS) # Sottotitolo # @foreground_sprite.bitmap.font.size = ST_FONT_SIZE @foreground_sprite.bitmap.font.name = ST_FONT @foreground_sprite.bitmap.font.color = ST_FONT_COLOR @foreground_sprite.bitmap.font.bold = ST_FONT_GR @foreground_sprite.bitmap.font.italic = ST_FONT_COR @foreground_sprite.bitmap.font.outline = ST_FONT_BORDO @foreground_sprite.bitmap.font.out_color = ST_FONT_BORDO_COLOR @foreground_sprite.bitmap.font.shadow = ST_FONT_OMBRA rect = Rect.new(0, 40, Graphics.width, Graphics.height / 2) @foreground_sprite.bitmap.draw_text(rect, SOTTOTITOLO, ST_POS) end end
  16. Nome Script: Controllo Volume Versione: 1.0.0 Autore/i: Ru/むっくRu, Elemental Crisis (traduzione inglese) Informazioni: Questo script permette di controllare le impostazioni del volume di gioco. Istruzioni: Inserite lo script sotto Material. Script: #=============================================================================== # ¡ Volume Control For RGSS3 #------------------------------------------------------------------------------- #@2011/12/01@[member='Rusjbhlmi']/‚Þ‚Á‚­Ru #------------------------------------------------------------------------------- # English Translation By: Elemental Crisis (http://RPGMakerVXAce.com) #------------------------------------------------------------------------------- #@Adds the ability to change volume control. # #@œ The following methods are added to the Audio Module #@Audio.volBGM cc Maximum BGM volume setting. #@Audio.volBGS cc Maximum BGS volume setting. #@Audio.volSE cc Maximum SE volume setting. #@Audio.volME cc Maximum ME volume setting. #@Audio.volBGM=”’l ccSet BGM maximum volume (0-100) #@Audio.volBGM=”’l cc Set BGS maximum volume (0-100) #@Audio.volSE=”’l cc Set SE maximum volume (0-100) #@Audio.volME=”’l cc Set ME maximum volume (0-100) # #@œ Volume control is added to the main menu. # #------------------------------------------------------------------------------- # yKnown Issuesz #@Created before VXAce's official release so unable to properly test. #------------------------------------------------------------------------------- #============================================================================== # œ Settings #============================================================================== module HZM_VXA module AudioVol # Display Volume Control on Main Menu? # @true cc Display. # @false cc Don't Display. MENU_FLAG = true # Volume Control Name in Main Menu. MENU_NAME = "Volume Settings" # Volume Control Settings Name. CONFIG_BGM_NAME = "BGM" CONFIG_BGS_NAME = "BGS" CONFIG_SE_NAME = "SE" CONFIG_ME_NAME = "ME" CONFIG_EXIT_NAME = "Exit" # Volume Change Variation. # ADD_VOL_NORMAL cc Variation of Left/Right Keys. # ADD_VOL_HIGH cc Variation of LR Key. ADD_VOL_NORMAL = 5 ADD_VOL_HIGH = 25 end end #============================================================================== # ª @ Settings Above @ ª # « Script Below « #============================================================================== # Additonal Methods. module Audio def self.volBGM=(vol) vol=100 if vol>100 vol=0 if vol<0 @hzmVolBGM = vol end def self.volBGS=(vol) vol=100 if vol>100 vol=0 if vol<0 @hzmVolBGS = vol end def self.volSE=(vol) vol=100 if vol>100 vol=0 if vol<0 @hzmVolSE = vol end def self.volME=(vol) vol=100 if vol>100 vol=0 if vol<0 @hzmVolME = vol end def self.volBGM @hzmVolBGM = 100 if @hzmVolBGM == nil return @hzmVolBGM end def self.volBGS @hzmVolBGS = 100 if @hzmVolBGS == nil return @hzmVolBGS end def self.volSE @hzmVolSE = 100 if @hzmVolSE == nil return @hzmVolSE end def self.volME @hzmVolME = 100 if @hzmVolME == nil return @hzmVolME end end # Playback class << Audio alias hzm_Vol_Audio_bgm_play bgm_play def bgm_play(filename, volume=100, pitch=100, pos=0) volume = self.volBGM * volume / 100 hzm_Vol_Audio_bgm_play(filename, volume, pitch, pos) end alias hzm_Vol_Audio_bgs_play bgs_play def bgs_play(filename, volume=100, pitch=100) volume = self.volBGS * volume / 100 hzm_Vol_Audio_bgs_play(filename, volume, pitch) end alias hzm_Vol_Audio_se_play se_play def se_play(filename, volume=100, pitch=100) volume = self.volSE * volume / 100 hzm_Vol_Audio_se_play(filename, volume, pitch) end alias hzm_Vol_Audio_me_play me_play def me_play(filename, volume=100, pitch=100) volume = self.volME * volume / 100 hzm_Vol_Audio_me_play(filename, volume, pitch) end end # Add To Menu. if HZM_VXA::AudioVol::MENU_FLAG class Window_MenuCommand alias hzm_Vol_Window_MenuCommand_add_original_commands add_original_commands def add_original_commands hzm_Vol_Window_MenuCommand_add_original_commands add_command(HZM_VXA::AudioVol::MENU_NAME, :hzm_vxa_vol) end end class Scene_Menu alias hzm_Vol_create_command_window create_command_window def create_command_window hzm_Vol_create_command_window @command_window.set_handler(:hzm_vxa_vol, method(:hzm_vxa_vol)) end def hzm_vxa_vol SceneManager.call(HZM_VXA::AudioVol::Scene_VolConfig) end end end # Volume Chage Window module HZM_VXA module AudioVol class Window_VolConfig < Window_Command def initialize super(0, 0) self.x = (Graphics.width - self.window_width)/2 self.y = (Graphics.height - self.window_height)/2 end def make_command_list add_command(HZM_VXA::AudioVol::CONFIG_BGM_NAME, :bgm) add_command(HZM_VXA::AudioVol::CONFIG_BGS_NAME, :bgs) add_command(HZM_VXA::AudioVol::CONFIG_SE_NAME, :se) add_command(HZM_VXA::AudioVol::CONFIG_ME_NAME, :me) add_command(HZM_VXA::AudioVol::CONFIG_EXIT_NAME, :cancel) end def draw_item(index) super return unless index < 4 case index when 0 vol = Audio.volBGM when 1 vol = Audio.volBGS when 2 vol = Audio.volSE when 3 vol = Audio.volME end draw_text(item_rect_for_text(index), vol, 2) end def volAdd(index, val) case index when 0 Audio.volBGM += val now = RPG::BGM.last Audio.bgm_play('Audio/BGM/' + now.name, now.volume, now.pitch, now.pos) if now when 1 Audio.volBGS += val when 2 Audio.volSE += val when 3 Audio.volME += val end Sound.play_cursor redraw_item(index) end def cursor_left(wrap = false) volAdd(@index, -HZM_VXA::AudioVol::ADD_VOL_NORMAL) end def cursor_right(wrap = false) volAdd(@index, HZM_VXA::AudioVol::ADD_VOL_NORMAL) end def cursor_pageup volAdd(@index, -HZM_VXA::AudioVol::ADD_VOL_HIGH) end def cursor_pagedown volAdd(@index, HZM_VXA::AudioVol::ADD_VOL_HIGH) end end class Scene_VolConfig < Scene_MenuBase def start super @command_window = Window_VolConfig.new @command_window.viewport = @viewport @command_window.set_handler(:cancel, method(:return_scene)) end def terminate super @command_window.dispose end end end end # Reading/Saving class << DataManager alias hzm_Vol_make_save_contents make_save_contents def make_save_contents contents = hzm_Vol_make_save_contents contents[:hzm_vxa_vol] = { :bgm => Audio.volBGM, :bgs => Audio.volBGS, :se => Audio.volSE, :me => Audio.volME } contents end alias hzm_Vol_extract_save_contents extract_save_contents def extract_save_contents(contents) hzm_Vol_extract_save_contents(contents) Audio.volBGM = contents[:hzm_vxa_vol][:bgm] Audio.volBGS = contents[:hzm_vxa_vol][:bgs] Audio.volSE = contents[:hzm_vxa_vol][:se] Audio.volME = contents[:hzm_vxa_vol][:me] end end
  17. Nome Script: Skip Title Versione: 1.0 Autore/i: Melosx Informazioni: Permette di saltare il titolo e andare direttamente su mappa oe cordinate scelte dall'utente con un party iniziale scelto sempre dall'utente. Istruzioni: Nello script Script: #============================================================================== # ** Skip_Title #============================================================================== # Autore: Melosx # Versione: 1.0 => 7/12/2011 # Data rilascio: 7/12/2011 # #------------------------------------------------------------------------------ # Istruzioni: # Copiare lo script sotto Materials e sopra Main. Inserite i parametri chiesti # nella sezione SETUP. # #============================================================================== class Skip_Title < Scene_Base #---------------------------------INIZIO SETUP--------------------------------# ID_MAPPA = 1 # ID della mappa da cui iniziare. COORDINATE_XY = [60,112] # Coordinate x e y di inizio. GRUPPO = [1,2,3,4] # ID dei membri del gruppo iniziale. #----------------------------------FINE SETUP---------------------------------# def main start end def start SceneManager.clear DataManager.load_database $game_party.setup_starting_members_skiptitle(GRUPPO) $game_map.setup(ID_MAPPA) $game_player.moveto(COORDINATE_XY[0],COORDINATE_XY[1]) $game_player.refresh SceneManager.call(Scene_Map) $game_map.autoplay end end #============================================================================== # ** Game_Party #============================================================================== class Game_Party < Game_Unit def setup_starting_members_skiptitle(actor) @actors = [] actor.each {|i| @actors << i } end end #============================================================================== # ** SceneManager #============================================================================== module SceneManager def self.first_scene_class $BTEST ? Scene_Battle : Skip_Title end end
  18. Nome Script: Chara XP-VX Versione: N/D Autore/i: NoxChibi Informazioni: Allora premesso che non penso di aver fatto un granchè,ma ho fatto in modo che precedendo il nome di un charset XP con il simbolo '%' esso posso essere letto come un comune chara vx. Istruzioni: Inserite lo script sotto Material. Per il corretto funzionamento dello script, è necessario aggiungere il simbolo % prima del nome del chara, esempio: %Character_1 Script: #============================================================================== # ** Sprite_Character #------------------------------------------------------------------------------ # This sprite is used to display characters. It observes a instance of the # Game_Character class and automatically changes sprite conditions. #============================================================================== class Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # * Constants #-------------------------------------------------------------------------- BALLOON_WAIT = 12 # Final balloon frame wait time #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :character #-------------------------------------------------------------------------- # * Object Initialization # viewport : viewport # character : character (Game_Character) #-------------------------------------------------------------------------- def initialize(viewport, character = nil) super(viewport) @character = character @balloon_duration = 0 update end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose dispose_balloon super end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_bitmap self.visible = (not @character.transparent) update_src_rect self.x = @character.screen_x self.y = @character.screen_y self.z = @character.screen_z self.opacity = @character.opacity self.blend_type = @character.blend_type self.bush_depth = @character.bush_depth update_balloon if @character.animation_id != 0 animation = $data_animations[@character.animation_id] start_animation(animation) @character.animation_id = 0 end if @character.balloon_id != 0 @balloon_id = @character.balloon_id start_balloon @character.balloon_id = 0 end end #-------------------------------------------------------------------------- # * Get tile set image that includes the designated tile # tile_id : Tile ID #-------------------------------------------------------------------------- def tileset_bitmap(tile_id) set_number = tile_id / 256 return Cache.system("TileB") if set_number == 0 return Cache.system("TileC") if set_number == 1 return Cache.system("TileD") if set_number == 2 return Cache.system("TileE") if set_number == 3 return nil end #-------------------------------------------------------------------------- # * Update Transfer Origin Bitmap #-------------------------------------------------------------------------- def update_bitmap if @tile_id != @character.tile_id or @character_name != @character.character_name or @character_index != @character.character_index @tile_id = @character.tile_id @character_name = @character.character_name @character_index = @character.character_index if @tile_id > 0 sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32; sy = @tile_id % 256 / 8 % 16 * 32; self.bitmap = tileset_bitmap(@tile_id) self.src_rect.set(sx, sy, 32, 32) self.ox = 16 self.oy = 32 else self.bitmap = Cache.character(@character_name) sign = @character_name[/^[\!\$\%]./] if sign != nil and sign.include?('$') @cw = bitmap.width / 3 @ch = bitmap.height / 4 else @cw = bitmap.width / 12 @ch = bitmap.height / 8 end if sign != nil and sign.include?('%') @cw = bitmap.width / 4 @ch = bitmap.height / 4 end self.ox = @cw / 2 self.oy = @ch end end end #-------------------------------------------------------------------------- # * Update Transfer Origin Rectangle #-------------------------------------------------------------------------- def update_src_rect if @tile_id == 0 index = @character.character_index pattern = @character.pattern < 3 ? @character.pattern : 1 sx = (index % 4 * 3 + pattern) * @cw sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch self.src_rect.set(sx, sy, @cw, @ch) end end #-------------------------------------------------------------------------- # * Start Balloon Icon Display #-------------------------------------------------------------------------- def start_balloon dispose_balloon @balloon_duration = 8 * 8 + BALLOON_WAIT @balloon_sprite = ::Sprite.new(viewport) @balloon_sprite.bitmap = Cache.system("Balloon") @balloon_sprite.ox = 16 @balloon_sprite.oy = 32 update_balloon end #-------------------------------------------------------------------------- # * Update Balloon Icon #-------------------------------------------------------------------------- def update_balloon if @balloon_duration > 0 @balloon_duration -= 1 if @balloon_duration == 0 dispose_balloon else @balloon_sprite.x = x @balloon_sprite.y = y - height @balloon_sprite.z = z + 200 if @balloon_duration < BALLOON_WAIT sx = 7 * 32 else sx = (7 - (@balloon_duration - BALLOON_WAIT) / 8) * 32 end sy = (@balloon_id - 1) * 32 @balloon_sprite.src_rect.set(sx, sy, 32, 32) end end end #-------------------------------------------------------------------------- # * Dispose of Balloon Icon #-------------------------------------------------------------------------- def dispose_balloon if @balloon_sprite != nil @balloon_sprite.dispose @balloon_sprite = nil end end end
  19. Nome Script:Tankentai Realistic Shadow Versione: 0.2 Autore/i: wltr3565 Informazioni: Questo script, offre la possibilità di inserire sotto i PG un'ombra realistica che segue il movimento dello sprite di battaglia. E' un effetto molto bello che consiglio di inserire a chi usa il sistema di battaglia di Enu. Istruzioni: Inserite lo script sopra Main. Script: =begin ================================================================================ wltr3565's Tankentai Realistic Shadow v0.2 VX ================================================================================ This script is a mere eye candy, simply to make Tankentai's battler shadows true to the battlers' original sprites. But I'm very sure this is not perfect yet. This version, v0.1, is open to public to be tested for more improvements. Alas, this script is not perfect. I lack the experience to straightly configure bitmap drawing. I cannot make sprites slanted as in photoshop. This is the best that I can do in RGSS2. Please do give feedbacks for further improvements, especially bugs. Do free to use it for your own purpose. Just credit me, and watch out for bugs. ================================================================================ Features: - Easy to install; Just insert this below Tankentai. - Make shadows realistic, true to their real form. ================================================================================ Notes: - Realistic shadows means making the process heavier than simple shadows. It's not recommended yet for low-end PCs. - The shadows may be misplaced. You can configure the positions by adjusting the shadows' position in SBS Battler Configuration. - Don't ask about this script's compatibility between Kaduki Tankentai, Default Tankentai, etc. THIS IS OBVIOUSLY COMPATIBLE FOR ALL VERSIONS OF TANKENTAI!!! Except you have a script that do something with shadows. - It is recommeded to use detailed sprites (Not chibi style e.g. Kaduki's) with this script. - For now it only shades greatly for northern (from screen) source of light. - This is for RMVX version of Tankentai, and thus, for RMVX only. ================================================================================ =end module WLTR SHADE_PERSPECTIVE = 0.4 # Simply the shadow's vertical zoom, for perspective. end class Sprite_Battler < Sprite_Base def make_shadow @[member='Shadow'].dispose if @[member='Shadow'] != nil @battler_hue = @battler.battler_hue @[member='Shadow'] = Sprite.new(viewport) @[member='Shadow'].z = self.z - 4 @[member='Shadow'].visible = false # バトラーに当てられた影グラフィックを用意 @[member='Shadow'].bitmap = self.bitmap @[member='Shadow'].src_rect = self.src_rect @[member='Shadow']_height = @[member='Shadow'].bitmap.height # 影位置の微調整用インスタンス @[member='Shadow']_plus_x = @battler.shadow_plus[0] - @width / 2 @[member='Shadow']_plus_y = @battler.shadow_plus[1] # 更新 @[member='Shadow'].zoom_x = self.zoom_x @[member='Shadow'].zoom_y = WLTR::SHADE_PERSPECTIVE * self.zoom_y @[member='Shadow'].tone.set(-255, -255, -255) @[member='Shadow'].visible = false if @battler.shadow == "" update_shadow end def update_shadow @[member='Shadow'].opacity = 108 * self.opacity / 255 @[member='Shadow'].angle = 180 - self.angle @[member='Shadow'].src_rect = self.src_rect @[member='Shadow'].mirror = true @[member='Shadow'].ox = @width - self.ox @[member='Shadow'].oy = self.oy @[member='Shadow'].visible = false if @battler.shadow == "" @[member='Shadow'].zoom_x = self.zoom_x @[member='Shadow'].zoom_y = WLTR::SHADE_PERSPECTIVE * self.zoom_y @[member='Shadow'].x = @battler.position_x @[member='Shadow'].y = @battler.position_y + @[member='Shadow']_plus_y - (@jump_plus * 2) @[member='Shadow'].z = @battler.position_z - 4 end alias shadow_battler_anime battler_anime def battler_anime shadow_battler_anime return if @[member='Shadow'] == nil @[member='Shadow'].bitmap = self.bitmap @[member='Shadow'].src_rect = self.src_rect end end #=============================================================================== # # END OF SCRIPT # #===============================================================================
  20. Nome Script: XAS Hero Edition VX Versione: 1.0 Autore/i: Moghunter, Xiderowg Informazioni: Un sensazionale BS in tempo reale munito di schermata con equipaggiamento e barre hp/mp con dei bellissimi effetti speciali. Lo stile di combattimento riprende quello dei famosi giochi Secret of Mana, etc... Il sistema di battaglia era stato concepito per RPG Maker XP (disponibile nella sua sezione script) e trasportato adesso per VX. Screenshot: Istruzioni: Inserite tutti gli script presenti nella demo sul vostro progetto, o iniziatene uno direttamente su questa. Altre istruzioni all'interno degli script. Demo: http://www.mediafire...m65mlty8gj9a4ei Manuale in Italiano: (Un grazie a Kentaro-su) Manuale XAS - VX/VXAce
  21. Nome Script: Yeki Custom Title Screen Versione: 1.00 Autore/i: yeki Informazioni: Lo script permette di avere la schermata dei titoli come quello del VX Ace ^^ Istruzioni: Istruzioni e script all'interno della demo. Demo: http://www.mediafire.com/?9vs91noo3s00cus
  22. Nome Script: Rei Advanced Movement System Versione: 1.2 Autore/i: reijubv Informazioni: Questo script permette di avere dei movimenti del personaggio avanzati, come correre, saltare, sedersi, nuotare, etc... Features: Sprite Fermo Sprite Camminata Sprite Corsa Sprite Salto Sprite Seduto Sprite Nuoto altro... Istruzioni: Istruzioni e script sono all'interno della demo. Demo: http://www.mediafire.com/?ajdyno2nxdy
  23. Nome Script: Ambient Sound 1.0 Versione: 1.0 Autore/i: mikb89 Informazioni: Con questo script puoi impostare gli eventi per riprodurre suoni se accanto al giocatore, variando volume, pitch, ecc. Puoi anche personalizzare gli effetti cambiando le caratteristiche audio, via codice. Per usare questo script bisogna configurare nello script gli effetti, quindi scriverne solo il nome in un commento nella pagina dell'evento voluto. Istruzioni: Copiare lo script normalmente sotto Modules e sopra Main, quindi configurare gli effetti voluti. Script: Visibile su Pastebin Demo: Demo multilingua v. 1.0 (257KB) http://www.mediafire...m96wim24ke11ijj Note dell'Autore: Consiglio di usarlo in combinazione con quest'altro script.
  24. Nome Script: ISS - Sistema Giorno/Notte Versione: 1.1 Autore/i: IceDragon Informazioni: Questo script permette di introdurre nel proprio gioco un sistema giorno/notte. Come specificato nelle features, si hanno a disposizione 3 impostazioni, in base a ciò che si vuole ottenere. Features: - Game Time (Hai il pieno controllo su questo) - Real Time (Usa l'ora del computer) - Step Time (Cambiamenti sulla base dei passi) Istruzioni: Istruzioni e script all'interno della demo. Demo: http://www.mediafire.com/?4k4q10463wqu02p
  25. Nome Script: Bag Pockets V1.2 Versione: 1.2 Autore/i: SowS Informazioni: Come nel gioco dei pokemon, permette di catalogare gli oggetti posseduti. Screenshots: Istruzioni: Inserite lo script sotto Material. Altre istruzioni all'interno dello script. Script: #============================================================================== # Bag Pockets V1.2 # by SowS - 06/11/10 #------------------------------------------------------------------------------ # Instructions: # Put the script under Materials section of your script editor. # Put this tag in the notes field of all your items/weapons/armors. # <pocket n> where n is the pocket number # >>>>>>>>REMINDER: You need to put the tags in all of your items!<<<<<<<<< # It's possible to make an item be on multiple pockets, just put multiple tags # on that particular item. #============================================================================== module SOWS #---------------------------------------------------------------------------- # start of config #---------------------------------------------------------------------------- MAX_POCKETS = 7 # maximum number of pockets # these are the names of the pockets and their corresponding pocket numbers POCKETS = { # id => "Pocket Name" 1 => "Items", 2 => "Weapon", 3 => "Shield", 4 => "Headgear", 5 => "Armor", 6 => "Accessory", 7 => "Key Items" } # these are the pockets in the equip scene. They're based on your current # max number of equip types. EQUIP_POCKETS = { 1 => "Weapon", 2 => "Shield", 3 => "Headgear", 4 => "Armor", 5 => "Accessory" } # The message in the help window while Cancel/Remove is selected. CANCEL_HELP = "Return to the menu." # in Scene_Item REMOVE_HELP = "Remove current equipment." # in Scene_Equip #---------------------------------------------------------------------------- # end of config #---------------------------------------------------------------------------- def self.split_tags(obj, tag) obj.note.split(/[\r\n]+/).each { |notetag| case notetag when tag @result = $1.to_i end } return @result end end #============================================================================== # ** Window_Item #------------------------------------------------------------------------------ # This window displays a list of inventory items for the item screen, etc. #============================================================================== class Window_Item < Window_Selectable include SOWS #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :page #-------------------------------------------------------------------------- # * Object Initialization # x : window x-coordinate # y : window y-coordinate # width : window width # height : window height #-------------------------------------------------------------------------- def initialize(x, y, width, height) super(x, y, width, height) @column_max = 1 self.index = 0 self.page = 1 refresh end #-------------------------------------------------------------------------- # * Whether or not to include in item list # item : item #-------------------------------------------------------------------------- def include?(item) return false if item == nil return false if self.page != item.pocket if $game_temp.in_battle return false unless item.is_a?(RPG::Item) end return true end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh @data = [] for item in $game_party.items next unless include?(item) @data.push(item) if item.id == $game_party.last_item_id self.index = @data.size - 1 end end @data.push(nil) if include?(nil) @item_max = @data.size + 1 create_contents for i in 0...@item_max - 1 draw_item(i) end draw_cancel end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if Input.trigger?(Input::RIGHT) if self.page == MAX_POCKETS self.page = 1 else self.page += 1 end elsif Input.trigger?(Input::LEFT) if self.page == 1 self.page = MAX_POCKETS else self.page -= 1 end end end #-------------------------------------------------------------------------- # * Draw Cancel #-------------------------------------------------------------------------- def draw_cancel rect = item_rect(@item_max - 1) self.contents.clear_rect(rect) rect.width -= 4 self.contents.draw_text(rect, "Cancel") end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) item = @data[index] if item != nil number = $game_party.item_number(item) rect.width -= 4 draw_item_name(item, rect.x, rect.y) self.contents.draw_text(rect, sprintf("x%2d", number), 2) end end #-------------------------------------------------------------------------- # * Update Help Text #-------------------------------------------------------------------------- def update_help @help_window.set_text(item == nil ? CANCEL_HELP : item.description) end end #============================================================================== # ** Window_Pocket #------------------------------------------------------------------------------ # This window displays the current pocket name. #============================================================================== class Window_Pocket < Window_Base include SOWS #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :pocket #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(equip = false, x = 0, y = 0, width = 544 / 2, height = WLH + 32) super(x, y, width, height) self.pocket = 1 @equip = equip refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear if @equip self.contents.draw_text(0, 0, contents.width, WLH, EQUIP_POCKETS[self.pocket], 1) else self.contents.draw_text(0, 0, contents.width, WLH, POCKETS[self.pocket], 1) end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if Input.trigger?(Input::RIGHT) if self.pocket == MAX_POCKETS self.pocket = 1 else self.pocket += 1 end elsif Input.trigger?(Input::LEFT) if self.pocket == 1 self.pocket = MAX_POCKETS else self.pocket -= 1 end end end end #============================================================================== # ** Window_Help #------------------------------------------------------------------------------ # This window shows skill and item explanations along with actor status. #============================================================================== class Window_Help < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x = 0, y = 0, width = 544, height = WLH + 32) super(x, y, width, height) end end #============================================================================== # ** Window_EquipItem #------------------------------------------------------------------------------ # This window displays choices when opting to change equipment on the # equipment screen. #============================================================================== class Window_EquipItem < Window_Item include SOWS #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh @data = [] for item in $game_party.items next unless include?(item) @data.push(item) if item.id == $game_party.last_item_id self.index = @data.size - 1 end end @data.push(nil) if include?(nil) @item_max = @data.size create_contents for i in 0...@item_max draw_item(i) end end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) item = @data[index] if item != nil number = $game_party.item_number(item) rect.width -= 4 draw_item_name(item, rect.x, rect.y) self.contents.draw_text(rect, sprintf("x%2d", number), 2) else self.contents.draw_text(rect, "Remove") end end #-------------------------------------------------------------------------- # * Update Help Text #-------------------------------------------------------------------------- def update_help @help_window.set_text(item == nil ? REMOVE_HELP : item.description) end end #============================================================================== # ** Scene_Item #------------------------------------------------------------------------------ # This class performs the item screen processing. #============================================================================== class Scene_Item < Scene_Base #-------------------------------------------------------------------------- # * Method Aliasing #-------------------------------------------------------------------------- alias sows_pocket_update update unless $@ alias sows_pocket_terminate terminate unless $@ #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background @viewport = Viewport.new(0, 0, 544, 416) @help_window = Window_Help.new(0, 416 - 56) @help_window.viewport = @viewport @item_window = Window_Item.new(544 / 2, 0, 544 / 2, 360) @item_window.viewport = @viewport @item_window.help_window = @help_window @item_window.active = false @title_window = Window_Pocket.new @title_window.viewport = @viewport @target_window = Window_MenuStatus.new(0, 0) hide_target_window end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate sows_pocket_terminate @title_window.dispose end #-------------------------------------------------------------------------- # * Update Frame #-------------------------------------------------------------------------- def update sows_pocket_update @title_window.update @item_window.refresh if (Input.repeat?(Input::RIGHT) or Input.repeat?( Input::LEFT)) @title_window.refresh if (Input.repeat?(Input::RIGHT) or Input.repeat?( Input::LEFT)) end #-------------------------------------------------------------------------- # * Update Item Selection #-------------------------------------------------------------------------- def update_item_selection if Input.trigger?(Input:: Sound.play_cancel return_scene elsif Input.trigger?(Input::C) if @item_window.index == @item_window.item_max - 1 return_scene else @item = @item_window.item $game_party.last_item_id = @item.id if $game_party.item_can_use?(@item) Sound.play_decision determine_item else Sound.play_buzzer end end end end end #============================================================================== # ** Scene_Equip #------------------------------------------------------------------------------ # This class performs the equipment screen processing. #============================================================================== class Scene_Equip < Scene_Base #-------------------------------------------------------------------------- # * Method Aliasing #-------------------------------------------------------------------------- alias sows_pocket_terminate terminate unless $@ alias sows_pocket_update update unless $@ #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background @actor = $game_party.members[@actor_index] @help_window = Window_Help.new(0, 416 - 56) create_item_windows @equip_window = Window_Equip.new(208, 0, @actor) @equip_window.help_window = @help_window @equip_window.index = @equip_index @status_window = Window_EquipStatus.new(0, 0, @actor) @title_window = Window_Pocket.new(true, 0, 152) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate sows_pocket_terminate @title_window.dispose end #-------------------------------------------------------------------------- # * Update Frame #-------------------------------------------------------------------------- def update sows_pocket_update @title_window.update if @equip_window.active if Input.trigger?(Input::DOWN) if @title_window.pocket == EQUIP_TYPE_MAX @title_window.pocket = 1 else @title_window.pocket += 1 end @title_window.refresh elsif Input.trigger?(Input::UP) if @title_window.pocket == 1 @title_window.pocket = EQUIP_TYPE_MAX else @title_window.pocket -= 1 end @title_window.refresh end end end #-------------------------------------------------------------------------- # * Create Item Window #-------------------------------------------------------------------------- def create_item_windows @item_windows = [] for i in 0...EQUIP_TYPE_MAX @item_windows[i] = Window_EquipItem.new(544 / 2, 152, 544 / 2, 208, @actor, i) @item_windows[i].help_window = @help_window @item_windows[i].visible = (@equip_index == i) @item_windows[i].height = 208 @item_windows[i].active = false @item_windows[i].index = -1 end end #-------------------------------------------------------------------------- # * Update Status Window #-------------------------------------------------------------------------- def update_status_window if @equip_window.active @status_window.set_new_parameters(nil, nil, nil, nil) elsif @item_window.active if @item_window.index == @item_window.item_max - 1 @status_window.set_new_parameters(nil, nil, nil, nil) else temp_actor = @actor.clone temp_actor.change_equip(@equip_window.index, @item_window.item, true) new_atk = temp_actor.atk new_def = temp_actor.def new_spi = temp_actor.spi new_agi = temp_actor.agi @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi) end end @status_window.update end #-------------------------------------------------------------------------- # * Update Equip Region Selection #-------------------------------------------------------------------------- def update_equip_selection if Input.trigger?(Input:: Sound.play_cancel return_scene elsif Input.trigger?(Input::R) Sound.play_cursor next_actor elsif Input.trigger?(Input::L) Sound.play_cursor prev_actor elsif Input.trigger?(Input::C) if @actor.fix_equipment Sound.play_buzzer else Sound.play_decision @equip_window.active = false @item_window.active = true @item_window.index = 0 end end end #-------------------------------------------------------------------------- # * Update Item Selection #-------------------------------------------------------------------------- def update_item_selection if Input.trigger?(Input:: Sound.play_cancel @equip_window.active = true @item_window.active = false @item_window.index = -1 elsif Input.trigger?(Input::C) Sound.play_equip @actor.change_equip(@equip_window.index, @item_window.item) @equip_window.active = true @item_window.active = false @item_window.index = -1 @equip_window.refresh for item_window in @item_windows item_window.refresh end end end end #============================================================================== # ** Scene_Battle #------------------------------------------------------------------------------ # This class performs battle screen processing. #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # * Method Aliasing #-------------------------------------------------------------------------- alias sows_pocket_end_item_selection end_item_selection unless $@ alias sows_pocket_update_item_selection update_item_selection unless $@ #-------------------------------------------------------------------------- # * Start Item Selection #-------------------------------------------------------------------------- def start_item_selection @help_window = Window_Help.new(0, 416 - 128 - 56) @item_window = Window_Item.new(544 / 2, 0, 544 / 2, 232) @item_window.help_window = @help_window @actor_command_window.active = false @title_window = Window_Pocket.new end #-------------------------------------------------------------------------- # * End Item Selection #-------------------------------------------------------------------------- def end_item_selection sows_pocket_end_item_selection if @title_window != nil @title_window.dispose @title_window = nil end end #-------------------------------------------------------------------------- # * Update Item Selection #-------------------------------------------------------------------------- def update_item_selection sows_pocket_update_item_selection @title_window.update if @title_window != nil end end #============================================================================ # ** RPG #---------------------------------------------------------------------------- # A module containing RPGVX Data Structures. #============================================================================ module RPG #============================================================================ # ** Item #---------------------------------------------------------------------------- # Data class for items. #============================================================================ class Item < UsableItem def pocket str = SOWS.split_tags(self, /<(?:pocket)[ ]*(\d+)>/i) pocket = str.nil? ? 0 : str.to_i return pocket end end end #============================================================================ # ** RPG #---------------------------------------------------------------------------- # A module containing RPGVX Data Structures. #============================================================================ module RPG #============================================================================ # ** Weapon #---------------------------------------------------------------------------- # Data class for weapons. #============================================================================ class Weapon < BaseItem def pocket str = SOWS.split_tags(self, /<(?:pocket)[ ]*(\d+)>/i) pocket = str.nil? ? 0 : str.to_i return pocket end end end #============================================================================ # ** RPG #---------------------------------------------------------------------------- # A module containing RPGVX Data Structures. #============================================================================ module RPG #============================================================================ # ** Armor #---------------------------------------------------------------------------- # Data class for armors. #============================================================================ class Armor < BaseItem def pocket str = SOWS.split_tags(self, /<(?:pocket)[ ]*(\d+)>/i) pocket = str.nil? ? 0 : str.to_i return pocket end end end
×