Vai al contenuto

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

Ally

Utente
  • Numero contenuti

    1074
  • Iscritto

  • Ultima visita

  • Days Won

    17

Tutti i contenuti di Ally

  1. Nome Script: Napoleon's Minimap V1.06a Versione: 1.06a Autore/i: Napoleon Informazioni: Mini-Map script molto bello e personalizzabile con varie opzioni =) Screenshots: Istruzioni: Istruzioni e script all'interno della demo. Demo: https://www.dropbox.com/s/jm92rbqb5eadryr/Napoleons%20Master%20Demo.zip
  2. Ally

    HUD Melosx HUD

    Nome Script: Melosx HUD Versione: 1.0 Autore/i: Melosx Informazioni: HUD ad immagini che mostra face, barre PV/MP/ESP ed equip indossato. Ottimo per i vostri ABS... Istruzioni: Nello script della demo. Demo: http://www.mediafire...g04cerpxtwy62e3 Script 2.0
  3. Nome Script: Crystal Engine - Mimic Versione: N/D Autore/i: Crystal Noel Informazioni: Questo script fornisce due abilità da utilizzare in battaglia. Uno degli effetti copia semplicemente l'effetto e lo utilizza sul nemico. L'altra mossa è quella di mimare l'abilità fino alla fine della battaglia. Features: - Imparare temporaneamente (sostituisce l'abilità mimica fino alla fine della battaglia) - Copia Azione (Copia l'azione del bersaglio) Istruzioni: Script e istruzioni all'interno della demo. Nel note tag dei nemici, impostate in questo modo a seconda delle vostre esigenze: <mimic> Imposta la capacità di copiare l'ultima azione del bersaglio <borrow move> Imposta la capacità di prendere in prestito l'ultima abilità del bersaglio per il resto della battaglia Utilizzate questa opzione se desiderate che i nemici siano in grado di prendere in 'prestito' anche le abilità: class RPG::Enemy < RPG::BaseItem def actions set = [] set += @actions ids = [] set.each {|action| ids.push(action.skill_id)} $data_skills.each do |skill| next if skill.nil? action = RPG::Enemy::Action.new action.skill_id = skill.id set.push(action) unless ids.include?(skill.id) end set endend Demo:http://crystalnoel42.wordpress.com/2013/06/10/crystal-engine-mimic/
  4. Nome Script: Camminata 8 Direzioni Versione: N/D Autore/i: Raizen884 Informazioni: Script che simula le 8 direzioni di camminata. Istruzioni: Inserite lo script sotto Material. Script: #=======================================================# Engine 8 direções.# Autor: Raizen884# Mude completamente o seu jogo de 4 direções, para# 8 direções. O script vai adicionar movimentos em 8# direções para o personagem e para todos os eventos# no jogo.#=======================================================class Game_Player < Game_Character def move_by_input return if !movable? || $game_map.interpreter.running? move_diagonal(4, 2) if Input.dir8 == 1 move_straight(2) if Input.dir8 == 2 move_diagonal(6, 2) if Input.dir8 == 3 move_straight(4) if Input.dir8 == 4 move_diagonal(6, 8) if Input.dir8 == 9 move_straight(6) if Input.dir8 == 6 move_diagonal(4, 8) if Input.dir8 == 7 move_straight(8) if Input.dir8 == 8 end def move_diagonal(horz, vert) @followers.move if diagonal_passable?(@x, @y, horz, vert) check_event_trigger_touch(@x+1, @y+1) if horz == 6 and vert == 2 check_event_trigger_touch(@x+1, @y-1) if horz == 6 and vert == 8 check_event_trigger_touch(@x-1, @y-1) if horz == 4 and vert == 8 check_event_trigger_touch(@x-1, @y+1) if horz == 4 and vert == 2 super endendclass Game_Character < Game_CharacterBase def move_toward_character(character) sx = distance_x_from(character.x) sy = distance_y_from(character.y) if sx.abs > sy.abs and sy == 0 move_straight(sx > 0 ? 4 : 6) move_straight(sy > 0 ? 8 : 2) if !@move_succeed && sy != 0 elsif sx.abs > sy.abs and sy > 0 if sx > 0 move_diagonal(4, 8) else move_diagonal(6, 8) end elsif sx.abs > sy.abs and sy < 0 if sx > 0 move_diagonal(4, 2) else move_diagonal(6, 2) end end if sx.abs <= sy.abs and sx == 0 move_straight(sy > 0 ? 8 : 2) move_straight(sx > 0 ? 4 : 6) if !@move_succeed && sx != 0 elsif sx.abs <= sy.abs and sx > 0 if sy > 0 move_diagonal(4, 8) else move_diagonal(4, 2) end elsif sx.abs <= sy.abs and sx < 0 if sy > 0 move_diagonal(6, 8) else move_diagonal(6, 2) end endend def move_random case rand(2) when 0 move_straight(2 + rand(4) * 2, false) when 1 move_diagonal(2 + rand(4) * 2, 2 + rand(4) * 2) end end def move_away_from_character(character) sx = distance_x_from(character.x) sy = distance_y_from(character.y) if sx.abs > sy.abs and sy == 0 move_straight(sx > 0 ? 6 : 4) move_straight(sy > 0 ? 2 : 8) if !@move_succeed && sy != 0 elsif sx.abs > sy.abs and sy < 0 if sx < 0 move_diagonal(4, 8) else move_diagonal(6, 8) end elsif sx.abs > sy.abs and sy > 0 if sx > 0 move_diagonal(6, 2) else move_diagonal(4, 2) end end if sx.abs <= sy.abs and sx == 0 move_straight(sy > 0 ? 2 : 8) move_straight(sx > 0 ? 6 : 4) if !@move_succeed && sx != 0 elsif sx.abs <= sy.abs and sx < 0 if sy > 0 move_diagonal(4, 2) else move_diagonal(4, 8) end elsif sx.abs <= sy.abs and sx > 0 if sy < 0 move_diagonal(6, 8) else move_diagonal(6, 2) end endendend
  5. Nome Script: Overlay Mapping Versione: del 16.04.2012 Autore/i: Yami Informazioni: Questo script permette di poter utilizzare i vari livelli di parallasse per mappare all'interno del vostro progetto di RPG Maker VX Ace. Screenshots: Istruzioni: Create una cartella dentro "Graphics" chiamata Overlay (nome progetto/Graphic/Overlay). Potete creare fino a 4 tipi di immagini: • Ground (parte base della mappa - va SOTTO a tutto) • Par (parte alta della mappa - va SOPRA a tutto e copre gli eventi e il personaggio - vedi albero) • Light (crea effetti di luce statici) • Shadow (crea effetti di ombra statici) Le immagini della vostra mappa dovranno essere nominate in base alla loro funzione: • Il prato è un ground • Gli alberi e tutto quello che è sopra al livello dell'eroe è un par • Le luci e le ombre sono rispettivamente light e shadow Esempio: Io ho creato un prato con degli alberi come nell'immagine sopra. Tutto questo andrà inserito all'interno delle prima mappa del gioco (quindi ID:0001); di conseguenza chiamerò la mia immagine del prato cosi: Ground1_1 (il primo 1 è l'ID della mappa nel quale il prato verrà visualizzato; il secondo 1 è usato se, per esempio, nella stessa mappa volete creare più versioni: ground1_1 versione normale ground1_2 versione distruzione, per esempio); L'immagine deve essere in PNG. Gli alberi andranno salvati cosi: Par1_1 (i numeri seguono lo stesso principio spiegato sopra); L'immagine deve essere in PNG. Le luci e le ombre (se presenti) andranno salvate con lo stesso principio spiegato sopra (light1_1 e Shadow1_1); L'immagine deve essere in JPG. (se questo prato dovrà essere messo nell mappa con ID 23 le immagini saranno chiamate ground23_1, par23_1, light23_1 e shadow23_1) Spero di essere stato chiaro D: Script: F.A.Q: N/D Demo: N/D Incompatibilità: N/D Note dell'autore: N/D
  6. Nome Script: Ring Menù (Pseudo) 3D Versione: 2.1 Autore/i: Gab! Informazioni: Non fatevi ingannare dal titolo ^^ Questo script, è una modifica all'originale Ring Menù, ma modificato per renderlo con un effetto visivo simile al 3D... Screenshots: Istruzioni: Inserite lo script sopra Main. Altre istruzioni sono all'interno dello script. Script: #=============================================================================# Gab Ring Menu 3D#-----------------------------------------------------------------------------# Autor: Gab!# Data: 28/11/12#-----------------------------------------------------------------------------# Deixa o menu com perspectiva 3D.#=============================================================================module Gab module RingMenu3D#=============================================================================# * CONFIGURAÇÃO#============================================================================= # ID dos ícones ICONS = [ 192, # Itens 112, # Habilidades 169, # Equipamentos 14, # Status 12, # Formação 117, # Salvar 121 # Sair ] # Fonte FNAME = "Trebuchet MS" # Nome FSIZE = 19 # Tamanho FCOLOR = [255, 255, 255, 200] # Cor (R,G,B,A) # Raios R1 = 90 # Para que o efeito ocorra, R2 = 20 # é necessário que R1 > R2. # Precisão de movimento dos ícones (Quanto maior, mais lento) # Valores sugeridos: # 1 = Instantâneo # 5 = Rápido # 10 = Mediano # 20 = Lento MV = 10 # Frequência do movimento dos characters (Quanto maior, mais lento) CFREQ = 15 # BGM (Deixar em branco para remover) BGM = "Battle3" # BGS (Deixar em branco para remover) BGS = "Clock" # Tempo de fade no audio para sair da cena (milissegundos) AudioFade = 1000 # Janelas adicionais Windows = { mapName: [ # Nome do mapa true, # Mostrar? 0, # Posição X 0, # Posição Y 400, # Largura 231, # Ícone 0, # Opacidade ], time: [ # Tempo de jogo true, # Mostrar? 0, # Posição X 34, # Posição Y 160, # Largura 280, # Ícone 0, # Opacidade ], gold: [ # Dinheiro true, # Mostrar? 0, # Posição X 68, # Posição Y 160, # Largura 361, # Ícone 0, # Opacidade ] } #=============================================================================# * FIM DA CONFIGURAÇÃO#============================================================================= endendObject.send(:remove_const, :Scene_Menu)class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # ** Base para as janelas do menu #-------------------------------------------------------------------------- class MenuWindow < Window_Base def initialize(x, y, width, icon, opacity) super(x, y, width, fitting_height(1)) @icon = icon self.opacity = opacity self.contents.font.name = Gab::RingMenu3D::FNAME self.contents.font.size = Gab::RingMenu3D::FSIZE self.contents.font.color = Color.new(*Gab::RingMenu3D::FCOLOR) self.contents.font.outline = false self.contents.font.shadow = true draw_icon(@icon, 0, 0) @clear_rect = Rect.new(30, 0, contents.width - 31, contents.height) refresh end def refresh self.contents.clear_rect(@clear_rect) text_size = self.contents.width - 32 self.contents.draw_text(30, 0, text_size, self.contents.height, text, align) end def align return 2 end def update super refresh if (Graphics.frame_count % Graphics.frame_rate) == 0 end def text return "" end end #-------------------------------------------------------------------------- # ** Nome do mapa #-------------------------------------------------------------------------- class MenuWindowMapName < MenuWindow def text $game_map.display_name end def align return 0 end end #-------------------------------------------------------------------------- # ** Tempo de jogo #-------------------------------------------------------------------------- class MenuWindowTime < MenuWindow def text total_sec = Graphics.frame_count / Graphics.frame_rate hour = total_sec / 60 / 60 min = total_sec / 60 % 60 sec = total_sec % 60 sprintf("%02d:%02d:%02d", hour, min, sec) end end #-------------------------------------------------------------------------- # ** Dinheiro #-------------------------------------------------------------------------- class MenuWindowGold < MenuWindow def text $game_party.gold.to_s end end #-------------------------------------------------------------------------- # * Inicialização do processo #-------------------------------------------------------------------------- def start super @vocabulary = [ Vocab::item, Vocab::skill, Vocab::equip, Vocab::status, Vocab::formation, Vocab::save, Vocab::game_end ] @actorsNames = $game_party.members.map{|actor| actor.name} create_background @[member=spriters2000] = Sprite_Character.new(@main_viewport, $game_player) @index = 0 @actorIndex = 0 @stage = 0 @pattern = 1 @actor1 = nil @actor2 = nil @bgm = RPG::BGM.new(Gab::RingMenu3D::BGM) @bgs = RPG::BGS.new(Gab::RingMenu3D::BGS) @bgm.play @bgs.play precalculus create_icons create_legend create_actor_selection create_windows end #-------------------------------------------------------------------------- # * Finalização do processo #-------------------------------------------------------------------------- def terminate super RPG::BGM.fade(Gab::RingMenu3D::AudioFade) RPG::BGS.fade(Gab::RingMenu3D::AudioFade) dispose_background @icons.each(&:dispose) @actors.each(&:dispose) @windows.each(&:dispose) @[member=spriters2000].dispose @legend.dispose Input.update $game_map.autoplay end #-------------------------------------------------------------------------- # * Disposição do plano de fundo #-------------------------------------------------------------------------- def dispose_background @background_sprite.dispose end #-------------------------------------------------------------------------- # * Criação do plano de fundo #-------------------------------------------------------------------------- def create_background @background_sprite = Sprite.new @background_sprite.bitmap = SceneManager.background_bitmap @background_sprite.color.set(16, 16, 16, 128) end #-------------------------------------------------------------------------- # * Pré-calculo #-------------------------------------------------------------------------- def precalculus @elIcons = 2 * Math::PI / Gab::RingMenu3D::ICONS.size @basePointIcons = @[member=spriters2000].y + Gab::RingMenu3D::R2 * (Math.sin(-@elIcons) - 0.5) @maxDifIcons = @[member=spriters2000].y + Gab::RingMenu3D::R2 * Math.sin(Math::PI - @elIcons) - @basePointIcons @moveTimesIcons = @elIcons / Gab::RingMenu3D::MV @addIcons = 0 @elActors = 2 * Math::PI / $game_party.members.size @basePointActors = @[member=spriters2000].y + (Gab::RingMenu3D::R2 + 24) * Math.sin(-@elIcons) @maxDifActors = @[member=spriters2000].y + (Gab::RingMenu3D::R2 + 24) * Math.sin(Math::PI - @elActors) - @basePointActors @moveTimesActors = @elActors / Gab::RingMenu3D::MV @addActors = 0 end #-------------------------------------------------------------------------- # * Criação dos ícones #-------------------------------------------------------------------------- def create_icons iconset = Cache.system("Iconset") @icons = [] Gab::RingMenu3D::ICONS.each_with_index{|icon_index, index| sprite = Sprite.new sprite.bitmap = iconset sprite.src_rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24) sprite.ox = sprite.width / 2 sprite.oy = sprite.height / 2 @icons << sprite } @icons[5].tone = Tone.new(0, 0, 0, 255) if $game_system.save_disabled adjust_icons end #-------------------------------------------------------------------------- # * Cria a legenda #-------------------------------------------------------------------------- def create_legend base, c = Bitmap.new(1, 1), nil base.font.name = Gab::RingMenu3D::FNAME base.font.size = Gab::RingMenu3D::FSIZE base.font.color = Color.new(*Gab::RingMenu3D::FCOLOR) maxLen = (@vocabulary + @actorsNames).inject(0){|a, b| c = base.text_size( c.width > a ? c.width : a } @legend = Sprite.new @legend.bitmap = Bitmap.new(maxLen + 5, c.height) @legend.bitmap.font.name = Gab::RingMenu3D::FNAME @legend.bitmap.font.size = Gab::RingMenu3D::FSIZE @legend.bitmap.font.color = Color.new(*Gab::RingMenu3D::FCOLOR) @legend.ox = @legend.width / 2 @legend.oy = @legend.height / 2 @legend.x = @icons.first.x @legend.y = @icons.first.y + @icons.first.height base.dispose legend_refresh end #-------------------------------------------------------------------------- # * Cria seleção de atores #-------------------------------------------------------------------------- def create_actor_selection @actors = $game_party.members.map{|char| actor = Sprite.new actor.bitmap = Cache.character(char.character_name) sign = char.character_name[/^[\!\$]./] if sign && sign.include?('$') cw = actor.bitmap.width / 3 ch = actor.bitmap.height / 4 else cw = actor.bitmap.width / 12 ch = actor.bitmap.height / 8 end actor.ox = cw / 2 actor.oy = ch actor.x = @[member=spriters2000].x + 1.5 * Gab::RingMenu3D::R1 actor.instance_variable_set(:@charData, [char, cw, ch]) actor } adjust_actors update_actors_src end #-------------------------------------------------------------------------- # * Cria janelas #-------------------------------------------------------------------------- def create_windows windows = Gab::RingMenu3D::Windows @windows = [] @windows << MenuWindowMapName.new(*windows[:mapName][1,5]) if windows[:mapName][0] @windows << MenuWindowTime.new(*windows[:time][1,5]) if windows[:time][0] @windows << MenuWindowGold.new(*windows[:gold][1,5]) if windows[:gold][0] end #-------------------------------------------------------------------------- # * Posicionamento e ajuste de opacidade dos ícones #-------------------------------------------------------------------------- def adjust_icons el = 2 * Math::PI / @icons.size t = @addIcons - el @icons.each{|sprite| t += el sprite.x = @[member=spriters2000].x + Math.sin(t) * Gab::RingMenu3D::R1 sprite.y = @[member=spriters2000].y + Gab::RingMenu3D::R2 * (Math.cos(t) - 0.5) dif = (sprite.y - @basePointIcons) / @maxDifIcons sprite.opacity = @stage == 0 ? 127 + 255 * dif : 0 sprite.zoom_x = sprite.zoom_y = [0.5 + dif, 1].min } end #-------------------------------------------------------------------------- # * Posicionamento e ajuste de opacidade dos atores #-------------------------------------------------------------------------- def adjust_actors el = 2 * Math::PI / @actors.size t = @addActors - el @actors.each{|sprite| t += el sprite.x = @[member=spriters2000].x + Math.sin(t) * (Gab::RingMenu3D::R1 + 24) sprite.y = @[member=spriters2000].y + (Gab::RingMenu3D::R2 + 24) * Math.cos(t) dif = (sprite.y - @basePointActors) / @maxDifActors sprite.opacity = @stage != 0 ? 127 + 255 * dif : 0 sprite.zoom_x = sprite.zoom_y = [0.5 + dif, 1].min } end #-------------------------------------------------------------------------- # * Movimento dos ícones #-------------------------------------------------------------------------- def rotateIcons(dir) @moveTimesIcons *= -1 if dir == :right Sound.play_cursor Gab::RingMenu3D::MV.times{|sprite| @addIcons += @moveTimesIcons @addIcons %= Math::PI * 2 adjust_icons Graphics.update } if dir == :right @moveTimesIcons *= -1 @index += 1 else @index -= 1 end @index %= @icons.size legend_refresh end #-------------------------------------------------------------------------- # * Movimento dos atores #-------------------------------------------------------------------------- def rotateActors(dir) @moveTimesActors *= -1 if dir == :right Sound.play_cursor Gab::RingMenu3D::MV.times{|sprite| @addActors += @moveTimesActors @addActors %= Math::PI * 2 adjust_actors Graphics.update } if dir == :right @moveTimesActors *= -1 @actorIndex += 1 else @actorIndex -= 1 end @actorIndex %= @actors.size legend_refresh end #-------------------------------------------------------------------------- # * Atualiza legenda #-------------------------------------------------------------------------- def legend_refresh @legend.bitmap.clear text = @stage == 0 ? @vocabulary[@index] : @actorsNames[@actorIndex] @legend.bitmap.draw_text(@legend.bitmap.rect, text, 1) @legend.update end #-------------------------------------------------------------------------- # * Atualização Base #-------------------------------------------------------------------------- def update super @windows.each(&:update) case @stage when 0 update_main_input when 1, 2 @stage == 1 ? update_actors_input : update_formation_input if (Graphics.frame_count % Gab::RingMenu3D::CFREQ) == 0 @pattern = (@pattern + 1) % 3 end update_actors_src end end #-------------------------------------------------------------------------- # * Atualização de input padrão #-------------------------------------------------------------------------- def update_main_input if Input.repeat?(:LEFT) rotateIcons(:left) elsif Input.repeat?(:RIGHT) rotateIcons(:right) elsif Input.trigger?(: Sound.play_cancel process_return elsif Input.trigger?(:C) process_confirm end end #-------------------------------------------------------------------------- # * Atualização de entrada na seleção de ator #-------------------------------------------------------------------------- def update_actors_input if Input.repeat?(:LEFT) rotateActors(:left) elsif Input.repeat?(:RIGHT) rotateActors(:right) elsif Input.trigger?(: Sound.play_cancel process_return elsif Input.trigger?(:C) Sound.play_ok process_special_confirm end end #-------------------------------------------------------------------------- # * Atualização de entrada na seleção de ator #-------------------------------------------------------------------------- def update_actors_input if Input.repeat?(:LEFT) rotateActors(:left) elsif Input.repeat?(:RIGHT) rotateActors(:right) elsif Input.trigger?(: Sound.play_cancel process_return elsif Input.trigger?(:C) Sound.play_ok process_special_confirm end end #-------------------------------------------------------------------------- # * Atualização de troca de formação #-------------------------------------------------------------------------- def update_formation_input if Input.repeat?(:LEFT) rotateActors(:left) elsif Input.repeat?(:RIGHT) rotateActors(:right) elsif Input.trigger?(: Sound.play_cancel process_return elsif Input.trigger?(:C) process_formation_confirm end end #-------------------------------------------------------------------------- # * Processa confirmação #-------------------------------------------------------------------------- def process_confirm case @index when 0 # Item Sound.play_ok SceneManager.call(Scene_Item) when 1, 2, 3, 4 # Skill, Equip, Status, Formação Sound.play_ok @stage = @index == 4 ? 2 : 1 adjust_actors adjust_icons legend_refresh @legend.y -= 28 when 5 # Save if ($game_system.save_disabled) Sound.play_buzzer else SceneManager.call(Scene_Save) Sound.play_ok end when 6 # Sair Sound.play_ok SceneManager.call(Scene_End) end end #-------------------------------------------------------------------------- # * Processa confirmação das opções que requerem seleção de ator #-------------------------------------------------------------------------- def process_special_confirm $game_party.menu_actor = $game_party.members[@actorIndex] case @index when 1 # Skill SceneManager.call(Scene_Skill) when 2 # Equip SceneManager.call(Scene_Equip) when 3 # Status SceneManager.call(Scene_Status) end end #-------------------------------------------------------------------------- # * Processa confirmação de troca de formação #-------------------------------------------------------------------------- def process_formation_confirm if @actor1.nil? @actor1 = @actorIndex @actors[@actor1].tone = Tone.new(150, 150, 150, 0) Sound.play_ok else return Sound.play_buzzer if @actor1 == @actorIndex Sound.play_ok $game_party.swap_order(@actor1, @actorIndex) @actorsNames = $game_party.members.map{|actor| actor.name} @[member=spriters2000].dispose @[member=spriters2000] = Sprite_Character.new(@main_viewport, $game_player) @actors.each(&:dispose) create_actor_selection @actors[@actor1].tone = Tone.new(0, 0, 0, 0) @stage = 0 @actor1 = nil adjust_icons adjust_actors legend_refresh @legend.y += 28 end end #-------------------------------------------------------------------------- # * Processa retorno #-------------------------------------------------------------------------- def process_return case @stage when 0 return_scene when 1 case @index when 1, 2, 3 @stage = 0 adjust_actors adjust_icons legend_refresh @legend.y += 28 when 4 if [email protected]? @actors[@actor1].tone = Tone.new(0, 0, 0, 0) return @actor1 = nil end @stage = 0 adjust_actors adjust_icons legend_refresh @legend.y += 28 end end end #-------------------------------------------------------------------------- # * Atualiza characters #-------------------------------------------------------------------------- def update_actors_src @actors.each{|sprite| char, cw, ch = sprite.instance_variable_get(:@charData) index = char.character_index sx = (index % 4 * 3 + @pattern) * cw sy = (index / 4 * 4) * ch sprite.src_rect.set(sx, sy, cw, ch) } endend
  7. Nome Script: Lune Ultimate Anti-Lag Versione: N/D Autore/i: Raizen Informazioni: Lo script Anti-Lag ormai è un must have da inserire nei propri progetti. Infatti consente di migliorare le prestazioni nonostante i troppi eventi, script, etc... Istruzioni: Inserite lo script sotto Material e configuratelo se necessario... Script: #=======================================================# Lune Ultimate Anti-Lag# Author: Raizen# Compatible with: RMVXAce# Comunity: centrorpg.com# This script allows a very well balanced anti-lag, in which# considers the own PC of the player, using a smart frame-skipper# to slow lags,#========================================================#To update constantly the event, put a commentary on the first# command of the script written :update:module Anti_conf#==============================================================================# ** Configurations#------------------------------------------------------------------------------# Configure what is necessary for a better performance.#==============================================================================# Choose how the script will act.# <=====Quality============================Performance=====># 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20# Default = 10Fr = 10# Configure the FPS rate (default = 60)Fps = 60# Configure the minimum FPS rate (default = 25)Mini = 25# Quantity of frames the anti-lag will study,# the higher the time, the more precise the script,# but will take longer to load the anti-lagTime = 60end=beginFunctions on this Anti-Lag* Common event positioning bug fixed* Smart Frame Skipper* updates what is only necessary* helps to lower lags from visual system/scripts* Changes its behavior according to the players PC* Increases the RPG Maker priority over other programs=end#=================================================================##=================================================================##==================== Alias methods =============================## command_203 => Game_Interpreter# start => Scene_Map# update => Scene_Map# perform_transfer => Scene_Map#=================================================================##==================== Rewrite methods ===========================## update_events => Game_Map# update_one_event => Spriteset_Map#=================================================================##======================== New methods ===========================## need_to_update? => Game_Event# near_the_screen? => Sprite_Character# call_position_event => Scene_Map# skip_calculate => Scene_Map# update_one_event => Spriteset_Map#=================================================================##=================================================================##==============================================================================#============================ Início do Script! =============================#==============================================================================#==============================================================================# ** Scene_Map#------------------------------------------------------------------------------# Esta classe executa o processamento da tela de mapa.#==============================================================================class Scene_Map < Scene_Basealias lune_skip_start startalias lune_skip_update updatealias lune_perform perform_transfer #-------------------------------------------------------------------------- # * Inicialização do processo #-------------------------------------------------------------------------- def start Graphics.frame_rate = Anti_conf::Fps @update_skip = false @count_up = 0 lune_skip_start end #-------------------------------------------------------------------------- # * Execução da transferência #-------------------------------------------------------------------------- def perform_transfer $get_new_ids = Array.new Graphics.frame_rate = Anti_conf::Fps lune_perform @count_up = 0 @update_skip = false end #-------------------------------------------------------------------------- # * Atualização da tela #-------------------------------------------------------------------------- def update @update_skip ? lune_skip_update : skip_calculate end #-------------------------------------------------------------------------- # * Atualização de um personagem especifico #-------------------------------------------------------------------------- def call_position_event(id) @spriteset.update_one_event(id) end #-------------------------------------------------------------------------- # * Calcula o tempo necessário para rodar o update do Scene_Map #-------------------------------------------------------------------------- def skip_calculate @count_up += 1 return unless @count_up >= Anti_conf::Time auto_skip = Time.now lune_skip_update old_skip = Time.now get_skip = old_skip - auto_skip Graphics.frame_rate -= (get_skip * Graphics.frame_rate * 2 * Anti_conf::Fr - 1).to_i Graphics.frame_rate = [Graphics.frame_rate, Anti_conf::Mini].max @update_skip = true endend#==============================================================================# ** Scene_Base#------------------------------------------------------------------------------# Esta é a superclasse de todas as cenas do jogo.#==============================================================================class Scene_Basealias skipper_main main #-------------------------------------------------------------------------- # * Processamento principal #-------------------------------------------------------------------------- def main @fr_cont = 0 skipper_main end #-------------------------------------------------------------------------- # * Execução da transição #-------------------------------------------------------------------------- def perform_transition Graphics.transition(transition_speed * Graphics.frame_rate / 60) end #-------------------------------------------------------------------------- # * Atualização da tela (básico) #-------------------------------------------------------------------------- def update_basic if @fr_cont >= 60 Graphics.update @fr_cont -= 60 end @fr_cont += Graphics.frame_rate update_all_windows Input.update endend#==============================================================================# ** Aumento da prioridade do rpg maker#------------------------------------------------------------------------------Lune_high = Win32API.new("kernel32", "SetPriorityClass", "pi", "i")Lune_high.call(-1, 0x90)#==============================================================================#==============================================================================# ** Game_Event#------------------------------------------------------------------------------# Esta classe gerencia os eventos. Ela controla funções incluindo a mudança# de páginas de event por condições determinadas, e processos paralelos.# Esta classe é usada internamente pela classe Game_Map.#==============================================================================class Game_Event < Game_Character #-------------------------------------------------------------------------- # * necessário atualizar? #-------------------------------------------------------------------------- def need_to_update? ax = $game_map.adjust_x(@real_<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> - 8 ay = $game_map.adjust_y(@real_y) - 6 ax.between?(-9, 9) && ay.between?(-7, 7) || @list[0].parameters.include?(':update:') endend#==============================================================================# ** Sprite_Character#------------------------------------------------------------------------------# Este sprite é usado para mostrar personagens. Ele observa uma instância# da classe Game_Character e automaticamente muda as condições do sprite.#==============================================================================class Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # * Evento próximo a tela? #-------------------------------------------------------------------------- def near_the_screen? ax = $game_map.adjust_x(@character.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> - 8 ay = $game_map.adjust_y(@character.y) - 6 ax.between?(-11, 11) && ay.between?(-8, 8) endend#==============================================================================# ** Game_Event#------------------------------------------------------------------------------# Esta classe gerencia os eventos. Ela controla funções incluindo a mudança# de páginas de event por condições determinadas, e processos paralelos.# Esta classe é usada internamente pela classe Game_Map.#==============================================================================class Game_Event < Game_Characteralias lune_ant_initialize initialize #-------------------------------------------------------------------------- # * Inicialização do objeto # event : RPG::Event #-------------------------------------------------------------------------- def initialize(*args, &block) lune_ant_initialize(*args, &block) $get_new_ids.push(@event.id) endend#==============================================================================# ** Game_Interpreter#------------------------------------------------------------------------------# Um interpretador para executar os comandos de evento. Esta classe é usada# internamente pelas classes Game_Map, Game_Troop e Game_Event.#==============================================================================class Game_Interpreteralias lune_lag_command_203 command_203 #-------------------------------------------------------------------------- # Definir posição do evento #-------------------------------------------------------------------------- def command_203 lune_lag_command_203 SceneManager.scene.call_position_event($get_new_ids.index(@event_id)) endend#==============================================================================# ** Game_Map#------------------------------------------------------------------------------# Esta classe gerencia o mapa. Inclui funções de rolagem e definição de# passagens. A instância desta classe é referenciada por $game_map.#==============================================================================class Game_Map #-------------------------------------------------------------------------- # * Atualização dos comandos dos eventos #-------------------------------------------------------------------------- def update_events @events.each_value {|event| event.update if event.need_to_update?} @common_events.each {|event| event.update} endend$get_new_ids = Array.new#==============================================================================# ** Spriteset_Map#------------------------------------------------------------------------------# Esta classe reune os sprites da tela de mapa e tilesets. Esta classe é# usada internamente pela classe Scene_Map.#==============================================================================class Spriteset_Map #-------------------------------------------------------------------------- # * Atualização dos personagens #-------------------------------------------------------------------------- def update_characters refresh_characters if @map_id != $game_map.map_id @character_sprites.each {|sprite| sprite.update if sprite.near_the_screen? } end #-------------------------------------------------------------------------- # * Atualização de algum personagem remoto #-------------------------------------------------------------------------- def update_one_event(id) @character_sprites[id].update endend
  8. Nome Script: Tankentai Sideview BS Versione: 1.00 Autore/i: Enu Informazioni: Bello il Tankentai per VX, vero? L'Autore (Enu) adesso lo stà sviluppando anche per VXA! Guardate il video per ulteriori info. Link blog originale: http://rpgex.sakura.ne.jp/home/ Screenshots: Istruzioni: Nella demo (jap) Script: v.demo (link pagina originale jap, versione più aggiornata) Demo:Qui [edit]Versione stabile rilasciata 25/04/2012[/edit]
  9. Nome Script: Shanghai Simple Script - Final Fantasy 13 Menu (conversione non ufficiale) Versione: 1.2 VX Ace Autore/i: Shanghai, mikb89 Informazioni: Questo script nasce da una richiesta di , fatta in questo topic. Postato sul topic apposta a grande richiesta (xD), vi lascio liberi di usarlo a patto che: creditiate anche MihaChan, in quanto se non l'avesse chiesto lei adesso lo script non ci sarebbe; lo personalizziate abbastanza, in modo da evitare che si generino menu tutti uguali (va a vostro vantaggio comunque ^^). Features: Questo script include: Main menu; Skill menu; Equip Menu; Status Menu Istruzioni: Creare nuove voci sopra Main ed inserire gli script. I seguenti file grafici vanno personalizzati e aggiunti in Graphics/System coi nomi indicati: I nomi possono comunque essere cambiati nello script, dove andrà configurata anche la grafica da usare per i vari eroi. Per lo Skill Menu, è necessario usare lo script JP Manager dello Yanfly Engine Ace. Per l'Equip Menu, è necessario usare lo script Equip Engine dello Yanfly Engine Ace. Gli script di Yanfly potrete trovarli qui una volta che il topic sarà sistemato, oppure con una rapida ricerca in rete. Oppure, scaricate una demo contenente già tutto questo, qui (1.91 MB).
  10. Nome Script: Permanent Switches & Variables Versione: 1.2 Autore/i: mikb89 Informazioni: Con questo script potrete far sì che i valori di determinate switch e variabili vengano memorizzati in modo da restare tali in nuova partita e caricamento. Utile per esempio se si vuole aggiungere un Nuovo gioco +, cambiando una switch appena finito il gioco, oppure un sistema di punteggio alto tramite variabile o magari per memorizzare delle opzioni. Features: Si possono utilizzare sia singoli elementi che range multipli rapidamente. È possibile scegliere un nominativo personalizzato per i dati. Istruzioni: Creare una nuova voce sopra Main ed inserire lo script. Nel caso di incompatibilità, provare a spostarla più in alto. Script Incompatibilità: N/A
  11. Nome Script: Custom Sell Price Versione: 1.0 Autore/i: mikb89 Informazioni: Con questo script potrete decidere un prezzo di vendita (quindi il guadagno del giocatore) personalizzato per ogni oggetto, arma e armatura del database. Features: Può essere abilitato e disabilitato con uno switch. I prezzi vanno impostati nei notebox scrivendo <prezzo vendita: n> Dove n è il prezzo voluto, e i : possono essere omessi. Istruzioni: Creare una nuova voce sopra Main ed inserire lo script. Nel caso di incompatibilità, provare a spostarla più in alto. Script Incompatibilità: N/A
  12. Nome Script: Advanced Direction Fix Versione: 1.1 Autore/i: mikb89 Informazioni: Con questo script potrete utilizzare la direzione fissa con le sole direzioni stabilite. Cioè potrete ad esempio dire al pg che non deve mai far vedere la grafica destra, e quando si girerà in quella direzione manterrà l'ultima visualizzata. La stessa cosa varrà per i pg del caterpillar. Features: Via chiama script è possibile fissare on e off ogni singola direzione. I comandi possono essere inseriti anche in italiano. La funzione Direzione Fissa dagli eventi, varrà come un reset, se impostata off, e come un fix totale se impostata on. Istruzioni: Creare una nuova voce sopra Main ed inserire lo script. Nel caso di incompatibilità, provare a spostarla più in alto. Script Incompatibilità: N/A Note dell'autore: Ringrazio @LusianL per la richiesta.
  13. Nome Script: Limite Party Versione: 1.2 Autore/i: Ally, mikb89 Informazioni: Lo script dà la possibilità di impostare il limite del party, cosa non fattibile direttamente dal Tool. In più, è possibile inserire nel chiama script della Condizione SE la voce: [c]party_pieno?[/c] Per controllare se il gruppo ha raggiunto o no il limite stabilito. Istruzioni: Creare una nuova voce sopra Main ed inserire lo script. Nel caso di incompatibilità, provare a spostarla più in alto. Script Incompatibilità: N/A Note dell'autore: Ringraziamo per la richiesta.
  14. Nome Script: Limited Moves Versione: 1.1 Autore/i: mikb89 Informazioni: Con questo script potrete bloccare determinati movimenti del giocatore, per farlo muovere ad esempio soltanto su e giù o destra e sinistra. Oppure bloccarlo totalmente nel caso ad esempio di intermezzi. Features: Via chiama script è possibile abilitare o impedire ogni singola direzione. I comandi possono essere inseriti anche in italiano. Istruzioni: Creare una nuova voce sopra Main ed inserire lo script. Nel caso di incompatibilità, provare a spostarla più in alto. Script Incompatibilità: N/A
  15. Nome Script: ReMapped Keys Versione: 1.0 Autore/i: mikb89 Informazioni: Con questo script potrete riassegnare i tasti standard. Se ad esempio voleste usare Invio sia per interagire che per correre, basta rimappare il tasto Shift (:A) con quello di Invio (:C). Giusto un esempio. Lo script è comunque stato inizialmente creato per un cabinato che supportava solo determinati tasti: combinando questo script con uno di tastiera estesa è stato possibile far funzionare il gioco. Istruzioni: Creare una nuova voce sopra Main ed inserire lo script. Nel caso di incompatibilità, provare a spostarla più in alto. Script Incompatibilità: Ricordatevi di usare uno script per la tastiera estesa separato se le vostre intenzioni sono quelle di usare tasti non standard. Note dell'autore: Script creato per una richiesta di syntonia; Ringrazio per il suo script di tastiera estesa che ho usato come esempio.
  16. Nome Script: Ambient Sound 1.0 Versione: 1.0 Autore/i: mikb89 Informazioni: Con questo script puoi impostare gli eventi per riprodurre suoni se accanto al giocatore, variando volume, pitch, ecc. Puoi anche personalizzare gli effetti cambiando le caratteristiche audio, via codice. Per usare questo script bisogna configurare nello script gli effetti, quindi scriverne solo il nome in un commento nella pagina dell'evento voluto. Istruzioni: Copiare lo script normalmente sotto Modules e sopra Main, quindi configurare gli effetti voluti. Script: Visibile su Pastebin[/indent] Demo: Demo multilingua v. 1.0 (1,33MB) http://www.mediafire.com/?alkn9m7g22gb023
  17. Nome Script: Independent Player Actor Versione: 1.4 Autore/i: mikb89 Informazioni: Questo script nasce da una richiesta di , fatta in questo topic. Pensato per giochi tipo Pokémon, questo script consente di avere un 'leader' (visibile come primo personaggio nel caterpillar e come nome team in battaglia: "Il gruppo di X ha ottenuto punti exp...") che non è parte del gruppo vero e proprio. Features: L'unica impostazione presente nello script è il numero di una variabile. Cambiandone poi il valore potrete: disattivare lo script se questo è minore di 1; selezionare l'eroe leader dal database impostando la variabile al suo ID; attivare e disattivare lo script quindi semplicemente moltiplicando la variabile per -1. Istruzioni: Inserire lo script sotto Materials/Materiali/Modules/Moduli (a seconda della traduzione che avete) ma sopra Main. Script Demo: Demo multilingua v 1.4 Mediafire, zip di 1.32MB Incompatibilità: Se non aggiungete nessuno al party, anche se il leader è impostato, non potrete comunque accedere ai vari menu Oggetti, Skill, Equip, Status. Note dell'autore: per aver richiesto lo script; SowS per l'idea originale. Pareri in evidenza:
  18. Nome Script: MSX - Animation Player Versione: 1.0 Autore/i: Melosx Informazioni: Lo script permette di inserire un animazione tipo GIF partendo dai singoli fotogrammi. Features: E' possibile impostare: coordinate; numero di fotogrammi; tempo di attesa tra un fotogramma e l'altro. Istruzioni:Inserire lo script sotto Materials e sopra Main. Ulteriori istruzioni sono contenute nello script. Script Note dell'autore: N/A
  19. Nome Script: Visible Debug Versione: 1.2c Autore/i: mikb89 Informazioni: Capita che qualcosa vada storto fra switch e variabili. Non sai cosa succede, sai solo che non funziona come previsto. Qui entra in gioco questo script! Features: Con questo script puoi tenere sotto controllo una lista di parametri vari i cui cambiamenti saranno mostrati in tempo reale. Questa lista include: switch e variabili, switch locali degli eventi; grafica di eventi, giocatore, eroi, nemici; posizione e stato 'Come fantasma' di eventi e giocatore; id dei tile dove si trova il giocatore; numero di oggetti, armi, armature possedute; hp, mp, tp (se abilitato), atk, def, luk, agi, due stati dei combattenti; nomi & livello degli eroi (i nemici non li hanno); altre informazioni utili aggiunte dalle configurazioni (puoi vedere come sono fatte e aggiungerne di tue). Screenshots: Istruzioni: Inserite lo script sotto Materials. Le istruzioni sono fra i commenti. Script Demo: Demo multilingua v. 1.2c (1.33 MB) http://www.mediafire.com/?o5dqoberdpn9opa Incompatibilità: I salvataggi vengono modificati per contenere la lista di dati scelta. È possibile comunque caricare salvataggi precedenti, mentre per continuare ad usare quelli effettuati in presenza dello script, nel caso quest'ultimo venisse rimosso, è presente nella demo un piccolo codicino - per nulla invadente - da lasciare. Note dell'autore: Grazie a @Silver Element per avermi ispirato l'idea (: Grazie a @Melosx per avermi supportato con un fastidioso bug ^^
  20. Nome Script: Some Popup Versione: 2.8 Autore/i: mikb89 Informazioni: Con questo script potrete specificare del testo in un evento che verrà mostrato quando il giocatore si avvicina. Features: Sono disponibili diversi effetti di comparsa ed è possibile utilizzare picture anziché testo. Il testo può essere mostrato, oltre che sul giocatore, anche agganciato all'evento, per scomparire quando questo si allontana. È possibile riprodurre un suono SE, ME, BGM e BGS, sia generico che personalizzato per evento. Screenshots: Istruzioni: Inserite lo script sotto Materials. Le istruzioni sono fra i commenti. Script Demo: Demo multilingua v. 2.8 (1,35 MB)\nhttp://www.mediafire.com/?1q8pjd848mvd6n4 Incompatibilità: Sovrascrive lo script per la camminata in 8 direzioni. O viene sovrascritto, a seconda. Per ovviare, questo script è stato incorporato ed è attivabile/disattivabile tramite opzione. Note dell'autore: Ringrazio Unamuno per avere chiesto la versione per VX altrimenti non l'avrei postato né convertito e Guardian of Irael per avermi suggerito molti miglioramenti.
  21. Nome Script: MSX - Scene_Menu MOD Versione: 1.0 Autore/i: Melosx Informazioni: Modifica il menu. Riscrive lo stile delle barre non solo nel menù ma in tutto il gioco. Screenshots: Istruzioni: Nello script. Script:
  22. Nome Script: Audio Pump Up: FMOD Ex Versione: 1.4 Autore/i: Hiretsukan, Cowlol, mikb89 Informazioni: Porting per VX Ace dell'FMOD Ex Audio di Hiretsukan riscritto da Cowlol per Rpg Maker XP. Lo script originale consente di riprodurre audio di diversi formati tramite la libreria FMOD. Sfruttando questa, anche altre funzioni aggiuntive incluse nella libreria sono possibili. La feature 'innovativa' era quella di riprodurre audio partendo da una posizione determinata, cosa che però in VX Ace è già integrata. Quindi niente di particolare su questo campo. Il mio porting, oltre ad offrire una maggiore integrazione (ad esempio l'audio viene zittito se disattivato dai settaggi di F1) consente di sfruttare sia il sistema audio standard che il nuovo, cosa pensata per ragioni di compatibilità. Inoltre, cosa più importante, consente di avere canali audio multipli, virtualmente infiniti, che possono essere controllati anche senza usare codice. Una variabile indicherà il canale corrente. Tutti i suoni e le musiche utilizzeranno quello. Il canale 0 corrisponde al sistema standard, i canali dall'1 in poi utilizzano FMOD. Consiglio comunque di non esagerare coi canali, credo un 3, 4 bastino, nella maggior parte dei casi. Nell'audio FMOD si possono usare anche effetti chiamati DSP come eco, riverbero, tremolo, equalizzatori ecc. Istruzioni: Copiare lo script normalmente sotto Modules e sopra Main. È richiesta per funzionare la libreria FMOD, che altro non è che un file .dll da mettere dentro la cartella System dove sta l'RGSS30X.dll (non Graphics\System!!!). Per usarlo basta scegliere la variabile del canale dalle configurazioni e cambiare il suo valore. Eventuali funzioni aggiuntive (tipo FMod.bgm_set_loop_points(first, second)) possono essere sfruttate con dei Call script, ma attualmente non sono presenti funzioni così utili da meritare spiegazioni apposite. Ulteriori informazioni si trovano dentro la demo. Script: Visibile su Pastebin. Demo: Demo multilingua v. 1.4 con FMOD 0.4.40.5 inclusa (3.37MB) http://www.mediafire...mwqys4h1a2rh0c2 Libreria FMOD 0.4.18.3 (versione leggera, che non supporta tutte le funzioni): http://www.mediafire...nb17boudfmuwo3d Libreria FMOD 0.4.40.5 (ultima versione al momento del post): http://www.mediafire...ybuas9ervddetp2 Potete scaricare l'ultima versione della libreria (purtroppo assieme al developer kit) dal sito ufficiale di FMOD: http://www.fmod.org/[/indent] Note dell'Autore: Importante: FMOD ha la sua licenza, consultatela quindi sul sito ufficiale se dovete farci qualcosa di particolare. Lo script inoltre è originario di Hiretsukan e Cowlol, tenetelo in conto nei crediti e leggete la licenza, scritta da non so chi dei due, presente fra i commenti nello script (sempre nel caso abbiate qualche scopo particolare, tipo di lucro).
  23. Nome Script: MSX - Name Input Versione: 1.0 Autore/i: Melosx Features: Modifica la schermata di inserimento del nome eroe. Screenshots: Istruzioni: Copiare sotto materialse sopra main. Script:
  24. Nome Script: MSX - Window_SaveFile Versione: 1.0 Autore/i: Melosx Informazioni: Nuova finestra di salvataggio con più elementi. Consiglio l'utilizzo dello script Text Cache per una corretta resa delle stringhe di testo. Screenshots: Istruzioni: Copiare lo script Sopra Main e sotto Materials Script: #==============================================================================# ** MSX - Window_SaveFile II#==============================================================================# Author: Melosx# Versione: 1.0# Release Date: 27/03/2012# #==============================================================================# * Description# -----------------------------------------------------------------------------# This script change the Window_SaveFile by adding more information.# This release add: actor name, level, class, map name and gold.##==============================================================================# * Instruction# -----------------------------------------------------------------------------# Place the script under Materials and above Main.##==============================================================================#==============================================================================# ** DataManager#==============================================================================module DataManager def self.make_save_header header = {} header[:characters] = $game_party.characters_for_savefile header[:playtime_s] = $game_system.playtime_s header[:info] = $game_party.characters_info_for_savefile header endend#==============================================================================# ** Game_Party#==============================================================================class Game_Party < Game_Unit def characters_info_for_savefile battle_members.collect do |actor| map_name = load_data("Data/MapInfos.rvdata2")[$game_map.map_id].name [actor.name, actor.level, actor.class.name, $game_party.gold, map_name, actor.face_name, actor.face_index] end endend#==============================================================================# ** Window_SaveFile#==============================================================================class Window_SaveFile < Window_Base def refresh contents.clear self.contents.font.size = 16 change_color(normal_color) name = Vocab::File + " #{@file_index + 1}" draw_text(4, 0, 200, line_height, name) @name_width = text_size(name).width draw_playtime(0, contents.height - line_height, contents.width - 4, 2) draw_info draw_party_characters(150, 117) end def draw_party_characters(x, y) header = DataManager.load_header(@file_index) return unless header header[:characters].each_with_index do |data, i| draw_character(data[0], data[1], x + i * 115, y) end end def draw_playtime(x, y, width, align) header = DataManager.load_header(@file_index) return unless header draw_text(x, y, width, line_height, "Playtime: " + header[:playtime_s], 2) end def draw_info header = DataManager.load_header(@file_index) return unless header header[:info].each_with_index do |data, i| draw_face(data[5], data[6], 70 + i * 115, 23) draw_text(70 + i * 115, 3, 110, line_height, data[0], 0) draw_text(75 + i * 115, 38, 110, line_height, Vocab.level_a + " " + data[1].to_s, 0) draw_text(75 + i * 115, 23, 105, line_height, data[2], 0) draw_text(0, contents.height - line_height, contents.width - 4, line_height, "Map: " + data[4], 1) draw_text(4, contents.height - line_height, contents.width - 4, line_height, "Gold: " + data[3].to_s + Vocab::currency_unit, 0) end endend#==============================================================================# ** Scene_File#==============================================================================class Scene_File < Scene_MenuBase def visible_max return 2 endendend
  25. Nome Script: MSX - Window_Grid Versione: 1.0 Autore/i: Melosx Informazioni: Se passate più tempo a sistemare le coordinate che a scrivere il codice degli elementi delle vostre window quest script fa per voi. Screenshots: Istruzioni: Inseritelo sopra Main e sotto Materials. Dovete chiamare la window nella Scene in cui vi serve e impostare le coordinate... La griglia si sistemera da sola in larghezza e lunghezza... Script: #==============================================================================# ** [scripter's Tool] MSX - Window_Grid v1.0#==============================================================================# Author: Melosx# Release Date: 10/04/2012 => v1.0##==============================================================================# * Instructions# -----------------------------------# Place the script under Material and above Main.# You need to call this script in the Scene like a normal window.# For example to call in Scene_Map use this code:## class Scene_Map < Scene_Base# # alias msx_start start# def start# msx_start# create_grid# end# # def create_grid# @grid_window = Window_Grid.new# end# # end##==============================================================================# * Description# -----------------------------------# The script generate a grid that help you to place the elements on your window# like text or image.##==============================================================================class Window_Grid < Window_Base#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|CONFIGURATION|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# GRID_SIZE = 20 LINE_COLOR = Color.new(255, 0, 0, 128) X = 160 Y = 0#=-=-=-=-=-=-=-=-=-=-=-=-=-=-==--=-=-|END|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# def initialize super(X, Y, Graphics.width - X, Graphics.height - Y) self.windowskin = nil draw_grid end def draw_grid contents.font.size = 12 contents.font.outline = false w = (Graphics.width - <img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt=':hihi' /> / GRID_SIZE for i in 0..w if i < w contents.fill_rect(0 + i * GRID_SIZE, 0, 1, Graphics.height, line_color) draw_text(0 + i * GRID_SIZE, -6, 15, 24, (i * GRID_SIZE).to_s, 0) else break end end h = (Graphics.height - Y) / GRID_SIZE for i in 0..h if i < h contents.fill_rect(0, 0 + i * GRID_SIZE, Graphics.width, 1, line_color) draw_text(0, 0 + i * GRID_SIZE - 6, 15, 24, (i * GRID_SIZE).to_s, 0) else break end end end def line_color color = LINE_COLOR color endend
×