-
Numero contenuti
1074 -
Iscritto
-
Ultima visita
-
Days Won
17
Tipo di contenuto
Profili
Calendario
Forum
Gallery
Downloads
Tutti i contenuti di Ally
-
Nome script: Scrolling Description Text Versione: Rgss2 Autore: BigEd781 Informazioni: Quante volte avete scritto le descrizioni degli oggetti e non c'era lo spazio necessario e quindi dovevate ridurre le parole all'osso?Ora con questo script il testo potrà scorrere e voi potrete scrivere quello che vorrete. Screenshots: N/A in fondo è solo un testo che scorre Istruzioni: Potrete cambiare le impostazioni di scorrimento cambiando queste righe di testo: @@SCROLL_DELAY = 3 # seconds@@SCROLL_SPEED = 1 # pixels / frame (60 frames / sec)@@SHOW_ICONS = true # display icons for items and skills? Script:[/b[ class Sprite def draw_icon(icon_index, x, y, enabled = true)bitmap = Cache.system("Iconset")rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)self.bitmap.blt(x, y, bitmap, rect, enabled ? 255 : 128) endendclass Window_Help < Window_Base @@SCROLL_DELAY = 2 # seconds @@SCROLL_SPEED = 1 # pixels / frame (60 frames / sec) @@SHOW_ICONS = true # display icons for items and skills? alias :scroll_init :initialize def initialize(*args)scroll_init(*args)@internal_frame_count = 0@text_is_long = false@icon_sprite = Sprite.new@icon_sprite.x = self.x + 16@icon_sprite.y = self.y + 16@icon_sprite.z = self.z + 1@icon_sprite.bitmap = Bitmap.new(32, 32)self.windowskin = get_altered_skin end def get_altered_skindefault = Cache.system('Window')window = Bitmap.new(default.width, default.height)window.blt(0, 0, default, default.rect)window.fill_rect(80, 16, 32, 32, Color.new(0,0,0,0))return window end def set_text(text, align = 0)unless (text == @text) && (align == @align) @internal_frame_count = 0 txt_width = self.contents.text_size(text).width @text_is_long = txt_width > (self.width - 32) self.contents.dispose w = @text_is_long ? (txt_width + self.width - 32) : self.width - 32 self.contents = Bitmap.new(w, self.height - 32) self.contents.clear self.ox = 0 self.contents.font.color = normal_color i = get_icon_index(text) unless i.nil?draw_sprite(i, 0, 0)self.contents.draw_text(32, 0, self.contents.width, WLH, text, align) else@icon_sprite.bitmap.clearself.contents.draw_text(4, 0, self.contents.width, WLH, text, align) end @text = text @align = alignend end def draw_sprite(icon_index, x, y)@icon_sprite.bitmap.clear# get the background image at 'rect'# so that text does not appear under the iconbitmap = Graphics.snap_to_bitmaprect = Rect.new(@icon_sprite.x, @icon_sprite.x,@icon_sprite.bitmap.width, @icon_sprite.bitmap.height)@icon_sprite.bitmap.blt(x, y, bitmap, rect)@icon_sprite.draw_icon(icon_index, x, y) end def get_icon_index(desc)return nil unless @@SHOW_ICONS$data_items.each do |item| return item.icon_index if !item.nil? && item.description == descend$data_weapons.each do |weapon| return weapon.icon_index if !weapon.nil? && weapon.description == descend$data_armors.each do |armor| return armor.icon_index if !armor.nil? && armor.description == descend$data_skills.each do |skill| return skill.icon_index if !skill.nil? && skill.description == descendreturn nil end def updatesuper@internal_frame_count += 1if ((@internal_frame_count > @@SCROLL_DELAY * 60) && @text_is_long) if self.ox >= (self.contents.width - self.width + 48) self.ox = 0@internal_frame_count = 0 else self.ox += @@SCROLL_SPEED endend end def disposesuper@icon_sprite.dispose endend
-
Nome script : Mog Basic Menu Plus V 1.0 Versione : Rgss2 Autore : MogHunter Informazioni Un nuovo stile di menù base che al posto del face, mette il charset e l'arma equipaggiata Screen: Script: ################################################# # Mog Basic Menu Plus V 1.0 # ################################################## # By Moghunter # revu par Berka ################################################## ############## # Game_Actor # ############## class Game_Actor < Game_Battler def now_exp return @[member='experience'] - @[member='experience']_list[@level] end def next_exp return @[member='experience']_list[@level+1] > 0 ? @[member='experience']_list[@level+1] - @[member='experience']_list[@level] : 0 end end ############### # Window_Base # ############### class Window_Base < Window def draw_item_icon(item, x, y) if item != nil draw_icon(item.icon_index, x, y) end end def draw_actor_level_menu(actor, x, y) self.contents.font.color = system_color self.contents.draw_text(x, y, 32, WLH, Vocab::level_a) self.contents.font.color = normal_color self.contents.draw_text(x + 16, y, 24, WLH, actor.level, 2) end def draw_actor_class_menu(actor, x, y) self.contents.font.color = normal_color self.contents.draw_text(x, y, 85, WLH, actor.class.name) end def exp_gauge_color1 return text_color(30) end def exp_gauge_color2 return text_color(31) end def draw_actor_exp_meter(actor, x, y, width = 100) if actor.next_exp != 0 exp = actor.now_exp else exp = 1 end gw = width * exp / [actor.next_exp, 1].max gc1 = exp_gauge_color1 gc2 = exp_gauge_color2 self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color) self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2) self.contents.font.color = system_color self.contents.draw_text(x, y, 30, WLH, "Exp") self.contents.font.color = normal_color xr = x + width self.contents.draw_text(xr - 60, y, 60, WLH, actor.next_rest_exp_s, 2) end end ##################### # Window_MenuStatus # ##################### class Window_MenuStatus < Window_Selectable def initialize(x, y) super(x, y, 384, 416) refresh self.active = false self.index = -1 end def refresh self.contents.clear @item_max = $game_party.members.size for actor in $game_party.members x = 104 y = actor.index * 96 + WLH / 2 draw_item_icon($data_weapons[actor.weapon_id], x -92, y + 20) if actor.two_swords_style draw_item_icon($data_weapons[actor.armor1_id], x -35, y + 20) else draw_item_icon($data_armors[actor.armor1_id], x -35, y + 20) end draw_actor_graphic(actor, x -50, y +46) draw_actor_name(actor, x, y) draw_actor_class_menu(actor, x + 120, y) draw_actor_level_menu(actor, x + 200, y) draw_actor_state(actor, x, y + WLH * 2) draw_actor_hp(actor, x + 120, y + WLH * 1) draw_actor_mp(actor, x + 120, y + WLH * 2) draw_actor_exp_meter(actor, x , y + WLH * 1) end end def update_cursor if @index < 0 self.cursor_rect.empty elsif @index < @item_max self.cursor_rect.set(0, @index * 96, contents.width, 96) elsif @index >= 100 self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96) else self.cursor_rect.set(0, 0, contents.width, @item_max * 96) end end end ############ # Game_Map # ############ class Game_Map attr_reader :map_id def mpname $mpname = load_data("Data/MapInfos.rvdata") $mpname[@map_id].name end end ############### # Window_Time # ############### class Window_Mapname < Window_Base def initialize(x, y) super(x, y, 160, WLH + 70) refresh end def refresh self.contents.clear self.contents.font.color = system_color self.contents.draw_text(4, 0, 120, 32, "Lieu :") self.contents.font.color = normal_color self.contents.draw_text(4, 32, 120, 32, $game_map.mpname.to_s, 2) end end ############### # Window_Time # ############### class Window_Time < Window_Base def initialize(x, y) super(x, y, 160, WLH + 66) refresh end def refresh self.contents.clear self.contents.font.color = system_color self.contents.draw_text(4, 0, 120, 32, "Temps de Jeu") @total_sec = Graphics.frame_count / Graphics.frame_rate hour = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 text = sprintf("%02d:%02d:%02d", hour, min, sec) self.contents.font.color = normal_color self.contents.draw_text(4, 32, 120, 32, text, 2) end def update super if Graphics.frame_count / Graphics.frame_rate != @total_sec refresh end end end ############## # Scene_Menu # ############## class Scene_Menu def main start perform_transition Input.update loop do Graphics.update Input.update update break if $scene != self end Graphics.update pre_terminate Graphics.freeze terminate end def initialize(menu_index = 0) @menu_index = menu_index end def create_menu_background @menuback_sprite = Sprite.new @menuback_sprite.bitmap = $game_temp.background_bitmap @menuback_sprite.color.set(16, 16, 16, 128) update_menu_background end def create_menu_background @menuback_sprite = Sprite.new @menuback_sprite.bitmap = $game_temp.background_bitmap @menuback_sprite.color.set(16, 16, 16, 128) update_menu_background end def dispose_menu_background @menuback_sprite.dispose end def update_menu_background end def perform_transition Graphics.transition(10) end def start create_menu_background create_command_window @gold_window = Window_Gold.new(0, 360) @status_window = Window_MenuStatus.new(160, 0) @playtime_window = Window_Time .new(0, 270) @mapname_window = Window_Mapname.new(0, 176) @status_window.openness = 0 @playtime_window.openness = 0 @mapname_window.openness = 0 @gold_window.openness = 0 @status_window.open @playtime_window.open @mapname_window.open @gold_window.open end def pre_terminate @status_window.close @playtime_window.close @mapname_window.close @gold_window.close @command_window.close begin @status_window.update @playtime_window.update @mapname_window.update @gold_window.update @command_window.update Graphics.update end until @status_window.openness == 0 end def terminate dispose_menu_background @command_window.dispose @gold_window.dispose @status_window.dispose @playtime_window.dispose @mapname_window.dispose end def update update_menu_background @command_window.update @gold_window.update @status_window.update @mapname_window.update @playtime_window.update if @command_window.active update_command_selection elsif @status_window.active update_actor_selection end end def create_command_window s1 = Vocab::item s2 = Vocab::skill s3 = Vocab::equip s4 = Vocab::status s5 = Vocab::save s6 = Vocab::game_end @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6]) @command_window.index = @menu_index @command_window.openness = 0 @command_window.open if $game_party.members.size == 0 @command_window.draw_item(0, false) @command_window.draw_item(1, false) @command_window.draw_item(2, false) @command_window.draw_item(3, false) end if $game_system.save_disabled @command_window.draw_item(4, false) end end def update_command_selection if Input.trigger?(Input:: Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) if $game_party.members.size == 0 and @command_window.index < 4 Sound.play_buzzer return elsif $game_system.save_disabled and @command_window.index == 4 Sound.play_buzzer return end Sound.play_decision case @command_window.index when 0 $scene = Scene_Item.new when 1,2,3 start_actor_selection when 4 $scene = Scene_File.new(true, false, false) when 5 $scene = Scene_End.new end end end def start_actor_selection @command_window.active = false @status_window.active = true if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end def end_actor_selection @command_window.active = true @status_window.active = false @status_window.index = -1 end def update_actor_selection if Input.trigger?(Input:: Sound.play_cancel end_actor_selection elsif Input.trigger?(Input::C) $game_party.last_actor_index = @status_window.index Sound.play_decision case @command_window.index when 1 $scene = Scene_Skill.new(@status_window.index) when 2 $scene = Scene_Equip.new(@status_window.index) when 3 $scene = Scene_Status.new(@status_window.index) end end end end $mogscript = {} if $mogscript == nil $mogscript["basic_menu_plus"] = true
-
Nome Script: Debug In Battaglia Versione: 1.00 Autore/i: kingartur2 Informazioni: Se si sta testando un nemico, a volte può risultare difficile perchè dovete fare varie prove, far evitare la sconfitta, e dovete far abbassare il livello del nemico per vedere la sua forza giusta... Questo Script è proprio un Maker Tool, e giustamente funziona solo se si è in Test Battaglia o Modalità Test. Potrete sottrarre o aggiungere Hp ed Mp ai nemici e agli eroi, e modificare le loro statistiche (Attacco, difesa....). Features: - Questo Script funziona solo in modalità Test Battaglia (che si avvia da Test Battaglia nella scheda Truppe/Gruppi Nemici del database) o in modalità Test, quella che si avvia da RPG Maker VX. - Ha la funzionalità di cambiare le Statistiche (Attacco, Difesa, Velocità ed Intelligenza) dei nemici e degli eroi. - Ha la funzionalità di sotrarre e far recuperare HP ed MP a Nemici ed Eroi. Screenshots: Non badate a quel mezzo viso al posto del nome, riguarda un altro script che poi posterò tradotto. Istruzioni: Creare una nuova voce sopra Main e sotto Materials ed inserire lo script. E' assolutamente sconsigliato modificare lo script, dato che non necessita di configurazioni Script: #=============================================================================== # Debug In Battaglia #=============================================================================== # Autore : kingartur2 # Versione : 1.00 #=============================================================================== # Istruzioni # Premere F7 in battaglia per aprire il menu. # Una volta terminato premere ESC per uscire #=============================================================================== class Scene_Battle alias fujdosikpla update def update if ($TEST or $BTEST) and (Input.trigger?(Input::F7)) create_debug_window end if ($TEST or $BTEST) and (@debug_window != nil) loop do update_debug_window if @debug_window.nil? break end end Input.update end fujdosikpla end def create_debug_window commands = ["Modifica Hp Eroi", "Modifica Hp Nemici", "Modifica Mp Eroi", "Modifica MP Nemici", "Cambia Stat Eroi", "Cambia Stat Nemici"] @debug_window = Window_Command.new(250, commands) @debug_window.active = true @debug_window.z = 9999 @debug_window.x = (Graphics.width / 2) - (@debug_window.width / 2) @debug_window.y = Graphics.height - (128 + @debug_window.height) commands_0 = [] for i in $game_party.members commands_0.push(i.name) end @d_actor_window = Window_Command.new(120, commands_0) @d_actor_window.z = 9999 @d_actor_window.x = (@debug_window.x + @debug_window.width) @d_actor_window.y = (@debug_window.y / 2) + (@d_actor_window.height / 2) @d_actor_window.visible = false @d_actor_window.active = false commands_1 = [] for i in $game_troop.members commands_1.push(i.name) end @d_enemy_window = Window_Command.new(120, commands_1) @d_enemy_window.z = 9999 @d_enemy_window.x = (@debug_window.x + @debug_window.width) @d_enemy_window.y = (@debug_window.y / 2) + (@d_enemy_window.height / 2) @d_enemy_window.visible = false @d_enemy_window.active = false @change_variable_window = Window_Base.new(0, 0, @debug_window.width, 64) @change_variable_window.x = @debug_window.x @change_variable_window.y = (@debug_window.y - @change_variable_window.height) @change_variable_window.z = 9999 @change_variable_window.visible = false commands_2 = ["Hp Max", "Mp Max", "Attacco", "Difesa", "Intelligenza", "Agilità"] stat_width = Graphics.width - (Graphics.width - @debug_window.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> @stat_window = Window_Command.new(stat_width, commands_2) @stat_window.active = true @stat_window.z = 9999 @stat_window.x = 0 @stat_window.y = @debug_window.y @stat_window.active = false @stat_window.visible = false @text_to_add = "" @variable_to_change = "" end def update_debug_window Graphics.update Input.update if @debug_window.active @debug_window.update if Input.trigger?(Input::C) case @debug_window.index when 0, 2, 4 @debug_window.active = false @d_actor_window.visible = true @d_actor_window.active = true when 1, 3, 5 @debug_window.active = false @d_enemy_window.visible = true @d_enemy_window.active = true end elsif Input.trigger?(Input:: @d_enemy_window.dispose @d_actor_window.dispose @change_variable_window.dispose @debug_window.dispose @debug_window = nil for i in $game_party.members if i.hp <= 0 i.add_state(1) end end for i in $game_troop.members if i.hp <= 0 i.add_state(1) i.perform_collapse end end end elsif @d_actor_window.active @d_actor_window.update if Input.trigger?(Input::C) if @debug_window.index == 0 @variable_to_change = "$game_party.members[#{@d_actor_window.index}].hp" @text_to_add = "Hp #{$game_party.members[@d_actor_window.index].name} :" @change_variable_window.visible = true @change_variable_window.active = true @change_variable_window.contents.clear @change_variable_window.contents.draw_text(0, 0, @debug_window.width - 32, 32, (@text_to_add + eval(@variable_to_change).to_s), 1) @d_actor_window.active = false elsif @debug_window.index == 2 @variable_to_change = "$game_party.members[#{@d_actor_window.index}].mp" @text_to_add = "Mp #{$game_party.members[@d_actor_window.index].name} :" @change_variable_window.visible = true @change_variable_window.active = true @change_variable_window.contents.clear @change_variable_window.contents.draw_text(0, 0, @debug_window.width - 32, 32, (@text_to_add + eval(@variable_to_change).to_s), 1) @d_actor_window.active = false elsif @debug_window.index == 4 @stat_window.visible = true @stat_window.active = true @d_actor_window.active = false end elsif Input.trigger?(Input:: @d_actor_window.active = false @d_actor_window.visible = false @debug_window.active = true end elsif @d_enemy_window.active @d_enemy_window.update if Input.trigger?(Input::C) if @debug_window.index == 1 @variable_to_change = "$game_troop.members[#{@d_enemy_window.index}].hp" @text_to_add = "Hp #{$game_troop.members[@d_enemy_window.index].name} :" @change_variable_window.visible = true @change_variable_window.active = true @change_variable_window.contents.clear @change_variable_window.contents.draw_text(0, 0, @debug_window.width - 32, 32, (@text_to_add + eval(@variable_to_change).to_s), 1) @d_enemy_window.active = false elsif @debug_window.index == 3 @variable_to_change = "$game_troop.members[#{@d_enemy_window.index}].mp" @text_to_add = "Mp #{$game_troop.members[@d_enemy_window.index].name} :" @change_variable_window.visible = true @change_variable_window.active = true @change_variable_window.contents.clear @change_variable_window.contents.draw_text(0, 0, @debug_window.width - 32, 32, (@text_to_add + eval(@variable_to_change).to_s), 1) @d_enemy_window.active = false elsif @debug_window.index == 5 @stat_window.visible = true @stat_window.active = true @d_enemy_window.active = false end elsif Input.trigger?(Input:: @d_enemy_window.active = false @d_enemy_window.visible = false @debug_window.active = true end elsif @variable_to_change != "" @change_variable_window.update if Input.repeat?(Input::LEFT) eval(@variable_to_change + " -= 1") @change_variable_window.contents.clear @change_variable_window.contents.draw_text(0, 0, @debug_window.width - 32, 32, (@text_to_add + eval(@variable_to_change).to_s), 1) @status_window.refresh elsif Input.repeat?(Input::RIGHT) eval(@variable_to_change + " += 1") @change_variable_window.contents.clear @change_variable_window.contents.draw_text(0, 0, @debug_window.width - 32, 32, (@text_to_add + eval(@variable_to_change).to_s), 1) @status_window.refresh elsif Input.repeat?(Input::UP) eval(@variable_to_change + " += 10") @change_variable_window.contents.clear @change_variable_window.contents.draw_text(0, 0, @debug_window.width - 32, 32, (@text_to_add + eval(@variable_to_change).to_s), 1) @status_window.refresh elsif Input.repeat?(Input::DOWN) eval(@variable_to_change + " -= 10") @change_variable_window.contents.clear @change_variable_window.contents.draw_text(0, 0, @debug_window.width - 32, 32, (@text_to_add + eval(@variable_to_change).to_s), 1) @status_window.refresh elsif Input.trigger?(Input:: or Input.trigger?(Input::C) @variable_to_change = "" @text_to_add = "" @change_variable_window.visible = false @change_variable_window.active = false if @stat_window.visible @stat_window.active = true elsif @d_actor_window.visible @d_actor_window.active = true elsif @d_enemy_window.visible @d_enemy_window.active = true end end elsif @stat_window.active @stat_window.update if Input.trigger?(Input::C) if @d_actor_window.visible asd = "$game_party.members[#{@d_actor_window.index}]" else asd = "$game_troop.members[#{@d_enemy_window.index}]" end case @stat_window.index when 0 @variable_to_change = asd + ".maxhp" @text_to_add = (eval((asd + ".name")) + " Hp Max :") when 1 @variable_to_change = asd + ".maxmp" @text_to_add = (eval((asd + ".name")) + " Mp Max :") when 2 @variable_to_change = asd + ".atk" @text_to_add = (eval((asd + ".name")) + " Attacco :") when 3 @variable_to_change = asd + ".def" @text_to_add = (eval((asd + ".name")) + " Difesa :") when 4 @variable_to_change = asd + ".spi" @text_to_add = (eval((asd + ".name")) + " Intelligenza :") when 5 @variable_to_change = asd + ".agi" @text_to_add = (eval((asd + ".name")) + " Agilità :") end @change_variable_window.visible = true @change_variable_window.active = true @change_variable_window.contents.clear @change_variable_window.contents.draw_text(0, 0, @debug_window.width - 32, 32, (@text_to_add + eval(@variable_to_change).to_s), 1) @stat_window.active = false elsif Input.trigger?(Input:: @stat_window.visible = false @stat_window.active = false if @d_actor_window.visible @d_actor_window.active = true elsif @d_enemy_window.visible @d_enemy_window.active = true end end end end end Demo:N/A Incompatibilità: Non dovrebbe andare in conflitto con nessuno script. Note dell'autore: kingartur2 (no, a me no, non ho fatto niente, questo scripter è italiano.)
-
Nome Script: [VX] Yanfly Engine Melody Versione: 1.01 Autore/i: Yanfly, Yami Informazioni: Yami stà curando (9/12/2011) la nuova versione del famoso YEM, almeno finchè il nuovo engine di Yanfly per VX Ace (YEA ) non sarà pronto. La 1.01 è l'ultima versione dopo la 1.00m. Features: v. 1.01 - Bugfix per il costo delle skills (le skills possono avere ora più di un tipo di costo) - Bugfix per la rotazione delle icone - Aggiunta azione Immagine Persistente (Afterimage action). Settings in YEM Battle Engine Melody II. - Aggiunta opzione per un pop-up che mostra danno/cura HP/MP con un'immagine. Settings in POPUP_SETTINGS in YEM Battle Engine Melody I. - Ora puoi configurare facilmente la risoluzione di gioco. Guarda Screen Resolution Size in YEM Core Fixes and Upgrades. Screenshots: Istruzioni: Trovate tutto nella demo. Demo: http://dl.dropbox.com/u/38072264/YEM%20v1.01.exe Note dell'Autore: PLEASE FEEDBACK if you meet a bug. If you want to have some new feature, please feedback too. SEGNALATE se trovate bug o volete qualche altra aggiunta.
-
Nome Script: Sistema Premio Versione: 1.0 Autore/i: Sky00Valentine Informazioni: Non so se avete presente il sistema nel gioco Need for Speed per la Playstation. Dopo ogni gara vi mostrava delle carte le quali una volta scelte, vincevate o dei soldi, o delle parti di ricambio etc... Questo script fa praticamente la stessa cosa. Screenshots: Istruzioni: Istruzioni e demo all'interno dello script/demo. Script: #=========================================================================== # # Sky Script Revolution : Reward Scene (SSR) (SSR/RS) # Version 1.0 # August 03, 2011 Started # August 08, 2011 Completed # #=========================================================================== # # What is Sky Script Revolution (SSR)? # It is a revamp of Sky's previous scripts. # Is that all? # No, that is only the beginning. Look for # New Scripts as well. Also look forward to # the reopenning of script request hall soon. # What kind of scripts are you planning? # I am starting to get into battle system # scripting so look for edits. # Are you supporting old scripts? # Some scripts don't need revamping as they # work beautifully, so I will update those # scripts. # #=========================================================================== # # Features : # Version 1.0 - August 08, 2011 # - Card Reward Graphics # - Choose from 4 possible rewards # - Set up your own rewards. # #=========================================================================== # # Credit # Sky00Valentine :creator and editor # New :requesting script # Celianna :grahpics # #=========================================================================== # # Terms of Use # ------------ # # Crediting Rpgmakervx.net is the only thing I ask. # However feel free to credit Sky00Valentine if you # see fit. # #=========================================================================== # # Future improvement # ------------------ # # - Other Reward Graphics # - Treasure Chests # #=========================================================================== # # Instructions & Installation # --------------------------- # - place under materials # # - be sure to download the card_graphics found here and place them in pictures # folder. # http://www.mediafire.com/?6qhycyy6bv4s877 # # - Setup the Module how you like. # # NEXT_SCENE is the next scene after the reward scene. Set to whatever. # # BACK_IMAGE is the background of the Scene. For the best results make # your own or get one made for you. # # SHOW_TITLE if there is a background image the Choose Your Reward message # will no longer show if this is set to false. # # MIN_VARIABLE set this to a free game variable that you can change through # eventing. # # MAX_VARIABLE set this to a free game variable that you can change through # eventing. # Note that which ever game variables are MIN and MAX if REPETITION is set # to false make sure they are 3 apart (6,9) otherwise you will be caught # in an infinite loop. For a little safety I put in a breaker, that will # inform you of your mistake. # Note #2 the same problem can occur possibly if you fill REWARD HASH # with the EXACT same reward multiple times. So make each reward unique # will ya. Can also be fixed by setting REPETITION to true. # # BGM is the Background Music of the Scene. Jazz up this scene with some # music. # # SOUND is a sound that will be played when you pick your reward. Feel the # happiness of being rewarded ring in your ears. # # Repetition set this to false so that each reward is different from the # others. Or you might find that you were going to get the same reward no # matter which you picked. But if it is on it may increase your chance # or decrease you chance from getting a great reward. # # TEXT well the three settings for this are pretty simple test it out. # # REWARDS well this is where you input each of your rewards. It is best # explained below in the module please read carefully and everything should # go smoothly. # # - Have fun with it. # #=========================================================================== $imported = {} if $imported == nil $imported["SSRRewardScene"] = true module Sky module Reward NEXT_SCENE = "Scene_Map.new" #Set to the Scene you want to go to when this one is exited. BACK_IMAGE = "" #Background Image for this menu. Must be in the #Pictures folder. Set to "" by default for a normal #Menu look. Set it to background image name for custom #Menu. SHOW_TITLE = false #If set to false when BACK_IMAGE is being used #the Choose Your Reward! Will not show up. #this allows more customization. MIN_VARIABLE = 1 #Game Variable for MIN setting, Set to Variable 1 MAX_VARIABLE = 2 #Game Variable for MAX setting, Set to Variable 2 #========================================================== # Max setting allows Rewards in that range to be received. # Down in the Rewards Hash you set rewards starting with 0 up to whatever # If Min is set to 3 and Max is set to 6 only items 3 to 6 can be obtained # when the Reward Scene is called. #========================================================== BGM = "" #BGM played when menu starts. #BGM must be located in Audio/BGM folder SOUND = "" #Sound played when selected reward is revealed. #Sound must be located in Audio/ME folder #Leave sounds empty and no sound will play. REPETITION = true #Allows multiple of the same reward to appear at once #So two or more hidden rewards can end up being the same. TEXT = "Party Obtained " #When you get your reward this message will pop up. TEXT_SIZE = 20 #The size of the message font. By default it is 20. TEXT_FONT = "Calibri" #The font of the reward message. RPG Maker VX #by default is Verdana. REWARDS = { # Set Icons as such. #"Icons" => [icon_id(currency),icon_id(weapon),icon_id(armor),icon_id(items)] # Set rewards as such, Types are Currency, Weapon, Armor, and Items. # if Type is Currency value is amount of currency(Gold), # if Type is anything else value is the id of that item.(number in database) # reward_id => ["Type",value,amount] # amount is how many of reward item. Unless the reward item is Currency. "Icons" => [85,1,32,64], # Currency icon is icon 85, Weapon icon is icon 1 # Armor icon is icon 32, Item icon is icon 64 0 => ["Currency", 200], # Reward is 200 G 1 => ["Weapon", 1,2], # Reward is 2 Clubs 2 => ["Armor", 2,3], # Reward is 3 Scale Shields 3 => ["Item", 3,10], # Reward is 10 Full Potions 4 => ["Currency", 10000], # Reward is 10000 G 5 => ["Armor", 9, 1], # Reward is 1 Iron Helm 6 => ["Item", 3, 2], # Reward is 2 Full Potions 7 => ["Weapon",2,1], # Reward is 1 Long Sword 8 => ["Weapon",11,7], # Reward is 7 Wrapped Bows 9 => ["Item",1,99], # Reward is 99 Potions } end #========================================== # # Do not edit anything below this point # unless you have Ruby scripting knowledge. # You have been warned. # #========================================== end class Scene_Reward < Scene_Base include Sky #Allows Scene_Reward Class to automatically access Sky Module include Reward #Allows Scene_Reward Class to automatically access Reward Module #=========================================================================== # # create_menu_background(alias) # ---------------------- # # if BACK_IMAGE is defined a custom background can be used # instead of creating the normal menu background. # #=========================================================================== alias ssr_rs_background create_menu_background def create_menu_background if BACK_IMAGE == "" ssr_rs_background else @back_image = Sprite.new @back_image.bitmap = Cache.picture(BACK_IMAGE) end end #=========================================================================== # # start # ----- # # Does everything needed to startup the scene. # #=========================================================================== def start @viewport = Viewport.new(0,0,Graphics.width,Graphics.height) Audio.BGM_play("Audio/BGM/" + BGM) if BGM != "" create_menu_background create_sprites create_windows draw_rewards initialize_variables randomize_rewards end #=========================================================================== # # initialize # ---------- # # creates all local variables used in this scene. # #=========================================================================== def initialize_variables @vert = 80.0 @draw_text = ""; @text = "" @down = true; @show = false @count = 0; @index = 1; @i = 0; @loop_break = 0; @choice = -1 @rewards = {} end #=========================================================================== # # dispose # ------- # # disposes of all images created during this scene # as well as stop sounds and move on to the next scene. # #=========================================================================== def dispose @back_image.dispose unless @back_image == nil or @back_image.disposed? @arrow.dispose @item_1.dispose @item_2.dispose @item_3.dispose @item_4.dispose @title.dispose @reward_window.dispose @cards.dispose Audio.me_stop Audio.bgm_stop $scene = eval(NEXT_SCENE) end #=========================================================================== # # create_windows # -------------- # # creates and defines each window used in this scene. # #=========================================================================== def create_windows @title = Window_Base.new(0,0,544,90) @title.contents.font.size = 60 @title.contents.font.name = "Calibri" @title.opacity = 0 @title.contents.draw_text(0,0,544,64,"Choose your Reward!",1) @title.contents_opacity = 0 unless BACK_IMAGE == "" or SHOW_TITLE @reward_window = Window_Base.new(0,260,544,176) @reward_window.opacity = 0 @reward_window.contents.font.size = 20 @cards = Window_Base.new(0,134,544,142) @cards.opacity = 0 @cards.contents.font.size = 12 @cards.contents.font.name = "Calibri" end #=========================================================================== # # randomizize_rewards # ------------------- # # takes four random rewards from REWARDS Hash. # #=========================================================================== def randomize_rewards while @rewards.size < 4 do number = -1 while number < $game_variables[MIN_VARIABLE] do call_exception if $game_variables[MIN_VARIABLE] > $game_variables[MAX_VARIABLE] number = rand($game_variables[MAX_VARIABLE]+1) end @rewards[@rewards.size] = REWARDS[number] unless @rewards.has_value?(REWARDS[number]) and !REPETITION @loop_break += 1 if @loop_break == 180 call_exception end end end #=========================================================================== # # call_exception # -------------- # # breaks infinite loop and displays error message. # #=========================================================================== def call_exception raise Exception.new("You were saved from an infinite loop error. Please set " + "Min and Max Variables to a difference of 3 or more " + "and make sure that you don't have multiples of the same" + "reward. Refer to Sky and Reward Modules instructions.") end #=========================================================================== # # draw_rewards # -----------_ # # sets up sprited images # #=========================================================================== def draw_rewards @item_1.bitmap = Cache.picture("card_blue_1") @item_2.bitmap = Cache.picture("card_red_1") @item_3.bitmap = Cache.picture("card_green_1") @item_4.bitmap = Cache.picture("card_yellow_1") for i in 1..4 x = (i-1) * (90) + (36 * i) eval("@item_" + i.to_s + ".x = #{x}") eval("@item_" + i.to_s + ".y = 150") end @arrow.bitmap = Cache.picture("reward_arrow") @arrow.y = 90 @arrow.x = 68 end #=========================================================================== # # create_sprites # -------------- # # creates five new sprites used for this scene. # #=========================================================================== def create_sprites @item_1 = Sprite.new @item_2 = Sprite.new @item_3 = Sprite.new @item_4 = Sprite.new @arrow = Sprite.new end #=========================================================================== # # spin(number) # ------------ # # animates the four reward sprites # also reward is given to player here # # number: specifies which image to animate. 1 to 4 # #=========================================================================== def spin(number) color = number == 1 ? "blue" : number == 2 ? "red" : number == 3 ? "green" : "yellow" if @count == 20 eval("@item_" + number.to_s + '.bitmap = Cache.picture("card_'+ color +'_2")') elsif @count == 13 eval("@item_" + number.to_s + '.bitmap = Cache.picture("card_'+ color +'_3")') elsif @count == 6 eval("@item_" + number.to_s + '.bitmap = Cache.picture("card_'+ color +'_4")') elsif @count == 0 eval("@item_" + number.to_s + '.bitmap = Cache.picture("card_'+ color +'_1")') eval("@item_"+ number.to_s + ".opacity = 100") draw_card(number) elsif @count == -1 if number = @index Audio.me_play("Audio/ME/" + SOUND) if SOUND != "" $game_party.gain_gold(@rewards[@index-1][1]) if (@rewards[@index-1][0]).downcase == "currency" $game_party.gain_item($data_weapons[@rewards[@index-1][1]],@rewards[@index-1][2]) if @rewards[@index-1][0].downcase == "weapon" $game_party.gain_item($data_armors[@rewards[@index-1][1]],@rewards[@index-1][2]) if @rewards[@index-1][0].downcase == "armor" $game_party.gain_item($data_items[@rewards[@index-1][1]],@rewards[@index-1][1],2) if @rewards[@index-1][0].downcase == "item" rewarded_item = @rewards[@index-1][0].downcase == "currency" ? (@rewards[@index-1][1]).to_s + " #{Vocab.gold}" : @rewards[@index-1][0].downcase == "weapon" ? @rewards[@index-1][2].to_s + " " + $data_weapons[@rewards[@index-1][1]].name.to_s : @rewards[@index-1][0].downcase == "armor" ? @rewards[@index-1][2].to_s + " " + $data_armors[@rewards[@index-1][1]].name.to_s : @rewards[@index-1][2].to_s + " " + $data_items[@rewards[@index-1][1]].name.to_s rewarded_item += (@rewards[@index-1][2] == nil or @rewards[@index-1][2] == 1) ? "." : "s." @text = TEXT + rewarded_item end end end #=========================================================================== # # draw_card(number) # ----------------- # # reveals the reward hidden by each image. # # number: specifies which reward is being revealed. 1 to 4 # #=========================================================================== def draw_card(number) x = (number * 36)+(90*(number-1)) + 17 icon = @rewards[number-1][0].downcase == "currency" ? REWARDS["Icons"][0] : @rewards[number-1][0].downcase == "weapon" ? REWARDS["Icons"][1] : @rewards[number-1][0].downcase == "armor" ? REWARDS["Icons"][2] : REWARDS["Icons"][3] @cards.contents.draw_icon(icon,x,43) rewarded_item = @rewards[number-1][0].downcase == "currency" ? (@rewards[number-1][1]).to_s + " #{Vocab.gold}" : @rewards[number-1][0].downcase == "weapon" ? @rewards[number-1][2].to_s + " " + $data_weapons[@rewards[number-1][1]].name.to_s : @rewards[number-1][0].downcase == "armor" ? @rewards[number-1][2].to_s + " " + $data_armors[@rewards[number-1][1]].name.to_s : @rewards[number-1][2].to_s + " " + $data_items[@rewards[number-1][1]].name.to_s rewarded_item += (@rewards[number-1][2] == nil or @rewards[number-1][2] == 1) ? "." : "s." @cards.contents.draw_text(x - 17,67,66,16,rewarded_item,1) end #=========================================================================== # # update_cursor # ------------- # # animates the cursor # #=========================================================================== def update_cursor if @down @vert += (11/16.0) @down = false if @arrow.y == 100 else @vert -= (11/16.0) @down = true if @arrow.y == 90 end @arrow.y = @vert.to_i @arrow.x = ((@index - 1) * 90) + (36 * @index) + 32 end #=========================================================================== # # update # ------ # # updates each frame of the scene. # #=========================================================================== def update @count -= 1 if @choice != -1 and @count > -3 update_cursor unless @count != 0 or @choice != -1 spin(@choice) unless @choice == -1 or @show if @show and @count > -3 for i in 1..4 spin(i) unless @choice == i end end if Input.trigger?( Input::C ) @count = 21 unless @count != 0 or @choice != -1 @choice = @index unless @choice != -1 if @draw_text == @text and @i > 0 and !@show @show = true @count = 21 elsif @show and @count == -3 dispose end Sound.play_decision unless SOUND != "" or @count != 21 elsif Input.trigger?( Input::B ) dispose if (@draw_text == @text and @i > 0) elsif Input.trigger?( Input::RIGHT ) unless @count != 0 Sound.play_cursor @index = @index < 4 ? (@index + 1) : 1 end elsif Input.trigger?( Input::LEFT ) unless @count != 0 Sound.play_cursor @index = @index > 1 ? (@index - 1) : 4 end end if @choice != -1 if @i % 2 == 0 and @draw_text != @text @draw_text += @text[@i/2,1] @reward_window.contents.clear @reward_window.contents.draw_text(0,0,512,TEXT_SIZE+4,@draw_text) end @i += 1 unless @draw_text == @text end end end Demo:http://www.mediafire.com/?t2036i4ej6zwnp6
-
Nome Script: Scene Gestione + Scelte Versione: 1 Autore/i: NoxChibi Informazioni: Questo script permette di creare una finestra nella quale ci sono dei comandi e ognuno di questi comandi permetterà di gestire diversi ambiti del giocatore. Normalmente l'ho impostato per gestire EQUIP, SKILL, STATUS, ma è possibile modificarlo per gestire altri parametri. Istruzioni: 1 Aprite Scene menù 2 Riga 55,rimuovere contenuto S2 e cancellare righe 56,57 3 Sostituire contenuto S2 da Vocab::skill in "Gestisci eroe",e sostituire S5 e S6 con S3,S4 4 Riga 58 cancellare S5 e S6 5 Riga 89 sostituire "when 1,2,3" con "when 1" e sostituire "when 4" e "when 5" con "when 2" e "when 3" 6 Da 132 in poi sostituire tutti i "When"e contenuti con When 1 7 lo script che corrisponde a When1 è "$scene= Scene_Scelt3.new(@status_window.index)" Screenshots: http://www.youtube.com/watch?v=-Vz69oGx6NM Script: Script scelte class Scene_Scelt3 < Scene_Base #---------------------Script Scelte-------------------------# #Script creato da NoxChibi # #Questo script permette di creare una finestra # #nella quale ci sono dei comandi e ognuno di questi comandi # #permetterà di gestire diversi ambiti del giocatore # #normalmente l'ho impostato per gestire EQUIP,SKILL,STATUS, # #ma è possibile modificarlo per gestire altri parametri # #-----------------------------------------------------------# def initialize(menu_index = 0,actor_index = 0) @menu_index = menu_index @actor_index = actor_index end def start super create_menu_background create_command_window @actor = $game_party.members[@actor_index] @status_window = Window_MenuStatus.new(160, 0) if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end def terminate super dispose_menu_background @command_window.dispose @status_window.dispose end def update super update_menu_background @status_window.update @command_window.update if @command_window.active update_command_selection end end #-----------------------1Parte editabile-------------------------# #-------------------------Spiegazione----------------------------# #Qui stanno scritti i comandi che appariranno,già ce ne sono tre.# #Per aggiungere un comando bisogna seguire la scaletta:s1,s2,s3..# #dopo aver creato il comando bisogna scivere il nome, # #compreso dalle virgolette, o singole o doppie. # # #Nella stringa: # #@command_window = Window_Command.new(160 , [s1, s2, s3]), # #160 indica la larghezza della finestra, e i comandi [s1, s2, s3]# #va aggiunto come segue la scaletta:s1,s2,s3.. per farlo apparire# #nella finestra. # #----------------------------------------------------------------# def create_command_window s1 = "Equip" s2 = "Abi.tà/Magie" s3 = "Stato" @command_window = Window_Command.new(160 , [s1, s2, s3]) @command_window.y = 24 @command_window.index = @menu_index end def update_command_selection if Input.trigger?(Input:: Sound.play_cancel $scene = Scene_Scelta.new elsif Input.trigger?(Input::C) case @command_window.index #-----------------------2Parte editabile-------------------------# #-------------------------Spiegazione----------------------------# #Per ogni aggiunta ai comandi va inserito qui un when(conta da 0)# #per ogni comando corrisponde uno script: # #[equip=$scene = Scene_Equip.new(@status_window.index)] # #Ogni nuovo script deve essere seguito da (@status_window.index) # #se non si aggiunge lo script, a pressione del tasto non succede # #un emerita minchia # #----------------------------------------------------------------# when 0 $scene = Scene_Equip.new(@status_window.index) when 1 $scene = Scene_Skill.new(@status_window.index) when 2 $scene = Scene_Status.new(@status_window.index) end end end end Script gestione class Scene_Scelta < Scene_Base def start super create_menu_background @status_window = Window_MenuStatus.new(160, 0) start_actor_selection end def terminate super dispose_menu_background @status_window.dispose end def update super update_menu_background @status_window.update update_actor_selection end end def start_actor_selection @status_window.active = true if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end def end_actor_selection @status_window.active = false @status_window.index = -1 end def update_actor_selection if Input.trigger?(Input:: Sound.play_cancel end_actor_selection $scene = Scene_Menu.new(2) elsif Input.trigger?(Input::C) $game_party.last_actor_index = @status_window.index Sound.play_decision $scene = Scene_Scelt3.new end end Script menù già modificato #============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # Questa classe si occupa dei processi del Menu #============================================================================== class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Inizializzazione oggetto # menu_index : posizione iniziale del cursore nel menu #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # * Inizio #-------------------------------------------------------------------------- def start super create_menu_background create_command_window @gold_window = Window_Gold.new(0, 360) @status_window = Window_MenuStatus.new(160, 0) end #-------------------------------------------------------------------------- # * Processo di chiusura #-------------------------------------------------------------------------- def terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @status_window.dispose end #-------------------------------------------------------------------------- # * Aggiorna Frame #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @gold_window.update @status_window.update if @command_window.active update_command_selection elsif @status_window.active update_actor_selection end end #-------------------------------------------------------------------------- # * Crea la finestra dei comandi #-------------------------------------------------------------------------- def create_command_window s1 = Vocab::item s2 = "gestisci" s3 = Vocab::save s4 = Vocab::game_end @command_window = Window_Command.new(160, [s1, s2, s3, s4]) @command_window.index = @menu_index if $game_party.members.size == 0 # se non ci sono giocatori in party @command_window.draw_item(0, false) # Disabilita oggetti @command_window.draw_item(1, false) # Disabilita poteri @command_window.draw_item(2, false) # Disabilita equipaggiamenti @command_window.draw_item(3, false) # Disabilita stato end if $game_system.save_disabled # Se il salvataggio è disattivato @command_window.draw_item(4, false) # Disabilita salvataggio end end #-------------------------------------------------------------------------- # * Aggiorna la selezione dei comandi #-------------------------------------------------------------------------- def update_command_selection if Input.trigger?(Input:: Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) if $game_party.members.size == 0 and @command_window.index < 4 Sound.play_buzzer return elsif $game_system.save_disabled and @command_window.index == 4 Sound.play_buzzer return end Sound.play_decision case @command_window.index when 0 # Oggetti $scene = Scene_Item.new when 1 # Poteri, Equipaggiamento, Stato start_actor_selection when 2 # Salva $scene = Scene_File.new(true, false, false) when 3 # Esci dal Gioco $scene = Scene_End.new end end end #-------------------------------------------------------------------------- # * Inizia la selezione del Personaggio #-------------------------------------------------------------------------- def start_actor_selection @command_window.active = false @status_window.active = true if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end #-------------------------------------------------------------------------- # * Termina la selezione del Personaggio #-------------------------------------------------------------------------- def end_actor_selection @command_window.active = true @status_window.active = false @status_window.index = -1 end #-------------------------------------------------------------------------- # * Aggiorna la selezione del Personaggio #-------------------------------------------------------------------------- def update_actor_selection if Input.trigger?(Input:: Sound.play_cancel end_actor_selection elsif Input.trigger?(Input::C) $game_party.last_actor_index = @status_window.index Sound.play_decision case @command_window.index when 1 $scene= Scene_Scelt3.new(@status_window.index) end end end end Incompatibilità:Penso con script che modificano totalmente i menu. Sostituire i return scene degli script equip,menù,status,file.end con "$scene = Scene_Menu.new(2)" Note dell'autore: E il mio primo script siate clementi con me >.< Corretto guida
-
Nome Script: Caterpillar by Atoa Versione: N/D Autore/i: Atoa Informazioni: Questo sistema permette di avere il gruppo che segue l'eroe ^^ Screenshots: Istruzioni: Inserite il solito script sotto Material Script #============================================================================= # Atoa Atoa Caterpillar # Por Atoa #============================================================================== # Este script permite vizualizar os membros no mapa, eles irão seguir o herói # Um pouco diferente dos outros caterpillar, neste os personagens # Só se movimentam caso necessário (portanto eles não ficam igual "barata tonta" # se você ficar indo e voltando. # # Para juntar os personagens use o comando: $game_player.caterpillar_gather # # Um aviso importante: O script não funciona muito bem com movimeno em diagonal # ele fica visualmente bonito apenas com 3 ou 2 pesonagens no grupo. # Após usa-lo, use o comando de reunir grupo. #============================================================================== module Atoa # Numero máximos de personagens seguindo o herói na tela Max_Caterpillar_Actor = 3 # ID do switch que esconde a vizualização dos personagens quando ativado Caterpillar_Hide_Switch = 1 # Permitir alterar ordem do grupo apertando-se as teclas Q ou W? Allow_Reorder = true # Distancia máxima entre os personagens do grupo # Deixe 0 para desativar Max_Distance = 0 end #============================================================================== # ■ Game_Character #============================================================================== class Game_Character #-------------------------------------------------------------------------- include Atoa #-------------------------------------------------------------------------- attr_accessor(:direction) end #============================================================================== # ■ Game_Player #============================================================================== class Game_Player < Game_Character #-------------------------------------------------------------------------- attr_accessor(:catterpillar, :old_x, :old_y, :move_speed) #-------------------------------------------------------------------------- alias atoa_caterpillar_refresh refresh if !method_defined?(:atoa_caterpillar_refresh) def refresh catterpillar_update atoa_caterpillar_refresh end #-------------------------------------------------------------------------- def catterpillar_update if @catterpillar == nil @catterpillar = [] for i in 1...(Max_Caterpillar_Actor + 1) @catterpillar[i - 1] = Atoa_Catterpillar.new(i) end end for cat in @catterpillar cat.refresh end end #-------------------------------------------------------------------------- alias atoa_caterpillar_update update if !method_defined?(:atoa_caterpillar_update) def update for cat in @catterpillar cat.update end atoa_caterpillar_update end #-------------------------------------------------------------------------- alias atoa_caterpillar_moveto moveto if !method_defined?(:atoa_caterpillar_moveto) def moveto(x, y) atoa_caterpillar_moveto(x, y) catterpillar_update if @catterpillar.nil? or @move_update.nil? for i in [email protected] @catterpillar[i].moveto(x, y) end end #-------------------------------------------------------------------------- def set_old_direction @[member=OldPat]_x = @x @[member='oldmythology'] = @y for i in [email protected] @catterpillar[i].old_x = @catterpillar[i].x @catterpillar[i].old_y = @catterpillar[i].y end end #-------------------------------------------------------------------------- def cat_moved?(i, d) cat = i == 0 ? self : @catterpillar[i - 1] cat2 = @catterpillar[i] if d == 1 or d == 3 or d == 7 or d == 9 return true elsif (cat.direction == 2 or cat.direction == 8) and cat.y == cat2.y return false elsif (cat.direction == 4 or cat.direction == 6) and cat.x == cat2.x return false elsif cat.old_x != cat.x or cat.old_y != cat.y return true end return false end #-------------------------------------------------------------------------- def move_cat(i, d) if cat_moved?(i, d) @catterpillar[i].move_player if i == 0 or (i != 0 and (d == 1 or d == 3 or d == 7 or d == 9)) @catterpillar[i].move_update.push(d) else @catterpillar[i].move_update.push(@catterpillar[i - 1].direction) end else if i == 0 or check_same_tile(i) @catterpillar[i].move_update.clear else cat = @catterpillar[i].move_update[0] @catterpillar[i].move_update.clear @catterpillar[i].move_update.push(cat) end end end #-------------------------------------------------------------------------- def check_same_tile(i) return false if i == 0 cat = @catterpillar[i - 1] cat2 = @catterpillar[i] return true if cat.x == cat2.x and cat.y == cat2.y return false end #-------------------------------------------------------------------------- alias atoa_caterpillar_move_down move_down if !method_defined?(:atoa_caterpillar_move_down) def move_down(turn_ok = true) set_old_direction passable = passable?(@x, @y+1) catterpillar_update if @catterpillar.nil? or @move_update.nil? atoa_caterpillar_move_down if passable for i in [email protected] move_cat(i, 2) end end end #-------------------------------------------------------------------------- alias atoa_caterpillar_move_left move_left if !method_defined?(:atoa_caterpillar_move_left) def move_left(turn_ok = true) set_old_direction passable = passable?(@x-1, @y) catterpillar_update if @catterpillar.nil? or @move_update.nil? atoa_caterpillar_move_left if passable for i in [email protected] move_cat(i, 4) end end end #-------------------------------------------------------------------------- alias atoa_caterpillar_move_right move_right if !method_defined?(:atoa_caterpillar_move_right) def move_right(turn_ok = true) set_old_direction passable = passable?(@x+1, @y) catterpillar_update if @catterpillar.nil? or @move_update.nil? atoa_caterpillar_move_right if passable for i in [email protected] move_cat(i, 6) end end end #-------------------------------------------------------------------------- alias atoa_caterpillar_move_up move_up if !method_defined?(:atoa_caterpillar_move_up) def move_up(turn_ok = true) set_old_direction passable = passable?(@x, @y-1) catterpillar_update if @catterpillar.nil? or @move_update.nil? atoa_caterpillar_move_up if passable for i in [email protected] move_cat(i, 8) end end end #-------------------------------------------------------------------------- alias atoa_caterpillar_move_lower_left move_lower_left if !method_defined?(:atoa_caterpillar_move_lower_left) def move_lower_left set_old_direction passable = (passable?(@x, @y+1) and passable?(@x-1, @y+1)) or (passable?(@x-1, @y) and passable?(@x-1, @y+1)) catterpillar_update if @catterpillar.nil? or @move_update.nil? atoa_caterpillar_move_lower_left if passable for i in [email protected] move_cat(i, 1) end end end #-------------------------------------------------------------------------- alias atoa_caterpillar_move_lower_right move_lower_right if !method_defined?(:atoa_caterpillar_move_lower_right) def move_lower_right(turn_ok = true) set_old_direction passable = (passable?(@x, @y+1) and passable?(@x+1, @y+1)) or (passable?(@x+1, @y) and passable?(@x+1, @y+1)) catterpillar_update if @catterpillar.nil? or @move_update.nil? atoa_caterpillar_move_lower_right if passable for i in [email protected] move_cat(i, 3) end end end #-------------------------------------------------------------------------- alias atoa_caterpillar_move_upper_left move_upper_left if !method_defined?(:atoa_caterpillar_move_upper_left) def move_upper_left(turn_ok = true) set_old_direction passable = (passable?(@x, @y-1) and passable?(@x-1, @y-1)) or (passable?(@x-1, @y) and passable?(@x-1, @y-1)) catterpillar_update if @catterpillar.nil? or @move_update.nil? atoa_caterpillar_move_upper_left if passable for i in [email protected] move_cat(i, 7) end end end #-------------------------------------------------------------------------- alias atoa_caterpillar_move_upper_right move_upper_right if !method_defined?(:atoa_caterpillar_move_upper_right) def move_upper_right(turn_ok = true) set_old_direction passable = (passable?(@x, @y-1) and passable?(@x+1, @y-1)) or (passable?(@x+1, @y) and passable?(@x+1, @y-1)) catterpillar_update if @catterpillar.nil? or @move_update.nil? atoa_caterpillar_move_upper_right if passable for i in [email protected] move_cat(i, 9) end end end #-------------------------------------------------------------------------- alias atoa_caterpillar_get_on_vehicle get_on_vehicle if !method_defined?(:atoa_caterpillar_get_on_vehicle) def get_on_vehicle enter = atoa_caterpillar_get_on_vehicle caterpillar_gather if enter return enter end #-------------------------------------------------------------------------- alias atoa_caterpillar_get_off_vehicle get_off_vehicle if !method_defined?(:atoa_caterpillar_get_off_vehicle) def get_off_vehicle for i in [email protected] @catterpillar[i].moveto(@x, @y) end atoa_caterpillar_get_off_vehicle caterpillar_gather end #-------------------------------------------------------------------------- def caterpillar_gather for i in [email protected] @catterpillar[i].gather_party end end end #============================================================================== # ■ Atoa_Catterpillar #============================================================================== class Atoa_Catterpillar < Game_Character #-------------------------------------------------------------------------- attr_accessor(:move_update, :member, :old_x, :old_y, :x, :y, :move_speed) #-------------------------------------------------------------------------- def initialize(member) super() @move_update = [] @member = member moveto($game_player.x, $game_player.y) @through = true refresh end #-------------------------------------------------------------------------- def moveto(x, y) super(x, y) @move_update.clear end #-------------------------------------------------------------------------- def refresh party = $game_party.members if party.size < @member @character_name = "" @character_hue = 0 return end actor = party[@member] if actor == nil @character_name = "" @character_hue = 0 return end @character_name = actor.character_name @character_index = actor.character_index @opacity = 255 @blend_type = 0 end #-------------------------------------------------------------------------- def screen_z if $game_player.x == @x and $game_player.y == @y return $game_player.screen_z - 1 end super end #-------------------------------------------------------------------------- def check_event_trigger_here(triggers) return false end #-------------------------------------------------------------------------- def check_event_trigger_there(triggers) return false end #-------------------------------------------------------------------------- def check_event_trigger_touch(x, y) return false end #-------------------------------------------------------------------------- def update member = @member == 1 ? $game_player : $game_player.catterpillar[@member - 2] diff = ((player_distance(member) >= Max_Distance) or !$game_player.moving?) ? 0 : 1 @move_speed = [member.move_speed - diff, 1].max super @transparent = $game_player.transparent @transparent = @transparent ? @transparent : $game_switches[Caterpillar_Hide_Switch] end #-------------------------------------------------------------------------- def player_distance(member) if far_from_member(member) dist_x = ((member.screen_x - self.screen_x)/32).to_i.abs dist_y = ((member.screen_y - self.screen_y)/32).to_i.abs return dist_x - 1 if dist_x >= dist_y return dist_y - 1 if dist_y >= dist_x end return 0 end #-------------------------------------------------------------------------- def far_from_member(member) return true if (member.screen_x > self.screen_<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> and ((member.screen_x - self.screen_<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> > 32) return true if (member.screen_y > self.screen_y) and ((member.screen_y - self.screen_y) > 32) return true if (member.screen_x < self.screen_<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> and ((self.screen_x - member.screen_<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> > 64) return true if (member.screen_y < self.screen_y) and ((self.screen_y - member.screen_y) > 64) return false end #-------------------------------------------------------------------------- def move_player refresh return if @move_update.empty? case @move_update[0] when 1 move_lower_left when 2 move_down when 3 move_lower_right when 4 move_left when 6 move_right when 7 move_upper_left when 8 move_up when 9 move_upper_right end @move_update.delete_at(0) end #-------------------------------------------------------------------------- def gather_party for i in 0...$game_party.members.size move_toward_player end @x = $game_player.x @y = $game_player.y @move_update.clear end end #============================================================================== # ■ Spriteset_Map #============================================================================== class Spriteset_Map #-------------------------------------------------------------------------- include Atoa #-------------------------------------------------------------------------- alias atoa_caterpillar_create_characters create_characters if !method_defined?(:atoa_caterpillar_create_characters) def create_characters atoa_caterpillar_create_characters for caterpillar in $game_player.catterpillar.reverse sprite = Sprite_Character.new(@viewport1, caterpillar) @character_sprites.push(sprite) end @[member=OldPat]_party = $game_party.members.dup end #-------------------------------------------------------------------------- def update_characters for sprite in @character_sprites sprite.update end end end #============================================================================== # ■ Game_Party #============================================================================== class Game_Party < Game_Unit #-------------------------------------------------------------------------- attr_accessor :actors end #============================================================================== # ■ Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- include Atoa #-------------------------------------------------------------------------- alias atoa_caterpillar_update update if !method_defined?(:atoa_caterpillar_update) def update atoa_caterpillar_update if Input.trigger?(Input::L) and Allow_Reorder Sound.play_decision reorder_party(true) end if Input.trigger?(Input::R) and Allow_Reorder Sound.play_decision reorder_party(false) end end #-------------------------------------------------------------------------- def reorder_party(order) if order party = $game_party.actors.shift $game_party.actors << party else party = $game_party.actors.pop $game_party.actors.unshift(party) end $game_player.refresh 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. -
Nome script: Mini box Versione: N/D Autore: Woratana, tradotto in Italiano da Yoshi91. Informazioni: Permette di creare dei box messaggi sui chara. Screenshots: Script: #=============================================================== # ● [VX] ◦ Mini Box Messaggi sopra gli eventi ◦ □ # * Mostra testo sopra un evento * #-------------------------------------------------------------- # ◦ Creato da Woratana [[email protected]] # ◦ Della comunità di RPG Maker # - Tradotto in Ita da Yoshi91 # ◦ Aggiornato il: 22/12/2008 # ◦ Versione: 2.0 #-------------------------------------------------------------- #================================================================== # ** INFO ** #----------------------------------------------------------------- # - Mostra testo sopra il giocatore o un evento. # - Cambia l'opacità e la posizione della finestra (nello script). # - Scegli se riprodurre un suono quando viene mostrato un mini-messaggio (nello script). # - Fixato Bug nella versione 1.0 che dava errore quando parte una battaglia. #================================================================== # ** Istruzioni per l'uso ** # #----------------------------------------------------------------- # 1. Setta le impostazioni dello script nell'apposito spazio # 2. Per scrivere ciò che apparirà nel box messaggi usa un chiama script: # set_text(personaggio, nuovo_testo) # # - al posto di 'personaggio' si setterà dove apparirà: # sostituirlo con -1 per farlo apparire sul giocatore, con 0 per farlo apparire # sull'evento che si sta utilizzando e 1 e maggiore per farlo apparire su un # evento che volete voi scrivendo l'ID di questo. # # - al posto di 'nuovo_testo' si digiterà il testo che verrà mostrato a schermo. # # - Il testo che si dovrà mostrare deve essere compreso fra ' o " # # Un esempio: # set_text(10,'Ciao!') # # Con questo chiama script verrà mostrato Ciao sopra l'evento con ID 10. # #================================================================== #PS: per sovrascrivere un mini messaggio basta usare un altro chiama script, #così il vecchio messaggio viene sostituito da quello nell'ultimo chiama script, #usando sempre lo stesso codice, senza dover settare qualcosa. Comodo, no? #================================================================== module Wora_CTB #================================================================ # ** Inizio impostazioni #---------------------------------------------------------------- TEXTBOX_SKIN = 'Window' # Nome della Windowskin in cui sarà mostrato il mini # Messaggio. (bisogna inserire questa nella cartella # System del vostro gioco, e scrivere Window per usare # quella di base, che viene usata nel vostro gioco. # Scrivi Window se setti TESTBOX_OPACITY a 0. TEXTBOX_OPACITY = 0 # Opacità della windowskin usata per il mini messaggio: # 0 minimo, 255 massimo. # Setta 0 per non usare una Windowskin, 255 per averla # solida e compatta. TEXTBOX_X_OFFSET = 0 # Sposta la posizione del mini box orizzontalmente # (usa + o -, per 0 non scrivere nè + nè -.) # Scrivere - col trattino. TEXTBOX_Y_OFFSET = -1 # Sposta la posizione del mini box verticalmente # (usa + o -, per 0 non scrivere nè + nè -.) # Scrivere - col trattino. TEXTBOX_POPSOUND_MODE = 0 # Qui setta il metodo di riproduzione Suono (SE), # ovvero: # MODO 1- Non verrà riprodotto nessun SE quando verrà visualizzato il mini # messaggio. (per settare questo scrivere 0). # MODO 2- Verrà riprodotto il SE solo quando verrà mostrato il mini messaggio, # infatti quando verra modificato questo non si sentirà il suono.(per settare # questo scrivere 1). # MODO 3- Verrà riprodotto il SE quando verrà visualizzato il mini messaggio # e quando verrà sovrascritto da un altro. TEXTBOX_POPSOUND = 'Decision1' # Setta qui il nome del SE TEXTBOX_POPSOUND_VOLUME = 80 # Setta qui il volume del SE TEXTBOX_POPSOUND_PITCH = 100 # Setta qui la velocità del SE #---------------------------------------------------------------- # ** Fine impostazioni #================================================================ #================================================================ #NON MODIFICARE LE RIGHE SEGUENTI SE NON SEI UNO SCRIPTER, #SI POTREBBERO CAUSARE ERRORI!!! #================================================================ end $worale = {} if $worale.nil? $worale['Chartbox'] = true class Game_Interpreter def set_text(evid, new_text) target = get_character(evid) target.text = new_text end end class Sprite_Character < Sprite_Base alias wora_chartbox_sprcha_upd update alias wora_chartbox_sprcha_dis dispose def update wora_chartbox_sprcha_upd @chartext = '' if @chartext.nil? if @character.text != @chartext @chartext = @character.text $game_system.chartbox = {} if $game_system.chartbox.nil? case @character.class when Game_Player; char_id = -1 when Game_Event; char_id = @character.id end $game_system.chartbox[[$game_map.map_id, char_id]] = @chartext if @chartext == '' @textbox.visible = false if [email protected]? else if @textbox.nil? @textbox = Window_CharTBox.new RPG::SE.new(Wora_CTB::TEXTBOX_POPSOUND, Wora_CTB::TEXTBOX_POPSOUND_VOLUME, Wora_CTB::TEXTBOX_POPSOUND_PITCH).play if Wora_CTB::TEXTBOX_POPSOUND_MODE > 0 else RPG::SE.new(Wora_CTB::TEXTBOX_POPSOUND, Wora_CTB::TEXTBOX_POPSOUND_VOLUME, Wora_CTB::TEXTBOX_POPSOUND_PITCH).play if Wora_CTB::TEXTBOX_POPSOUND_MODE == 2 end @textbox.set_text(@chartext) @textbox.visible = true end end if @chartext != '' @textbox.x = self.x - (@textbox.width / 2) + Wora_CTB::TEXTBOX_X_OFFSET @textbox.y = self.y - self.oy - @textbox.height + Wora_CTB::TEXTBOX_Y_OFFSET end end def dispose @textbox.dispose if [email protected]? and [email protected]? wora_chartbox_sprcha_dis end end class Game_Character attr_accessor :text alias wora_chartbox_gamcha_ini initialize def initialize(*args) wora_chartbox_gamcha_ini(*args) $game_system.chartbox = {} if $game_system.chartbox.nil? case self.class when Game_Player my_text = $game_system.chartbox[[$game_map.map_id, -1]] if !$game_system.chartbox[[$game_map.map_id, -1]].nil? when Game_Event my_text = $game_system.chartbox[[$game_map.map_id, @id]] if !$game_system.chartbox[[$game_map.map_id, @id]].nil? end @text = my_text.nil? ? '' : my_text end end class Game_System attr_accessor :chartbox end class Game_Interpreter alias wora_chartbox_gamint_com201 command_201 unless $@ def command_201 if $game_map.fog_reset if @params[0] == 0; id_map = @params[1] else; id_map = $game_variables[@params[1]] end $game_system.chartbox = {} if id_map != @map_id end wora_chartbox_gamint_com201 end end class Window_CharTBox < Window_Base def initialize(x = 0, y = 0, w = 66, h = WLH+32) super(x,y,w,h) self.windowskin = Cache.system(Wora_CTB::TEXTBOX_SKIN) self.opacity = Wora_CTB::TEXTBOX_OPACITY end def set_text(text) if text != @text text_w = self.contents.text_size(text).width self.width = text_w + 32 create_contents self.contents.font.color = normal_color self.contents.draw_text(0, 0, self.contents.width, WLH, text, 1) @text = text end end end #================================================================================= # [FINE SCRIPT] Mini Box Messaggi sopra i chara da Woratana [[email protected]] #=================================================================================
-
Nome Script: RubySoft - Action System 2.0 Versione: 2.0 Autore/i: miguelrpg Informazioni: Ho avuto l'onore per poterlo betatestare, e vi assicuro che è davvero un sistema ben fatto e utile per chi vuole personalizzare di più il proprio progetto. Con questo sistema si ha a disposizione lo stile di alcuni dei più grandi giochi, quali Zelda, Mana etc... Le immagini comunque parleranno molto chiare, e la demo anche =) Features: Action Tools: • Lanterna • Minish (mini PG) • Ocarina • Sistema pesca Altro: • Status System avanzato • Movimento avanzato • Sistema avviso HP • Sistema ripresa HP • Sistema caverna • Action Popup – MSG • Auto Messaggi • Dash System (corsa) • Sistema Level UP • Sistema Passi • Sistema Volo • Sistema Nuoto • Sistema Snowboard • Sistema Fall (buche) • Sistema ombra HUD • HUD Imperial • Action Interactive Buttons - AIB • Action Time Gauge • Compass System (bussola) Istruzioni: Immagini e script all'interno dello script. Demo: http://www.action.onsave.com.br/RAS_2.zip Extra: http://www.action.onsave.com.br/Extras.zip Incompatibilità: Confermo che lo script non funziona con il salta titoli di Tidus (al momento dei betatest).
-
Nome Script: MMO_Skill level by use Versione: 1.01 Autore/i: Kentaro Informazioni: Bella lì. Scommetto che tutti voi conoscete, che dico, avete realizzato PER ANNI giochi con questo script di Tomoaky: http://hikimoki.saku....jp/zip/mmo.zip Praticamente, crea una sorta di gioco in stile Ragnarok online (ma...offline; chiaro no?) Bene. Ho realizzato una piccola snippet per questo sistema che permette di impostare un livello per ciascuna skill, modificandone alcuni parametri; ogni volta che usi la skill, aumenti i punti exp di +1; quando raggiungi la quantità stabilita (puoi creare una curva di exp) la skill aumenta il proprio livello e modifica i parametri secondo le impostazioni: # skill#ID; [dmg, mp, atk_f, spi_f, exp, curve, maxlv] when 33; return [ 9, 2, 0, 3, 3, 3, 10] # Heal when 67; return [ 4, 1, 2, 1, 4, 2, 6] # ThunderEs. la skill con ID#67, per livello, aumenta il proprio danno di 4, il consumo mp di 1, atk_f di 2, spi_f di 1, exp necessaria per aumentare livello è di base 4 ed aumenta di 2 (curve) per livello, fino ad un livello max di 6. Istruzioni: Istruzioni nello script. Si, le ho scritte in inglese. No, non ve lo traduco: imparatevelo, che vi fa bene. X-D Cheerio, Ken http://pastebin.com/NUYq8J6e Script: #============================================================================== # MMO_Skill level by use [v1.01] # by Kentaro, 2013 # credits: 시옷전사(SiotWarrior) # License: Creative Commons BY-NC #============================================================================== # Snippet for Tomoaky's MMO v.(09/10/24) [url="http://hikimoki.sakura.ne.jp/"]http://hikimoki.sakura.ne.jp/[/url] #------------------------------------------------------------------------------ # This is a snippet for Tomoaky's MMO. # Each skill can gain level after x times you use it; for each level, damage and # mp cost, atk_f and spi_f, will increase. # # Plug&play: put it below Tomo's MMO. Setup Constants. # Under self.skill_perlevel, you set up the skills you want to levelup. Skill # gains 1 exp each time you use it: if you set 6 exp needed, you'll levelup # the skill the 7th time you use it. #============================================================================== #------------------------------------------------------------------------------ # * KEN::SkillLvl #------------------------------------------------------------------------------ module KEN module SkillLvl #-------------------------------------------------------------------------- # Constants #-------------------------------------------------------------------------- SKILL_LVL_ON = true # use skill levels? true/false LVLUP_TXT = "Skill %s has reached level %d!" # text when skill lvup LVLUP_CLR = Color.new(180, 130, 255) # levelup text colour NOLVL_SKILL_TEXT = "" # if skill has no levelgain, instead of level number # this text appears... NOLVL_SKILL_COL = Color.new(48, 48, 48, 128) # ...with this colour #-------------------------------------------------------------------------- # ● self.skill_perlevel(skill_id) # ex. skill#67 (Thunder) will level up the 5th time its used (it has exp to # levelup = 4), mp cost +1/lv; damage +4/lv; atk_f +2/lv; spi_f +1/lv. # Each time the skill levels up, the exp needed will rise by 2 (curve): # to lv 1 = exp needed 3 # to lv 2 = exp needed 5 # to lv 3 = exp needed 7 etc. # Then, setup the max level the skill can reach. Ex. skill#67 maxlv is 6. #-------------------------------------------------------------------------- def self.skill_perlevel(skill_id) case skill_id # skill#ID; [dmg, mp, atk_f, spi_f, exp, curve, maxlv] when 33; return [ 9, 2, 0, 3, 3, 3, 10] # Heal when 67; return [ 4, 1, 2, 1, 4, 2, 6] # Thunder else # default: skill gain level but nothing changes return [0, 0, 0, 0, 0, 0, 0] end end end end #----------------------------------------------------------------------------- # * RPG::Skill #----------------------------------------------------------------------------- module RPG class Skill < UsableItem def base_damage if @base_damage > 0 return [[@base_damage + ((skill_level) * (KEN::SkillLvl.skill_perlevel(@id)[0])), 9999].min, 0].max elsif @base_damage < 0 return [[@base_damage - ((skill_level) * (KEN::SkillLvl.skill_perlevel(@id)[0])), -9999].max, 0].min else return @base_damage end end def mp_cost return [[@mp_cost + ((skill_level) * (KEN::SkillLvl.skill_perlevel(@id)[1])), 9999].min, 0].max end # remember: max atk_f/spi_f is 200 def atk_f return [[@atk_f + ((skill_level) * (KEN::SkillLvl.skill_perlevel(@id)[2])), 200].min, 0].max end def spi_f return [[@[member=Spiderman 2099]_f + ((skill_level) * (KEN::SkillLvl.skill_perlevel(@id)[3])), 200].min, 0].max end #-- def skill_level @skill_level = 0 if @skill_level == nil return @skill_level end def skill_max_level return (KEN::SkillLvl.skill_perlevel(@id)[6]) end def change_skill_level(skill_lvl) if skill_lvl > (KEN::SkillLvl.skill_perlevel(@id)[6]) @skill_level = (KEN::SkillLvl.skill_perlevel(@id)[6]) else @skill_level = [skill_lvl, 0].max end end def raise_skill_level @skill_level = 0 if @skill_level == nil change_skill_level(@skill_level + 1) $game_temp.shortwin_refresh = true $game_temp.skillwin_refresh = true text = sprintf(KEN::SkillLvl::LVLUP_TXT, @name, @skill_level) $game_temp.add_message(text, KEN::SkillLvl::LVLUP_CLR) end #-- def skill_exp @skill_exp = 0 if @skill_exp == nil return @skill_exp end def change_skill_exp(skill_exp) @skill_exp = 0 if @skill_exp == nil base_exp = (KEN::SkillLvl.skill_perlevel(@id)[4]) curve_exp = ((KEN::SkillLvl.skill_perlevel(@id)[5]) * (skill_level)) exp_needed = base_exp + curve_exp if @skill_exp != exp_needed @skill_exp = [skill_exp, 0].max else raise_skill_level @skill_exp = 0 end end def raise_skill_exp @skill_exp = 0 if @skill_exp == nil change_skill_exp(@skill_exp + 1) end end end #----------------------------------------------------------------------------- # * Class Game_Character #----------------------------------------------------------------------------- class Game_Character alias ken_skill_event skill_event def skill_event(target) ken_skill_event(target) @target_obj.raise_skill_exp if KEN::SkillLvl::SKILL_LVL_ON end end #----------------------------------------------------------------------------- # * class Sprite_SkillWindow #----------------------------------------------------------------------------- class Sprite_SkillWindow < Sprite_Window def refresh @data = [] for skill in @actor.skills @data.push(skill) end @item_max = @data.size line = line_num # 表示行数 line_max = line_num_max # 全行数 @index_line = [line_max - line, 0].max if @index_line + line > line_max self.bitmap.clear_rect(0, 12, self.width, self.height - 16) rect = Rect.new(0, 16, 192, 24) for i in 0...line self.bitmap.blt(0, i * 24 + 16, @bitmap, rect) end self.bitmap.blt(0, 12, @bitmap, rect.set(0, 12, 192, 4)) return if @item_max == 0 # 表示するアイテムがなければ終了 for i in 0...line * 7 break if i == @item_max - @index_line * 7 icon_index = @data[@index_line * 7 + i].icon_index rect.set(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24) self.bitmap.blt(i % 7 * 24 + 12, i / 7 * 24 + 16, @bitmap_icon, rect) #ken --------------------------------------------------------------- begin sl = @data[@index_line * 7 + i].skill_level sml = @data[@index_line * 7 + i].skill_max_level self.bitmap.font.size = 12 if sl == sml self.bitmap.font.color = Color.new(255, 0, 0) else self.bitmap.font.color = Color.new(220, 220, 220) end if sl == 0 and sml == 0 sl = KEN::SkillLvl::NOLVL_SKILL_TEXT self.bitmap.font.color = KEN::SkillLvl::NOLVL_SKILL_COL end self.bitmap.draw_text(i % 7 * 24 + 12, i / 7 * 24 + 16, 24, 12, sl.to_s, 2) #ken ----------------------------------------------------------------- end end refresh_scroll(line, line_max) # スクロールバーの描画 $game_temp.skillwin_refresh = false # 再描画フラグを倒す end end #----------------------------------------------------------------------------- # * class Sprite_ShortWindow #----------------------------------------------------------------------------- class Sprite_ShortWindow < Sprite_Window # overwritten method def refresh rect = Rect.new(12, 16, 120, 24) self.bitmap.clear_rect(rect) self.bitmap.blt(rect.x, rect.y, @bitmap, rect) rect.set(0, 0, 24, 24) self.bitmap.font.size = 12 for i in 0...5 obj = get_icon_obj(i) next if obj == nil if $game_variables[44 + i * 2] == 4 # オブジェクトがスキルの場合 # se obj è una skill n = obj.skill_level #ken flag = true else # オブジェクトがアイテム(武器、防具含む)の場合 n = $game_party.item_number(obj) flag = n > 0 end rect.set(obj.icon_index % 16 * 24, obj.icon_index / 16 * 24, 24, 24) self.bitmap.blt(i * 24 + 12, 16, @bitmap_icon, rect, flag ? 255 : 128) self.bitmap.draw_text(i * 24 + 12, 28, 24, 12, n.to_s, 2) if flag end $game_temp.shortwin_refresh = false # 再描画フラグを倒す end end #------------------------------------------------------------------------------ # * class Scene_File #------------------------------------------------------------------------------ class Scene_File < Scene_Base # alias method alias ken_write_save_data write_save_data def write_save_data(file) ken_write_save_data(file) Marshal.dump($data_skills, file) end # alias method alias ken_read_save_data read_save_data def read_save_data(file) ken_read_save_data(file) $data_skills = Marshal.load(file) end end
-
Nome script: MMORPG-like Tool Versione: 0.10 Autori: Tomoaky, Kentaro (2013) Informazioni: Salve a tutti, come tutti saprete ("ma chi ti conosce?!") ho smesso di makerare da un po' ma oggi, vuoi per il caldo, vuoi per l'avvicinarsi degli esami di specialità, ho avuto 'na botta di nostalgia. Frugando nel mio armadio di ex-makeratore ho ritrovato questo progettino sfizioso, che vi giro volentieri. Si tratta di un sistema per realizzare giochi tipo MMORPG (però NON online), con un'interfaccia tipo Ragnarok: praticamente si comanda il pg tramite mouse aprendo e chiudendo finestre a scomparsa e/o liberamente spostabili. Lo script base è di Tomoaky; io (Kentaro) ho aggiunto diversi altri script creati ad hoc da me, oltre che patch per script di altri (es. minimap). In pratica quel che troverete nella minidemo sarà un inizio di gioco con tutti gli script nell'ordine corretto e degli esempi (mappe) per far funzionare il tutto. Che dire, se vi piace l'idea usate liberamente e divertitevi, spero che almeno qualcuno di voi trovi il tempo per realizzare qualcosa di simpatico. Ah, naturalmente, creditate chi di dovere come sempre Features: - ambiente ottimizzato per creare giochi tipo Ragnarok su RMVX, con numerosi esempi - script unici creati su misura da me (Kentaro), es. livelli delle magie, pergamente che insegnano magie, polvere magica che nasconde dai nemici tipo FF13 ecc. - patch di compatibilità per script di altri Autori (es. minimap, self skill) - alcune musiche di Ragnarok già convertite in .ogg - ...e tanto altro! Screenshots: Credits: Demo: (30Mb) http://www.sendspace.com/file/zkuys0
-
BS/Battlers Addon Mostra facce in battaglia
Ally ha aggiunto un topic in Scripts RPG Maker VX (RGSS2)
Nome Script: Mostra facce in battaglia Versione: ? Autore/i: Moogle Warrior, traduzione in italiano da me, Yoshi91. Informazioni: Questo Add-On modifica la classe Window_BattleStatus in modo da non far apparire più il nome nella finestra status della battaglia, ma fa apparire il primissimo pano dell'eroe (mezza faccia). Carino Add-On. Features: Oltre alla principale nessuna. Screenshots: Istruzioni: Creare una nuova voce sopra Main e sotto Materials ed inserire lo script. Le istruzioni sono all'interno dello script. Script: #============================================================================== # Mostra faccia in battaglia # Creato da Moogle Warrior, tradotto in italiano da Yoshi91 # ------------------------------------------------------------------------------ # Questo script aggiunge una faccia nella finestra status in battaglia. # Modifica la classe Window_BattleStatus. # # E' semplice nell'uso. Creare una nuova cartella in Graphics, chiamata Facce # Battaglia. Qui inserirci le immagini che comprendono un primissimo piano # (mezza faccia) di ogni eroe. Rinominarle nell'ID dell'eroe che riguarda. # Queste immagini devono essere grandi 83x24 px. Ricordatevi anche degli zeri nel nome. # Per Newbie: L'ID è lo slot in cui l'Eroe è contenuto. #============================================================================== # NON MODIFICARE LE RIGHE SEGUENTI SE NON SAI CIO' CHE FAI!! #============================================================================== class Window_BattleStatus def draw_item(index) rect = item_rect(index) rect.x += 4 rect.width -= 8 self.contents.clear_rect(rect) self.contents.font.color = normal_color actor = $game_party.members[index] draw_actor_bface(actor.id, 0, rect.y) draw_actor_state(actor, 70, rect.y-1, 48)#84 draw_actor_state(actor, 70, rect.y-1, 48)#84 draw_actor_hp(actor, 174, rect.y, 120) draw_actor_mp(actor, 310, rect.y, 70) end def draw_actor_bface(id, x, y) bitmap = Cache.bface(id) self.contents.blt(x, y, bitmap, bitmap.rect) end end module Cache def self.id_to_name(id) if id < 10 filename = "00" + id.to_s elsif id < 100 filename = "0" + id.to_s end return filename end def self.bface(id) filename = id_to_name(id) load_bitmap("Graphics/Facce Battaglia/", filename) end end Demo: N/A Incompatibilità: Può darsi che sia compatibile con ogni Battle System. Funziona al 100% con Takentai, anche con ATB. Note dell'autore: Le mie creditazioni non sono obbligatorie, ma ben accettate. Moogle Warrior, se volete anche me (Yoshi91) per la traduzione in italiano. -
Nome Script: Menu Titolo Personalizzato Versione: 1.1 Autore/i: Holy87 Informazioni: Siete stufi della solita finestrella al titolo con solo Nuovo Gioco, Continua ed Esci? Certo, in giro ci sono un sacco di script che modificano il titolo, ma questo è davvero bello ed interessante, con tanto di animazioni e personalizzazioni! Per capire veramente com'è, vi consiglio di scaricare la Demo. Features: Questo script può: Aggiungere un collegamento a una pagina web Aggiungere un bottone che porta a una mappa 'extra' che verrà fatta da voi Totalmente compatibile con Updater System: puoi far apparire un popup che indica il bottone 'Aggiornamento' Potrete farvi la grafica che vorrete con un programma di grafica o utilizzare gli esempi della demo Potrete scegliere la velocità del cursore, l'altezza della barra... Screenshots: Istruzioni: Creare una nuova voce sopra Main e sotto Materials ed inserirci lo script. Le varie personalizzazioni sono da settare nello script. Script: #============================================================================== # * New Menu Title v1.1 # Creato da Holy 87 #------------------------------------------------------------------------------ # 31/08/2012 -> Aggiornato per compatibilità con la nuova versione dell'U.S. # Script migliorato e bug corretti (v1.1) # 20/02/2012 -> Script finito # 16/02/2012 -> Script iniziato #------------------------------------------------------------------------------ # Questo script crea una nuova variante del menu nella schermata del Titolo. # # * ISTRUZIONI * # Piazza lo scritp sotto Materials, prima del Main e dopo lo script Updater # System. Imposta le immagini che verranno usate come icone, lo script ne # adatterà automaticamente la posizione. # **COME USARE GLI EXTRA: Setta una coordinata d'inizio in una mappa fatta per # ospitare il gioco-extra, quindi quando vuoi renderli disponibili al giocatore, # non devi fare altro che scrivere "Ex_Options.unlock" nel Chiama Script, e come # per magia comparirà nella schermata iniziale il comando Extra. Puoi anche # settare un valore da poter usare in seguito, ad esempio scrivendo # "Ex_Options.unlock(numero)", dove numero è il valore da mantenere, così da # poter sbloccare vari extra per gradi. Per conoscere a quale valore sono # sbloccati gli extra, basta mettere nella condizione SE, Script: # # * COMPATIBILITA' * # Compatibile con la maggior parte degli script. Compatibile al 100% con # l'Updater System e News System. # Compatibile con lo script h87_Infos (prossimamente) # Compatibile con lo script Yanfly Engine 6 Iconset #============================================================================== module MT_Setup #============================================================================== # * CONFIGURAZIONE * # * Preferenze del Menu #============================================================================== #Attivare gli Extra? Extras = true #Inserisci l'ID Mappa e coordinate dello spawn quando si seleziona Extra Map_ID = 2 Map_X = 8 Map_Y = 7 #Aggiungere un collegamento ad un sito? SiteOpen = "http://www.rpgmkr.net" #scrivi nil se non lo vuoi #Imposta l'altezza del menu rispetto allo schermo AltezzaBarra = 190 #Imposta la distanza in pixel tra gli oggetti del Menu Distanza = 10 #============================================================================== # * Grafica degli Oggetti #============================================================================== OBJGRAPH = { 0 => "T_New", #Immagine del comando Nuovo Gioco 1 => "T_Load", #Immagine del comando Carica 2 => "T_Exit", #Immagine del comando Esci 3 => "T_Info", #Immagine del comando Informazioni 4 => "T_Extra", #Immagine del comando Extra 5 => "T_Web", #Immagine del comando Vai al Sito 6 => "T_Update", #Immagine del comando Aggiorna 7 => "" #Immagine del comando IconSet (di Yanfly) } # non rimuovere la parentesi! BALOONGRAPH = { 0 => "B_New", #Immagine del Fumetto Nuovo Gioco 1 => "B_Load", #Immagine del Fumetto Carica 2 => "B_Exit", #Immagine del Fumetto Esci 3 => "B_Info", #Immagine del Fumetto Info 4 => "B_Extra", #Immagine del Fumetto Extra 5 => "B_Web", #Immagine del Fumetto Vai al Sito 6 => "B_Update", #Immagine del Fumetto Aggiorna 7 => "" #Immagine del Fumetto IconSet(di Yanfly) } # non rimuovere la parentesi! #Immagine della barra di sfondo ai comandi. BARGRAPH = "SfondoBarraTitle" #Immagine di popup quando viene trovato un nuovo aggiornamento. #Setta solo se hai implementato lo script Updater System. Up_Popup = "PopUp" #============================================================================== # * Preferenze Grafiche #============================================================================== #Vuoi che la comparsa del menu dei comandi sia animata? Animazione = true #Setta la velocità di apparizione dei comandi (solo se Animazione = true). #0: Contemporaneamente, 1: Velocissimo, 2: Veloce... SPEEDANIM = 1 #Setta la velotità del cursore nello spostamento(NON METTERE 0) CursorSpeed = 3 #1: Istantaneo, 2: Velocissimo, 3: Veloce, 4:Lento... #Imposta la distanza da sinistra alla punta che avrà il fumetto. DDP = 27 #============================================================================== # * FINE DELLA CONFIGURAZIONE * # Non modificare oltre questa riga, se non sai cosa stai facendo! #=============================================================================? end $imported = {} if $imported == nil $imported["H87_MenuTitle"] = true module Ex_Options #-------------------------------------------------------------------------- # * Sblocca e da valore agli extra. #-------------------------------------------------------------------------- def self.unlock(x=1) unless File.exist?("x_state.rvdata") file = File.new("./x_state.rvdata", "a") file.write(<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> file.close else file = File.open("./x_state.rvdata", "w") file.write(<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> file.close end end #-------------------------------------------------------------------------- # * Controlla se gli extra sono abilitati. #-------------------------------------------------------------------------- def self.check_extra @controllore = 0 if File.exist?("x_state.rvdata") File.open("x_state.rvdata","r") do |f| f.lineno = 1 @controllore = f.gets @controllore.to_i #@controllore = 0 if @controllore == nil end return true if @controllore.to_i >= 1 end return false end #-------------------------------------------------------------------------- # * Da come ritorno il valore della cifra memorizzata. #-------------------------------------------------------------------------- def self.state if File.exist?("x_state.rvdata") File.open("x_state.rvdata", "r") do |f| f.lineno = 1 @numero = f.gets return @numero.to_i end end end end #============================================================================== # * Classe Scene_Title #============================================================================== class Scene_Title < Scene_Base #-------------------------------------------------------------------------- # * Alias del metodo di Aggiornamento #-------------------------------------------------------------------------- alias h87_update update def update if Input.trigger?(Input::C) # Se si preme Invio pressione_invio end if Input.repeat?(Input::LEFT) #Se si preme Sinistra pressione_sinistra end if Input.repeat?(Input::RIGHT) #Se si preme Destra pressione_destra end #h87_update animazione_menu #Sequenza d'apertura del menu animazione_fumetto #sequenza di animazione del fumetto animazione_cursore @Baloon.opacity += 25 if @CommandsActive aggiorna_immagine if @agg_disp end #-------------------------------------------------------------------------- # * alias del metodo di chiusura #-------------------------------------------------------------------------- alias h87_terminate terminate def terminate elimina_menu h87_terminate delete_objects end #-------------------------------------------------------------------------- # * Inizializza le variabili #-------------------------------------------------------------------------- def inizializza_variabili @title_state = 0 #lo stato del titolo $Extra_Game = Ex_Options.check_extra @cursore = 0 @cursore = 1 if @continue_enabled @oggetti = [] #Cambia l'ordine di queste righe per cambiare l'ordine del menu. @oggetti.push(0) #Nuovo Gioco @oggetti.push(1) #Continua @oggetti.push(3) if $imported["h87_Infos"] #Informazioni @oggetti.push(4) if MT_Setup::Extras and $Extra_Game #Extra @oggetti.push(5) if MT_Setup::SiteOpen != nil #Sito @oggetti.push(6) if $imported["H87_Updater"] and @agg_disp #Aggiornamento @oggetti.push(2) #Esci @oggetti.push(7) if $TEST and $imported["Y6-Iconview"] #------------------------------------------------ @num_oggetti = @oggetti.size @CommandsActive = false #all'inizio non possono essere mossi comandi @colore=0 #serve per memorizzare il colore dell'oggetto selezionato end #-------------------------------------------------------------------------- # * Ridefinizione della creazione della finestra di comando #-------------------------------------------------------------------------- def create_command_window inizializza_variabili @sfondobarra = Sprite.new @sfondobarra.bitmap = Cache.system(MT_Setup::BARGRAPH) @sfondobarra.y = MT_Setup::AltezzaBarra @luce = Sprite.new @posix = MT_Setup::Distanza @selettore = [] for i in 0..@num_oggetti-1 #crea le immagini dei pulsanti @selettore[i] = Sprite.new @selettore[i].bitmap = Cache.system(MT_Setup::OBJGRAPH[@oggetti[i]]) @selettore[i].x = @posix @selettore[i].y = MT_Setup::AltezzaBarra + @sfondobarra.height/2 - @selettore[i].height/2 @posix += MT_Setup::Distanza + @selettore[i].width @upd_n = i if @oggetti[i] == 6 #memorizza la posizione dell'update end inizializza_fumetto # crea l'immagine del fumetto crea_immagine if $update_avaiable # crea il popup di aggiornamento if MT_Setup::Animazione #rende gli oggetti trasparenti se si anima @old_position = [] for i in [email protected] @old_position[i] = @selettore[i].y @selettore[i].y -= 21 @selettore[i].opacity = 0 @anim_counter = 0 end @timemax = MT_Setup::SPEEDANIM*@selettore.size end @CommandsActive = true unless MT_Setup::Animazione end #-------------------------------------------------------------------------- # * Crea l'immagine del fumetto di descrizione. #-------------------------------------------------------------------------- def inizializza_fumetto @Baloon = Sprite.new @Baloon.opacity = 0 aggiorna_cursore end #-------------------------------------------------------------------------- # * Anima i componenti del menu #-------------------------------------------------------------------------- def animazione_menu if MT_Setup::Animazione and @title_state == 0 for i in [email protected] if @anim_counter > @timemax*i @selettore[i].opacity += 10 @selettore[i].y += 4 if @selettore[i].y < @old_position[i] @selettore[i].y -= 1 if @selettore[i].y > @old_position[i] end end @anim_counter += 1 if @selettore[@selettore.size-1].opacity >= 255 @CommandsActive = true aggiorna_cursore @title_state = 1 end end if @title_state == 1 and MT_Setup::Animazione for i in [email protected] @selettore[i].y -= 1 if @selettore[i].y > @old_position[i] end end end #-------------------------------------------------------------------------- # * Esecuzione del comando Invio #-------------------------------------------------------------------------- def pressione_invio @comando = @oggetti[@cursore] case @comando when 0 command_new_game when 1 command_continue when 2 command_shutdown when 3 command_infos when 4 command_extras when 5 command_website when 6 vai_aggiornamento when 7 command_iconview end end #-------------------------------------------------------------------------- # * Esecuzione del tasto Sinistra #-------------------------------------------------------------------------- def pressione_sinistra if @CommandsActive Sound.play_cursor @cursore -= 1 @cursore = @num_oggetti-1 if @cursore < 0 aggiorna_cursore end end #-------------------------------------------------------------------------- # * Esecuzione del tasto Destra #-------------------------------------------------------------------------- def pressione_destra if @CommandsActive Sound.play_cursor @cursore += 1 @cursore = 0 if @cursore > @num_oggetti -1 aggiorna_cursore end end #-------------------------------------------------------------------------- # * Sequenza di aggiornamento del cursore #-------------------------------------------------------------------------- def aggiorna_cursore @Baloon.bitmap = Cache.system(MT_Setup::BALOONGRAPH[@oggetti[@cursore]]) @prossimaX = @selettore[@cursore].x + @selettore[@cursore].width/2-MT_Setup::DDP @prossimaY = @selettore[@cursore].y + @selettore[@cursore].height+10 @selettore[@cursore].y += 7 if MT_Setup::Animazione and @CommandsActive @Baloon.x = @prossimaX if @Baloon.x == 0 @Baloon.y = @prossimaY if @Baloon.x == 0 @colore = 0 @cursore_in_movimento = true end #-------------------------------------------------------------------------- # * Animazione dei movimenti del fumetto #-------------------------------------------------------------------------- def animazione_fumetto if @cursore_in_movimento @distanzaX = @[email protected] @distanzaY = @[email protected] @Baloon.x += @distanzaX/MT_Setup::CursorSpeed @Baloon.y += @distanzaY/MT_Setup::CursorSpeed end end #-------------------------------------------------------------------------- # * Illumina l'oggetto selezionato #-------------------------------------------------------------------------- def animazione_cursore @colore +=3 if @colore < 60 for i in [email protected] if i == 1 and @continue_enabled == false grigio = 255 else grigio = 0 end if $imported["H87_Updater"] if Updater.forzato? and (i == 0 or i == 1) grigio = 255 end end if i == @cursore @selettore[i].tone.set(@colore,@colore,@colore,grigio) else @selettore[i].tone.set(0,0,0,grigio) end end end #-------------------------------------------------------------------------- # * Provvede alla cancellazione degli oggetti di gioco #-------------------------------------------------------------------------- def delete_objects for i in [email protected] @selettore[i].dispose end @Baloon.dispose @sfondobarra.dispose end #-------------------------------------------------------------------------- # * Apre la pagina web #-------------------------------------------------------------------------- def command_website Sound.play_decision string = "explorer " + MT_Setup::SiteOpen Thread.new{system(string)} end #-------------------------------------------------------------------------- # * Porta alla mappa extra #-------------------------------------------------------------------------- def command_extras elimina_menu Sound.play_decision $game_map.setup(MT_Setup::Map_ID) $game_player.moveto(MT_Setup::Map_X, MT_Setup::Map_Y) $game_player.refresh $scene = Scene_Map.new RPG::BGM.fade(1500) close_command_window Graphics.fadeout(60) Graphics.wait(40) Graphics.frame_count = 0 RPG::BGM.stop $game_map.autoplay end #-------------------------------------------------------------------------- # * Crea il popup di aggiornamento #-------------------------------------------------------------------------- def crea_immagine @imm_popup = Sprite.new @imm_popup.bitmap = Cache.system(MT_Setup::Up_Popup) @imm_popup.x = @selettore[@upd_n].x + @selettore[@upd_n].width/2 - @imm_popup.width/2 @imm_popup.y = @selettore[@upd_n].y-5-@imm_popup.height @imm_popup.y += 14 if MT_Setup::Animazione end #-------------------------------------------------------------------------- # * Nasconde il Menu per non mostrarlo in altre scene. #-------------------------------------------------------------------------- def elimina_menu @title_state = 2 for i in [email protected] @selettore[i].opacity = 0 end @imm_popup.opacity = 0 if @imm_popup != nil @Baloon.opacity = 0 @sfondobarra.opacity = 0 end #-------------------------------------------------------------------------- # * Metodo ridefinito #-------------------------------------------------------------------------- alias h87_newg command_new_game def command_newgame elimina_menu h87_newg end #-------------------------------------------------------------------------- # * Metodo ridefinito #-------------------------------------------------------------------------- alias h87_end command_shutdown def command_shutdown elimina_menu h87_end end def open_command_window end def close_command_window end def dispose_command_window end end Demo:Download (395 kb) Incompatibilità: Ovviamente non è compatibile con gli script che modificano pesantemente il titolo. E' compatibile al 100% con i suoi script "News System" e "Game Updater System" e compatibile con lo Y6 Icon Module. Gli script che modificano non totalmente il titolo potrebberero funzionare sotto questo script nell'Editor Script.
-
Buondì! Stanchi dei soliti BS laterali? Tanketai vi dà la nausea? YERD, YEZ, YEM per voi sono nomi di pietanze esotiche? Provate questo nuovo BS, qualità Tomoaky. Ricrea (al 90%) il BS di FF13 su RMVX, con molta libertà di modifiche (com'è nel suo stile) e qualche extra - divertitevi con la demo che ho preparato! Un assaggio da tutubo (da un progetto francese): http://www.youtube.com/watch?v=mcn57vwG_Ug Nome Script: [VX] Final Fantasy 13 Battle System Versione: 2010/03/05 (ultima rilasciata) Autore/i: Tomoaky Informazioni: - Ricrea il sistema di battaglia di FF13 con il menu "Optima" per definire i ruoli di ciascun pg e battaglie in tempo reale in cui si controlla solo il leader del gruppo. - Altamente customizzabile! - Pieno supporto per l'AI nemica, skills, ATB e livello di Optima...e molto altro. Features: Nessuna nuova versione prevista dall'Autore. Istruzioni: Nella demo è presente un Manuale in italiano scritto da me (Kentaro). Per referenza, ho incluso anche quelli inglese e francese. Script: Oltre 3mila righe. Usate la demo. F.A.Q: D: Non ho le RTP! Non riesco ad aprire la demo! R: La demo richiede le RTP (scaricare a parte). D: Come faccio ad inserire un background come si vede nel titolo con il blur? R: Basta usare un qualsiasi script che permetta di inserire un battle background, e creare un'immagine dalle dimensioni giuste per il campo di battaglia e per i menu - è davvero molto banale. D: A chi vanno i crediti? R: Essenzialmente, a Tomoaky per aver creato lo script, Nadir per averlo tradotto in inglese. Se volete citarmi per il manuale in ita mi fa piacere, ma non è necessario: non rubate il lavoro altrui spacciandolo per vostro, però. Demo: http://www.mediafire.com/?bokaq0yzhxjp9zz Incompatibilità: N/D Note dell'Autore: blog originale: http://hikimoki.sakura.ne.jp/html/optima.html
-
Questo script non è adatto ai newbie. Se hai appena aperto rpgmaker,e non hai almeno le basi del suo funzionamento,è sconsigliato usare questo script Il 95% degli errori che vengono segnalati su questo script è causato da un errore dell'utente o di incompatibilità fra script. Questo significa che se si verifica un errore,c'è una probabilità molto elevata che l'errore è causato da te. Assicurati di aver aggiornato gli script,alla versione più recente,e anche di leggere attentamente i commenti all'interno degli script. Per qualsiasi aiuto riguardo a questo BS,postate pure nel topic! RPG Tankentai Sideview Battle System Version 3.3b & Active Time Battle v1.1d Battle System Scripted by Enu Traduzione Versione 2.4 Continuata da Mr. Bubble Traduzione Versione Precedente by Kylock Link al sito originale dello script: ( http://rpgex.sakura.ne.jp/home/ ) Screenshots: Installazione: Leggere attentamente le istruzioni nel readme,all'interno della demo. Come Installare - le istruzioni di installazione sono nel file README,il primo script elencato nello Script Editor. Si prega di notare che per integrare pienamente questo script in un gioco già esistente,viene richiesta la copia dei file di immagini e le voci del database di gioco presenti nella demo. Link aggiornati all'ultima versione Download Demo Base: ( http://www.mediafire.com/?p7bbie9b049qf4y ) 10/07/2011 Download Demo Base con ATB: ( http://www.mediafire.com/?ldqw5vjvqflo1s9 ) 10/07/2011 Download Kaduki's Battlers Demo: ( http://www.mediafire.com/?4a9bar02m36wktq ) - 11/07/2010 [linea] Aggiornamento Battle System + Overdrive Download Demo Base con ATB + Overdrive System (grafica originale): ( http://www.mediafire.com/download.php?k2spyaayiv5sfxi ) - 27/12/2010 Download Demo Base con ATB + Overdrive System (grafica con HUD e comandi Ziifee): ( http://www.mediafire.com/download.php?l8xrl1n36d353cl ) - 27/12/2010 Patch Compatibili: KGC_EnemyGuide ( 1.74K ) KGC_HelpExtension and KGC_CategorizeSkill for ATB ( 6.9K ) Moonlight's KGC_Steal Patch ( 2.76K ) Mithran's Force Action Fix for ATB ( 2.86K ) Add-ons: 6-digit Damage Pops ( 4.67K ) Enemy Animated Battlers Add-on ( 4.01K ) Extra Transformation Skills Add-on ( 3.09K ) AlphaWhelp's Haste & Slow States for ATB v1.0 ( 6.97K ) Kylock's Dynamic Party Positions ( 3.61K ) Kylock's Stationary Enemies Add-on Compatibilità: Questo script ha molti problemi di compatibilità con altri script che interessano il sistema di battaglia. Il KCG_MPCostAlter non è compatibile con questo BS. Credits: RPG Tankentai Sideview Battle System Original Script by: Enu (http://rpgex.sakura.ne.jp/home/) Traduzione inglese by: Kylock Mr. Bubble Shu Special Thanks: Shu (for translation help) Moonlight (for her passionate bug support and many bug fixes) NightWalker (for his community support for this script) Enelvon (transformation add-on and support) Atoa (community and XP version support) AlphaWhelp (code fixes and community support) Mithran (ATB Force Action fix) blackmorning (code fix for animated enemy hue change) Enu (for making an awesome script)
-
Nome Script: Video Player Versione: N/D Autore/i: SuperOverlord Informazioni: Pare che questo sia l'unico script in grado di far funzionare i video su VX. Features: Le features sono scritte all'interno dello script, ma riportiamole in italiano: - Utilizzare il video su mappa o in battaglia richiamando un comando - Pausa o uscita dal video mentre si gioca - Video in risoluzione 544x416 o in full screen - Video nelle Skill Istruzioni: All'interno dello script. Script: #============================================================================== # # SOV ~ Videos # #============================================================================== # Author: SuperOverlord #============================================================================== # Features: #------------------------------------------------------------------------------ # o Play video's on the map or in battle using a simple script event command. # # o Optionally pause or exit video's while they play. # # o View the video in the game window or in fullscreen. # # o Setup video skills, which show the video before damage effects. #============================================================================== # Instructions: #------------------------------------------------------------------------------ # o Place all videos in a folder with the same name as in configuration. # This folder is created automatically the first time the game is played if # it doesn't already exist. # # o Playing Videos when on the map. # # - See script calls below. # # o Playing videos in battle. # # - As when on the map the script event command can be used in battle also. # # - As well as this you can setup skills as video skills which display # a video before damaging the enemy. # # To do this the following tags can be used in the skills notebox: # 1) <video_name = "filename"> # ~ name is the name of the video file. If the filename extension is # missing the first file matching that name is used. # (Quotes are necessary around the filename) # # As well as the first tag 2 others are available. These tags will only # take effect if placed on a line below the first tag. # If these don't exist they are assumed true. # # 2) <video_exitable = n> ~ Can the video be exited by the exit input? # 3) <video_pausable = n> ~ Can the video be paused? # ~ n is replaced with either t or f (t : true, f : false) # # For other Video properties (x,y,width,height,fullscreen) the default # settings are used. (See script calls below) #============================================================================== # Script Calls: #------------------------------------------------------------------------------ # Commands (From the script call command on page three of event commands) #------------------------------------------------------------------------------ # o To change default values for video properties. # # 1) Video.default_x = n # 2) Video.default_y = n # 3) Video.default_width = n # 4) Video.default_height = n # 5) Video.fullscreen = bool # # In all 5 commands above: # ~ n is an integer value # ~ bool is either true or false # # o To play videos # # play_video(filename,exitable,pausable) # ~ filename : name of video file (Must be in quotes) # ~ exitable : Can the video be exited? (When left out = true) # ~ pausable : Can the video be paused? (When left out = true) # # For all other values the default's are used. #============================================================================== # Compatibility: #------------------------------------------------------------------------------ # o Skill videos will depend on the battle system but sould work. #============================================================================== # Credit: #------------------------------------------------------------------------------ # o Credit goes to Trebor and Berka whose scripts helped be figure out the # mci_send_stringA function. #============================================================================== module SOV module Video #-------------------------------------------------------------------------- # Configuration #-------------------------------------------------------------------------- # Name of folder for videos to be held in. DIR_NAME = "Videos" # Exit video input EXIT_INPUT = Input::B # Pause video input PAUSE_INPUT = Input::R #-------------------------------------------------------------------------- # End Configuration #-------------------------------------------------------------------------- end end #============================================================================== # Import #------------------------------------------------------------------------------ $imported = {} if $imported == nil $imported['Videos'] = true #============================================================================== #============================================================================== # ** SOV::Video::Commands #============================================================================== module SOV::Video::Commands #-------------------------------------------------------------------------- # * Play a video # filename : video's filename (with or without extension) # exitable : Can the video be exited # pausable : Can the video be paused #-------------------------------------------------------------------------- def play_video(filename,exitable=true,pausable=true) video = Cache.video(filename) video.exitable = exitable video.pausable = pausable if $game_temp.in_battle # In battle $scene.play_video(video) else # On map $game_map.video = video end end #--------------------------------------------------------------------------- # Define as module function #--------------------------------------------------------------------------- module_function :play_video end #============================================================================== # ** SOV::Video::Regexp #============================================================================== module SOV::Video::Regexp #-------------------------------------------------------------------------- # * Skill #-------------------------------------------------------------------------- module Skill FILENAME = /<video[_ ]?(?:file)?name = "(.+)">/i PAUSABLE = /<video[_ ]?paus(?:e|able) = (t|f)>/i EXITABLE = /<video[_ ]?exit(?:able)? = (t|f)>/i end end #============================================================================== # ** SOV::Game #============================================================================== module SOV::Game #-------------------------------------------------------------------------- # Constants #-------------------------------------------------------------------------- INI = 'Game' #-------------------------------------------------------------------------- # * Get the game windows handle #-------------------------------------------------------------------------- def self.hwnd unless defined?(@@hwnd) find_window = Win32API.new('user32','FindWindow','pp','i') @@hwnd = find_window.call('RGSS Player',title) end return @@hwnd end #-------------------------------------------------------------------------- # * Get game title #-------------------------------------------------------------------------- def self.title unless defined?(@@title) @@title = read_ini('title') end return @@title end #-------------------------------------------------------------------------- # * Read ini (Returns nil or match) #-------------------------------------------------------------------------- def self.read_ini(variable,filename=INI) reg = /^#{variable}=(.*)$/ File.foreach(filename+'.ini') { |line| break($1) if line =~ reg } end end #============================================================================== # ** Cache #============================================================================== module Cache #-------------------------------------------------------------------------- # Class Variables #-------------------------------------------------------------------------- @@vcache = {} #-------------------------------------------------------------------------- # Define as class methods #-------------------------------------------------------------------------- class << self #------------------------------------------------------------------------ # Alias List #------------------------------------------------------------------------ alias sov_video_clear clear unless $@ #------------------------------------------------------------------------ # * Get a video object # filename : basename of file #------------------------------------------------------------------------ def video(filename) # Get full filename if extension is missing if File.extname(filename) == '' files = Dir["#{SOV::Video::DIR_NAME}/#{filename}.*"] filename = File.basename(files[0]) # Set as first matching file end # Create or get the video object. if @@vcache.has_key?(filename) @@vcache[filename] else @@vcache[filename] = Video.new(filename) end end #------------------------------------------------------------------------ # * Clear #------------------------------------------------------------------------ def clear @@vcache.clear sov_video_clear end end end #============================================================================== # ** RPG::Skill #============================================================================== class RPG::Skill < RPG::UsableItem #-------------------------------------------------------------------------- # * Determine if skill has a video skill #-------------------------------------------------------------------------- def video if @video == nil @note.each_line { |line| if @video == nil @video = Cache.video($1) if line =~ SOV::Video::Regexp::Skill::FILENAME else @video.pausable = ($1 == 't') if line =~ SOV::Video::Regexp::Skill::PAUSABLE @video.exitable = ($1 == 't') if line =~ SOV::Video::Regexp::Skill::EXITABLE end } @video = :invalid if @video == nil end return @video end end #============================================================================== # ** Video #------------------------------------------------------------------------------ # Class handling playing videos. #============================================================================== class Video #-------------------------------------------------------------------------- # Constants #-------------------------------------------------------------------------- TYPE_AVI = 'avivideo' TYPE_MPEG = 'mpegvideo' #-------------------------------------------------------------------------- # Class Variables #-------------------------------------------------------------------------- @@default_x = 0 @@default_y = 0 @@default_width = Graphics.width @@default_height = Graphics.height @@fullscreen = false #-------------------------------------------------------------------------- # * Get and Set default_x/y/width/height #-------------------------------------------------------------------------- for d in %w(x y width height) # Define setter method module_eval(%Q(def self.default_#{d}=(i); @@default_#{d} = i; end)) # Define getter method module_eval(%Q(def self.default_#{d}; @@default_#{d}; end)) end #-------------------------------------------------------------------------- # * Get fullscreen #-------------------------------------------------------------------------- def self.fullscreen @@fullscreen end #-------------------------------------------------------------------------- # * Set fullscreen #-------------------------------------------------------------------------- def self.fullscreen=(val) @@fullscreen = val end #-------------------------------------------------------------------------- # * Win32API #-------------------------------------------------------------------------- @@mciSendStringA = Win32API.new('winmm','mciSendStringA','pplp','i') #-------------------------------------------------------------------------- # * Video Command # command_string : string following mci_command_string format # buffer : string to retrieve return data # buffer_size : number of characters in buffer # callback_handle : handle of window to callback to. Used if notify is used # in the command string. (Not supported by game window) #-------------------------------------------------------------------------- def self.send_command(cmnd_string,buffer='',buffer_size=0,callback_handle=0) # Returns error code. No error if NULL err = @@mciSendStringA.call(cmnd_string,buffer,buffer_size,callback_handle) if err != 0 buffer = ' ' * 255 Win32API.new('winmm','mciGetErrorString','LPL','V').call(err,buffer,255) raise(buffer.squeeze(' ').chomp('000')) end end #-------------------------------------------------------------------------- # * Play a video #-------------------------------------------------------------------------- def self.play(video) # Make path and buffer path = "#{SOV::Video::DIR_NAME}/#{video.filename}" buffer = ' ' * 255 # Initialize device and dock window with game window as parent. type = " type #{video.type}" if video.type != '' send_command("open #{path}#{type} alias VIDEO style child parent #{SOV::Game.hwnd}") # Display video in client rect at x,y with width and height. x = video.x y = video.y width = video.width height = video.height send_command("put VIDEO window at #{x} #{y} #{width} #{height}") # Begin playing video screen = @@fullscreen ? 'fullscreen' : 'window' send_command("play VIDEO #{screen}") # Start Input and status processing loop while buffer !~ /^stopped/ # Idle processing for a frame sleep(1.0/Graphics.frame_rate) # Get mode string send_command('status VIDEO mode',buffer,255) Input.update if Input.trigger?(SOV::Video::PAUSE_INPUT) and video.pausable? Sound.play_cursor if buffer =~ /^paused/ # If already paused send_command("resume VIDEO") # Resume video else # Otherwise send_command("pause VIDEO") # Pause video end elsif Input.trigger?(SOV::Video::EXIT_INPUT) and video.exitable? Sound.play_cancel # Terminate loop on exit input break end end # Terminate the device send_command('close VIDEO') end #-------------------------------------------------------------------------- # Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :x attr_accessor :y attr_accessor :width attr_accessor :height attr_writer :exitable attr_writer :pausable attr_reader :filename #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize(filename) unless FileTest.file?("#{SOV::Video::DIR_NAME}/#{filename}") raise(Errno::ENOENT,filename) end @filename = filename @x = @@default_x @y = @@default_y @width = @@default_width @height = @@default_height @exitable = true @pausable = true end #-------------------------------------------------------------------------- # * Get Type #-------------------------------------------------------------------------- def type if @type == nil case File.extname(@filename) when '.avi'; @type = TYPE_AVI when '.mpeg'||'.mpg'; @type = TYPE_MPEG else @type = '' end end @type end #-------------------------------------------------------------------------- # * Is the video exitable? #-------------------------------------------------------------------------- def exitable? @exitable end #-------------------------------------------------------------------------- # * Is the video pausable? #-------------------------------------------------------------------------- def pausable? @pausable end #-------------------------------------------------------------------------- # Access #-------------------------------------------------------------------------- private_class_method :send_command end #============================================================================== # ** Game_Interpreter #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # Import #-------------------------------------------------------------------------- include(SOV::Video::Commands) end #============================================================================== # ** Game_Map #============================================================================== class Game_Map #-------------------------------------------------------------------------- # Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :video end #============================================================================== # ** Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # Alias List #-------------------------------------------------------------------------- alias sov_video_update update unless $@ #-------------------------------------------------------------------------- # * Play Video #-------------------------------------------------------------------------- def play_video(video) # Memorize and stop current bgm and bgs bgm = RPG::BGM.last bgs = RPG::BGS.last RPG::BGM.stop RPG::BGS.stop # Play video Video.play(video) # Restart bgm and bgs bgm.play bgs.play end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update if $game_map.video != nil play_video($game_map.video) $game_map.video = nil Input.update else sov_video_update end end end #============================================================================== # ** Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # * Alias list #-------------------------------------------------------------------------- alias sov_video_execute_action_skill execute_action_skill unless $@ #-------------------------------------------------------------------------- # * Play Video #-------------------------------------------------------------------------- def play_video(video) # Memorize and stop current bgm bgm = RPG::BGM.last RPG::BGM.stop # Play video Video.play(video) # Restart bgm bgm.play end #-------------------------------------------------------------------------- # * Execute Action Skill #-------------------------------------------------------------------------- def execute_action_skill skill = @active_battler.action.skill if skill.video.is_a?(Video) execute_action_video(skill) else sov_video_execute_action_skill end end #-------------------------------------------------------------------------- # * Execute Action Video #-------------------------------------------------------------------------- def execute_action_video(skill) text = @active_battler.name + skill.message1 @message_window.add_instant_text(text) unless skill.message2.empty? wait(10) @message_window.add_instant_text(skill.message2) end wait(20) @message_window.clear # Fadout to black screen br = Graphics.brightness 120.times { |i| Graphics.brightness = 255 - 255/60 * i; Graphics.update } # Play video play_video(skill.video) # Reset brightness Graphics.brightness = br targets = @active_battler.action.make_targets display_animation(targets, skill.animation_id) @active_battler.mp -= @active_battler.calc_mp_cost(skill) $game_temp.common_event_id = skill.common_event_id for target in targets target.skill_effect(@active_battler, skill) display_action_effects(target, skill) end end end #============================================================================== # Pre-Main Processing #============================================================================== unless FileTest.directory?(SOV::Video::DIR_NAME) # If directory doesn't exist. Dir.mkdir(SOV::Video::DIR_NAME) # Make the directory end Incompatibilità: All'interno dello script.
-
Nome Script: Sistema Libro Versione: N/D Autore/i: SojaBird Informazioni: Questo script simula l'effetto di un libro =P Istruzioni: All'interno della Demo. Per richiamare lo script utilizzate un call script: $scene = Scene_Book.new Demo: http://www.4shared.com/file/66930316/66d4bffd/Livro.html
-
YANFLY IS BACK! http://yanflychannel.wordpress.com/rmvx/ Nome Script: [VX] Yanfly Engine 6 Versione: aggiornata al 19.11.2011 Autore/i: Yanfly Informazioni: L'ultima versione dallo scripter RGSS2 più famoso di tutti! E' ancora un work-in-progress e vi invito a seguire costantemente il suo blog. Per adesso sono presenti moduli che modificano menu, statistiche, debug (utilissimo!!) ed altro - tra cui un sistema di Ospedale con meccanismi di spesa/premio simile a Disgaea... (*.*) Attenzione: Yanfly ha discontinuato gli script del YE6 per dedicarsi al nuovo tool, VX Ace. Ad oggi (21/01/2012) lo YE6 include 14 script (l'ultimo è del 19.11.2011), consultabili sul sito di Yanfly, e probabilmente non ne verranno fatti altri. Amen! Features: Ci sono troppe cose da dire! Leggete il blog di Yanfly!! Screenshots: Istruzioni: Ogni script ha la sua descrizione in inglese. Ho fatto una demo al volo con le funzioni principali, ma vi consiglio di leggervi bene gli originali. Script: V. demo allegata (sono 10 script) Demo: http://www.mediafire.com/?96830u5h6hu8dih Incompatibilità: E' tutto ancora molto fluido, aspettatevi modifiche; da quel che ho capito però "potrebbe" non essere retrocompatibile con lo YEM (e, immagino, con gli altri più vecchi). Note dell'Autore: (Dal blog:) "What’s posted here is for public use. Whether or not you use decide to share it with others, post it on other websites, use it in your own games (free or commercial), I’m okay with that as long as credits are due to their respective parties."
-
Nome Script: Easy Crystarium System Versione: N/D Autore/i: Kentaro-su Informazioni: Olà. Una popolare richiesta negli ultimi tempi è un sistema di crescita dei pg tipo quello crystarium (crystallium, fate voi) di ff13. Siccome la cosa mi sfiziava, ho tirato fuori questo sistema misto script+eventi. Questo script è adatto a chi cerca qualcosa di relativamente semplice e controllabile, senza action sequence building di altri script sicuramente fatti meglio, ma molto meno "noob friendly". Screenshots: Istruzioni: Semplicemente mettete lo script tra Materials e Main, configurate il setup, abbinate 1 variabile a ciascun personaggio, impostate 1 switch e poi sbizzarritevi a creare mappe piene di belle skills da sbloccare o potenziamenti di parametri Lo script in pratica gestisce il collegamento tra menu e mappe; il grosso del lavoro va fatto su ciascuna mappa, ad eventi, ed è tutto a carico del game designer (vostro). F.A.Q: D: Figata!! Posso usarlo nel mio gioco? R: Si. Cortesemente, aggiungimi nei crediti (Kentaro). D: Posso modificarlo/estenderlo/trasformarlo... R: Si. Sempre cortesemente, mi piacerebbe esserne informato. Ma non è di importanza vitale. D: Potresti... R: No. Demo: Trovate tutto nella demo, che vi consiglio di studiare a fondo: http://www.sendspace.com/file/1qrici
-
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: Requiem ABS 9 Versione: 9 Autore/i: Vladislaus Informazioni: Un fantastico ABS,da provare =P Istruzioni: In inglese (li sto traducendo in italiano) Demo: http://vampyrcoders.net/data/scripts/Vampyr%20SBABS.zip Aggiornamento: Download alla versione tradotta in Italiano da knight92: http://www.mediafire.com/?fqd45d8q6aoa6ba
-
Nome Script: Referenze Globali Oggetti Grafici Versione: 1.1 Autore/i: Mithran Informazioni: Topic originale: Graphical Object Global Reference (inglese) Il Game.exe continua a crashare in maniera casuale e talvolta controllata? "Game.exe ha riscontrato un problema e verrà terminato" Questo è uno degli errori più frustranti di RPG Maker VX con cui fare i conti, visto che sembra andare e venire a caso, solo per determinate persone o a certe condizioni, e la causa del problema ti è ignota. Se il tuo progetto riscontra frequenti crash del Game.exe, questa lettura potrà esserti utile. Oddio, anche se non ti crasha può essere utile leggerla. Questo script si occupa di uno specifico problema che causa questi crash. Features: - identifica e permette di risolvere una delle più rilevanti cause di crash del Game.exe; - crea una referenza globale per ogni oggetto grafico creato finché non viene disposto, per prevenire che errori causino il crash Istruzioni: Incolla lo script in una nuova voce creata sotto Materials. Se usi script che creano grafica all'avvio (es. Woratana Simple Mouse System), questo script dovrà stare sotto ad essi. Script: http://pastebin.com/raw.php?i=rW9qkbxT Incompatibilità: D: Il Game.exe crasha costantemente e questo script non aiuta! R: Come spiegato, questo script risolve solo determinati motivi circoscritti del crash. Non tutti i motivi di crash vengono risolti. Può essere utile lasciare un post con dettagli dell'errore, come dice Mithran nel topic originale, ma magari sarebbe da farglieli notare proprio lì. D: Uso una versione crackata e... R: Nessun supporto per versioni non ufficiali. D: Ho trovato un modo di forzare un crash al Game.exe in un gioco che sembra stabile. R: Posta i dettagli, che interessano! Se riscontri errori, per favore provvedi informazioni complete di questi assieme a una breve spiegazione di come riprodurli (nel topic originale, magari). Note dell'autore: Con un link al post originale (inglese) e con i dovuti crediti, lo script originale senza modifiche può essere ripubblicato su altri forum. Può essere utilizzato in ogni progetto, a patto che rimangano i crediti nello script tali e quali (i crediti nell'insieme nel progetto non sono richiesti). Mithran, autore dello script.
-
Nome Script: Sistema Quest semplice Versione: 1.0b Autore/i: Niclas Informazioni: Semplice sistema quest da aggiungere al proprio gioco. Features: - Plug and play. - Aggiungi, rimuovi o fai una ricerca completa utilizzando un call script. - Ogni quest memorizza una variabile se è stata completata o meno. - Facile da aggiungere al menu in quanto utilizza una scena propria. - Supporta un'immagine di sfondo personalizzata. - e molto altro! Istruzioni: Inserite lo script sotto material. Altre istruzioni all'interno dello script. Script: #============================================================================== # Simple Journal # Author: Nicke # Created: 08/13/2011 # Edited: 08/16/2011 # Version: 1.0b #============================================================================== # Instructions # ----------------------------------------------------------------------------- # To install this script, open up your script editor and copy/paste this script # to an open slot below ▼ Materials but above ▼ Main. Remember to save. # ----------------------------------------------------------------------------- # # To open Simple Journal use: $scene = Scene_Simple_Journal.new <- In your menu. # # Use the call script function to add, remove or complete a quest. # Quick example: # add_quest(id,type) # # add_quest(1,:main) # add_quest(0,:side) # complete_quest(0,:side) # fail_quest(1,:main) # # Note: # In Main quests you should only add 1 quest each time as it is # designed that way. However, to make main quest act like side quest page # simply set SCROLL_MAIN_QUESTS to true. # Every quest stores a variable if it is being completed or failed which then # can be used as you want. # #============================================================================== ($imported ||= {})["NICKE-SIMPLE-JOURNAL"] = true module NICKE module JOURNAL_SYSTEM # -------------------------------------------------------------------------- # General settings. WIDTH = Graphics.width # Change the width of the journal window. HEIGHT = Graphics.height # Change the height of the journal window. FONT_TYPE = ["Rockwell", "Arial"] # Font type. TITLE = "Journal" # Journal title text. FOOTER = "Use Left/Right to change page." # Footer text. NO_ENTRIES = "No entries added..." # If no quest added show this text. COMPLETE_QUEST_VAR = 1 # Variable to store completed quests FAILED_QUEST_VAR = 2 # Variable to store failed quests. SCROLL_MAIN_QUESTS = false # Scroll at Main Quests too? # Note: If true, footer will be hidden. BUTTON_LEFT_PAGE = Input::LEFT # Button to change page to the left. BUTTON_RIGHT_PAGE = Input::RIGHT # Button to change page to the right. BACKGROUND_IMAGE_ACTIVE = true # Use a background image? BACKGROUND_IMAGE = "journal" # Background image file name. # -------------------------------------------------------------------------- # Color, size and shadow. T_FONT_SIZE = 26 # Title font size. T_FONT_COLOR = Color.new(223,255,80) # Title font color. T_FONT_SHADOW = true # Title font shadow. QUEST_HEADER_SIZE = 20 # Quest Header font size. QUEST_HEADER_COLOR = Color.new(135,206,250) # Quest Header font color. QUEST_HEADER_SHADOW = true # Quest Header font shadow. QUEST_DETAILS_SIZE = 16 # Quest Details font size. QUEST_DETAILS_COLOR = Color.new(245,245,245) # Quest Details font color. QUEST_DETAILS_SHADOW = true # Quest Details font shadow. H_FONT_SIZE = 20 # Header font size. H_FONT_COLOR = Color.new(223,255,80) # Header font color. H_FONT_SHADOW = true # Header font shadow. F_FONT_SIZE = 18 # Footer font size. F_FONT_COLOR = Color.new(223,255,80) # Footer font color. F_FONT_SHADOW = true # Footer font shadow. NO_E_FONT_SIZE = 18 # No entries font size. NO_E_FONT_COLOR = Color.new(235,235,160) # No entries font color. NO_E_FONT_SHADOW = true # No entries font shadow. # -------------------------------------------------------------------------- # MAIN QUESTS. # Main Quest[Index] = [Icon, "Title", "Details"] MAIN_Q_HEADER = "Main Quests" # Header text for Main quests. MAIN_QUESTS = [] # Don't touch it! MAIN_QUESTS[0] = [15, "The Terror in Townsil", "Travel to Townsil and talk to captain awesome."] MAIN_QUESTS[1] = [15, "The Terror in Townsil", "Search the town for clues."] MAIN_QUESTS[2] = [15, "The Terror in Townsil", "Go back to captain awesome and explain that the situation is crucial."] # -------------------------------------------------------------------------- # SIDE QUESTS. # SIDE Quest[Index] = [Icon, "Title", "Details"] SIDE_Q_HEADER = "Side Quests" # Header text for Side quests. SIDE_QUESTS = [] # Don't touch it! SIDE_QUESTS[0] = [12, 'Kill the Orcs.', 'Hunt down ten orcs and kill them.'] SIDE_QUESTS[1] = [75, 'Aid the doctor.', 'Help the doctor by finding the missing herbs.'] SIDE_QUESTS[2] = [138, 'Find the forgotten girl.', 'Locate the missing girl in the woods.'] SIDE_QUESTS[3] = [44, 'Armour Reparing.', 'Talk to the local blacksmith to get the armour fixed.'] SIDE_QUESTS[4] = [151, 'Special Delivery.', 'Take the box filled with unique materials to the mayor in town.'] SIDE_QUESTS[5] = [64, 'Brew a potion.', 'Gather the missing ingrediens for the health potion.'] SIDE_QUESTS[6] = [22, 'Solve the bandit problem.', 'Track down and get rid of the bandits that lurks within the deep forest.'] # -------------------------------------------------------------------------- end end # *** Don't edit below unless you know what you are doing. *** class Game_System attr_accessor :main_quests attr_accessor :side_quests attr_accessor :completed_quests attr_accessor :failed_quests alias nicke_quest_initialize initialize unless $@ def initialize(*args, &block) nicke_quest_initialize(*args, &block) @main_quests = [] @side_quests = [] @completed_quests = [] # Going to be used later on. @failed_quests = [] # Going to be used later on. end end class Game_Interpreter include NICKE::JOURNAL_SYSTEM def add_quest(id, type) # Method to add a quest. case type when :main # Main quests. unless $game_system.main_quests.include?(MAIN_QUESTS[id]) $game_system.main_quests.push(MAIN_QUESTS[id]) end unless MAIN_QUESTS[id].nil? when :side # Side quests. unless $game_system.side_quests.include?(SIDE_QUESTS[id]) $game_system.side_quests.push(SIDE_QUESTS[id]) end unless SIDE_QUESTS[id].nil? end end def complete_quest(id, type) # Method to complete a quest. case type when :main # Main quests. if $game_system.main_quests.include?(MAIN_QUESTS[id]) $game_system.main_quests.delete(MAIN_QUESTS[id]) $game_system.completed_quests.push(MAIN_QUESTS[id]) $game_variables[COMPLETE_QUEST_VAR] += 1 end when :side # Side quests. if $game_system.side_quests.include?(SIDE_QUESTS[id]) $game_system.side_quests.delete(SIDE_QUESTS[id]) $game_system.completed_quests.push(SIDE_QUESTS[id]) $game_variables[COMPLETE_QUEST_VAR] += 1 end end end def fail_quest(id, type) # Method for quest failed. case type when :main # Main quests. unless MAIN_QUESTS[id].nil? $game_system.main_quests.delete(MAIN_QUESTS[id]) $game_system.failed_quests.push(MAIN_QUESTS[id]) $game_variables[FAILED_QUEST_VAR] += 1 end when :side # Side quests. unless SIDE_QUESTS[id].nil? $game_system.side_quests.delete(SIDE_QUESTS[id]) $game_system.failed_quests.push(SIDE_QUESTS[id]) $game_variables[FAILED_QUEST_VAR] += 1 end end end end class Scene_Simple_Journal < Scene_Base include NICKE::JOURNAL_SYSTEM def start super() @journal_window = Window_Simple_Journal.new(true) if BACKGROUND_IMAGE_ACTIVE == true create_bg @journal_window.opacity = 0 end end def create_bg @bg = Sprite.new @bg.bitmap = Cache.picture(BACKGROUND_IMAGE) end def update super # Method for checking input triggers. if Input.trigger?(Input:: Sound.play_cancel $scene = Scene_Menu.new(0) elsif Input.trigger?(BUTTON_LEFT_PAGE) || Input.trigger?(BUTTON_RIGHT_PAGE) Sound.play_decision main = @journal_window.main @journal_window.dispose @journal_window = Window_Simple_Journal.new(!main) elsif Input.trigger?(Input::UP) y = @journal_window.oy @journal_window.oy = [y - 52, 0].max elsif Input.trigger?(Input::DOWN) return if @journal_window.contents.height < @journal_window.height y = @journal_window.oy @journal_window.oy = [y + 52, @journal_window.height - y + 16].min end @journal_window.opacity = 0 if BACKGROUND_IMAGE_ACTIVE == true end def terminate super @journal_window.dispose @bg.dispose end end class Window_Simple_Journal < Window_Base include NICKE::JOURNAL_SYSTEM attr_reader :main def initialize(main = true) super(0,0,WIDTH, HEIGHT) @main = main # This will allow scrolling if there are too many quests. if !@main self.contents = Bitmap.new(self.width - 32, HEIGHT - 56 + ($game_system.side_quests.size - 1) * WLH) else self.contents = Bitmap.new(self.width - 32, HEIGHT - 56 + ($game_system.main_quests.size - 1) * WLH) unless SCROLL_MAIN_QUESTS != true end refresh end def refresh self.contents.clear # Add Graphics. addGraphics # Add Quests. addQuests end def self_rect # Return the value of contents rect. return self.contents.rect end def draw_text(x, y, text, align) # Method for drawing the text. title = self_rect title.x = x title.y = y title.height = 28 self.contents.draw_text(title,text,align) end def draw_line(x, y) # Create two lines actually, one is acting like the shadow. line = self_rect line.height = 1 line.width -= 10 line.x = x line.y = y self.contents.fill_rect(line,normal_color) line.y += 1 color = Color.new(0,0,0,200) self.contents.fill_rect(line,color) end def addQuests if @main # Fill it with the current main quest data. quests = $game_system.main_quests else # Fill it with the current side quest data. quests = $game_system.side_quests end # If no main quests have been added. if quests.empty? contents.font.name = FONT_TYPE contents.font.size = NO_E_FONT_SIZE contents.font.color = NO_E_FONT_COLOR contents.font.shadow = NO_E_FONT_SHADOW draw_text(0, 160, NO_ENTRIES, 1) return end yoff = WLH * 2 quests.each_with_index { |q, i| draw_icon( q[0], 0, i * yoff + 84); # Font, size, color & shadow. contents.font.name = FONT_TYPE contents.font.size = QUEST_HEADER_SIZE contents.font.color = QUEST_HEADER_COLOR contents.font.shadow = QUEST_HEADER_SHADOW self.contents.draw_text(10, 68 + i * yoff, self.contents.width - 16, WLH, q[1], 1) contents.font.name = FONT_TYPE contents.font.size = QUEST_DETAILS_SIZE contents.font.color = QUEST_DETAILS_COLOR contents.font.shadow = QUEST_DETAILS_SHADOW self.contents.draw_text(27, 60 + (i * yoff)+WLH, self.contents.width - 16, WLH, q[2]) } end def addGraphics # Method for drawing the graphics and some headers. self.contents.font.name = FONT_TYPE self.contents.font.size = T_FONT_SIZE self.contents.font.color = T_FONT_COLOR self.contents.font.shadow = T_FONT_SHADOW draw_text(0, 0, TITLE, 1) if BACKGROUND_IMAGE_ACTIVE != true self.contents.font.name = FONT_TYPE self.contents.font.size = H_FONT_SIZE self.contents.font.color = H_FONT_COLOR self.contents.font.shadow = H_FONT_SHADOW if @main draw_text(0, 42, MAIN_Q_HEADER, 1) self.contents.font.name = FONT_TYPE self.contents.font.size = F_FONT_SIZE self.contents.font.color = F_FONT_COLOR self.contents.font.shadow = F_FONT_SHADOW draw_text(0,360, FOOTER, 1) unless SCROLL_MAIN_QUESTS == true draw_line(5,356) unless SCROLL_MAIN_QUESTS == true else draw_text(0, 42, SIDE_Q_HEADER, 1) end draw_line(5,36) if BACKGROUND_IMAGE_ACTIVE != true end end # END OF FILE #=*==========================================================================*=# # ** END OF FILE #=*==========================================================================*=#