Vai al contenuto

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

  • Chatbox

    You don't have permission to chat.
    Load More

Recommended Posts

Nome Script: Targhetta

Versione: N/D

Autore/i: Herupty

 

Informazioni:

Questo script permette di visualizzare una finestra con alcune info sul PG

 

Istruzioni:

- inserire sotto Materials

- creare uno strumento (item) chiamato Targhetta dell'eroe

- associare allo strumento un evento comune (Common event)

- nell'evento comune inserire un call script con scritto Targhetta.new

- per visualizzare il lavoro completo aprire il menu, andare negli strumenti (Items) e selezionare "Targhetta dell'eroe"

- p.s. mettetemi nei crediti...http://rpgmkr.net/forum/public/style_emoticons/default/xd.gif

 

Script:

class Targhetta < Window_Base
def initialize
   #definisco la variabile $anni
   $anni = 9
        # Dimensione della finestra.
   super(0, 0, 300, 400)
        # Creazione del Bitmap.
    self.contents = Bitmap.new(width - 32, height - 32)
        # Settaggio della dimensione e del tipo di testo da utilizzare.
    self.contents.font.name = "Segoe Print"
    self.contents.font.size = 26
        # Richiamare il metodo refresh per scrivere il testo.
    refresh
  end
#----------NOTA----------NOTA----------NOTA----------NOTA----------
#Ricordo che al metodo "refresh" si può assegnare anche un'altro nome, che si
#modificherà anche qui sotto...
#----------FINE----------FINE----------FINE----------FINE----------

  def refresh
    # Pulire il contenuto della finestra
    self.contents.clear
    # Inserire il face del chara
      if $anni <= 14  # SE la var globale $anni è uguale o minore di 14
        #visualizzo il face nella cartella picture, con il nome bimbo
        @immagine = Sprite.new
        @immagine.bitmap = Cache.picture("bimbo.png")
        @immagine.x = 180
        @immagine.y = 10
      elsif $anni <= 25 # SE la var globale $anni è uguale o minore di 25
        #visualizzo il face nella cartella picture, con il nome raga
        @immagine = Sprite.new
        @immagine.bitmap = Chache.picture("raga.png")
        @immagine.x = 180
        @immagine.y = 10
      elsif $anni >= 25  #se la var globale $anni è uguale o maggiore di 25
        #visualizzo il face nella cartella picture, con il nome adul
        @immagine = Sprite.new
        @immagine.bitmap = Chache.picture("adul.png")
        @immagine.x = 180
        @immagine.y = 10
      end
    # Scrivere il testo
     #il titolo
     self.contents.draw_text(0, 0, 120, 32, "Targhetta dell'eroe")
     #il nome dell'eroe
     self.contents.draw_text(5, 20, 120, 32, "Nome:")
     self.contents.draw_text(60, 20, 120, 32, $game_actors[1].name)
     #il livello dell'eroe
     self.contents.draw_text(5, 40, 120, 32, "Livello:")
     self.contents.draw_text(60, 40, 120, 32, $game_actors[1].level)
     #Fase, cioè classe, dell'eroe
     self.contents.draw_text(5, 60, 120, 32, "Fase:")
     self.contents.draw_text(60, 60, 120, 32, $data_classes[$data_actors[1].class_id].name)
     #Anni dell'eroe ($anni)
     self.contents.draw_text(5, 80, 120, 32, "Anni:")
     self.contents.draw_text(60, 80, 120, 32, $anni)
     #Soldi posseduti dall'eroe
     self.contents.draw_text(5, 100, 120, 32, "Soldi")
     self.contents.draw_text(60, 100, 120, 32, $game_party.gold)

=begin
 io ho messo "fase" perchè ho impostato solo tre classi:
 Bambino, Ragazzo, Adulto
 quindi sono tra fasi, ma in realtà, nel comando, richiamo il nome della classe
=end

