Cerca nel Forum
Showing results for tags 'System Mod'.
Trovato 17 risultati
-
Nome script: Screen tint[/color] Versione: Rgss[/color] Autore: Leon_Westbrooke[/color] Informazioni: Questo script permette tramite gioco di cambiare i settaggi di colorazione dello screen. Screenshoots: Istruzioni: Premete F8 per lanciare le opzioni di settaggio. Script: #------------------------------------------------------------------------------- # Screen Tint Debug Menu by Leon_Westbrooke #------------------------------------------------------------------------------- # Questo script permette di, in Debug mode, modificare la tinta dello schermo # fino a trovare una colorazione adatta. # NON imposterà automaticamente la tinta. Invece, bisognerà ricordare i numeri # ed usarli in un evento Cambia Screen Tone. Questo dovrebbe evitare # innumerevoli test per la colorazione adatta. # # Come usare: # Inserire lo script sopra Main e sotto gli altri script. # Per accedervi, andare in debug mode (F12) e premere F8. Apparirà la window di modifica. # Utilizzare le frecce direzionali per modificare le tinte. #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # * Game_Temp #------------------------------------------------------------------------------- class Game_Temp alias leon_stdm_gametemp_init initialize attr_accessor :tinttest_red attr_accessor :tinttest_green attr_accessor :tinttest_blue attr_accessor :tinttest_gray def initialize leon_stdm_gametemp_init @tinttest_red = 0 @tinttest_green = 0 @tinttest_blue = 0 @tinttest_gray = 0 end end #------------------------------------------------------------------------------- # END Game_Temp #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # * Spriteset_Map #------------------------------------------------------------------------------- class Spriteset_Map attr_accessor :viewport1 end class Game_Screen attr_accessor :tone end #------------------------------------------------------------------------------- # END Spriteset_Map #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # * Scene_Map #------------------------------------------------------------------------------- class Scene_Map alias leon_svcl_scenemap_update update def update leon_svcl_scenemap_update if $DEBUG and Input.press?(Input::F8) $scene = Scene_TintDebug.new end end end #------------------------------------------------------------------------------- # END Scene_Map #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # * Window_TintTest #------------------------------------------------------------------------------- class Window_TintTest < Window_Selectable def initialize super(0, 0, 192, 192) self.contents = Bitmap.new(width - 32, height - 32) @item_max = 5 self.index = 0 self.active = true refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, 160, 32, "Rosso") self.contents.draw_text(4, 32, 160, 32, "Verde") self.contents.draw_text(4, 64, 160, 32, "Blu") self.contents.draw_text(4, 96, 160, 32, "Grigio") self.contents.draw_text(4, 128, 160, 32, "Esci") self.contents.draw_text(-4, 0, 160, 32, $game_temp.tinttest_red.to_s, 2) self.contents.draw_text(-4, 32, 160, 32, $game_temp.tinttest_green.to_s, 2) self.contents.draw_text(-4, 64, 160, 32, $game_temp.tinttest_blue.to_s, 2) self.contents.draw_text(-4, 96, 160, 32, $game_temp.tinttest_gray.to_s, 2) end end #------------------------------------------------------------------------------- # END Window_TintTest #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # * Scene_TintDebug #------------------------------------------------------------------------------- class Scene_TintDebug def main @spriteset = Spriteset_Map.new $game_temp.tinttest_red = @spriteset.viewport1.tone.red.to_i $game_temp.tinttest_green = @spriteset.viewport1.tone.green.to_i $game_temp.tinttest_blue = @spriteset.viewport1.tone.blue.to_i $game_temp.tinttest_gray = @spriteset.viewport1.tone.gray.to_i @window_tint = Window_TintTest.new Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @window_tint.dispose @spriteset.dispose end def update if Input.trigger?(Input:: $scene = Scene_Map.new end if @window_tint.active update_windowtint return end end def update_windowtint @window_tint.update case @window_tint.index when 0 if Input.trigger?(Input::RIGHT) $game_temp.tinttest_red += 1 if $game_temp.tinttest_red >= 255 $game_temp.tinttest_red = 255 end elsif Input.trigger?(Input::LEFT) $game_temp.tinttest_red -= 1 if $game_temp.tinttest_red <= -255 $game_temp.tinttest_red = -255 end elsif Input.repeat?(Input::RIGHT) $game_temp.tinttest_red += 5 if $game_temp.tinttest_red >= 255 $game_temp.tinttest_red = 255 end elsif Input.repeat?(Input::LEFT) $game_temp.tinttest_red -= 5 if $game_temp.tinttest_red <= -255 $game_temp.tinttest_red = -255 end end when 1 if Input.trigger?(Input::RIGHT) $game_temp.tinttest_green += 1 if $game_temp.tinttest_green >= 255 $game_temp.tinttest_green = 255 end elsif Input.trigger?(Input::LEFT) $game_temp.tinttest_green -= 1 if $game_temp.tinttest_green <= -255 $game_temp.tinttest_green = -255 end elsif Input.repeat?(Input::RIGHT) $game_temp.tinttest_green += 5 if $game_temp.tinttest_green >= 255 $game_temp.tinttest_green = 255 end elsif Input.repeat?(Input::LEFT) $game_temp.tinttest_green -= 5 if $game_temp.tinttest_green <= -255 $game_temp.tinttest_green = -255 end end when 2 if Input.trigger?(Input::RIGHT) $game_temp.tinttest_blue += 1 if $game_temp.tinttest_blue >= 255 $game_temp.tinttest_blue = 255 end elsif Input.trigger?(Input::LEFT) $game_temp.tinttest_blue -= 1 if $game_temp.tinttest_blue <= -255 $game_temp.tinttest_blue = -255 end elsif Input.repeat?(Input::RIGHT) $game_temp.tinttest_blue += 5 if $game_temp.tinttest_blue >= 255 $game_temp.tinttest_blue = 255 end elsif Input.repeat?(Input::LEFT) $game_temp.tinttest_blue -= 5 if $game_temp.tinttest_blue <= -255 $game_temp.tinttest_blue = -255 end end when 3 if Input.trigger?(Input::RIGHT) $game_temp.tinttest_gray += 1 if $game_temp.tinttest_gray >= 255 $game_temp.tinttest_gray = 255 end elsif Input.trigger?(Input::LEFT) $game_temp.tinttest_gray -= 1 if $game_temp.tinttest_gray <= -255 $game_temp.tinttest_gray = -255 end elsif Input.repeat?(Input::RIGHT) $game_temp.tinttest_gray += 5 if $game_temp.tinttest_gray >= 255 $game_temp.tinttest_gray = 255 end elsif Input.repeat?(Input::LEFT) $game_temp.tinttest_gray -= 5 if $game_temp.tinttest_gray <= -255 $game_temp.tinttest_gray = -255 end end when 4 if Input.trigger?(Input:: $scene = Scene_Map.new end end red = $game_temp.tinttest_red green = $game_temp.tinttest_green blue = $game_temp.tinttest_blue gray = $game_temp.tinttest_gray @spriteset.viewport1.tone = Tone.new(red, green, blue, gray) $game_screen.tone = Tone.new(red, green, blue, gray) @window_tint.refresh @spriteset.update end end #------------------------------------------------------------------------------- # * Scene_TintDebug #-------------------------------------------------------------------------------
-
System Mod H.U.T.O. MMO System por Tomoaky
Ally ha aggiunto un topic in Scripts RPG Maker VX Ace (RGSS3)
Nome Script: H.U.T.O. MMO System por Tomoaky Versione: Autore/i: Tomoaky, hikimoki Informazioni: Un sistema completo per creare un progetto in pieno stile MMO, dove il movimento è con il mouse e la battaglia è in gruppo. Che cosa contiene? Features: - Mini-mappa con caratteristiche realistiche della mappa. - Sistema di Battaglia con la partecipazione attiva del party. - Sistema di full-pixel: Camminata, Attacco, Abilità, e altre cose che devono essere ancora scoperte nella demo - Sistema di tempo con orari diurni e serali giusto. - Tempo di sistema. (Climi) (La demo è ancora in fase di test, quindi verranno aggiunte altre features con il progredire dei test) Screenshots: Istruzioni: Istruzioni e script, all'interno della demo. Demo: http://hikimoki.sakura.ne.jp/zip/hutommo_ace.zip -
System Mod Permanent Switches & Variables
Ally ha aggiunto un topic in Scripts RPG Maker VX Ace (RGSS3)
Nome Script: Permanent Switches & Variables Versione: 1.2 Autore/i: mikb89 Informazioni: Con questo script potrete far sì che i valori di determinate switch e variabili vengano memorizzati in modo da restare tali in nuova partita e caricamento. Utile per esempio se si vuole aggiungere un Nuovo gioco +, cambiando una switch appena finito il gioco, oppure un sistema di punteggio alto tramite variabile o magari per memorizzare delle opzioni. Features: Si possono utilizzare sia singoli elementi che range multipli rapidamente. È possibile scegliere un nominativo personalizzato per i dati. Istruzioni: Creare una nuova voce sopra Main ed inserire lo script. Nel caso di incompatibilità, provare a spostarla più in alto. Script Incompatibilità: N/A -
Nome Script: ReMapped Keys Versione: 1.0 Autore/i: mikb89 Informazioni: Con questo script potrete riassegnare i tasti standard. Se ad esempio voleste usare Invio sia per interagire che per correre, basta rimappare il tasto Shift (:A) con quello di Invio (:C). Giusto un esempio. Lo script è comunque stato inizialmente creato per un cabinato che supportava solo determinati tasti: combinando questo script con uno di tastiera estesa è stato possibile far funzionare il gioco. Istruzioni: Creare una nuova voce sopra Main ed inserire lo script. Nel caso di incompatibilità, provare a spostarla più in alto. Script Incompatibilità: Ricordatevi di usare uno script per la tastiera estesa separato se le vostre intenzioni sono quelle di usare tasti non standard. Note dell'autore: Script creato per una richiesta di syntonia; Ringrazio per il suo script di tastiera estesa che ho usato come esempio.
-
Nome Script: Independent Player Actor Versione: 1.4 Autore/i: mikb89 Informazioni: Questo script nasce da una richiesta di , fatta in questo topic. Pensato per giochi tipo Pokémon, questo script consente di avere un 'leader' (visibile come primo personaggio nel caterpillar e come nome team in battaglia: "Il gruppo di X ha ottenuto punti exp...") che non è parte del gruppo vero e proprio. Features: L'unica impostazione presente nello script è il numero di una variabile. Cambiandone poi il valore potrete: disattivare lo script se questo è minore di 1; selezionare l'eroe leader dal database impostando la variabile al suo ID; attivare e disattivare lo script quindi semplicemente moltiplicando la variabile per -1. Istruzioni: Inserire lo script sotto Materials/Materiali/Modules/Moduli (a seconda della traduzione che avete) ma sopra Main. Script Demo: Demo multilingua v 1.4 Mediafire, zip di 1.32MB Incompatibilità: Se non aggiungete nessuno al party, anche se il leader è impostato, non potrete comunque accedere ai vari menu Oggetti, Skill, Equip, Status. Note dell'autore: per aver richiesto lo script; SowS per l'idea originale. Pareri in evidenza:
-
Nome Script: Keyboard Input Versione: 3.0 Autore/i: Keroro Informazioni: Porting per VX-ACE dello script YEM Keyboard Script per VX. Rimpiazza lo Scene_Name facendo inserire direttamente da tastiera. TODO: Gestire la punteggiatura Istruzioni: Creare una nuova tab sotto Materials e incollare lo script. Oltre a modificare lo Scene_Name modifica la classe Input consentendo, al programmatore volenteroso di utilizzare tutti le lettere e i numeri tramite sintassi: if Input.press(:VK_A) #se premo la lettera a end if Input.press(:NUM5) or Input.press(:PAD5) #se premo il numero 5 sulla tastiera o sul numpad end Script: #===============================================================================# Keyboard Input - Porting to VX-ACE# By Keroro - [email protected]# Version 3.0# Last Date Updated. 2012.03.17#===============================================================================## OriginalWij and Yanfly Collaboration - Keyboard Input# Last Date Updated: 2010.06.12# Level: Normal## This is a utility script that provides the functionality to return inputs# from the keyboard as well as free up more keys to be used in the Input module.# This script will also replace Scene_Name and allow for direct keyboard input# to type in an actor's name as well as fix the maximum characters shown from# the default base script.##===============================================================================$imported = {} if $imported == nil$imported["KeyboardInput"] = trueclass << Input #-------------------------------------------------------------------------- # Aliases (Mods - Linked to Module) - Created by OriginalWij #-------------------------------------------------------------------------- alias ow_dt_i_press press? unless $@ alias ow_dt_i_trigger trigger? unless $@ alias ow_dt_i_repeat repeat? unless $@ alias ow_dt_i_update update unless $@endmodule Input #-------------------------------------------------------------------------- # constants - Created by OriginalWij and Yanfly and Keroro #-------------------------------------------------------------------------- VALUES = {} VALUES[:VK_A] = 65; VALUES[:VK_B] = 66; VALUES[:VK_C] = 67; VALUES[:VK_D] = 68; VALUES[:VK_E] = 69; VALUES[:VK_F] = 70; VALUES[:VK_G] = 71; VALUES[:VK_H] = 72; VALUES[:VK_I] = 73; VALUES[:VK_J] = 74; VALUES[:VK_K] = 75; VALUES[:VK_L] = 76 VALUES[:VK_M] = 77; VALUES[:VK_N] = 78; VALUES[:VK_O] = 79; VALUES[:VK_P] = 80; VALUES[:VK_Q] = 81; VALUES[:VK_R] = 82; VALUES[:VK_S] = 83; VALUES[:VK_T] = 84; VALUES[:VK_U] = 85; VALUES[:VK_V] = 86; VALUES[:VK_W] = 87; VALUES[:VK_X] = 88 VALUES[:VK_Y] = 89; VALUES[:VK_Z] = 90; LETTERS = [:VK_A,:VK_B,:VK_C,:VK_D,:VK_E,:VK_F,:VK_G,:VK_H,:VK_I,:VK_J, :VK_K,:VK_L,:VK_M,:VK_N,:VK_O,:VK_P,:VK_Q,:VK_R,:VK_S,:VK_T, :VK_U,:VK_V,:VK_W,:VK_X,:VK_Y,:VK_Z] VALUES[:NUM0] = 48; VALUES[:NUM1] = 49; VALUES[:NUM2] = 50; VALUES[:NUM3] = 51; VALUES[:NUM4] = 52; VALUES[:NUM5] = 53; VALUES[:NUM6] = 54; VALUES[:NUM7] = 55; VALUES[:NUM8] = 56; VALUES[:NUM9] = 57; VALUES[:PAD0] = 96; VALUES[:PAD1] = 97; VALUES[:PAD2] = 98; VALUES[:PAD3] = 99; VALUES[:PAD4] = 100; VALUES[:PAD5] = 101; VALUES[:PAD6] = 102; VALUES[:PAD7] = 103; VALUES[:PAD8] = 104; VALUES[:PAD9] = 105; NUMBERS = [:NUM0,:NUM1,:NUM2,:NUM3,:NUM4,:NUM5,:NUM6,:NUM7,:NUM8,:NUM9] NUMPAD = [:PAD0,:PAD1,:PAD2,:PAD3,:PAD4,:PAD5,:PAD6,:PAD7,:PAD8,:PAD9] VALUES[:ENTER] = 13; VALUES[:SPACE] = 32; VALUES[:ESC] = 27; VALUES[:BACK] = 8; VALUES[:PGUP] = 33; VALUES[:PGDN] = 34; VALUES[:CAPS] = 20;#TODO: aggiungere tags per punteggiatura #-------------------------------------------------------------------------- # initial module settings - Created by OriginalWij and Yanfly #-------------------------------------------------------------------------- GetKeyState = Win32API.new("user32", "GetAsyncKeyState", "i", "i") GetCapState = Win32API.new("user32", "GetKeyState", "i", "i") KeyRepeatCounter = {} module_function #-------------------------------------------------------------------------- # alias method: update - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def update ow_dt_i_update for key in KeyRepeatCounter.keys if (GetKeyState.call(VALUES[key]).abs & 0x8000 == 0x8000) KeyRepeatCounter[key] += 1 else KeyRepeatCounter.delete(key) end end end #-------------------------------------------------------------------------- # alias method: press? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def press?(key) return ow_dt_i_press(key) if !VALUES.has_key?(key) return true unless KeyRepeatCounter[key].nil? return key_pressed?(key) end #-------------------------------------------------------------------------- # alias method: trigger? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def trigger?(key) return ow_dt_i_trigger(key) if !VALUES.has_key?(key) count = KeyRepeatCounter[key] return ((count == 0) or (count.nil? ? key_pressed?(key) : false)) end #-------------------------------------------------------------------------- # alias method: repeat? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def repeat?(key) return ow_dt_i_trigger(key) if !VALUES.has_key?(key) count = KeyRepeatCounter[key] return true if count == 0 if count.nil? return key_pressed?(key) else return (count >= 23 and (count - 23) % 6 == 0) end end #-------------------------------------------------------------------------- # new method: key_pressed? - Created by OriginalWij and Keroro #-------------------------------------------------------------------------- def key_pressed?(key) if (GetKeyState.call(VALUES[key]).abs & 0x8000 == 0x8000) KeyRepeatCounter[key] = 0 return true end return false end #-------------------------------------------------------------------------- # new method: typing? - Created by Yanfly and Keroro #-------------------------------------------------------------------------- def typing? return true if repeat?(:SPACE) for key in LETTERS return true if repeat?(key) end for key in NUMBERS return true if repeat?(key) end return false end #-------------------------------------------------------------------------- # new method: key_type - Created by Yanfly and Keroro #-------------------------------------------------------------------------- def key_type return " " if repeat?(:SPACE) for key in LETTERS next unless repeat?(key) return upcase? ? key.to_s[3].upcase : key.to_s[3].downcase end for key in NUMBERS return key.to_s[3] if repeat?(key) end for key in NUMPADS return key.to_s[3] if repeat?(key) end return "" end #-------------------------------------------------------------------------- # new method: upcase? - Created by Yanfly #-------------------------------------------------------------------------- def upcase? return !press?(:SHIFT) if GetCapState.call(VALUES[:CAPS]) == 1 return true if press?(:SHIFT) return false endend #Input#===============================================================================# Window_NameEdit#===============================================================================class Window_NameEdit < Window_Base #-------------------------------------------------------------------------- # overwrite method: initialize #-------------------------------------------------------------------------- def initialize(actor, max_char) dw = Graphics.width - 176 dy = (Graphics.height - 128) / 2 if $game_message.visible difference = Graphics.height - 128 case $game_message.position when 0; dy += 64 when 1; dy += 0 when 2; dy -= 64 end end super(88, dy, dw, 128) @actor = actor @name = actor.name @max_char = max_char name_array = @name.split(//)[0...@max_char] @name = "" for i in 0...name_array.size @name += name_array[i] end @default_name = @name @index = name_array.size self.active = false refresh end #-------------------------------------------------------------------------- # overwrite method: item_rect #-------------------------------------------------------------------------- def item_rect(index) if index == @max_char rect = Rect.new(0, 0, 0, 0) else rect = Rect.new(0, 0, 0, 0) rect.x = 112 + index * 12 rect.y = 36 rect.width = 24 rect.height = line_height end return rect endend # Window_NameEdit#===============================================================================# Scene_Base#===============================================================================class Scene_Base #-------------------------------------------------------------------------- # new method: name_entry #-------------------------------------------------------------------------- def name_entry(actor_id, max_char) @name_actor_id = actor_id @name_entry_max = max_char start_name_entry end_name_entry end #-------------------------------------------------------------------------- # new method: start_name_entry #-------------------------------------------------------------------------- def start_name_entry Graphics.freeze actor = $game_actors[@name_actor_id] @edit_window = Window_NameEdit.new(actor, @name_entry_max) Graphics.transition(10) loop do update_name_entry if Input.repeat?(:BACK) and @edit_window.index > 0 Sound.play_cancel @edit_window.back elsif Input.typing? and @edit_window.index != @edit_window.max_char Sound.play_cursor @edit_window.add(Input.key_type) elsif Input.trigger?(:ENTER) Sound.play_ok actor.name = @edit_window.name break elsif Input.trigger?(:ESC) Sound.play_cancel break end end end #-------------------------------------------------------------------------- # new method: update_name_entry #-------------------------------------------------------------------------- def update_name_entry Graphics.update Input.update if SceneManager.scene.is_a?(Scene_Map) $game_map.update @spriteset.update elsif SceneManager.scene.is_a?(Scene_Battle) Graphics.update Input.update $game_system.update $game_troop.update @spriteset.update @message_window.update end @edit_window.update end #-------------------------------------------------------------------------- # end_name_entry #-------------------------------------------------------------------------- def end_name_entry @edit_window.dispose @edit_window = nil @name_actor_id = nil @name_entry_max = nil endend # Scene_Base#===============================================================================# Game_Interpreter#===============================================================================class Game_Interpreter #-------------------------------------------------------------------------- # overwrite method: command_303 (Name Input Processing) #-------------------------------------------------------------------------- def command_303 if $data_actors[@params[0]] != nil SceneManager.scene.name_entry(@params[0], @params[1]) end @index += 1 return false endend # Game_Interpreter Incompatibilità:Nessuna incompatibilità Note dell'Autore: In modalità finestra il mouse compare e scompare, a schermo intero invece resta nascosto.
-
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
-
Nome Script: Ottimizzazione Cache Versione: N/D Autore/i: Jet Informazioni: Script che velocizza il caricamento delle bitmap in game :3 Istruzioni: Inserite lo script Sotto Material. Script: #=============================================================================== # Cache Optimization # By Jet10985 (Jet) #=============================================================================== # This snippet will pre-cache all images at the beginning of the game to # quicken the loading of bitmaps in-game, and return dups instead of originals # to prevent having to recreate after disposing it. # This script has: 0 customization options. #=============================================================================== # Overwritten Methods: # None #------------------------------------------------------------------------------- # Aliased methods: # Cache: load_bitmap #=============================================================================== if File.directory?("Graphics") g_array = Dir.entries("Graphics") g_array.each {|a| next if [".", ".."].include?(a) if !File.directory?("Graphics/#{a}") Cache.load_bitmap("Graphics/", a) rescue next next end file = Dir.entries("Graphics/#{a}") file.each {|b| next if [".", ".."].include?( if File.directory?("Graphics/#{a}/#{b}") g_array << "#{a}/#{b}" next end Cache.load_bitmap("Graphics/#{a}/", rescue next } } end class << Cache alias jet3745_load_bitmap load_bitmap unless $@ def load_bitmap(*args, &block) (jet3745_load_bitmap(*args, &block)).dup end end
-
System Mod Cambiare Tileset nell'Editor del VX
Ally ha aggiunto un topic in Scripts RPG Maker VX (RGSS2)
Nome Script: Cambiare Tileset nell'Editor del VX Versione: 0.2 Autore/i: BulletXt Informazioni: Questo software è una piccola interfaccia grafica pensata per essere usata quando si mappa nell'editor del VX.(E' necessario avere nel proprio progetto l'altro script per il cambio tileset) Per fare partire questo piccolo 'tool',è necessario: Microsoft Visual C++ 2005 Redistributable Package Il programmino deve essere collocato nella directory del vostro progetto Copiare i vostri Tilesets di default nella cartella Graphics/System Screenshots: Demo: Download Note dell'Autore: Questo software è stato scritto in C++ con il Qt4 Framework toolkit. Il software è stato rilasciato sotto licenza GNU General Public License 3. Fonte:Qui Note by me: Attenzione,questo programma non serve per cambiare il tileset come succede nell'altro script,ma bensì serve solo per cambiarlo nell'editor del VX per aiutarvi a mappare con il nuovo tileset che volete usare. -
System Mod Oltremondo - Trasferimento PG da un gioco all'altro
Ally ha aggiunto un topic in Scripts RPG Maker VX (RGSS2)
Nome Script: Oltremondo - Trasferimento PG da un gioco all'altro Versione: 1.0 Autore/i: Melosx Informazioni: Lo script permette il trasferimento di un pg tra giochi... Leggete le info nello script Istruzioni: Nello script. Strutturate l'evento come nella demo(ovviamente per quanto riguarda i call script... gli orpelli grafici potete anche toglierli). C'è gia un pg ijmoortato nella cartella ISK/Oltremondo. Nella demo cliccate sulla fatina e importatelo. Andate nel menu e godetevelo. Script: #============================================================================= # Oltremondo #============================================================================= # Autore: Melosx # Versione: 1.0 # Data di creazione: 18-5-2011 => Inizio lavori # 20-5-2011 => v. 0.8 # 1-6-2011 => v. 0.9 => v. 1.0 # # Feature: (con * le non funzionanti al momento) # - Importazione nome # - Importazione classe # - Importazione livello (Funzionante in 0.9) # - Importazione valori PV e PM # - Importazione parametri(ATT, DEF, SPI, VEL) # - Importazione armi e armature (Funzionante in 1.0) # - Importazione grafica (Face e Chara) - Facoltativo - (Funzionante in 0.9) #============================================================================= =begin ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___| _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__ ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___| Benvenuti nell'Oltremondo. Lo script permette di trasferire i dati di un pg, su un file, da un gioco in modo da ricrearlo tale e quale in un altro gioco. C'è, al momento, un solo requisito per il trasferimento del pg. Il nome del file deve essere impostato, tramite il modulo di configurazione, allo stesso modo nei due giochi. In caso non fosse così il trasferimewnto non avverrebbe. Il consiglio che vi do è quello di strutturare l'evento per l'importazione del pg come quello di questa demo, così non incorrerete al blocco del gioco. Per configurare agite sul modulo di configurazione. Per poter importare un pg avrete bisogno di creare un eroe (anche vuoto). ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___| _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__ ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___| =end #============================================================================== # ** Modulo OM #------------------------------------------------------------------------------ # Modulo di configurazione dell'Oltremondo #============================================================================== module OM PERC = "ISK/Oltremondo/" #Percorso di caricamento del file. #------------------------------------------------------------------------------ # ** Scrittura nome # VERSIONE => Versione di gioco. # NOME => Nome del file. # EXT => Estensione del file. #------------------------------------------------------------------------------ VERSIONE = 1.0 NOME = " - Oltremondo_Demo_PG" EXT = ".isk" #------------------------------------------------------------------------------ # ** FINE Scrittura nome #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ # ** Configurazione ID # ID_PGE => ID del personaggio da esportare. # ID_PGI => ID del personaggio che verrà sovrascritto dall'importazione. #------------------------------------------------------------------------------ ID_PGE = 1 ID_PGI = 2 #------------------------------------------------------------------------------ # ** FINE Configurazione ID #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ # ** Configurazione GRAFICA # #true/false => attiva/disattiva l'esportazione e l'importazione della grafica # dell'eroe (Face e Chara). #------------------------------------------------------------------------------ GRAFICA = true #------------------------------------------------------------------------------ # ** FINE Configurazione GRAFICA #------------------------------------------------------------------------------ #============================================================================== # *** Note: # Anche se può sembrare inutile indicare la versione del gioco è bene farlo # nel caso in qui si usi un Patch System. Ciò evita il caricamento di un pg # creato con una versione diversa e quindi evita eventuali bug. # Qualora quindi si usa un Patch System cambiate ad ogni patch, che coinvolge i # pg, la versione e distribuite insieme alla patch il file Script.rvdata in # modo da aggiornare il gioco con la modifica alla versione. #============================================================================== end #============================================================================= # Oltremondo_Crea => Crea il file #============================================================================= class Oltremondo_Crea < Scene_Base include OM def initialize crea_variabili end def crea_variabili actor = $game_actors.[](OM::ID_PGE) @aname = actor.name @aliv = actor.level @aclasse = actor.class_id @ahp = actor.hp @amp = actor.mp @ahpm = actor.maxhp @ampm = actor.maxmp @[member=AEXPATTSKEFOKE] = actor.exp @[member=awhsmyyhk] = actor.weapon_id @aa1 = actor.armor1_id @aa2 = actor.armor2_id @aa3 = actor.armor3_id @aa4 = actor.armor4_id @aatk = actor.atk @adef = actor.def @aspi = actor.spi @aagi = actor.agi if OM::GRAFICA == true @afacen = actor.face_name @afaceidx = actor.face_index @achn = actor.character_name @achidx = actor.character_index end scrivi end def scrivi file = File.open(OM::VERSIONE.to_s + OM::NOME + OM::EXT, "w") Marshal.dump(@aname, file) Marshal.dump(@aliv, file) Marshal.dump(@aclasse, file) Marshal.dump(@ahp, file) Marshal.dump(@amp, file) Marshal.dump(@ahpm, file) Marshal.dump(@ampm, file) Marshal.dump(@[member=AEXPATTSKEFOKE], file) Marshal.dump(@[member=awhsmyyhk], file) Marshal.dump(@aa1, file) Marshal.dump(@aa2, file) Marshal.dump(@aa3, file) Marshal.dump(@aa4, file) Marshal.dump(@aatk, file) Marshal.dump(@adef, file) Marshal.dump(@aspi, file) Marshal.dump(@aagi, file) if OM::GRAFICA == true Marshal.dump(@afacen, file) Marshal.dump(@afaceidx, file) Marshal.dump(@achn, file) Marshal.dump(@achidx, file) end end end #============================================================================= # Oltremondo_Carica => Carica il pg dal file #============================================================================= class Oltremondo_Carica < Scene_Base include OM def initialize carica end def carica file = File.open(OM::PERC + OM::VERSIONE.to_s + OM::NOME + OM::EXT, "r") @aname = Marshal.load(file) @aliv = Marshal.load(file) @aclasse = Marshal.load(file) @ahp = Marshal.load(file) @amp = Marshal.load(file) @ahpm = Marshal.load(file) @ampm = Marshal.load(file) @[member=AEXPATTSKEFOKE] = Marshal.load(file) @[member=awhsmyyhk] = Marshal.load(file) @aa1 = Marshal.load(file) @aa2 = Marshal.load(file) @aa3 = Marshal.load(file) @aa4 = Marshal.load(file) @aatk = Marshal.load(file) @adef = Marshal.load(file) @aspi = Marshal.load(file) @aagi = Marshal.load(file) if OM::GRAFICA == true @afacen = Marshal.load(file) @afaceidx = Marshal.load(file) @achn = Marshal.load(file) @achidx = Marshal.load(file) end genera_pg end def genera_pg $game_party.add_actor(OM::ID_PGI) actor = $game_actors.[](OM::ID_PGI) actor.name = @aname actor.change_level(@aliv, false) actor.class_id = @aclasse actor.hp = @ahp actor.mp = @amp actor.maxhp = @ahpm actor.maxmp = @ampm actor.change_equip_by_id(0, @[member=awhsmyyhk], true) actor.change_equip_by_id(1, @aa1, true) actor.change_equip_by_id(2, @aa2, true) actor.change_equip_by_id(3, @aa3, true) actor.change_equip_by_id(4, @aa4, true) actor.atk = @aatk actor.def = @adef actor.spi = @aspi actor.agi = @aagi actor.set_graphic(@achn, @achidx, @afacen, @afaceidx) if OM::GRAFICA == true end end Demo: http://www.mediafire.com/?22dudydoxn2ldoc -
Nome Script: RPG Maker VX Patching System Versione: 2.0 Beta Autore/i: Yeyinde Informazioni: Lo script permette di creare patch e di importarle in un gioco per aggiornarlo. Funzione UTILISSIMA quando andate a creare un gioco molto pesante. Se infatti vi si trova un bug il giocatore sarà costretto a scaricarsi di nuovo il gioco corretto. Cosi invece basta la piccola patch(ed eventuali immagini messe a parte) per debuggare il gioco. Istruzioni: Le istruzioni le trovate nello script in inglese... Il buon zio Melosx vi traduce le più importanti per voi. Istruzioni: 1 Inserite lo script sopra Main e sotto qualsiasi altro script. 2 In "Main", aggiungete la seguente linea prima di "begin": Patcher.start 3 In "Main", aggiungete la seguente linea alla fine dello script: Patcher.finish 4 Modificate i parametri in "PatchConfig" in base ai vostri bisogni. 5 Per creare una patch usate il call "$scene = Scene_PatchMaker.new" con l'evento "Script..." (terza pagina degli eventi). Premete A sul parametro che vi interessa e nel successivo menu sull'elemento che vi interessa importare nel file della patch. Una volta selezionati gli elementi che vi interessano premete su >>Finish e la patch verrà generata nella cartella del gioco. Significato parametri modulo PatchConfig: Ext = Estensione del file della patch Key = Una password per proteggere la patch(non so se sia così in quanto la patch se viene aperta con Blocco Note può essere modificata, rovinandola ovviamente). Salt = Insieme di lettere per criptare il tutto. Per maggiore sicurezza potete cambiarle. Folder = Nome della cartella dove le patch verranno inserite per essere lette. Name = Nome interno per il file di patch. Cambiatelo per avere più sicurezza. Script: A causa dell'eccessiva lunghezza dello script che porta ad un post vuoto, vi posto il link al txt dello script in attesa di un eventuale risoluzione del problema. SCRIPT Incompatibilità: Con lo swapxt v1.0 (e penso anche con la v0.4). Purtroppo lo swap non avviene. Note dell'Autore: All'interno dello script.
-
Nome Script: Modalità due giocatori Versione: 1.0 Autore/i: Scompartimenty, mikb89 Informazioni: Con questo script potete far giocare due persone contemporaneamente al vostro progetto! Lo schermo viene diviso in due parti e vengono creati due gruppi diversi. I due gruppi possono trovarsi ognuno in una mappa diversa, ma anche nella stessa e possono interagire fra loro. Oltre alla mappa, ogni gruppo gestisce il proprio gioco con tutte le schermate comprese a sé. È possibile dividere e congiungere lo schermo anche a gioco avviato, cosa che può essere fatta manualmente oppure dal giocatore. Per la divisione dei gruppi è presente anche una schermata apposita. Altra cosa possibile è far combattere i due gruppi l'uno contro l'altro. Una volta salvato il gioco, visto che nel save standard si vedono i chara, è possibile capire direttamente come sono composti i gruppi. Le immagini dovrebbero essere abbastanza chiarificatorie ^^ Istruzioni: Non ci sono script da copiare, iniziate il vostro progetto direttamente da quello della demo oppure copiate l'intero Scripts.rvdata. Demo: http://www.mediafire.com/download.php?u5e3596sr5d1ya3 Incompatibilità: Con qualunque altro script
-
Nome Script: Save compresso Versione: 1.00 Autore/i: kaisouryouiki Informazioni: Lo script comprime i salvataggi in un unico file invece di dividerli ^^ Istruzioni: Inserite semplicemente lo script sopra Main. Script: =begin ★セーブデータ一括管理★ Save1.rvdata, Save2.rvdataのように通常セーブの数だけ生成されていく セーブファイルを、1つのセーブファイルにまとめて管理することができます。 ● 注意 ●========================================================== 再定義が非常に多いです。 -------------------------------------------------------------------- このスクリプトを導入する前のセーブデータは読み込めなくなります。 ==================================================================== ver1.00 Last Update : 2010/08/06 08/06 : 「セーブファイル破棄」に対応 07/30 : 新規(FSMにて。ver0.50) ろかん http://kaisouryouiki.web.fc2.com/ =end $rsi = {} if $rsi == nil $rsi["セーブデータ一括管理"] = true class Window_SaveFile < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 ※ 再定義 #-------------------------------------------------------------------------- def initialize(file_index, data) # 引数が変化しているので注意 super(0, 56 + file_index % 4 * 90, 544, 90) @time_stamp = Time.at(0) @file_index = file_index @file_data = data # 渡されたデータが空(empty)の際にセーブが存在しないとみなします。 @file_exist = ! @file_data.empty? load_gamedata refresh @selected = false end #-------------------------------------------------------------------------- # ● ゲームデータの一部をロード ※ 再定義 #-------------------------------------------------------------------------- def load_gamedata # データそのものが渡されてきているのでファイルをopenする必要なし。 if @file_exist @time_stamp = @file_data[0] @characters = @file_data[1] @frame_count = @file_data[2] @last_bgm = @file_data[3] @last_bgs = @file_data[4] @[member=GamerLog]_system = @file_data[5] @[member=GamerLog]_message = @file_data[6] @[member=GamerLog]_switches = @file_data[7] @[member=GamerLog]_variables = @file_data[8] @total_sec = @frame_count / Graphics.frame_rate end end end class Scene_Title < Scene_Base #-------------------------------------------------------------------------- # ● コンティニュー有効判定 ※ 再定義 #-------------------------------------------------------------------------- def check_continue @continue_enabled = false return unless File.exist?("Save.rvdata") file = File.open("Save.rvdata", "rb") for data in Marshal.load(file) @continue_enabled = ! data.empty? break if @continue_enabled end file.close end end class Scene_File < Scene_Base #-------------------------------------------------------------------------- # ● ファイル名の取得 #-------------------------------------------------------------------------- def filename return "Save.rvdata" end #-------------------------------------------------------------------------- # ● セーブファイルウィンドウの作成 ※ 再定義 #-------------------------------------------------------------------------- def create_savefile_windows @item_max = 4 @savefile_windows = [] load_data_list # この段階で全てのセーブデータを読み込む @item_max.times do |i| # ウィンドウ生成時にインデックスに該当するセーブデータを渡します。 @savefile_windows.push(Window_SaveFile.new(i, @dataList[i])) end end #-------------------------------------------------------------------------- # ● セーブの実行 ※ 再定義 #-------------------------------------------------------------------------- def do_save write_save_data return_scene end #-------------------------------------------------------------------------- # ● ロードの実行 ※ 再定義 #-------------------------------------------------------------------------- def do_load read_save_data $scene = Scene_Map.new RPG::BGM.fade(1500) Graphics.fadeout(60) Graphics.wait(40) @last_bgm.play @last_bgs.play end #-------------------------------------------------------------------------- # ● 全てのセーブが収まったデータを取得(ウィンドウ生成前に呼ばれるのみ) #-------------------------------------------------------------------------- def load_data_list # ファイルが存在しない場合はデータ取得前にファイルを生成する unless File.exist?(filename) @dataList = [] @item_max.times do @dataList << [] end save_data_list end file = File.open(filename, "rb") @dataList = Marshal.load(file) file.close end #-------------------------------------------------------------------------- # ● 全てのセーブが収まったデータを保存(@dataListの内容変更時に呼ばれる) #-------------------------------------------------------------------------- def save_data_list file = File.open(filename, "wb") Marshal.dump(@dataList, file) file.close end #-------------------------------------------------------------------------- # ● セーブデータの書き込み ※ 再定義 #-------------------------------------------------------------------------- def write_save_data characters = [] for actor in $game_party.members characters.push([actor.character_name, actor.character_index]) end $game_system.save_count += 1 $game_system.version_id = $data_system.version_id @dataList[@index] = [] # クリア @dataList[@index] << Time.now # セーブした時間:タイムスタンプとして利用 @dataList[@index] << characters @dataList[@index] << Graphics.frame_count @dataList[@index] << RPG::BGM::last @dataList[@index] << RPG::BGS::last @dataList[@index] << $game_system @dataList[@index] << $game_message @dataList[@index] << $game_switches @dataList[@index] << $game_variables @dataList[@index] << $game_self_switches @dataList[@index] << $game_actors @dataList[@index] << $game_party @dataList[@index] << $game_troop @dataList[@index] << $game_map @dataList[@index] << $game_player save_data_list # 保存 end #-------------------------------------------------------------------------- # ● セーブデータの読み込み ※ 再定義 #-------------------------------------------------------------------------- def read_save_data Graphics.frame_count = @dataList[@index][2] @last_bgm = @dataList[@index][3] @last_bgs = @dataList[@index][4] $game_system = @dataList[@index][5] $game_message = @dataList[@index][6] $game_switches = @dataList[@index][7] $game_variables = @dataList[@index][8] $game_self_switches = @dataList[@index][9] $game_actors = @dataList[@index][10] $game_party = @dataList[@index][11] $game_troop = @dataList[@index][12] $game_map = @dataList[@index][13] $game_player = @dataList[@index][14] if $game_system.version_id != $data_system.version_id $game_map.setup($game_map.map_id) $game_player.center($game_player.x, $game_player.y) end end #-------------------------------------------------------------------------- # ● ファイル破棄の実行 #-------------------------------------------------------------------------- def file_delete @dataList[@index] = [] # クリア save_data_list end end
-
SwapTX L'applicazione definitiva per cambiare tileset/passaggi più semplicemente!!! Nome Script: SwapXT Versione: 1.0 Autore/i: BulletXT Informazioni: Con questo script e programma,possiamo utilizzare quanti tileset vogliamo troncando nettamente la limitazione impostata sul VX. Dalla versione precedente,questa ha subito una forte miglioria,diventando l'applicazione definitiva =) Screenshots: Istruzioni: - Scaricare ed inserite lo script nel vostro progetto - Scaricare ed installate il programma - Una volta aperto il programma vi verrà chiesto di scegliere il progetto che volete modificare selezionando il file Game.ini - Ora inserite tutti i tileset che volete cambiare creando una cartella in Graphics/System /extra_tiles - Utilizzare le prime due schede del programma per cambiare tileset/passabilità per poi mappare - Utilizzare la terza scheda per applicare lo swap a un'ID mappa e modificare quelle esistenti - Utilizzare la terza scheda per swappare i tile in tempo reale Script: =begin SwapXT Version: 1.0 Author: Marco Di Antonio ([email protected]) Nickname: BulletXt Date: 14/07/2010 This is SwapXT script that must be put in your VX game script section. It's Plug&Play. Use SwapXT application to do swaps once you put this into your VX game. =end ############################# CONFIGURATION #################################### #Switch ID. #If ON, your events will not swap according to tiles and will use default tiles. DISABLE_EVENT_SWAPPING = 100 =begin IGNORE the following two switches IDs unless you are using old 0.4 swapping script found at: http://lodestone2d.svn.sourceforge.net/viewvc/lodestone2d/Scripts-Dev/Swap_TileSet/Swap_tile_new_passage_setting.rb . If you are, set the 2 ID switches to ensure compatibility with your current "old system" swaps. The meaning of these two switches are described on the old 0.4 script, and you should already have confidence with them if you need these. =end SWAP_TILE = 9999 LOAD_PASSAGE_SETTING = 9998 ########################## END CONFIGURATION ################################### #============================================================================== # ** Cache module Cache_Swap_Tiles #error message in case user is swapping tiles #on a map with both old and new system def self.error_message(map_id) $bulletxt_error_message_mixed_swapping_configuration = "BulletXt Message: on this map ID " + map_id.to_s() + " you have a dangerous configuration. You are swapping tilesets from events and from the swapping application. Mixed configuration is not allowed. Please decide which system to use to swap your tiles. I highly suggest to swap tilesets using the swapping application. If you decide to do this, please be sure you turn off the swapping switch ID " + SWAP_TILE.to_s() + " before entering this map. I will close the game for security reasons." #get rid of n array = $bulletxt_error_message_mixed_swapping_configuration.split("n") size = array.length() n = 0 f = "" while n < size do message = array[n] f = f + message n = n + 1 end $bulletxt_error_message_mixed_swapping_configuration = f end #error message in case user is swapping passage settings #on a map with both old and new system def self.error_message_passage(map_id) $bulletxt_error_message_mixed_swapping_configuration = "BulletXt Message: on this map ID " + map_id.to_s() + " you have a dangerous configuration. You are swapping a passage settings from events and from the swapping application. Mixed configuration is not allowed. Please decide which system to use to swap your passage settings. I highly suggest to swap passage settings using the swapping application. If you decide to do this, please be sure you turn off the swapping passage setting switch ID " + LOAD_PASSAGE_SETTING.to_s() + " before entering this map. I will close the game for security reasons." #get rid of n array = $bulletxt_error_message_mixed_swapping_configuration.split("n") size = array.length() n = 0 f = "" while n < size do message = array[n] f = f + message n = n + 1 end $bulletxt_error_message_mixed_swapping_configuration = f end #-------------------------------------------------------------------------- # * Get Character Graphic # filename : Filename #-------------------------------------------------------------------------- def self.swap(filename) load_bitmap("Graphics/System/extra_tiles/", filename) end #-------------------------------------------------------------------------- # * Clear Cache #-------------------------------------------------------------------------- def self.clear @cache = {} if @cache == nil @cache.clear GC.start end #-------------------------------------------------------------------------- # * Load Bitmap #-------------------------------------------------------------------------- def self.load_bitmap(folder_name, filename, hue = 0) @cache = {} if @cache == nil path = folder_name + filename if not @cache.include?(path) or @cache[path].disposed? if filename.empty? @cache[path] = Bitmap.new(32, 32) else @cache[path] = Bitmap.new(path) end end if hue == 0 return @cache[path] else key = [path, hue] if not @cache.include?(key) or @cache[key].disposed? @cache[key] = @cache[path].clone @cache[key].hue_change(hue) end return @cache[key] end end end ################################################################################ ############ CHECK IF THERE ARE SWAPPED TILES AT START PLAY TIME ############### =begin We must ensure user is starting game and there are physically swapped tiles or passage settings, tiles that have been for example swapped from the application =end class Scene_Title < Scene_Base alias swapxt_start start def start swapxt_start check_if_tileset_swapped_exist check_if_passage_swapped_exist end def check_if_tileset_swapped_exist tile = "Graphics/System/swapped_" tileset_swap_loaded_message_error if FileTest.exist?(tile + "A1.png") tileset_swap_loaded_message_error if FileTest.exist?(tile + "A2.png") tileset_swap_loaded_message_error if FileTest.exist?(tile + "A3.png") tileset_swap_loaded_message_error if FileTest.exist?(tile + "A4.png") tileset_swap_loaded_message_error if FileTest.exist?(tile + "A5.png") tileset_swap_loaded_message_error if FileTest.exist?(tile + "B.png") tileset_swap_loaded_message_error if FileTest.exist?(tile + "C.png") tileset_swap_loaded_message_error if FileTest.exist?(tile + "D.png") tileset_swap_loaded_message_error if FileTest.exist?(tile + "E.png") end def tileset_swap_loaded_message_error p sprintf("SwapXT Error: You are not allowed to start your game with swapped tilesets. You must unload your tilesets with SwapXT application first. Open SwapXT, click at top Tools->Restore all Tilesets") exit end def check_if_passage_swapped_exist passage = "swapxt/passage_warning.stx" passage_swap_loaded_message_error if FileTest.exist?(passage) end def passage_swap_loaded_message_error p sprintf("SwapXT Error: You are not allowed to start your game with swapped passage settings. You must unload your passage setting with SwapXT application first. Open SwapXT, go on PassageSetting tab and click on Restore to Default.") exit end end ################################################################################ =begin this class takes care of checking if there is a map id file. this class does not swap tilesets but only prepares the tiles variables(if map id file found). this class handles loading the passage setting file, for both old and new system =end class Game_Map include Cache_Swap_Tiles alias bulletxt_goodbye_vx_limit_tile_setup setup def setup(map_id) #must be false at load time $swapxt_realtime = false #this variable must always be false at runtime. #becomes true only if it finds a map id file $swap_tileset_profile_bulletxt = false #check if it must load a saved profile TILESET for this map id profile_path_tile = "swapxt/tiles/" + map_id.to_s() + ".stx" if FileTest.exist?(profile_path_tile) #we must now check if user isn't fooling around with his configuration. #he must not be swapping tiles on this map with old and new system #at the same time. if this is the case, warn him we don't want issues and #close the game if $game_switches[SWAP_TILE] == true Cache_Swap_Tiles.error_message(map_id) p sprintf($bulletxt_error_message_mixed_swapping_configuration) exit end #set this to true so we know we want to swap with new system $swap_tileset_profile_bulletxt = true #p sprintf(profile_path_tile + " found!") #read the map id file, it has 8 lines with the name of the tileset to swap. #set each tileset global variable with the corresponding found line, in order. $tileA1,$tileA2,$tileA3,$tileA4,$tileA5,$tileB,$tileC,$tileD,$tileE = File.read(profile_path_tile).split("n") end ##################### SWAP PASSSAGE SETTINGS ########################## @swap_passagesetting_bulletxt = false #for how this works, look at the code above profile_path_passages = "swapxt/passages/" + map_id.to_s() + ".stx" if FileTest.exist?(profile_path_passages) #p sprintf("passage exists on map " + map_id.to_s()) if $game_switches[LOAD_PASSAGE_SETTING] == true Cache_Swap_Tiles.error_message_passage(map_id) p sprintf($bulletxt_error_message_mixed_swapping_configuration) exit end @swap_passagesetting_bulletxt = true $swap_passages = (File.read(profile_path_passages).split("n"))[0] end #checks if it should load default passage setting, both for old and new system if $game_switches[LOAD_PASSAGE_SETTING] == false and @swap_passagesetting_bulletxt == false bulletxt_goodbye_vx_limit_tile_setup(map_id) $swap_passages = nil return end path = "Graphics/System/extra_tiles/" + $swap_passages.to_s() + ".rvdata" rescue nil #check if user set $swap_passages to nil cause he wants to load default setting. #if user is loading with new system checks if it's equal to empty::*:: if $swap_passages == nil or $swap_passages == "empty::*::" bulletxt_goodbye_vx_limit_tile_setup(map_id) return end #when here, we are sure user wants to swap passage setting, either #via old system or new system #the file to swap is not default one, he wants to swap to a real new one @map_id = map_id @map = load_data(sprintf("Data/Map%03d.rvdata", @map_id)) @display_x = 0 @display_y = 0 # load system settings from that file new_system_rvdata = load_data(path) # Use passage settings from that file @passages = new_system_rvdata.passages #default vx code referesh_vehicles setup_events setup_scroll setup_parallax @need_refresh = false end ############################# REAL TIME SWAPS ################################## #if here, player has done a $game_map.tileset call. It must reload #map with new passage setting (if it exists) and upate map. #OLD SYSTEM def tileset #if false, we must update and load default passage if $game_switches[LOAD_PASSAGE_SETTING] == false @passages = $data_system.passages else #if nil, must reset passage setting to default if $swap_passages == nil @passages = $data_system.passages $scene = Scene_Map.new return end path = "Graphics/System/extra_tiles/" + $swap_passages + ".rvdata" rescue nil # load system settings from that file new_system_rvdata = load_data(path) # Use passage settings from that file @passages = new_system_rvdata.passages end #this updates the map tiles. it does not modify events or anything else. $scene = Scene_Map.new end #if here, player has done a $game_map.swapxt() call. It must reload #map with new passage setting (if it exists) and upate map. #NEW SWAPXT SYSTEM def swapxt(integer) rtx_path = "swapxt/realtime/" + integer.to_s() + ".rtx" if !FileTest.exist?(rtx_path ) p sprintf("SwapXT Error: You have called $game_map.swapxt(" + integer.to_s() + ") , but that Real-Time swap doesn't exist. Please better check it inside SwapXT app, under the Real-Time section.") exit end $tileA1,$tileA2,$tileA3,$tileA4,$tileA5,$tileB,$tileC,$tileD,$tileE,passage = File.read(rtx_path).split("n") path = "Graphics/System/extra_tiles/" + passage + ".rvdata" rescue nil if !FileTest.exist?(path) p sprintf("SwapXT Error: Unable to find " + path + ". Please go and check your existant passages from SwapXT in the PassageSetting section.") exit end $swapxt_realtime = true #warning,realtime update must occur # load system settings from that file new_system_rvdata = load_data(path) # Use passage settings from that file @passages = new_system_rvdata.passages #this updates the map tiles. it does not modify events or anything else. $scene = Scene_Map.new end end #this class handles loading tilesets class Spriteset_Map include Cache_Swap_Tiles alias bulletxt_lodestone_create_tilemap create_tilemap def create_tilemap #if true, it means the map doesn't have to load tilesets, #neither for old swapping system or new system. #if true, also means no realtime update occured #it must load DEFAULT tilesets if $game_switches[SWAP_TILE] == false and $swap_tileset_profile_bulletxt == false and $swapxt_realtime == false bulletxt_lodestone_create_tilemap $tileA1 = nil $tileA2 = nil $tileA3 = nil $tileA4 = nil $tileA5 = nil $tileB = nil $tileC = nil $tileD = nil $tileE = nil return end =begin calling the original function is a trick. if there are tiles to swap it will just replace them, otherwise if a tile is nil it won't swap anything, but still the tile will be loaded because it has already loaded the original tile when calling this function. in other words, if setting a tile$n = nil will simply make the script load default tile. =end bulletxt_lodestone_create_tilemap =begin when here, some/all tiles must be swapped, either old or with new system. the tile can be equal to "empty::*::" only if it found the file id of the map and line$n is equal to empty::*::. in that case it must load default tileset. there are no chances a user with old system is swapping a tileset named "empty::*::" because you can't name files with ":" characters under Microsoft Windows OS. =end path_to_graphic = "extra_tiles/" #tileA1 if $tileA1 == "empty::*::" @tilemap.bitmaps[0] = Cache.system("TileA1") else tile1 = Cache_Swap_Tiles.swap($tileA1 + ".png") rescue nil @tilemap.bitmaps[0] = tile1 if $tileA1 != nil end #tileA2 if $tileA2 == "empty::*::" @tilemap.bitmaps[1] = Cache.system("TileA2") else tile2 = Cache_Swap_Tiles.swap($tileA2 + ".png") rescue nil @tilemap.bitmaps[1] = tile2 if $tileA2 != nil end #tileA3 if $tileA3 == "empty::*::" @tilemap.bitmaps[2] = Cache.system("TileA3") else tile3 = Cache_Swap_Tiles.swap($tileA3 + ".png") rescue nil @tilemap.bitmaps[2] = tile3 if $tileA3 != nil end #tileA4 if $tileA4 == "empty::*::" @tilemap.bitmaps[3] = Cache.system("TileA4") else tile4 = Cache_Swap_Tiles.swap($tileA4 + ".png") rescue nil @tilemap.bitmaps[3] = tile4 if $tileA4 != nil end #tileA5 if $tileA5 == "empty::*::" @tilemap.bitmaps[4] = Cache.system("TileA5") else tile5 = Cache_Swap_Tiles.swap($tileA5 + ".png") rescue nil @tilemap.bitmaps[4] = tile5 if $tileA5 != nil end #tileB if $tileB == "empty::*::" @tilemap.bitmaps[5] = Cache.system("TileB") else tile6 = Cache_Swap_Tiles.swap($tileB + ".png") rescue nil @tilemap.bitmaps[5] = tile6 if $tileB != nil end #tileC if $tileC == "empty::*::" @tilemap.bitmaps[6] = Cache.system("TileC") else tile7 = Cache_Swap_Tiles.swap($tileC + ".png") rescue nil @tilemap.bitmaps[6] = tile7 if $tileC != nil end #tileD if $tileD == "empty::*::" @tilemap.bitmaps[7] = Cache.system("TileD") else tile8 = Cache_Swap_Tiles.swap($tileD + ".png") rescue nil @tilemap.bitmaps[7] = tile8 if $tileD != nil end #tileE if $tileE == "empty::*::" @tilemap.bitmaps[8] = Cache.system("TileE") else tile9 = Cache_Swap_Tiles.swap($tileE + ".png") rescue nil @tilemap.bitmaps[8] = tile9 if $tileE != nil end #closes def end #closes class end ########################## SWAP EVENT'S GRAPHICS ############################# #the following class handles swapping event's graphics according to the tiles class Sprite_Character < Sprite_Base include Cache_Swap_Tiles alias swap_tileset_bitmap tileset_bitmap def tileset_bitmap(tile_id) #do not swap events if true if $game_switches[DISABLE_EVENT_SWAPPING] set_number = tile_id / 256 return Cache.system("TileB") if set_number == 0 return Cache.system("TileC") if set_number == 1 return Cache.system("TileD") if set_number == 2 return Cache.system("TileE") if set_number == 3 return nil return end if $game_switches[SWAP_TILE] == false and $swap_tileset_profile_bulletxt == false and $swapxt_realtime == false set_number = tile_id / 256 return Cache.system("TileB") if set_number == 0 return Cache.system("TileC") if set_number == 1 return Cache.system("TileD") if set_number == 2 return Cache.system("TileE") if set_number == 3 return nil return end swap_tileset_bitmap(tile_id) set_number = tile_id / 256 if $tileB == "empty::*::" return Cache.system("TileB") if set_number == 0 else return Cache_Swap_Tiles.swap($tileB) if set_number == 0 rescue nil end if $tileC == "empty::*::" return Cache.system("TileC") if set_number == 1 else return Cache_Swap_Tiles.swap($tileC) if set_number == 1 rescue nil end if $tileD == "empty::*::" return Cache.system("TileD") if set_number == 2 else return Cache_Swap_Tiles.swap($tileD) if set_number == 2 rescue nil end if $tileE == "empty::*::" return Cache.system("TileE") if set_number == 3 else return Cache_Swap_Tiles.swap($tileE) if set_number == 3 rescue nil end return nil end end =begin saves tiles and passage setting variables, needed if you save on a map that has swapped stuff. this is only needed when using old system, because new system reads the value from the map id file =end class Scene_File < Scene_Base alias bulletxt_swap_tiles_write_save_data write_save_data def write_save_data(file) bulletxt_swap_tiles_write_save_data(file) Marshal.dump($tileA1, file) Marshal.dump($tileA2, file) Marshal.dump($tileA3, file) Marshal.dump($tileA4, file) Marshal.dump($tileA5, file) Marshal.dump($tileB, file) Marshal.dump($tileC, file) Marshal.dump($tileD, file) Marshal.dump($tileE, file) Marshal.dump($swap_passages.to_s(), file) Marshal.dump($swap_tileset_profile_bulletxt, file) Marshal.dump($swapxt_realtime, file) end alias bulletxt_swap_tiles_read_save_data read_save_data def read_save_data(file) bulletxt_swap_tiles_read_save_data(file) $tileA1 = Marshal.load(file) $tileA2 = Marshal.load(file) $tileA3 = Marshal.load(file) $tileA4 = Marshal.load(file) $tileA5 = Marshal.load(file) $tileB = Marshal.load(file) $tileC = Marshal.load(file) $tileD = Marshal.load(file) $tileE = Marshal.load(file) $swap_passages = Marshal.load(file) $swap_tileset_profile_bulletxt = Marshal.load(file) $swapxt_realtime = Marshal.load(file) end end Demo: http://www.mediafire.com/?g2mg7nkp6fy1nax Incompatibilità: Incompatibile con lo script Wall Tile Extension. Compatibile con la versione precedente di swap.
-
Nome Script: Khas Script Core Versione: 1.0 Autore/i: Khas Informazioni: Il Khas Script Core è un insieme di classi, moduli, metodi, etc che verrà utilizzato su tutti gli altri script che creerà l'autore. Funzionerà più o meno un pò come l'SDK presente per XP... Istruzioni: Inserite lo script sotto Material... Script: #------------------------------------------------------------------------------- # * [RMVX] Khas Script Core #------------------------------------------------------------------------------- # * This script will activate and enhance compatibility of all Khas' Scripts # * Este script irá ativar a compatibilidade entre todos os scripts Khas #------------------------------------------------------------------------------- # * By Khas ([email protected]) # * Version: 1.0 # * Released on: 08/06/2010 # #------------------------------------------------------------------------------- # Terms of Use: #------------------------------------------------------------------------------- # * ENGLISH # All Khas' Scripts are licensed under a Creative Commons license # All Khas' Scripts are for non-commercial projects, if you need # them for a commercial game, please send a email to [email protected] # All Khas' Scripts are for personal use, you can edit them and use in your # own project, but you can't post any modified version without my permission # # * PORTUGUES # Todos os scripts Khas estão sob licença Creative Commons # Todos os scripts Khas são para projetos não comerciais, se você precisar em # seu projeto comercial, envie um email para [email protected] com o pedido # Todos os scripts Khas são para uso pessoal, você pode usar e editar para uso # no seu projeto, porém você não pode postar nenhuma versão modificada sem # a minha permissão # #------------------------------------------------------------------------------- # Installation: #------------------------------------------------------------------------------- # * ENGLISH # 1) This script should be placed after "Materials" and before any Khas' Scripts # 2) Setup this script in Setup Part below. # # *PORTUGUES # 1)Este script tem que ser colocado depois dos "Scripts Adicionais" e antes # de qualquer script Khas # 2) Configure o script na parte de configuração # #------------------------------------------------------------------------------- # Released Khas' Scripts: #------------------------------------------------------------------------------- # 13/06/2010 - Neo Light Effects 1.0 # 15/06/2010 - Khas Neo Title 1.0 # #------------------------------------------------------------------------------- # Setup Part #------------------------------------------------------------------------------- module Core # Khas scripts language | Lingua dos scripts Khas # 0 - English | 0 - Ingles # 1 - Portuguese | 1 - Portugues Language = 1 #------------------------------------------------------------------------------- # End of Setup Part #------------------------------------------------------------------------------- @scripts = {} def self.version return 1.0 end def self.register(script,version) @scripts[script] = version end def self.enabled?(script,version=1) en = @scripts.has_key?(script) ? true : false; return en unless en return (en and @scripts[script] >= version) end def self.load_matrix; $pixel_matrix = {} for x in 0..543 $pixel_matrix[x] = {} end for x in 0..543 for y in 0..415 $pixel_matrix[x][y] = (57.3*Math.atan2(272-x,208-y)).to_i end end end def self.require(script,from,version = 1.0) unless @scripts.has_key(script) if Language == 1 p "O script #{from} precisa do script #{script}" p "Por favor, instale o #{script} #{version}" else p "The script #{from} requires #{script}" p "Please install the #{script} #{version}" end exit else unless @scripts[script] >= version if Language == 1 p "#{script} #{version} é antigo" p "Por favor, instale o #{script} #{version}" else p "#{script} #{version} is obsolete" p "Please install the #{script} #{version}" end exit end end end def self.enter_fs $showm = Win32API.new 'user32', 'keybd_event', %w(l l l l), ' ' $showm.call(18,0,0,0) $showm.call(13,0,0,0) $showm.call(13,0,2,0) $showm.call(18,0,2,0) end end $enabled_core = Core.version module Cache def self.particle(filename) load_bitmap("Graphics/Particles/", filename) end def self.title(filename) load_bitmap("Graphics/Title/", filename) end end module Bitcore @cached_bitmaps = {} def self.add(bitmap,key) if @cached_bitmaps.has_key?(key) p "Bitcore error!"; p "Cached bitmap: #{key}" else @cached_bitmaps[key] = bitmap end end def self::[](key) return @cached_bitmaps[key] end def self.delete(key) unless @cached_bitmaps.has_key?(key) p "Bitcore error!"; p "Uncached bitmap: #{key}" else @cached_bitmaps[key].dispose @cached_bitmaps.delete(key) end end def self.reset @cached_bitmaps.keys.each { |i| @cached_bitmaps[i].dispose } @cached_bitmaps.clear end def self.cached_bitmaps return @cached_bitmaps.keys end def self.cached_value return @cached_bitmaps.size end end class Neo_Effect attr_accessor :picture_name attr_accessor :opacity attr_accessor :color attr_accessor :blend_mode attr_accessor :angle attr_accessor :opacity_oscillation attr_accessor :ax attr_accessor :ay attr_accessor :hue_oscillation def initialize(picture, opacity, color=Tone.new(0,0,0), blend_mode=1, ax=0, ay=0, angle=0, op_os=0, hue=0) @picture_name = picture @opacity = opacity @color = color @blend_mode = blend_mode @angle = angle @opacity_oscillation = op_os @ax = ax @[member=ayrnvqrnsmij] = ay @hue_oscillation = (hue == 0 ? false : hue) end end class Title_Effect attr_accessor :picture_name attr_accessor :opacity attr_accessor :position attr_accessor :blend_mode attr_accessor :angle attr_accessor :ax attr_accessor :ay attr_accessor :z def initialize(picture, plane=false, z=1, op=255, pos=[0,0,0], blend=1, angle=0, ax=0, ay=0) @picture_name = picture @opacity = op @position = pos @blend_mode = blend @angle = angle @ax = ax @[member=ayrnvqrnsmij] = ay @z = z @plane = plane end def plane? return @plane end end
-
Nome Script: Simple Mouse System Versione: 1.5 Autore/i: Woratana Informazioni: Un semplice script che implementa il mouse in rpgmvx Istruzioni: Inserire un immagine desiderata nella cartela system e rinominatela foxkeh_cursor. Demo: http://www.mediafire.com/?l4nzlj5nokj
-
System Mod RMX-OS [RPG Maker XP Online System]
Ally ha aggiunto un topic in Scripts RPG Maker XP (RGSS)
Nome Script: RMX-OS [RPG Maker XP Online System] Versione: v. 1.18 Autore/i: Blizzard Informazioni: Script che permette di creare Giochi multiplayer online tramite rpg maker! Istruzioni: trovate tutto all'interno della demo. Demo: http://downloads.chaos-project.com/scri ... 201.18.zip Incompatibilità: Sconsigliato con l'SDK