Cerca nel Forum
Showing results for tags 'Interfacce'.
Trovato 52 risultati
-
Nome Script: Syvkal's Menu Bars VXAce Versione: 1.2 Autore/i: Syvkal Informazioni: Con questo script,potete avere le barre HP, MP etc,in stile diverso,come potete vedere dalle immagini ^^ Lo stesso script è anche presente per il VX... Screenshots: Istruzioni: Inserire lo script sotto Material. Altre istruzioni all'interno dello script. Script #==============================================================================# ** Syvkal's Menu Bars VXAce#------------------------------------------------------------------------------# by Syvkal# Version 1.2# 19-03-12#------------------------------------------------------------------------------# * Original available at:# www.rpgmakervxace.net & forums.rpgmakerweb.com# Please do not redistribute this script#------------------------------------------------------------------------------# * Terms of Use# Available for use in commercial games provided that I get a free copy # Email me: [email protected]# Please do not redistribute this script#==============================================================================## - INTRODUCTION -## This system implements a series of Plug 'N' Play Menu Bars/Gauges# The Bars (and some of the colour schemes) were inspired CogWheel,# but all coding was done by me##------------------------------------------------------------------------------## - USAGE -## This system will work as soon as you put it in the Script Editor# You can edit the script from the Configuration System## --- Custom Gauges -----------------------------------## I have designed the script so you can easily (with minimal scripting# knowledge) add you own custom gauges for any attribute you want## To draw a gauge use:# draw_syvkal_gauge(x, y, width, rate, color1, color2, slant)## rate : Percentage of your custom attribute max (full at 1.0)# color1 : left side gradient color# color2 : right side gradient color# style : gauge draw style (explained in the Configuration System)## --- Auto Generate Color ---------------------------## Additionally, I have added an extra function to make it easy to# create your own colours that change as the gauge decreases## To generate a custom colour use:# auto_color(color1, color2, r)## r : Percentage of your custom attribute max (full at 1.0)# color1 : Colour you want for when the gauge is full# color2 : Colour you want for when the gauge is nearly empty## This generates a SINGLE colour that changes with the gauge# Each gauge requires two colours so it has a gradient## --- Ring Bars -------------------------------------## Ring Bars have been removed for now, I didn't like how they looked# Testing has shown RGSS3 is more capable of the kind of ring bars I# wanted to make, but I want to perfect them first##============================================================================== #===================================================# # ** M I N O R C O N F I G U R A T I O N ** # #===================================================# #-------------------------------------------------------------------------- # * Parameter Gauge Max # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Minor addition allowing you to choose a max for the parameter gauges # Best set just above your actor's highest stat (to allow for buffs) # Excludes HP, MP, TP # (This does not affect your actor's stats, but simply makes the gauges # fill up quicker and look more appealing) #-------------------------------------------------------------------------- P_MAX = 400 # Parameter Gauge Max #-------------------------------------------------------------------------# # ** Full Configuration system further down ** # #-------------------------------------------------------------------------##==============================================================================# ** Window_Base#------------------------------------------------------------------------------# Replaces various 'Draw' functions to add each gauge.#==============================================================================class Window_Base < Window #===================================================# # ** C O N F I G U R A T I O N S Y S T E M ** # #===================================================# #-------------------------------------------------------------------------- # * Gauge Draw Styles # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Use different bracket types to 'draw' the style of each bar # Available bracket types: # ( ) < > | / \ # Simply mix and match for achieve your desired effect # # To use the default rectangular gauges, use | or simply leave blank # eg. '| |' or '' # Any invalid symbol will result in the default | as well # # - - W A R N I N G - - # # When using the following bracket: # \ # Ensure it is followed a space (eg. '| \ ') or itself (eg. '| \\') # If the rest of the text below turns purple, you've done it wrong #-------------------------------------------------------------------------- HPSTYLE = '| |' # Style of the HP Gauge MPSTYLE = '| |' # Style of the MP Gauge TPSTYLE = '/ /' # Style of the TP Gauge PARSTYLE = '( )' # Style of the Parameter Gauges #-------------------------------------------------------------------------- # * Additional Gauge Preferences # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simple adjustments to aesthetics # Advised to use SLANTDSIZE if you have used / or \ in multiple bars #-------------------------------------------------------------------------- THICKCURVED = false # Slightly thicken curved bars? SLANTDSIZE = true # Shorten slanted bars? #-------------------------------------------------------------------------- # * Gauge Border Colors # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Control the colours of the gauge borders #-------------------------------------------------------------------------- COLOR1 = Color.new(0, 0, 0, 192) # Outer Border COLOR2 = Color.new(255, 255, 192, 192) # Inner Border #-------------------------------------------------------------------------- # * Empty Cauge Filler Colors # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Control the colours of the empty gauge filler #-------------------------------------------------------------------------- COLOR3 = Color.new(0, 0, 0, 12) # Half of Inner Shading COLOR4 = Color.new(64, 0, 0, 92) # Half of Inner Shading #-------------------------------------------------------------------------- # * Paramater Gauge Colors # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Control the colours of various parameters such as ATK, DEF, etc. # (HP, MP, TP are in the 'Complex Configuration' section) #-------------------------------------------------------------------------- def param_gauge_color1(param_id) case param_id when 2 text_color(20) # ATK Gauge Color1 when 3 text_color(14) # DEF Gauge Color1 when 4 text_color(30) # MAT Gauge Color1 when 5 text_color(13) # MDF Gauge Color1 when 6 text_color(28) # AGI Gauge Color1 when 7 text_color(19) # LUK Gauge Color1 end end def param_gauge_color2(param_id) case param_id when 2 text_color(21) # ATK Gauge Color1 when 3 text_color(6) # DEF Gauge Color1 when 4 text_color(31) # MAT Gauge Color1 when 5 text_color(5) # MDF Gauge Color1 when 6 text_color(29) # AGI Gauge Color1 when 7 text_color(7) # LUK Gauge Color1 end end #===================================================# # ** C O M P L E X C O N F I G U R A T I O N ** # #===================================================# #-------------------------------------------------------------------------- # * HP Gauge Colors # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Control the colours of the HP gauge # (Edit only if you know what you're doing) #-------------------------------------------------------------------------- def hp_gauge_color1 # HP Guage Color1 return Color.new(80 - 24 * @rate, 80 * @rate, 14 * @rate, 192) end def hp_gauge_color2 # HP Guage Color2 return Color.new(240 - 72 * @rate, 240 * @rate, 62 * @rate, 192) end #-------------------------------------------------------------------------- # * MP Gauge Colors # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Control the colours of the MP gauge # (Edit only if you know what you're doing) #-------------------------------------------------------------------------- def mp_gauge_color1 # MP Guage Color1 return Color.new(14 * @rate, 80 - 24 * @rate, 80 * @rate, 192) end def mp_gauge_color2 # MP Guage Color2 return Color.new(62 * @rate, 240 - 72 * @rate, 240 * @rate, 192) end #-------------------------------------------------------------------------- # * TP Gauge Colors # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Control the colours of the TP gauge # (Edit only if you know what you're doing) #-------------------------------------------------------------------------- def tp_gauge_color1 # TP Gauge Color1 return auto_color(Color.new(192,0,0,192), Color.new(255,110,0,192)) end def tp_gauge_color2 # TP Gauge Color2 return auto_color(Color.new(255,165,0,192), Color.new(255,220,0,192)) end #===================================================# # ** E N D C O N F I G U R A T I O N ** # #===================================================# #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :rate # Rate for Colour calculations #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias draw_actor_param_original draw_actor_param alias initialize_original initialize #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x, y, width, height) @rate = 1.0 initialize_original(x, y, width, height) end #-------------------------------------------------------------------------- # * Draw HP #-------------------------------------------------------------------------- def draw_actor_hp(actor, x, y, width = 124) @rate = [actor.hp_rate, 1.0].min draw_syvkal_gauge(x, y, width, @rate, hp_gauge_color1, hp_gauge_color2, HPSTYLE) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::hp_a) draw_current_and_max_values(x, y, width, actor.hp, actor.mhp, hp_color(actor), normal_color) end #-------------------------------------------------------------------------- # * Draw MP #-------------------------------------------------------------------------- def draw_actor_mp(actor, x, y, width = 124) @rate = [actor.mp_rate, 1.0].min draw_syvkal_gauge(x, y, width, @rate, mp_gauge_color1, mp_gauge_color2, MPSTYLE) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::mp_a) draw_current_and_max_values(x, y, width, actor.mp, actor.mmp, mp_color(actor), normal_color) end #-------------------------------------------------------------------------- # * Draw TP #-------------------------------------------------------------------------- def draw_actor_tp(actor, x, y, width = 124) @rate = [actor.tp_rate, 1.0].min draw_syvkal_gauge(x, y, width, @rate, tp_gauge_color1, tp_gauge_color2, TPSTYLE) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::tp_a) change_color(tp_color(actor)) draw_text(x + width - 42, y, 42, line_height, actor.tp.to_i, 2) end #-------------------------------------------------------------------------- # * Draw Parameters # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # type : Type of parameters (0-3) #-------------------------------------------------------------------------- def draw_actor_param(actor, x, y, param_id, width = 156) draw_syvkal_gauge(x, y, width, actor.params_rate(param_id), param_gauge_color1(param_id), param_gauge_color2(param_id), PARSTYLE) draw_actor_param_original(actor, x, y, param_id) end #-------------------------------------------------------------------------- # * Auto Generate Color # color1 : initial color # color2 : ending color # r : rate (full at 1.0) 1 -> color1, 0 -> color2 #-------------------------------------------------------------------------- def auto_color(color1, color2, r = @rate) a_color = Color.new a_color.red = (1-r)*color2.red + r*color1.red a_color.green = (1-r)*color2.green + r*color1.green a_color.blue = (1-r)*color2.blue + r*color1.blue a_color.alpha = (1-r)*color2.alpha + r*color1.alpha return a_color end #-------------------------------------------------------------------------- # * Draw Syvkal Style Gauge # rate : Rate (full at 1.0) # color1 : Left side color # color2 : Right side color # style : gauge draw style #-------------------------------------------------------------------------- def draw_syvkal_gauge(x, y, width, rate, color1, color2, style = '') fill_w = (width * rate).to_i gauge_y = y + line_height - 8 h = 6 style.slice!(/\s*/); style = style.split(/\s*/) if style.empty? or (style[0] == '|' && style[1] == '|') contents.fill_rect(x-2, gauge_y-2, width+4, 10, COLOR1) contents.fill_rect(x-1, gauge_y-1, width+2, 8, COLOR2) contents.gradient_fill_rect(x, gauge_y, width, 6, COLOR3, COLOR4) contents.gradient_fill_rect(x, gauge_y, fill_w, 6, color1, color2) else adj1 = style_adj_string(style[0]); adj2 = style_adj_string(style[1], true) h += 4 for i in 0...h a1 = eval(adj1[0]); a2 = eval(adj2[0]) a3 = adj1[2]; a4 = adj2[4].nil? ? adj2[2] : adj2[4] contents.fill_rect(x-a3 +a1, gauge_y-2 + i, width+(a3+a4) - a1 - a2, 1, COLOR1) end h -= 2 for i in 0...h a1 = eval(adj1[0]); a2 = eval(adj2[0]) a3 = adj1[1]; a4 = adj2[3].nil? ? adj2[1] : adj2[3] contents.fill_rect(x-a3 +a1, gauge_y-1 + i, width+(a3+a4) - a1 - a2, 1, COLOR2) end h -= 2 for i in 0...h a1 = eval(adj1[0]); a2 = eval(adj2[0]) contents.gradient_fill_rect(x +a1, gauge_y +i, width - a1 - a2, 1, COLOR3, COLOR4) end for i in 0...h a1 = eval(adj1[0]); a2 = eval(adj2[0]) contents.gradient_fill_rect(x +a1, gauge_y +i, fill_w - a1 - a2, 1, color1, color2) end end end #-------------------------------------------------------------------------- # * Get Style Specific Adjustment Array # sym : edge style '(', ')', '<', '>', '|', '/' or '\' # edge : end of the gauge? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Returns an array containing the following: # * a formular string to be evaluated # * adjustments to x and width values for Outer and Inner Borders #-------------------------------------------------------------------------- def style_adj_string(sym, edge = false) case sym when '/' SLANTDSIZE ? [(edge ? 'i+2' : '(h+1) - i'), 3, 5] : [(edge ? 'i' : '(h-1) - i'), 3, 5] when '\\' SLANTDSIZE ? [(edge ? '(h+1) - i' : 'i+2'), 3, 5] : [(edge ? '(h-1) - i' : 'i'), 3, 5] when '<' [(edge ? '(h/2)-((h/2) - i).abs' : '((h/2) - i).abs'), 2, 3] when '>' [(edge ? '((h/2) - i).abs' : '(h/2)-((h/2) - i).abs'), 2, 3] when '(' [(edge ? '((h/2) * Math.sin(i * 1.0 * Math::PI / (h-1))).round.to_i' : '(h-6) - ((h/2) * Math.sin(i * 1.0 * Math::PI / (h-1))).round.to_i'), THICKCURVED ? 3 : 2, THICKCURVED ? 5 : 4, 3, 5] when ')' [(edge ? '(h-3) - ((h/2) * Math.sin(i * 1.0 * Math::PI / (h-1))).round.to_i' : '((h/2) * Math.sin(i * 1.0 * Math::PI / (h-1))).round.to_i'), 3, 5, THICKCURVED ? 3 : 2, THICKCURVED ? 5 : 4] else # eg. | or invalid sym ['0', 1, 2] end end #-------------------------------------------------------------------------- # * Draw Gauge #-------------------------------------------------------------------------- def draw_gauge(x, y, width, rate, color1, color2, style = '') r = [rate, 1.0].min draw_syvkal_gauge(x, y, width, r, color1, color2, style) endend#==============================================================================# ** Game_BattlerBase#------------------------------------------------------------------------------# Added specialised 'params_rate' function.#==============================================================================class Game_BattlerBase #-------------------------------------------------------------------------- # * Get Percentage of Paramaters #-------------------------------------------------------------------------- def params_rate(param_id) return [param(param_id).to_f / P_MAX, 1.0].min endend#==============================================================================# ** Script Import#============================================================================== $imported = {} if $imported == nil $imported["Syvkal's Menu Bars"] = true
-
Autore/i: Nicke Versione: 1.0a Informazioni: Questo Script permette di aggiungere o di creare delle missioni per il proprio gioco, aggiungendo EXP, Soldi, Armi oppure Oggetti come ricompensa Script: Core (Prima di installare lo Script, installate questo): http://niclas-thornqvist.se/rpg/scripts/ace/xs-core.txt Script: http://niclas-thornqvist.se/rpg/scripts/ace/xs-journal.txt Crediti: Creditate l'autore dello Script ovvero Nicke, lo script può essere usato anche per giochi commerciali
-
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:
-
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:
-
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
-
Nome Script: MSX - Windowskin 128 Color Versione: 1.0 Autore/i: Melosx Informazioni: Permette di inserire nella windowskin 128 quadratini colorati da usare nei vostri giochi al posto dei 32 di default... Volendo avrei potuto portare al massimo numero inseribile i colori ma non credo ci sia qualcuno che abbia intenzione di usare 2048 colori diversi nella windowskin... Istruzioni: Copiatelo, come ogni altro, sotto Materials e sopra Main. Usate la windowskin che ho postato come base... Le prima due righe di colori sono quelli standard... Nello script ci sono altre istruzioni... Windowskin: Script: #==============================================================================# ** Windowskin 128 Color v1.0#==============================================================================# Author: Melosx# Release Date: 10/04/2012 => v1.0#==============================================================================# * Instructions# -----------------------------------# Place the script under Material and above Main.##==============================================================================# * Description# -----------------------------------# With this script you can use a windowskin with 128 colors.# You can add new color code following the instruction in the Color Zone.##==============================================================================class Window_Base < Window #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|COLORS ZONE|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=### To add new color follow this template:## def COLOR_NAME; text_color(ID); end## ID is a number from 0 to 127 and it is the place of the color in the# windowskin.##----------------------------ADD HERE YOUR COLORS-----------------------------# def msx_color; text_color(32); end; # <- My favourite color ^.^ #=-=-=-=-=-=-=-=-=-=-=-=-=-=-==--=-=-|END|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# def text_color(n) windowskin.get_pixel(64 + (n % 16) * 4, 96 + (n / 16) * 4) end end
-
Nome Script: MSX - Bars Type Versione: 1.0 Autore/i: Melosx Informazioni: Aggiunge due tipi di barre per personalizare di più i vostri menu... Ho pensato a questo script giocando a Skyrim... Screenshots: Istruzioni: Nello script. Script: #=============================================================================# ** MSX - Bars Type#=============================================================================# Autore: Melosx# Versione: 1.0 => 13-1-2012##=============================================================================# * Istruzioni#-----------------------------------------------------------------------------# Aggiunge due nuovi tipi di barre. Questi nuovi tipi vanno settati inserendo 0, 1 o 2 nel codice# che disegna le barre. di default è settato 0 cioè il tipo di barra di default.##==============================================================================class Window_Base < Window def draw_gauge(x, y, width, rate, color1, color2, type = 0) case type when 0 fill_w = (width * rate).to_i gauge_y = y + line_height - 8 contents.fill_rect(x, gauge_y, width, 6, gauge_back_color) contents.gradient_fill_rect(x, gauge_y, fill_w, 6, color1, color2) when 1 fill_w = (width * rate).to_i gauge_y = y + line_height - 8 gr_x = x + (width - fill_w) / 2 contents.fill_rect(x, gauge_y, width, 6, gauge_back_color) contents.gradient_fill_rect(gr_x, gauge_y, fill_w, 6, color1, color2) when 2 fill_w = (width * rate).to_i gauge_y = y + line_height - 8 gr_x = x + (width - fill_w) contents.fill_rect(x, gauge_y, width, 6, gauge_back_color) contents.gradient_fill_rect(gr_x, gauge_y, fill_w, 6, color1, color2) end end def draw_actor_hp(actor, x, y, width = 124, type = 0) draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2, type = 1) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::hp_a) draw_current_and_max_values(x, y, width, actor.hp, actor.mhp, hp_color(actor), normal_color) end def draw_actor_mp(actor, x, y, width = 124, type = 0) draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2, type = 2) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::mp_a) draw_current_and_max_values(x, y, width, actor.mp, actor.mmp, mp_color(actor), normal_color) end def draw_actor_tp(actor, x, y, width = 124, type = 0) draw_gauge(x, y, width, actor.tp_rate, tp_gauge_color1, tp_gauge_color2, type) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::tp_a) change_color(tp_color(actor)) draw_text(x + width - 42, y, 42, line_height, actor.tp.to_i, 2) endend Demo:N/D Incompatibilità: Non ne ha, almeno credo... ho pensato a tutto...
-
Interfacce Colonne Multiple in Command Window
Ally ha aggiunto un topic in Scripts RPG Maker VX Ace (RGSS3)
Nome Script: Colonne Multiple in Command Window Versione: N/D Autore/i: bStefan Informazioni: Questo script aggiunge una nuova classe Window_HorizontalCommand. HorizontalCommand può mostrare più colonne una accanto all'altra (ad esempio nella selezione delle scelte). Inoltre, sia window_width che item_width vengono calcolati automaticamente quindi nulla viene tagliato. Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #========================================== # Multiple Cols Command Window #========================================== # by bStefan aka. regendo # requested by monstrumgod # : http://www.rpgmakervxace.net/index.php?/user/313-monstrumgod/ # please give credit if used #========================================== # C&P this as a new script above Main #========================================== #============================================================ # HOW TO USE #============================================================ # 1. make a new window class # class Window_Something < Window_HorizontalCommand # 2. add commands to Window_Something#make_command_list # add_command("Displayed_Name", :symbol, condition) # example: # add_command("Give Item", :give, $game_variables[0] > 5) # 3. make a scene use this window # @command_window = Window_Something.new # @command_window.set_handler(:give, method(:give_item)) # 4. define that method # def give_item # #code # end # 5. ??? # 6. Profit. #============================================================ module Regendo unless @scripts @scripts = Hash.new def self.contains?(key) @scripts[key] == true end end @scripts["Horizontal_Command"] = true module Horizontal_Command #============== # CONFIG #============== #spacing in pixels def self.spacing 32 end #padding in pixels def self.standard_padding 12 end #number of columns if no number is given upon calling intialize def self.standard_cols 2 end end end #============== # Script #============== class Window_HorizontalCommand < Window_Command def initialize(x = 0, y = 0, cols = standard_cols, width = "fitting") col_max(cols) @list = [] make_command_list width == "fitting" ? window_width(fitting_width) : window_width(width) clear_command_list super(x, y) end # the value is only so that window_width can be called without specifying # : width. Changing the standard value from 255 to something else, unless # : it's a method, will not actually change the result. def window_width(width = 255) @width ? @width : @width = width @width > Graphics.width ? @width = Graphics.width : @width end def col_max(cols = standard_cols) @cols ? @cols : @cols = cols end def visible_line_number row_max end def fitting_width (item_width + spacing) * col_max - spacing + standard_padding * 2 end def item_width bmp = Bitmap.new(1,1) length = [] @list.each do |index| length.push((bmp.text_size(index[:name])).width) end if @width if length.max > (@width - standard_padding * 2 + spacing) / col_max - spacing (@width - standard_padding * 2 + spacing) / col_max - spacing else length.max end else length.max end end def spacing Regendo::Horizontal_Command::spacing end def standard_padding Regendo::Horizontal_Command::standard_padding end def standard_cols Regendo::Horizontal_Command::standard_cols end end Incompatibilità: N/D -
Nome Script: KMS Cursor Animation Versione: N/D Autore/i: tomy, traduzione EN by Mr. Bubble Informazioni: Visualizza un cursore animato nelle finestre di selezione del menù. Istruzioni: Inserite lo script sotto Material e inserite questa immagine nella cartella Graphic/System: Script: #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ ◆ Animated Cursor - KMS_CursorAnimation ◆ VX Ace ◆ #_/ ◇ Last update : 2012/01/22 (TOMY@Kamesoft) ◇ #_/ ◇ Website: http://ytomy.sakura.ne.jp/ ◇ #_/ ◇ Translated by Mr. Bubble ◇ #_/---------------------------------------------------------------------------- #_/ Displays an animated cursor for menu selection windows. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # This script adds a cursor animation for selectable windows. The number # of frames a cursor animation graphic can have is unlimited as long as the # cursor graphic supports that many frames. #---------------------------------------------------------------------------- # Script Calls #---------------------------------------------------------------------------- # Script calls are used in "Script..." event commands located under Tab 3. # # show_cursor_animation # Shows the cursor animation if it is not visible already. # # hide_cursor_animation # Hides the cursor animation if it is visable. #---------------------------------------------------------------------------- # Conditional Branch Script Calls #---------------------------------------------------------------------------- # Conditional branch script calls are used in the "Script" box in Conditional # Branch event commands. # # cursor_animation_visible? # Returns true if the cursor is visble. Returns false if cursor is hidden #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #============================================================================== # ★ BEGIN Setting ★ #============================================================================== module KMS_CursorAnimation # * Default Cursor Visibility Setting # true : Show cursor animation by default (can be seen on title screen) # false : Hide cursor animation by default (only seen in a new/loaded game) DEFAULT_ANIMATION = true # * Cursor Animation File # Cursor graphics are placed in the "Graphics/System" folder in your project ANIMATION_FILE = "CursorAnimation" # * Cursor Frame Count # The number of frames in the cursor animation graphic. Cursor frame # counts are unlimited as long as the cursor graphic supports that # many frames. FRAME_COUNT = 12 # * Cursor Animation speed # Higher values make the cursor animation slower. ANIMATION_WAIT = 4 # * Cursor Opacity OPACITY = 224 # * Cursor Blending Type # 0 : Normal # 1 : Add # 2 : Sub BLEND_TYPE = 1 # * Cursor Base Position # 0 : Higher # 1 : Center # 2 : Lower BASE_POSITION = 0 # * Cursor Position Adjustment [x, y] POSITION_REV = [-4, 0] end #============================================================================== # ☆ END Setting ☆ #============================================================================== $kms_imported = {} if $kms_imported == nil $kms_imported["CursorAnimation"] = true # ***************************************************************************** #============================================================================== # □ KMS_Commands #============================================================================== module KMS_Commands module_function #-------------------------------------------------------------------------- # ○ カーソルアニメを表示 #-------------------------------------------------------------------------- def show_cursor_animation $game_system.cursor_animation_visible = true end #-------------------------------------------------------------------------- # ○ カーソルアニメを非表示 #-------------------------------------------------------------------------- def hide_cursor_animation $game_system.cursor_animation_visible = false end #-------------------------------------------------------------------------- # ○ カーソルアニメ表示状態の取得 #-------------------------------------------------------------------------- def cursor_animation_visible? return $game_system.cursor_animation_visible end end #============================================================================== # ■ Game_Interpreter #============================================================================== class Game_Interpreter # イベントコマンドから直接コマンドを叩けるようにする include KMS_Commands end #============================================================================== # ■ Window_Base #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # ○ クラス変数 #-------------------------------------------------------------------------- @@__cursor_animation = nil # カーソルアニメ #-------------------------------------------------------------------------- # ● オブジェクト初期化 # x : ウィンドウの X 座標 # y : ウィンドウの Y 座標 # width : ウィンドウの幅 # height : ウィンドウの高さ #-------------------------------------------------------------------------- alias initialize_KMS_CursorAnimation initialize def initialize(x, y, width, height) initialize_KMS_CursorAnimation(x, y, width, height) @@__cursor_animation.add_window(self) end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- unless method_defined?(:dispose_KMS_CursorAnimation) alias dispose_KMS_CursorAnimation dispose end def dispose @@__cursor_animation.remove_window(self) dispose_KMS_CursorAnimation end #-------------------------------------------------------------------------- # ○ カーソルアニメを生成 #-------------------------------------------------------------------------- def self.create_cursor_animation @@__cursor_animation = Cursor_Animation.new end #-------------------------------------------------------------------------- # ○ カーソルアニメを破棄 #-------------------------------------------------------------------------- def self.dispose_cursor_animation @@__cursor_animation.dispose end #-------------------------------------------------------------------------- # ○ カーソルアニメを表示 #-------------------------------------------------------------------------- def self.show_cursor_animation @@__cursor_animation.visible = true @@__cursor_animation.update end #-------------------------------------------------------------------------- # ○ カーソルアニメを隠す #-------------------------------------------------------------------------- def self.hide_cursor_animation @@__cursor_animation.visible = false @@__cursor_animation.update end #-------------------------------------------------------------------------- # ○ カーソルアニメを更新 #-------------------------------------------------------------------------- def self.update_cursor_animation @@__cursor_animation.update end end #============================================================================== # ■ Game_System #============================================================================== class Game_System #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_writer :cursor_animation_visible #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_KMS_CursorAnimation initialize def initialize initialize_KMS_CursorAnimation @cursor_animation_visible = KMS_CursorAnimation::DEFAULT_ANIMATION end #-------------------------------------------------------------------------- # ○ カーソルアニメ可否フラグを取得 #-------------------------------------------------------------------------- def cursor_animation_visible if @cursor_animation_visible.nil? @cursor_animation_visible = KMS_CursorAnimatin::DEFAULT_ANIMATION end return @cursor_animation_visible end end #============================================================================== # □ Sprite_CursorAnimation #------------------------------------------------------------------------------ # カーソルアニメーション用の処理を追加したスプライトのクラスです。 #============================================================================== class Sprite_CursorAnimation < Sprite #-------------------------------------------------------------------------- # ● オブジェクト初期化 # viewport : ビューポート #-------------------------------------------------------------------------- def initialize(viewport = nil) super(viewport) @duration = 0 @frame_count = 0 self.bitmap = Cache.system(KMS_CursorAnimation::ANIMATION_FILE) self.src_rect.width = bitmap.width / 8 self.src_rect.height = bitmap.height / ([KMS_CursorAnimation].max / 8 + 1) self.ox = src_rect.width / 2 self.oy = src_rect.height / 2 self.opacity = KMS_CursorAnimation::OPACITY self.blend_type = KMS_CursorAnimation::BLEND_TYPE end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super return unless visible @frame_count += 1 return if @frame_count % KMS_CursorAnimation::ANIMATION_WAIT != 0 @frame_count = 0 @duration -= 1 if @duration < 0 @duration = KMS_CursorAnimation::FRAME_COUNT - 1 end update_animation end #-------------------------------------------------------------------------- # ○ アニメーションを更新 #-------------------------------------------------------------------------- def update_animation self.src_rect.x = src_rect.width * (@duration % 8) self.src_rect.y = src_rect.height * (@duration / 8) end end #============================================================================== # □ Cursor_Animation #------------------------------------------------------------------------------ # カーソル周りのアニメーションを扱うクラスです。 #============================================================================== class Cursor_Animation #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :visible #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize reset end #-------------------------------------------------------------------------- # ○ 破棄 #-------------------------------------------------------------------------- def dispose @target_sprite.dispose @viewport.dispose end #-------------------------------------------------------------------------- # ○ リセット #-------------------------------------------------------------------------- def reset @visible = false @viewport = Viewport.new(0, 0, 640, 480) @windows = [] @target_sprite = Sprite_CursorAnimation.new(@viewport) @active_window = nil @viewport.visible = false @viewport.z = 30000 end #-------------------------------------------------------------------------- # ○ ウィンドウ追加 #-------------------------------------------------------------------------- def add_window(*window) @windows |= window.find_all { |w| w.is_a?(Window_Selectable) || w.is_a?(Window_SaveFile) } @windows.flatten! end #-------------------------------------------------------------------------- # ○ ウィンドウ削除 #-------------------------------------------------------------------------- def remove_window(*window) @windows -= window end #-------------------------------------------------------------------------- # ○ フレーム更新 #-------------------------------------------------------------------------- def update @viewport.update @target_sprite.update # 座標調整 dest_x, dest_y = get_cursor_pos if @target_sprite.x != dest_x if (dest_x - @target_sprite.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt=':sriden' />.abs < 4 @target_sprite.x = dest_x else dist = (dest_x - @target_sprite.<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt=':fache2' /> / 4 dist = (dist > 0 ? [dist, 4].max : [dist, -4].min) @target_sprite.x += dist end end if @target_sprite.y != dest_y if (dest_y - @target_sprite.y).abs < 4 @target_sprite.y = dest_y else dist = (dest_y - @target_sprite.y) / 4 dist = (dist > 0 ? [dist, 4].max : [dist, -4].min) @target_sprite.y += dist end end end #-------------------------------------------------------------------------- # ○ カーソル位置取得 # [x, y] の形で返す。 #-------------------------------------------------------------------------- def get_cursor_pos dx = dy = 0 # 可視状態のアクティブウィンドウを取得 unless window_active?(@active_window) @active_window = search_active_window end # アクティブウィンドウがなければ非表示 if @active_window.nil? || !KMS_Commands.cursor_animation_visible? @viewport.visible = false dx = Graphics.width / 2 dy = Graphics.height / 2 return [dx, dy] end @viewport.visible = @visible # カーソル位置を計算 rect = @active_window.cursor_rect dx = rect.x + 16 + KMS_CursorAnimation::POSITION_REV[0] dy = rect.y + 16 + KMS_CursorAnimation::POSITION_REV[1] vp = @active_window.viewport if vp != nil dx += vp.rect.x - vp.ox dy += vp.rect.y - vp.oy end dx += @active_window.x - @active_window.ox dy += @active_window.y - @active_window.oy case KMS_CursorAnimation::BASE_POSITION when 0 # 上 dy += @target_sprite.oy when 1 # 中央 dy += rect.height / 2 when 2 # 下 dy += rect.height - @target_sprite.oy end return [dx, dy] end #-------------------------------------------------------------------------- # ○ ウィンドウの可視・アクティブ状態判定 #-------------------------------------------------------------------------- def window_active?(window) return false if window.nil? return false if window.disposed? return false unless window.visible if window.is_a?(Window_Selectable) return window.active elsif window.is_a?(Window_SaveFile) return window.selected end return false end #-------------------------------------------------------------------------- # ○ アクティブウィンドウを探す #-------------------------------------------------------------------------- def search_active_window return @windows.find { |w| if !w.visible false elsif w.is_a?(Window_Selectable) w.active && w.index >= 0 elsif w.is_a?(Window_SaveFile) w.selected else false end } end end #============================================================================== # ■ Scene_Base #============================================================================== class Scene_Base #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias start_KMS_CursorAnimation start def start Window_Base.create_cursor_animation Window_Base.show_cursor_animation start_KMS_CursorAnimation end #-------------------------------------------------------------------------- # ● 終了前処理 #-------------------------------------------------------------------------- alias pre_terminate_KMS_CursorAnimation pre_terminate def pre_terminate Window_Base.dispose_cursor_animation pre_terminate_KMS_CursorAnimation end #-------------------------------------------------------------------------- # ● フレーム更新(基本) #-------------------------------------------------------------------------- alias update_basic_KMS_CursorAnimation update_basic def update_basic update_basic_KMS_CursorAnimation # カーソルアニメを更新 Window_Base.update_cursor_animation end end Incompatibilità: N/D Note dell'Autore: Termini e condizioni sul sito di tomy: http://ytomy.sakura.ne.jp/tkool/rpgtech/rules.html
-
Nome Script: Modifiche Opzioni Versione: N/D Autore/i: Jet Informazioni: Questo script consente di modificare alcune cose che non sono presenti nell'editor del Tool, come ad esempio il font, la dimensione delle finestre etc... Istruzioni: Inserite lo script sotto Material. Le istruzioni sono all'interno dello script. Script: #=============================================================================== # Miscellaneous Options # By Jet10985 (Jet) #=============================================================================== # This snippet will allow you to perform additional customization on some # of the "Finer Details" of your game, not available in the Editor. # This script has: 14 customization options. #=============================================================================== # Overwritten Methods: # None #------------------------------------------------------------------------------- # Aliased methods: # DataManager: make_filename, save_file_exists? # Game_System: japanese? #=============================================================================== module MiscellaneousOptions #============================================================================= # Font Options #============================================================================= #----------------------------------------------------------------------------- # This is what font the game will use by default # You may use a single font, or multiples in the form of an array # When using multiple fonts, the game will go through the array until # it finds a font the player has installed. #----------------------------------------------------------------------------- Font.default_name = ["Verdana", "Arial", "Courier New"] #----------------------------------------------------------------------------- # This is how big font is by default. #----------------------------------------------------------------------------- Font.default_size = 20 #----------------------------------------------------------------------------- # This determines if text is drawn in bold or not, by default. #----------------------------------------------------------------------------- Font.default_bold = false #----------------------------------------------------------------------------- # This determines if text is drawn in italic or not, by default. #----------------------------------------------------------------------------- Font.default_italic = false #----------------------------------------------------------------------------- # This determines if text is drawn with a shadow or not, by default. #----------------------------------------------------------------------------- Font.default_shadow = true #----------------------------------------------------------------------------- # This determines what color text if drawn in by default. #----------------------------------------------------------------------------- Font.default_color = Color.new(255, 255, 255) #----------------------------------------------------------------------------- # This determines if text is drawn with an outline #----------------------------------------------------------------------------- Font.default_outline = true #----------------------------------------------------------------------------- # This determines if what color text's outline will be drawn in #----------------------------------------------------------------------------- Font.default_out_color = Color.new(0, 0, 0, 128) #----------------------------------------------------------------------------- # Is the game in Japanese? #----------------------------------------------------------------------------- JAPANESE = false #============================================================================= # Windows Options #============================================================================= #----------------------------------------------------------------------------- # This determines if the Game's Process Priority will be heightened to "High" # at startup. This may, or may not, help some lag issues. #----------------------------------------------------------------------------- HIGH_PROCESS = true #----------------------------------------------------------------------------- # This determines if the Mouse Cursor should be hidden will inside the game. # This only applies if the mouse is inside the Game's window. #----------------------------------------------------------------------------- HIDE_MOUSE = true #----------------------------------------------------------------------------- # This determines if the window should be resizable. # By default, the game window is not resizable without script calls. # Note this does not increase the Game's graphic displaying abilities, # and will cause graphics stretching/shrinking. #----------------------------------------------------------------------------- ALLOW_RESIZING = false #============================================================================= # Game Options #============================================================================= #----------------------------------------------------------------------------- # This determines what size the game window should be. Max: 640x480 # Must be increments of 32 #----------------------------------------------------------------------------- Graphics.resize_screen(544, 416) #----------------------------------------------------------------------------- # This determines if Save Files will be saved into the AppData folder # in windows, instead of the directory of the game. # In Windows XP: C:Documents and SettingsUserNameApplication DataGAME_NAME # In Windows Vista/7: C:UsersUserNameAppDataRoamingGAME_NAME #----------------------------------------------------------------------------- SAVE_IN_APPDATA = true #----------------------------------------------------------------------------- # What is your game's name? This will only be used if you use SAVE_IN_APPDATA #----------------------------------------------------------------------------- GAME_NAME = "Jet Is Awesome" end #=============================================================================== # DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO. #=============================================================================== module MiscellaneousOptions def self.handle a = Win32API.new('kernel32', 'GetPrivateProfileString', 'pppplp', 'l') b = Win32API.new('user32', 'FindWindow', 'pp', 'i') a.call("Game", "Title", "", title = "\0" * 256, 256, ".//Game.ini") return b.call("RGSS Player", title.delete!("\0")) end end if MiscellaneousOptions::HIDE_MOUSE Win32API.new('user32', 'ShowCursor', 'i', 'i').call(0) end if MiscellaneousOptions::HIGH_PROCESS Win32API.new('kernel32','SetPriorityClass','pi','i').call(-1, 256) end if MiscellaneousOptions::ALLOW_RESIZING Win32API.new('user32', 'SetWindowLong', 'lll', 'l').call( MiscellaneousOptions.handle, -16, 0x10C70000|0x00080000) end if MiscellaneousOptions::SAVE_IN_APPDATA f = "#{ENV['APPDATA']}\#{MiscellaneousOptions::GAME_NAME}" Dir.mkdir(f) unless File.directory?(f) Dir.mkdir("#{f}\Saves") unless File.directory?("#{f}\Saves") end class << DataManager alias jet3849_save_file_exists save_file_exists? def save_file_exists?(*args, &block) if MiscellaneousOptions::SAVE_IN_APPDATA f = "#{ENV['APPDATA']}\#{MiscellaneousOptions::GAME_NAME}" Dir.entries("#{f}\Saves").size > 2 else jet3849_save_file_exists(*args, &block) end end alias jet2734_make_filename make_filename def make_filename(index) if MiscellaneousOptions::SAVE_IN_APPDATA f = "#{ENV['APPDATA']}\#{MiscellaneousOptions::GAME_NAME}" return "#{f}\Saves\#{sprintf("Save%02d.rvdata2", index + 1)}" else jet2734_make_filename(index) end end end class Game_System alias jet2734_japanese japanese? def japanese?(*args, &block) $data_system.japanese = MiscellaneousOptions::JAPANESE jet2734_japanese(*args, &block) end end
-
Nome Script: BGM/BGS nel Menù Versione: N/D Autore/i: JohnBolton Informazioni: Con questo script, si inserisce un BGM o un BGS nel Menù =) Istruzioni: Inserite lo script sotto Material. Istruzioni all'interno dello script. Script: #======================================================= # BGM e BGS no Menu # Autor: JohnBolton # Compatibilidade: RMVXAce # Exclusividade da comunidade : www.centrorpgmaker.com #------------------------------------------------------- # Toca BGM e BGS alternativas no menu, ao invés # de dar continuidade aos do mapa. #======================================================= #-------------------------------------------------------------------------- # * Instruções #-------------------------------------------------------------------------- =begin - Coloque este script entre "Scripts Adicionais" e o "Main" - Para alterar a BGM e a BGS que tocará no menu no meio do jogo, vá em chamar script e faça: - Para BGM: Boltenho::BGM = ["Nome do BGM", volume] - Para BSG: Boltenho::BGS = ["Nome do BGS", volume] =end module Boltenho #-------------------------------------------------------------------------- # * Configurações #-------------------------------------------------------------------------- #BGM que tocará ( Deve estar na pasta Audio/BGM/ ) / Volume da BGM BGM = ["Battle2", 80 ] #BGS que tocará ( Deve estar na pasta Audio/BGS/ ) / Volume da BGS BGS = ["Clock", 100 ] #-------------------------------------------------------------------------- # * Fim das Configurações #-------------------------------------------------------------------------- end class Game_System alias music_menu_bolton initialize unless $@ def initialize music_menu_bolton @saved_bgs = nil end def save_bgs @saved_bgs = RPG::BGS.last end def replay_bgs @saved_bgs.replay if @saved_bgs end end class Scene_Menu < Scene_MenuBase alias bolton_bgm_bgs_menu start unless $@ def start memorize Audio.bgm_play('Audio/BGM/' + Boltenho::BGM[0], Boltenho::BGM[1]) Audio.bgs_play('Audio/BGS/' + Boltenho::BGS[0], Boltenho::BGS[1]) bolton_bgm_bgs_menu end def memorize $game_system.save_bgm $game_system.save_bgs end def replay $game_system.replay_bgm $game_system.replay_bgs end alias john_bgm_bgs_menu_return_scene return_scene unless $@ def return_scene john_bgm_bgs_menu_return_scene RPG::BGM.stop RPG::BGS.stop replay end end
-
Nome Script: Finestra Tempo di Gioco Versione: N/D Autore/i: FlipelyFlip Informazioni: Semplice script che aggiunge la finestra con il tempo di gioco nel menù ^^ Istruzioni: Inserite lo script sotto Material. Script: # This Script adds a playtime window to the menu (: #============================================================================== # ** Window Time #------------------------------------------------------------------------------ # Display Game Time #============================================================================== class Window_PlayTime < Window_Base def initialize(x, y) super(x, y, 160, 60) self.contents.font.bold = true self.contents.font.size = 25 self.contents.font.color = normal_color refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear @total_sec = Graphics.frame_count / Graphics.frame_rate hour = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 ptime = sprintf("%02d:%02d:%02d", hour, min, sec) self.contents.draw_text(4, 0, contents.width - 8, contents.height - 4, "Playtime: " + ptime, 2) end def update super if Graphics.frame_count / Graphics.frame_rate != @total_sec refresh end end end class Scene_Menu < Scene_MenuBase #-------------------------------------------------------------------------- # ● start #-------------------------------------------------------------------------- alias flip_playtime_start start def start flip_playtime_start create_playtime_window end #-------------------------------------------------------------------------- # ● create Playtime Window #-------------------------------------------------------------------------- def create_playtime_window @playtime_window = Window_PlayTime.new(0, 308) end end Incompatibilità:N/D Note dell'Autore: Per un uso commerciale dello script, bisogna contattare l'Autore.
-
Nome Script: Window_MenuPlus Versione: 1.0 Autore/i: Melosx Informazioni: Aggiunge tempo di gioco, luogo e passi al menu. Screenshot: Istruzioni: Copiare sotto materials e sopra Main Script: #============================================================================= # ** Window_MenuPlus #============================================================================= # Autore: Melosx # Piattaforma: RGSS3 # Versione: 1.0 => 26-12-2011 #============================================================================= class Window_MenuPlus < Window_Base def initialize(x, y) super(x, y, 160, 176) refresh end def update super sec = (Graphics.frame_count / Graphics.frame_rate) % 60 if sec > @total_sec % 60 or sec == 0 refresh end end def refresh self.contents.clear @total_sec = Graphics.frame_count / Graphics.frame_rate ora = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 tempo = sprintf("%02d:%02d:%02d", ora, min, sec) self.contents.draw_text(0, 10, 130 ,56, tempo, 2) self.contents.draw_text(0, -10, 130, 56, "Tempo:", 0) self.contents.draw_text(0, 40, 130, 56, "Luogo:", 0) if $game_map.display_name.empty? self.contents.draw_text(0, 60, 130, 56, "-", 2) else self.contents.draw_text(0, 60, 130, 56, $game_map.display_name, 2) end self.contents.draw_text(0, 90, 130, 56, "Passi:", 0) self.contents.draw_text(0, 110, 130, 56, $game_party.steps.to_s, 2) end end #============================================================================ # ** Scene_Menu #============================================================================= class Scene_Menu < Scene_MenuBase alias msx_start start unless $@ def start msx_start @menu_plus = Window_MenuPlus.new(0, 192) end alias msx_terminate terminate unless $@ def terminate @menu_plus.dispose msx_terminate end alias msx_update update unless $@ def update @menu_plus.update msx_update end end
-
Nome Script: Bag Pockets V1.2 Versione: 1.2 Autore/i: SowS Informazioni: Come nel gioco dei pokemon, permette di catalogare gli oggetti posseduti. Screenshots: Istruzioni: Inserite lo script sotto Material. Altre istruzioni all'interno dello script. Script: #============================================================================== # Bag Pockets V1.2 # by SowS - 06/11/10 #------------------------------------------------------------------------------ # Instructions: # Put the script under Materials section of your script editor. # Put this tag in the notes field of all your items/weapons/armors. # <pocket n> where n is the pocket number # >>>>>>>>REMINDER: You need to put the tags in all of your items!<<<<<<<<< # It's possible to make an item be on multiple pockets, just put multiple tags # on that particular item. #============================================================================== module SOWS #---------------------------------------------------------------------------- # start of config #---------------------------------------------------------------------------- MAX_POCKETS = 7 # maximum number of pockets # these are the names of the pockets and their corresponding pocket numbers POCKETS = { # id => "Pocket Name" 1 => "Items", 2 => "Weapon", 3 => "Shield", 4 => "Headgear", 5 => "Armor", 6 => "Accessory", 7 => "Key Items" } # these are the pockets in the equip scene. They're based on your current # max number of equip types. EQUIP_POCKETS = { 1 => "Weapon", 2 => "Shield", 3 => "Headgear", 4 => "Armor", 5 => "Accessory" } # The message in the help window while Cancel/Remove is selected. CANCEL_HELP = "Return to the menu." # in Scene_Item REMOVE_HELP = "Remove current equipment." # in Scene_Equip #---------------------------------------------------------------------------- # end of config #---------------------------------------------------------------------------- def self.split_tags(obj, tag) obj.note.split(/[\r\n]+/).each { |notetag| case notetag when tag @result = $1.to_i end } return @result end end #============================================================================== # ** Window_Item #------------------------------------------------------------------------------ # This window displays a list of inventory items for the item screen, etc. #============================================================================== class Window_Item < Window_Selectable include SOWS #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :page #-------------------------------------------------------------------------- # * Object Initialization # x : window x-coordinate # y : window y-coordinate # width : window width # height : window height #-------------------------------------------------------------------------- def initialize(x, y, width, height) super(x, y, width, height) @column_max = 1 self.index = 0 self.page = 1 refresh end #-------------------------------------------------------------------------- # * Whether or not to include in item list # item : item #-------------------------------------------------------------------------- def include?(item) return false if item == nil return false if self.page != item.pocket if $game_temp.in_battle return false unless item.is_a?(RPG::Item) end return true end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh @data = [] for item in $game_party.items next unless include?(item) @data.push(item) if item.id == $game_party.last_item_id self.index = @data.size - 1 end end @data.push(nil) if include?(nil) @item_max = @data.size + 1 create_contents for i in 0...@item_max - 1 draw_item(i) end draw_cancel end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if Input.trigger?(Input::RIGHT) if self.page == MAX_POCKETS self.page = 1 else self.page += 1 end elsif Input.trigger?(Input::LEFT) if self.page == 1 self.page = MAX_POCKETS else self.page -= 1 end end end #-------------------------------------------------------------------------- # * Draw Cancel #-------------------------------------------------------------------------- def draw_cancel rect = item_rect(@item_max - 1) self.contents.clear_rect(rect) rect.width -= 4 self.contents.draw_text(rect, "Cancel") end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) item = @data[index] if item != nil number = $game_party.item_number(item) rect.width -= 4 draw_item_name(item, rect.x, rect.y) self.contents.draw_text(rect, sprintf("x%2d", number), 2) end end #-------------------------------------------------------------------------- # * Update Help Text #-------------------------------------------------------------------------- def update_help @help_window.set_text(item == nil ? CANCEL_HELP : item.description) end end #============================================================================== # ** Window_Pocket #------------------------------------------------------------------------------ # This window displays the current pocket name. #============================================================================== class Window_Pocket < Window_Base include SOWS #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :pocket #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(equip = false, x = 0, y = 0, width = 544 / 2, height = WLH + 32) super(x, y, width, height) self.pocket = 1 @equip = equip refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear if @equip self.contents.draw_text(0, 0, contents.width, WLH, EQUIP_POCKETS[self.pocket], 1) else self.contents.draw_text(0, 0, contents.width, WLH, POCKETS[self.pocket], 1) end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if Input.trigger?(Input::RIGHT) if self.pocket == MAX_POCKETS self.pocket = 1 else self.pocket += 1 end elsif Input.trigger?(Input::LEFT) if self.pocket == 1 self.pocket = MAX_POCKETS else self.pocket -= 1 end end end end #============================================================================== # ** Window_Help #------------------------------------------------------------------------------ # This window shows skill and item explanations along with actor status. #============================================================================== class Window_Help < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x = 0, y = 0, width = 544, height = WLH + 32) super(x, y, width, height) end end #============================================================================== # ** Window_EquipItem #------------------------------------------------------------------------------ # This window displays choices when opting to change equipment on the # equipment screen. #============================================================================== class Window_EquipItem < Window_Item include SOWS #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh @data = [] for item in $game_party.items next unless include?(item) @data.push(item) if item.id == $game_party.last_item_id self.index = @data.size - 1 end end @data.push(nil) if include?(nil) @item_max = @data.size create_contents for i in 0...@item_max draw_item(i) end end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) item = @data[index] if item != nil number = $game_party.item_number(item) rect.width -= 4 draw_item_name(item, rect.x, rect.y) self.contents.draw_text(rect, sprintf("x%2d", number), 2) else self.contents.draw_text(rect, "Remove") end end #-------------------------------------------------------------------------- # * Update Help Text #-------------------------------------------------------------------------- def update_help @help_window.set_text(item == nil ? REMOVE_HELP : item.description) end end #============================================================================== # ** Scene_Item #------------------------------------------------------------------------------ # This class performs the item screen processing. #============================================================================== class Scene_Item < Scene_Base #-------------------------------------------------------------------------- # * Method Aliasing #-------------------------------------------------------------------------- alias sows_pocket_update update unless $@ alias sows_pocket_terminate terminate unless $@ #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background @viewport = Viewport.new(0, 0, 544, 416) @help_window = Window_Help.new(0, 416 - 56) @help_window.viewport = @viewport @item_window = Window_Item.new(544 / 2, 0, 544 / 2, 360) @item_window.viewport = @viewport @item_window.help_window = @help_window @item_window.active = false @title_window = Window_Pocket.new @title_window.viewport = @viewport @target_window = Window_MenuStatus.new(0, 0) hide_target_window end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate sows_pocket_terminate @title_window.dispose end #-------------------------------------------------------------------------- # * Update Frame #-------------------------------------------------------------------------- def update sows_pocket_update @title_window.update @item_window.refresh if (Input.repeat?(Input::RIGHT) or Input.repeat?( Input::LEFT)) @title_window.refresh if (Input.repeat?(Input::RIGHT) or Input.repeat?( Input::LEFT)) end #-------------------------------------------------------------------------- # * Update Item Selection #-------------------------------------------------------------------------- def update_item_selection if Input.trigger?(Input:: Sound.play_cancel return_scene elsif Input.trigger?(Input::C) if @item_window.index == @item_window.item_max - 1 return_scene else @item = @item_window.item $game_party.last_item_id = @item.id if $game_party.item_can_use?(@item) Sound.play_decision determine_item else Sound.play_buzzer end end end end end #============================================================================== # ** Scene_Equip #------------------------------------------------------------------------------ # This class performs the equipment screen processing. #============================================================================== class Scene_Equip < Scene_Base #-------------------------------------------------------------------------- # * Method Aliasing #-------------------------------------------------------------------------- alias sows_pocket_terminate terminate unless $@ alias sows_pocket_update update unless $@ #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background @actor = $game_party.members[@actor_index] @help_window = Window_Help.new(0, 416 - 56) create_item_windows @equip_window = Window_Equip.new(208, 0, @actor) @equip_window.help_window = @help_window @equip_window.index = @equip_index @status_window = Window_EquipStatus.new(0, 0, @actor) @title_window = Window_Pocket.new(true, 0, 152) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate sows_pocket_terminate @title_window.dispose end #-------------------------------------------------------------------------- # * Update Frame #-------------------------------------------------------------------------- def update sows_pocket_update @title_window.update if @equip_window.active if Input.trigger?(Input::DOWN) if @title_window.pocket == EQUIP_TYPE_MAX @title_window.pocket = 1 else @title_window.pocket += 1 end @title_window.refresh elsif Input.trigger?(Input::UP) if @title_window.pocket == 1 @title_window.pocket = EQUIP_TYPE_MAX else @title_window.pocket -= 1 end @title_window.refresh end end end #-------------------------------------------------------------------------- # * Create Item Window #-------------------------------------------------------------------------- def create_item_windows @item_windows = [] for i in 0...EQUIP_TYPE_MAX @item_windows[i] = Window_EquipItem.new(544 / 2, 152, 544 / 2, 208, @actor, i) @item_windows[i].help_window = @help_window @item_windows[i].visible = (@equip_index == i) @item_windows[i].height = 208 @item_windows[i].active = false @item_windows[i].index = -1 end end #-------------------------------------------------------------------------- # * Update Status Window #-------------------------------------------------------------------------- def update_status_window if @equip_window.active @status_window.set_new_parameters(nil, nil, nil, nil) elsif @item_window.active if @item_window.index == @item_window.item_max - 1 @status_window.set_new_parameters(nil, nil, nil, nil) else temp_actor = @actor.clone temp_actor.change_equip(@equip_window.index, @item_window.item, true) new_atk = temp_actor.atk new_def = temp_actor.def new_spi = temp_actor.spi new_agi = temp_actor.agi @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi) end end @status_window.update end #-------------------------------------------------------------------------- # * Update Equip Region Selection #-------------------------------------------------------------------------- def update_equip_selection if Input.trigger?(Input:: Sound.play_cancel return_scene elsif Input.trigger?(Input::R) Sound.play_cursor next_actor elsif Input.trigger?(Input::L) Sound.play_cursor prev_actor elsif Input.trigger?(Input::C) if @actor.fix_equipment Sound.play_buzzer else Sound.play_decision @equip_window.active = false @item_window.active = true @item_window.index = 0 end end end #-------------------------------------------------------------------------- # * Update Item Selection #-------------------------------------------------------------------------- def update_item_selection if Input.trigger?(Input:: Sound.play_cancel @equip_window.active = true @item_window.active = false @item_window.index = -1 elsif Input.trigger?(Input::C) Sound.play_equip @actor.change_equip(@equip_window.index, @item_window.item) @equip_window.active = true @item_window.active = false @item_window.index = -1 @equip_window.refresh for item_window in @item_windows item_window.refresh end end end end #============================================================================== # ** Scene_Battle #------------------------------------------------------------------------------ # This class performs battle screen processing. #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # * Method Aliasing #-------------------------------------------------------------------------- alias sows_pocket_end_item_selection end_item_selection unless $@ alias sows_pocket_update_item_selection update_item_selection unless $@ #-------------------------------------------------------------------------- # * Start Item Selection #-------------------------------------------------------------------------- def start_item_selection @help_window = Window_Help.new(0, 416 - 128 - 56) @item_window = Window_Item.new(544 / 2, 0, 544 / 2, 232) @item_window.help_window = @help_window @actor_command_window.active = false @title_window = Window_Pocket.new end #-------------------------------------------------------------------------- # * End Item Selection #-------------------------------------------------------------------------- def end_item_selection sows_pocket_end_item_selection if @title_window != nil @title_window.dispose @title_window = nil end end #-------------------------------------------------------------------------- # * Update Item Selection #-------------------------------------------------------------------------- def update_item_selection sows_pocket_update_item_selection @title_window.update if @title_window != nil end end #============================================================================ # ** RPG #---------------------------------------------------------------------------- # A module containing RPGVX Data Structures. #============================================================================ module RPG #============================================================================ # ** Item #---------------------------------------------------------------------------- # Data class for items. #============================================================================ class Item < UsableItem def pocket str = SOWS.split_tags(self, /<(?:pocket)[ ]*(\d+)>/i) pocket = str.nil? ? 0 : str.to_i return pocket end end end #============================================================================ # ** RPG #---------------------------------------------------------------------------- # A module containing RPGVX Data Structures. #============================================================================ module RPG #============================================================================ # ** Weapon #---------------------------------------------------------------------------- # Data class for weapons. #============================================================================ class Weapon < BaseItem def pocket str = SOWS.split_tags(self, /<(?:pocket)[ ]*(\d+)>/i) pocket = str.nil? ? 0 : str.to_i return pocket end end end #============================================================================ # ** RPG #---------------------------------------------------------------------------- # A module containing RPGVX Data Structures. #============================================================================ module RPG #============================================================================ # ** Armor #---------------------------------------------------------------------------- # Data class for armors. #============================================================================ class Armor < BaseItem def pocket str = SOWS.split_tags(self, /<(?:pocket)[ ]*(\d+)>/i) pocket = str.nil? ? 0 : str.to_i return pocket end end end
-
Nome script: Scrolling Description Text Versione: Rgss2 Autore: BigEd781 Informazioni: Quante volte avete scritto le descrizioni degli oggetti e non c'era lo spazio necessario e quindi dovevate ridurre le parole all'osso?Ora con questo script il testo potrà scorrere e voi potrete scrivere quello che vorrete. Screenshots: N/A in fondo è solo un testo che scorre Istruzioni: Potrete cambiare le impostazioni di scorrimento cambiando queste righe di testo: @@SCROLL_DELAY = 3 # seconds@@SCROLL_SPEED = 1 # pixels / frame (60 frames / sec)@@SHOW_ICONS = true # display icons for items and skills? Script:[/b[ class Sprite def draw_icon(icon_index, x, y, enabled = true)bitmap = Cache.system("Iconset")rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)self.bitmap.blt(x, y, bitmap, rect, enabled ? 255 : 128) endendclass Window_Help < Window_Base @@SCROLL_DELAY = 2 # seconds @@SCROLL_SPEED = 1 # pixels / frame (60 frames / sec) @@SHOW_ICONS = true # display icons for items and skills? alias :scroll_init :initialize def initialize(*args)scroll_init(*args)@internal_frame_count = 0@text_is_long = false@icon_sprite = Sprite.new@icon_sprite.x = self.x + 16@icon_sprite.y = self.y + 16@icon_sprite.z = self.z + 1@icon_sprite.bitmap = Bitmap.new(32, 32)self.windowskin = get_altered_skin end def get_altered_skindefault = Cache.system('Window')window = Bitmap.new(default.width, default.height)window.blt(0, 0, default, default.rect)window.fill_rect(80, 16, 32, 32, Color.new(0,0,0,0))return window end def set_text(text, align = 0)unless (text == @text) && (align == @align) @internal_frame_count = 0 txt_width = self.contents.text_size(text).width @text_is_long = txt_width > (self.width - 32) self.contents.dispose w = @text_is_long ? (txt_width + self.width - 32) : self.width - 32 self.contents = Bitmap.new(w, self.height - 32) self.contents.clear self.ox = 0 self.contents.font.color = normal_color i = get_icon_index(text) unless i.nil?draw_sprite(i, 0, 0)self.contents.draw_text(32, 0, self.contents.width, WLH, text, align) else@icon_sprite.bitmap.clearself.contents.draw_text(4, 0, self.contents.width, WLH, text, align) end @text = text @align = alignend end def draw_sprite(icon_index, x, y)@icon_sprite.bitmap.clear# get the background image at 'rect'# so that text does not appear under the iconbitmap = Graphics.snap_to_bitmaprect = Rect.new(@icon_sprite.x, @icon_sprite.x,@icon_sprite.bitmap.width, @icon_sprite.bitmap.height)@icon_sprite.bitmap.blt(x, y, bitmap, rect)@icon_sprite.draw_icon(icon_index, x, y) end def get_icon_index(desc)return nil unless @@SHOW_ICONS$data_items.each do |item| return item.icon_index if !item.nil? && item.description == descend$data_weapons.each do |weapon| return weapon.icon_index if !weapon.nil? && weapon.description == descend$data_armors.each do |armor| return armor.icon_index if !armor.nil? && armor.description == descend$data_skills.each do |skill| return skill.icon_index if !skill.nil? && skill.description == descendreturn nil end def updatesuper@internal_frame_count += 1if ((@internal_frame_count > @@SCROLL_DELAY * 60) && @text_is_long) if self.ox >= (self.contents.width - self.width + 48) self.ox = 0@internal_frame_count = 0 else self.ox += @@SCROLL_SPEED endend end def disposesuper@icon_sprite.dispose endend
-
Nome Script: Scene Gestione + Scelte Versione: 1 Autore/i: NoxChibi Informazioni: Questo script permette di creare una finestra nella quale ci sono dei comandi e ognuno di questi comandi permetterà di gestire diversi ambiti del giocatore. Normalmente l'ho impostato per gestire EQUIP, SKILL, STATUS, ma è possibile modificarlo per gestire altri parametri. Istruzioni: 1 Aprite Scene menù 2 Riga 55,rimuovere contenuto S2 e cancellare righe 56,57 3 Sostituire contenuto S2 da Vocab::skill in "Gestisci eroe",e sostituire S5 e S6 con S3,S4 4 Riga 58 cancellare S5 e S6 5 Riga 89 sostituire "when 1,2,3" con "when 1" e sostituire "when 4" e "when 5" con "when 2" e "when 3" 6 Da 132 in poi sostituire tutti i "When"e contenuti con When 1 7 lo script che corrisponde a When1 è "$scene= Scene_Scelt3.new(@status_window.index)" Screenshots: http://www.youtube.com/watch?v=-Vz69oGx6NM Script: Script scelte class Scene_Scelt3 < Scene_Base #---------------------Script Scelte-------------------------# #Script creato da NoxChibi # #Questo script permette di creare una finestra # #nella quale ci sono dei comandi e ognuno di questi comandi # #permetterà di gestire diversi ambiti del giocatore # #normalmente l'ho impostato per gestire EQUIP,SKILL,STATUS, # #ma è possibile modificarlo per gestire altri parametri # #-----------------------------------------------------------# def initialize(menu_index = 0,actor_index = 0) @menu_index = menu_index @actor_index = actor_index end def start super create_menu_background create_command_window @actor = $game_party.members[@actor_index] @status_window = Window_MenuStatus.new(160, 0) if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end def terminate super dispose_menu_background @command_window.dispose @status_window.dispose end def update super update_menu_background @status_window.update @command_window.update if @command_window.active update_command_selection end end #-----------------------1Parte editabile-------------------------# #-------------------------Spiegazione----------------------------# #Qui stanno scritti i comandi che appariranno,già ce ne sono tre.# #Per aggiungere un comando bisogna seguire la scaletta:s1,s2,s3..# #dopo aver creato il comando bisogna scivere il nome, # #compreso dalle virgolette, o singole o doppie. # # #Nella stringa: # #@command_window = Window_Command.new(160 , [s1, s2, s3]), # #160 indica la larghezza della finestra, e i comandi [s1, s2, s3]# #va aggiunto come segue la scaletta:s1,s2,s3.. per farlo apparire# #nella finestra. # #----------------------------------------------------------------# def create_command_window s1 = "Equip" s2 = "Abi.tà/Magie" s3 = "Stato" @command_window = Window_Command.new(160 , [s1, s2, s3]) @command_window.y = 24 @command_window.index = @menu_index end def update_command_selection if Input.trigger?(Input:: Sound.play_cancel $scene = Scene_Scelta.new elsif Input.trigger?(Input::C) case @command_window.index #-----------------------2Parte editabile-------------------------# #-------------------------Spiegazione----------------------------# #Per ogni aggiunta ai comandi va inserito qui un when(conta da 0)# #per ogni comando corrisponde uno script: # #[equip=$scene = Scene_Equip.new(@status_window.index)] # #Ogni nuovo script deve essere seguito da (@status_window.index) # #se non si aggiunge lo script, a pressione del tasto non succede # #un emerita minchia # #----------------------------------------------------------------# when 0 $scene = Scene_Equip.new(@status_window.index) when 1 $scene = Scene_Skill.new(@status_window.index) when 2 $scene = Scene_Status.new(@status_window.index) end end end end Script gestione class Scene_Scelta < Scene_Base def start super create_menu_background @status_window = Window_MenuStatus.new(160, 0) start_actor_selection end def terminate super dispose_menu_background @status_window.dispose end def update super update_menu_background @status_window.update update_actor_selection end end def start_actor_selection @status_window.active = true if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end def end_actor_selection @status_window.active = false @status_window.index = -1 end def update_actor_selection if Input.trigger?(Input:: Sound.play_cancel end_actor_selection $scene = Scene_Menu.new(2) elsif Input.trigger?(Input::C) $game_party.last_actor_index = @status_window.index Sound.play_decision $scene = Scene_Scelt3.new end end Script menù già modificato #============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # Questa classe si occupa dei processi del Menu #============================================================================== class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Inizializzazione oggetto # menu_index : posizione iniziale del cursore nel menu #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # * Inizio #-------------------------------------------------------------------------- def start super create_menu_background create_command_window @gold_window = Window_Gold.new(0, 360) @status_window = Window_MenuStatus.new(160, 0) end #-------------------------------------------------------------------------- # * Processo di chiusura #-------------------------------------------------------------------------- def terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @status_window.dispose end #-------------------------------------------------------------------------- # * Aggiorna Frame #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @gold_window.update @status_window.update if @command_window.active update_command_selection elsif @status_window.active update_actor_selection end end #-------------------------------------------------------------------------- # * Crea la finestra dei comandi #-------------------------------------------------------------------------- def create_command_window s1 = Vocab::item s2 = "gestisci" s3 = Vocab::save s4 = Vocab::game_end @command_window = Window_Command.new(160, [s1, s2, s3, s4]) @command_window.index = @menu_index if $game_party.members.size == 0 # se non ci sono giocatori in party @command_window.draw_item(0, false) # Disabilita oggetti @command_window.draw_item(1, false) # Disabilita poteri @command_window.draw_item(2, false) # Disabilita equipaggiamenti @command_window.draw_item(3, false) # Disabilita stato end if $game_system.save_disabled # Se il salvataggio è disattivato @command_window.draw_item(4, false) # Disabilita salvataggio end end #-------------------------------------------------------------------------- # * Aggiorna la selezione dei comandi #-------------------------------------------------------------------------- def update_command_selection if Input.trigger?(Input:: Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) if $game_party.members.size == 0 and @command_window.index < 4 Sound.play_buzzer return elsif $game_system.save_disabled and @command_window.index == 4 Sound.play_buzzer return end Sound.play_decision case @command_window.index when 0 # Oggetti $scene = Scene_Item.new when 1 # Poteri, Equipaggiamento, Stato start_actor_selection when 2 # Salva $scene = Scene_File.new(true, false, false) when 3 # Esci dal Gioco $scene = Scene_End.new end end end #-------------------------------------------------------------------------- # * Inizia la selezione del Personaggio #-------------------------------------------------------------------------- def start_actor_selection @command_window.active = false @status_window.active = true if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end #-------------------------------------------------------------------------- # * Termina la selezione del Personaggio #-------------------------------------------------------------------------- def end_actor_selection @command_window.active = true @status_window.active = false @status_window.index = -1 end #-------------------------------------------------------------------------- # * Aggiorna la selezione del Personaggio #-------------------------------------------------------------------------- def update_actor_selection if Input.trigger?(Input:: Sound.play_cancel end_actor_selection elsif Input.trigger?(Input::C) $game_party.last_actor_index = @status_window.index Sound.play_decision case @command_window.index when 1 $scene= Scene_Scelt3.new(@status_window.index) end end end end Incompatibilità:Penso con script che modificano totalmente i menu. Sostituire i return scene degli script equip,menù,status,file.end con "$scene = Scene_Menu.new(2)" Note dell'autore: E il mio primo script siate clementi con me >.< Corretto guida
-
Nome Script: Menu Titolo Personalizzato Versione: 1.1 Autore/i: Holy87 Informazioni: Siete stufi della solita finestrella al titolo con solo Nuovo Gioco, Continua ed Esci? Certo, in giro ci sono un sacco di script che modificano il titolo, ma questo è davvero bello ed interessante, con tanto di animazioni e personalizzazioni! Per capire veramente com'è, vi consiglio di scaricare la Demo. Features: Questo script può: Aggiungere un collegamento a una pagina web Aggiungere un bottone che porta a una mappa 'extra' che verrà fatta da voi Totalmente compatibile con Updater System: puoi far apparire un popup che indica il bottone 'Aggiornamento' Potrete farvi la grafica che vorrete con un programma di grafica o utilizzare gli esempi della demo Potrete scegliere la velocità del cursore, l'altezza della barra... Screenshots: Istruzioni: Creare una nuova voce sopra Main e sotto Materials ed inserirci lo script. Le varie personalizzazioni sono da settare nello script. Script: #============================================================================== # * New Menu Title v1.1 # Creato da Holy 87 #------------------------------------------------------------------------------ # 31/08/2012 -> Aggiornato per compatibilità con la nuova versione dell'U.S. # Script migliorato e bug corretti (v1.1) # 20/02/2012 -> Script finito # 16/02/2012 -> Script iniziato #------------------------------------------------------------------------------ # Questo script crea una nuova variante del menu nella schermata del Titolo. # # * ISTRUZIONI * # Piazza lo scritp sotto Materials, prima del Main e dopo lo script Updater # System. Imposta le immagini che verranno usate come icone, lo script ne # adatterà automaticamente la posizione. # **COME USARE GLI EXTRA: Setta una coordinata d'inizio in una mappa fatta per # ospitare il gioco-extra, quindi quando vuoi renderli disponibili al giocatore, # non devi fare altro che scrivere "Ex_Options.unlock" nel Chiama Script, e come # per magia comparirà nella schermata iniziale il comando Extra. Puoi anche # settare un valore da poter usare in seguito, ad esempio scrivendo # "Ex_Options.unlock(numero)", dove numero è il valore da mantenere, così da # poter sbloccare vari extra per gradi. Per conoscere a quale valore sono # sbloccati gli extra, basta mettere nella condizione SE, Script: # # * COMPATIBILITA' * # Compatibile con la maggior parte degli script. Compatibile al 100% con # l'Updater System e News System. # Compatibile con lo script h87_Infos (prossimamente) # Compatibile con lo script Yanfly Engine 6 Iconset #============================================================================== module MT_Setup #============================================================================== # * CONFIGURAZIONE * # * Preferenze del Menu #============================================================================== #Attivare gli Extra? Extras = true #Inserisci l'ID Mappa e coordinate dello spawn quando si seleziona Extra Map_ID = 2 Map_X = 8 Map_Y = 7 #Aggiungere un collegamento ad un sito? SiteOpen = "http://www.rpgmkr.net" #scrivi nil se non lo vuoi #Imposta l'altezza del menu rispetto allo schermo AltezzaBarra = 190 #Imposta la distanza in pixel tra gli oggetti del Menu Distanza = 10 #============================================================================== # * Grafica degli Oggetti #============================================================================== OBJGRAPH = { 0 => "T_New", #Immagine del comando Nuovo Gioco 1 => "T_Load", #Immagine del comando Carica 2 => "T_Exit", #Immagine del comando Esci 3 => "T_Info", #Immagine del comando Informazioni 4 => "T_Extra", #Immagine del comando Extra 5 => "T_Web", #Immagine del comando Vai al Sito 6 => "T_Update", #Immagine del comando Aggiorna 7 => "" #Immagine del comando IconSet (di Yanfly) } # non rimuovere la parentesi! BALOONGRAPH = { 0 => "B_New", #Immagine del Fumetto Nuovo Gioco 1 => "B_Load", #Immagine del Fumetto Carica 2 => "B_Exit", #Immagine del Fumetto Esci 3 => "B_Info", #Immagine del Fumetto Info 4 => "B_Extra", #Immagine del Fumetto Extra 5 => "B_Web", #Immagine del Fumetto Vai al Sito 6 => "B_Update", #Immagine del Fumetto Aggiorna 7 => "" #Immagine del Fumetto IconSet(di Yanfly) } # non rimuovere la parentesi! #Immagine della barra di sfondo ai comandi. BARGRAPH = "SfondoBarraTitle" #Immagine di popup quando viene trovato un nuovo aggiornamento. #Setta solo se hai implementato lo script Updater System. Up_Popup = "PopUp" #============================================================================== # * Preferenze Grafiche #============================================================================== #Vuoi che la comparsa del menu dei comandi sia animata? Animazione = true #Setta la velocità di apparizione dei comandi (solo se Animazione = true). #0: Contemporaneamente, 1: Velocissimo, 2: Veloce... SPEEDANIM = 1 #Setta la velotità del cursore nello spostamento(NON METTERE 0) CursorSpeed = 3 #1: Istantaneo, 2: Velocissimo, 3: Veloce, 4:Lento... #Imposta la distanza da sinistra alla punta che avrà il fumetto. DDP = 27 #============================================================================== # * FINE DELLA CONFIGURAZIONE * # Non modificare oltre questa riga, se non sai cosa stai facendo! #=============================================================================? end $imported = {} if $imported == nil $imported["H87_MenuTitle"] = true module Ex_Options #-------------------------------------------------------------------------- # * Sblocca e da valore agli extra. #-------------------------------------------------------------------------- def self.unlock(x=1) unless File.exist?("x_state.rvdata") file = File.new("./x_state.rvdata", "a") file.write(<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> file.close else file = File.open("./x_state.rvdata", "w") file.write(<img src='http://rpgmkr.net/forum/public/style_emoticons/<#EMO_DIR#>/sourirex.gif' class='bbc_emoticon' alt='X)' /> file.close end end #-------------------------------------------------------------------------- # * Controlla se gli extra sono abilitati. #-------------------------------------------------------------------------- def self.check_extra @controllore = 0 if File.exist?("x_state.rvdata") File.open("x_state.rvdata","r") do |f| f.lineno = 1 @controllore = f.gets @controllore.to_i #@controllore = 0 if @controllore == nil end return true if @controllore.to_i >= 1 end return false end #-------------------------------------------------------------------------- # * Da come ritorno il valore della cifra memorizzata. #-------------------------------------------------------------------------- def self.state if File.exist?("x_state.rvdata") File.open("x_state.rvdata", "r") do |f| f.lineno = 1 @numero = f.gets return @numero.to_i end end end end #============================================================================== # * Classe Scene_Title #============================================================================== class Scene_Title < Scene_Base #-------------------------------------------------------------------------- # * Alias del metodo di Aggiornamento #-------------------------------------------------------------------------- alias h87_update update def update if Input.trigger?(Input::C) # Se si preme Invio pressione_invio end if Input.repeat?(Input::LEFT) #Se si preme Sinistra pressione_sinistra end if Input.repeat?(Input::RIGHT) #Se si preme Destra pressione_destra end #h87_update animazione_menu #Sequenza d'apertura del menu animazione_fumetto #sequenza di animazione del fumetto animazione_cursore @Baloon.opacity += 25 if @CommandsActive aggiorna_immagine if @agg_disp end #-------------------------------------------------------------------------- # * alias del metodo di chiusura #-------------------------------------------------------------------------- alias h87_terminate terminate def terminate elimina_menu h87_terminate delete_objects end #-------------------------------------------------------------------------- # * Inizializza le variabili #-------------------------------------------------------------------------- def inizializza_variabili @title_state = 0 #lo stato del titolo $Extra_Game = Ex_Options.check_extra @cursore = 0 @cursore = 1 if @continue_enabled @oggetti = [] #Cambia l'ordine di queste righe per cambiare l'ordine del menu. @oggetti.push(0) #Nuovo Gioco @oggetti.push(1) #Continua @oggetti.push(3) if $imported["h87_Infos"] #Informazioni @oggetti.push(4) if MT_Setup::Extras and $Extra_Game #Extra @oggetti.push(5) if MT_Setup::SiteOpen != nil #Sito @oggetti.push(6) if $imported["H87_Updater"] and @agg_disp #Aggiornamento @oggetti.push(2) #Esci @oggetti.push(7) if $TEST and $imported["Y6-Iconview"] #------------------------------------------------ @num_oggetti = @oggetti.size @CommandsActive = false #all'inizio non possono essere mossi comandi @colore=0 #serve per memorizzare il colore dell'oggetto selezionato end #-------------------------------------------------------------------------- # * Ridefinizione della creazione della finestra di comando #-------------------------------------------------------------------------- def create_command_window inizializza_variabili @sfondobarra = Sprite.new @sfondobarra.bitmap = Cache.system(MT_Setup::BARGRAPH) @sfondobarra.y = MT_Setup::AltezzaBarra @luce = Sprite.new @posix = MT_Setup::Distanza @selettore = [] for i in 0..@num_oggetti-1 #crea le immagini dei pulsanti @selettore[i] = Sprite.new @selettore[i].bitmap = Cache.system(MT_Setup::OBJGRAPH[@oggetti[i]]) @selettore[i].x = @posix @selettore[i].y = MT_Setup::AltezzaBarra + @sfondobarra.height/2 - @selettore[i].height/2 @posix += MT_Setup::Distanza + @selettore[i].width @upd_n = i if @oggetti[i] == 6 #memorizza la posizione dell'update end inizializza_fumetto # crea l'immagine del fumetto crea_immagine if $update_avaiable # crea il popup di aggiornamento if MT_Setup::Animazione #rende gli oggetti trasparenti se si anima @old_position = [] for i in [email protected] @old_position[i] = @selettore[i].y @selettore[i].y -= 21 @selettore[i].opacity = 0 @anim_counter = 0 end @timemax = MT_Setup::SPEEDANIM*@selettore.size end @CommandsActive = true unless MT_Setup::Animazione end #-------------------------------------------------------------------------- # * Crea l'immagine del fumetto di descrizione. #-------------------------------------------------------------------------- def inizializza_fumetto @Baloon = Sprite.new @Baloon.opacity = 0 aggiorna_cursore end #-------------------------------------------------------------------------- # * Anima i componenti del menu #-------------------------------------------------------------------------- def animazione_menu if MT_Setup::Animazione and @title_state == 0 for i in [email protected] if @anim_counter > @timemax*i @selettore[i].opacity += 10 @selettore[i].y += 4 if @selettore[i].y < @old_position[i] @selettore[i].y -= 1 if @selettore[i].y > @old_position[i] end end @anim_counter += 1 if @selettore[@selettore.size-1].opacity >= 255 @CommandsActive = true aggiorna_cursore @title_state = 1 end end if @title_state == 1 and MT_Setup::Animazione for i in [email protected] @selettore[i].y -= 1 if @selettore[i].y > @old_position[i] end end end #-------------------------------------------------------------------------- # * Esecuzione del comando Invio #-------------------------------------------------------------------------- def pressione_invio @comando = @oggetti[@cursore] case @comando when 0 command_new_game when 1 command_continue when 2 command_shutdown when 3 command_infos when 4 command_extras when 5 command_website when 6 vai_aggiornamento when 7 command_iconview end end #-------------------------------------------------------------------------- # * Esecuzione del tasto Sinistra #-------------------------------------------------------------------------- def pressione_sinistra if @CommandsActive Sound.play_cursor @cursore -= 1 @cursore = @num_oggetti-1 if @cursore < 0 aggiorna_cursore end end #-------------------------------------------------------------------------- # * Esecuzione del tasto Destra #-------------------------------------------------------------------------- def pressione_destra if @CommandsActive Sound.play_cursor @cursore += 1 @cursore = 0 if @cursore > @num_oggetti -1 aggiorna_cursore end end #-------------------------------------------------------------------------- # * Sequenza di aggiornamento del cursore #-------------------------------------------------------------------------- def aggiorna_cursore @Baloon.bitmap = Cache.system(MT_Setup::BALOONGRAPH[@oggetti[@cursore]]) @prossimaX = @selettore[@cursore].x + @selettore[@cursore].width/2-MT_Setup::DDP @prossimaY = @selettore[@cursore].y + @selettore[@cursore].height+10 @selettore[@cursore].y += 7 if MT_Setup::Animazione and @CommandsActive @Baloon.x = @prossimaX if @Baloon.x == 0 @Baloon.y = @prossimaY if @Baloon.x == 0 @colore = 0 @cursore_in_movimento = true end #-------------------------------------------------------------------------- # * Animazione dei movimenti del fumetto #-------------------------------------------------------------------------- def animazione_fumetto if @cursore_in_movimento @distanzaX = @[email protected] @distanzaY = @[email protected] @Baloon.x += @distanzaX/MT_Setup::CursorSpeed @Baloon.y += @distanzaY/MT_Setup::CursorSpeed end end #-------------------------------------------------------------------------- # * Illumina l'oggetto selezionato #-------------------------------------------------------------------------- def animazione_cursore @colore +=3 if @colore < 60 for i in [email protected] if i == 1 and @continue_enabled == false grigio = 255 else grigio = 0 end if $imported["H87_Updater"] if Updater.forzato? and (i == 0 or i == 1) grigio = 255 end end if i == @cursore @selettore[i].tone.set(@colore,@colore,@colore,grigio) else @selettore[i].tone.set(0,0,0,grigio) end end end #-------------------------------------------------------------------------- # * Provvede alla cancellazione degli oggetti di gioco #-------------------------------------------------------------------------- def delete_objects for i in [email protected] @selettore[i].dispose end @Baloon.dispose @sfondobarra.dispose end #-------------------------------------------------------------------------- # * Apre la pagina web #-------------------------------------------------------------------------- def command_website Sound.play_decision string = "explorer " + MT_Setup::SiteOpen Thread.new{system(string)} end #-------------------------------------------------------------------------- # * Porta alla mappa extra #-------------------------------------------------------------------------- def command_extras elimina_menu Sound.play_decision $game_map.setup(MT_Setup::Map_ID) $game_player.moveto(MT_Setup::Map_X, MT_Setup::Map_Y) $game_player.refresh $scene = Scene_Map.new RPG::BGM.fade(1500) close_command_window Graphics.fadeout(60) Graphics.wait(40) Graphics.frame_count = 0 RPG::BGM.stop $game_map.autoplay end #-------------------------------------------------------------------------- # * Crea il popup di aggiornamento #-------------------------------------------------------------------------- def crea_immagine @imm_popup = Sprite.new @imm_popup.bitmap = Cache.system(MT_Setup::Up_Popup) @imm_popup.x = @selettore[@upd_n].x + @selettore[@upd_n].width/2 - @imm_popup.width/2 @imm_popup.y = @selettore[@upd_n].y-5-@imm_popup.height @imm_popup.y += 14 if MT_Setup::Animazione end #-------------------------------------------------------------------------- # * Nasconde il Menu per non mostrarlo in altre scene. #-------------------------------------------------------------------------- def elimina_menu @title_state = 2 for i in [email protected] @selettore[i].opacity = 0 end @imm_popup.opacity = 0 if @imm_popup != nil @Baloon.opacity = 0 @sfondobarra.opacity = 0 end #-------------------------------------------------------------------------- # * Metodo ridefinito #-------------------------------------------------------------------------- alias h87_newg command_new_game def command_newgame elimina_menu h87_newg end #-------------------------------------------------------------------------- # * Metodo ridefinito #-------------------------------------------------------------------------- alias h87_end command_shutdown def command_shutdown elimina_menu h87_end end def open_command_window end def close_command_window end def dispose_command_window end end Demo:Download (395 kb) Incompatibilità: Ovviamente non è compatibile con gli script che modificano pesantemente il titolo. E' compatibile al 100% con i suoi script "News System" e "Game Updater System" e compatibile con lo Y6 Icon Module. Gli script che modificano non totalmente il titolo potrebberero funzionare sotto questo script nell'Editor Script.
-
Nome Script: Sistema Libro Versione: N/D Autore/i: SojaBird Informazioni: Questo script simula l'effetto di un libro =P Istruzioni: All'interno della Demo. Per richiamare lo script utilizzate un call script: $scene = Scene_Book.new Demo: http://www.4shared.com/file/66930316/66d4bffd/Livro.html
-
Nome Script: Sistema Quest semplice Versione: 1.0b Autore/i: Niclas Informazioni: Semplice sistema quest da aggiungere al proprio gioco. Features: - Plug and play. - Aggiungi, rimuovi o fai una ricerca completa utilizzando un call script. - Ogni quest memorizza una variabile se è stata completata o meno. - Facile da aggiungere al menu in quanto utilizza una scena propria. - Supporta un'immagine di sfondo personalizzata. - e molto altro! Istruzioni: Inserite lo script sotto material. Altre istruzioni all'interno dello script. Script: #============================================================================== # Simple Journal # Author: Nicke # Created: 08/13/2011 # Edited: 08/16/2011 # Version: 1.0b #============================================================================== # Instructions # ----------------------------------------------------------------------------- # To install this script, open up your script editor and copy/paste this script # to an open slot below ▼ Materials but above ▼ Main. Remember to save. # ----------------------------------------------------------------------------- # # To open Simple Journal use: $scene = Scene_Simple_Journal.new <- In your menu. # # Use the call script function to add, remove or complete a quest. # Quick example: # add_quest(id,type) # # add_quest(1,:main) # add_quest(0,:side) # complete_quest(0,:side) # fail_quest(1,:main) # # Note: # In Main quests you should only add 1 quest each time as it is # designed that way. However, to make main quest act like side quest page # simply set SCROLL_MAIN_QUESTS to true. # Every quest stores a variable if it is being completed or failed which then # can be used as you want. # #============================================================================== ($imported ||= {})["NICKE-SIMPLE-JOURNAL"] = true module NICKE module JOURNAL_SYSTEM # -------------------------------------------------------------------------- # General settings. WIDTH = Graphics.width # Change the width of the journal window. HEIGHT = Graphics.height # Change the height of the journal window. FONT_TYPE = ["Rockwell", "Arial"] # Font type. TITLE = "Journal" # Journal title text. FOOTER = "Use Left/Right to change page." # Footer text. NO_ENTRIES = "No entries added..." # If no quest added show this text. COMPLETE_QUEST_VAR = 1 # Variable to store completed quests FAILED_QUEST_VAR = 2 # Variable to store failed quests. SCROLL_MAIN_QUESTS = false # Scroll at Main Quests too? # Note: If true, footer will be hidden. BUTTON_LEFT_PAGE = Input::LEFT # Button to change page to the left. BUTTON_RIGHT_PAGE = Input::RIGHT # Button to change page to the right. BACKGROUND_IMAGE_ACTIVE = true # Use a background image? BACKGROUND_IMAGE = "journal" # Background image file name. # -------------------------------------------------------------------------- # Color, size and shadow. T_FONT_SIZE = 26 # Title font size. T_FONT_COLOR = Color.new(223,255,80) # Title font color. T_FONT_SHADOW = true # Title font shadow. QUEST_HEADER_SIZE = 20 # Quest Header font size. QUEST_HEADER_COLOR = Color.new(135,206,250) # Quest Header font color. QUEST_HEADER_SHADOW = true # Quest Header font shadow. QUEST_DETAILS_SIZE = 16 # Quest Details font size. QUEST_DETAILS_COLOR = Color.new(245,245,245) # Quest Details font color. QUEST_DETAILS_SHADOW = true # Quest Details font shadow. H_FONT_SIZE = 20 # Header font size. H_FONT_COLOR = Color.new(223,255,80) # Header font color. H_FONT_SHADOW = true # Header font shadow. F_FONT_SIZE = 18 # Footer font size. F_FONT_COLOR = Color.new(223,255,80) # Footer font color. F_FONT_SHADOW = true # Footer font shadow. NO_E_FONT_SIZE = 18 # No entries font size. NO_E_FONT_COLOR = Color.new(235,235,160) # No entries font color. NO_E_FONT_SHADOW = true # No entries font shadow. # -------------------------------------------------------------------------- # MAIN QUESTS. # Main Quest[Index] = [Icon, "Title", "Details"] MAIN_Q_HEADER = "Main Quests" # Header text for Main quests. MAIN_QUESTS = [] # Don't touch it! MAIN_QUESTS[0] = [15, "The Terror in Townsil", "Travel to Townsil and talk to captain awesome."] MAIN_QUESTS[1] = [15, "The Terror in Townsil", "Search the town for clues."] MAIN_QUESTS[2] = [15, "The Terror in Townsil", "Go back to captain awesome and explain that the situation is crucial."] # -------------------------------------------------------------------------- # SIDE QUESTS. # SIDE Quest[Index] = [Icon, "Title", "Details"] SIDE_Q_HEADER = "Side Quests" # Header text for Side quests. SIDE_QUESTS = [] # Don't touch it! SIDE_QUESTS[0] = [12, 'Kill the Orcs.', 'Hunt down ten orcs and kill them.'] SIDE_QUESTS[1] = [75, 'Aid the doctor.', 'Help the doctor by finding the missing herbs.'] SIDE_QUESTS[2] = [138, 'Find the forgotten girl.', 'Locate the missing girl in the woods.'] SIDE_QUESTS[3] = [44, 'Armour Reparing.', 'Talk to the local blacksmith to get the armour fixed.'] SIDE_QUESTS[4] = [151, 'Special Delivery.', 'Take the box filled with unique materials to the mayor in town.'] SIDE_QUESTS[5] = [64, 'Brew a potion.', 'Gather the missing ingrediens for the health potion.'] SIDE_QUESTS[6] = [22, 'Solve the bandit problem.', 'Track down and get rid of the bandits that lurks within the deep forest.'] # -------------------------------------------------------------------------- end end # *** Don't edit below unless you know what you are doing. *** class Game_System attr_accessor :main_quests attr_accessor :side_quests attr_accessor :completed_quests attr_accessor :failed_quests alias nicke_quest_initialize initialize unless $@ def initialize(*args, &block) nicke_quest_initialize(*args, &block) @main_quests = [] @side_quests = [] @completed_quests = [] # Going to be used later on. @failed_quests = [] # Going to be used later on. end end class Game_Interpreter include NICKE::JOURNAL_SYSTEM def add_quest(id, type) # Method to add a quest. case type when :main # Main quests. unless $game_system.main_quests.include?(MAIN_QUESTS[id]) $game_system.main_quests.push(MAIN_QUESTS[id]) end unless MAIN_QUESTS[id].nil? when :side # Side quests. unless $game_system.side_quests.include?(SIDE_QUESTS[id]) $game_system.side_quests.push(SIDE_QUESTS[id]) end unless SIDE_QUESTS[id].nil? end end def complete_quest(id, type) # Method to complete a quest. case type when :main # Main quests. if $game_system.main_quests.include?(MAIN_QUESTS[id]) $game_system.main_quests.delete(MAIN_QUESTS[id]) $game_system.completed_quests.push(MAIN_QUESTS[id]) $game_variables[COMPLETE_QUEST_VAR] += 1 end when :side # Side quests. if $game_system.side_quests.include?(SIDE_QUESTS[id]) $game_system.side_quests.delete(SIDE_QUESTS[id]) $game_system.completed_quests.push(SIDE_QUESTS[id]) $game_variables[COMPLETE_QUEST_VAR] += 1 end end end def fail_quest(id, type) # Method for quest failed. case type when :main # Main quests. unless MAIN_QUESTS[id].nil? $game_system.main_quests.delete(MAIN_QUESTS[id]) $game_system.failed_quests.push(MAIN_QUESTS[id]) $game_variables[FAILED_QUEST_VAR] += 1 end when :side # Side quests. unless SIDE_QUESTS[id].nil? $game_system.side_quests.delete(SIDE_QUESTS[id]) $game_system.failed_quests.push(SIDE_QUESTS[id]) $game_variables[FAILED_QUEST_VAR] += 1 end end end end class Scene_Simple_Journal < Scene_Base include NICKE::JOURNAL_SYSTEM def start super() @journal_window = Window_Simple_Journal.new(true) if BACKGROUND_IMAGE_ACTIVE == true create_bg @journal_window.opacity = 0 end end def create_bg @bg = Sprite.new @bg.bitmap = Cache.picture(BACKGROUND_IMAGE) end def update super # Method for checking input triggers. if Input.trigger?(Input:: Sound.play_cancel $scene = Scene_Menu.new(0) elsif Input.trigger?(BUTTON_LEFT_PAGE) || Input.trigger?(BUTTON_RIGHT_PAGE) Sound.play_decision main = @journal_window.main @journal_window.dispose @journal_window = Window_Simple_Journal.new(!main) elsif Input.trigger?(Input::UP) y = @journal_window.oy @journal_window.oy = [y - 52, 0].max elsif Input.trigger?(Input::DOWN) return if @journal_window.contents.height < @journal_window.height y = @journal_window.oy @journal_window.oy = [y + 52, @journal_window.height - y + 16].min end @journal_window.opacity = 0 if BACKGROUND_IMAGE_ACTIVE == true end def terminate super @journal_window.dispose @bg.dispose end end class Window_Simple_Journal < Window_Base include NICKE::JOURNAL_SYSTEM attr_reader :main def initialize(main = true) super(0,0,WIDTH, HEIGHT) @main = main # This will allow scrolling if there are too many quests. if !@main self.contents = Bitmap.new(self.width - 32, HEIGHT - 56 + ($game_system.side_quests.size - 1) * WLH) else self.contents = Bitmap.new(self.width - 32, HEIGHT - 56 + ($game_system.main_quests.size - 1) * WLH) unless SCROLL_MAIN_QUESTS != true end refresh end def refresh self.contents.clear # Add Graphics. addGraphics # Add Quests. addQuests end def self_rect # Return the value of contents rect. return self.contents.rect end def draw_text(x, y, text, align) # Method for drawing the text. title = self_rect title.x = x title.y = y title.height = 28 self.contents.draw_text(title,text,align) end def draw_line(x, y) # Create two lines actually, one is acting like the shadow. line = self_rect line.height = 1 line.width -= 10 line.x = x line.y = y self.contents.fill_rect(line,normal_color) line.y += 1 color = Color.new(0,0,0,200) self.contents.fill_rect(line,color) end def addQuests if @main # Fill it with the current main quest data. quests = $game_system.main_quests else # Fill it with the current side quest data. quests = $game_system.side_quests end # If no main quests have been added. if quests.empty? contents.font.name = FONT_TYPE contents.font.size = NO_E_FONT_SIZE contents.font.color = NO_E_FONT_COLOR contents.font.shadow = NO_E_FONT_SHADOW draw_text(0, 160, NO_ENTRIES, 1) return end yoff = WLH * 2 quests.each_with_index { |q, i| draw_icon( q[0], 0, i * yoff + 84); # Font, size, color & shadow. contents.font.name = FONT_TYPE contents.font.size = QUEST_HEADER_SIZE contents.font.color = QUEST_HEADER_COLOR contents.font.shadow = QUEST_HEADER_SHADOW self.contents.draw_text(10, 68 + i * yoff, self.contents.width - 16, WLH, q[1], 1) contents.font.name = FONT_TYPE contents.font.size = QUEST_DETAILS_SIZE contents.font.color = QUEST_DETAILS_COLOR contents.font.shadow = QUEST_DETAILS_SHADOW self.contents.draw_text(27, 60 + (i * yoff)+WLH, self.contents.width - 16, WLH, q[2]) } end def addGraphics # Method for drawing the graphics and some headers. self.contents.font.name = FONT_TYPE self.contents.font.size = T_FONT_SIZE self.contents.font.color = T_FONT_COLOR self.contents.font.shadow = T_FONT_SHADOW draw_text(0, 0, TITLE, 1) if BACKGROUND_IMAGE_ACTIVE != true self.contents.font.name = FONT_TYPE self.contents.font.size = H_FONT_SIZE self.contents.font.color = H_FONT_COLOR self.contents.font.shadow = H_FONT_SHADOW if @main draw_text(0, 42, MAIN_Q_HEADER, 1) self.contents.font.name = FONT_TYPE self.contents.font.size = F_FONT_SIZE self.contents.font.color = F_FONT_COLOR self.contents.font.shadow = F_FONT_SHADOW draw_text(0,360, FOOTER, 1) unless SCROLL_MAIN_QUESTS == true draw_line(5,356) unless SCROLL_MAIN_QUESTS == true else draw_text(0, 42, SIDE_Q_HEADER, 1) end draw_line(5,36) if BACKGROUND_IMAGE_ACTIVE != true end end # END OF FILE #=*==========================================================================*=# # ** END OF FILE #=*==========================================================================*=#
-
Nome Script: Quest Journal Versione: 2.1 Autore/i: modern algebra Informazioni: Un semplice Quest System ^^ Istruzioni: Le istruzioni sono tutte all'interno della demo Demo: Quest System
-
Nome Script: Cambiare Windowskin Versione: 1.0 Autore/i: Woratana Informazioni: Con un semplice call script,potrete cambiare la vostra windowskin Istruzioni: Inserite lo script sotto a Material. Poi per cambiare la window,questo è il call script da inserire: $game_system.skin = 'Nome_WindowSkin'Assicuratevi di avere le altre window in 'Graphics/System'. Script: #=============================================================== # ● [VX Snippet] ◦ Change Windowskin ◦ □ #-------------------------------------------------------------- # ◦ by Woratana [[email protected]] # ◦ Released on: 10/03/2008 #-------------------------------------------------------------- # Note: Missing features from RM2K and RMXP =begin ●----●----●----●----● +[How to use]+ ●----●----●----●----● Call script: $game_system.skin = 'Windowskin File Name' (Window Skin file must be in folder 'Graphics/System') For Example >> $game_system.skin = 'Window' □=====□=====□=====□=====□=====□=====□=====□=====□=====□ =end #=============================================================== class Window_Base < Window alias wor_changeskin_winbase_ini initialize alias wor_changeskin_winbase_upd update # Change Window Skin when first call Window def initialize(x, y, width, height) wor_changeskin_winbase_ini(x, y, width, height) self.windowskin = Cache.system($game_system.skin) @winskin = $game_system.skin end # Change Window Skin if $game_system.skin is not same as its skin def update wor_changeskin_winbase_upd if @winskin != $game_system.skin self.windowskin = Cache.system($game_system.skin) @winskin = $game_system.skin end end end class Game_System attr_accessor :skin alias wor_changeskin_gamesys_ini initialize # Add variable $game_system.skin to store/change windowskin file name def initialize wor_changeskin_gamesys_ini @skin = 'Window' end end
-
Nome Script: Index di scelta memorizzato Versione: 1.00 Autore/i: kaisouryouiki Informazioni: Quando si accede al menù e si seleziona qualche comando, all'uscita e al rientro nel menù, questo riparte dalla posizione iniziale. Con questo script invece la selezione rimarrà memorizzata...spero di essermi spiegato xD Istruzioni: Basta inserire lo script sopra Main. Script: =begin ★コマンドインデックス記憶★ プレイヤーの以下の行動を記憶させることで、 次の行動以降の初期カーソル位置を変更し、同じ行動を取る際の補助とします。 ◆ 記憶する内容 ・メニュー:プレイヤーが最後に選択したコマンドのカーソル位置 ・戦闘 :各アクターが最後に選択したアクターコマンドのカーソル位置 ・戦闘 :各アクターが最後に選択したエネミー ※1 ・戦闘 :各アクターが最後に選択したアクター ※1 => 戦闘終了後リセットされます ● 仕様 ●========================================================== エネミーで記憶したインデックスは、 それぞれの対象が存在しなくなった場合(撃破後)にリセットされます。 -------------------------------------------------------------------- 各、記憶された情報はセーブデータにも保存され、ロード後にも引き継がれます。 ==================================================================== ● 注意 ●========================================================== ニューゲームから始めないとエラーを吐きます。 -------------------------------------------------------------------- 全てエイリアスで構成されてますので、素材の下の方に挿入してください。 ==================================================================== ver1.00 Last Update : 2009/08/19 8/19 : 新規 ろかん http://kaisouryouiki.web.fc2.com/ =end $rsi = {} if $rsi == nil $rsi["コマンドインデックス記憶"] = true class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :last_battle_index attr_accessor :last_enemy attr_accessor :last_actor #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias battle_index_initialize initialize unless $! def initialize(actor_id) battle_index_initialize(actor_id) @last_battle_index = 0 @last_enemy = nil @last_actor = nil end end class Game_Party < Game_Unit #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :last_menu_index attr_accessor :last_item #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias menu_index_initialize initialize unless $! def initialize menu_index_initialize @last_menu_index = 0 end end class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias last_menu_index_set initialize unless $! def initialize(menu_index = 0) last_menu_index_set(menu_index = 0) @menu_index = $game_party.last_menu_index end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias last_menu_index_memory terminate unless $! def terminate unless $scene.is_a?(Scene_Map) $game_party.last_menu_index = @command_window.index end last_menu_index_memory end #-------------------------------------------------------------------------- # ● アクター選択の開始 #-------------------------------------------------------------------------- alias last_menu_index_memory_dummy start_actor_selection unless $! def start_actor_selection $game_party.last_menu_index = @command_window.index last_menu_index_memory_dummy end end class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias enemy_index_reset terminate unless $! def terminate for i in $game_party.members do i.last_enemy = nil end enemy_index_reset end #-------------------------------------------------------------------------- # ● 次のアクターのコマンド入力へ #-------------------------------------------------------------------------- alias last_battle_index_memory next_actor unless $! def next_actor n = @actor_index + 1 if @actor_command_window.active && ! (@active_battler.action.kind == 0 && @active_battler.action.basic < 0) @active_battler.last_battle_index = @actor_command_window.index end unless $game_party.members.size == n @actor_command_window.index = $game_party.members[n].last_battle_index end last_battle_index_memory end #-------------------------------------------------------------------------- # ● アクターコマンド選択の開始 #-------------------------------------------------------------------------- alias last_battle_index_set start_actor_command_selection unless $! def start_actor_command_selection last_battle_index_set @actor_command_window.index = @active_battler.last_battle_index end #-------------------------------------------------------------------------- # ● 対象敵キャラ選択の開始 #-------------------------------------------------------------------------- alias last_enemy_index_set start_target_enemy_selection unless $! def start_target_enemy_selection last_enemy_index_set @active_battler.action.target_index = -1 unless @active_battler.last_enemy == nil if $game_troop.existing_members.include?(@active_battler.last_enemy) @target_enemy_window.index = $game_troop.existing_members.index(@active_battler.last_enemy) end end end #-------------------------------------------------------------------------- # ● 対象敵キャラ選択の終了 #-------------------------------------------------------------------------- alias last_enemy_index_memory end_target_enemy_selection unless $! def end_target_enemy_selection unless @active_battler.action.target_index == -1 @active_battler.last_enemy = @target_enemy_window.enemy end last_enemy_index_memory end #-------------------------------------------------------------------------- # ● 対象アクター対象選択の開始 #-------------------------------------------------------------------------- alias last_actor_index_set start_target_actor_selection unless $! def start_target_actor_selection last_actor_index_set @active_battler.action.target_index = -1 unless @active_battler.last_actor == nil if $game_party.members.include?(@active_battler.last_actor) @target_actor_window.index = $game_party.members.index(@active_battler.last_actor) end end end #-------------------------------------------------------------------------- # ● 対象アクター選択の終了 #-------------------------------------------------------------------------- alias last_actor_index_memory end_target_actor_selection unless $! def end_target_actor_selection unless @active_battler.action.target_index == -1 @active_battler.last_actor = $game_party.members[@target_actor_window.index] end last_actor_index_memory end end
-
Nome Script: Bordi nei face Versione: 1.5 Autore/i: Woratana Informazioni: Script che aggiunge un bordo attorno ai face automaticamente ^^ Istruzioni: Inserite lo script sopra Main. Altre istruzioni all'interno dello script. Script: #============================================================ # ● [VX] ◦ Quick Face Border ◦ #------------------------------------------------------------ # ◦ by Woratana [[email protected]] # ◦ Thaiware RPG Maker Community # ◦ Released Date: 23/02/2008 #------------------------------------------------------------ # Version 1.5 # - Edited Window_Message Bug # - You can use custom image for border #------------------------------------------------------------ class Window_Base < Window #------------------------------ # START SETUP SCRIPT #--------------------------- BORDER_MODE = 0 # Choose Border Mode (0: Use Windowskin, 1:Use Image) BORDER_SKIN = "Window" # Name of Window Skin for Border (Mode 0) BORDER_IMAGE = "borderpic" # Custom Image for Border (Mode 1) # Custom image must be in folder "Graphics/Pictures" and size 96 x 96 pixel BORDER_OPACITY = 255 # Face Border's Opacity (0 - 255) # (true/false) USE_BORDER_IN_MENU = true USE_BORDER_IN_MESSAGE = true USE_BORDER_IN_STATUS_WINDOW = true USE_BORDER_IN_NAME_WINDOW = true #------------------------------ # END SETUP SCRIPT #--------------------------- alias wor_facbor_winbas_ini initialize alias wor_facbor_winbas_dis dispose alias wor_facbor_winbas_draf draw_face def initialize(x, y, width, height) wor_facbor_winbas_ini(x, y, width, height) @border = Array.new end def dispose delete_border if @border != [] wor_facbor_winbas_dis end def draw_face(face_name, face_index, x, y, size = 96) if ($scene.is_a?(Scene_Menu) and USE_BORDER_IN_MENU) or ($scene.is_a?(Scene_Map) and USE_BORDER_IN_MESSAGE) or ($scene.is_a?(Scene_Status) and USE_BORDER_IN_STATUS_WINDOW) or ($scene.is_a?(Scene_Name) and USE_BORDER_IN_NAME_WINDOW) if BORDER_MODE == 0 @border.push Window_Border.new(self.x + x + 16,self.y + y + 16,96,96) elsif BORDER_MODE == 1 id = @border.size @border[id] = Sprite.new @border[id].bitmap = Cache.picture(BORDER_IMAGE) @border[id].x = self.x + x + 16 @border[id].y = self.y + y + 16 @border[id].z = 500 end end wor_facbor_winbas_draf(face_name, face_index, x, y, size) end def delete_border for i in 0..(@border.size - 1) if BORDER_MODE == 0 and !@border[i].nil? @border[i].dispose elsif BORDER_MODE == 1 and !@border[i].nil? @border[i].bitmap.dispose @border[i].dispose end end @border = [] end end $worale = {} if !$worale $worale["FaceBorder"] = true class Window_Border < Window_Base def initialize(x,y,width,height) super(x,y,width,height) self.windowskin = Cache.system(BORDER_SKIN) self.opacity = BORDER_OPACITY self.back_opacity = 0 self.z = 500 end end class Window_Message < Window_Selectable alias wor_facbot_winmsg_upd update def update wor_facbot_winmsg_upd if @closing and @border != [] delete_border end end end Note dell'Autore: Se lo script dovessere essere usato per scopi commerciali, bisognerà avvisare l'autore.
-
Nome Script: EK Items Menu Versione: 1.4b Autore/i: Equilibrium Keeper Informazioni: Lo script permette di avere a disposizione gli oggetti divisi, vale a dire che gli oggetti verranno divisi tra quelli che si possono usare in battaglia, sul Menù etc... Istruzioni: Inserite lo script sopra Main. Istruzioni all'interno dello script Script: #============================================================================== # EK Items Menu v.1.4b #------------------------------------------------------------------------------ # Created by: Equilibrium Keeper [[email protected]] # Created on: 26.05.2008 18:57:18 # Special thanks: Рольф, ANNxiousity, insider # Also thanks to: rpgmaker.sk6.ru, rpg-maker.info, rpgmakervx.net #============================================================================== # Description: The Script changes menu items structure adding filtration on # different parametres #------------------------------------------------------------------------------ # Requirements: Addon by Equilibrium Keeper v.1.00 or above # Install: Make a new blank script page above main and copy this script. #============================================================================== # Instruction: Write the titles of desirable sections into the ITEMS_TYPE # array (line 44). Write the selection parametres into the two-dimensional # ITEMS_FILTRATION array (line 45) (choose parametres from the following list # or assign yours). NOTE: One-dimensional arrays (selection parametres) in the # ITEM_FILTRATION array should be followed in the same order as categories # corresponding to them in ITEMS_TYPE! #------------------------------------------------------------------------------ # Standard selection parametres list (all the items are shown on default) : # "Usable" - Items can be used either in menu or in battle, or both variants possible # "Usable!" - Items can't be used ever. # "Equipment" - Equipment items: either weapmon or armor (or both o.O) # "Equipment!" - Non-equipment items # "InMenu" - Items can be used in menu # "InMenu!" - Items can't ever be used in menu. # "InBattle" - In-battle usage possible # "InBattle!" - In-battle usage impossible #------------------------------------------------------------------------------ # To make your own selection parametre follow the steps listed below: # 1) Write new category title into the ITEMS_TYPE array as a new value or # by replacing the existing one. # 2) Declare tag (e.g. "alch") and write it into the "Note" field of a weapon, # armor or item you decided to refer to the new category. # 3) Write this tag (after changing '' to '') into the ITEMS_FILTRATION # array as a new condition or by replacing the existing one. # 4) Add to the GetItemType block at the and of Case the code block similar to # the lines 152..179 by changing "alch" and "alch!" to your tag and # denying one. #============================================================================== module EKScripts ITEMS_TYPE = ["Usable", "Battle Only", "Equipment", "Other", "Alchemistry"] ITEMS_FILTRARION = [ ["InMenu", "Equipment!", "alch!"], # Usable ["InBattle", "InMenu!", "Equipment!"], # Battle Only ["Equipment"], # Equipment ["Usable!", "Equipment!", "alch!"], # Other ["alch"] # For example: Alchemistry ] # ← Do not delete end class Window_Item < Window_Selectable #-------------------------------------------------------------------------- attr_writer :type #-------------------------------------------------------------------------- # * Object Initialization # x : window x-coordinate # y : window y-coordinate # width : window width # height : window height # type : item type #-------------------------------------------------------------------------- def initialize(x, y, width, height, type = -1) super(x, y, width, height) @items_notes = [] for i in 1..$data_items.size - 1 @items_notes[i] = $data_items[i].note end @weapons_notes = [] for i in 1..$data_weapons.size - 1 @weapons_notes[i] = $data_weapons[i].note end @armors_notes = [] for i in 1..$data_armors.size - 1 @armors_notes[i] = $data_armors[i].note end @type = type @items_filtrarion = EKScripts::ITEMS_FILTRARION @column_max = 2 self.index = 0 refresh end #-------------------------------------------------------------------------- # * Whether or not to include in item list # item : item #-------------------------------------------------------------------------- def include?(item) return false if item == nil if $game_temp.in_battle return false unless item.is_a?(RPG::Item) else return false if GetItemType(item) == false end return true end #-------------------------------------------------------------------------- # * Whether or not to include in valid items list # item : item #-------------------------------------------------------------------------- def GetItemType(item) @item = item @return = true for i in 0..@items_filtrarion[@type].size - 1 if @return == true case @items_filtrarion[@type][i] when "Usable" if !(item.is_a?(RPG::Armor) || item.is_a?(RPG::Weapon)) unless $data_items[item.id].menu_ok? || $data_items[item.id].battle_ok? @return = false end end when "Usable!" if !(item.is_a?(RPG::Armor) || item.is_a?(RPG::Weapon)) if $data_items[item.id].menu_ok? || $data_items[item.id].battle_ok? @return = false end end when "InMenu" if !(item.is_a?(RPG::Armor) || item.is_a?(RPG::Weapon)) unless $data_items[item.id].menu_ok? @return = false end end when "InMenu!" if !(item.is_a?(RPG::Armor) || item.is_a?(RPG::Weapon)) if $data_items[item.id].menu_ok? @return = false end end when "InBattle" if !(item.is_a?(RPG::Armor) || item.is_a?(RPG::Weapon)) unless $data_items[item.id].battle_ok? @return = false end end when "InBattle!" if !(item.is_a?(RPG::Armor) || item.is_a?(RPG::Weapon)) if $data_items[item.id].battle_ok? @return = false end end when "Equipment" unless item.is_a?(RPG::Armor) || item.is_a?(RPG::Weapon) @return = false end when "Equipment!" if item.is_a?(RPG::Armor) || item.is_a?(RPG::Weapon) @return = false end when "IsWeapon" unless item.is_a?(RPG::Weapon) @return = false end when "IsWeapon!" if item.is_a?(RPG::Weapon) @return = false end when "IsArmor" unless item.is_a?(RPG::Armor) @return = false end when "IsArmor!" if item.is_a?(RPG::Armor) @return = false end when "alch" if item.is_a?(RPG::Weapon) if @weapons_notes[item.id].index("alch") == nil @return = false end elsif item.is_a?(RPG::Armor) if @armors_notes[item.id].index("alch") == nil @return = false end else if @items_notes[item.id].index("alch") == nil @return = false end end when "alch!" if item.is_a?(RPG::Weapon) if @weapons_notes[item.id].index("alch") != nil @return = false end elsif item.is_a?(RPG::Armor) if @armors_notes[item.id].index("alch") != nil @return = false end else if @items_notes[item.id].index("alch") != nil @return = false end end end end end return @return end end class Scene_Item < Scene_Base #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background @items_type = EKScripts::ITEMS_TYPE @spacing = 32 - (@items_type.size - 4) * 8 if @spacing <= 0 @spacing = 8 end @command_window = Window_Command.new(544, @items_type, @items_type.size, 0, @spacing, 1) @command_window.index = 0 @viewport = Viewport.new(0, 0, 544, 416) @help_window = Window_Help.new (0, 56) @help_window.viewport = @viewport @item_window = Window_Item.new(0, 112, 544, 304, 0) @item_window.viewport = @viewport @item_window.help_window = @help_window @item_window.active = false @target_window = Window_MenuStatus.new(0, 0) hide_target_window @command_window.active = true @item_window.active = false end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @command_window.dispose @viewport.dispose @help_window.dispose @item_window.dispose @target_window.dispose end #-------------------------------------------------------------------------- # * Update Frame #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @help_window.update @item_window.update @target_window.update if @command_window.active update_command_selection elsif @item_window.active update_item_selection elsif @target_window.active update_target_selection end end #-------------------------------------------------------------------------- # * Update Command Selection #-------------------------------------------------------------------------- def update_command_selection if Input.trigger?(Input:: Sound.play_cancel return_scene elsif Input.trigger?(Input::C) Sound.play_decision @command_window.active = false @item_window.active = true elsif Input.trigger?(Input::RIGHT) || Input.trigger?(Input::LEFT) @item_window.type = @command_window.index @item_window.refresh @item_window.update_help end end #-------------------------------------------------------------------------- # * Update Item Selection #-------------------------------------------------------------------------- def update_item_selection if Input.trigger?(Input:: Sound.play_decision @item_window.active = false @command_window.active = true Sound.play_cancel elsif Input.trigger?(Input::C) @item = @item_window.item if @item != nil $game_party.last_item_id = @item.id end if $game_party.item_can_use?(@item) Sound.play_decision determine_item else Sound.play_buzzer end end end #-------------------------------------------------------------------------- # * Show(Recreate) Target Window # right : Right justification flag (if false, left justification) #-------------------------------------------------------------------------- def show_target_window(right) @item_window.active = false @target_window.dispose @target_window = Window_MenuStatus.new(0, 0) width_remain = 544 - @target_window.width @target_window.x = right ? width_remain : 0 @target_window.visible = true @target_window.active = true if right @viewport.rect.set(0, 0, width_remain, 416) @viewport.ox = 0 else @viewport.rect.set(@target_window.width, 0, width_remain, 416) @viewport.ox = @target_window.width end end end
-
Nome Script: Cozziekuns' Status Screen Versione: 1.0 Autore/i: cozziekuns Informazioni: Una versione ritoccata dello Scene_Status Screenshots: Istruzioni: Inserite lo script sotto Material. Per usare lo sfondo dovete rinominare l'immagine in questo modo: NomeEroe_bg.png Le altre istruzioni d'uso sono all'interno dello script. Script: #=============================================================================== # # Cozziekuns' Status Screen # Last Date Updated: 4/10/2010 # # A status screen. A nice looking one at that. # #=============================================================================== # Updates # ----------------------------------------------------------------------------- # o 05/03/10 - Started Script. #=============================================================================== # What's to come? # ----------------------------------------------------------------------------- # o I dunno. You tell me! #=============================================================================== # Instructions # ----------------------------------------------------------------------------- # To install this script, open up your script editor and copy/paste this script # to an open slot below ? Materials but above ? Main. Remember to save. You can # edit the modules as you wish. # # The background images should be of size 544 * 416. When importing a background # image, import it to the folder Graphics/Pictures. The name of the actor should # be on the name of the file, followed by _bg. # # Example: Raven_bg #=============================================================================== module COZZIEKUNS BACKGROUND_OPACITY = 100 HP_ICON = 99 MP_ICON = 100 EXP_ICON = 98 LEVEL_ICON = 62 ATTACK_ICON = 26 DEFENSE_ICON = 52 SPIRIT_ICON = 20 AGILITY_ICON = 49 CLASS_ICONS ={ 0 => 0, 1 => 16, 2 => 32, 3 => 21, 4 => 8, } BIOGRAPHIES ={ # Actor => Biography 0 => "I like pie.", 1 => "Our average hero who hails|from a family that lives in|poverty.", 2 => "Our hero's best friend, but|sometimes worst rival. Can|be irrational at times.", 3 => "Our 3rd hero, a magician|with a nice personality,|and has powerful skills|to boot.", 4 => "Our 4th hero, a thief|shrouded in mystery. Not|much is known about Sora,|except she's damn pro.", } end #============================================================================== # ** Game_Actor #------------------------------------------------------------------------------ # This class handles actors. It's used within the Game_Actors class # ($game_actors) and referenced by the Game_Party class ($game_party). #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # * Get Experience String #-------------------------------------------------------------------------- def exp_s return @exp_list[@level+1] > 0 ? @exp : 1 end #-------------------------------------------------------------------------- # * Get String for Next Level Experience #-------------------------------------------------------------------------- def next_exp_s return @exp_list[@level+1] > 0 ? @exp_list[@level+1] : 1 end #-------------------------------------------------------------------------- # * Get String for Experience to Next Level #-------------------------------------------------------------------------- def next_rest_exp_s return @exp_list[@level+1] > 0 ? (@exp_list[@level+1] - @exp) : 1 end end #============================================================================== # ** Scene_Status #------------------------------------------------------------------------------ # This class performs the status screen processing. #============================================================================== class Scene_Status < Scene_Base #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- alias coz_start start def start coz_start @[member=biok]_window = Window_Biography.new(@actor) @statushelp_window = Window_StatusHelp.new(0, 356) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- alias coz_terminate terminate def terminate coz_terminate @[member=biok]_window.dispose @statushelp_window.dispose end end #============================================================================== # ** Window_Base #------------------------------------------------------------------------------ # This is a superclass of all windows in the game. #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # * Get Exp Gauge Colour 1 #-------------------------------------------------------------------------- def exp_gauge_colour1 return text_color(7) end #-------------------------------------------------------------------------- # * Get Exp Gauge Colour 2 #-------------------------------------------------------------------------- def exp_gauge_colour2 return text_color(8) end end #============================================================================== # ** Window_Status #------------------------------------------------------------------------------ # This window displays full status specs on the status screen. #============================================================================== class Window_Status < Window_Base #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear @hp_icon = COZZIEKUNS::HP_ICON @mp_icon = COZZIEKUNS::MP_ICON @exp_icon = COZZIEKUNS::EXP_ICON @level_icon = COZZIEKUNS::LEVEL_ICON @atk_icon = COZZIEKUNS::ATTACK_ICON @def_icon = COZZIEKUNS::DEFENSE_ICON @[member=Spiderman 2099]_icon = COZZIEKUNS::SPIRIT_ICON @agi_icon = COZZIEKUNS::AGILITY_ICON draw_actor_back(@actor, 0, 0) draw_actor_name(@actor, 4, 0) draw_actor_class(@actor, 160, 0) draw_icon(62, 128, 32) draw_icon(98, 128, WLH * 3 + 32) draw_icon(99, 128, WLH + 32) draw_icon(100, 128, WLH * 2 + 32) draw_icon(26, 320, 33) draw_icon(52, 320, 33 + WLH + 1) draw_icon(20, 320, 33 + WLH * 2 + 2) draw_icon(49, 320, 33 + WLH * 3 + 3) if COZZIEKUNS::CLASS_ICONS.include?(@actor.id) @icon_number = COZZIEKUNS::CLASS_ICONS[@actor.id] else @icon_number = COZZIEKUNS::CLASS_ICONS[0] end draw_icon(@icon_number, 128, 0) draw_actor_face(@actor, 8, 32) draw_basic_info(160, 32) draw_parameters(352, 32) draw_actor_tnl(@actor, 160, WLH * 3 + 32) draw_equipments(288, 154) self.contents.font.color = system_color self.contents.draw_text(320, 0, 80, WLH, "Status:", 0) end #-------------------------------------------------------------------------- # * Draw Basic Information # x : Draw spot X coordinate # y : Draw spot Y coordinate #-------------------------------------------------------------------------- def draw_basic_info(x, y) draw_actor_level(@actor, x, y + WLH * 0) draw_actor_state(@actor, 400, 0) draw_actor_hp(@actor, x, y + WLH * 1) draw_actor_mp(@actor, x, y + WLH * 2) end #-------------------------------------------------------------------------- # * Draw Actor Back # actor : the actor you want # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_actor_back(actor, x, y) @rect_height = 416 @background_opacity = COZZIEKUNS::BACKGROUND_OPACITY bitmap = Cache.picture(actor.name + "_bg") rect = Rect.new(0, 0, 0, 0) rect.x = 0 rect.y = 0 rect.width = 544 rect.height = @rect_height self.contents.blt(x, y, bitmap, rect, @background_opacity) bitmap.dispose end #-------------------------------------------------------------------------- # * Draw Equipment # x : Draw spot X coordinate # y : Draw spot Y coordinate #-------------------------------------------------------------------------- def draw_equipments(x, y) self.contents.font.color = system_color self.contents.draw_text(x, y, 120, WLH, Vocab::equip + "s:") for i in 0..4 draw_item_name(@actor.equips[i], x + 16, y + 11 + WLH * (i + 1)) end end #-------------------------------------------------------------------------- # * Draw TNL (To next level) # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # width : Width #-------------------------------------------------------------------------- def draw_actor_tnl(actor, x, y, width = 120) draw_actor_tnl_gauge(actor, x, y, width) self.contents.font.color = system_color self.contents.draw_text(x, y, 30, WLH, "E") self.contents.font.color = hp_color(actor) last_font_size = self.contents.font.size xr = x + width if width < 120 self.contents.draw_text(xr - 44, y, 44, WLH, actor.exp_s, 2) else self.contents.draw_text(xr - 99, y, 44, WLH, actor.exp_s, 2) self.contents.font.color = normal_color self.contents.draw_text(xr - 55, y, 11, WLH, "/", 2) self.contents.draw_text(xr - 44, y, 44, WLH, actor.next_exp_s, 2) end end #-------------------------------------------------------------------------- # * Draw TNL gauge # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # width : Width #-------------------------------------------------------------------------- def draw_actor_tnl_gauge(actor, x, y, width = 120) gw = width * actor.exp_s / actor.next_exp_s gc1 = exp_gauge_colour1 gc2 = exp_gauge_colour2 self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color) self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2) end end #============================================================================== # ** Window_Biography #------------------------------------------------------------------------------ # Basically what Yanfly did. Kudos to you, Yanfly. #============================================================================== class Window_Biography < Window_Base #-------------------------------------------------------------------------- # * Initalize #-------------------------------------------------------------------------- def initialize(actor) super(0, 154, 288, 416) @actor = actor self.opacity = 0 refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.color = system_color self.contents.draw_text(4, 0, 284, WLH, "Biography:", 0) self.contents.font.color = normal_color self.contents.font.size = 20 y = 32 txsize = 24 nwidth = 284 if COZZIEKUNS::BIOGRAPHIES.include?(@actor.id) text = COZZIEKUNS::BIOGRAPHIES[@actor.id] else text = COZZIEKUNS::BIOGRAPHIES[0] end buf = text.gsub(/N([d+])/i) { "__#{$1}" } lines = buf.split(/(?:[|]|n)/i) lines.each_with_index { |l, i| l.gsub!(/__([d+])/i) { "N#{$1}" } self.contents.draw_text(4, i * txsize + y, nwidth, WLH, l, 0) } end end #============================================================================== # ** Window_Status_Help #------------------------------------------------------------------------------ # Helps you out, I guess... #============================================================================== class Window_StatusHelp < Window_Base #-------------------------------------------------------------------------- # * Initalize #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 544, 60) refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.draw_text(4, 0, 544, WLH, "Press Q and W to switch characters. Press X to exit.") end end