#se premi "X" torni alla mappa
 if Input.trigger?(Input::
   self.dispose
   $scene = Scene_Map.new
 end
end
end
Demo:

http://www.mediafire.com/file/2imdny4myzj/Targhetta.exe

 

Incompatibilità:

N/D

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Interessante, ma si potrebbe portare allo stadio scheda allenatore di pokemon aggiungendo un solo metodo e appare nel menu.

 

P.S: La demo non è più online, provo a recuperarla.

 

Edit: Non è possibile esplorare il database di Mediafire

Modificato da KenzoMe92 (Visualizza storico modifiche)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Non serve la demo, è presente lo script ed è di facile utilizzo..

Domani comunque vedo di prepararne una io così aggiorno il link al download..

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Aggiornato lo script, ora non è più necessario creare oggetti e eventi comuni, l'opzione l'ho messa nel menu e ho aggiunto la parte di configurazione, posto lo script nuovo:

 

 

#=============================#==================================#
# Edit by KenzoMe92           # Ora funziona dal menu senza      #
#-----------------------------# creare oggetti nell'inventario.  #
# Configurazione              #==================================#
#=============================#
module Targ
  ANNI = 9 #Impostare il numero di anni
  TARGHETTA = "Targhetta dell'eroe"
end
#=============================#
# Fine Configurazione         #
#=============================#
class Scene_Menu < Scene_Base
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Targ::TARGHETTA
    s6 = Vocab::save
    s7 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
    @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
      @command_window.draw_item(4, false)     # Disabilita targhetta
    end
    if $game_system.save_disabled             # Se il salvataggio è disattivato
      @command_window.draw_item(5, false)     # Disabilita salvataggio
    end
  end
  def update_command_selection
    if Input.trigger?(Input::
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Oggetti
        $scene = Scene_Item.new
      when 1,2,3  # Poteri, Equipaggiamento, Stato
        start_actor_selection
      when 4      # Targhetta
        $scene = Scene_Targhetta.new
      when 5      # Salva
        $scene = Scene_File.new(true, false, false)
      when 6      # Esci dal Gioco
        $scene = Scene_End.new
      end
    end
  end
end
class Scene_Targhetta < Scene_Base
 def start
    super
    @targhetta = Targhetta.new
  end
  def update
    super
    @targhetta.refresh
  end
end
class Targhetta < Window_Base
def initialize
   #definisco la variabile $anni
   $anni = Targ::ANNI
        # Dimensione della finestra.
   super(0, 0, 300, 400)
        # Creazione del Bitmap.
    self.contents = Bitmap.new(width - 32, height - 32)
        # Settaggio della dimensione e del tipo di testo da utilizzare.
    self.contents.font.name = "Segoe Print"
    self.contents.font.size = 26
        # Richiamare il metodo refresh per scrivere il testo.
    refresh
  end
#----------NOTA----------NOTA----------NOTA----------NOTA----------
#Ricordo che al metodo "refresh" si può assegnare anche un'altro nome, che si
#modificherà anche qui sotto...
#----------FINE----------FINE----------FINE----------FINE----------

  def refresh
    # Pulire il contenuto della finestra
    self.contents.clear
    # Inserire il face del chara
      if $anni <= 14  # SE la var globale $anni è uguale o minore di 14
        #visualizzo il face nella cartella picture, con il nome bimbo
        @immagine = Sprite.new
        @immagine.bitmap = Cache.picture("bimbo.png")
        @immagine.x = 180
        @immagine.y = 10
      elsif $anni <= 25 # SE la var globale $anni è uguale o minore di 25
        #visualizzo il face nella cartella picture, con il nome raga
        @immagine = Sprite.new
        @immagine.bitmap = Chache.picture("raga.png")
        @immagine.x = 180
        @immagine.y = 10
      elsif $anni >= 25  #se la var globale $anni è uguale o maggiore di 25
        #visualizzo il face nella cartella picture, con il nome adul
        @immagine = Sprite.new
        @immagine.bitmap = Chache.picture("adul.png")
        @immagine.x = 180
        @immagine.y = 10
      end
    # Scrivere il testo
     #il titolo
     self.contents.draw_text(0, 0, 120, 32, "Targhetta dell'eroe")
     #il nome dell'eroe
     self.contents.draw_text(5, 20, 120, 32, "Nome:")
     self.contents.draw_text(60, 20, 120, 32, $game_actors[1].name)
     #il livello dell'eroe
     self.contents.draw_text(5, 40, 120, 32, "Livello:")
     self.contents.draw_text(60, 40, 120, 32, $game_actors[1].level)
     #Fase, cioè classe, dell'eroe
     self.contents.draw_text(5, 60, 120, 32, "Fase:")
     self.contents.draw_text(60, 60, 120, 32, $data_classes[$data_actors[1].class_id].name)
     #Anni dell'eroe ($anni)
     self.contents.draw_text(5, 80, 120, 32, "Anni:")
     self.contents.draw_text(60, 80, 120, 32, $anni)
     #Soldi posseduti dall'eroe
     self.contents.draw_text(5, 100, 120, 32, "Soldi")
     self.contents.draw_text(60, 100, 120, 32, $game_party.gold)

=begin
 io ho messo "fase" perchè ho impostato solo tre classi:
 Bambino, Ragazzo, Adulto
 quindi sono tra fasi, ma in realtà, nel comando, richiamo il nome della classe
=end

#se premi "X" torni alla mappa
 if Input.trigger?(Input::
    self.dispose
    $scene = Scene_Menu.new
end
end
end

 

 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

  • Contenuti simili

    • Da MrSte
      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 
    • Da Ally
      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:
       
       
    • Da Ally
      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:
       
       
    • Da Ally
      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
    • Da Ally
      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
×