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. Faceset Generator v2.0 Autore: ~Viscocent Descrizione: Questo programmino, è un generatore di face con al suo interno le risorse di Pentagonbuddy e Celliana ^^ Anche questo è in versione beta, ma è molto utile =D Screenshots: Download: Faceset Generator v2.0.zip
  2. Autore: mikb89 Convertire un progetto è una cosa che può capitare di dover fare, anche se non molto spesso (si spera!). Però, ogni tool ha profonde differenze e una conversione diretta troverebbe un sacco di discordanze. Per ovviare a entrambi i problemi, questo tool fa una cosa semplicissima: una volta cliccato Copia su un oggetto qualsiasi in un tool, questo viene predisposto per essere incollato in un altro. Così l'utility non serve una volta sola (perché si potranno copiare anche solo piccole parti da qualsiasi progetto) e la conversione che ne viene fuori è guidata, sapete esattamente cosa state convertendo e in che modo. L'interfaccia si presenta in questo modo: Il funzionamento è semplice: scegliete il tool di destinazione. Fatto. Potete ridurre il programma a icona, una volta che copierete qualcosa, questa verrà convertita e potrete incollarla sul tool scelto. Per i più audaci, è anche possibile deselezionare la casella Auto, in tal caso ciò che copiate non verrà convertito in maniera automatica ma bisognerà cliccare su Converti. Per semplificare le cose, quando è in questa modalità la finestrella rimarrà sempre in primo piano. Una nuova funzione aggiunta con l'aggiornamento permette di salvare e caricare file contenenti eventi, mappe, script ed elementi del database! In questo modo potrete ad esempio salvare un evento che usate in più progetti e caricarlo direttamente, per incollarlo rapidamente dove volete. Oppure può tornare utile sul forum, quando si hanno problemi con qualche evento impostato male lo si può caricare e chi lo scarica può analizzarlo direttamente! (e correggerlo e ripostarlo molto velocemente). Vi lascio al link del download, sperando questo programmino vi possa essere utile (: RM CopyPaste Trade.zip
  3. Onix - Editor RGSS 1.3.5 Super lancio da rpgmkr.net! Onix - Editor RGSS 1.3.5 Un potente Editor per l'RGSS, RGSS2 ed RGSS3! E con grande piacere (di più per gli scripter) vi informo che è finalmente uscito questo potentissimo editor che vi permetterà di scriptare più facilmente! Con la sua interfaccia semplice da utilizzare, Onix è molto divertente da usare se si vuole imparare a scriptare più 'velocemente' e 'facilmente'! Il programma è stato sviluppato interamente in C++ e per adesso è in lingua portoghese, ma noi avremmo l'esclusiva concessa dal programmatore per renderlo in italiano e distribuire la lingua anche su altri forum :grossourire Per ottenere supporto basta semplicemente scrivere su questo topic, e lo Staff o chiunque sia in grado di aiutarvi, vi risponderà ^^ Cominciare con Onix Le caratteristiche speciali di questo programma sono molto esaustive: 1. Progetto di test senza chiudere l'applicazione 2. Verificare la presenza di errori di sintassi 3. Creazione di nuovo script, utilizzando modelli predefiniti 4. Nuova creazione guidata dello Script 5. Funzione trova 6. Confronto dei Codici 7. Crea collegamento sul Desktop 8. Funzione Backup Aggiornamento (14/10/2010) 9. Funzionalità e tecnologie d'avanguardia, come l'IntelliSense, e il confronto delle variazioni di script 10. Scelta degli script predefiniti con possibilità di aggiungerne di nuovi 11. Schermate di aiuto con un'interfaccia pratica e semplice Oltre a queste opzioni, possiamo trovare altre caratteristiche interessanti: 1. Righe con numerazione automatica 2. Elenco delle parole chiave 3. IntelliSense 4. ColorSyntax 5. Allineamento automatico 6. Scambio di posizione Lines Alla destra del programma, possiamo trovare anche un Help con le opzioni seguenti: 1. Guida ai comandi personalizzati 2. Elenco dei file 3. Guida Comandi cliptext Dettagli sul programma L'Onix è una innovativa piattaforma di sviluppo sull'RGSS ed RGGS2 che integrato con RPG Maker facilita il processo di produzione di giochi. Questo strumento utilizza una metodologia di sviluppo di alto livello e che consente una costruzione rapida, semplificando le procedure e aumentando la produttività sul codice. Vantaggi Cosa si ottiene con la Onix - Editor RGSS? Straordinarie funzionalità come le linee auto numerate, la sintasse colorata, l'elenco delle parole riservate, il completamento automatico intelligente, l'IntelliSense, la lista dei comandi, la ricerca e il ripristino di backup, la comparazione del codice modificato, e molte altre caratteristiche che lascerà la vostra esperienza con lo script incredibilmente semplice. Onix non è un semplice editor di testo, tanto meno un generatore di script. Questo strumento è una base solida e consolidata per lo sviluppo degli script di complessità minori, medie e superiori. Creato per essere il più professionale e riconosciuta nel mercato interno, Onix porta enormi vantaggi agli sviluppatori, riducendo il tempo per lo sviluppo. L'Onix è molto più di un editor di testo con colorazione della sintassi, è un nuovo modo di semplificare e facilitare la creazione di script! Requisiti di Sistema Requisiti Minimi: Windows XP o superiore con framework 2.0 Pentium III 800 MHz o superiore Memoria: 1 GB RAM o superiore (testato anche da me con 256mb di RAM) Risoluzione: 1024x768 (16 Bits) o superiore Disco Rigido: 10 MB DirectX 8.1 Requisiti Raccomandati: Windows XP con framework 2.0 Pentium Dual Core o Core Duo da 2.8 GHz Memoria: 2 GB RAM Risoluzione: 1280x1024 (32 Bits) Disco Rigido: 50 MB DirectX 9.0 Detto questo,dovete assolutamente provarlo Download: Onix.zip
  4. Nome Script: Dynamic Class Changer Versione: 1.1 Autore/i: ???nOBodY??? Informazioni: Lo script permette di cambiare Classe ai propri personaggi =) Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #=============================================================================== # Dynamic Class Changer v1.1 (RGSS3) # by ???nOBodY??? # Last Updated: 12/12/2011 # # Version 1.1 # #=============================================================================== # # Update History: # - Version 1.1 - Actors' noteboxes implemented /w notetag support # - Version 1.0 - Initial release; RGSS2 => RGSS3 # #=============================================================================== # # This snippet allows an actor's class name to be changed according to who is # using the class. For example, the default setup below changes "Magician" to # "Wizard" for males, and "Witch" for females, for the first four party members. # This can be used in a variety of ways, from gender-based to Zodiac-sign-based, # to even having every class be named something unique for every character in the # game! Slightly modified for RMVX Ace. # # New to RMVXA's v1.1, is the ability to use the new editor's built-in noteboxes # for actors: # # <class name: ID New Name> # # Ex. # # <class name: 3 Wizard> # <class name: 4 Priest> # <class name: 5 » Super Hero! «> # #=============================================================================== # Credits: # # -???nOBodY??? (aka sUBzeR_0) # -Special Thanks to Victor Sant #=============================================================================== # # Overwrites: # - Window_Base: draw_actor_class # #=============================================================================== $imported = {} if $imported == nil $imported["DynamicClassChanger"] = true module SUBZERO_MODULE #only include the class ids you wish to have their names changed INITIAL_CLASS_NAMES = { # actor id => [ [class id,name],[class id,name],[class id,name] ] 0 => 0, # DO NOT REMOVE 1 => [ [3,"Wizard"],[4,"Priest"] ], 2 => [ [3,"Witch"],[4,"Cleric"], ], 3 => [ [3,"Wizard"],[4,"Priest"] ], 4 => [ [3,"Witch"],[4,"Cleric"] ], 5 => [ ], 6 => [ ], 7 => [ ], 8 => [ ], } # <class name: ID New Name> CLASS_NAME = /<CLASS[ _]*NAME:?[ ]*(d+)[ ]*(.*)>/i end #=============================================================================== # CUSTOMIZATION END. FURTHER EDITTING IS DONE AT YOUR OWN RISK. YOU HAVE BEEN WARNED. #=============================================================================== #=============================================================================== # Window_Base #=============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # * Draw Class # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_actor_class(actor, x, y, width = 112) change_color(normal_color) #sUBzeR_0 Patch text = actor.class.name i = 0 until i == SUBZERO_MODULE::INITIAL_CLASS_NAMES[actor.id].size if SUBZERO_MODULE::INITIAL_CLASS_NAMES[actor.id][i].include?(actor.class.id) text = SUBZERO_MODULE::INITIAL_CLASS_NAMES[actor.id][i][1] break end i += 1 end note = $data_actors[actor.id].note note.scan(SUBZERO_MODULE::CLASS_NAME).each do |id, name| text = name if actor.class_id == id.to_i end draw_text(x, y, width, line_height, text) #sUBzeR_0 Patch end end #class Window_Base < Window
  5. Nome Script: Title Screen Skip (se il file save non esiste) Versione: N/D Autore/i: bStefan Informazioni: Piccolissimo script che salta il titolo se un file di salvataggio non viene trovato ^^ Istruzioni: Inserite lo script sotto Material. Script: #===================================== # by bStefan aka. regendo # please give credit if used # for use with RMVX ACE #===================================== # Skips Title screen if there is no # save file to be found. #===================================== # implement over Main or directly # into SceneManager #===================================== module SceneManager def self.run DataManager.init Audio.setup_midi if use_midi? if DataManager.save_file_exists? == false #- DataManager.setup_new_game # | $game_map.autoplay # | SceneManager.goto(Scene_Map) # | new code else # | @scene = first_scene_class.new # / this line not end #- @scene.main while @scene end end
  6. Nome Script: Auto Battle when Idle Versione: 1.2 Autore/i: mitchi.exe Informazioni: Il titolo dice tutto ù_ù Se non si ha tempo di stare dietro a una battaglia, la si può impostare ocme automatica =) Screenshot: Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #===========================================================================01= # MITCHI Auto Battle when Idle [VXA] #------------------------------------------------------------------------------ # Script version: 1.2 # By: //mitchi.exe # Converted on: Dec. 8, 2011 # (This is my first completed VX and VXA script!) #------------------------------------------------------------------------------ # Description: # This script will make all actors in the party to auto attack when the player # is not doing anything (idling) during a party or actor command selection # after the specified amount of frames or by pressing a certain button. This # is very useful when you suddenly have to do something else IRL and you don't # want to waste game play time! This is also beneficial when you're sleepy # or lazy... or somethin'... #------------------------------------------------------------------------------ # Features: # ~The party attacks automatically if player is idle or by a key press # ~Can set a specific amount of frames before the auto battle starts # ~Can be disabled by a switch #------------------------------------------------------------------------------ # Instructions: # Change the value of MAB_IDLE_FRAMES below to the amount you want: # MAB_IDLE_FRAMES = n # Party will automatically attack after 'n' frames. (usu. 60 frames = 1 sec.) MAB_IDLE_FRAMES = 300 # Change the value of DISABLE_IDLE_SWITCH below to a switch you want: # DISABLE_IDLE_SWITCH = n # If the switch 'n' is turned ON, the script's features WILL NOT WORK. DISABLE_IDLE_SWITCH = 85 # You can also enter auto mode by pressing a button. # IDLE_AUTO_KEY = button # where 'button' can be (:A,:X,:Y,:Z,:L,:R) IDLE_AUTO_KEY = :L #------------------------------------------------------------------------------ # Compatibility: # -Only supports UP, DOWN, OKAY(C), and CANCEL( keys for idling # -This will not work on battle systems that alters turns like the ATB and TBS #===========================================================================42= # Special Thanks: # -IMP1 for the frame count and seconds info # -Yanfly for helping me fix an error for the conversion # -SortaCool for originally requesting the script # -Peva for the manual key press suggestion # # Changelog: # v1.2 - Script converted to VXA # v1.1 - auto.battle -> make.action to prevent screwing up # each actor's default auto-battle setting (VX) #============================================================================== ##### START OF CODE ##### puts "MITCHI Auto Battle when Idle loaded" class Scene_Battle < Scene_Base alias idle_auto_start start alias idle_auto_update update alias idle_auto_turn_end turn_end def start idle_auto_start @idle_counter = 0 end def idle_auto_key_trigger? if (Input.trigger?(:DOWN) or Input.trigger?(:UP)) return true elsif (Input.trigger?(:C) or Input.trigger?(:) return true end return false end def idle_manual_key_press? if (Input.trigger?(IDLE_AUTO_KEY)) return true end return false end def update idle_auto_update if !$game_switches[DISABLE_IDLE_SWITCH] if @party_command_window.active or @actor_command_window.active @idle_counter = 0 if idle_auto_key_trigger? @idle_counter += 1 @idle_counter = MAB_IDLE_FRAMES if idle_manual_key_press? if @idle_counter == (MAB_IDLE_FRAMES) puts "Auto Battle Idle mode enabled!" for i in 0..$game_party.members.size-1 actor_set_auto = $game_party.members[i].id $game_actors[actor_set_auto].make_auto_battle_actions end Sound.play_ok @party_command_window.deactivate if @party_command_window.active @actor_command_window.deactivate if @actor_command_window.active turn_start end end end end def turn_end @idle_counter = 0 idle_auto_turn_end end end ##### END OF CODE ##### #============================================================================== # _ _ _ _____ ____ _ _ _ # | / | | | |_ _| | __| | |_| | | | # | ' | | | | | | |__ | _ | | | # |_|_|_| |_| |_| |____| |_| |_| |_| # "Yay for my first completed VXA script!" #============================================================================== Incompatibilità: N/D
  7. Nome Script: More Choices Versione: 1.0 Autore/i: Fomar0153 Informazioni: Questo script permette di superare i quattro limiti di scelta imposti di default dal tool, impostando una variabile per eguagliare la scelta che fa il player... Screenshots: Istruzioni: Inserite lo script sotto Material. Di seguito lascio anche un'immagine che lo stesso autore ha rilasciato per fare un esempio del suo funzionamento: Altre istruzioni all'interno dello script. Script: =begin More Choices by Fomar0153 Version 1.0 ---------------------- Notes ---------------------- No requirements Allows you to have more than four choices ---------------------- Instructions ---------------------- Edit the method more_choice and then use the call in a choice option. ---------------------- Known bugs ---------------------- None =end class Game_Interpreter #-------------------------------------------------------------------------- # ● Edit Here # when handle # $game_message.choices.push("a choice") #-------------------------------------------------------------------------- def more_choice(p) case p when "Pizza Topping" $game_message.choices.push("Ham & Pineapple") $game_message.choices.push("Meat Feast") $game_message.choices.push("Chocolate") $game_message.choices.push("BBQ") $game_message.choices.push("Diamonds") $game_message.choices.push("Spicy Chicken") $game_message.choices.push("Garlic") else $game_message.choices.push(p) end end #-------------------------------------------------------------------------- # ● Long Choices - Don't edit this bit #-------------------------------------------------------------------------- def setup_choices(params) for s in params[0] more_choice(s) end $game_message.choice_cancel_type = params[1] $game_message.choice_proc = Proc.new {|n| @branch[@indent] = n } end end class Window_ChoiceList < Window_Command #-------------------------------------------------------------------------- # ● Feel free to change the 1 to another variable that you'd prefer #-------------------------------------------------------------------------- alias mc_call_ok_handler call_ok_handler def call_ok_handler $game_variables[1] = index mc_call_ok_handler end end
  8. Nome Script: Animated Battlers Versione: 1.2 Autore/i: Fomar0153 Informazioni: Questo script aggiunge la possibilità di avere battlers animati nelle battaglie. Screenshots: Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: =begin Animated Battlers Script by Fomar0153 Version 1.2 ---------------------- Notes ---------------------- Includes Side View Battlers Compatable with my Customisable ATB/Stamina Based Battle System Script Make sure this goes above my Customisable ATB/Stamina Based Battle System Script ---------------------- Instructions ---------------------- Edit variables in Animated_Battlers to suit your needs. You will need to import battlers for the party to use they should be named like this: name_battler e.g. Ralph_battler or you can name them through note tagging ---------------------- Change Log ---------------------- 1.0 -> 1.1 Added Notetag support for default battlers <battler name> and you can edit it through the game e.g. $game_actors[1].battler_name = "Fomar0153" Added support for individual battler setup Added support for different length animations Added support for individual skill and item animations Added notetag support to further define when skills are close and long range. <close> <range> 1.1 -> 1.2 Fixed a bug were pose overrode setpose animation lengths Fixed screen_x related bug that sometimes caused positioning errors. ---------------------- Known bugs ---------------------- None =end module Animated_Battlers # Setup Generics # RPG VXA Caps at 60 FPS at best FRAMES_PER_SECOND = 4 # How long it takes for someone to move into position MOVEMENT_SECONDS = 1 # HP level before whoozy pose (percentage) LOW_HEALTH_POSE = 50 # Set up Actor Positions X_START = 400 X_OFFSET = 0 Y_START = 0 Y_OFFSET = 60 BATTLERS = {} BATTLERS['DEFAULT'] = {} # How many frames there are in an animation # Note FRAMES must be set to the maximum BATTLERS['DEFAULT']['FRAMES'] = 4 BATTLERS['DEFAULT']['VFRAMES'] = 14 # Setup default battlers' standard rows BATTLERS['DEFAULT']['POSE_IDLE'] = 0 BATTLERS['DEFAULT'][0] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_DEFEND'] = 1 BATTLERS['DEFAULT'][1] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_WHOOZY'] = 2 BATTLERS['DEFAULT'][2] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_STRUCK'] = 3 BATTLERS['DEFAULT'][3] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_ATTACK'] = 4 BATTLERS['DEFAULT'][4] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_ITEM'] = [] BATTLERS['DEFAULT']['POSE_ITEM'][0] = 5 BATTLERS['DEFAULT'][5] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_SKILL'] = [] BATTLERS['DEFAULT']['POSE_SKILL'][0] = 6 BATTLERS['DEFAULT'][6] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_MAGIC'] = 7 BATTLERS['DEFAULT'][7] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_ADVANCE'] = 8 BATTLERS['DEFAULT'][8] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_RETREAT'] = 9 BATTLERS['DEFAULT'][9] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_VICTORY'] = 10 BATTLERS['DEFAULT'][10] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_ENTER'] = 11 BATTLERS['DEFAULT'][11] = BATTLERS['DEFAULT']['FRAMES'] BATTLERS['DEFAULT']['POSE_DEAD'] = 12 BATTLERS['DEFAULT'][12] = BATTLERS['DEFAULT']['FRAMES'] # When doing the victory pose loop back to frame # 0 for the first frame # (FRAMES - 1) to not loop BATTLERS['DEFAULT']['VICTORY_LOOP'] = 1 # I reccomend adding your non-conformist battlers here # copy the big block above starting from: # BATTLERS['DEFAULT'] = {} # all the way to BATTLERS['DEFAULT']['VICTORY_LOOP'] = 1 # and then change DEFAULT to the name of the battler. def self.get_pose(battler_name, pose, id = nil) if BATTLERS[battler_name] == nil b = BATTLERS['DEFAULT'] else b = BATTLERS[battler_name] end if pose == "POSE_ITEM" or pose == "POSE_SKILL" if id.nil? or b[pose][id].nil? return b[pose][0] else return b[pose][id] end elsif !b[pose].nil? return b[pose] else return b['POSE_IDLE'] end end end class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● New attr_accessor #-------------------------------------------------------------------------- attr_accessor :battler_name #-------------------------------------------------------------------------- # ● Aliases setup #-------------------------------------------------------------------------- alias ab_setup setup def setup(actor_id) ab_setup(actor_id) if actor.note =~ /<battler (.*)>/i @battler_name = $1 else @battler_name = actor.name + "_battler" end end #-------------------------------------------------------------------------- # ● Rewrites use_sprite? #-------------------------------------------------------------------------- def use_sprite? return true end #-------------------------------------------------------------------------- # ● New Method screen_x #-------------------------------------------------------------------------- def screen_x return Animated_Battlers::X_START + self.index * Animated_Battlers::X_OFFSET end #-------------------------------------------------------------------------- # ● New Method screen_y #-------------------------------------------------------------------------- def screen_y return Animated_Battlers::Y_START + self.index * Animated_Battlers::Y_OFFSET end #-------------------------------------------------------------------------- # ● New Method screen_z #-------------------------------------------------------------------------- def screen_z return 100 end end class Spriteset_Battle #-------------------------------------------------------------------------- # ● Rewrites create_actors #-------------------------------------------------------------------------- def create_actors @actor_sprites = $game_party.battle_members.reverse.collect do |actor| Sprite_Battler.new(@viewport1, actor) end end end class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● Aliases initialize #-------------------------------------------------------------------------- alias ab_initialize initialize def initialize(viewport, battler = nil) ab_initialize(viewport, battler) @frame = 0 @mframe = 0 @pose = 0 @set_pose = Animated_Battlers.get_pose(@battler.battler_name,"POSE_ENTER") end #-------------------------------------------------------------------------- # ● Rewrote update_src_rect #-------------------------------------------------------------------------- def update_src_rect sx = (@frame / (60 / Animated_Battlers::FRAMES_PER_SECOND)) * @cw if @set_pose >= 0 sy = @set_pose * bitmap.height / (Animated_Battlers.get_pose(@battler.battler_name, "VFRAMES")) else sy = @pose * bitmap.height / (Animated_Battlers.get_pose(@battler.battler_name, "VFRAMES")) end self.src_rect.set(sx, sy, @cw, @ch) end #-------------------------------------------------------------------------- # ● Destroyed update_collapse #-------------------------------------------------------------------------- def update_collapse return end #-------------------------------------------------------------------------- # ● Aliases start_effect #-------------------------------------------------------------------------- alias ab_start_effect start_effect def start_effect(effect_type) return if effect_type = :collapse ab_start_effect end #-------------------------------------------------------------------------- # ● Rewrote update_position #-------------------------------------------------------------------------- def update_position if @battler.actor? self.x = @battler.screen_x self.ox = 0 self.y = @battler.screen_y + bitmap.height if @battler.moving > 0 self.x += (@mframe * (@battler.target_x - @battler.target_width - self.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt=':grah1' /> / (60 * Animated_Battlers::MOVEMENT_SECONDS)) self.y += @mframe * (@battler.target_y - self.y + (bitmap.height * (Animated_Battlers.get_pose(@battler.battler_name, "VFRAMES") - 1)/Animated_Battlers.get_pose(@battler.battler_name, "VFRAMES"))) / (60 * Animated_Battlers::MOVEMENT_SECONDS) end else self.x = @battler.screen_x self.y = @battler.screen_y + (bitmap.height * (Animated_Battlers.get_pose(@battler.battler_name, "VFRAMES") - 1)) / Animated_Battlers.get_pose(@battler.battler_name, "VFRAMES") if @battler.moving > 0 self.x += (@mframe * (@battler.target_x - self.x + @battler.bitmap_width / Animated_Battlers.get_pose(@battler.battler_name, "FRAMES")) / (60 * Animated_Battlers::MOVEMENT_SECONDS)) self.y += @mframe * (@battler.target_y + @battler.target_height - @battler.screen_y) / (60 * Animated_Battlers::MOVEMENT_SECONDS) end end self.z = @battler.screen_z end #-------------------------------------------------------------------------- # ● New Method update_pose #-------------------------------------------------------------------------- def update_pose if @battler.set_pose >= 0 @set_pose = @battler.set_pose @frame = 0 @battler.set_pose = -1 end return if @set_pose > 0 or @battler.moving > 0 if @battler.dead? @pose = Animated_Battlers.get_pose(@battler.battler_name, "POSE_DEAD") return end if $game_troop.all_dead? @pose = Animated_Battlers.get_pose(@battler.battler_name, "POSE_VICTORY") return end if battler.guard? @pose = Animated_Battlers.get_pose(@battler.battler_name, "POSE_DEFEND") return end if battler.hp <= (battler.mhp * Animated_Battlers::LOW_HEALTH_POSE / 100) @pose = Animated_Battlers.get_pose(@battler.battler_name, "POSE_WHOOZY") return end @pose = Animated_Battlers.get_pose(@battler.battler_name, "POSE_IDLE") end #-------------------------------------------------------------------------- # ● Rewrote update #-------------------------------------------------------------------------- def update super @frame += 1 if @battler.moving == 1 and @mframe == 0 @set_pose = Animated_Battlers.get_pose(@battler.battler_name, "POSE_ADVANCE") end if @battler.moving == 3 and @mframe == (60 * Animated_Battlers::MOVEMENT_SECONDS) @set_pose = Animated_Battlers.get_pose(@battler.battler_name, "POSE_RETREAT") end @mframe += 1 if @set_pose == Animated_Battlers.get_pose(@battler.battler_name, "POSE_ADVANCE") @mframe -= 1 if @set_pose == Animated_Battlers.get_pose(@battler.battler_name, "POSE_RETREAT") if (@mframe == 0 or @mframe == (60 * Animated_Battlers::MOVEMENT_SECONDS)) and @battler.moving? @set_pose = -1 @battler.moving = (@battler.moving + 1) % 4 end if @frame >= (Animated_Battlers.get_pose(@battler.battler_name, @set_pose) * (60 / Animated_Battlers::FRAMES_PER_SECOND)) and @set_pose > 0 if @pose == Animated_Battlers.get_pose(@battler.battler_name, "POSE_VICTORY") @frame = (Animated_Battlers.get_pose(@battler.battler_name, "VICTORY_LOOP") * (60 / Animated_Battlers::FRAMES_PER_SECOND)) else @frame = 0 end @set_pose = -1 unless (@set_pose == Animated_Battlers.get_pose(@battler.battler_name, "POSE_ADVANCE") or @set_pose == Animated_Battlers.get_pose(@battler.battler_name, "POSE_RETREAT")) end if @frame >= (Animated_Battlers.get_pose(@battler.battler_name, @pose) * (60 / Animated_Battlers::FRAMES_PER_SECOND)) if @pose == Animated_Battlers.get_pose(@battler.battler_name, "POSE_VICTORY") @frame = (Animated_Battlers.get_pose(@battler.battler_name, "VICTORY_LOOP") * (60 / Animated_Battlers::FRAMES_PER_SECOND)) else @frame = 0 end @set_pose = -1 unless (@set_pose == Animated_Battlers.get_pose(@battler.battler_name, "POSE_ADVANCE") or @set_pose == Animated_Battlers.get_pose(@battler.battler_name, "POSE_RETREAT")) end last_pose = @pose update_pose if last_pose != @pose @frame = 0 end if @battler @use_sprite = @battler.use_sprite? if @use_sprite update_bitmap update_origin update_position update_src_rect end setup_new_effect setup_new_animation update_effect else self.bitmap = nil @effect_type = nil end end #-------------------------------------------------------------------------- # ● New Method moving? #-------------------------------------------------------------------------- def moving? return !(@mframe == 0 or @mframe == 60 * Animated_Battlers::MOVEMENT_SECONDS) end #-------------------------------------------------------------------------- # ● Rewrote update_bitmap #-------------------------------------------------------------------------- def update_bitmap new_bitmap = Cache.battler(@battler.battler_name, @battler.battler_hue) if bitmap != new_bitmap self.bitmap = new_bitmap @cw = bitmap.width / Animated_Battlers.get_pose(@battler.battler_name, "FRAMES") @ch = bitmap.height / Animated_Battlers.get_pose(@battler.battler_name, "VFRAMES") init_visibility @battler.bitmap_height = bitmap.height @battler.bitmap_width = bitmap.width end end #-------------------------------------------------------------------------- # ● Rewrote effect? #-------------------------------------------------------------------------- def effect? return (@effect_type != nil or moving?) end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ● New attr_accessors #-------------------------------------------------------------------------- attr_accessor :target_x attr_accessor :target_y attr_accessor :target_width attr_accessor :target_height attr_accessor :moving attr_accessor :set_pose attr_accessor :bitmap_height attr_accessor :bitmap_width #-------------------------------------------------------------------------- # ● Aliases initialize #-------------------------------------------------------------------------- alias ab_initialize initialize def initialize ab_initialize @target_x = 0 @target_y = 0 @target_width = 0 @target_height = 0 @moving = 0 @set_pose = -1 @bitmap_height = 0 @bitmap_width = 0 end #-------------------------------------------------------------------------- # ● New Method move_to #-------------------------------------------------------------------------- def move_to(target) @target_x = target.screen_x @target_y = target.screen_y @target_width = target.bitmap_width / Animated_Battlers.get_pose(target.battler_name, "FRAMES") @target_height = target.bitmap_height / Animated_Battlers.get_pose(target.battler_name, "VFRAMES") @moving = 1 end #-------------------------------------------------------------------------- # ● New Method moving? #-------------------------------------------------------------------------- def moving? return (@moving == 1 or @moving == 3) end end class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● Rewrote use_item #-------------------------------------------------------------------------- def use_item item = @subject.current_action.item @log_window.display_use_item(@subject, item) @subject.use_item(item) refresh_status targets = @subject.current_action.make_targets.compact targets.each {|target| item.repeats.times { invoke_item(target, item) } } end #-------------------------------------------------------------------------- # ● Rewrote invoke_item #-------------------------------------------------------------------------- def invoke_item(target, item) if rand < target.item_cnt(@subject, item) invoke_counter_attack(target, item) elsif rand < target.item_mrf(@subject, item) invoke_magic_reflection(target, item) else if item.is_a?(RPG::Item) @subject.set_pose = Animated_Battlers.get_pose(@subject.battler_name, "POSE_ITEM", item.id) show_animation([target], item.animation_id) apply_item_effects(apply_substitute(target, item), item) elsif item.is_a?(RPG::Skill) if item.id == @subject.attack_skill_id @subject.move_to(target) update_for_wait while @subject.moving? @subject.set_pose = Animated_Battlers.get_pose(@subject.battler_name, "POSE_ATTACK") target.set_pose = Animated_Battlers.get_pose(target.battler_name, "POSE_STRUCK") show_animation([target], item.animation_id) apply_item_effects(apply_substitute(target, item), item) @subject.moving = 3 update_for_wait while @subject.moving? elsif item.id == @subject.guard_skill_id show_animation([target], item.animation_id) apply_item_effects(apply_substitute(target, item), item) elsif (item.magical? or item.note.include?("<range>")) and not item.note.include?("<close>") @subject.set_pose = Animated_Battlers.get_pose(@subject.battler_name, "POSE_MAGIC",item.id) target.set_pose = Animated_Battlers.get_pose(target.battler_name, "POSE_STRUCK") if item.for_opponent? show_animation([target], item.animation_id) apply_item_effects(apply_substitute(target, item), item) else if item.for_opponent? @subject.move_to(target) update_for_wait while @subject.moving? @subject.set_pose = Animated_Battlers.get_pose(@subject.battler_name, "POSE_SKILL", item.id) target.set_pose = Animated_Battlers.get_pose(target.battler_name, "POSE_STRUCK") show_animation([target], item.animation_id) apply_item_effects(apply_substitute(target, item), item) @subject.moving = 3 update_for_wait while @subject.moving? else @subject.set_pose = Animated_Battlers.get_pose(@subject.battler_name, "POSE_SKILL", item.id) show_animation([target], item.animation_id) apply_item_effects(apply_substitute(target, item), item) end end end end @subject.last_target_index = target.index end end
  9. Nome Script: Switch Menu Versione: N/D Autore/i: Zerbu Informazioni: Come da titolo, con questo script si possono richiamare ad esempio degli eventi comuni al posto del menù etc... Screenshots: Istruzioni: Inserite lo script sotto Material. Istruzioni del suo funzionamento come da screen Script: #============================================================================== # › Switch Menu ‹ #------------------------------------------------------------------------------ # Using this script you can make it so that when the menu is called, a # switch is turned on instead. You can still open the menu by using a # [Open Menu Screen] event call. You can use the switch to create a common # event in place of the menu, or anthing else you want. #------------------------------------------------------------------------------ # by Zerbu #============================================================================== $imported = {} if $imported.nil? $imported["SwitchMenu"] = true #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= module SwitchMenu #============================================================================ # ♦ Switch ID ♦ #---------------------------------------------------------------------------- # Set the switch you want turned on~ #============================================================================ SWITCH_ID = 1 #--- end #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= #============================================================================== # » Scene_Map #============================================================================== class Scene_Map #---------------------------------------------------------------------------- # » overwrite method: call_menu #---------------------------------------------------------------------------- def call_menu $game_switches[SwitchMenu] = true @menu_calling = false end #--- end
  10. Nome Script: Title Screen Aqua Versione: N/D Autore/i: Zerbu Informazioni: Script che prende assoluto controllo sulla schermata del titolo :3 Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #============================================================================ # ? Title Screen Aqua ? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # This script gives you control over the title screen, from customizing # its appearance to adding extra options to it~ #============================================================================ $imported = {} if $imported.nil? $imported["zeaq_titlescreen"] = true module ZEAQ module TitleScreen #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ? Appearance Options ? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # These options configure the appearance of the title screen. You can # customize these to make the title screen stand out! #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Enable custom appearance? # If this setting is false, the font and Windowskin options will remain # unchanged from the default. CHANGE_APPEARANCE = false # Font Options FONT_FACE = ["VL Gothic", "Verdana", "Arial", "Courier"] # Font name FONT_SIZE = 24 # Font size used on the title screen FONT_COL = [255, 255, 255] # The colour of text ([red, blue, green]) FONT_BOLD = false # Whether or not text should appear bold FONT_ITALIC = false # Whether or not text should appear italic FONT_SHADOW = false # Whether or not text should have a shadow FONT_OUTLINE = true # Whether or not text should have an outline FONT_OUT_COL = [0, 0, 0] # The colour of the outline ([red, blue, green]) # Window Options WINDOWSKIN = "Window" # Windowskin used on the title screen OPACITY = 255 # Opacity (how visible) level of the Windowskin BACK_OPACITY = 200 # Opacity of the back of the Windowskin PADDING = 12 # The padding of text in the Window PADDING_BOTTOM = 12 # The bottom padding of text in the Window #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ? Size and Position Options ? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # These options configure the position of the window on the title screen. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Enable custom size and/or position? # If this setting is false, the position of the Window will remain # unchanged from the default. CHANGE_SIZE_POSITION = false # Size Options WINDOW_WIDTH = 175 # Window width; if 0, the default will be used # Position Options WINDOW_X = 20 # Window X position; if -1, the default will be used WINDOW_Y = 20 # Window Y position; if -1, the default will be used #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ? Game Title Options ? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # These options allow you to customize how the game title will be # displayed on the title screen, if you've chosen to display it. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Font Options NAME_FONT = ["VL Gothic", "Verdana", "Arial", "Courier"] # Font name NAME_SIZE = 48 # Font size used on the title screen NAME_COL = [255, 255, 255] # The colour of text ([red, blue, green]) NAME_BOLD = true # Whether or not text should appear bold NAME_ITALIC = true # Whether or not text should appear italic NAME_SHADOW = true # Whether or not text should have a shadow NAME_OUTLINE = true # Whether or not text should have an outline NAME_OUT_COL = [0, 0, 0] # The colour of the outline ([red, blue, green]) # Position Options NAME_X = 0 # X movement from position on the screen NAME_Y = 68 # Y movement from top of the screen NAME_ALIGN = 1 # 0-Left; 1-Middle; 2-Right #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ? Graphic and Sound Options ? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # These options allow you to customize the graphic and sound on the title # screen using advanced options. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Here you can create a list of graphics that can be displayed on the title # screen. A random one from the list is shown every time the title screen # is shown, so you aren't stuck with just one graphic. # The format to use is: ["Title1", "Title2"], GRAPHICS = [ ["Crystal", "Gargoyles"], ["CrossedSwords", "Dragons"], ["Fountain", ""], ["Gates", "Heroes"], ] # Here you can create a list of music to play on the title screen, and/or # add a BGS or ME to the title screen. # # The format to use is: # [["BGM", Volume, Pitch], ["BGS", Volume, "Pitch"], ["ME", Volume, Pitch]] # # If you don't want to use a BGS, ME or even don't want a BGM, but want # other sounds, set the one(s) you don't want to "nil" # [["BGM", Volume, Pitch], nil, nil] will produce a BGM only. # [["BGM", Volume, Pitch], ["BGS", Volume, "Pitch"], nil] will produce a BGM # and BGS. SOUNDS = [ [["Theme2", 100, 100], ["Darkness", 100, 100], ["Shock", 100, 100]], [["Theme3", 100, 100], nil, nil], [["Theme4", 100, 100], ["Fire", 70, 100], nil], [["Theme5", 100, 100], nil, ["Victory2", 100, 100]], ] # This option sets whether sounds and graphics should be linked together. If # this is set to true, the first sound in the sounds list will always play # with the first graphic in the graphics list, the second sound with the # second graphic, and so on. If this is false, the graphics and sounds will # be randomized completely seperate from each other. If you enable this # option, you will need to have the same amount of graphics and sounds or # else the title screen could appear with no graphic or no sound. CONNECT_GRAPHICS_AND_SOUNDS = true #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ? Title Screen Menu ? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # This allows you to list the options that will appear on the title # screen, in the order they should appear. Scroll further down to define # your own custom options. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MENU_OPTIONS = [ :new_game, :continue, #:custom1, #:custom2, :shutdown, ] SHOW_CONTINUE = true # Show continue if there are no save files? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ? Normal Menu Options ? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # These are the normal menu options that have their own scripts to run. # If you are using a script that is meant to add an option to the title # screen, you can add it here. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ID: The name and method of the option to be called from the option # above. This is also the name of the handler used. # Name: The name to be displayed on the title menu. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NORMAL_OPTIONS = { #--------------------------------# # ID => "Name", # #--------------------------------# :new_game => "New Game", :continue => "Continue", :shutdown => "Shutdown", } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ? Extra Starting Positions ? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # This allows you to add your own additional "New Game"-type options # where you can choose different starting positions. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ID: The technical name of the extra option to be called from the # option above. # Name: The name to be displayed on the title menu. # Map: The map where the players start when using this extra option. # Map X: The X position on the map. # Map Y: The Y position on the map. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ EXTRA_OPTIONS = { #---------------------------------------------------# # ID => ["Name", Map, MapX, MapY], # #---------------------------------------------------# :custom1 => ["Tutorial", 3, 10, 12 ], :custom2 => ["Credits", 4, 4, 2 ], } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ? Radial Animation Options ? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Here you can create an animation for the title screen background, # similar to RPG Maker VX's default battle system. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Enable? RADIAL_ANIMATION = false # Blur Options RADIAL_BLUR_ANGLE = 80 # Radial blur angle RADIAL_BLUR_DIVISION = 12 # Radial blur division (smoothness) # Wave Options WAVE_AMP = 8 # Wave amplitude WAVE_LENGTH = 240 # Wave frequency WAVE_SPEED = 120 # Wave speed end #TitleScreen end #ZEAQ class Window_TitleCommand < Window_Command alias zeaq_titlescreen_initialize initialize def initialize zeaq_titlescreen_initialize if ZEAQ::TitleScreen::CHANGE_APPEARANCE self.windowskin = Cache.system(ZEAQ::TitleScreen::WINDOWSKIN) self.opacity = ZEAQ::TitleScreen::OPACITY self.back_opacity = ZEAQ::TitleScreen::BACK_OPACITY self.padding = ZEAQ::TitleScreen::PADDING self.padding_bottom = ZEAQ::TitleScreen::PADDING_BOTTOM end end alias zeaq_titlescreen_draw_item draw_item def draw_item(index) if ZEAQ::TitleScreen::CHANGE_APPEARANCE contents.font.name = ZEAQ::TitleScreen::FONT_FACE contents.font.size = ZEAQ::TitleScreen::FONT_SIZE contents.font.color = Color.new(ZEAQ::TitleScreen::FONT_COL[0], ZEAQ::TitleScreen::FONT_COL[1], ZEAQ::TitleScreen::FONT_COL[2]) contents.font.bold = ZEAQ::TitleScreen::FONT_BOLD contents.font.italic = ZEAQ::TitleScreen::FONT_ITALIC contents.font.shadow = ZEAQ::TitleScreen::FONT_SHADOW contents.font.outline = ZEAQ::TitleScreen::FONT_OUTLINE contents.font.out_color = Color.new(ZEAQ::TitleScreen::FONT_OUT_COL[0], ZEAQ::TitleScreen::FONT_OUT_COL[1], ZEAQ::TitleScreen::FONT_OUT_COL[2]) end zeaq_titlescreen_draw_item(index) end alias zeaq_titlescreen_window_width window_width def window_width if ZEAQ::TitleScreen::WINDOW_WIDTH != 0 && ZEAQ::TitleScreen::CHANGE_SIZE_POSITION return ZEAQ::TitleScreen::WINDOW_WIDTH else zeaq_titlescreen_window_width end end def update_placement if ZEAQ::TitleScreen::WINDOW_X != -1 && ZEAQ::TitleScreen::CHANGE_SIZE_POSITION self.x = ZEAQ::TitleScreen::WINDOW_X else self.x = (Graphics.width - width) / 2 end if ZEAQ::TitleScreen::WINDOW_Y != -1 && ZEAQ::TitleScreen::CHANGE_SIZE_POSITION self.y = ZEAQ::TitleScreen::WINDOW_Y else self.y = (Graphics.height * 1.6 - height) / 2 end end def make_command_list ZEAQ::TitleScreen::MENU_OPTIONS.each{|n| if ZEAQ::TitleScreen::NORMAL_OPTIONS[n] if n == :continue && !continue_enabled && ZEAQ::TitleScreen::SHOW_CONTINUE add_command(ZEAQ::TitleScreen::NORMAL_OPTIONS[n], n, false) else add_command(ZEAQ::TitleScreen::NORMAL_OPTIONS[n], n, true) end end if ZEAQ::TitleScreen::EXTRA_OPTIONS[n] add_command(ZEAQ::TitleScreen::EXTRA_OPTIONS[n][0], :zeaq_command, true, ZEAQ::TitleScreen::EXTRA_OPTIONS[n]) end } end end class Scene_Title < Scene_Base alias zeaq_titlescreen_start start def start if ZEAQ::TitleScreen::CONNECT_GRAPHICS_AND_SOUNDS if ZEAQ::TitleScreen::GRAPHICS.size >= ZEAQ::TitleScreen::SOUNDS.size @random_value = rand(ZEAQ::TitleScreen::GRAPHICS.size) else @random_value = rand(ZEAQ::TitleScreen::SOUNDS.size) end end zeaq_titlescreen_start end def create_background if @random_value graphic = ZEAQ::TitleScreen::GRAPHICS[@random_value] else graphic = ZEAQ::TitleScreen::GRAPHICS[rand(ZEAQ::TitleScreen::GRAPHICS.size)] end @sprite1 = Sprite.new @sprite1.bitmap = Cache.title1(graphic[0]) if ZEAQ::TitleScreen::RADIAL_ANIMATION @sprite1.bitmap.radial_blur(ZEAQ::TitleScreen::RADIAL_BLUR_ANGLE, ZEAQ::TitleScreen::RADIAL_BLUR_DIVISION) @sprite1.wave_amp = ZEAQ::TitleScreen::WAVE_AMP @sprite1.wave_length = ZEAQ::TitleScreen::WAVE_LENGTH @sprite1.wave_speed = ZEAQ::TitleScreen::WAVE_SPEED end @sprite2 = Sprite.new @sprite2.bitmap = Cache.title2(graphic[1]) center_sprite(@sprite1) center_sprite(@sprite2) end def draw_game_title @foreground_sprite.bitmap.font.name = ZEAQ::TitleScreen::NAME_FONT @foreground_sprite.bitmap.font.size = ZEAQ::TitleScreen::NAME_SIZE @foreground_sprite.bitmap.font.color = Color.new(ZEAQ::TitleScreen::NAME_COL[0], ZEAQ::TitleScreen::NAME_COL[1], ZEAQ::TitleScreen::NAME_COL[2]) @foreground_sprite.bitmap.font.bold = ZEAQ::TitleScreen::NAME_BOLD @foreground_sprite.bitmap.font.italic = ZEAQ::TitleScreen::NAME_ITALIC @foreground_sprite.bitmap.font.shadow = ZEAQ::TitleScreen::NAME_SHADOW @foreground_sprite.bitmap.font.outline = ZEAQ::TitleScreen::NAME_OUTLINE @foreground_sprite.bitmap.font.out_color = Color.new(ZEAQ::TitleScreen::NAME_OUT_COL[0], ZEAQ::TitleScreen::NAME_OUT_COL[1], ZEAQ::TitleScreen::NAME_OUT_COL[2]) rect = Rect.new(ZEAQ::TitleScreen::NAME_X, ZEAQ::TitleScreen::NAME_Y, Graphics.width, ZEAQ::TitleScreen::NAME_SIZE) @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, ZEAQ::TitleScreen::NAME_ALIGN) end def play_title_music RPG::BGS.stop RPG::ME.stop if @random_value sound = ZEAQ::TitleScreen::SOUNDS[@random_value] else sound = ZEAQ::TitleScreen::SOUNDS[rand(ZEAQ::TitleScreen::SOUNDS.size)] end RPG::BGM.stop if !sound[0].nil? if !sound[2].nil? RPG::ME.new(sound[2][0], sound[2][1], sound[2][2]).play end if !sound[0].nil? RPG::BGM.new(sound[0][0], sound[0][1], sound[0][2]).play end if !sound[1].nil? RPG::BGS.new(sound[1][0], sound[1][1], sound[1][2]).play end end def zeaq_titlescreen_command n = @command_window.current_ext DataManager.create_game_objects $game_party.setup_starting_members $game_map.setup(n[1]) $game_player.moveto(n[2], n[3]) $game_player.refresh Graphics.frame_count = 0 close_command_window fadeout_all $game_map.autoplay SceneManager.goto(Scene_Map) end alias zeaq_titlescreen_create_command_window create_command_window def create_command_window zeaq_titlescreen_create_command_window @command_window.set_handler(:zeaq_command, method(:zeaq_titlescreen_command)) end alias zeaq_titlescreen_update update def update zeaq_titlescreen_update if ZEAQ::TitleScreen::RADIAL_ANIMATION @sprite1.update end end end
  11. Nome Script: Second Parallax Layer Versione: N/D Autore/i: Crazyninjaguy Informazioni: Questo semplice script funziona un pò come l'uso delle picture, a differenza che può inserire anche più di 20 immagini. Chi mappa in parallax infatti, potrebbe averne bisogno ^^ Screenshot: Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #=============================================================================== # * AEE - Second Parallax Layer # * By Crazyninjaguy # * http://www.planetdev.co.uk # * Part of Cng's Ace Engine Evolution # --------------------------------------------------------------------------- # * Follow the script instructions to setup correctly. #=============================================================================== $imported = {} if $imported == nil $imported["AEE-ParallaxingLayers"] = true module AEE module Parallax # Leave this line alone MAPS = [] # Set this to true if you want MAP[Map ID] to have two parallax layers. MAPS[1] = true # To add a new map to the script, simply add MAPS[Map ID] = true # on a new line. For example. # MAPS[12] = true # Without the '#' at the start of the line. end # Parallax end # AEE class Spriteset_Map include AEE::Parallax #============================================================================= # * Create_parallax - ALIASED #============================================================================= alias aee_spritesetmap_parallaxing_createparallax create_parallax def create_parallax aee_spritesetmap_parallaxing_createparallax @parallax2 = Plane.new(@viewport1) @parallax2.z = 201 # Above Character end # create_parallax #============================================================================= # * Dispose_parallax - ALIASED #============================================================================= alias aee_spritesetmap_parallaxing_disposeparallax dispose_parallax def dispose_parallax @parallax2.bitmap.dispose if @parallax2.bitmap @parallax2.dispose end # dispose_parallax #============================================================================= # * Update_parallax - OVERWRITTEN #============================================================================= def update_parallax if @parallax_name != $game_map.parallax_name @parallax_name = $game_map.parallax_name @parallax.bitmap.dispose if @parallax.bitmap @parallax.bitmap = Cache.parallax(@parallax_name) @parallax2.bitmap.dispose if @parallax2.bitmap if MAPS[$game_map.map_id] == true @parallax2.bitmap = Cache.parallax("#{@parallax_name}_layer2") end Graphics.frame_reset end if MAPS[$game_map.map_id] == true @parallax.ox = $game_map.display_x * 32 @parallax.oy = $game_map.display_y * 32 @parallax2.ox = $game_map.display_x * 32 @parallax2.oy = $game_map.display_y * 32 elsif @parallax.ox = $game_map.parallax_ox(@parallax.bitmap) @parallax.oy = $game_map.parallax_oy(@parallax.bitmap) end end # update_parallax end # Spriteset_Map Note dell'Autore: Per l'uso dello script in giochi commerciali, contattare l'autore.
  12. Nome Script: Colonne Multiple in Command Window Versione: N/D Autore/i: bStefan Informazioni: Questo script aggiunge una nuova classe Window_HorizontalCommand. HorizontalCommand può mostrare più colonne una accanto all'altra (ad esempio nella selezione delle scelte). Inoltre, sia window_width che item_width vengono calcolati automaticamente quindi nulla viene tagliato. Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #========================================== # Multiple Cols Command Window #========================================== # by bStefan aka. regendo # requested by monstrumgod # : http://www.rpgmakervxace.net/index.php?/user/313-monstrumgod/ # please give credit if used #========================================== # C&P this as a new script above Main #========================================== #============================================================ # HOW TO USE #============================================================ # 1. make a new window class # class Window_Something < Window_HorizontalCommand # 2. add commands to Window_Something#make_command_list # add_command("Displayed_Name", :symbol, condition) # example: # add_command("Give Item", :give, $game_variables[0] > 5) # 3. make a scene use this window # @command_window = Window_Something.new # @command_window.set_handler(:give, method(:give_item)) # 4. define that method # def give_item # #code # end # 5. ??? # 6. Profit. #============================================================ module Regendo unless @scripts @scripts = Hash.new def self.contains?(key) @scripts[key] == true end end @scripts["Horizontal_Command"] = true module Horizontal_Command #============== # CONFIG #============== #spacing in pixels def self.spacing 32 end #padding in pixels def self.standard_padding 12 end #number of columns if no number is given upon calling intialize def self.standard_cols 2 end end end #============== # Script #============== class Window_HorizontalCommand < Window_Command def initialize(x = 0, y = 0, cols = standard_cols, width = "fitting") col_max(cols) @list = [] make_command_list width == "fitting" ? window_width(fitting_width) : window_width(width) clear_command_list super(x, y) end # the value is only so that window_width can be called without specifying # : width. Changing the standard value from 255 to something else, unless # : it's a method, will not actually change the result. def window_width(width = 255) @width ? @width : @width = width @width > Graphics.width ? @width = Graphics.width : @width end def col_max(cols = standard_cols) @cols ? @cols : @cols = cols end def visible_line_number row_max end def fitting_width (item_width + spacing) * col_max - spacing + standard_padding * 2 end def item_width bmp = Bitmap.new(1,1) length = [] @list.each do |index| length.push((bmp.text_size(index[:name])).width) end if @width if length.max > (@width - standard_padding * 2 + spacing) / col_max - spacing (@width - standard_padding * 2 + spacing) / col_max - spacing else length.max end else length.max end end def spacing Regendo::Horizontal_Command::spacing end def standard_padding Regendo::Horizontal_Command::standard_padding end def standard_cols Regendo::Horizontal_Command::standard_cols end end Incompatibilità: N/D
  13. Nome Script: XAS Hero Edition ACE Versione: 0.5 Autore/i: Moghunter Informazioni: Disponibile ora anche per Ace *____* Per chi non lo sapesse lo XAS è l'ABS più potente in circolazione =P Provatelo, non ve ne pentirete...penso che ora io passerò al VX Ace http://rpgmkr.net/forum/public/style_emoticons/default/xd.gif Screenshots: Istruzioni: Le istruzioni sono elencate tutte nel sito di Moghunter: http://atelier-rgss.com/XAS/Manual.htm Demo: http://www.mediafire.com/?ck59ijidbt7s3gd
  14. Nome Script: KMS Cursor Animation Versione: N/D Autore/i: tomy, traduzione EN by Mr. Bubble Informazioni: Visualizza un cursore animato nelle finestre di selezione del menù. Istruzioni: Inserite lo script sotto Material e inserite questa immagine nella cartella Graphic/System: Script: #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ ◆ Animated Cursor - KMS_CursorAnimation ◆ VX Ace ◆ #_/ ◇ Last update : 2012/01/22 (TOMY@Kamesoft) ◇ #_/ ◇ Website: http://ytomy.sakura.ne.jp/ ◇ #_/ ◇ Translated by Mr. Bubble ◇ #_/---------------------------------------------------------------------------- #_/ Displays an animated cursor for menu selection windows. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # This script adds a cursor animation for selectable windows. The number # of frames a cursor animation graphic can have is unlimited as long as the # cursor graphic supports that many frames. #---------------------------------------------------------------------------- # Script Calls #---------------------------------------------------------------------------- # Script calls are used in "Script..." event commands located under Tab 3. # # show_cursor_animation # Shows the cursor animation if it is not visible already. # # hide_cursor_animation # Hides the cursor animation if it is visable. #---------------------------------------------------------------------------- # Conditional Branch Script Calls #---------------------------------------------------------------------------- # Conditional branch script calls are used in the "Script" box in Conditional # Branch event commands. # # cursor_animation_visible? # Returns true if the cursor is visble. Returns false if cursor is hidden #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #============================================================================== # ★ BEGIN Setting ★ #============================================================================== module KMS_CursorAnimation # * Default Cursor Visibility Setting # true : Show cursor animation by default (can be seen on title screen) # false : Hide cursor animation by default (only seen in a new/loaded game) DEFAULT_ANIMATION = true # * Cursor Animation File # Cursor graphics are placed in the "Graphics/System" folder in your project ANIMATION_FILE = "CursorAnimation" # * Cursor Frame Count # The number of frames in the cursor animation graphic. Cursor frame # counts are unlimited as long as the cursor graphic supports that # many frames. FRAME_COUNT = 12 # * Cursor Animation speed # Higher values make the cursor animation slower. ANIMATION_WAIT = 4 # * Cursor Opacity OPACITY = 224 # * Cursor Blending Type # 0 : Normal # 1 : Add # 2 : Sub BLEND_TYPE = 1 # * Cursor Base Position # 0 : Higher # 1 : Center # 2 : Lower BASE_POSITION = 0 # * Cursor Position Adjustment [x, y] POSITION_REV = [-4, 0] end #============================================================================== # ☆ END Setting ☆ #============================================================================== $kms_imported = {} if $kms_imported == nil $kms_imported["CursorAnimation"] = true # ***************************************************************************** #============================================================================== # □ KMS_Commands #============================================================================== module KMS_Commands module_function #-------------------------------------------------------------------------- # ○ カーソルアニメを表示 #-------------------------------------------------------------------------- def show_cursor_animation $game_system.cursor_animation_visible = true end #-------------------------------------------------------------------------- # ○ カーソルアニメを非表示 #-------------------------------------------------------------------------- def hide_cursor_animation $game_system.cursor_animation_visible = false end #-------------------------------------------------------------------------- # ○ カーソルアニメ表示状態の取得 #-------------------------------------------------------------------------- def cursor_animation_visible? return $game_system.cursor_animation_visible end end #============================================================================== # ■ Game_Interpreter #============================================================================== class Game_Interpreter # イベントコマンドから直接コマンドを叩けるようにする include KMS_Commands end #============================================================================== # ■ Window_Base #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # ○ クラス変数 #-------------------------------------------------------------------------- @@__cursor_animation = nil # カーソルアニメ #-------------------------------------------------------------------------- # ● オブジェクト初期化 # x : ウィンドウの X 座標 # y : ウィンドウの Y 座標 # width : ウィンドウの幅 # height : ウィンドウの高さ #-------------------------------------------------------------------------- alias initialize_KMS_CursorAnimation initialize def initialize(x, y, width, height) initialize_KMS_CursorAnimation(x, y, width, height) @@__cursor_animation.add_window(self) end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- unless method_defined?(:dispose_KMS_CursorAnimation) alias dispose_KMS_CursorAnimation dispose end def dispose @@__cursor_animation.remove_window(self) dispose_KMS_CursorAnimation end #-------------------------------------------------------------------------- # ○ カーソルアニメを生成 #-------------------------------------------------------------------------- def self.create_cursor_animation @@__cursor_animation = Cursor_Animation.new end #-------------------------------------------------------------------------- # ○ カーソルアニメを破棄 #-------------------------------------------------------------------------- def self.dispose_cursor_animation @@__cursor_animation.dispose end #-------------------------------------------------------------------------- # ○ カーソルアニメを表示 #-------------------------------------------------------------------------- def self.show_cursor_animation @@__cursor_animation.visible = true @@__cursor_animation.update end #-------------------------------------------------------------------------- # ○ カーソルアニメを隠す #-------------------------------------------------------------------------- def self.hide_cursor_animation @@__cursor_animation.visible = false @@__cursor_animation.update end #-------------------------------------------------------------------------- # ○ カーソルアニメを更新 #-------------------------------------------------------------------------- def self.update_cursor_animation @@__cursor_animation.update end end #============================================================================== # ■ Game_System #============================================================================== class Game_System #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_writer :cursor_animation_visible #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_KMS_CursorAnimation initialize def initialize initialize_KMS_CursorAnimation @cursor_animation_visible = KMS_CursorAnimation::DEFAULT_ANIMATION end #-------------------------------------------------------------------------- # ○ カーソルアニメ可否フラグを取得 #-------------------------------------------------------------------------- def cursor_animation_visible if @cursor_animation_visible.nil? @cursor_animation_visible = KMS_CursorAnimatin::DEFAULT_ANIMATION end return @cursor_animation_visible end end #============================================================================== # □ Sprite_CursorAnimation #------------------------------------------------------------------------------ #  カーソルアニメーション用の処理を追加したスプライトのクラスです。 #============================================================================== class Sprite_CursorAnimation < Sprite #-------------------------------------------------------------------------- # ● オブジェクト初期化 # viewport : ビューポート #-------------------------------------------------------------------------- def initialize(viewport = nil) super(viewport) @duration = 0 @frame_count = 0 self.bitmap = Cache.system(KMS_CursorAnimation::ANIMATION_FILE) self.src_rect.width = bitmap.width / 8 self.src_rect.height = bitmap.height / ([KMS_CursorAnimation].max / 8 + 1) self.ox = src_rect.width / 2 self.oy = src_rect.height / 2 self.opacity = KMS_CursorAnimation::OPACITY self.blend_type = KMS_CursorAnimation::BLEND_TYPE end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super return unless visible @frame_count += 1 return if @frame_count % KMS_CursorAnimation::ANIMATION_WAIT != 0 @frame_count = 0 @duration -= 1 if @duration < 0 @duration = KMS_CursorAnimation::FRAME_COUNT - 1 end update_animation end #-------------------------------------------------------------------------- # ○ アニメーションを更新 #-------------------------------------------------------------------------- def update_animation self.src_rect.x = src_rect.width * (@duration % 8) self.src_rect.y = src_rect.height * (@duration / 8) end end #============================================================================== # □ Cursor_Animation #------------------------------------------------------------------------------ #  カーソル周りのアニメーションを扱うクラスです。 #============================================================================== class Cursor_Animation #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :visible #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize reset end #-------------------------------------------------------------------------- # ○ 破棄 #-------------------------------------------------------------------------- def dispose @target_sprite.dispose @viewport.dispose end #-------------------------------------------------------------------------- # ○ リセット #-------------------------------------------------------------------------- def reset @visible = false @viewport = Viewport.new(0, 0, 640, 480) @windows = [] @target_sprite = Sprite_CursorAnimation.new(@viewport) @active_window = nil @viewport.visible = false @viewport.z = 30000 end #-------------------------------------------------------------------------- # ○ ウィンドウ追加 #-------------------------------------------------------------------------- def add_window(*window) @windows |= window.find_all { |w| w.is_a?(Window_Selectable) || w.is_a?(Window_SaveFile) } @windows.flatten! end #-------------------------------------------------------------------------- # ○ ウィンドウ削除 #-------------------------------------------------------------------------- def remove_window(*window) @windows -= window end #-------------------------------------------------------------------------- # ○ フレーム更新 #-------------------------------------------------------------------------- def update @viewport.update @target_sprite.update # 座標調整 dest_x, dest_y = get_cursor_pos if @target_sprite.x != dest_x if (dest_x - @target_sprite.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt=':sriden' />.abs < 4 @target_sprite.x = dest_x else dist = (dest_x - @target_sprite.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt=':fache2' /> / 4 dist = (dist > 0 ? [dist, 4].max : [dist, -4].min) @target_sprite.x += dist end end if @target_sprite.y != dest_y if (dest_y - @target_sprite.y).abs < 4 @target_sprite.y = dest_y else dist = (dest_y - @target_sprite.y) / 4 dist = (dist > 0 ? [dist, 4].max : [dist, -4].min) @target_sprite.y += dist end end end #-------------------------------------------------------------------------- # ○ カーソル位置取得 # [x, y] の形で返す。 #-------------------------------------------------------------------------- def get_cursor_pos dx = dy = 0 # 可視状態のアクティブウィンドウを取得 unless window_active?(@active_window) @active_window = search_active_window end # アクティブウィンドウがなければ非表示 if @active_window.nil? || !KMS_Commands.cursor_animation_visible? @viewport.visible = false dx = Graphics.width / 2 dy = Graphics.height / 2 return [dx, dy] end @viewport.visible = @visible # カーソル位置を計算 rect = @active_window.cursor_rect dx = rect.x + 16 + KMS_CursorAnimation::POSITION_REV[0] dy = rect.y + 16 + KMS_CursorAnimation::POSITION_REV[1] vp = @active_window.viewport if vp != nil dx += vp.rect.x - vp.ox dy += vp.rect.y - vp.oy end dx += @active_window.x - @active_window.ox dy += @active_window.y - @active_window.oy case KMS_CursorAnimation::BASE_POSITION when 0 # 上 dy += @target_sprite.oy when 1 # 中央 dy += rect.height / 2 when 2 # 下 dy += rect.height - @target_sprite.oy end return [dx, dy] end #-------------------------------------------------------------------------- # ○ ウィンドウの可視・アクティブ状態判定 #-------------------------------------------------------------------------- def window_active?(window) return false if window.nil? return false if window.disposed? return false unless window.visible if window.is_a?(Window_Selectable) return window.active elsif window.is_a?(Window_SaveFile) return window.selected end return false end #-------------------------------------------------------------------------- # ○ アクティブウィンドウを探す #-------------------------------------------------------------------------- def search_active_window return @windows.find { |w| if !w.visible false elsif w.is_a?(Window_Selectable) w.active && w.index >= 0 elsif w.is_a?(Window_SaveFile) w.selected else false end } end end #============================================================================== # ■ Scene_Base #============================================================================== class Scene_Base #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias start_KMS_CursorAnimation start def start Window_Base.create_cursor_animation Window_Base.show_cursor_animation start_KMS_CursorAnimation end #-------------------------------------------------------------------------- # ● 終了前処理 #-------------------------------------------------------------------------- alias pre_terminate_KMS_CursorAnimation pre_terminate def pre_terminate Window_Base.dispose_cursor_animation pre_terminate_KMS_CursorAnimation end #-------------------------------------------------------------------------- # ● フレーム更新(基本) #-------------------------------------------------------------------------- alias update_basic_KMS_CursorAnimation update_basic def update_basic update_basic_KMS_CursorAnimation # カーソルアニメを更新 Window_Base.update_cursor_animation end end Incompatibilità: N/D Note dell'Autore: Termini e condizioni sul sito di tomy: http://ytomy.sakura.ne.jp/tkool/rpgtech/rules.html
  15. Nome Script: RVDATA2 Compressor Versione: Jet Autore/i: N/D Informazioni: Lo script permette di diminuire il peso di compressione dei file =) Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #=============================================================================== # RVDATA2 Compression # By Jet10985 (Jet) #=============================================================================== # This script will compress .rvdata2 files in your data directory, to save space. # This script also compresses new save files. # This script has: 0 customization options. #=============================================================================== # Overwritten Methods: # None #------------------------------------------------------------------------------- # Aliased methods: # Object: load_data, save_data # DataManager: load_game, save_game, load_header #=============================================================================== =begin This script will compress .rvdata2 everytime the game is started in TEST MODE. This is to make sure the files are of the latest version. -------------------------------------------------------------------------------- Before releasing your game, or releasing updates, you should run the game in test mode to update the compressed files. Before compiling your game, you should remove (DO NOT DELETE) the regular .rvdata2 files. -------------------------------------------------------------------------------- This script does not compress Scripts.rvdata2, do not remove it when you release your game. -------------------------------------------------------------------------------- This script will also compress save files, which means if you remove this script and then attempt to load a save game that was made while this script was active, it won't work. =end if $TEST array = Dir.entries("Data") array.each {|a| next if [".", ".."].include?(a) next unless !a.include?(".crvdata2") && !a.include?("Scripts.rvdata2") if File.directory?("Data/#{a}") Dir.entries("Data/#{a}").each {|v| next if [".", ".."].include?(v) array.push("#{a}/#{v}") } next end t = Zlib::Deflate.deflate(Marshal.dump(load_data("Data/#{a}")), 9) save_data(t, "Data/#{a.gsub(".rvdata2", "")}.crvdata2") } end class Object alias jet1828_load_data load_data def load_data(string) return $RGSS_SCRIPTS if string.include?("Scripts") string.gsub!(".rvdata2", ".crvdata2") f = Zlib::Inflate.inflate(jet1828_load_data(string)) return Marshal.load(f) end alias jet1838_save_data save_data def save_data(var, file) f = Zlib::Deflate.deflate(Marshal.dump(var), 9) jet1838_save_data(f, "#{file.gsub(".rvdata", "")}.crvdata") end end module JetSaveMarshal def self.dump(object, io) Marshal.dump(Zlib::Deflate.deflate(Marshal.dump(object), 9), io) end def self.load(io) return Marshal.load(Zlib::Inflate.inflate(Marshal.load(io))) end end class << DataManager alias jet2846_save_game save_game def save_game(*args, &block) old_marshal = Object.const_get(:Marshal) DataManager.const_set(:Marshal, JetSaveMarshal) ret = jet2846_save_game(*args, &block) DataManager.const_set(:Marshal, old_marshal) return ret end alias jet2846_load_game load_game def load_game(*args, &block) old_marshal = Object.const_get(:Marshal) DataManager.const_set(:Marshal, JetSaveMarshal) ret = jet2846_load_game(*args, &block) DataManager.const_set(:Marshal, old_marshal) return ret end alias jet2846_load_header load_header def load_header(*args, &block) old_marshal = Object.const_get(:Marshal) DataManager.const_set(:Marshal, JetSaveMarshal) ret = jet2846_load_header(*args, &block) DataManager.const_set(:Marshal, old_marshal) return ret end end
  16. Nome Script: Modifiche Opzioni Versione: N/D Autore/i: Jet Informazioni: Questo script consente di modificare alcune cose che non sono presenti nell'editor del Tool, come ad esempio il font, la dimensione delle finestre etc... Istruzioni: Inserite lo script sotto Material. Le istruzioni sono all'interno dello script. Script: #=============================================================================== # Miscellaneous Options # By Jet10985 (Jet) #=============================================================================== # This snippet will allow you to perform additional customization on some # of the "Finer Details" of your game, not available in the Editor. # This script has: 14 customization options. #=============================================================================== # Overwritten Methods: # None #------------------------------------------------------------------------------- # Aliased methods: # DataManager: make_filename, save_file_exists? # Game_System: japanese? #=============================================================================== module MiscellaneousOptions #============================================================================= # Font Options #============================================================================= #----------------------------------------------------------------------------- # This is what font the game will use by default # You may use a single font, or multiples in the form of an array # When using multiple fonts, the game will go through the array until # it finds a font the player has installed. #----------------------------------------------------------------------------- Font.default_name = ["Verdana", "Arial", "Courier New"] #----------------------------------------------------------------------------- # This is how big font is by default. #----------------------------------------------------------------------------- Font.default_size = 20 #----------------------------------------------------------------------------- # This determines if text is drawn in bold or not, by default. #----------------------------------------------------------------------------- Font.default_bold = false #----------------------------------------------------------------------------- # This determines if text is drawn in italic or not, by default. #----------------------------------------------------------------------------- Font.default_italic = false #----------------------------------------------------------------------------- # This determines if text is drawn with a shadow or not, by default. #----------------------------------------------------------------------------- Font.default_shadow = true #----------------------------------------------------------------------------- # This determines what color text if drawn in by default. #----------------------------------------------------------------------------- Font.default_color = Color.new(255, 255, 255) #----------------------------------------------------------------------------- # This determines if text is drawn with an outline #----------------------------------------------------------------------------- Font.default_outline = true #----------------------------------------------------------------------------- # This determines if what color text's outline will be drawn in #----------------------------------------------------------------------------- Font.default_out_color = Color.new(0, 0, 0, 128) #----------------------------------------------------------------------------- # Is the game in Japanese? #----------------------------------------------------------------------------- JAPANESE = false #============================================================================= # Windows Options #============================================================================= #----------------------------------------------------------------------------- # This determines if the Game's Process Priority will be heightened to "High" # at startup. This may, or may not, help some lag issues. #----------------------------------------------------------------------------- HIGH_PROCESS = true #----------------------------------------------------------------------------- # This determines if the Mouse Cursor should be hidden will inside the game. # This only applies if the mouse is inside the Game's window. #----------------------------------------------------------------------------- HIDE_MOUSE = true #----------------------------------------------------------------------------- # This determines if the window should be resizable. # By default, the game window is not resizable without script calls. # Note this does not increase the Game's graphic displaying abilities, # and will cause graphics stretching/shrinking. #----------------------------------------------------------------------------- ALLOW_RESIZING = false #============================================================================= # Game Options #============================================================================= #----------------------------------------------------------------------------- # This determines what size the game window should be. Max: 640x480 # Must be increments of 32 #----------------------------------------------------------------------------- Graphics.resize_screen(544, 416) #----------------------------------------------------------------------------- # This determines if Save Files will be saved into the AppData folder # in windows, instead of the directory of the game. # In Windows XP: C:Documents and SettingsUserNameApplication DataGAME_NAME # In Windows Vista/7: C:UsersUserNameAppDataRoamingGAME_NAME #----------------------------------------------------------------------------- SAVE_IN_APPDATA = true #----------------------------------------------------------------------------- # What is your game's name? This will only be used if you use SAVE_IN_APPDATA #----------------------------------------------------------------------------- GAME_NAME = "Jet Is Awesome" end #=============================================================================== # DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO. #=============================================================================== module MiscellaneousOptions def self.handle a = Win32API.new('kernel32', 'GetPrivateProfileString', 'pppplp', 'l') b = Win32API.new('user32', 'FindWindow', 'pp', 'i') a.call("Game", "Title", "", title = "\0" * 256, 256, ".//Game.ini") return b.call("RGSS Player", title.delete!("\0")) end end if MiscellaneousOptions::HIDE_MOUSE Win32API.new('user32', 'ShowCursor', 'i', 'i').call(0) end if MiscellaneousOptions::HIGH_PROCESS Win32API.new('kernel32','SetPriorityClass','pi','i').call(-1, 256) end if MiscellaneousOptions::ALLOW_RESIZING Win32API.new('user32', 'SetWindowLong', 'lll', 'l').call( MiscellaneousOptions.handle, -16, 0x10C70000|0x00080000) end if MiscellaneousOptions::SAVE_IN_APPDATA f = "#{ENV['APPDATA']}\#{MiscellaneousOptions::GAME_NAME}" Dir.mkdir(f) unless File.directory?(f) Dir.mkdir("#{f}\Saves") unless File.directory?("#{f}\Saves") end class << DataManager alias jet3849_save_file_exists save_file_exists? def save_file_exists?(*args, &block) if MiscellaneousOptions::SAVE_IN_APPDATA f = "#{ENV['APPDATA']}\#{MiscellaneousOptions::GAME_NAME}" Dir.entries("#{f}\Saves").size > 2 else jet3849_save_file_exists(*args, &block) end end alias jet2734_make_filename make_filename def make_filename(index) if MiscellaneousOptions::SAVE_IN_APPDATA f = "#{ENV['APPDATA']}\#{MiscellaneousOptions::GAME_NAME}" return "#{f}\Saves\#{sprintf("Save%02d.rvdata2", index + 1)}" else jet2734_make_filename(index) end end end class Game_System alias jet2734_japanese japanese? def japanese?(*args, &block) $data_system.japanese = MiscellaneousOptions::JAPANESE jet2734_japanese(*args, &block) end end
  17. Nome Script: Saltare il Titolo Versione: N/D Autore/i: JV Master Informazioni: Piccolo script che vi trasperterò alla prima mappa di gioco facendovi saltare il titolo. Utile se si vuole fare un titolo su mappa o creare prima una breve introduzione. Istruzioni: Inserite lo script sotto Material. Script: #============================================================================== # Skip Title Screen JV Master Script #------------------------------------------------------------------------------ # Skip Title Screen, going to first game map. #============================================================================== #============================================================================== # Scene Title #============================================================================== class Scene_Title < Scene_Base def start SceneManager.clear Graphics.freeze DataManager.setup_new_game $game_map.autoplay SceneManager.goto(Scene_Map) end def terminate SceneManager.snapshot_for_background Graphics.fadeout(Graphics.frame_rate) end end #==============================================================================
  18. Ally

    HUD KMS Minimap

    Nome Script: KMS Minimap Versione: N/D Autore/i: tomy, traduzione EN by Mr. Bubble Informazioni: Con lo script è possibile visualizzare l'HUD della mini mappa in cima allo schermo di gioco =) Screenshots: Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ ◆ Minimap - KMS_MiniMap ◆ VXAce ◆ #_/ ◇ Last update : 2012/01/08 (TOMY@Kamesoft) ◇ #_/ ◇ Website: http://ytomy.sakura.ne.jp/ #_/ ◇ Translated by Mr. Bubble #_/---------------------------------------------------------------------------- #_/ Adds a minimap display. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # This script is plug-and-play, but various customization options are available. # # To complete disable the minimap on a specific map, add [NOMAP] to the # beginning of map name. You can also use the tag <minimap hide> in the notebox. #---------------------------------------------------------------------------- # Map Notetags #---------------------------------------------------------------------------- # Map notetags are added to "Note" boxes. Right-click a map and select # Map Properties to find the "Note" box for maps. # # <minimap hide> # Completely disables the minimap on a specific map. [NOMAP] can also be # added to the beginning of map names for the same effect. #---------------------------------------------------------------------------- # Event Comment Tags #---------------------------------------------------------------------------- # Since events do not have noteboxes, comment tags are used instead. Open the # event, create a new event command, go to Tab 1, and click the "Comment..." # event command. A box will open up allowing you to enter tags. # # <minimap wall> # Add this tag to an event's comment to change its minimap color to the # same as an impassable tile. # # <minimap move> # Add this tag to an event's comment to have them blink in the minimap. # # <minimap obj n> # Add this tag to an event's comment to have them blink in the minimap with # a specified color where n is the OBJ value defined in OBJECT_COLOR which # is found in the customization module below. #---------------------------------------------------------------------------- # Usage Notes #---------------------------------------------------------------------------- # Impassable events will not appear as the correct color in the minimap. # This effect is intended. If you want an event to appear as impassable # on the minimap, add the tag <minimap wall> to an event's comment. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #============================================================================== # ★ BEGIN Setting ★ #============================================================================== module KMS_MiniMap # * Minimap Display Toggle Button # Set to nil to disable this function SWITCH_BUTTON = :Z # * Minimap Size and Position (x, y, width, height) MAP_RECT = Rect.new(364, 20, 160, 120) # * Minimap z-layer Priority # Glitchy if this value is set too high MAP_Z = 0 # * Minimap Grid Size # A size of 3 or higher is recommended GRID_SIZE = 5 # * Mini-Map Color Settings FOREGROUND_COLOR = Color.new(224, 224, 255, 160) # Foreground (passable) BACKGROUND_COLOR = Color.new( 0, 0, 160, 160) # Background (not passable) POSITION_COLOR = Color.new(255, 0, 0, 192) # Current Position color MOVE_EVENT_COLOR = Color.new(255, 160, 0, 192) # Moving event color VEHICLE_COLOR = Color.new( 96, 128, 0, 192) # Vehicle color # * Object Color Presets # Create custom color resets for events tagged with the corresponding label OBJECT_COLOR = [ Color.new( 0, 128, 0, 192), # OBJ 1 Color.new( 0, 160, 160, 192), # OBJ 2 Color.new(160, 0, 160, 192), # OBJ 3 ] # <- Do not delete this line # * Minimap Blinking Frequency # Values 5~8 are recommended BLINK_LEVEL = 7 # * Minimap Cache Setting # This script creates a cache for each map. If the number of cached # maps exceed CACHE_NUM, oldest cached maps are deleted. CACHE_NUM = 10 end #============================================================================== # ☆ END Setting ☆ #============================================================================== $imported = {} if $imported == nil $imported["KMS_MiniMap"] = true module KMS_MiniMap # ミニマップ非表示 REGEX_NO_MINIMAP_NOTE = /<(?:ミニマップ|MINIMAP)s*(?:非表示|HIDE)>/i REGEX_NO_MINIMAP_NAME = /[NOMAP]/i # 障害物 REGEX_WALL_EVENT = /<(?:ミニマップ|MINIMAP)s*(?:壁|障害物|WALL)>/i # 移動イベント REGEX_MOVE_EVENT = /<(?:ミニマップ|MINIMAP)s*(?:移動|MOVE)>/i # オブジェクト REGEX_OBJECT = /<(?:ミニマップ|MINIMAP)s+OBJ(?:ECT)?s*(d+)>/i end # ***************************************************************************** #============================================================================== # □ KMS_Commands #============================================================================== module KMS_Commands module_function #-------------------------------------------------------------------------- # ○ ミニマップを表示 #-------------------------------------------------------------------------- def self.show_minimap $game_system.minimap_show = true end #-------------------------------------------------------------------------- # ○ ミニマップを隠す #-------------------------------------------------------------------------- def self.hide_minimap $game_system.minimap_show = false end #-------------------------------------------------------------------------- # ○ ミニマップ表示状態の取得 #-------------------------------------------------------------------------- def self.minimap_showing? return $game_system.minimap_show end #-------------------------------------------------------------------------- # ○ ミニマップをリフレッシュ #-------------------------------------------------------------------------- def self.refresh_minimap return unless $scene.is_a?(Scene_Map) $game_map.refresh if $game_map.need_refresh $scene.refresh_minimap end #-------------------------------------------------------------------------- # ○ ミニマップのオブジェクトを更新 #-------------------------------------------------------------------------- def self.update_minimap_object return unless $scene.is_a?(Scene_Map) $game_map.refresh if $game_map.need_refresh $scene.update_minimap_object end end #============================================================================== # ■ Game_Interpreter #============================================================================== class Game_Interpreter # イベントコマンドから直接コマンドを叩けるようにする include KMS_Commands end #============================================================================== # ■ RPG::Map #============================================================================== class RPG::Map #-------------------------------------------------------------------------- # ○ ミニマップのキャッシュ生成 #-------------------------------------------------------------------------- def create_minimap_cache @__minimap_show = true note.each_line { |line| if line =~ KMS_MiniMap::REGEX_NO_MINIMAP_NOTE # マップ非表示 @__minimap_show = false end } end #-------------------------------------------------------------------------- # ○ ミニマップ表示 #-------------------------------------------------------------------------- def minimap_show? create_minimap_cache if @__minimap_show.nil? return @__minimap_show end end #============================================================================== # ■ RPG::MapInfo #============================================================================== class RPG::MapInfo #-------------------------------------------------------------------------- # ● マップ名取得 #-------------------------------------------------------------------------- def name return @name.gsub(/[.*]/) { "" } end #-------------------------------------------------------------------------- # ○ オリジナルマップ名取得 #-------------------------------------------------------------------------- def original_name return @name end #-------------------------------------------------------------------------- # ○ ミニマップのキャッシュ生成 #-------------------------------------------------------------------------- def create_minimap_cache @__minimap_show = !(@name =~ KMS_MiniMap::REGEX_NO_MINIMAP_NAME) end #-------------------------------------------------------------------------- # ○ ミニマップ表示 #-------------------------------------------------------------------------- def minimap_show? create_minimap_cache if @__minimap_show == nil return @__minimap_show end end #============================================================================== # ■ Game_System #============================================================================== class Game_System #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :minimap_show #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_KMS_MiniMap initialize def initialize initialize_KMS_MiniMap @minimap_show = true end end #============================================================================== # ■ Game_Map #============================================================================== class Game_Map #-------------------------------------------------------------------------- # ○ 定数 #-------------------------------------------------------------------------- MINIMAP_FADE_NONE = 0 # ミニマップ フェードなし MINIMAP_FADE_IN = 1 # ミニマップ フェードイン MINIMAP_FADE_OUT = 2 # ミニマップ フェードアウト #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :minimap_fade #-------------------------------------------------------------------------- # ○ ミニマップを表示するか #-------------------------------------------------------------------------- def minimap_show? return $data_mapinfos[map_id].minimap_show? && @map.minimap_show? end #-------------------------------------------------------------------------- # ○ ミニマップをフェードイン #-------------------------------------------------------------------------- def fadein_minimap @minimap_fade = MINIMAP_FADE_IN end #-------------------------------------------------------------------------- # ○ ミニマップをフェードアウト #-------------------------------------------------------------------------- def fadeout_minimap @minimap_fade = MINIMAP_FADE_OUT end end #============================================================================== # ■ Game_Event #============================================================================== class Game_Event < Game_Character #-------------------------------------------------------------------------- # ○ ミニマップ用のキャッシュを作成 #-------------------------------------------------------------------------- def __create_minimap_cache @__last_page = @page @__minimap_wall_event = false @__minimap_move_event = false @__minimap_object_type = -1 @page.list.each { |cmd| # 注釈以外に到達したら離脱 break unless [108, 408].include?(cmd.code) # 正規表現判定 case cmd.parameters[0] when KMS_MiniMap::REGEX_WALL_EVENT @__minimap_wall_event = true when KMS_MiniMap::REGEX_MOVE_EVENT @__minimap_move_event = true when KMS_MiniMap::REGEX_OBJECT @__minimap_object_type = $1.to_i end } end private :__create_minimap_cache #-------------------------------------------------------------------------- # ○ グラフィックがあるか #-------------------------------------------------------------------------- def graphic_exist? return (character_name != "" || tile_id > 0) end #-------------------------------------------------------------------------- # ○ 障害物か #-------------------------------------------------------------------------- def is_minimap_wall_event? if @__minimap_wall_event.nil? || @__last_page != @page __create_minimap_cache end return @__minimap_wall_event end #-------------------------------------------------------------------------- # ○ 移動イベントか #-------------------------------------------------------------------------- def is_minimap_move_event? if @__minimap_move_event.nil? || @__last_page != @page __create_minimap_cache end return @__minimap_move_event end #-------------------------------------------------------------------------- # ○ ミニマップオブジェクトか #-------------------------------------------------------------------------- def is_minimap_object? if @__minimap_object_type.nil? || @__last_page != @page __create_minimap_cache end return @__minimap_object_type > 0 end #-------------------------------------------------------------------------- # ○ ミニマップオブジェクトタイプ #-------------------------------------------------------------------------- def minimap_object_type if @__minimap_object_type.nil? || @__last_page != @page __create_minimap_cache end return @__minimap_object_type end end #============================================================================== # □ Game_MiniMap #------------------------------------------------------------------------------ # ミニマップを扱うクラスです。 #============================================================================== class Game_MiniMap #-------------------------------------------------------------------------- # ○ 構造体 #-------------------------------------------------------------------------- Point = Struct.new(:x, :y) Size = Struct.new(:width, :height) PassageCache = Struct.new(:map_id, :table, :scan_table) #-------------------------------------------------------------------------- # ○ クラス変数 #-------------------------------------------------------------------------- @@passage_cache = [] # 通行フラグテーブルキャッシュ #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize(tilemap) @map_rect = KMS_MiniMap::MAP_RECT @grid_size = [KMS_MiniMap].max @x = 0 @y = 0 @grid_num = Point.new( (@map_rect.width + @grid_size - 1) / @grid_size, (@map_rect.height + @grid_size - 1) / @grid_size ) @draw_grid_num = Point.new(@grid_num.x + 2, @grid_num.y + 2) @draw_range_begin = Point.new(0, 0) @draw_range_end = Point.new(0, 0) @tilemap = tilemap @last_x = $game_player.x @last_y = $game_player.y @showing = false @hiding = false create_sprites refresh end #-------------------------------------------------------------------------- # ○ スプライト作成 #-------------------------------------------------------------------------- def create_sprites @viewport = Viewport.new(@map_rect) @viewport.z = KMS_MiniMap::MAP_Z # ビットマップサイズ計算 @bmp_size = Size.new( (@grid_num.x + 2) * @grid_size, (@grid_num.y + 2) * @grid_size ) @buf_bitmap = Bitmap.new(@bmp_size.width, @bmp_size.height) # マップ用スプライト作成 @map_sprite = Sprite.new(@viewport) @map_sprite.x = -@grid_size @map_sprite.y = -@grid_size @map_sprite.z = 0 @map_sprite.bitmap = Bitmap.new(@bmp_size.width, @bmp_size.height) # オブジェクト用スプライト作成 @object_sprite = Sprite_MiniMapIcon.new(@viewport) @object_sprite.x = -@grid_size @object_sprite.y = -@grid_size @object_sprite.z = 1 @object_sprite.bitmap = Bitmap.new(@bmp_size.width, @bmp_size.height) # 現在位置スプライト作成 @position_sprite = Sprite_MiniMapIcon.new @position_sprite.x = @map_rect.x + @grid_num.x / 2 * @grid_size @position_sprite.y = @map_rect.y + @grid_num.y / 2 * @grid_size @position_sprite.z = @viewport.z + 2 bitmap = Bitmap.new(@grid_size, @grid_size) bitmap.fill_rect(bitmap.rect, KMS_MiniMap::POSITION_COLOR) @position_sprite.bitmap = bitmap end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- def dispose @buf_bitmap.dispose @map_sprite.bitmap.dispose @map_sprite.dispose @object_sprite.bitmap.dispose @object_sprite.dispose @position_sprite.bitmap.dispose @position_sprite.dispose @viewport.dispose end #-------------------------------------------------------------------------- # ○ 可視状態取得 #-------------------------------------------------------------------------- def visible return @map_sprite.visible end #-------------------------------------------------------------------------- # ○ 可視状態設定 #-------------------------------------------------------------------------- def visible=(value) @viewport.visible = value @map_sprite.visible = value @object_sprite.visible = value @position_sprite.visible = value end #-------------------------------------------------------------------------- # ○ 不透明度取得 #-------------------------------------------------------------------------- def opacity return @map_sprite.opacity end #-------------------------------------------------------------------------- # ○ 不透明度設定 #-------------------------------------------------------------------------- def opacity=(value) @map_sprite.opacity = value @object_sprite.opacity = value @position_sprite.opacity = value end #-------------------------------------------------------------------------- # ○ リフレッシュ #-------------------------------------------------------------------------- def refresh update_draw_range update_passage_table update_object_list update_position draw_map draw_object Graphics.frame_reset end #-------------------------------------------------------------------------- # ○ フェードイン #-------------------------------------------------------------------------- def fadein @showing = true @hiding = false end #-------------------------------------------------------------------------- # ○ フェードアウト #-------------------------------------------------------------------------- def fadeout @showing = false @hiding = true end #-------------------------------------------------------------------------- # ○ キー入力更新 #-------------------------------------------------------------------------- def update_input return if KMS_MiniMap::SWITCH_BUTTON.nil? if Input.trigger?(KMS_MiniMap::SWITCH_BUTTON) if opacity < 255 && !@showing fadein elsif opacity > 0 && !@hiding fadeout end end end #-------------------------------------------------------------------------- # ○ 描画範囲更新 #-------------------------------------------------------------------------- def update_draw_range range = [] (2).times { |i| range[i] = @draw_grid_num[i] / 2 } @draw_range_begin.x = $game_player.x - range[0] @draw_range_begin.y = $game_player.y - range[1] @draw_range_end.x = $game_player.x + range[0] @draw_range_end.y = $game_player.y + range[1] end #-------------------------------------------------------------------------- # ○ 通行可否テーブル更新 #-------------------------------------------------------------------------- def update_passage_table cache = get_passage_table_cache @passage_table = cache.table @passage_scan_table = cache.scan_table update_around_passage_table end #-------------------------------------------------------------------------- # ○ 通行可否テーブルのキャッシュを取得 #-------------------------------------------------------------------------- def get_passage_table_cache map_id = $game_map.map_id cache = @@passage_cache.find { |c| c.map_id == map_id } # キャッシュミスしたら新規作成 if cache == nil cache = PassageCache.new(map_id) cache.table = Table.new($game_map.width, $game_map.height) cache.scan_table = Table.new( ($game_map.width + @draw_grid_num.x - 1) / @draw_grid_num.x, ($game_map.height + @draw_grid_num.y - 1) / @draw_grid_num.y ) end # 直近のキャッシュは先頭に移動し、古いキャッシュは削除 @@passage_cache.unshift(cache) @@passage_cache.delete_at(KMS_MiniMap::CACHE_NUM) return cache end #-------------------------------------------------------------------------- # ○ 通行可否テーブルのキャッシュをクリア #-------------------------------------------------------------------------- def clear_passage_table_cache return if @passage_scan_table == nil table = @passage_scan_table @passage_scan_table = Table.new(table.xsize, table.ysize) end #-------------------------------------------------------------------------- # ○ 通行可否テーブルの探索 # x, y : 探索位置 #-------------------------------------------------------------------------- def scan_passage(x, y) dx = x / @draw_grid_num.x dy = y / @draw_grid_num.y # 探索済み return if @passage_scan_table[dx, dy] == 1 # マップ範囲外 return unless dx.between?(0, @passage_scan_table.xsize - 1) return unless dy.between?(0, @passage_scan_table.ysize - 1) rx = (dx * @draw_grid_num.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' />...((dx + 1) * @draw_grid_num.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> ry = (dy * @draw_grid_num.y)...((dy + 1) * @draw_grid_num.y) mw = $game_map.width - 1 mh = $game_map.height - 1 # 探索範囲内の通行テーブルを生成 rx.each { |x| next unless x.between?(0, mw) ry.each { |y| next unless y.between?(0, mh) # 通行方向フラグ作成 # (↓、←、→、↑ の順に 1, 2, 4, 8 が対応) flag = 0 [2, 4, 6, 8].each{ |d| flag |= 1 << (d / 2 - 1) if $game_map.passable?(x, y, d) } @passage_table[x, y] = flag } } @passage_scan_table[dx, dy] = 1 end #-------------------------------------------------------------------------- # ○ 周辺の通行可否テーブル更新 #-------------------------------------------------------------------------- def update_around_passage_table gx = @draw_grid_num.x gy = @draw_grid_num.y dx = $game_player.x - gx / 2 dy = $game_player.y - gy / 2 scan_passage(dx, dy) scan_passage(dx + gx, dy) scan_passage(dx, dy + gy) scan_passage(dx + gx, dy + gy) end #-------------------------------------------------------------------------- # ○ オブジェクト一覧更新 #-------------------------------------------------------------------------- def update_object_list events = $game_map.events.values # WALL @wall_events = events.find_all { |e| e.is_minimap_wall_event? } # MOVE @move_events = events.find_all { |e| e.is_minimap_move_event? } # OBJ @object_list = events.find_all { |e| e.is_minimap_object? } end #-------------------------------------------------------------------------- # ○ 位置更新 #-------------------------------------------------------------------------- def update_position # 移動量算出 pt = Point.new($game_player.x, $game_player.y) ox = ($game_player.real_x - pt.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> * @grid_size oy = ($game_player.real_y - pt.y) * @grid_size @viewport.ox = ox @viewport.oy = oy # 移動していたらマップ再描画 if pt.x != @last_x || pt.y != @last_y draw_map @last_x = pt.x @last_y = pt.y end end #-------------------------------------------------------------------------- # ○ 描画範囲内判定 #-------------------------------------------------------------------------- def in_draw_range?(x, y) rb = @draw_range_begin re = @draw_range_end return (x.between?(rb.x, re.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> && y.between?(rb.y, re.y)) end #-------------------------------------------------------------------------- # ○ マップ範囲内判定 #-------------------------------------------------------------------------- def in_map_range?(x, y) mw = $game_map.width mh = $game_map.height return (x.between?(0, mw - 1) && y.between?(0, mh - 1)) end #-------------------------------------------------------------------------- # ○ マップ描画 #-------------------------------------------------------------------------- def draw_map update_around_passage_table bitmap = @map_sprite.bitmap bitmap.fill_rect(bitmap.rect, KMS_MiniMap::BACKGROUND_COLOR) draw_map_foreground(bitmap) draw_map_move_event(bitmap) end #-------------------------------------------------------------------------- # ○ 通行可能領域の描画 #-------------------------------------------------------------------------- def draw_map_foreground(bitmap) range_x = (@draw_range_begin.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' />..(@draw_range_end.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> range_y = (@draw_range_begin.y)..(@draw_range_end.y) map_w = $game_map.width - 1 map_h = $game_map.height - 1 rect = Rect.new(0, 0, @grid_size, @grid_size) range_x.each { |x| next unless x.between?(0, map_w) range_y.each { |y| next unless y.between?(0, map_h) next if @passage_table[x, y] == 0 next if @wall_events.find { |e| e.x == x && e.y == y } # 壁 # グリッド描画サイズ算出 rect.set(0, 0, @grid_size, @grid_size) rect.x = (x - @draw_range_begin.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> * @grid_size rect.y = (y - @draw_range_begin.y) * @grid_size flag = @passage_table[x, y] if flag & 0x01 == 0 # 下通行不能 rect.height -= 1 end if flag & 0x02 == 0 # 左通行不能 rect.x += 1 rect.width -= 1 end if flag & 0x04 == 0 # 右通行不能 rect.width -= 1 end if flag & 0x08 == 0 # 上通行不能 rect.y += 1 rect.height -= 1 end bitmap.fill_rect(rect, KMS_MiniMap::FOREGROUND_COLOR) } } end #-------------------------------------------------------------------------- # ○ 移動イベントの描画 #-------------------------------------------------------------------------- def draw_map_move_event(bitmap) rect = Rect.new(0, 0, @grid_size, @grid_size) @move_events.each { |e| rect.x = (e.x - @draw_range_begin.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> * @grid_size rect.y = (e.y - @draw_range_begin.y) * @grid_size bitmap.fill_rect(rect, KMS_MiniMap::MOVE_EVENT_COLOR) } end #-------------------------------------------------------------------------- # ○ アニメーション更新 #-------------------------------------------------------------------------- def update_animation if @showing # フェードイン self.opacity += 16 if opacity == 255 @showing = false end elsif @hiding # フェードアウト self.opacity -= 16 if opacity == 0 @hiding = false self.visible = false end end end #-------------------------------------------------------------------------- # ○ オブジェクト描画 #-------------------------------------------------------------------------- def draw_object # 下準備 bitmap = @object_sprite.bitmap bitmap.clear rect = Rect.new(0, 0, @grid_size, @grid_size) # オブジェクト描画 @object_list.each { |obj| next unless in_draw_range?(obj.x, obj.y) color = KMS_MiniMap::OBJECT_COLOR[obj.minimap_object_type - 1] next if color.nil? rect.x = (obj.real_x - @draw_range_begin.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> * @grid_size rect.y = (obj.real_y - @draw_range_begin.y) * @grid_size bitmap.fill_rect(rect, color) } # 乗り物描画 $game_map.vehicles.each { |vehicle| next if vehicle.transparent rect.x = (vehicle.real_x - @draw_range_begin.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> * @grid_size rect.y = (vehicle.real_y - @draw_range_begin.y) * @grid_size bitmap.fill_rect(rect, KMS_MiniMap::VEHICLE_COLOR) } end #-------------------------------------------------------------------------- # ○ 更新 #-------------------------------------------------------------------------- def update update_input return if !visible || opacity == 0 update_draw_range update_position update_animation draw_object @map_sprite.update @object_sprite.update @position_sprite.update end end #============================================================================== # □ Sprite_MiniMapIcon #------------------------------------------------------------------------------ # ミニマップ用アイコンのクラスです。 #============================================================================== class Sprite_MiniMapIcon < Sprite DURATION_MAX = 60 #-------------------------------------------------------------------------- # ● オブジェクト初期化 # viewport : ビューポート #-------------------------------------------------------------------------- def initialize(viewport = nil) super(viewport) @duration = DURATION_MAX / 2 end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super @duration += 1 if @duration == DURATION_MAX @duration = 0 end update_effect end #-------------------------------------------------------------------------- # ○ エフェクトの更新 #-------------------------------------------------------------------------- def update_effect self.color.set(255, 255, 255, (@duration - DURATION_MAX / 2).abs * KMS_MiniMap::BLINK_LEVEL ) end end #============================================================================== # ■ Spriteset_Map #============================================================================== class Spriteset_Map attr_reader :minimap #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_KMS_MiniMap initialize def initialize initialize_KMS_MiniMap create_minimap end #-------------------------------------------------------------------------- # ○ ミニマップの作成 #-------------------------------------------------------------------------- def create_minimap return unless $game_map.minimap_show? @minimap = Game_MiniMap.new(@tilemap) @minimap.visible = $game_system.minimap_show end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- alias dispose_KMS_MiniMap dispose def dispose dispose_KMS_MiniMap dispose_minimap end #-------------------------------------------------------------------------- # ○ ミニマップの解放 #-------------------------------------------------------------------------- def dispose_minimap @minimap.dispose unless @minimap.nil? end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias update_KMS_MiniMap update def update update_KMS_MiniMap update_minimap end #-------------------------------------------------------------------------- # ○ ミニマップ更新 #-------------------------------------------------------------------------- def update_minimap return if @minimap.nil? # 表示切替 @minimap.visible = $game_system.minimap_show # フェード判定 case $game_map.minimap_fade when Game_Map::MINIMAP_FADE_IN @minimap.fadein $game_map.minimap_fade = Game_Map::MINIMAP_FADE_NONE when Game_Map::MINIMAP_FADE_OUT @minimap.fadeout $game_map.minimap_fade = Game_Map::MINIMAP_FADE_NONE end @minimap.update end #-------------------------------------------------------------------------- # ○ ミニマップ全体をリフレッシュ #-------------------------------------------------------------------------- def refresh_minimap return if @minimap.nil? @minimap.clear_passage_table_cache @minimap.refresh end #-------------------------------------------------------------------------- # ○ ミニマップのオブジェクトを更新 #-------------------------------------------------------------------------- def update_minimap_object @minimap.update_object_list unless @minimap.nil? end end #============================================================================== # ■ Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # ● 場所移動後の処理 #-------------------------------------------------------------------------- alias post_transfer_KMS_MiniMap post_transfer def post_transfer refresh_minimap post_transfer_KMS_MiniMap end #-------------------------------------------------------------------------- # ○ ミニマップ全体をリフレッシュ #-------------------------------------------------------------------------- def refresh_minimap @spriteset.refresh_minimap end #-------------------------------------------------------------------------- # ○ ミニマップのオブジェクトを更新 #-------------------------------------------------------------------------- def update_minimap_object @spriteset.update_minimap_object end end Note dell'Autore: Termini e condizioni d'uso sullo script, nel sito dell'autore: http://ytomy.sakura.ne.jp/tkool/rpgtech/rules.html]http://ytomy.sakura....tech/rules.html
  19. Nome Script: ATB/Stamina Battle System Standard Versione: 1.1 Autore/i: Fomar0153 Informazioni: Script che aggiunge la barra ATB al sistema di battaglia di default di RMVX Ace. Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: =begin Customisable ATB/Stamina Based Battle System Script by Fomar0153 Version 1.1 ---------------------- Notes ---------------------- No requirements Customises the battle system to be similar to ATB or Stamina based battle systems. ---------------------- Instructions ---------------------- Edit variables in CBS to suit your needs. The guard status should be set to 2~2 turns. ---------------------- Change Log ---------------------- 1.0 -> 1.1 Restored turn functionality and a glitch related to message windows ---------------------- Known bugs ---------------------- None =end module CBS MAX_STAMINA = 1000 RESET_STAMINA = true SAMINA_GAUGE_NAME = "ATB" ESCAPE_COST = 500 # If reset stamina is set to true then all characters # will start with a random amount of stamina capped at # the percentage you set. # If reset stamina is set to false then this just # affects enemies. STAMINA_START_PERCENT = 20 # Default skill cost # If you want to customise skill costs do it like this # SKILL_COST[skill_id] = cost SKILL_COST = [] SKILL_COST[0] = 1000 # Attack SKILL_COST[1] = 1000 # Guard SKILL_COST[2] = 500 ITEM_COST = 1000 #-------------------------------------------------------------------------- # ● New Method stamina_gain #-------------------------------------------------------------------------- def self.stamina_gain(battler) return 2 + [0, battler.agi / 10].max end #-------------------------------------------------------------------------- # ● New Method stamina_start #-------------------------------------------------------------------------- def self.stamina_start(battler) battler.stamina = rand(MAX_STAMINA * STAMINA_START_PERCENT / 100) end end class Game_BattlerBase #-------------------------------------------------------------------------- # ● New attr_accessor #-------------------------------------------------------------------------- attr_accessor :stamina #-------------------------------------------------------------------------- # ● Aliases initialize #-------------------------------------------------------------------------- alias cbs_initialize initialize def initialize cbs_initialize @stamina = 0 end #-------------------------------------------------------------------------- # ● New Method stamina_rate #-------------------------------------------------------------------------- def stamina_rate @stamina.to_f / CBS::MAX_STAMINA end #-------------------------------------------------------------------------- # ● New Method stamina_rate #-------------------------------------------------------------------------- def stamina_gain return if not movable? @stamina = [CBS].min end end #-------------------------------------------------------------------------- # ● New Class Window_PartyHorzCommand #-------------------------------------------------------------------------- class Window_PartyHorzCommand < Window_HorzCommand #-------------------------------------------------------------------------- # ● New Method initialize #-------------------------------------------------------------------------- def initialize super(0, 0) self.openness = 0 deactivate end #-------------------------------------------------------------------------- # ● New Method window_width #-------------------------------------------------------------------------- def window_width return Graphics.width end #-------------------------------------------------------------------------- # ● New Method visible_line_number #-------------------------------------------------------------------------- def visible_line_number return 1 end #-------------------------------------------------------------------------- # ● New Method make_command_list #-------------------------------------------------------------------------- def make_command_list add_command(Vocab::fight, :fight) add_command(Vocab::escape, :escape, BattleManager.can_escape?) end #-------------------------------------------------------------------------- # ● New Method setup #-------------------------------------------------------------------------- def setup clear_command_list make_command_list refresh select(0) activate open end end class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● Rewrote update #-------------------------------------------------------------------------- def update super if BattleManager.in_turn? and !inputting? process_stamina process_event process_action end BattleManager.judge_win_loss end #-------------------------------------------------------------------------- # ● New Method inputting? #-------------------------------------------------------------------------- def inputting? return @actor_command_window.active || @skill_window.active || @item_window.active || @actor_window.active || @enemy_window.active end #-------------------------------------------------------------------------- # ● New Method process_stamina #-------------------------------------------------------------------------- def process_stamina @actor_command_window.close return if @subject all_battle_members.each do |battler| battler.stamina_gain end @status_window.refresh if @status_window.close? @status_window.open end if BattleManager.escaping? $game_party.battle_members.each do |battler| if battler.stamina < CBS::MAX_STAMINA $game_troop.members.each do |enemy| if enemy.stamina == CBS::MAX_STAMINA enemy.make_actions @subject = enemy end end return end end unless BattleManager.process_escape $game_party.battle_members.each do |actor| actor.stamina -= CBS::ESCAPE_COST end end end all_battle_members.each do |battler| if battler.stamina == CBS::MAX_STAMINA battler.make_actions @subject = battler if @subject.inputable? and battler.is_a?(Game_Actor) @actor_command_window.setup(@subject) BattleManager.set_actor(battler) end return end end end #-------------------------------------------------------------------------- # ● Rewrote create_info_viewport #-------------------------------------------------------------------------- def create_info_viewport @info_viewport = Viewport.new @info_viewport.rect.y = Graphics.height - @status_window.height - 48 @info_viewport.rect.height = @status_window.height + 48 @info_viewport.z = 100 @info_viewport.ox = 0 @status_window.viewport = @info_viewport end #-------------------------------------------------------------------------- # ● Rewrote create_party_command_window #-------------------------------------------------------------------------- def create_party_command_window @party_command_window = Window_PartyHorzCommand.new @party_command_window.viewport = @info_viewport @party_command_window.set_handler(:fight, method(:command_fight)) @party_command_window.set_handler(:escape, method(:command_escape)) @party_command_window.unselect end #-------------------------------------------------------------------------- # ● Rewrote create_status_window #-------------------------------------------------------------------------- def create_status_window @status_window = Window_BattleStatus.new end #-------------------------------------------------------------------------- # ● Rewrote create_actor_command_window #-------------------------------------------------------------------------- def create_actor_command_window @actor_command_window = Window_ActorCommand.new @actor_command_window.viewport = @info_viewport @actor_command_window.set_handler(:attack, method(:command_attack)) @actor_command_window.set_handler(:skill, method(:command_skill)) @actor_command_window.set_handler(:guard, method(:command_guard)) @actor_command_window.set_handler(:item, method(:command_item)) @actor_command_window.set_handler(:cancel, method(:prior_command)) @actor_command_window.x = Graphics.width - 128 @actor_command_window.y = 48 end #-------------------------------------------------------------------------- # ● Destroyed update_info_viewport #-------------------------------------------------------------------------- def update_info_viewport # no thank you end #-------------------------------------------------------------------------- # ● Rewrote start_party_command_selection #-------------------------------------------------------------------------- def start_party_command_selection unless scene_changing? refresh_status @status_window.unselect @status_window.open if BattleManager.input_start @actor_command_window.close @party_command_window.setup else @party_command_window.deactivate turn_start end end end #-------------------------------------------------------------------------- # ● Rewrote start_actor_command_selection #-------------------------------------------------------------------------- def start_actor_command_selection @party_command_window.close BattleManager.set_escaping(false) turn_start end #-------------------------------------------------------------------------- # ● Rewrote prior_command #-------------------------------------------------------------------------- def prior_command start_party_command_selection end #-------------------------------------------------------------------------- # ● Rewrote process_action #-------------------------------------------------------------------------- def process_action return if scene_changing? if !@subject || [email protected]_action @subject = BattleManager.next_subject end if Input.trigger?(: and (@subject == nil) start_party_command_selection end return unless @subject if @subject.current_action @subject.current_action.prepare if @subject.current_action.valid? @status_window.open execute_action end @subject.remove_current_action refresh_status @log_window.display_auto_affected_status(@subject) @log_window.wait_and_clear end process_action_end unless @subject.current_action end #-------------------------------------------------------------------------- # ● Aliases use_item #-------------------------------------------------------------------------- alias cbs_use_item use_item def use_item cbs_use_item @subject.on_turn_end end #-------------------------------------------------------------------------- # ● Rewrote turn_end #-------------------------------------------------------------------------- def turn_end all_battle_members.each do |battler| battler.on_turn_end refresh_status @log_window.display_auto_affected_status(battler) @log_window.wait_and_clear end BattleManager.turn_end process_event start_party_command_selection end #-------------------------------------------------------------------------- # ● Rewrote command_fight #-------------------------------------------------------------------------- def command_fight BattleManager.next_command start_actor_command_selection end #-------------------------------------------------------------------------- # ● Rewrote command_escape #-------------------------------------------------------------------------- def command_escape @party_command_window.close BattleManager.set_escaping(true) turn_start end #-------------------------------------------------------------------------- # ● Destroyed next_command #-------------------------------------------------------------------------- def next_command # no thank you end end class Window_BattleStatus < Window_Selectable #-------------------------------------------------------------------------- # ● Rewrote initialize #-------------------------------------------------------------------------- def initialize super(0, 48, Graphics.width, window_height) refresh self.openness = 0 end #-------------------------------------------------------------------------- # ● Rewrote window_width #-------------------------------------------------------------------------- def window_width Graphics.width - 128 end #-------------------------------------------------------------------------- # ● Rewrote refresh #-------------------------------------------------------------------------- def refresh contents.clear draw_all_items end #-------------------------------------------------------------------------- # ● Rewrote draw_item #-------------------------------------------------------------------------- def draw_item(index) actor = $game_party.battle_members[index] draw_basic_area(basic_area_rect(index), actor) draw_gauge_area(gauge_area_rect(index), actor) end #-------------------------------------------------------------------------- # ● Rewrote basic_area_rect #-------------------------------------------------------------------------- def basic_area_rect(index) rect = item_rect_for_text(index) rect.width -= gauge_area_width + 10 rect end #-------------------------------------------------------------------------- # ● Rewrote gauge_area_rect #-------------------------------------------------------------------------- def gauge_area_rect(index) rect = item_rect_for_text(index) rect.x += rect.width - gauge_area_width #- 128 #### rect.width = gauge_area_width rect end #-------------------------------------------------------------------------- # ● Rewrote gauge_area_width #-------------------------------------------------------------------------- def gauge_area_width return 220 + 128 end #-------------------------------------------------------------------------- # ● Rewrote draw_gauge_area_with_tp #-------------------------------------------------------------------------- def draw_gauge_area_with_tp(rect, actor) draw_actor_hp(actor, rect.x + 0, rect.y, 72) draw_actor_mp(actor, rect.x + 82, rect.y, 64) draw_actor_tp(actor, rect.x + 156, rect.y, 64) draw_actor_stamina(actor, rect.x + 240, rect.y, 108) end #-------------------------------------------------------------------------- # ● Rewrote draw_gauge_area_without_tp #-------------------------------------------------------------------------- def draw_gauge_area_without_tp(rect, actor) draw_actor_hp(actor, rect.x + 0, rect.y, 134) draw_actor_mp(actor, rect.x + 144, rect.y, 76) # draw_actor_stamina(actor, rect.x + 240, rect.y, 108) end #-------------------------------------------------------------------------- # ● New Method draw_actor_stamina #-------------------------------------------------------------------------- def draw_actor_stamina(actor, x, y, width = 124) draw_gauge(x, y, width, actor.stamina_rate, stamina_gauge_color2, stamina_gauge_color) change_color(system_color) draw_text(x, y, 30, line_height, CBS::SAMINA_GAUGE_NAME) end #-------------------------------------------------------------------------- # ● New Colour Definitions #-------------------------------------------------------------------------- def stamina_gauge_color; text_color(31); end; def stamina_gauge_color2; text_color(32); end; end class Window_BattleSkill < Window_SkillList #-------------------------------------------------------------------------- # ● Rewrote initialize #-------------------------------------------------------------------------- def initialize(help_window, info_viewport) y = help_window.height super(0, y, Graphics.width, info_viewport.rect.y - y + 48) self.visible = false @help_window = help_window @info_viewport = info_viewport end end class Window_BattleActor < Window_BattleStatus #-------------------------------------------------------------------------- # ● Rewrote initialize #-------------------------------------------------------------------------- def initialize(info_viewport) super() self.y = info_viewport.rect.y + 48 self.visible = false self.openness = 255 @info_viewport = info_viewport end end class Window_BattleEnemy < Window_Selectable # ● Rewrote initialize #-------------------------------------------------------------------------- def initialize(info_viewport) super(0, info_viewport.rect.y + 48, window_width, fitting_height(4)) refresh self.visible = false @info_viewport = info_viewport end end class Window_BattleItem < Window_ItemList #-------------------------------------------------------------------------- # ● Rewrote initialize #-------------------------------------------------------------------------- def initialize(help_window, info_viewport) y = help_window.height super(0, y, Graphics.width, info_viewport.rect.y - y + 48) self.visible = false @help_window = help_window @info_viewport = info_viewport end end module BattleManager #-------------------------------------------------------------------------- # ● Rewrote setup #-------------------------------------------------------------------------- def self.setup(troop_id, can_escape = true, can_lose = false) init_members $game_troop.setup(troop_id) @can_escape = can_escape @can_lose = can_lose make_escape_ratio @escaping = false @turn_counter = 0 @actions_per_turn = $game_party.members.size + $game_troop.members.size ($game_party.members + $game_troop.members).each do |battler| if battler.is_a?(Game_Enemy) or CBS::RESET_STAMINA CBS.stamina_start(battler) end end end #-------------------------------------------------------------------------- # ● New Method set_escaping #-------------------------------------------------------------------------- def self.set_escaping(escaping) @escaping = escaping end #-------------------------------------------------------------------------- # ● New Method escaping? #-------------------------------------------------------------------------- def self.escaping? return @escaping end #-------------------------------------------------------------------------- # ● Rewrote turn_start #-------------------------------------------------------------------------- def self.turn_start @phase = :turn clear_actor $game_troop.increase_turn end #-------------------------------------------------------------------------- # ● New Method set_actor #-------------------------------------------------------------------------- def self.set_actor(actor) @actor_index = actor.index end #-------------------------------------------------------------------------- # ● New Increase action counter #-------------------------------------------------------------------------- def self.add_action @turn_counter += 1 if @turn_counter == @actions_per_turn $game_troop.increase_turn @turn_counter = 0 end end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ● Rewrote on_turn_end #-------------------------------------------------------------------------- def on_turn_end @result.clear regenerate_all update_state_turns update_buff_turns remove_states_auto(2) if self.actor? @stamina -= input.stamina_cost else @stamina -= @actions[0].stamina_cost end BattleManager.add_action end end class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● Rewrote input #-------------------------------------------------------------------------- def input if @actions[@action_input_index] == nil @actions[@action_input_index] = Game_Action.new(self) end return @actions[@action_input_index] end end class Game_Action #-------------------------------------------------------------------------- # ● New Method stamina_cost #-------------------------------------------------------------------------- def stamina_cost if @item.is_skill? return CBS::SKILL_COST[item.id] if CBS::SKILL_COST[item.id] return CBS::SKILL_COST[0] end return CBS::ITEM_COST if @item.is_item? return CBS::MAX_STAMINA end end Demo: http://www.cobbtocs.co.uk/fomar0153/demos/CBS%20Demo.zip
  20. Nome Script: Avviso HP Bassi Versione: N/D Autore/i: JohnBolton Informazioni: Se si hanno HP bassi, si riceveranno dei flash sullo schermo e un effetto sonoro come avviso. Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #============================================================================== # ** Life's danger #------------------------------------------------------------------------------ # Autor: JohnBolton # Agradecimentos: Gab! #============================================================================== # Dá uma aviso de hp baixo, este aviso é dado por um flash na tela # e por um efeito sonoro. #============================================================================== module JohnBolton #-------------------------------------------------------------------------- # * Configurações #-------------------------------------------------------------------------- #Efeito Sonoro ativado? (On - true, Off - false) Sound_Effect_enable = true #Flash na tela ativado? (On - true, Off - false) Flash_Effect_enable = true #Porcentagem do hp para que o aviso seja dado HP_Porc = 15 #Som que será ativado. SE_Danger = "Stare" #Tempo entre um aviso e outro Time_Danger = 55 #Opções do flash Flash = Color.new(255,30,1,130) #-------------------------------------------------------------------------- # * Fim das Configurações #-------------------------------------------------------------------------- end class Game_Player < Game_Character alias john_lifesdanger_initialize initialize unless $@ def initialize john_lifesdanger_initialize @warn = 0 end alias bolton_lifesdanger_update update unless $@ def update bolton_lifesdanger_update @warn = (@warn + 1) % JohnBolton::Time_Danger for i in 1..$game_party.actors.size if $game_actors[i].hp <= ($game_actors[i].param(0) * JohnBolton::HP_Porc) / 100 && @warn == 1 $game_map.screen.start_flash(JohnBolton::Flash, 12) if JohnBolton::Flash_Effect_enable Audio.se_play('Audio/SE/' + JohnBolton::SE_Danger) if JohnBolton::Sound_Effect_enable end end end end
  21. Nome Script: BGM/BGS nel Menù Versione: N/D Autore/i: JohnBolton Informazioni: Con questo script, si inserisce un BGM o un BGS nel Menù =) Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #======================================================= # BGM e BGS no Menu # Autor: JohnBolton # Compatibilidade: RMVXAce # Exclusividade da comunidade : www.centrorpgmaker.com #------------------------------------------------------- # Toca BGM e BGS alternativas no menu, ao invés # de dar continuidade aos do mapa. #======================================================= #-------------------------------------------------------------------------- # * Instruções #-------------------------------------------------------------------------- =begin - Coloque este script entre "Scripts Adicionais" e o "Main" - Para alterar a BGM e a BGS que tocará no menu no meio do jogo, vá em chamar script e faça: - Para BGM: Boltenho::BGM = ["Nome do BGM", volume] - Para BSG: Boltenho::BGS = ["Nome do BGS", volume] =end module Boltenho #-------------------------------------------------------------------------- # * Configurações #-------------------------------------------------------------------------- #BGM que tocará ( Deve estar na pasta Audio/BGM/ ) / Volume da BGM BGM = ["Battle2", 80 ] #BGS que tocará ( Deve estar na pasta Audio/BGS/ ) / Volume da BGS BGS = ["Clock", 100 ] #-------------------------------------------------------------------------- # * Fim das Configurações #-------------------------------------------------------------------------- end class Game_System alias music_menu_bolton initialize unless $@ def initialize music_menu_bolton @saved_bgs = nil end def save_bgs @saved_bgs = RPG::BGS.last end def replay_bgs @saved_bgs.replay if @saved_bgs end end class Scene_Menu < Scene_MenuBase alias bolton_bgm_bgs_menu start unless $@ def start memorize Audio.bgm_play('Audio/BGM/' + Boltenho::BGM[0], Boltenho::BGM[1]) Audio.bgs_play('Audio/BGS/' + Boltenho::BGS[0], Boltenho::BGS[1]) bolton_bgm_bgs_menu end def memorize $game_system.save_bgm $game_system.save_bgs end def replay $game_system.replay_bgm $game_system.replay_bgs end alias john_bgm_bgs_menu_return_scene return_scene unless $@ def return_scene john_bgm_bgs_menu_return_scene RPG::BGM.stop RPG::BGS.stop replay end end
  22. Ally

    HUD HUD su Mappa

    Nome Script: HUD su Mappa Versione: N/D Autore/i: Jet Informazioni: HUD che inserisce barre HP, MP etc, e da la possibilità di inserire anche picture extra nel caso voleste aggiungere altro su mappa. Screenshots: Istruzioni: Inserite lo script sotto Material. Nella demo comunque sono presenti (oltre che allo script) istruzioni e immagini necessarie per il corretto funzionamento dell'HUD. Script: #=============================================================================== # HUD # By Jet10985 (Jet) #=============================================================================== # This script will allow you to have a fully customizable hud displaying # multiple pictures and actor-related information. # This script has: 7 customization options. #=============================================================================== # Overwritten Methods: # None #------------------------------------------------------------------------------- # Aliased methods: # Spriteset_Map: initialize, update, dispose #=============================================================================== =begin Note: all pictures used in this HUD must be in the Graphics/Pictures folder. =end module Jet module HUD # These are the bars of the HUD. These takes highest display priority of # the entire hud. It follows this format: # :stat => ["Background", "Bar Image", "Overlay", x, y, switch] # Bars have 3 layers, drawn in this order: background, bar, overlay. # If you don't need one of these layers, leave the configuration as a "", # EX: :hp => ["Bar Back", "Hp Bar", "", 0, 10, 0] # switch is the visibility switch for the bar. 0 for none. BARS = { :hp => ["Bar Back", "HP Bar", "HP Overlay", 0, 10, 0], :mp => ["Bar Back", "MP Bar", "MP Overlay", 0, 40, 0], :tp => ["Bar Back", "TP Bar", "TP Overlay", 0, 70, 0] } # These are extra parts of the HUD which relate to the 1st actor. This # takes middle display priority in the HUD. Follow's this format: # :symbol => [x, y] # :symbol can be any of the following: # :graphic (Character Sprite) # :face (Character Face) # :name (Character name) # :class (Character class) # :nickname (Character nickname) # :level (Character Level) # :icons (Character buffs and states represented by icons) # :hp (Character hp in text along with default gauge) # :mp (Character mp in text along with default gauge) # :tp (Character tp in text along with default gauge) ACTOR_EXTRAS = { :face => [544 - 96, 0] } # This is the font used for the extra's sprite if text is drawn. ACTOR_EXTRAS_FONT = "Verdana" # This is the switch to make the extra's layer invisible ACTOR_EXTRAS_SWITCH = 0 # These are pictures displayed with the HUD. These take the lowest display # priority of the 3 sections. Follow this format: # "Picture Name" => [x, y, switch] # switch is the visiblility switch for this specific picture. PICTURES = { "Bar Back" => [250, 250, 0] } # Turning this switch on will make the entire HUD invisible. FULL_HUD_SWITCH = 1 # Do you want the HUD to follow any map shaking/scrolling/tinting? FOLLOW_MAP = true end end #=============================================================================== # DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO. #=============================================================================== ($imported ||= {})[:jet] ||= {} $imported[:jet][:HUD] = true class Spriteset_Map alias jet4856_initialize initialize def initialize(*args, &block) create_hud jet4856_initialize(*args, &block) @hudset.viewport = Jet::HUD::FOLLOW_MAP ? @viewport1 : nil end def create_hud @hudset = Spriteset_HUD.new end alias jet3745_update update def update(*args, &block) jet3745_update(*args, &block) update_hud end def update_hud if [email protected]? @hudset.visible = !$game_switches[Jet] @hudset.update end end alias jet7355_dispose dispose def dispose(*args, &block) dispose_hud jet7355_dispose(*args, &block) end def dispose_hud @hudset.dispose end end class Spriteset_HUD attr_reader :sprites, :actor attr_accessor :viewport def initialize(viewport = nil) @sprites = {} @actor = $game_party.members[0] @actor_extras = !Jet::HUD::ACTOR_EXTRAS.empty? if @actor_extras @actor_struct = Struct.new(*Jet::HUD::ACTOR_EXTRAS.keys).new Jet::HUD::ACTOR_EXTRAS.each_key {|a| @actor_struct.send("#{a}=".to_sym, (@actor.send(a) rescue true)) } end @viewport = viewport create_bars create_actor_extras if @actor_extras create_pictures @visible = 0 self.visible = !$game_switches[Jet] update end def create_bars @sprites[:bars] = {} Jet::HUD::BARS.each {|a, b| @sprites[:bars][a] = [] b[0..2].each {|c| if c == "" @sprites[:bars][a].push(Sprite.new) next end bitmap = Cache.picture(c) sprite = b.index(c) == 1 ? Sprite_Bar.new(@actor, a) : Sprite.new sprite.bitmap = bitmap sprite.x = b[3] sprite.y = b[4] @sprites[:bars][a].push(sprite) sprite.z = 1002 } } end def create_actor_extras f = Window_Base.new(0, 0, 32, 32) x = 0 - f.padding; y = 0 - f.padding width = Graphics.width + f.padding * 2 height = Graphics.height + f.padding * 2 f.dispose @sprites[:extras] = Window_Base.new(x, y, width, height) @sprites[:extras].opacity = 0 @sprites[:extras].contents.font.name = Jet::HUD::ACTOR_EXTRAS_FONT @sprites[:extras].z = 1001 Jet::HUD::ACTOR_EXTRAS.each {|a, b| @sprites[:extras].send("draw_actor_#{a}", @actor, b[0], b[1]) } end def create_pictures @sprites[:pictures] = {} Jet::HUD::PICTURES.each {|a, b| bitmap = Cache.picture(a) sprite = Sprite.new(nil) sprite.bitmap = bitmap sprite.x, sprite.y = *b[0...2] @sprites[:pictures][a] = sprite sprite.z = 1000 } end def update if @actor != $game_party.members[0] @actor = $game_party.members[0] dispose_actor_extras create_actor_extras dispose_bars create_bars end if @actor_extras do_refresh = false Jet::HUD::ACTOR_EXTRAS.each_key {|a| if @actor_struct.send(a) != (@actor.send(a) rescue true) do_refresh = true @actor_struct.send("#{a}=".to_sym, (@actor.send(a) rescue true)) end } if do_refresh dispose_actor_extras create_actor_extras end end return if !@visible update_bars update_actor_extras if @actor_extras update_pictures end def update_bars @sprites[:bars].each {|sym, a| a.each {|b| b.visible = !$game_switches[Jet][5]] b.update if b.visible b.viewport = @viewport } } end def update_actor_extras @sprites[:extras].visible = !$game_switches[Jet] @sprites[:extras].viewport = @viewport end def update_pictures @sprites[:pictures].each {|string, a| a.visible = !$game_switches[Jet][2]] a.viewport = @viewport } end def update_visibility @sprites[:pictures].each {|string, a| a.visible = @visible } @sprites[:extras].visible = @visible if @actor_extras @sprites[:bars].each {|sym, a| a.each {|b| b.visible = @visible } } end def dispose dispose_bars dispose_actor_extras if @actor_extras dispose_pictures end def dispose_bars @sprites[:bars].each_value {|a| a.each {|b| b.dispose } } end def dispose_actor_extras @sprites[:extras].dispose end def dispose_pictures @sprites[:pictures].each_value {|a| a.dispose } end def visible=(t) if @visible != t @visible = t update_visibility end end end class Sprite_Bar < Sprite def initialize(actor, type) super(nil) @actor = actor @type = type end def update begin max = @actor.send(("m" + @type.to_s).to_sym) rescue max = @actor.send(("max_" + @type.to_s).to_sym) end cur = @actor.send(@type) self.src_rect.width = (self.bitmap.width * (cur / max.to_f)).round end end Demo:http://dl.dropbox.com/u/35988679/HUD%20Demo.exe
  23. Nome Script: Finestra Tempo di Gioco Versione: N/D Autore/i: FlipelyFlip Informazioni: Semplice script che aggiunge la finestra con il tempo di gioco nel menù ^^ Istruzioni: Inserite lo script sotto Material. Script: # This Script adds a playtime window to the menu (: #============================================================================== # ** Window Time #------------------------------------------------------------------------------ # Display Game Time #============================================================================== class Window_PlayTime < Window_Base def initialize(x, y) super(x, y, 160, 60) self.contents.font.bold = true self.contents.font.size = 25 self.contents.font.color = normal_color refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear @total_sec = Graphics.frame_count / Graphics.frame_rate hour = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 ptime = sprintf("%02d:%02d:%02d", hour, min, sec) self.contents.draw_text(4, 0, contents.width - 8, contents.height - 4, "Playtime: " + ptime, 2) end def update super if Graphics.frame_count / Graphics.frame_rate != @total_sec refresh end end end class Scene_Menu < Scene_MenuBase #-------------------------------------------------------------------------- # ● start #-------------------------------------------------------------------------- alias flip_playtime_start start def start flip_playtime_start create_playtime_window end #-------------------------------------------------------------------------- # ● create Playtime Window #-------------------------------------------------------------------------- def create_playtime_window @playtime_window = Window_PlayTime.new(0, 308) end end Incompatibilità:N/D Note dell'Autore: Per un uso commerciale dello script, bisogna contattare l'Autore.
  24. Ally

    HUD Angelo HUD

    Nome Script: Angelo HUD Versione: burandon Autore/i: 2.5 Informazioni: Semplice script che può essere personalizzato in vari modi (vedere le istruzioni all'interno dello script stesso) :3 Screenshots: Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #============================================================================== # ■ Angelo HUD v2.5 #------------------------------------------------------------------------------ #  Created by Brandon *** 8(13) customization options *** Plug N' Play! #============================================================================== #==================================================# # ▼ UPDATE LOG # #--------#--------------------------------#--------# # v1 ● first release. # # v1.2 ● not released, # # ● add HUDVISIBLESWITCH # # ● add HP, MPSWITCH # # v1.5 ● not released, # # ● add FONT NAME & SIZE # # v1.8 ● not released, # # ● add WEAPONSWITCH # # v1.9 ● not released # # ● *BUG* Lag # # ● *BUG* Texts disappea- # # rence. # # v2 ● second release # # ● fixed v1.9 *BUGS* # # ● add R, G, B _BLA & # # _BDA # # ● *BUG* Transfer Player # # crash. # # v2.1 ● third release # # ● fixed v2 *BUG* # # ● changed update method # # ● changed Scene_Map # # update and dispose # # methods. # # ● *BUG* Lag # # v2.2 ● fourth release # # ● fixed v2.1 *BUG* # # ● now HUD will only re- # # fresh when the stats # # change. # # ● improved performance # #--------#--------------------------------#--------# # v2.5 ● current release # # ● improved stability # # ● added a option to link with other Angelo# # scripts # # ● -------------------------------- # # ● added gold count if Angelo Menu is pre- # # sent. # #==================================================# # ▼ THANKS TO: # # ● King of Sadism # # ● YF # # ● Valiant # # ● Amy Pond # # ● Jet # #==================================================# #------------------------------------------------------------------------------ # ▼ Customization Options #----------------------------#------------------------------------------------- # ● HUD_VISIBLE_SWITCH # #- - - - - - - - - - - - - # # Define the switch that you want to use to turn the HUD 'ON' or 'OFF', by de- # fault it's 1. When the switch is turned 'ON' the HUD will be turned 'ON' too, # and when the switch is turned 'OFF' the HUD is turned 'OFF' too. #------------------------------#----------------------------------------------- # ● FONT_NAME & FONT_SIZE # #- - - - - - - - - - - - - - # # In FONTNAME you define the font that you want to use with the HUD information. # In FONTSIZE you define the size of the font you've decided in FONTNAME. #-------------------#---------------------------------------------------------- # ● HP_SWITCH # #- - - - - - - - -# # Define the switch that you want to use to turn the HP Display 'ON' or 'OFF', # by default it's 2. When the switch is turned 'ON' the HP Display will be # turned 'ON' too, and when the switch is turned 'OFF' the HP Display is turned # 'OFF' too. #-------------------#---------------------------------------------------------- # ● MP_SWITCH # #- - - - - - - - -# # Define the switch that you want to use to turn the MP Display 'ON' or 'OFF', # by default it's 3. When the switch is turned 'ON' the MP Display will be # turned 'ON' too, and when the switch is turned 'OFF' the MP Display is turned # 'OFF' too. #------------------------------#----------------------------------------------- # ● WEAPON_AND_NAME_SWITCH # #- - - - - - - - - - - - - - # # Define the switch that you want to use to turn the Currently Equipped Weapon # Display and Actor Name 'ON' or 'OFF', by default it's 4. When the switch is # turned 'ON' this option will be turned 'ON' too, and when the switch is # turned 'OFF' this option is turned 'OFF' too. #---------------------#-------------------------------------------------------- # ● R, G, B _BLA # #- - - - - - - - - -# # Define the amount of each color(Red, Green, Blue) presented in the lighter a- # rea of the Back of the HUD. By default it's black which means that R, G and B # are setted to '0'. #---------------------#-------------------------------------------------------- # ● R, G, B _BDA # #- - - - - - - - - -# # Define the amount of each color(Red, Green, Blue) presented in the darker a- # rea of the Back of the HUD. By default it's black which means that R, G and B # are setted to '0'. #------------------------------------------------------------------------------ # ▼ Post Scriptum #------------------------------------------------------------------------------ # ● "I want to turn all the HUD or only some part of her at the same time with # the same switch, it's possible?" #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Yes, just set the parts you wanted in the same # switch as the HUDVISIBLESWITCH. #------------------------------------------------------------------------------ # ● "Which values you recommend to use in FONTSIZE?" #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Use between 8 and 18, or the text will be too # small or too bigger. But some times it depends # on your FONTNAME. #------------------------------------------------------------------------------ # ● "Which values you recommend to use in R, G, B _BLA and _BDA?" #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # You MUST use ONLY values between 0 and 255. #------------------------------------------------------------------------------ module ANGELO HUD_VISIBLE_SWITCH = 1 FONT_NAME = "Times New Roman" FONT_SIZE = 16 HP_SWITCH = 2 MP_SWITCH = 3 WEAPON_AND_NAME_SWITCH = 4 #=======IMPORTANT=======IMPORTANT=======IMPORTANT=======IMPORTANT=======IMPORTANT # * * * IF YOU ARE USING OTHER ANGELO SCRIPTS, ENABLE THIS * * * #=======IMPORTANT=======IMPORTANT=======IMPORTANT=======IMPORTANT=======IMPORTANT ENABLE_ANGELO_LINK = false R_BLA = 0 G_BLA = 0 B_BLA = 0 R_BDA = 0 G_BDA = 0 B_BDA = 0 end #------------------------------------------------------------------------------ # !!!!DO NOT EDIT FROM HERE UNLESS YOU KNOW WHAT YOU'RE DOING!!!! #------------------------------------------------------------------------------ include ANGELO class AngeloHUD < Window_Base def initialize super(-16, -16, Graphics.width + standard_padding * 2, Graphics.height + standard_padding * 2) self.opacity = 0 $AngeloHUD = true refresh end def refresh self.contents.clear self.contents.font = Font.new(FONT_NAME, FONT_SIZE) actor = $game_party.members[0] @hp = actor.hp @mp = actor.mp @mhp = actor.mhp @mmp = actor.mmp index = 0 colorback = Color.new(R_BLA, G_BLA, B_BLA, 150) colorback2 = Color.new(R_BDA, G_BDA, B_BDA, 190) if $game_switches[HUD_VISIBLE_SWITCH] == true unless $game_switches[HP_SWITCH] == false self.contents.fill_rect(3, 364, 238, 16, colorback) self.contents.fill_rect(3, 368, 238, 8, colorback2) draw_gauge(19, 353, 200, actor.hp_rate, hp_gauge_color1, hp_gauge_color2) draw_text(40, 354, 100, 32, Vocab::hp_a) draw_current_and_max_values(90, 358, 116, actor.hp, actor.mhp, hp_color(actor), normal_color) end unless $game_switches[MP_SWITCH] == false self.contents.fill_rect(3, 395, 238, 16, colorback) self.contents.fill_rect(3, 399, 238, 8, colorback2) draw_gauge(19, 384, 200, actor.mp_rate, mp_gauge_color1, mp_gauge_color2) draw_text(40, 385, 100, 32, Vocab::mp_a) draw_current_and_max_values(90, 389, 116, actor.mp, actor.mmp, mp_color(actor), normal_color) end unless $game_switches[WEAPON_AND_NAME_SWITCH] == false self.contents.fill_rect(-64 + 85, 376, 125, 19, colorback) self.contents.fill_rect(-64 + 90, 376, 115, 19, colorback2) draw_actor_name(actor, -40 + 92, 373, 100) return unless actor.equips[index] draw_icon(actor.equips[index].icon_index, -64 + 92, 372, true)#(actor.equips[index], -64 + 92, 376, true) end end def hud_changed return true if @hp != $game_party.members[0].hp return true if @mp != $game_party.members[0].mp return true if $game_switches[HP_SWITCH] != "OFF" return true if $game_switches[MP_SWITCH] != "OFF" return true if $game_switches[WEAPON_AND_NAME_SWITCH] != "OFF" return true if $game_switches[HUD_VISIBLE_SWITCH] != "OFF" return false end end def update super refresh if hud_changed end end class Scene_Map alias hud_main create_all_windows def create_all_windows create_hud_window hud_main end def create_hud_window @hud = AngeloHUD.new if ENABLE_ANGELO_LINK && $Menu_Angelo == true @gold = Window_Gold.new @gold.opacity = 0 @gold.x = 544 - @gold.contents.width - 10 @gold.y = 375 end end end
  25. Nome Script: MSX - XP Characters on VX/VXAce Versione: 1.0 Autore/i: Melosx Informazioni: Lo script permette di usare i chara xp nel vx semplicemente inserendo il tag $xp. Compatibile con VX e VXAce. Istruzioni: All'interno dello script. Script: #============================================================================== # ** MSX - XP Characters on VX/VXAce #============================================================================== # Autore: Melosx # Versione: 1.0 # Compatibile con VX e VXAce # #============================================================================== # * Descrizione # ----------------------------------------------------------------------------- # Lo script permette di usare i chara xp nel vx semplicemente inserendo il tag # $xp # prima del nome del file. # Potete quindi usare i normali VX/VXAce insieme a quelli dell'XP. # #============================================================================== # * Istruzioni # ----------------------------------------------------------------------------- # Inserire lo script sotto Materials e sopra Main. Aggiungere ai chara dell'XP # il tag $xp prima del nome. # #============================================================================== #============================================================================== # ** Sprite_Character #============================================================================== class Sprite_Character < Sprite_Base 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 @character_name != nil and @character_name.include?('$xp') @cw = bitmap.width / 4 @ch = bitmap.height / 4 end self.ox = @cw / 2 self.oy = @ch end end end def update_src_rect if @character_name != nil and @character_name.include?('$xp') if @tile_id == 0 pattern = @character.pattern > 0 ? @character.pattern - 1 : 3 sx = pattern * @cw sy = (@character.direction - 2) / 2 * @ch self.src_rect.set(sx, sy, @cw, @ch) end else 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 end end #============================================================================== # ** Window_Base #============================================================================== class Window_Base < Window def draw_character(character_name, character_index, x, y) return if character_name == nil bitmap = Cache.character(character_name) sign = character_name[/^[!$]./] if character_name != nil and character_name.include?('$xp') cw = bitmap.width / 4 ch = bitmap.height / 4 n = character_index src_rect = Rect.new(0, 0, cw, ch) else if sign != nil and sign.include?('$') cw = bitmap.width / 3 ch = bitmap.height / 4 else cw = bitmap.width / 12 ch = bitmap.height / 8 end n = character_index src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch) end self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) end end
×