-
Numero contenuti
1074 -
Iscritto
-
Ultima visita
-
Days Won
17
Tipo di contenuto
Profili
Calendario
Forum
Gallery
Downloads
Tutti i contenuti di Ally
-
Letta la recensione, penso proprio che deciderò di provarlo appena posso =D Ebbravo @@Ryoku
-
Molto strano.. Vedo di fare delle prove e risolvere ^^
-
I bug sulla home, li riscontro anche io, la stessa cosa vale per gli accenti nello status e nei titoli dei topic... Aspettiamo che risolvi Denz che ci sta lavorando lui ^^ Per quanto riguarda il Mak - Resources, mi mandi uno screen? Perchè i permessi sono settati correttamente, anche per il MakShack...
-
@@Oji non rompe le balle se disattivi le notifiche dall'app
-
Ho spostato questa discussione nella sezione Supporto Script. La prossima volta fate attenzione ad aprire i topic nel forum corretto. Grazie.
-
Nome Script: Final Fantasy IX Save Menù Versione: N/D Autore/i: BigEd781 Informazioni: Questo Script farà apparire il vostro Save Menù identico a quello di Final Fantasy IX. Screenshots: Istruzioni: Per il corretto funzionamento copiate le seguenti immagini in Graphics/Pictures: Rinominate quest'immagine in SaveFilewindow.png: Necessiterà anche di un puntatore. Insieme allo script viene fornita la classica "manina" di FF9 ma lo stesso autore ne ha rilasciate altre assieme ad un altro Script. Ve le linko di seguito così avete anche un pò di scelta e potete abbinarlo meglio assieme al FF IX Menù Script. Pointer: Script: =begin BigEd781's Final Fantasy IX Save Screen Rewritten Methods ----------------- Scene_File write_save_data create_savefile_windows start ----------------- =end module FFIXSave # use an image instead of the hazy map background USE_CUSTOM_BACK = true # the name of the background image file (if above is set to 'true') BACK_NAME = 'StoneBackground' # the name of the 'time' image file TIMER_NAME = 'SaveTimer' # the name of the 'gold' image file GOLDCOIN_NAME = 'GoldCoin' # the font to use. Example: 'Times New Roman' FONT_NAME = Font.default_name FONT_SIZE = 20 # the color of the font. (red, green, blue) FONT_COLOR = Color.new(238, 238, 238) # changing this will move the timer and gold # icons left or right (for - or + values). # this is useful if you have long names, or use a smaller font. ICON_OFFSET_X = 0 end class Rect def shift_y(value) new_y = self.y + value return Rect.new(self.x, new_y, self.width, self.height) end end #============================================================================== # ** Sprite_HeaderBar #------------------------------------------------------------------------------ # This is the top right window in the save/load menu #============================================================================== class Sprite_LoadSave < Sprite_Base def initialize(x, y, text, viewport=nil) super(viewport) @bg_image = Cache.picture('LoadSaveDisplay') @text = text self.bitmap = Bitmap.new(@bg_image.width, @bg_image.height) self.x = x self.y = y update end def update self.bitmap.blt(0, 0, @bg_image, @bg_image.rect) self.bitmap.draw_text(self.bitmap.rect.shift_y(3), @text, 1) end end #============================================================================== # ** Sprite_HeaderBar #------------------------------------------------------------------------------ # This is the top left window in the save/load menu #============================================================================== class Sprite_HeaderBar < Sprite_Base #-------------------------------------------------------------------------- # * initialize #-------------------------------------------------------------------------- def initialize(viewport=nil) @image = Cache.picture('FF9_HeaderBar') @slot = 1 super(viewport) self.bitmap = Bitmap.new(@image.width, @image.height) self.x = 16 self.y = 18 update end #-------------------------------------------------------------------------- # * slot= #-------------------------------------------------------------------------- def slot=(value) @slot = value end #-------------------------------------------------------------------------- # * update #-------------------------------------------------------------------------- def update self.bitmap.blt(0, 0, @image, @image.rect) text_y = 10 text_h = 24 self.bitmap.draw_text(16, text_y, 220, text_h, "Select a block.") self.bitmap.draw_text(self.width - 72, text_y, 64, text_h, "Slot #{@slot}") end end #============================================================================== # ** Scene_File #------------------------------------------------------------------------------ # #============================================================================== class Scene_File < Scene_Base #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- alias :eds_pre_ff9_save_start :start def start super create_menu_background @help_window = Sprite_HeaderBar.new create_loadsave_sprite create_savefile_windows @index = @saving ? $game_temp.last_file_index : self.latest_file_index @savefile_windows[@index].selected = true end #-------------------------------------------------------------------------- # * create_menu_background (only if USE_CUSTOM_BACK == true) #-------------------------------------------------------------------------- if FFIXSave::USE_CUSTOM_BACK def create_menu_background @menuback_sprite = Sprite.new @menuback_sprite.bitmap = Cache.picture(FFIXSave::BACK_NAME) @menuback_sprite.color.set(16, 16, 16, 128) update_menu_background end end #-------------------------------------------------------------------------- # * create_loadsave_sprite #-------------------------------------------------------------------------- def create_loadsave_sprite sx = @help_window.x + @help_window.width + 6 sy = @help_window.y text = @saving ? "Save" : "Load" @loadsave_sprite = Sprite_LoadSave.new(sx, sy, text) end #-------------------------------------------------------------------------- # * Update Save File Selection #-------------------------------------------------------------------------- alias :eds_pre_ff9_save_update_savefile_selection :update_savefile_selection def update_savefile_selection eds_pre_ff9_save_update_savefile_selection @help_window.slot = @index + 1 end #-------------------------------------------------------------------------- # * write_save_data #-------------------------------------------------------------------------- def write_save_data(file) characters = [] map_name = load_data("Data/MapInfos.rvdata")[$game_map.map_id].name for actor in $game_party.members characters.push([ actor.character_name, actor.character_index, actor.face_name, # line added actor.face_index, # line added actor.name, # line added actor.level, # line added $game_party.gold, # line added map_name ]) # line added end $game_system.save_count += 1 $game_system.version_id = $data_system.version_id @last_bgm = RPG::BGM::last @last_bgs = RPG::BGS::last Marshal.dump(characters, file) Marshal.dump(Graphics.frame_count, file) Marshal.dump(@last_bgm, file) Marshal.dump(@last_bgs, file) Marshal.dump($game_system, file) Marshal.dump($game_message, file) Marshal.dump($game_switches, file) Marshal.dump($game_variables, file) Marshal.dump($game_self_switches, file) Marshal.dump($game_actors, file) Marshal.dump($game_party, file) Marshal.dump($game_troop, file) Marshal.dump($game_map, file) Marshal.dump($game_player, file) end #-------------------------------------------------------------------------- # * Create Save File Window #-------------------------------------------------------------------------- def create_savefile_windows @savefile_windows = [] for i in 0..3 @savefile_windows.push(Window_FFIXSaveFile.new(i, make_filename(i))) end @item_max = 4 end alias :eds_pre_ff9_terminate :terminate def terminate eds_pre_ff9_terminate @loadsave_sprite.dispose end end #============================================================================== # ** Window_FFIXSaveFile #------------------------------------------------------------------------------ # This is the window displayed for each save slot #============================================================================== class Window_FFIXSaveFile < Window_SaveFile # the x , y position of the first column and line of text TEXT_COL1_X = 298 TEXT_LINE1_Y = 0 # the y position of the second line of text, Level and Gold display TEXT_LINE2_Y = 20 #-------------------------------------------------------------------------- # * initialize #-------------------------------------------------------------------------- def initialize(file_index, filename) unless FileTest.exist?(filename) image_name = 'FF9_SaveFileWindow_no_overlay' else image_name = 'FF9_SaveFileWindow' end @bg_image = Cache.picture(image_name) @timer_image = Cache.picture(FFIXSave::TIMER_NAME) @gold_image = Cache.picture(FFIXSave::GOLDCOIN_NAME) super(file_index, filename) self.x = 0 self.height = @bg_image.height + 32 # do this so that they images can be close together, # ignoring the 16 pixel window border self.y -= self.y * 0.1 self.contents.dispose self.contents = Bitmap.new(512, @bg_image.height) self.contents.font.name = FFIXSave::FONT_NAME self.contents.font.size = FFIXSave::FONT_SIZE self.opacity = 0 @arrow_sprite = Sprite.new @arrow_sprite.bitmap = Cache.picture('pointer') @arrow_sprite.x = 0 @arrow_sprite.y = self.y + (0.4 * self.height) @arrow_sprite.visible = false @arrow_sprite.z = self.z + 1 refresh end def selected=(value) @arrow_sprite.visible = value end #-------------------------------------------------------------------------- # * refresh #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.color = FFIXSave::FONT_COLOR draw_background_panel begin if @file_exist draw_party_characters draw_playtime draw_leader_name draw_leader_level draw_gold draw_location draw_icons end rescue # do nothing or the game will crash # before the first save file is created. end end #-------------------------------------------------------------------------- # * draw_background_panel #-------------------------------------------------------------------------- def draw_background_panel self.contents.blt(0, 0, @bg_image, @bg_image.rect) end #-------------------------------------------------------------------------- # * draw_party_characters #-------------------------------------------------------------------------- def draw_party_characters x, y, size = 5, 5, (self.contents.height - 10) for i in [email protected] name = @characters[i][2] index = @characters[i][3] draw_face(name, index, x, y, size) x += size + 2 end end #-------------------------------------------------------------------------- # * draw_playtime #-------------------------------------------------------------------------- def draw_playtime hour = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 time_string = sprintf("%02d:%02d:%02d", hour, min, sec) len = contents.text_size(time_string).width + 6 contents.font.color = FFIXSave::FONT_COLOR contents.draw_text(contents.width - len, TEXT_LINE1_Y, contents.width - 4, WLH, time_string) end #-------------------------------------------------------------------------- # * draw_leader_name #-------------------------------------------------------------------------- def draw_leader_name name = @characters[0][4] self.contents.draw_text(TEXT_COL1_X, TEXT_LINE1_Y, 128, WLH, name) end #-------------------------------------------------------------------------- # * draw_leader_level #-------------------------------------------------------------------------- def draw_leader_level level = "Level #{@characters[0][5]}" self.contents.draw_text(TEXT_COL1_X, TEXT_LINE2_Y, 128, WLH, level) end #-------------------------------------------------------------------------- # * draw_gold #-------------------------------------------------------------------------- def draw_gold gold = "#{@characters[0][6]} #{Vocab.gold[0,1]}" text_x = contents.width - (contents.text_size(gold).width + 6) self.contents.draw_text(text_x, TEXT_LINE2_Y, 96, WLH, gold) end #-------------------------------------------------------------------------- # * draw_location #-------------------------------------------------------------------------- def draw_location loc = @characters[0][7] text_y = TEXT_LINE2_Y + 28 self.contents.draw_text(308, text_y, contents.width - 312, WLH, loc) end #-------------------------------------------------------------------------- # * draw_icons #-------------------------------------------------------------------------- def draw_icons self.contents.blt(TEXT_COL1_X + 93 + FFIXSave::ICON_OFFSET_X, TEXT_LINE1_Y + 7, @timer_image, @timer_image.rect) self.contents.blt(TEXT_COL1_X + 93 + FFIXSave::ICON_OFFSET_X, TEXT_LINE2_Y + 7, @gold_image, @gold_image.rect) end #-------------------------------------------------------------------------- # * update_cursor #-------------------------------------------------------------------------- def update_cursor # not needed end #-------------------------------------------------------------------------- # * dispose #-------------------------------------------------------------------------- def dispose super @bg_image.dispose @timer_image.dispose @arrow_sprite.dispose end end Demo: N/D Incompatibilita': Lo Script Sovrascrive i metodi Scene_File write_save_data create_savefile_windows start Controllate che gli altri script in uso non li utilizzino.
-
Nome Script: Zephyr Menu System Versione: 1.2 Autore/i: FenixFyreX, NeoSky Informazioni: Uno menù molto bello in stile un pò futuristico con i menù a discesa =) Screenshots: Istruzioni: Inserite nel vostro progetto gli script e le immagini presenti all'interno della demo. Altre istruzioni (per creare anche un tutorial sul menù) sempre all'interno della stessa. Demo: http://www.mediafire.com/?r2hf8iuqn5r401z Note dell'Autore: L'autore richiede il permesso di postare lo script in altri forum, quindi, contattatelo nel caso voleste postarlo da qualche altra parte.
-
BS/Battlers Addon Battle Background basati sul tile
Ally ha aggiunto un topic in Scripts RPG Maker VX (RGSS2)
Nome Script: Battle Background basati sul tile Versione: 1.1 Autore/i: Reedo Informazioni: Lo script permette di settare il Background di battaglia in base all'autotile in cui il PG è posto prima che inizi la battaglia. E' anche possibile settare lo sfondo di battaglia per un'unica mappa. Screenshots: Istruzioni: Inserite lo script sopra Main. Altre istruzioni all'interno dello script/demo. Script: ############################################################################### ## Tile-Based Battle Backgrounds ## Version 1.1 ## December 28, 2009 ## By Reedo ############################################################################### ## SOURCE ## ## http://www.rpgmakervx.net/index.php?showtopic=23649 ############################################################################### ## REFERENCES ## ## None. This is an original script by Reedo. ############################################################################### ## DESCRIPTION ## ## [UPDATE 1.1] ## Added option to stretch images based on a request by Riokogen. ############################################################################### ## DESCRIPTION ## ## This script allows you to replace the background image(s) of the default ## battle scene with custom background and/or floor image of your own making. ## ## What's different about this script is that it will set the battle background ## based on the tile the player is standing on when the battle begins! ## ## The script names all of the autotiles in TileSetA, many of the single floor ## tiles, and allows you to name any others that you like. Named tiles can ## then have a specific set of battle graphics applied to them. In this way, ## the script can check to see which (if any) named tile the player is standing ## on, and set the battle background appropriately. Now Ralph and friends can ## fight in the woods when standing in the woods. ## ## The script also allows backgrounds specific to an entire map, and provides ## a list to exclude individual maps from custom battle background processing. ############################################################################### ## COMPATIBILITY ## ## Should be compatible with most other scripts. ############################################################################### ## REQUIREMENTS ## ## None ############################################################################### ## INSTALLATION ## ## Plug-and-play. ## Insert below Materials, or other Reedo scripts. ############################################################################### ## RIGHTS & RESTRICTIONS ## ## As with most Reedo scripts, this script is free to re-use, as-is, ## in personal, educational, and commercial RPGVX development projects, ## providing that: this script, as well as the rpgmakervx.net forum link ## from which it was obtained, are credited in writing displayed readily ## to the user of the final compiled code assembly. ## ## Reedo and rgpmakervx.net retain all rights of intellect and ownership. ## You forego all rights of warranty by utilizing this script. ############################################################################### ## USAGE ## ## Specify user options according to the comments below. ############################################################################### ############################################################################### ## USER OPTIONS ############################################################################### module REEDO_TILE_BASED_BATTLE_BACKGROUNDS # Set this flag to turn the entire script on and off. You can change this # value via a scipt. My long names can be a pain in the butt, so use code # like this in an event script command: # @b = REEDO_TILE_BASED_BATTLE_BACKGROUNDS # @b::ENABLED = false # ENABLED = true # Here the specific tiles that make up each game tile are specified. The # reason for this is that each auto-tile on a map is actually one of 48 # different tiles, and each tile on the game map has three possible layers # where a tile ID can be stored (so each game tile can have three tiles on it). # # The hash below attempts to name each floor tile in Tile Set A to make them # easier to refer to when specifing battle graphics. Since I was naming auto- # tiles anyway, I decided to name them all for you, incase your game makes a # tile passable when it normally would not be. The autotiles are the hard ones # to find - I started naming the non-autotile floor tiles too, and you should # be able to look at Tile Set A and figure out where I stopped at. The rest of # the tiles are numbered sequentially, left to right, top to bottom, so you # should be able to simply count to any tile in tile set A that you want to # add to the hash below. # # The hash is simply a tile group name for the key, and an array of tile IDs # followed by the target layer, for the value. The layer is 0 for most tiles, # but 1 for "bushes" and 2 for anything rendered above the character. # # NOTE - THIS IS FOR THE DEFAULT TILESETS # Though, the rules for autotiles are set, so this script should work with # custom tile sets. But for the defaults, you should not have to change # anything on the autotiles and you can add the other floor tiles easily. # # Group Name => Tile IDs , Graphic Layer TILE_GROUPS = { "RoughGrass" => [(2816 .. 2863), 0], "GreenTrees" => [(2864 .. 2911), 1], "HighMountains" => [(2912 .. 2959), 0], "LightGrass" => [(2960 .. 3007), 0], "GrassBushes" => [(3008 .. 3055), 1], "WoodenFence" => [(3056 .. 3103), 1], "StoneFloor" => [(3104 .. 3151), 0], "WoodCounter" => [(3152 .. 3199), 0], "RoughDirt" => [(3200 .. 3247), 0], "DeadTrees" => [(3248 .. 3295), 1], "MedMountains" => [(3296 .. 3343), 0], "LightDirt" => [(3344 .. 3391), 0], "DirtBushes" => [(3392 .. 3439), 1], "StoneFence1" => [(3440 .. 3487), 1], "GoldCarpet" => [(3488 .. 3535), 0], "FancyCounter" => [(3536 .. 3583), 0], "BeachSand" => [(3584 .. 3631), 0], "PalmTrees" => [(3632 .. 3679), 1], "LowMountains" => [(3680 .. 3727), 0], "DesertSand" => [(3728 .. 3775), 0], "SandBushes" => [(3776 .. 3823), 1], "StoneFence2" => [(3824 .. 3871), 1], "RedCarpet" => [(3872 .. 3919), 0], "StoneCounter" => [(3920 .. 3967), 0], "HeavySnow" => [(3968 .. 4015), 0], "SnowTrees" => [(4016 .. 4063), 1], "SnowMountains" => [(4064 .. 4111), 0], "LightSnow" => [(4112 .. 4159), 0], "SnowBushes" => [(4160 .. 4207), 1], "SnowFence" => [(4208 .. 4255), 1], "RaisedFloor" => [(4256 .. 4303), 0], "ClothCounter" => [(4304 .. 4351), 0], "BrownStone" => [[1528], 0], "GrayStone" => [[1529], 0], "LavaStone" => [[1530], 0], "IceStone" => [[1531], 0], "PlantVines" => [[1532], 0], "CrystalStone" => [[1533], 0], "LivingTissue" => [[1534], 0], "PurpleCord" => [[1535], 0], "Empty" => [[1536], 0], "CrystalClear1" => [[1537], 0], "CrystalClear2" => [[1538], 0], "CrystalIce" => [[1539], 0], "ForceField" => [[1540], 0], "CrystalClear1Steps" => [[1541], 0], "CrystalIceSteps" => [[1542], 0], "MetalGrate" => [[1543], 0], "CrystalClear2Steps" => [[1549], 0], "ForceFieldSteps" => [[1550], 0], "SquareGrayStone" => [[1552], 0], "LargeRedStone" => [[1553], 0], "LargeGoldStone" => [[1554], 0], "YellowStone" => [[1555], 0], "SmallRoundGrayStone" => [[1556], 0], "LargeRoundGrayStone" => [[1557], 0], "MossCovered" => [[1558], 0], "IceCovered" => [[1559], 0], } #END TILE_GROUPS # This hash contains the actual background image settings for each tile # group name. Enter the tile group name which should have unique battle # graphics as the key in the hash. Enter an array of the two picture # names (imported into the Pictures Game Resources), to use as the background # and floor, respectively, for the value of each hash entry. The floor # picture is optional and can be set to 'nil' if not used. DATA = {"RoughGrass" => ["opensky1", "roughgrass1"], "GreenTrees" => ["forestsky1", "greentrees1"], "RoughDirt" => ["opensky1", "roughdirt1"], "BeachSand" => ["oceansky1", "beachsand1"], "DesertSand" => ["desertsky1", "desertsand1"], } # This hash allows you to specify map IDs for maps that will always use the # same battle graphics, regardless of the tile the player is on. Just set # this to an empty hash {} if not used. SINGLE_BACKGROUND_MAPS = {7 => "RoughGrass"} # Here you can specify map IDs for maps that will be ignored by this script. # Simply input a map ID into the array and that map will not use this script # to determine its battle images. EXCLUDED_MAPS = [10, 11, 12] # These values allow you to offest the position and z-depth of the background # image. The normal background image is 544 X 224 if you use a standard floor, # but you may want some overlap or offest for transparency overlay. BACK_TOP = 0 BACK_LEFT = 0 BACK_Z_DEPTH = 0 # Set this to true to stretch the background image to fit. FIT_BACK = true # This is the size which the background image should be stretched to. FIT_BACK_SIZE = [544, 416] # These values allow you to offest the position and z-depth of the floor # image. The normal floor image is 544 X 192 if you use a standard background, # but you may want some overlap or offest for transparency overlay. FLOOR_TOP = 0 #224 FLOOR_LEFT = 0 FLOOR_Z_DEPTH = 1 # Set this to true to stretch the floor image to fit. FIT_FLOOR = true # This is the size which the floor image should be stretched to. FIT_FLOOR_SIZE = [544, 416] # This allows you to disable drawing of the default floor if you specify # a background image, but no floor image for a tile. In most cases you # won't need to modify this, but if you have another custom script providing # a floor image, then you may want to set this to false when using tiles with # only a background image specified. DEFAULT_FLOOR_ENABLED = true end ############################################################################### ## MAIN SCRIPT ############################################################################### ## EDITS BEYOND THIS POINT ARE AT YOUR OWN RISK!!! ############################################################################### class Spriteset_Battle alias reedo_tbbb_sb_create_battleback create_battleback def create_battleback tbbb = REEDO_TILE_BASED_BATTLE_BACKGROUNDS image = reedo_get_battleback if image != nil picture = Cache.picture(image) if tbbb::FIT_BACK bmp = Bitmap.new(tbbb::FIT_BACK_SIZE[0], tbbb::FIT_BACK_SIZE[1]) bmp.stretch_blt(bmp.rect, picture, picture.rect) else bmp = picture end @battleback_sprite = Sprite.new(@viewport1) @battleback_sprite.bitmap = picture @battleback_sprite.x = tbbb::BACK_LEFT @battleback_sprite.y = tbbb::BACK_TOP @battleback_sprite.z = tbbb::BACK_Z_DEPTH else reedo_tbbb_sb_create_battleback end end alias reedo_tbbb_sb_create_battlefloor create_battlefloor def create_battlefloor tbbb = REEDO_TILE_BASED_BATTLE_BACKGROUNDS image = reedo_get_battlefloor if image != nil picture = Cache.picture(image) if tbbb::FIT_FLOOR bmp = Bitmap.new(tbbb::FIT_FLOOR_SIZE[0], tbbb::FIT_FLOOR_SIZE[1]) bmp.stretch_blt(bmp.rect, picture, picture.rect) else bmp = picture end @battlefloor_sprite = Sprite.new(@viewport1) @battlefloor_sprite.bitmap = bmp @battlefloor_sprite.x = tbbb::FLOOR_LEFT @battlefloor_sprite.y = tbbb::FLOOR_TOP @battlefloor_sprite.z = tbbb::FLOOR_Z_DEPTH else reedo_tbbb_sb_create_battlefloor if tbbb::DEFAULT_FLOOR_ENABLED end end def self.reedo_get_current_tile_id(layer) x = $game_player.x y = $game_player.y tile_id = $game_map.data[x, y, layer] tile_id = -1 if tile_id == nil return tile_id end def reedo_get_battleback return nil if !REEDO_TILE_BASED_BATTLE_BACKGROUNDS::ENABLED return nil if REEDO_TILE_BASED_BATTLE_BACKGROUNDS::EXCLUDED_MAPS.include?($game_map.map_id) @reedo_backs = reedo_get_battle_backgrounds if @reedo_backs == nil return nil if @reedo_backs.length == 0 return @reedo_backs[0] end def reedo_get_battlefloor return nil if !REEDO_TILE_BASED_BATTLE_BACKGROUNDS::ENABLED return nil if REEDO_TILE_BASED_BATTLE_BACKGROUNDS::EXCLUDED_MAPS.include?($game_map.map_id) @reedo_backs = reedo_get_battle_backgrounds if @reedo_backs == nil return nil if @reedo_backs.length == 0 return @reedo_backs[1] end def reedo_get_battle_backgrounds values = nil if REEDO_TILE_BASED_BATTLE_BACKGROUNDS::SINGLE_BACKGROUND_MAPS.has_key?($game_map.map_id) key = REEDO_TILE_BASED_BATTLE_BACKGROUNDS::SINGLE_BACKGROUND_MAPS[$game_map.map_id] values = REEDO_TILE_BASED_BATTLE_BACKGROUNDS::DATA[key] else t1 = Spriteset_Battle.reedo_get_current_tile_id(0) t2 = Spriteset_Battle.reedo_get_current_tile_id(1) t3 = Spriteset_Battle.reedo_get_current_tile_id(2) REEDO_TILE_BASED_BATTLE_BACKGROUNDS::TILE_GROUPS.keys.each do |key| data = REEDO_TILE_BASED_BATTLE_BACKGROUNDS::TILE_GROUPS[key] case data[1] when 0 t_id = t1 when 1 t_id = t2 when 2 t_id = t3 end if t_id != nil if data[0].include?(t_id) values = REEDO_TILE_BASED_BATTLE_BACKGROUNDS::DATA[key] break end end end end if values == nil values = REEDO_TILE_BASED_BATTLE_BACKGROUNDS::DATA["Default"] end return [] if values == nil return values end end Demo: http://www.mediafire.com/download.php?opobyf38bzgno3m Incompatibilita': Dovrebbe essere compatibile con la maggior parte di altri script. Lo script però è stato progettato per il sistema di combattimento di default e potrebbe non essere compatibile con gli altri. -
Nome Script: NMS - Neo Message System Versione: 3.0 Autore/i: Woratana Informazioni: Un sistema di messaggi che prende piede dall'AMS di dubealex,e quindi riportato anche per VX. Con questo script,si possono inserire opzioni che non sono presenti nel VX,esempio: Istruzioni: All'interno della demo ^^ Demo: http://www.mediafire.com/?2mhjjkk4mte
-
Nome Script: Sistema Aggressione Versione: 1.1 Alpha Autore/i: Zetu Informazioni: Questo script crea un sistema di aggressione, permettendo ai nemici di 'odiare' un eroe e quindi colpirlo in base alla sua percentuale. Istruzioni: Inserite lo script sopra Main. Script: #======================# # Z-Systems by: Zetu # #===========================#======================#===========================# # * * * Aggro System v1.01 * * * # #=#==========================================================================#=# # OVERWRITES # # Game_Enemy::make_action # # Game_Interpretor::command_339 # # SEMI-OVERWRITES # # Game_BattleAction::decide_random_target # #--------------------------------------------------------------------------# # Introduction: What is Aggro? # # Aggro (or Aggression) is a statistical value that helps determine the # # percent chance an enemy will attack a specific actor. # # What is this good for? # # In many RPGs, there are strong characters that can take a hit, also # # called "Tanks", and weaker ones that cannot take much damage. By # # manipulating these statistical values, you can control which actors # # will take damage, and which ones will not. # # How to increase Aggro? # # In this system, Aggro can be gained/lost by Attacks, Skills, and by # # guarding. The default values are defined by the module below. Inside # # note tags of skills, you may add tags to change its default amount. # # # # <aggro: X> # # Increases aggro by a rating of X. Keep this value between # # 0.0 and 1 OR 0 and 100. Does not perfectly increase aggro by the # # amount given. # # <pro aggro: X> # # This sets aggro to an amount, reducing all other aggro to match. Only # # use in hard aggro skills, such as a provoke (gain all aggro) or fade # # (remove all aggro). This tag is still in testing and not guarenteed # # to be bug free. # #--------------------------------------------------------------------------# # Version History: # # v1.01 ALPHA (Please Report all bugs related to this script) # #--------------------------------------------------------------------------# # * * * FOR SCRIPTERS WANTING TO CREATE A HUD! * * * # # The aggro values are stored in $scene.aggro and is a two dimensional # # array. @aggro[enemy.index][actor.index] returns the percent value of # # aggro, and will be between 0.0 and 1.0. # #==========================================================================# module Z_Systems module Aggro NORMAL_ATTACK = 0.06 SKILL_DEFAULT = 0.06 GUARD = -0.06 end end #========#======================#====#================================#========# #--------# #----# DO NOT EDIT PAST THIS POINT!!! #--------# #--------# End of Customization #----# Editing will cause death by #--------# #--------# #----# brain asplosions. #--------# #========#======================#====#================================#========# class Array; def sum; inject( nil ) { |sum,x| sum ? sum+x : x }; end; end class Scene_Battle < Scene_Base alias zs_aggro_start start def start zs_aggro_start @aggro = [] for e in 0...$game_troop.members.size array = [] for actor in $game_party.members array.push(1.0/$game_party.members.size) end @aggro[e] = array end end def aggro return @aggro end def normalize_aggro for e in 0...$game_troop.members.size value = @aggro[e].sum for a in 0...$game_party.members.size @aggro[e][a] /= value end end end def inc_aggro(e, a, value) return if $game_party.members.size <= 1 @aggro[e][a] += value @aggro[e][a] = [[@aggro[e][a], 0.0].max, 1.0].min return if @aggro[e][a] == 1.0 div = (@aggro[e].sum - @aggro[e][a])/(1.0-@aggro[e][a]) for aindex in 0...$game_party.members.size unless a == aindex @aggro[e][aindex] /= div end end end def set_aggro(e, a, value) return if $game_party.members.size <= 1 @aggro[e][a] = value @aggro[e][a] = [[@aggro[e][a], 0.0].max, 1.0].min if @aggro[e][a] == 1.0 for aindex in 0...$game_party.members.size unless a == aindex @aggro[e][aindex] = 0 end end else div = (@aggro[e].sum - @aggro[e][a])/(1.0-@aggro[e][a]) for aindex in 0...$game_party.members.size unless a == aindex @aggro[e][aindex] /= div end end end end alias zs_aggro_execute_action_attack execute_action_attack def execute_action_attack zs_aggro_execute_action_attack return if @active_battler.action.make_targets[0].actor? for target in @active_battler.action.make_targets inc_aggro(target.index, @active_battler.index, Z_Systems::Aggro::NORMAL_ATTACK) end normalize_aggro end alias zs_aggro_execute_action_skill execute_action_skill def execute_action_skill zs_aggro_execute_action_skill return if @active_battler.action.make_targets[0].actor? value = Z_Systems::Aggro::SKILL_DEFAULT for line in @active_battler.action.skill.note.split(//) case line when /<aggro:[ ](.*)>/i value = $1.to_f if value > 1.0 value /= 100.0 end for target in @active_battler.action.make_targets inc_aggro(target.index, @active_battler.index, value) end return when /<pro[ ][_]aggro:[ ](.*)>/i value = $1.to_f if value > 1.0 value /= 100.0 end for target in @active_battler.action.make_targets set_aggro(target.index, @active_battler.index, value) end return end end for target in @active_battler.action.make_targets inc_aggro(target.index, @active_battler.index, value) end end alias zs_aggro_execute_action_guard execute_action_guard def execute_action_guard zs_aggro_execute_action_guard for enemy in $game_troop.members inc_aggro(enemy.index, @active_battler.index, Z_Systems::Aggro::GUARD) end normalize_aggro end end class Game_Unit def random_target_aggro(enemy) $scene.normalize_aggro rref = rand(101).to_f/100.0 #~ print $scene.aggro[enemy.index].inspect for a in 0...$game_party.members.size if rref <= $scene.aggro[enemy.index][0..a].sum and !$game_party.members[a].dead? #~ print $scene.aggro[enemy.index][0..a].inspect return $game_party.members[a] end end return random_target_aggro(enemy) end end class Game_BattleAction alias zs_aggro_decide_random_target decide_random_target def decide_random_target(attacker = nil) #SEMI-OVERWRITE if !friends_unit.members[0].actor? or attacker != nil if for_friend? target = friends_unit.random_target elsif for_dead_friend? target = friends_unit.random_dead_target else target = opponents_unit.random_target_aggro(attacker) end if target == nil clear else @target_index = target.index end else zs_aggro_decide_random_target end end end class Game_Enemy < Game_Battler def make_action @action.clear return unless movable? available_actions = [] rating_max = 0 for action in enemy.actions next unless conditions_met?(action) if action.kind == 1 next unless skill_can_use?($data_skills[action.skill_id]) end available_actions.push(action) rating_max = [rating_max, action.rating].max end ratings_total = 0 rating_zero = rating_max - 3 for action in available_actions next if action.rating <= rating_zero ratings_total += action.rating - rating_zero end return if ratings_total == 0 value = rand(ratings_total) for action in available_actions next if action.rating <= rating_zero if value < action.rating - rating_zero @action.kind = action.kind @action.basic = action.basic @action.skill_id = action.skill_id @action.decide_random_target(self) return else value -= action.rating - rating_zero end end end end class Game_Interpretor def command_339 iterate_battler(@params[0], @params[1]) do |battler| next unless battler.exist? battler.action.kind = @params[2] if battler.action.kind == 0 battler.action.basic = @params[3] else battler.action.skill_id = @params[3] end if @params[4] == -2 # Last target battler.action.decide_last_target elsif @params[4] == -1 # Random battler.action.decide_random_target(battler) elsif @params[4] >= 0 # Index designation battler.action.target_index = @params[4] end battler.action.forcing = true $game_troop.forcing_battler = battler @index += 1 return false end return true end end
-
Nome Script: Amethyst Platform System Versione: 1.2 Autore/i: Khas Informazioni: Come da titolo, con questo script potete creare il vostro gioco platform. Features: - Alterazione sistema gravitazionale e impostazioni salto - Compatibilità con Requiem SBABS Screenshots: Istruzioni: Inserite lo script sopra Main o sopra tutti gli altri script che avete nel progetto. Altre istruzioni sono all'interno dello script. Script: =begin ================================================================================ Amethyst Platform System - Version 1.2 RMVX - 25/03/2010 ================================================================================ -------------------------------------------------------------------------------- Credits -------------------------------------------------------------------------------- Created by Khas. Translation by Avatar176. All Amethyst scripts are licensed under a Creative Commons All Amethyst scripts can only be used in non-commercial projects, If use in commercial project please send a PM with the request. -------------------------------------------------------------------------------- Features -------------------------------------------------------------------------------- The Amethyst System Platform Selected maps transforms the constant Amp_System_Maps (see the "configuration) in platform-style maps. -------------------------------------------------------------------------------- Instructions/Installation -------------------------------------------------------------------------------- 1 - Paste this script above all the additional scripts 2 - Set it in the configuration -------------------------------------------------------------------------------- Instructions - Creating The Maps -------------------------------------------------------------------------------- The tiles are not passable and the platform where the tiles are passable the character can fall jump. The events also suffer map action gravity of the system, ie, fall into holes too -------------------------------------------------------------------------------- Configuration -------------------------------------------------------------------------------- =end module Amp_Config # Maps that will be platform style, place the ID within the [], separated by commas Amp_System_Maps = [1,2,8,9,10,12,13,14,15,17,18,19,20,22,23,24,25,26,27,28,32,30,33,34,35,36,37,38,39,40,41, 42,43,46] # Force of gravity, varies from 0 ~ 2 GForce = 1 # Key to Jump Jump_Key = Input::X # Force Leap, values from 0 ~ 5 Jump_Force = 4 # Sound to play when you jump Jump_Sound = "Jump1" end #------------------------------------------------------------------------------- # Do not change anything below unless you know what you're doing! #------------------------------------------------------------------------------- $Amethyst_Scripts = {} if $Amethyst_Scripts.nil? $Amethyst_Scripts["Am Platform System"] = ["1.2","25/03/2010"] class Game_Character alias amp_original_initialize initialize alias amp_original_update update alias amp_original_move_up move_up alias amp_original_move_down move_down alias amp_original_move_left move_left alias amp_original_move_right move_right alias amp_original_move_random move_random alias amp_original_turn_random turn_random alias amp_original_move_toward_player move_toward_player alias amp_original_move_away_from_player move_away_from_player def amp_map? $game_map.nil? ? i = false : i = Amp_Config::Amp_System_Maps.include?($game_map.map_id) return i end def initialize if amp_map? @gforce = false; @nforce = false; @sforce = nil end amp_original_initialize end def update amp_original_update return unless amp_map? force_gravity if @gforce stop_gravity_force if @nforce end def force_gravity return if moving? @move_speed = Amp_Config::GForce+4 @y = $game_map.round_y(@y+1) @real_y = (@y-1)*256 if passable?(@x, @y+1); @gforce = true else; @nforce = true; @gforce = false end end def check_gravity_force if passable?(@x, @y+1) @sforce = @move_speed @gforce = true @walk_anime = false else check_event_trigger_touch(@x, @y+1) end end def stop_gravity_force return if moving? @nforce = false @gforce = false @walk_anime = true @move_speed = @sforce @sforce = nil end def move_up(turn_ok = true) amp_map? ? amp_move_up(turn_ok) : amp_original_move_up(turn_ok) end def move_down(turn_ok = true) amp_map? ? amp_move_down(turn_ok) : amp_original_move_down(turn_ok) end def move_left(turn_ok = true) amp_map? ? amp_move_left(turn_ok) : amp_original_move_left(turn_ok) end def move_right(turn_ok = true) amp_map? ? amp_move_right(turn_ok) : amp_original_move_right(turn_ok) end def move_random amp_map? ? amp_move_random : amp_original_move_random end def move_toward_player amp_map? ? amp_move_toward_player : amp_original_move_toward_player end def move_away_from_player amp_map? ? amp_move_away_from_player : amp_original_move_away_from_player end def turn_random amp_map? ? amp_turn_random : amp_original_turn_random end def amp_move_up(turn_ok) if passable?(@x, @y-1) @y = $game_map.round_y(@y-1) @real_y = (@y+1)*256 increase_steps @move_failed = false else check_event_trigger_touch(@x, @y-1) @move_failed = true end end def amp_move_down(turn_ok) if passable?(@x, @y+1) @y = $game_map.round_y(@y+1) @real_y = (@y-1)*256 increase_steps @move_failed = false else check_event_trigger_touch(@x, @y+1) @move_failed = true end end def amp_move_left(turn_ok) if passable?(@x-1, @y) turn_left if turn_ok @x = $game_map.round_x(@x-1) @real_x = (@x+1)*256 increase_steps check_gravity_force @move_failed = false else turn_left if turn_ok check_event_trigger_touch(@x-1, @y) @move_failed = true end end def amp_move_right(turn_ok) if passable?(@x+1, @y) turn_right if turn_ok @x = $game_map.round_x(@x+1) @real_x = (@x-1)*256 increase_steps check_gravity_force @move_failed = false else turn_right if turn_ok check_event_trigger_touch(@x+1, @y) @move_failed = true end end def amp_move_random case rand(2) when 0; move_left(false) when 1; move_right(false) end end def amp_move_toward_player sx = distance_x_from_player return if sx == 0 sx > 0 ? move_right : move_left end def amp_move_away_from_player sx = distance_x_from_player return if sx == 0 sx > 0 ? move_right : move_left end def amp_turn_random case rand(2) when 0; turn_right when 1; turn_left end end end class Game_Player < Game_Character alias amp_2original_initialize initialize alias amp_2original_update update alias amp_2original_move_by_input move_by_input def initialize amp_2original_initialize @jforce = 0 end def update amp_2original_update update_jump_force if amp_map? and !@gforce end def update_jump_force if @jforce > 0 return if moving? if @jforce > 1 if Input.press?(Input::RIGHT) turn_right jump_upper_right elsif Input.press?(Input::LEFT) turn_left jump_upper_left else jump_up end else @move_speed = 4 @walk_anime = true check_gravity_force end @jforce -= 1 else if Input.trigger?(Amp_Config::Jump_Key) RPG::SE.new(Amp_Config::Jump_Sound,80).play dash? ? @jforce = 4+Amp_Config::Jump_Force : @jforce = 3+Amp_Config::Jump_Force @move_speed = 5 @walk_anime = false @pattern = 0 end end end def force_gravity return if moving? @move_speed = Amp_Config::GForce+4 if Input.press?(Input::RIGHT) turn_right gforce_lower_right elsif Input.press?(Input::LEFT) turn_left gforce_lower_left else @y = $game_map.round_y(@y+1) @real_y = (@y-1)*256 end check_touch_event if passable?(@x, @y+1); @gforce = true else; @nforce = true; @gforce = false end end def gforce_lower_left if (passable?(@x, @y+1) and passable?(@x-1, @y+1)) or (passable?(@x-1, @y) and passable?(@x-1, @y+1)) @x -= 1 @y += 1 else @y = $game_map.round_y(@y+1) @real_y = (@y-1)*256 end end def gforce_lower_right if (passable?(@x, @y+1) and passable?(@x+1, @y+1)) or (passable?(@x+1, @y) and passable?(@x+1, @y+1)) @x += 1 @y += 1 else @y = $game_map.round_y(@y+1) @real_y = (@y-1)*256 end end def jump_up if passable?(@x, @y-1) @y = $game_map.round_y(@y-1) @real_y = (@y+1)*256 @move_failed = false else check_event_trigger_touch(@x, @y-1) @move_failed = true @jforce = 0 check_gravity_force end end def jump_upper_left unless @direction_fix @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction) end if (passable?(@x, @y-1) and passable?(@x-1, @y-1)) or (passable?(@x-1, @y) and passable?(@x-1, @y-1)) @x -= 1 @y -= 1 else jump_up end end def jump_upper_right unless @direction_fix @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction) end if (passable?(@x, @y-1) and passable?(@x+1, @y-1)) or (passable?(@x+1, @y) and passable?(@x+1, @y-1)) @x += 1 @y -= 1 else jump_up end end def move_by_input amp_map? ? amp_move_by_input : amp_2original_move_by_input end def amp_move_by_input return if @gforce return unless movable? return if $game_map.interpreter.running? case Input.dir4 when 4; move_left when 6; move_right end end end Note dell'Autore: Si consiglia questo script per minigiochi o giochi brevi. Per fare qualcosa di più complesso, create qualcosa ad eventi o affidatevi a tool più consoni a quel tipo di realizzazione.
-
Nome Script: Rei Actor Resize Versione: 2.2c Autore/i: reijubv Informazioni: Cambia la grandezza della grafica dei pg o degli eventi. Utile per la mappa del mondo se si vuole rimpicciolire il pg. Istruzioni: All'interno dello script Script: #=============================================================================== # �€� [VX] �€� Rei Actor Resize �€� �€� # �€� Change player's or event's graphic size �€� #------------------------------------------------------------------------------- # �€� by reijubv [[email protected]] # �€� Released on: 27/04/2009 # �€� Version: 2.2c (June 12th 2009) #------------------------------------------------------------------------------- # > Changelog: # V.1.0 (25-04-09) = Initial release # V.2.0 (01-05-09) = Now resizing event's graphic is possible! # V.2.1 (04-05-09) = Compatible with Woratana's caterpillar script! # V.2.1b(13-05-09) = Compatible with Trickster's caterpillar script! # V.2.1c(14-05-09) = Compatible with Originalwij's pet script! # V.2.2 (17-05-09) = Now resizing individual event's size is possible! # V.2.2b(17-05-09) = Now using array to store event's size, making it easier # for people to resize each events individually! # V.2.2c(12-06-09) = Added a global variable used for compatibility #------------------------------------------------------------------------------- # �€� Information: # A small script that allows you to change the size of player/event's graphic #---------------- # V.2.0 Feature : #---------------- # You can also change an event's graphic size now! # To change an event's graphic size, you MUST do these things : # (these examples are from the script's default settings) # 1. adds this line to event's comment : # rzoom # 2. turn on the switch from the setting below (the one that called EFLAG) # 3. see the effect yourself on your game! # See the demo if you don't understand! #---------------- # V.2.1 Feature : #---------------- # Compatible with Woratana caterpillar script! # For setting compatibility with it, uncomment line 226-228 #----------------- # V.2.1b Feature : #----------------- # Compatible with Trickster's caterpillar script! # For setting compatibility with it, uncomment line 232-234 #----------------- # V.2.1c Feature : #----------------- # Compatible with Originalwij's pet script! # For setting compatibility with it, uncomment line 238-240 #---------------- # V.2.2 Feature : #---------------- # (NOT FUNCTIONAL ANYMORE, SKIP TO V.2.1b INSTEAD!) : # You can now specify each event's size by using these comments : # [rsx#] and [rsy#] # Put those comments in one line or in other comment command, # [rsx#] Will change the event's X size to # # [rsy#] Will change the event's Y size to # # Those feature will only works for non-decymal value. # Decymal value will use an integer that is the closest to it, example : # 1.2 will return 1, and 1.8 will return 2 # Example for usage : # [rsx2][rsy3] # Will change event's X size to 2, and Y size to 3 # ---------------- # V.2.2b Feature : #----------------- # Now you can use an array to store value you can use to resizing events, # Setup it in Rei module below. # [rsvx#] and [rsvy#]; # To use them, type those comments in 1 line, like V.2.1 feature, but never use # both V.2.2 and V.2.1 features in 1 event, to avoid bugs. # [rsvx#] Will change the event's X size to index # in the ARR variable below # [rsvy#] Will change the event's Y size to index # in the ARR variable below # Example for usage : # [rsvx0][rsvy3] # Change event's X size to a number in ARR variable from Rei module in index 0 # and Y size to a number in ARR variable from Rei module in index 3 #------------------------------------------------------------------------------- # You can put all those comments in one line, like rzoom[rsvx#][rsvy#] #------------------------------------------------------------------------------- # reijubv for making this script. # Miget man12 for making this script compatible with Woratana's caterpillar script. #------------------------------------------------------------------------------- # ? Installation: # Put this script above main, setup script below #=============================================================================== $imported = {} if $imported == nil $imported["Rei_"+"ZoomActor"] = true #--------------------------------------------------------------------------- # ** Rei Module #--------------------------------------------------------------------------- module Rei module ZoomActor #--------------------------------------------------------------------------- # * Customize script here! #--------------------------------------------------------------------------- #For player ZOOMX = 0.6 # Change actor's horizontal size here ZOOMY = 0.6 # Change actor's vertical size here FLAG = 599 # Switch Id to (de)activate this script effect to player # (V.2.0) # For event ECOMM = "rzoom" # Write this to an event's comment to change it's size # automatically. # Event that doesn't have this comment won't be affected # even if the switch is turned on! EFLAG = 4 # Switch Id to (de)activate this script effect to events EZUMX = 0.6 # Change event's horizontal size here, 0.1 minimum EZUMY = 0.6 # Change event's vertical size here, 0.1 minimum # To change those variables in game, call script : # Rei::ZoomActor::FLAG =switchId # Rei::ZoomActor::EFLAG=switchId # Rei::ZoomActor::ECOMM="writesomethinghere" # Rei::ZoomActor::ZOOMX=# # Rei::ZoomActor::ZOOMY=# # Rei::ZoomActor::EZUMX=# # Rei::ZoomActor::EZUMY=# # Change siwtchId with, ehm, a switch's Id.. # Change # with a number! # Change writesomethinghere with umm, something you want # V.2.2b #0 1 2 3 4 5 6 7 8 9 ARR = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, #You can add more here ] # This array is for storing predefined size value # to be used when using V.2.2b feature. # Each line after the first have it's index added by 10 # Example : 3.1 index is 30, 1.6 index is 15 #--------------------------------------------------------------------------- # * Stop customize script here! #--------------------------------------------------------------------------- end end #============================================================================== # ** Game_Event #------------------------------------------------------------------------------ # This class deals with events. It handles functions including event page # switching via condition determinants, and running parallel process events. # It's used within the Game_Map class. #============================================================================== class Game_Event < Game_Character attr_accessor :reixid attr_accessor :reiyid attr_reader :reiarr alias reiinit initialize unless method_defined?('reiinit') def initialize(map_id, event) @reixid = 9 @reiyid = 9 @reiarr = [@reixid,@reiyid] reiinit(map_id, event) end def getsizeindex if [email protected]? for i in [email protected] - 1 next if @list[i].code != 108 if @list[i].parameters[0].include?("[rsvx") list = @list[i].parameters[0].scan(/[rsvx([0-9]+)]/) @reixid = $1.to_i end if @list[i].parameters[0].include?("[rsvy") list = @list[i].parameters[0].scan(/[rsvy([0-9]+)]/) @reiyid = $1.to_i end end @reiarr = [@reixid,@reiyid] return @reiarr end end #--------------------------------------------------------------------------- # * check if event has a specified comment #--------------------------------------------------------------------------- def has_comment?(comment, return_comment = false ) if [email protected]? for i in [email protected] - 1 next if @list[i].code != 108 if @list[i].parameters[0].include?(comment) return @list[i].parameters[0] if return_comment return true end end return '' if return_comment return false end end end #============================================================================== # ** Sprite_Character #------------------------------------------------------------------------------ # This sprite is used to display characters. It observes a instance of the # Game_Character class and automatically changes sprite conditions. #============================================================================== class Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # * Aliases #-------------------------------------------------------------------------- alias rei_update update unless method_defined?('rei_update') #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update if @character.is_a?(Game_Player) and $game_switches[Rei] self.zoom_x = Rei::ZoomActor::ZOOMX self.zoom_y = Rei::ZoomActor::ZOOMY elsif @character.is_a?(Game_Event) and $game_switches[Rei] and @character.has_comment?(Rei::ZoomActor::ECOMM) if @character.has_comment?("[rsvx") self.zoom_x = Rei::ZoomActor::ARR[@character.getsizeindex[0]] else self.zoom_x = Rei::ZoomActor::EZUMX end if @character.has_comment?("[rsvy") self.zoom_y = Rei::ZoomActor::ARR[@character.getsizeindex[1]] else self.zoom_y = Rei::ZoomActor::EZUMY end #UNCOMMENT BELOW LINES IF YOU USE WORATANA'S CATERPILLAR SCRIPT #elsif @character.is_a?(Game_WCateracter) and $game_switches[Rei]==true # self.zoom_x = Rei::ZoomActor::ZOOMX # self.zoom_y = Rei::ZoomActor::ZOOMY #UNCOMMENT ABOVE LINES IF YOU USE WORATANA'S CATERPILLAR SCRIPT #UNCOMMENT BELOW LINES IF YOU USE TRICKSTER'S CATERPILLAR SCRIPT #elsif @character.is_a?(Game_Follower) and $game_switches[Rei] # self.zoom_x = Rei::ZoomActor::ZOOMX # self.zoom_y = Rei::ZoomActor::ZOOMY #UNCOMMENT ABOVE LINES IF YOU USE TRICKSTER'S CATERPILLAR SCRIPT #UNCOMMENT BELOW LINES IF YOU USE ORIGINALWIJ'S PET SCRIPT #elsif @character.is_a?(Game_Pet) and $game_switches[Rei] # self.zoom_x = Rei::ZoomActor::ZOOMX # self.zoom_y = Rei::ZoomActor::ZOOMY #UNCOMMENT ABOVE LINES IF YOU USE TRICKSTER'S CATERPILLAR SCRIPT else self.zoom_x = 1.0 self.zoom_y = 1.0 end rei_update end end Incompatibilita': N/D
-
Nome Script: YEZ to YEM Status Biography Versione: 1.00 Autore/i: heisenman, Yanfly (scripts originali) Informazioni: Questo script ricrea nella scena Status dello YEM il comando "Biography" originario dello YEZ, che mostra le biografie degli attori o le descrizioni delle classi nel caso le biografie siano assenti. Istruzioni: Inserire sotto ▼ Materials e YEM Status Menu Melody ma sopra ▼ Main nello Script Editor. L'array COMMANDS e l'hash COMMAND_VOCAB sono riscritti, aggiornarli se necessario. Richiede YEM Status Menu Melody per funzionare. Script: #=============================================================================== # ** YEZ to YEM Status Biography #------------------------------------------------------------------------------ # This script brings back the YEZ Biography command in the Scene_Status # command window that displays actors biographies or classes descriptions. #=============================================================================== # Instructions #------------------------------------------------------------------------------ # Place this script below ▼ Materials and YEM Status Menu Melody but above # ▼ Main in the Script Editor. # Note that the COMMANDS array and the COMMAND_VOCAB hash are rewritten, so # update them if needed. # It requires YEM Status Menu Melody to work. #=============================================================================== # Disclaimers #------------------------------------------------------------------------------ # This script is entirely based on the YEZ Biography command, present in the # original YEZ Status Command Menu, and YEM Status Menu Melody. Both scripts are # property of Yanfly (pockethouse.com). #=============================================================================== module YEM module STATUS #=============================================================================== # Configuration starts here. #=============================================================================== # This array determines what items will appear in the status scene and # what order they appear in. Remove them if you wish for them to not appear. COMMANDS =[ :general, # Displays general actor information. :boosters, # Displays the actor's parameters and item boosts. :elements, # Displays the actor's elemental affinities. :states, # Displays the actor's status effect resistances. :biography, # A biography of the actor. ] # Do not remove this. # This hash determines how the vocabulary appears in your game. Modify them # as you see fit if you wish to rename certain aspects. COMMAND_VOCAB ={ :general => "General", :boosters => "Boosters", :elements => "Elements", :states => "Ailments", :biography => "Biography", } # Do not remove this. # Biography Mini Window. The following will allow you to adjust biographies # for actors and classes. If an actor does not have a personal biography, # then the description of the character's class will be displayed instead. BIOGRAPHY ={ :actor_bio => "%s's Biography", :class_des => "%s Description", } # Do not remove this. # When typing out biographies and descriptions, use N[x] to write out # the actor's name if the game allows renaming. For line splits, use | # at the each position you would want the description to start a new line. ACTOR_BIOS ={ # If an actor ID is not listed here, then refer to class bio. # ID => Bio 1 => 'N[1] is a very hot blooded young male whom|' + 'embarked on a journey to save Don Miguel.|' + 'But given his reckless behaviour and actions,|' + 'N[1] is known to give his team lots of trouble.', 2 => 'N[2] trained as a warrior since she was|' + 'quite young. Due to her militant past, she has|' + 'developed a rather tomboy-ish personality.|' + 'N[2] loves training and is also a health nut.', 3 => 'N[3] is the overzealous priest of N[1]'s|' + 'party. His actions speak louder than his words|' + 'and his words are already loud enough. N[3]|' + 'is definitely one who choose the wrong class.', 4 => 'N[4] is the team's walking encyclopedia.|' + 'She just about knows everything for each and|' + 'every situation. But aside from that, N[4]|' + 'just doesn't have the actual life experience.', } # Do not remove this. # Just like the actor biographies, use N[x] to write out a changeable # actor's name and V[x] to write out variables. Use | to enforce a # line break. CLASS_BIOS ={ # ID => Bio 1 => 'Knights are quick and powerful characters|' + 'that excel in both melee and magic.', 2 => 'Warriors are very dedicated to close ranged|' + 'physical combat.', 3 => 'Priests focus on healing and aiding their|' + "party members. Don't let N[3] fool you.", 4 => 'Magicians excel in the magical arts and also|' + 'excel at blasting their enemies to bits.', } # Do not remove this. #=============================================================================== # Configuration ends here. #=============================================================================== end # STATUS end # YEM #=============================================================================== # Window_Status_Biography #=============================================================================== class Window_Status_Biography < Window_Base #-------------------------------------------------------------------------- # initialize #-------------------------------------------------------------------------- def initialize(actor) super(0, 128, Graphics.width, Graphics.height - 128) @actor = actor refresh end #-------------------------------------------------------------------------- # actor= #-------------------------------------------------------------------------- def actor=(new_actor) @actor = new_actor refresh end #-------------------------------------------------------------------------- # refresh #-------------------------------------------------------------------------- def refresh self.contents.clear if YEM::STATUS::ACTOR_BIOS.include?(@actor.id) draw_actor_bio elsif YEM::STATUS::CLASS_BIOS.include?(@actor.class_id) draw_class_bio end end #-------------------------------------------------------------------------- # draw_actor_bio #-------------------------------------------------------------------------- def draw_actor_bio self.contents.font.color = normal_color; dy = 0 text = sprintf(YEM::STATUS::BIOGRAPHY[:actor_bio], @actor.name) self.contents.draw_text(0, dy, self.width-32, WLH*2, text, 1) text = YEM::STATUS::ACTOR_BIOS[@actor.id] nwidth = 544 dx = 18; dy = WLH*2 text.gsub!(/V[([0-9]+)]/i) { $game_variables[$1.to_i] } text.gsub!(/V[([0-9]+)]/i) { $game_variables[$1.to_i] } text.gsub!(/N[([0-9]+)]/i) { $game_actors[$1.to_i].name } lines = text.split(/(?:[|]|n)/i) lines.each_with_index { |l, i| l.gsub!(/__([d+])/i) { "N#{$1}" } self.contents.draw_text(dx, i * 24 + dy, nwidth, WLH, l, 0)} end #-------------------------------------------------------------------------- # draw_class_bio #-------------------------------------------------------------------------- def draw_class_bio self.contents.font.color = normal_color; dy = 0 text = sprintf(YEM::STATUS::BIOGRAPHY[:class_des], @actor.class.name) self.contents.draw_text(0, dy, self.width-32, WLH*2, text, 1) text = YEM::STATUS::CLASS_BIOS[@actor.class.id] nwidth = 544 dx = 18; dy = WLH*2 text.gsub!(/V[([0-9]+)]/i) { $game_variables[$1.to_i] } text.gsub!(/V[([0-9]+)]/i) { $game_variables[$1.to_i] } text.gsub!(/N[([0-9]+)]/i) { $game_actors[$1.to_i].name } lines = text.split(/(?:[|]|n)/i) lines.each_with_index { |l, i| l.gsub!(/__([d+])/i) { "N#{$1}" } self.contents.draw_text(dx, i * 24 + dy, nwidth, WLH, l, 0)} end end # Window_Status_Biography #=============================================================================== # Scene_Status #=============================================================================== class Scene_Status < Scene_Base #-------------------------------------------------------------------------- # new method: create_command_window #-------------------------------------------------------------------------- def create_command_window @data = [] commands = [] @windows = [] for command in YEM::STATUS::COMMANDS case command when :general @general_window = Window_Status_General.new(@actor) @windows.push(@general_window) when :boosters @boosters_window = Window_Status_Booster.new(@actor, @help_window) @boosters_stats = Window_Booster_Stats.new(@actor, @boosters_window) @windows.push(@boosters_window) @windows.push(@boosters_stats) when :elements next unless $imported["BattleEngineMelody"] @elements_window = Window_Status_Elements.new(@actor, @help_window) @elements_stats = Window_Elements_Stats.new(@actor, @elements_window) @windows.push(@elements_window) @windows.push(@elements_stats) when :states next unless $imported["BattleEngineMelody"] @states_window = Window_Status_States.new(@actor, @help_window) @states_stats = Window_States_Stats.new(@actor, @states_window) @windows.push(@states_window) @windows.push(@states_stats) when :biography @biography_window = Window_Status_Biography.new(@actor) @windows.push(@biography_window) else; next end @data.push(command) commands.push(YEM::STATUS::COMMAND_VOCAB[command]) end @command_window = Window_Command_Centered.new(160, commands) @command_window.height = 128 @command_window.active = true #--- if $game_temp.last_status_index != nil @command_window.oy = $game_temp.status_oy @command_window.index = $game_temp.last_status_index end #--- update_visible_windows end #-------------------------------------------------------------------------- # new method: update_visible_windows #-------------------------------------------------------------------------- def update_visible_windows @help_window.y = Graphics.height * 8 for window in @windows; window.y = Graphics.height * 8; end case @data[@command_window.index] when :general @general_window.y = @command_window.height when :boosters @help_window.y = @command_window.height @boosters_window.y = @help_window.y + @help_window.height @boosters_stats.y = @help_window.y + @help_window.height @boosters_window.update_help when :elements @help_window.y = @command_window.height @elements_window.y = @help_window.y + @help_window.height @elements_stats.y = @help_window.y + @help_window.height @elements_window.update_help when :states @help_window.y = @command_window.height @states_window.y = @help_window.y + @help_window.height @states_stats.y = @help_window.y + @help_window.height @states_window.update_help when :biography @biography_window.y = @command_window.height end end end # Scene_Status Demo: N/D Note dell'Autore: Questo script è interamente basato sul comando Biography presente in YEZ Status Command Menu, e YEM Status Menu Melody. Entrambi gli scripts sono stati creati da Yanfly (pockethouse.com).
-
HUD Mostra il nome della mappa in "Revolution Mode"
Ally ha aggiunto un topic in Scripts RPG Maker VX (RGSS2)
Nome Script: Mostra il nome della mappa in "Revolution Mode" Versione: 1.0 Autore/i: Ramiro (Holy_wyvern, ramiazul) Informazioni: Questo (favoloso) script visualizzerà con un'animazione a rivoluzione da sinistra verso destra il nome della mappa, per poi sparire! l'effetto è molto bello e professionale! Istruzioni: Lo scritp va inserito in Materials (sotto materials create una nuova voce gli date un titolo e incollate lo script su quest'ultimo). Oppure in "Custom script Below" se usate l'RGSS2+ (consigliato). è personalizzabile! istruzioni varie nello script (in inglese semplice ^^) Script: #============================================================================== # SHOW THE MAP NAME - REVOLUTION MODE - #------------------------------------------------------------------------------ # Author Ramiro (Holy_wyvern, ramiazul) #------------------------------------------------------------------------------ # Version 1.0 #------------------------------------------------------------------------------ # Description: # Allows you to show the name of some maps, whit a nice graphical style #------------------------------------------------------------------------------ # Compatibility: # RPG maker VX script. # Shoud work with anyting (99.999 % sure) #------------------------------------------------------------------------------ # Instructions: # Insert on materials section # # To show the hero's name on a map or a variable # N[id of actor on database] (1 - 999) # P[id of variable] (1 - 999) # PN[id of actor on party position] (0 - 3) # (Yes it's like the massage window...) #------------------------------------------------------------------------------ # BUGS: # Not now... Report if you found one #------------------------------------------------------------------------------ # Author's notes: # FOR non-Comertial games only. Giving credit it's not necesarry but it's nice #=============================================================================== #=============================================================================== # Configurations #=============================================================================== module MAPWINDOW VIEWING_TIME = 160 # viewing time of letter LETTER_ANIM = 200 # starting animating time LETTER_END = 20 # time for hiding the name INIT_X = 10 # start X of first letter INIT_Y = 10 # start Y of first letter START_ANGLE = -180 # start angle of firs letter RECT_COLOR = Color.new(255,255,255) # The line's color RECT_X = 0 # the X correction of the rect RECT_Y = -14 # the Y correction FIRST_LETTER = Color.new(255,255,255) # the first letter�s color LETTER_COLOR = Color.new(255,255,255,200) # other letter�s colors OPACITY = 200 # the letter�s opacity RECT_OPACITY = 255 # opacity of the rect FONT_SIZE = 25 # the size of the font EX_START_X = 0 # X start movement RECT_HEIGHT = 1 # the height of the rect NOT_SHOW_MAPS= [] # put map id of maps than don't show # it's name eg. [1,2,3] end #=============================================================================== # GAME MAP SETUP #=============================================================================== class Game_Map def name map_infos = load_data("Data/MapInfos.rvdata") name = map_infos[@map_id].name.clone name.gsub!(/N[([0-9]+)]/i) { $game_actors[$1.to_i].name } name.gsub!(/PN[([0-9]+)]/i) { $game_party.members[$1.to_i].name } name.gsub!(/V[([0-9]+)]/i) { $game_variables[$1.to_i] } return name end end #=============================================================================== # The spritest of letters #=============================================================================== class Spriteset_MapName include MAPWINDOW def initialize @letters = [] @index = 0 @finish_count = @dispose_count = 0 end def set_sprites if !NOT_SHOW_MAPS.include?($game_map.map_id) dispose_sprites @letters = [] name = $game_map.name.scan(/./).clone @l_count = (LETTER_ANIM / name.size) + 1 @index = 0 @finish = false @finish_count = VIEWING_TIME @dispose_count = LETTER_END for i in 0...name.size @letters[i] = Sprite.new @letters[i].bitmap = Bitmap.new(FONT_SIZE,FONT_SIZE) @letters[i].ox = 10 @letters[i].oy = 10 @letters[i].bitmap.font.size = FONT_SIZE @letters[i].bitmap.font.color = i == 0 ? FIRST_LETTER : LETTER_COLOR @letters[i].bitmap.draw_text(0,0,FONT_SIZE,FONT_SIZE,name[i],1) @letters[i].x = i * (FONT_SIZE / 2) + EX_START_X + INIT_X @letters[i].y = INIT_Y @letters[i].z = 9999 @letters[i].opacity = 0 @letters[i].angle = START_ANGLE end @b_count = @letters.size * ((LETTER_ANIM / @letters.size) + 1) @border = Sprite.new @border.bitmap = Bitmap.new(@letters.size * (FONT_SIZE / 2) + (FONT_SIZE / 2), RECT_HEIGHT) @border.bitmap.fill_rect(Rect.new(0,0,@letters.size * (FONT_SIZE / 2) + (FONT_SIZE / 2), RECT_HEIGHT),RECT_COLOR) @border.x = - @border.width + INIT_X - (FONT_SIZE / 2) - RECT_X @border.opacity = 0 @border.y = INIT_Y + (FONT_SIZE ) + RECT_Y end end def update if !@finish if @letters[@index] if @l_count > 0 @letters[@index].x = (@letters[@index].x * (@l_count - 1) + @index * (FONT_SIZE / 2) + INIT_<img src='http://rpgmkr.net/forum/public/style_emoticons/default/sourirex.gif' class='bbc_emoticon' alt='XD' /> / @l_count @letters[@index].opacity = (@letters[@index].opacity * (@l_count - 1) + OPACITY) / @l_count @letters[@index].angle = (@letters[@index].angle * (@l_count - 1)) / @l_count @l_count -= 1 if @b_count > 0 @border.x = (@border.x * (@b_count - 1) + INIT_X - (FONT_SIZE / 2) + RECT_<img src='http://rpgmkr.net/forum/public/style_emoticons/default/sourirex.gif' class='bbc_emoticon' alt='XD' /> / @b_count @border.opacity = (@border.opacity * (@b_count - 1) + RECT_OPACITY) / @b_count @b_count -= 1 end else @index += 1 @l_count = ((LETTER_ANIM / @letters.size) + 1) end else @finish = true end else if @finish_count > 0 @finish_count -= 1 return end if @dispose_count > 0 for i in [email protected] @letters[i].x = (@letters[i].x * (@dispose_count - 1) + i * (FONT_SIZE / 2) + 24 + INIT_<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt=':s' /> / @dispose_count @letters[i].opacity = (@letters[i].opacity * (@dispose_count - 1)) / @dispose_count end @border.x = (@border.x * (@dispose_count - 1)+ INIT_X + RECT_X - (FONT_SIZE / 2) - @border.width ) / @dispose_count @border.opacity = (@border.opacity * (@dispose_count - 1)) / @dispose_count @dispose_count -= 1 end end end def dispose dispose_sprites end def dispose_sprites for i in @letters i.dispose end if @border @border.bitmap.dispose if @border.bitmap @border.dispose end end end #=============================================================================== # The map #=============================================================================== class Scene_Map < Scene_Base alias smsbstrt start alias smsbupdbas update_transfer_player alias smsbupdnorm update alias smsbterm terminate def start @letters = Spriteset_MapName.new smsbstrt @letters.set_sprites end def update @letters.update smsbupdnorm end def update_transfer_player teleported = true if $game_player.transfer? smsbupdbas @letters.set_sprites if teleported end def terminate @letters.dispose smsbterm end end Incompatibilità: bug noti: nessuno! -
Nome Script: Scene Intro Reloaded Versione: 1.0.0 Autore/i: Script originale ('Scene Intro') di Ziel Van Brand. Modificato, migliorato e adattato per RPG Maker VX da ProGM. Informazioni: Permette di eseguire un intro con immagini e audio prima del Title. Istruzioni: Sostituite in Main la riga $scene = Scene_Title.newcon $scene = Scene_Intro.newLe istruzioni di configurazione sono nello script. Ho montato una piccola Demo per farne vedere il funzionamento. Script: #================================================================ # ▼ Scene Intro Reloaded. # ▼ Versione 1.0.0. # ▼ Script originale ('Scene Intro') di Ziel Van Brand. # ▼ Modificato, migliorato e adattato per RPG Maker VX da ProGM. #================================================================ class Scene_Intro < Scene_Base def start #============================================================ @name_im = "intro" # Il nome "base" delle immagini. @number_max = 2 # Numero totale di immagini da visualizzare. @frame = 180 # Frames necessari prima di cambiare immagine. @volume_bgm = 100 # [0; 100]. @pitch_bgm = 100 # [0; 100]. @nome_bgm = "Theme1" # >> Cambia il titolo tra "" col nome della tua song durante la intro. # >> La song deve essere presente nel tuo database. # >> Copia qui il nome ESATTO della song nel tuo database. # >> Non scrivere NIENTE (neanche lo spazio) tra le due " se non vuoi # la musica di sottofondo. #============================================================= @im = true @counter = 0 @index = 0 @code = 0 if @nome_bgm != "" then Audio.bgm_play("Audio/BGM/"+ @nome_bgm, @volume_bgm, @pitch_bgm) end end def update if @index == @number_max+1 @sprite.bitmap.dispose @sprite.dispose @im = false if @nome_bgm != "" then Audio.bgm_stop end $scene = Scene_Title.new end if @im == true if @counter % @frame == 14 @index += 1 draw_intro(@name_im, @index) @a = true @code = 0 end if @a == true @code += 1 case @code when 0..20 @sprite.opacity += 14 when (@frame-20)..@frame @sprite.opacity -= 16 end end end @counter += 1 if Input.trigger?(Input::C) if @nome_bgm != "" then Audio.bgm_stop end $scene = Scene_Title.new @sprite.bitmap.dispose end end def draw_intro(name, index) return if index > @number_max Graphics.transition @name = name @index = index @sprite = Sprite.new @sprite.bitmap = Bitmap.new("Graphics/Pictures/" + @name + @index.to_s) @sprite.opacity = 0 @sprite.ox = @sprite.bitmap.width / 2 @sprite.oy = @sprite.bitmap.height / 2 @sprite.x = Graphics.width / 2 @sprite.y = Graphics.height / 2 end end Demo: http://www.mediafire.com/?holan474hw573t5 Incompatibilita': N/D
-
Nome Script: Neo Light Effects Versione: 1.0 Autore/i: Khas Informazioni: Un ottimo script usato per creare effetti di luce nel gioco ^^ Richiede lo script Khas Script Core: http://rpgmkr.net/forum/topic/1102-khas-script-core/ Screenshots: Istruzioni: Inserite lo script sotto il Khas Script Core. Inserite le immagini dentro la cartella Graphics/Particles. Tutto il resto lo potete trovare dentro la demo Script: #------------------------------------------------------------------------------- # * [RMVX] Neo Light Effects #------------------------------------------------------------------------------- # * Este script cria efeitos usando imagens #------------------------------------------------------------------------------- # * By Khas ([email protected]) # * Version: 1.0 # * Released on: 13/06/2010 # #------------------------------------------------------------------------------- # Termos de uso: #------------------------------------------------------------------------------- # * ENGLISH # All Khas' Scripts are licensed under a Creative Commons license # All Khas' Scripts are for non-commercial projects, if you need # them for a commercial game, please send a email to [email protected] # All Khas' Scripts are for personal use, you can edit them and use in your # own project, but you can't post any modified version without my permission # # * PORTUGUES # Todos os scripts Khas estão sob licença Creative Commons # Todos os scripts Khas são para projetos não comerciais, se você precisar em # seu projeto comercial, envie um email para [email protected] com o pedido # Todos os scripts Khas são para uso pessoal, você pode usar e editar para uso # no seu projeto, porém você não pode postar nenhuma versão modificada sem # a minha permissão # #------------------------------------------------------------------------------- # Instalação: #------------------------------------------------------------------------------- # 1) Este script tem que ser colocado depois do "Khas Script Core" # 2) Coloque as imagens utilizadas pelo script na pasta "Graphics/Particles/" # 2) Configure o script na parte de configuração # #------------------------------------------------------------------------------- # Como usar: #------------------------------------------------------------------------------- # Para colocar um efeito de luz sobre um evento simplesmente coloque um # comentario dentro dele com o nome do efeito. Efeitos pré definidos: # # Light # Fire # Torch # Window # Door # Shine # Sparkle # Rainbow # Blood # Leaf # Xenon # #------------------------------------------------------------------------------- # Habilitar o script - Não altere aqui! #------------------------------------------------------------------------------- if $enabled_core.nil? p "The script 'Neo Light Effects' requires Khas Script Core 1.0 or better" p "Please install Khas Script Core 1.0 or better" exit elsif $enabled_core < 1 p "The script 'Neo Light Effects' requires Khas Script Core 1.0 or better" p "Please install Khas Script Core 1.0" exit else Core.register("Neo Light Effects",1.0) end #------------------------------------------------------------------------------- # Configuração: #------------------------------------------------------------------------------- module Neo_Light # Coloque abaixo o ID da switch que desliga os efeitos Neo_Light_Switch = 1 # Declaração de efeitos, não altere aqui! Effects = { #------------------------------------------------------------------------------- # Configuração de efeitos #------------------------------------------------------------------------------- # * Modo Facil # "nome do efeito" => Neo_Effect.new(1,2), # 1 - Nome da imagem, na pasta "GraphicsParticles" # 2 - Opacidade, use 0~255 # # * Modo avançado # "nome do efeito" => Neo_Effect.new(1,2,3,4,5,6,7,8,9), # 1 - Nome da imagem, na pasta "GraphicsParticles" # 2 - Opacidade, use 0~255 # 3 - Tom da imagem, use Tone.new(R,G, # 4 - Blend Mode, use 1~2 # 5 - Efeito X, use 0~64 (valores baixos funcionam melhor) # 6 - Efeito Y, use 0~64 (valores baixos funcionam melhor) # 7 - Oscilação de Angulo, use 0~180 (valores baixos funcionam melhor) # 8 - Oscilação de Opacidade, use 0~120 (valores baixos funcionam melhor) # 9 - Oscilação de Hue, use 0~180 (valores baixos funcionam melhor) # # Veja os efeitos pre definidos para detalhes # # NÂO ESQUEÇA DE ADICIONAR UMA VIRGULA APOS CRIAR UM EFEITO ABAIXO! # #------------------------------------------------------------------------------- # * Adicione seus efeitos aqui #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # * Efeitos Custom #------------------------------------------------------------------------------- "Window" => Neo_Effect.new("window",100), "Door" => Neo_Effect.new("light3",100), "Shine" => Neo_Effect.new("light2",150,Tone.new(0,0,0),1,0,0,1,0,0), "Sparkle" => Neo_Effect.new("sparkle",150,Tone.new(0,0,0),1,0,0,3,0,7), "Rainbow" => Neo_Effect.new("circle",150,Tone.new(0,0,0),1,0,0,-2,0,4), "Blood" => Neo_Effect.new("fire",180,Tone.new(255,-230,-230),1,0,0,0,0,0), "Leaf" => Neo_Effect.new("fire",130,Tone.new(-150,255,-150),1,0,0,0,0,0), "Xenon" => Neo_Effect.new("fire",180,Tone.new(-200,-200,255),1,0,0,0,0,0), #------------------------------------------------------------------------------- # * Efeitos Classicos #------------------------------------------------------------------------------- "Light" => Neo_Effect.new("light1",100), "Fire" => Neo_Effect.new("fire",110,Tone.new(255,-100,-255),1,3,3,0,-20,0), "Torch" => Neo_Effect.new("fire_big",110,Tone.new(255,-100,-255),1,1,1,0,-20,0), #------------------------------------------------------------------------------- # Fim da configuração #------------------------------------------------------------------------------- } def self.bc_sprites; bitmaps = [] Effects.keys.each { |i| bitmaps << Effects[i].picture_name unless bitmaps.include?(Effects[i].picture_name) } bitmaps.each { |i| Bitcore.add(Cache.particle(i), "neole_#{i}") } end; bc_sprites end class Game_Event < Game_Character include Neo_Light alias nle_ini initialize alias nle_stp setup alias nle_up update def initialize(map_id, event) @nl_effect = false @nl_sprite = nil nle_ini(map_id, event) end def setup(new_page) nle_stp(new_page) refresh_light(new_page.nil?) end def update; nle_up update_light unless !@nl_effect end def update_light @nl_sprite.visible = !$game_switches[Neo_Light_Switch] @nl_sprite.x = self.screen_x @nl_sprite.y = self.screen_y - 16 @nl_sprite.x += (rand(Effects[@nl_effect].ax*2)-Effects[@nl_effect].ax) @nl_sprite.y += (rand(Effects[@nl_effect].ay*2)-Effects[@nl_effect].ay) @nl_sprite.opacity = Effects[@nl_effect].opacity + rand(Effects[@nl_effect].opacity_oscillation) @nl_sprite.angle += Effects[@nl_effect].angle @nl_sprite.angle -= 360 if @nl_sprite.angle >= 360 @nl_sprite.bitmap.hue_change(Effects[@nl_effect].hue_oscillation) unless !Effects[@nl_effect].hue_oscillation end def refresh_light(dispose_light=false) unless @nl_effect == false @nl_sprite.bitmap = nil @nl_sprite.dispose end @nl_effect = false unless dispose_light for key in [email protected] next unless @list[key].code == 108 for string in Effects.keys @nl_effect = string if @list[key].parameters == [string] end end if @nl_effect != false @nl_sprite = Sprite.new @nl_sprite.bitmap = Bitcore["neole_"+Effects[@nl_effect].picture_name] @nl_sprite.ox = @nl_sprite.width/2 @nl_sprite.oy = @nl_sprite.height/2 @nl_sprite.x = 544 + 2*@nl_sprite.width @nl_sprite.y = 416 + 2*@nl_sprite.height @nl_sprite.z = $game_player.screen_z @nl_sprite.blend_type = Effects[@nl_effect].blend_mode @nl_sprite.opacity = Effects[@nl_effect].opacity @nl_sprite.tone = Effects[@nl_effect].color update_light if $scene.is_a?(Scene_Map) end end end def dispose_nl unless @nl_effect == false @nl_sprite.bitmap = nil @nl_sprite.dispose @nl_effect = false end end end class Game_Map alias nle_setup setup def setup(map_id) dispose_neolight nle_setup(map_id) end def dispose_neolight return if @events.nil? @events.keys.each { |id| $game_map.events[id].dispose_nl } end def force_light_refresh return if @events.nil? @events.keys.each { |id| $game_map.events[id].refresh_light } end end class Scene_Map < Scene_Base alias nle_terminate terminate alias nle_start start def terminate; nle_terminate $game_map.dispose_neolight end def start; nle_start $game_map.force_light_refresh end end Demo: http://www.mediafire.com/?zmcz2n2jjwy
-
Nome Script: Zoom Script Versione: N/D Autore/i: Jet, Zeriab, Piejamas Informazioni: Come da titolo,si potrà avere uno zoom sulla mappa e le immagini spiegheranno meglio =) Istruzioni: All'interno dello script. Script: #=============================================================================== # Zoom Script # By Jet10985 (Jet) # Original Code by: Zeriab # Small fixes by: Piejamas #=============================================================================== # This script will enable the user to zoom in and out of the map. It also allows # them to have a classic looking map transfer if they want it. # This script has: 15 customization options. #=============================================================================== # Overwritten Methods: # None #------------------------------------------------------------------------------- # Aliased methods: # Spriteset_Map: initialize, dispose # Game_Temp: initialize # Scene_Map: update_transfer_player, call_battle, perform_battle_transition #=============================================================================== =begin How to zoom anywhere: to zoom in a specific part, use the following script in an Event "Script..." zoom_screen(duration, end_value, player, fade, fade_duration) duration = time in frames for zoom to complete. 60 frames = 1 second end_value = how far in the zoom goes, as in 10x size or 5x size. Use just number, no x. player = does the zoom zoom-in on the player? true or false. false will make it so the zoom will zoom-in in the event that calls the zoom. fade = true or false. true make the screen fade to black while zooming. fade_duration = how long does it take to fade in frames? 60 frames = 1 second You must specify duration AND end_value, but not always the rest. If the others aren't specified, they will default like so: player will be true fade will be false fade_duration will be 1 Ex. zoom_screen(120, 10) This will zoom in on the player with a 10x zoom, and will last for 2 seconds with no fading. -------------------------------------------------------------------------------- How to end zoom: to end the zoom, use the following script in an Event "Script..." end_zoom_screen(zoom_out) zoom_out = true or false. if true, it will end by zooming out. if false, it will just revert back to regular map. You can just put end_zoom_screen and it will assume that zoom_out is true end_zoom_screen automatically detects if a fade occured during the zoom, and will fade back in automatically. -------------------------------------------------------------------------------- Notes: While zoomed in, the player will not be able to move. Pictures and message windows can still be displayed. Pictures must have a Z value of 200+ in order to show above the zoom. =end module JetZoomScript # When you transfer to a new map, do you want to have a cool zoom-in # transfer? If false, you can skip down to ZOOM_BATTLE_TRANSFER. ZOOM_TRANSFER = true # With the zoom transfer, do you also want the screen to fade to black, # then fade back normally when you're on the next map? ZOOM_AND_FADE = false # After the zoom transfer, you you want a zoom out effect instead of # just the map? ZOOM_OUT_AFTER_TRANSFER = false # While transfering, do you want the previous map to slowly become # intangible? USE_OPACITY_CHANGE_ON_ZOOMSHOT = true # What's the factor you want to zoom-in with on zoom transfers? TRANSFER_ZOOM_AMOUNT = 10 # How long in frames does the transfer zoom take to zoom in? # 60 frames = 1 second TRANSFER_ZOOM_IN_TIME = 120 # This is the acceleration factor of the transfer zoom. The lower the factor, # the higher it accelerates, so the higher the factor, the slower. TRANSFER_ZOOM_FACTOR = 2.3 # How long in frames does the transfer zoom take to zoom out? # Don't bother with this if ZOOM_OUT_AFTER_TRANSFER is false # 60 frames = 1 second TRANSFER_ZOOM_OUT_TIME = 120 # How long in frames does the transfer zoom take to fade to black? # Don't bother with this if ZOOM_AND_FADE is false # 60 frames = 1 second TRANSFER_ZOOM_FADE_IN = 120 # How long in frames does the transfer zoom take to fade back into light? # Don't bother with this if ZOOM_AND_FADE is false # Also don't bother with this if ZOOM_OUT_AFTER_TRANSFER is false # 60 frames = 1 second TRANSFER_ZOOM_FADE_OUT = 120 # If this switch is on, then transfer zoom will be temporarily disabled. NO_ZOOM_TRANSFER_SWITCH = 1 # Instead of the lame default battle enter sequence, do you want # to zoom in on your character when entering into battle? ZOOM_BATTLE_TRANSFER = true # What's the factor you want to zoom-in with on zoom battle transfers? BATTLE_TRANSFER_ZOOM_AMOUNT = 10 # How long in frames does the battle transfer zoom take to zoom in? # 60 frames = 1 second BATTLE_TRANSFER_ZOOM_IN_TIME = 100 # This is the acceleration factor of the battle transfer zoom. The lower the # factor, the higher it accelerates, so the higher the factor, the slower. BATTLE_TRANSFER_ZOOM_FACTOR = 2.3 end #=============================================================================== # DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO. #=============================================================================== class Spriteset_Map alias jet4762_initialize initialize unless $@ def initialize jet4762_initialize @disposed = false end alias jet7233_dispose dispose unless $@ def dispose jet7233_dispose @disposed = true end def disposed? return @disposed end end class Scene_Map def spriteset return @spriteset end end class Game_Temp attr_accessor :player_height, :display_x, :display_y alias jet4672_initialize initialize unless $@ def initialize jet4672_initialize @player_height = 0 @display_x = 0 @display_y = 0 end end class Scene_Map < Scene_Base include JetZoomScript alias jet7833_update_transfer_player update_transfer_player unless $@ def update_transfer_player if $game_switches[NO_ZOOM_TRANSFER_SWITCH] || !ZOOM_TRANSFER jet7833_update_transfer_player else return unless $game_player.transfer? zoom = (Graphics.brightness > 0 && $game_map.screen.brightness > 0) fadeout = ZOOM_AND_FADE ? TRANSFER_ZOOM_FADE_OUT : -1 fadein = ZOOM_AND_FADE ? TRANSFER_ZOOM_FADE_IN : -1 zoom_screen(TRANSFER_ZOOM_IN_TIME, 1, TRANSFER_ZOOM_AMOUNT, fadeout) if zoom if !USE_OPACITY_CHANGE_ON_ZOOMSHOT && ZOOM_OUT_AFTER_TRANSFER or !USE_OPACITY_CHANGE_ON_ZOOMSHOT && ZOOM_AND_FADE && !ZOOM_OUT_AFTER_TRANSFER @spriteset.dispose unless @spriteset.disposed? $game_player.perform_transfer $game_map.update @spriteset = Spriteset_Map.new if @spriteset.disposed? end $game_map.autoplay if ZOOM_OUT_AFTER_TRANSFER zoom_screen(TRANSFER_ZOOM_OUT_TIME, TRANSFER_ZOOM_AMOUNT, 1, fadein) if zoom end if ZOOM_AND_FADE && !ZOOM_OUT_AFTER_TRANSFER fadein(TRANSFER_ZOOM_FADE_IN) end end end def zoom_screen(duration, start_value, end_value, fade_duration) $game_temp.player_height = @spriteset.player_height $game_temp.display_x = $game_player.screen_x $game_temp.display_y = $game_player.screen_y Graphics.brightness = 255 @zoom_bitmap = Graphics.snap_to_bitmap @zoom_sprite = Sprite.new @zoom_sprite.z = 9999 @zoom_sprite.bitmap = @zoom_bitmap if USE_OPACITY_CHANGE_ON_ZOOMSHOT && !ZOOM_OUT_AFTER_TRANSFER @spriteset.dispose $game_player.perform_transfer $game_map.update @spriteset = Spriteset_Map.new end do_zoom(duration, start_value, end_value, fade_duration) @zoom_sprite.dispose @zoom_bitmap.dispose end def do_zoom(times, start_value, end_value, fade_duration) value = start_value if start_value > end_value && ZOOM_AND_FADE Graphics.brightness = 0 end for i in 0...times percent = (i.to_f / times) ** TRANSFER_ZOOM_FACTOR value = value + percent * (end_value - value) if USE_OPACITY_CHANGE_ON_ZOOMSHOT and !(start_value > end_value) @zoom_sprite.opacity -= 255 / TRANSFER_ZOOM_IN_TIME @zoom_sprite.update end if ZOOM_AND_FADE if start_value < end_value Graphics.brightness -= 255 / fade_duration elsif start_value > end_value Graphics.brightness += 255 / fade_duration end end zoom_sprite(@zoom_sprite, value) Graphics.update end end def zoom_sprite(sprite, amount) sx = $game_temp.display_x sy = $game_temp.display_y - $game_temp.player_height / 2 gw = Graphics.width gh = Graphics.height width = gw * amount height = gh * amount x = [sx * amount - (gw / 2), 0].max x = [x, width - gw].min y = [sy * amount - (gh / 2), 0].max y = [y, height - gh].min sprite.zoom_x = amount sprite.zoom_y = amount sprite.ox = x / amount sprite.oy = y / amount end alias jet6592_call_battle call_battle unless $@ def call_battle jet6592_call_battle if ZOOM_BATTLE_TRANSFER $game_temp.player_height = @spriteset.player_height $game_temp.display_x = $game_player.screen_x $game_temp.display_y = $game_player.screen_y Graphics.brightness = 255 @zoom_bitmap = Graphics.snap_to_bitmap @zoom_sprite = Sprite.new @zoom_sprite.z = 199 @zoom_sprite.bitmap = @zoom_bitmap value = 1 for i in 0...BATTLE_TRANSFER_ZOOM_IN_TIME percent = (i.to_f / BATTLE_TRANSFER_ZOOM_IN_TIME) ** BATTLE_TRANSFER_ZOOM_FACTOR value = value + percent * (BATTLE_TRANSFER_ZOOM_AMOUNT - value) zoom_sprite(@zoom_sprite, value) Graphics.update end end end alias jet4721_perform_battle_transition perform_battle_transition unless $@ def perform_battle_transition if !ZOOM_BATTLE_TRANSFER jet4721_perform_battle_transition else @zoom_sprite.dispose @zoom_bitmap.dispose end end end class Spriteset_Map def player_height @character_sprites[-1].height end end class Game_Interpreter def zoom_sprite(sprite, amount) sx = $game_temp.display_x sy = $game_temp.display_y - $game_temp.player_height / 2 gw = Graphics.width gh = Graphics.height width = gw * amount height = gh * amount x = [sx * amount - (gw / 2), 0].max x = [x, width - gw].min y = [sy * amount - (gh / 2), 0].max y = [y, height - gh].min sprite.zoom_x = amount sprite.zoom_y = amount sprite.ox = x / amount sprite.oy = y / amount end def zoom_screen(times, end_value, player = true, fade = false, fade_duration = 1) $game_temp.player_height = $scene.spriteset.player_height if player $game_temp.display_x = $game_player.screen_x $game_temp.display_y = $game_player.screen_y else $game_temp.display_x = $game_map.events[@original_event_id].screen_x $game_temp.display_y = $game_map.events[@original_event_id].screen_y end Graphics.brightness = 255 @zoom_bitmap = Graphics.snap_to_bitmap @zoom_sprite = Sprite.new @zoom_sprite.z = 199 @zoom_sprite.bitmap = @zoom_bitmap value = 1 @start_value = 1 @[member=endriu]_value = end_value @fade = fade @fade_duration = fade_duration @times = times if 1 > end_value && fade Graphics.brightness = 0 end for i in 0...times percent = (i.to_f / times) ** 2.3 value = value + percent * (end_value - value) if fade if 1 < end_value Graphics.brightness -= 255 / fade_duration elsif 1 > end_value Graphics.brightness += 255 / fade_duration end end zoom_sprite(@zoom_sprite, value) Graphics.update end end def end_zoom_screen(zoom_out = true) if zoom_out value = @[member=endriu]_value if @[member=endriu]_value > @start_value && @fade Graphics.brightness = 0 end for i in 0...@times percent = (i.to_f / @times) ** 2.3 value = value + percent * (@start_value - value) if @fade if @start_value < @[member=endriu]_value Graphics.brightness -= 255 / fade_duration elsif @start_value > @[member=endriu]_value Graphics.brightness += 255 / fade_duration end end zoom_sprite(@zoom_sprite, value) Graphics.update end end @zoom_sprite.dispose @zoom_bitmap.dispose end end unless $engine_scripts.nil? JetEngine.active("Zoom Script", 1) end F.A.Q: D: Dove devo inserire questo script? R: Lo script va inserito sopra Main. D: Come posso modificare_____? R: Ci sono le istruzioni all'interno dello script per modificare qualcosa,se no posta nel topic per aiuto. D: Posso zoomare con questo script? R: Si. D: Cosa faccio in caso di errore? R: In caso di errore posta una immagine dell'errore e di essere il più chiaro possibile così che possiamo aiutarti.
-
Nome Script: Map_View Versione: 1.0 Autore/i: Ally Informazioni: Finalmente sono riuscito a debuggarlo...mi ha dato non so quanti problemi per degli errori stupidi <.< Istruzioni: Inserite lo script sotto Material. Le istruzioni le trovate all'interno della Demo. Script: #=============================================================================== # Map_View v1.0 # Questo script permette di visualizza due mappe insieme nella stessa. #=============================================================================== # Immaginate due piani di una casa...se salite al primo piano,potete # vedere anche il piano di sotto. # Nel caso di un mapping esterno,in una montagna,potete visualizzare # un'altra mappa al di sotto di questa. # Per farvi capire cosa intendo comunque,vi lascio una demo =) #=============================================================================== # Autore: Ally # Versione: 1.0 # Data di creazione: 03/12/2010 # E' vietato distribuire lo script su altri forum senza il permesso dell'Autore # Script per usi non commerciali...se dovesse venire usato per progetti # commerciali,vi prego di contattarmi # http://www.rpgmkr.net #=============================================================================== module RPG # Per aggiungere un mappa ad un'altra,basta aggiungere: # 3 => [2, 1, 1], # In questo casa,nella mappa 3,sarà visualizzata anche la mappa con ID 2 # ============================================================================ # ID Mappa => [n° mappa, zoom x, zoom y] Array = { # ID Mappa:1 1 => [2, 0.8, 0.8], #1 => [2,1, 1,] } end #=============================================================================== # ** Spriteset_Map #------------------------------------------------------------------------------- # This class brings together map screen sprites, tilemaps, etc. It's used # within the Scene_Map class. #=============================================================================== class Spriteset_Map #----------------------------------------------------------------------------- # * Create Viewport #----------------------------------------------------------------------------- alias ally_map_view_create_viewports create_viewports def create_viewports ally_map_view_create_viewports create_map_view end #----------------------------------------------------------------------------- # * Dispose #----------------------------------------------------------------------------- alias ally_map_view_dispose dispose def dispose @map_view.dispose if @map_view != nil ally_map_view_dispose end #----------------------------------------------------------------------------- # * Frame Update #----------------------------------------------------------------------------- alias ally_map_view_update update def update @map_view.update if @map_view != nil ally_map_view_update end #----------------------------------------------------------------------------- # * ID Tile e della Mappa #----------------------------------------------------------------------------- def map_view_id if RPG::Array.include?($game_map.map_id) return RPG::Array[$game_map.map_id][0] else return 0 end end #----------------------------------------------------------------------------- # * Creazione Mappa #----------------------------------------------------------------------------- def create_map_view if map_view_id == 0 @map_view = nil return end a = Map_View.new a.setup(map_view_id) @map_view = Tilemap.new(@viewport1) @map_view.bitmaps[0] = Cache.system("TileA1") @map_view.bitmaps[1] = Cache.system("TileA2") @map_view.bitmaps[2] = Cache.system("TileA3") @map_view.bitmaps[3] = Cache.system("TileA4") @map_view.bitmaps[4] = Cache.system("TileA5") @map_view.bitmaps[5] = Cache.system("TileB") @map_view.bitmaps[6] = Cache.system("TileC") @map_view.bitmaps[7] = Cache.system("TileD") @map_view.bitmaps[8] = Cache.system("TileE") @map_view.map_data = a.data end #----------------------------------------------------------------------------- # * Update Tilemap #----------------------------------------------------------------------------- def update_tile_parallax a = RPG::Array[$game_map.map_id] @map_view.ox = $game_map.display_x / 8 * a[1] @map_view.oy = $game_map.display_y / 8 * a[2] @map_view.update end end #=============================================================================== # * Map_View #=============================================================================== class Map_View #----------------------------------------------------------------------------- # * Inizializzazione Oggetto #----------------------------------------------------------------------------- def initialize @map_id = 0 end #----------------------------------------------------------------------------- # * Setup #----------------------------------------------------------------------------- def setup(map_id) @map_id = map_id @map = load_data(sprintf("Data/Map%03d.rvdata", @map_id)) end #----------------------------------------------------------------------------- # * Map Return #----------------------------------------------------------------------------- def data return @map.data end end #====== # END = #====== Demo: http://www.megaupload.com/?d=NGH3OP5N Incompatibilita': N/D Note dell'Autore: E' vietato distribuire lo script su altri siti/forum senza autorizzazione. Non usabile per fini commerciali. In caso contrario, contattatemi.
-
Nome Script: MODS Veicoli Versione: 1.4 Autore/i: FenixFyreX Informazioni: Stanco dei veicoli vecchi e della loro configurazione? Questo script è stato ideato per chi vuole personalizzare e saperne di più sulla possibilità dell'uso di questi. Attualmente lo uso per il mio progetto (mi serviva appunto un buon effetto per un'aereonave) perchè è davvero uno script fantastico!Quindi,provatelo =) Features: - Personalizzare la velocità dei tre veicoli, e poterli cambiare in game con le variabili. - Se si preme Q e W nel dirigibile,si cambia altitudine. - Include la possibilità per SuperRalph! Il tuo personaggio può volare! (xD) Istruzioni: All'interno della Demo. Demo: http://www.mediafire.com/?q9mwmp2p7l79mpy Incompatibilità: Sembra nessuna a parte ovviamente se si ha un'altro script per i veicoli. In caso di incompatibilità con qualche script,si potrebbero fare delle patch =)
-
Nome Script: Background Changer Versione: 1.00 Autore/i: heisenman Informazioni: Potete usarlo, modificarlo e ridistribuirlo. I credits non sono necessari, non spacciatelo per vostro. Semplice script per inserire immagini come background per le schermate menu, item, skill, equip, status, file e shop. Istruzioni: Inserire lo script sotto ▼ Materials ma sopra ▼ Main. Mettere le immagini dentro la cartella "GraphicsSystem". Inserire il nome del file tra le virgolette. Lasciare "" per non visualizzare nessuna immagine. Omettere l'estensione del file (.png/.jpg). Attenzione ai caratteri maiuscoli. Per l'opacità delle immagini, inserire un numero tra 0 e 255. 0 = invisibile, 255 = piena opacità. 255 è l'opacità default. Script: #============================================================================== # ** Background Changer #------------------------------------------------------------------------------ # This script adds pictures as background for the menu, item, skill, equip, # status, file (save and load screens) and shop scenes. #============================================================================== # Instructions #------------------------------------------------------------------------------ # Place this script below ▼ Materials but above ▼ Main in the Script Editor. # Put background pictures inside "GraphicsSystem" folder. # Insert the filename between quotation marks. Leave "" for no picture. # Omit file extension (.png/.jpg). Case sensitive. # For the opacity of the pictures, insert a value between 0 and 255. # 0 = invisible, 255 = full opacity. 255 is default value. #============================================================================== module ImageBack #============================================================================== # Configuration starts here. #============================================================================== # Menu Scene Background MenuBack = "" MenuBackOpacity = 255 # Item Scene Background ItemBack = "" ItemBackOpacity = 255 # Skill Scene Background SkillBack = "" SkillBackOpacity = 255 # Equip Scene Background EquipBack = "" EquipBackOpacity = 255 # Status Scene Background StatusBack = "" StatusBackOpacity = 255 # File Scene Background FileBack = "" FileBackOpacity = 255 # Shop Scene Background ShopBack = "" ShopBackOpacity = 255 #============================================================================== # Configuration ends here. #============================================================================== end #============================================================================== # ** Scene_Menu #============================================================================== class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Create Background for Menu Scene #-------------------------------------------------------------------------- def create_menu_background @menuback_sprite = Sprite.new @menuback_sprite.bitmap = Cache.system(ImageBack::MenuBack) @menuback_sprite.opacity = ImageBack::MenuBackOpacity end end #============================================================================== # ** Scene_Item #============================================================================== class Scene_Item < Scene_Base #-------------------------------------------------------------------------- # * Create Background for Item Scene #-------------------------------------------------------------------------- def create_menu_background @menuback_sprite = Sprite.new @menuback_sprite.bitmap = Cache.system(ImageBack::ItemBack) @menuback_sprite.opacity = ImageBack::ItemBackOpacity end end #============================================================================== # ** Scene_Skill #============================================================================== class Scene_Skill < Scene_Base #-------------------------------------------------------------------------- # * Create Background for Skill Scene #-------------------------------------------------------------------------- def create_menu_background @menuback_sprite = Sprite.new @menuback_sprite.bitmap = Cache.system(ImageBack::SkillBack) @menuback_sprite.opacity = ImageBack::SkillBackOpacity end end #============================================================================== # ** Scene_Equip #============================================================================== class Scene_Equip < Scene_Base #-------------------------------------------------------------------------- # * Create Background for Equip Scene #-------------------------------------------------------------------------- def create_menu_background @menuback_sprite = Sprite.new @menuback_sprite.bitmap = Cache.system(ImageBack::EquipBack) @menuback_sprite.opacity = ImageBack::EquipBackOpacity end end #============================================================================== # ** Scene_Status #============================================================================== class Scene_Status < Scene_Base #-------------------------------------------------------------------------- # * Create Background for Status Scene #-------------------------------------------------------------------------- def create_menu_background @menuback_sprite = Sprite.new @menuback_sprite.bitmap = Cache.system(ImageBack::StatusBack) @menuback_sprite.opacity = ImageBack::StatusBackOpacity end end #============================================================================== # ** Scene_File #============================================================================== class Scene_File < Scene_Base #-------------------------------------------------------------------------- # * Create Background for File Scene #-------------------------------------------------------------------------- def create_menu_background @menuback_sprite = Sprite.new @menuback_sprite.bitmap = Cache.system(ImageBack::FileBack) @menuback_sprite.opacity = ImageBack::FileBackOpacity end end #============================================================================== # ** Scene_Shop #============================================================================== class Scene_Shop < Scene_Base #-------------------------------------------------------------------------- # * Create Background for Shop Scene #-------------------------------------------------------------------------- def create_menu_background @menuback_sprite = Sprite.new @menuback_sprite.bitmap = Cache.system(ImageBack::ShopBack) @menuback_sprite.opacity = ImageBack::ShopBackOpacity end end Incompatibilità: N/D
-
Nome Script: Omegas7's Quest System Versione: 3.0 Autore/i: Omegas7 Informazioni: Semplice script che da la possibilità di creare quest per il proprio gioco. Screenshots: Istruzioni: Istruzioni e script all'interno della Demo. Demo: http://www.mediafire.com/download.php?z5n5mlzzmzd
-
Nome Script: GubiD's Tactical Battle System Versione: 1.5.1 Autore/i: GubiD Informazioni: Battle System tattico ispirato a Final Fantasy... Aggiornato regolarmente. Istruzioni: Le istruzioni sono all'interno della Demo. Demo: http://www.mediafire.com/?wjhkmizmtn2
-
Nome Script: Kingdom Hearts HUD Versione: 1.0(?) Autore/i: By BigEd781 Graphics by Celianna Informazioni: Lo script permette di avere un hud in stile Kingdom Hearts Istruzioni: Copiare lo script sotto materials e le immagini della cartella Picture della demo in quella del proprio progetto Script: #-------------------------------------------------------------------- # A list of colors that you may use to configure the font and gauge # colors in the config section. Simply replace the last part of each # statement, i.e., the part in the brackets <> below: # # Colors::<White> #-------------------------------------------------------------------- # Continue below for the configuration section #-------------------------------------------------------------------- # * Revisions # 10/10/09 - Creation # 10/19/09 - Added show_hud command. # Added visibility options by switch, map name, or leader # 11/05/09 - Added fadout option # 11/08/09 - Fixed bug caused by stale event listeners #-------------------------------------------------------------------- # * Basic Commands #-------------------------------------------------------------------- # * You can force the HUD to hide by using the "Script..." # event command with this text: # # $scene.hide_hud # # You can show the hud once again by using this line: # # $scene_show_hud #-------------------------------------------------------------------- module Colors AliceBlue = Color.new(240,248,255) AntiquaWhite = Color.new(250,235,215) Aqua = Color.new(0,255,255) Aquamarine = Color.new(127,255,212) Azure = Color.new(240,255,255) Beige = Color.new(245,245,220) Bisque = Color.new(255,228,196) Black = Color.new(0,0,0) BlanchedAlmond = Color.new(255,255,205) Blue = Color.new(0,0,255) BlueViolet = Color.new(138,43,226) Brown = Color.new(165,42,42) BurlyWood = Color.new(222,184,135) CadetBlue = Color.new(95,158,160) Chartreuse = Color.new(127,255,0) Chocolate = Color.new(210,105,30) Coral = Color.new(255,127,80) CornFlowerBlue = Color.new(100,149,237) Cornsilk = Color.new(255,248,220) Crimson = Color.new(220,20,60) Cyan = Color.new(0,255,255) DarkBlue = Color.new(0,0,139) DarkCyan = Color.new(0,139,139) DarkGoldenrod = Color.new(184,134,11) DarkGray = Color.new(169,169,169) DarkGreen = Color.new(0,100,0) DarkKhaki= Color.new(189,183,107) DarkMagenta = Color.new(139,0,139) DarkOliveGreen = Color.new(85,107,47) DarkOrange = Color.new(255,140,0) DarkRed = Color.new(139,0,0) DarkSalmon = Color.new(233,150,122) DarkSeaGreen = Color.new(143,188,143) DarkSlateBlue = Color.new(72,61,139) DarkSlateGray = Color.new(40,79,79) DarkTurquoise = Color.new(0,206,209) DarkViolet = Color.new(148,0,211) DeepPink = Color.new(255,20,147) DeepSkyBlue = Color.new(0,191,255) DimGray = Color.new(105,105,105) DodgerBlue = Color.new(30,144,255) FireBrick = Color.new(178,34,34) FloralWhite = Color.new(255,255,240) ForestGreen = Color.new(34,139,34) Fuschia = Color.new(255,0,255) Gainsboro = Color.new(220,220,220) GhostWhite = Color.new(248,248,255) Gold = Color.new(255,215,0) Goldenrod = Color.new(218,165,32) Gray = Color.new(128,128,128) Green = Color.new(0,128,0) GreenYellow = Color.new(173,255,47) Honeydew = Color.new(240,255,240) HotPink = Color.new(255,105,180) IndianRed = Color.new(205,92,92) Indigo = Color.new(75,0,130) Ivory = Color.new(255,240,240) Khaki = Color.new(240,230,140) Lavender = Color.new(230,230,250) LavenderBlush = Color.new(255,240,245) LawnGreen = Color.new(124,252,0) LemonChiffon = Color.new(255,250,205) LightBlue = Color.new(173,216,230) LightCoral = Color.new(240,128,128) LightCyan = Color.new(224,255,255) LightGoldenrodYellow = Color.new(250,250,210) LightGreen = Color.new(144,238,144) LightGray = Color.new(211,211,211) LightPink = Color.new(255,182,193) LightSalmon = Color.new(255,160,122) LightSeaGreen = Color.new(32,178,170) LightSkyBlue = Color.new(135,206,250) LightSlateGray = Color.new(119,136,153) LightSteelBlue = Color.new(176,196,222) LightYellow = Color.new(255,255,224) Lime = Color.new(0,255,0) LimeGreen = Color.new(50,205,50) Linen = Color.new(250,240,230) Magenta = Color.new(255,0,255) Maroon = Color.new(128,0,0) MediumAquamarine = Color.new(102,205,170) MediumBlue = Color.new(0,0,205) MediumOrchid = Color.new(186,85,211) MediumPurple = Color.new(147,112,219) MediumSeaGreen = Color.new(60,179,113) MediumSlateBlue = Color.new(123,104,238) MediumSpringGreen = Color.new(0,250,154) MediumTurquoise = Color.new(72,209,204) MediumVioletRed = Color.new(199,21,112) MidnightBlue = Color.new(25,25,112) MintCream = Color.new(245,255,250) MistyRose = Color.new(255,228,225) Moccasin = Color.new(255,228,181) NavajoWhite = Color.new(255,222,173) Navy = Color.new(0,0,128) OldLace = Color.new(253,245,230) Olive = Color.new(128,128,0) OliveDrab = Color.new(107,142,45) Orange = Color.new(255,165,0) OrangeRed = Color.new(255,69,0) Orchid = Color.new(218,112,214) PaleGoldenRod = Color.new(238,232,170) PaleGreen = Color.new(152,251,152) PaleTurquoise = Color.new(175,238,238) PaleVioletRed = Color.new(219,112,147) PapayaWhip = Color.new(255,239,213) PeachPuff = Color.new(255,218,155) Peru = Color.new(205,133,63) Pink = Color.new(255,192,203) Plum = Color.new(221,160,221) PowderBlue = Color.new(176,224,230) Purple = Color.new(128,0,128) Red = Color.new(255,0,0) RosyBrown = Color.new(188,143,143) RoyalBlue = Color.new(65,105,225) SaddleBrown = Color.new(139,69,19) Salmon = Color.new(250,128,114) SandyBrown = Color.new(244,164,96) SeaGreen = Color.new(46,139,87) Seashell = Color.new(255,245,238) Sienna = Color.new(160,82,45) Silver = Color.new(192,192,192) SkyBlue = Color.new(135,206,235) SlateBlue = Color.new(106,90,205) SlateGray = Color.new(112,128,144) Snow = Color.new(255,250,250) SpringGreen = Color.new(0,255,127) SteelBlue = Color.new(70,130,180) Tan = Color.new(210,180,140) Teal = Color.new(0,128,128) Thistle = Color.new(216,191,216) Tomato = Color.new(253,99,71) Turquoise = Color.new(64,244,208) Violet = Color.new(238,130,238) Wheat = Color.new(245,222,179) White = Color.new(255,255,255) WhiteSmoke = Color.new(245,245,245) Yellow = Color.new(255,255,0) YellowGreen = Color.new(154,205,50) GaugeGreen = Color.new(202,241,126) GaugeBlue = Color.new(137,222,254) end #-------------------------------------------------------------------- # do not touch this class Point attr_reader :x attr_reader :y def initialize(x, y) @x, @y = x, y end def to_a [@x, @y] end end # or this class ScrollDirection Left = 0 Right = 1 end #-------------------------------------------------------------------- #-------------------------------------------------------------------- # * Configuration Section #-------------------------------------------------------------------- module HudConfig # The actor id of the main character in your game. # This will be the character in the main hud window. PLAYER_ID = 1 # if this is set to 'true' the HUD will go opaque. # when the player is walking. TRANSPARENT_WHEN_MOVING = false # this is the minimum opacity value reached while walking. # this should be a value between 0 and 255. TRANSPARENCY_WHEN_MOVING = 255 # this value determines how fast the HUD will fade out and in. # this is in incremenets per frame (60 frames per second). TRANSPARENCY_SWITCH_SPEED = 2 # If this switch is 'ON' the hud will not appear at all. # Set this to 'nil' to disable the feature completely NO_SHOW_SWITCH = nil # If this text is found in a map name the hud will # be disabled for that map at all times. This text # will be removed from the map name proper in case # you are using a map name script or somethin like that. NO_SHOW_TEXT = 'hud no show' # Display an empty hud if there is no party leader? SHOW_IF_NO_LEADER = false # Name of the player (main character) hud graphic PLAYER_HUD_IMAGE_NAME = 'player_hud' # Use the gren and blue mp/hp gauges? # You may use your own graphics, but they must # adhere to the same format as the originals, i.e., # # hud_bar_hp_000.png # # Where the '000' part is a multiple of five, from 0-100. PLAYER_USE_CUSTOM_GAUGE = true # The physical location of the hud sprite. # All of the other graphic locations are relative to this one. PLAYER_HUD_LOC = Point.new(0, 0) # The relative location of the hud image to the hud sprite. PLAYER_HUD_IMAGE_LOCATION = Point.new(0, 0) # The starting location of each peice of the HP gauge. PLAYER_HP_GAUGE_LOCATION = Point.new(0, 0) # the starting location of each peice of the MP gauge. PLAYER_MP_GAUGE_LOCATION = Point.new(0, 0) SHOW_PLAYER_FACE_IMAGE = true # The location of the face graphic. FACE_LOCATION = Point.new(35, 0) # Show all party members? (THESE FEATURES ARE NOT YET IMPLEMENTED) USE_MEMBER_WINDOW = true MEMBER_HUD_IMAGE_NAME = 'member_hud' MEMBER_USE_CUSTOM_GAUGE = false # Allow the player to hide the HUD by pressing a button? ALLOW_HUD_HIDE = false # The button which will trigger a hud move. HIDE_HUD_INPUT = Input::X # The speed at which to move the hud. HUD_HIDE_SPEED = 7 # replace "Left" with "Right" below to change the scroll direction HUD_SCROLL_DIRECTION = ScrollDirection::Left # Global values which are convenient for setting # multiple values to the same thing. GLOBAL_FONT_NAME = ['Magneto', 'Consolas', 'Verdana', 'Ariel', 'Courier New'] GLOBAL_PLAYER_FONT_SIZE = 22 GLOBAL_MEMBER_FONT_SIZE = 22 SHOW_PLAYER_NAME = true # The rest of the settings deal with setting the # location and style of the text displayed in the HUD PLAYER_NAME_FONT = GLOBAL_FONT_NAME PLAYER_NAME_COLOR = Colors::Silver PLAYER_NAME_USE_ITALICS = false PLAYER_NAME_USE_BOLD = false PLAYER_NAME_USE_SHADOW = true PLAYER_NAME_FONT_SIZE = 20 PLAYER_NAME_LOCATION = Point.new(125,0) PLAYER_NAME_WIDTH = 90 PLAYER_NAME_HEIGHT = 22 MEMBER_NAME_FONT = GLOBAL_FONT_NAME MEMBER_NAME_COLOR = Colors::White MEMBER_NAME_FONT_SIZE = GLOBAL_MEMBER_FONT_SIZE MEMBER_NAME_LOCATION = Point.new(0,0) USE_HP_TEXT_DISPLAY = true PLAYER_HP_FONT = ['Consolas', 'Verdana', 'Ariel', 'Courier New'] PLAYER_FULL_HP_COLOR = Colors::GaugeGreen PLAYER_HP_FONT_USE_ITALICS = false PLAYER_HP_FONT_USE_BOLD = true PLAYER_HP_FONT_USE_SHADOW = true PLAYER_HP_FONT_SIZE = 14 PLAYER_HP_LOCATION = Point.new(130,66) PLAYER_HP_WIDTH = 76 PLAYER_HP_HEIGHT = 11 MEMBER_HP_FONT = GLOBAL_FONT_NAME MEMBER_HP_FONT_SIZE = GLOBAL_MEMBER_FONT_SIZE MEMBER_HP_LOCATION = Point.new(0,0) USE_MP_TEXT_DISPLAY = USE_HP_TEXT_DISPLAY PLAYER_MP_FONT = PLAYER_HP_FONT PLAYER_FULL_MP_COLOR = Colors::GaugeBlue PLAYER_MP_FONT_USE_ITALICS = PLAYER_HP_FONT_USE_ITALICS PLAYER_MP_FONT_USE_BOLD = PLAYER_HP_FONT_USE_BOLD PLAYER_MP_FONT_USE_SHADOW = PLAYER_HP_FONT_USE_SHADOW PLAYER_MP_FONT_SIZE = PLAYER_HP_FONT_SIZE PLAYER_MP_LOCATION = Point.new(PLAYER_HP_LOCATION.x, PLAYER_HP_LOCATION.y + PLAYER_HP_HEIGHT + 1) PLAYER_MP_WIDTH = PLAYER_HP_WIDTH PLAYER_MP_HEIGHT = PLAYER_HP_HEIGHT MEMBER_MP_FONT = GLOBAL_FONT_NAME MEMBER_MP_FONT_SIZE = GLOBAL_MEMBER_FONT_SIZE MEMBER_MP_LOCATION = Point.new(0,0) SHOW_PLAYER_LEVEL = true PLAYER_LEVEL_FONT = GLOBAL_FONT_NAME PLAYER_LEVEL_COLOR = Colors::Gold PLAYER_LEVEL_USE_ITALICS = false PLAYER_LEVEL_USE_BOLD = false PLAYER_LEVEL_USE_SHADOW = true PLAYER_LEVEL_FONT_SIZE = 18 PLAYER_LEVEL_LOCATION = Point.new(136,24) PLAYER_LEVEL_WIDTH = 36 PLAYER_LEVEL_HEIGHT = 35 MEMBER_LEVEL_FONT = GLOBAL_FONT_NAME MEMBER_LEVEL_COLOR = PLAYER_LEVEL_COLOR MEMBER_LEVEL_FONT_SIZE = 10 MEMBER_LEVEL_LOCATION = Point.new(0,0) #------- # don't change the values below unless you know what you are doing. # Shows above the map and below the message window by default PLAYER_HUD_Z = 199 # The text format used for gauage images. HEALTH_GAUGE_FORMAT = 'hud_bar_%s_%.3d' # the name of the image file used as a mask for the face graphic PLAYER_FACE_MASK_NAME = 'player_face_mask' end class EventHandler def initialize @client_map = {} end def add_listener(id, func) (@client_map[id.hash] ||= []) << func end def remove_listener(id) return @client_map.delete(id.hash) end def alert_listeners(*args) @client_map.each_value { |v| v.each { |func| func.call(*args) } } end def dispose @client_map = nil end end class Game_Actor < Game_Battler attr_reader :hp_changed attr_reader :mp_changed attr_reader :maxhp_changed attr_reader :maxmp_changed alias :pre_confhud_ga_init :initialize unless $@ def initialize(*args) @hp_changed = EventHandler.new @mp_changed = EventHandler.new @maxhp_changed = EventHandler.new @maxmp_changed = EventHandler.new pre_confhud_ga_init(*args) end def on_hp_changed(*args) @hp_changed.alert_listeners(*args) end def on_mp_changed(*args) @mp_changed.alert_listeners(*args) end def on_maxhp_changed(*args) @maxhp_changed.alert_listeners(*args) end def on_maxmp_changed(*args) @maxmp_changed.alert_listeners(*args) end alias :pre_confhud_ga_hpequ :hp= unless $@ def hp=(*args) temp = @hp pre_confhud_ga_hpequ(*args) on_hp_changed(@hp) unless temp == @hp end alias :pre_confhud_ga_maxhpequ :maxhp= unless $@ def maxhp=(*args) temp = self.maxhp pre_confhud_ga_maxhpequ(*args) cur_max = self.maxhp on_maxhp_changed(cur_max) unless temp == cur_max end alias :pre_confhud_ga_mpequ :mp= unless $@ def mp=(*args) temp = @mp pre_confhud_ga_mpequ(*args) on_mp_changed(@mp) unless temp == @mp end alias :pre_confhud_ga_maxmpequ :maxmp= unless $@ def maxmp=(*args) temp = self.maxmp pre_confhud_ga_maxmpequ(*args) cur_max = self.maxmp on_maxmp_changed(cur_max) unless temp == cur_max end alias :pre_confhud_ga_recover_all :recover_all unless $@ def recover_all(*args) temp_hp, temp_mp = @hp, @mp pre_confhud_ga_recover_all(*args) on_hp_changed if temp_hp != @hp on_mp_changed if temp_mp != @mp end end class Game_Party attr_reader :party_leader_changed alias :pre_confhud_gp_init :initialize def initialize(*args) pre_confhud_gp_init(*args) @party_leader_changed = EventHandler.new end def on_party_leader_changed(*args) party_leader_changed.alert_listeners(*args) end alias :pre_confhud_gp_add_actor :add_actor def add_actor(*args) leader = $game_party.members.first pre_confhud_gp_add_actor(*args) on_party_leader_changed unless leader == $game_party.members.first end alias :pre_confhud_gp_remove_actor :remove_actor def remove_actor(*args) leader = $game_party.members.first pre_confhud_gp_remove_actor(*args) on_party_leader_changed unless leader == $game_party.members.first end end class Game_Player < Game_Character attr_reader :move_begun attr_reader :move_end alias :pre_confhud_gp_init :initialize def initialize(*args) @move_begun = EventHandler.new @move_end = EventHandler.new @move_started = false pre_confhud_gp_init(*args) end def on_move_begun @move_started = true @move_begun.alert_listeners end def on_move_end @move_started = false @move_end.alert_listeners end alias :pre_confhud_gp_update :update def update on_move_end if !moving? && @move_started pre_confhud_gp_update end alias :pre_conf_hud_gp_move_d :move_down def move_down(*args) on_move_begun if passable?(@x, @y + 1) pre_conf_hud_gp_move_d(*args) end alias :pre_conf_hud_gp_move_l :move_left def move_left(*args) on_move_begun if passable?(@x - 1, @y) pre_conf_hud_gp_move_l(*args) end alias :pre_conf_hud_gp_move_u :move_up def move_up(*args) on_move_begun if passable?(@x, @y - 1) pre_conf_hud_gp_move_u(*args) end alias :pre_conf_hud_gp_move_r :move_right def move_right(*args) on_move_begun if passable?(@x + 1, @y) pre_conf_hud_gp_move_r(*args) end end class Window_Base < Window alias :pre_confhud_wb_hp_color :hp_color unless $@ def hp_color(actor, for_hud=false) return HudConfig::PLAYER_FULL_HP_COLOR if for_hud && actor.hp == actor.maxhp return pre_confhud_wb_hp_color(actor) end alias :pre_confhud_wb_mp_color :mp_color unless $@ def mp_color(actor, for_hud=false) return HudConfig::PLAYER_FULL_MP_COLOR if for_hud && actor.mp == actor.maxmp return pre_confhud_wb_mp_color(actor) end end class MainHud < Sprite_Base include HudConfig WLH = Window_Base::WLH attr_accessor :actor def initialize(location, viewport=nil, actor=nil, visible=true) $game_player.move_begun.add_listener(self, lambda { player_begin_move }) $game_player.move_end.add_listener(self, lambda { player_end_move }) @hud_visible = visible @new_opacity = 255 super(viewport) self.bitmap = Bitmap.new(Graphics.width, Graphics.height) self.x, self.y = location.x, location.y self.actor = actor end def player_end_move @new_opacity = 255 end def player_begin_move @new_opacity = TRANSPARENCY_WHEN_MOVING end def update if TRANSPARENT_WHEN_MOVING && self.opacity != @new_opacity incr = TRANSPARENCY_SWITCH_SPEED if @new_opacity < self.opacity new_opacity = [self.opacity - incr, @new_opacity].max else new_opacity = [self.opacity + incr, @new_opacity].min end self.opacity = new_opacity end super end def actor=(value) # allow nil values to cause a refresh so that the hud # is painted at all times, even when there are no party members. return if @actor == value unless value.nil? remove_listeners(@actor) add_listeners(value) @actor = value create_player_face_image refresh end def hud_visible? @hud_visible end def hud_visible=(value) if @hud_visible != value @hud_visible = value refresh end end def image_rect ret = hud_image.rect ret.x, ret.y = *PLAYER_HUD_LOC.to_a return ret end def create_dummy_window win = Window_Base.new(0, 0, 64, 64) win.visible = false return win end # Stupid hack to get standard text colors because # I did not feel like copy & pasting those methods. def hp_color return (@window ||= create_dummy_window).hp_color(@actor, true) end def mp_color return (@window ||= create_dummy_window).mp_color(@actor, true) end def hud_image return Cache.picture(PLAYER_HUD_IMAGE_NAME) end def hud_location return PLAYER_HUD_IMAGE_LOCATION end def hp_gauge_location return PLAYER_HP_GAUGE_LOCATION end def mp_gauge_location return PLAYER_MP_GAUGE_LOCATION end def name_draw_rect return Rect.new( PLAYER_NAME_LOCATION.x, PLAYER_NAME_LOCATION.y, PLAYER_NAME_WIDTH, PLAYER_NAME_HEIGHT ) end def level_draw_rect return Rect.new( PLAYER_LEVEL_LOCATION.x, PLAYER_LEVEL_LOCATION.y, PLAYER_LEVEL_WIDTH, PLAYER_LEVEL_HEIGHT ) end def hp_draw_rect return Rect.new( PLAYER_HP_LOCATION.x, PLAYER_HP_LOCATION.y, PLAYER_HP_WIDTH, PLAYER_HP_HEIGHT ) end def mp_draw_rect return Rect.new( PLAYER_MP_LOCATION.x, PLAYER_MP_LOCATION.y, PLAYER_MP_WIDTH, PLAYER_MP_HEIGHT ) end def name_font font = Font.new(PLAYER_NAME_FONT, PLAYER_NAME_FONT_SIZE) font.color = PLAYER_NAME_COLOR font.italic = PLAYER_NAME_USE_ITALICS font.bold = PLAYER_NAME_USE_BOLD font.shadow = PLAYER_NAME_USE_SHADOW return font end def hp_font font = Font.new(PLAYER_HP_FONT, PLAYER_HP_FONT_SIZE) font.color = hp_color font.italic = PLAYER_HP_FONT_USE_ITALICS font.bold = PLAYER_HP_FONT_USE_BOLD font.shadow = PLAYER_HP_FONT_USE_SHADOW return font end def mp_font font = Font.new(PLAYER_MP_FONT, PLAYER_MP_FONT_SIZE) font.color = mp_color font.italic = PLAYER_MP_FONT_USE_ITALICS font.bold = PLAYER_MP_FONT_USE_BOLD font.shadow = PLAYER_MP_FONT_USE_SHADOW return font end def level_font font = Font.new(PLAYER_LEVEL_FONT, PLAYER_LEVEL_FONT_SIZE) font.color = PLAYER_LEVEL_COLOR font.italic = PLAYER_LEVEL_USE_ITALICS font.bold = PLAYER_LEVEL_USE_BOLD font.shadow = PLAYER_LEVEL_USE_SHADOW return font end def player_face_mask_image return Cache.picture(PLAYER_FACE_MASK_NAME) end def create_player_face_image(size=96) if @actor.nil? @face_image = Bitmap.new(size, size) return end rect = Rect.new(0, 0, 0, 0) rect.x = @actor.face_index % 4 * 96 + (96 - size) / 2 rect.y = @actor.face_index / 4 * 96 + (96 - size) / 2 rect.width = size rect.height = size face = Cache.face(@actor.face_name) mask = player_face_mask_image @face_image = Bitmap.new(rect.width, rect.height) @face_image.blt(0, 0, face, rect) for y in 0...rect.height for x in 0...rect.width mask_color = mask.get_pixel(x, y) @face_image.set_pixel(x, y, mask_color) if mask_color.alpha.zero? end end end def add_listeners(actor) return if actor.nil? func = lambda { refresh } actor.hp_changed.add_listener(self, func) actor.maxhp_changed.add_listener(self, func) actor.mp_changed.add_listener(self, func) actor.maxmp_changed.add_listener(self, func) end def hp_value_changed refresh end def remove_listeners(actor) return if actor.nil? actor.hp_changed.remove_listener(self) actor.maxhp_changed.remove_listener(self) actor.mp_changed.remove_listener(self) actor.maxmp_changed.remove_listener(self) end def draw_hud draw_custom_mp_gauge draw_custom_hp_gauge image = hud_image location = hud_location self.bitmap.blt(location.x, location.y, image, image.rect) end def draw_custom_hp_gauge cur, max = *(@actor.nil? ? [0,1] : [@actor.hp,@actor.maxhp]) draw_gauge(hp_gauge_location, 'hp', cur, max) end def draw_custom_mp_gauge cur, max = *(@actor.nil? ? [0,1] : [@actor.mp,@actor.maxmp]) draw_gauge(mp_gauge_location, 'mp', cur, max) end def draw_gauge(location, stat_name, current, max) percent_health = (current / max.to_f) * 100 multiple = 5 percent_health = check_health_bounds(percent_health, multiple) percent_health = round_to_multiple_of(multiple, percent_health.round) file_name = HEALTH_GAUGE_FORMAT % [stat_name, percent_health] image = Cache.picture(file_name) self.bitmap.blt(location.x, location.y, image, image.rect) end def round_to_multiple_of(multiple_of, num) # why in the fuck did I do this this way? # leave comments for yourself in the future dumbass. leftover = num % multiple_of return num if leftover.zero? if leftover > multiple_of / 2 sym = :+ else sym = :- end ret = num loop do ret = ret.send sym, 1 break if ret % multiple_of == 0 end return ret end def check_health_bounds(num, multiple) # dont allow the gauge to read 100 or 0 unless # the current health actually is 100 or 0. next_lower = 100 - multiple if num > next_lower && num < 100 return next_lower elsif num < multiple && num > 0 return multiple else return num end end def draw_face self.bitmap.blt(FACE_LOCATION.x, FACE_LOCATION.y, @face_image, @face_image.rect) end def draw_name return if @actor.nil? name = @actor.name rect = name_draw_rect font = name_font temp_font = self.bitmap.font self.bitmap.font = font self.bitmap.draw_text(rect, name) self.bitmap.font = temp_font end def draw_level return if @actor.nil? level = @actor.level rect = level_draw_rect font = level_font temp_font = self.bitmap.font self.bitmap.font = font self.bitmap.draw_text(rect, level, 1) self.bitmap.font = temp_font end def use_custom_gauges? return PLAYER_USE_CUSTOM_GAUGE end def health_text(prefix, cur, max) return "#{prefix}: #{cur}/#{max}" end def draw_health(rect, font, prefix, cur, max) self.bitmap.font = font xr = rect.x + rect.width health_width = (rect.width * 0.33).round spacer_width = (health_width / 2.1).round temp_font = self.bitmap.font prefixf = prefix + ':' # fuck this pile of shit, move along, this will just hurt your head self.bitmap.draw_text(rect.x, rect.y, self.bitmap.text_size(prefixf).width, rect.height, prefixf) self.bitmap.draw_text(xr - spacer_width - health_width * 2 + (health_width * 0.15).round, rect.y, health_width, rect.height, cur, 2) self.bitmap.draw_text(xr - spacer_width - health_width, rect.y, spacer_width, rect.height, "/", 2) self.bitmap.draw_text(xr - health_width, rect.y, health_width, rect.height, max, 2) self.bitmap.font = temp_font end def draw_hp return if @actor.nil? draw_health(hp_draw_rect, hp_font, Vocab.hp_a, @actor.hp, @actor.maxhp) end def draw_mp return if @actor.nil? draw_health(mp_draw_rect, mp_font, Vocab.mp_a, @actor.mp, @actor.maxmp) end def refresh self.bitmap.clear return unless hud_visible? draw_face if SHOW_PLAYER_FACE_IMAGE draw_hud draw_name if SHOW_PLAYER_NAME draw_level if SHOW_PLAYER_LEVEL draw_hp if USE_HP_TEXT_DISPLAY draw_mp if USE_MP_TEXT_DISPLAY end def dispose remove_listeners(@actor) $game_player.move_begun.remove_listener(self) $game_player.move_end.remove_listener(self) unless @window.nil? @window.dispose @window = nil end super end end class SubHud < MainHud end class Game_Map alias :pre_confhud_gm_setup :setup def setup(*args) id = *args @info = load_data('Data/MapInfos.rvdata')[id] pre_confhud_gm_setup(*args) end def display_hud? return [email protected]?(HudConfig::NO_SHOW_TEXT) end end class Scene_Map < Scene_Base include HudConfig attr_reader :player_hud # used to keep track of the hud location between # setups and teardowns, i.e., if you enter the menu or battle. @@last_hud_ox = 0 alias :pre_confhud_sm_start :start unless $@ def start pre_confhud_sm_start initialize_hud $game_party.party_leader_changed.add_listener(self, lambda { @player_hud.actor = $game_party.members.first }) end def initialize_hud @hud_viewport = Viewport.new(0, 0, 544, 416) @hud_viewport.z = PLAYER_HUD_Z @hud_viewport.ox = @@last_hud_ox @@target_hud_location ||= @hud_viewport.ox actor = $game_party.members.first @player_hud = MainHud.new( PLAYER_HUD_LOC, @hud_viewport, actor, hud_enabled?(actor) ) end alias :pre_confhud_sm_update :update unless $@ def update pre_confhud_sm_update update_hud update_hud_input update_hud_transition end alias :pre_confhud_sm_update_basic :update_basic unless $@ def update_basic(*args) pre_confhud_sm_update_basic update_hud end def show_hud trigger_scroll end def hide_hud trigger_scroll(true) end def trigger_scroll(force_hide=false) @@hud_moving = true if @hud_viewport.ox.zero? hud_rect = @player_hud.image_rect left = HUD_SCROLL_DIRECTION == ScrollDirection::Left offset = left ? hud_rect.width + hud_rect.x : -(Graphics.width - hud_rect.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> @@target_hud_location = @hud_viewport.ox + offset elsif !force_hide @@target_hud_location = 0 end end def update_hud @player_hud.hud_visible = hud_enabled? @player_hud.update @hud_viewport.update end def hud_enabled?(actor=nil) return false if !SHOW_IF_NO_LEADER && (actor ||= @player_hud.actor).nil? return false unless $game_map.display_hud? return false unless NO_SHOW_SWITCH.nil? || !$game_switches[NO_SHOW_SWITCH] return true end def update_hud_input trigger_scroll if ALLOW_HUD_HIDE && Input.trigger?(HIDE_HUD_INPUT) end def update_hud_transition @@hud_moving = @hud_viewport.ox != @@target_hud_location return unless @@hud_moving incr = @hud_viewport.ox < @@target_hud_location ? HUD_HIDE_SPEED : -HUD_HIDE_SPEED @hud_viewport.ox += [incr, (@hud_viewport.ox - @@target_hud_location).abs].min end alias :pre_confhud_sm_terminate :terminate unless $@ def terminate pre_confhud_sm_terminate $game_party.party_leader_changed.remove_listener(self) @player_hud.dispose @@last_hud_ox = @hud_viewport.ox end end Demo: http://www.mediafire.com/?g17t2tbaralgxz2
-
Nome Script: Ring Menù Versione: 1.1 Autore/i: Syvkal Informazioni: Un Menù ad Anello =) Screenshots: Istruzioni: IMPORTANTE Bisogna includere anche questo script: http://rpgmkr.net/forum/topic/1073-syvkals-menu-bars/ Poi,nella cartella Picture,inserite le seguenti icone: Script: #============================================================================== # ** Ring Menu #------------------------------------------------------------------------------- # by Syvkal # Version 1.1 # 06-23-08 #============================================================================== #===================================================# # ** C O N F I G U R A T I O N S Y S T E M ** # #===================================================# # Amount of frames for Startup Animation STARTUP_FRAMES = 20 # Amount of frames for Movement Animation MOVING_FRAMES = 15 # Radius of the Menu Ring RING_R = 75 # Disabled icon to display when disabled ICON_DISABLE= Cache::picture('Icon_Disable') #-------------D-O---N-O-T---T-O-U-C-H---------------# class Scene_Title < Scene_Base alias game_objects_original create_game_objects def create_game_objects game_objects_original #-------------D-O---N-O-T---T-O-U-C-H---------------# # As this script allows you to make a custom Menu I thought to make it easier # I would make it possible to add extra Menu Options from here # All you need to do is specify the Text to display, the icon and the command # The command must be in a STRING # Simply add to the array below : $game_ring_menu = [ # Menu Option 0 eg. Item [Vocab], # Menu Option 1 eg. Skill [Vocab], # Menu Option 2 eg. Equip [Vocab], # Menu Option 3 eg. Status [Vocab], #---------------------------------------------------# # ** I N S E R T M O R E H E R E ** # #---------------------------------------------------# # Preferably Insert your custom Menu Options Here # Otherwise the existing Menu Options will return to wrong point on the Menu # Menu Option 4 eg. Save ["Save Game", Cache::picture('Icon_Save'), "$scene = Scene_File.new(true, false, false)"], # Menu Option 5 eg. Load ["Load Game", Cache::picture('Icon_Load'), "$scene = Scene_File.new(false, false, false)"], # Menu Option 6 eg. End Game [Vocab] ] # <--- Do no Delete This #===================================================# # ** E N D C O N F I G U R A T I O N ** # #===================================================# end end #============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # Edited to add Ring Menu #============================================================================== class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias initialize_original initialize alias start_selection_original start_actor_selection alias end_selection_original end_actor_selection #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(menu_index = 0, move = true) @move = move initialize_original(menu_index) end #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background create_command_window @gold_window = Window_Gold.new(0, 360) @location_window = Window_location.new(0, 0) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @status_window.dispose if @status_window @location_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @gold_window.update @status_window.update if @status_window @location_window.update if @command_window.active update_command_selection elsif @status_window.active update_actor_selection end end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window commands = [] for i in 0...$game_ring_menu.size commands.push($game_ring_menu[i][0]) end icons = [] for i in 0...$game_ring_menu.size icons.push($game_ring_menu[i][1]) end @command_window = Window_RingMenu.new(232, 164, commands, icons, @move, @menu_index) if $game_party.members.size == 0 @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end if $game_system.save_disabled @command_window.disable_item(4) end end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_status_window names = [] chars = [] for i in 0...$game_party.members.size names[i] = $game_party.members[i].name chars[i] = $game_party.members[i] end @status_window = Window_RingMenu.new(255, 200, names, chars, true, $game_party.last_actor_index, true) end #-------------------------------------------------------------------------- # * Update Command Selection #-------------------------------------------------------------------------- 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 eval($game_ring_menu[@command_window.index][2]) end end #-------------------------------------------------------------------------- # * Start Actor Selection #-------------------------------------------------------------------------- def start_actor_selection @command_window.active = false @command_window.visible = false create_status_window 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 #-------------------------------------------------------------------------- # * End Actor Selection #-------------------------------------------------------------------------- def end_actor_selection @command_window.active = true @command_window.visible = true @status_window.dispose if @status_window @status_window = nil end #-------------------------------------------------------------------------- # * Update Actor Selection #-------------------------------------------------------------------------- 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 eval($game_ring_menu[@command_window.index][3]) end end end #============================================================================== # ** Scene_File #------------------------------------------------------------------------------ # Edited to return to the menu properly when loading #============================================================================== class Scene_File alias return_scene_original return_scene def return_scene if @from_title $scene = Scene_Title.new elsif @from_event $scene = Scene_Map.new else if @saving $scene = Scene_Menu.new($game_ring_menu.size - 3) else $scene = Scene_Menu.new($game_ring_menu.size - 2) end end end end #============================================================================== # ** Scene_End #------------------------------------------------------------------------------ # Edited to return to the menu properly due to loading being added #============================================================================== class Scene_End alias return_scene_original return_scene def return_scene $scene = Scene_Menu.new($game_ring_menu.size - 1) end end #============================================================================== # ** Window_Location #------------------------------------------------------------------------------ # This class shows the current map name. #============================================================================== class Window_location < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 160, (WLH*2) + 32) self.contents = Bitmap.new(width - 32, height - 32) refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear $maps = load_data("Data/MapInfos.rvdata") @map_id = $game_map.map_id @currmap = $maps[@map_id].name self.contents.font.color = system_color self.contents.draw_text(0, -4, 128, 32, "Location :") self.contents.font.color = normal_color self.contents.draw_text(0, -4+WLH, 128, 32, @currmap, 1) end end #============================================================================== # ** Window_RingMenu #------------------------------------------------------------------------------ # This Window creates a Ring Menu system #============================================================================== class Window_RingMenu < Window_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :index attr_reader :item_max #-------------------------------------------------------------------------- # * Refresh Setup #-------------------------------------------------------------------------- START = 1 WAIT = 2 MOVER = 3 MOVEL = 4 #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(center_x, center_y, commands, items, move = true, index = 0, character = false) super(0, 0, 544, 416) self.contents = Bitmap.new(width-32, height-32) self.opacity = 0 @move = move @char = character @startup = STARTUP_FRAMES @commands = commands @item_max = commands.size @index = index @items = items @disabled = [] for i in 0...commands.size-1 @disabled[i] = false end @cx = center_x @cy = center_y start_setup refresh end #-------------------------------------------------------------------------- # * Start Setup #-------------------------------------------------------------------------- def start_setup @mode = START @steps = @startup end #-------------------------------------------------------------------------- # * Disable index # index : item number #-------------------------------------------------------------------------- def disable_item(index) @disabled[index] = true end #-------------------------------------------------------------------------- # * Determines if is moving #-------------------------------------------------------------------------- def animation? return @mode != WAIT end #-------------------------------------------------------------------------- # * Determine if cursor is moveable #-------------------------------------------------------------------------- def cursor_movable? return false if (not visible or not active) return false if (@opening or @closing) return false if animation? return true end #-------------------------------------------------------------------------- # * Move cursor right #-------------------------------------------------------------------------- def cursor_right @index -= 1 @index = @items.size - 1 if @index < 0 @mode = MOVER @steps = MOVING_FRAMES end #-------------------------------------------------------------------------- # * Move cursor left #-------------------------------------------------------------------------- def cursor_left @index += 1 @index = 0 if @index >= @items.size @mode = MOVEL @steps = MOVING_FRAMES end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if self.active if cursor_movable? last_index = @index if Input.repeat?(Input::DOWN) or Input.repeat?(Input::RIGHT) cursor_right end if Input.repeat?(Input::UP) or Input.repeat?(Input::LEFT) cursor_left end if @index != last_index Sound.play_cursor end end refresh end end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear case @mode when START refresh_start when WAIT refresh_wait when MOVER refresh_move(1) when MOVEL refresh_move(0) end rect = Rect.new(18, 196, self.contents.width-32, 32) self.contents.draw_text(rect, @commands[@index], 1) end #-------------------------------------------------------------------------- # * Refresh Start Period #-------------------------------------------------------------------------- def refresh_start d1 = 2.0 * Math::PI / @item_max d2 = 1.0 * Math::PI / @startup for i in 0...@item_max j = i - @index if @move r = RING_R - 1.0 * RING_R * @steps / @startup d = d1 * j + d2 * @steps else r = RING_R d = d1 * j end x = @cx + ( r * Math.sin( d ) ).to_i y = @cy - ( r * Math.cos( d ) ).to_i draw_item(x, y, i) end @steps -= 1 if @steps < 1 @mode = WAIT end end #-------------------------------------------------------------------------- # * Refresh Wait Period #-------------------------------------------------------------------------- def refresh_wait d = 2.0 * Math::PI / @item_max for i in 0...@item_max j = i - @index x = @cx + ( RING_R * Math.sin( d * j ) ).to_i y = @cy - ( RING_R * Math.cos( d * j ) ).to_i draw_item(x, y, i) end end #-------------------------------------------------------------------------- # * Refresh Movement Period #-------------------------------------------------------------------------- def refresh_move( mode ) d1 = 2.0 * Math::PI / @item_max d2 = d1 / MOVING_FRAMES d2 *= -1 if mode != 0 for i in 0...@item_max j = i - @index d = d1 * j + d2 * @steps x = @cx + ( RING_R * Math.sin( d ) ).to_i y = @cy - ( RING_R * Math.cos( d ) ).to_i draw_item(x, y, i) end @steps -= 1 if @steps < 1 @mode = WAIT end end #-------------------------------------------------------------------------- # * Draw Item # x : draw spot x-coordinate # y : draw spot y-coordinate # index : item number #-------------------------------------------------------------------------- def draw_item(x, y, index) if @char if @index == index draw_character(@items[index].character_name, @items[index].character_index , x, y) if @mode == WAIT draw_actor_hp_ring(@items[index], @cx, @cy-16, 50, 6, 84, 270, true) draw_actor_mp_ring(@items[index], @cx, @cy-16, 50, 6, 84, 180, false) draw_actor_exp_ring(@items[index], @cx, @cy-16, 50, 6, 155, 12, false) end else draw_character(@items[index].character_name, @items[index].character_index , x, y, false) end else rect = Rect.new(0, 0, @items[index].width, @items[index].height) if @index == index self.contents.blt( x, y, @items[index], rect ) if @disabled[@index] self.contents.blt( x, y, ICON_DISABLE, rect ) end else self.contents.blt( x, y, @items[index], rect, 128 ) end end end end #============================================================================== # ** Window_Base #------------------------------------------------------------------------------ # Edited to allow disabled character icons #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # * Draw Character Graphic #-------------------------------------------------------------------------- def draw_character(character_name, character_index, x, y, enabled = true) return if character_name == nil bitmap = Cache.character(character_name) sign = character_name[/^[!$]./] if sign != nil and sign.include?('$') cw = bitmap.width / 3 ch = bitmap.height / 4 else cw = bitmap.width / 12 ch = bitmap.height / 8 end n = character_index src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch) self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, enabled ? 255 : 128) end end
-
Nome Script: Ombra sotto i PG Versione: 1.0 Autore/i: .XDênix:. Informazioni: Inserisce un'ombra di default sotto i PG. Istruzioni: Inserite lo script sotto Material. Per non avere l'ombra sotto ai PG, inserite nel nome evento SD. Script: #===========================================================================================# # Shadow in All Characters 1.0 # #===========================================================================================# # Características: # # Adiciona sombra ao herói e aos eventos. Para que a sombra de algum evento não apareça, # # basta botar o seu nome de SD. # #===========================================================================================# # Créditos: # # .XDênix:. # #===========================================================================================# $FENIX = {} $FENIX["Shadow in All Characters 1.0"] = true if $FENIX["Shadow in All Characters 1.0"] class Game_Event < Game_Character def name return @event.name end end class Spriteset_Map def create_shadow @player_shadow = Sprite.new(@viewport1) @player_shadow.bitmap = Cache.system("Shadow") @player_shadow.x = $game_player.screen_x - @player_shadow.bitmap.width / 2 rescue @player_shadow.x = -@player_shadow.bitmap.width @player_shadow.y = $game_player.screen_y - @player_shadow.bitmap.height + 5 + $game_map.airship.altitude rescue @player_shadow.y = -@player_shadow.bitmap.height if $game_player.vehicle_type == 2 @player_shadow.opacity = $game_map.airship.altitude * 8 @player_shadow.z = 180 else @player_shadow.opacity = 255 @player_shadow.opacity = 0 if $game_player.vehicle_type != -1 @player_shadow.z = 0 end @event_shadow = [] for i in 1..$game_map.events.size @event_shadow[i] = Sprite.new(@viewport1) if $game_map.events[i].name == "SD" @event_shadow[i].bitmap = Cache.system("") else @event_shadow[i].bitmap = Cache.system("Shadow") end @event_shadow[i].x = $game_map.events[i].screen_x - @event_shadow[i].bitmap.width / 2 rescue @event_shadow[i].x = -@event_shadow[i].bitmap.width @event_shadow[i].y = $game_map.events[i].screen_y - @event_shadow[i].bitmap.height + 5 rescue @event_shadow[i].y = -@event_shadow[i].bitmap.height end end def update_shadow @player_shadow.x = $game_player.screen_x - @player_shadow.bitmap.width / 2 rescue @player_shadow.x = -@player_shadow.bitmap.width @player_shadow.y = $game_player.screen_y - @player_shadow.bitmap.height + 5 + $game_map.airship.altitude rescue @player_shadow.y = -@player_shadow.bitmap.height @player_shadow.update if $game_player.vehicle_type == 2 @player_shadow.opacity = $game_map.airship.altitude * 8 @player_shadow.z = 180 else @player_shadow.opacity = 255 @player_shadow.opacity = 0 if $game_player.vehicle_type != -1 @player_shadow.z = 0 end if $game_player.vehicle_type != -1 $game_system.save_disabled = true else $game_system.save_disabled = false end for i in 1..$game_map.events.size @event_shadow[i].x = $game_map.events[i].screen_x - @event_shadow[i].bitmap.width / 2 rescue @event_shadow[i].x = -@event_shadow[i].bitmap.width @event_shadow[i].y = $game_map.events[i].screen_y - @event_shadow[i].bitmap.height + 5 rescue @event_shadow[i].y = -@event_shadow[i].bitmap.height @event_shadow[i].update end end def dispose_shadow @player_shadow.dispose for i in 1..$game_map.events.size @event_shadow[i].dispose rescue nil end end end end