Jump to content
Rpg²S Forum

Sceptile

Utenti
  • Posts

    21
  • Joined

  • Last visited

Posts posted by Sceptile

  1. Hey guys,
    premetto che ho davvero molta difficoltà a spiegare lo script che cerco quindi allego un' immagine che potrebbe aiutarmi.

    Il protagonista del gioco, nella sua camera, "cliccando" sul pc, dovrebbe poter accedere ad una specie di browser (che realizzerò successivamente, tramite eventi, con mostra immagine) dove avrà accesso a diversi "pulsanti". Ogni pulsante corrisponderà ad una determinata azione (che influenzerà variabili o altro) oppure corrisponderà ad un collegamento ad un'altra pagina del browser dove saranno presenti altri "pulsanti" con azioni diverse. Ad esempio, nell'immagine in allegato, se cliccassi su "Commenta" una variabile si dovrebbe alzare di 1, invece se cliccassi su "Statistiche Canale" dovrebbe aprirsi un'altra immagine simile ma con altri pulsanti. Esiste uno script che permette quanto descritto?
    Sicuramente non sarò stato sufficientemente chiaro, quindi non esitate a chiedere altre informazioni.
    Link immagine http://imgur.com/Wk6q3n3

    Grazie in anticipo :)

  2.  

    ora che lo dici in effetti pensandoci è vero. Quando sono in tanti a dover mangiare una torta si creano problemi e la torta oltre che buona deve essere anche bella. Il progetto se rimane cosi, senza offesa se non fossi un appassionato non gli darei manco 3 cent. Perché? Perché per prima cosa non è farina del vostro sacco e secondo ci sono millemila giochi rtp simili, perchè dovrei pagare un gioco cosi? Però alla fine le cose sono imprevedibili ed avere un inaspettato successo! Provarci è giusto se non va... non vaXD

    Giochi simili?

  3.  

     

    Capisco. Non sarà facile ottenere i consensi, ma provate! ^ ^

    Tecnicamente non ce ne dovrebbe essere bisogno dato che non vengono utilizzati i veri nomi dei canali esistenti e soprattutto non sono marchi registrati...

    In ogni caso meglio non rischiare ;)

  4.  

    L'idea di approfittare di questa ondata di successo di Youtube è buona. Immagino che hai pensato questo gioco anche con la speranza che almeno uno di questi youtuber lo provi dandoti un pò di notorietà.

     

    Lo sai però che cercare di ricavarci delle somme di denaro (seppur minime o per darle in donazione) potrebbe crearti molti problemi ? :(

    in quanto utilizzi la fama di altre persone (che non so se ti hanno concesso i loro diritti) che potrebbero infastidirsi e crearti casini ...

     

    Inoltre molti youtuber quando giocano agli indie games, provano quelli gratuiti... se dovessero spendere soldi per ogni tizio che fa un gioco su di loro a pagamento sarebbero poveri ^^"

    L'idea di base è proprio quella di cavalcare l'ondata di successo di Youtube ... Ovviamente verrà chiesto il consenso di tutti gli Youtubers citati (palesemente o velatamente) nel gioco.

     

    Ah se sei uno Youtuber il gioco e gratis ;)

    (Con determinate condizioni che verranno spiegate nel progetto Kickstarter)

  5.  

     

    Non ho ben capito... i protagonisti dovrebbero essere anonimi giusto? Cioè i personaggi inventati dovrebbero essere di fantasia con solo riferimenti o cose velate per quanto riguarda...

    Molti personaggi principali (alcune volte semplici comparse) saranno altri youtuber italiani (nella versione italiana) ! Ovviamente con nomi leggermente modificati (ma comprensibili) e previo consenso...

     

    Ad esempio Crack89 (Croix89) ;)

  6.  

     

    Se donate forse sarebbe meglio pensare a chi ha problemi diciamo più seri che diventare una star su youtube...che dici?

    Siamo consapevoli che nel mondo esistono problemi ben più gravi di qualche youtuber che non riesce a raggiungere il successo ma ,essendo il nostro gioco incentrato su Youtube, ci è sembrato logico pensare a qualcosa del genere. Inoltre le nostre non saranno pure donazioni come se fossero degli enti di ricerca,essendo noi degli sviluppatori indipendenti e quindi avendo bisogno di farci conoscere credo che opteremo piuttosto per dei contest che premieranno il gameplay o la recensione migliore (ovviamente sul nostro gioco)... Ovviamente i premi non saranno cash,ma attrezzature come videocamere e microfoni

     

    Ah,se sei uno youtuber (e soddisfi alcune condizioni) il gioco è gratis :)

  7. Ah,perdono ... E' in fase di sviluppo ma non avevo idea di quale fosse la categoria giusta quindi sposta pure ;)
    Comunque sì,potrai scegliere diversi sub-ruoli come ad esempio recensore buono/cattivo e blablabla...
    Il buono o cattivo verrà determinato per la maggior parte dalle scelte del giocatore che andranno a influenzare una variabile chiamata "Flame" che porterà a diversi sviluppi della trama (oltre che a modificare le views e i likes dei video pubblicati)./Fine della frase più lunga della storia

  8. A YOUTUBER'S DREAM

    NOT A QUESTION OF LIKES

    Hey, check this out c:

    E’ qualche mese che io ed un mio amico stiamo tentando di mettere su qualcosa di decente, dopo esserci accorti che l’Unreal Engine 4 non è la scelta migliore per un primo progetto abbiamo fatto il salto di qualità e abbiamo scelto di buttare giù qualcosa su Rpg Maker VX Ace (e magari ci scappa il remake+mobile su MV).

    Dopo numerosi scleri e trip di colla vinilica ci siamo chiesti :”Cosa manca nel panorama videoludico moderno?” e soprattutto “Cosa potrebbe permetterci di guadagnare abbastanza da comprarci una barca?”

    Poi l’illuminazione

    Signori e signori (siamo su un forum videoludico, la vedo dura che ci siano signore)…
    A YOUTUBER’S DREAM

    Trama
    Quanti di noi almeno una volta nella vita hanno detto “Dovrei aprire un canale Youtube”?

    Il misterioso viaggio trascendentale che vi porterà alla scoperta del senso della vita e soprattutto vi regalerà domande esistenziali come ”Perché ho buttato 5€ (poi ci arriviamo) per questo schifo?” inizia con il vostro personaggio in una soffitta polverosa. Lì, tra vecchi fogli di giornale e tileset ASSOLUTAMENTE NON RUBATI, vedete una telecamera…

    Da qui parte la scelta fondamentale che influenzerà il resto della trama: “Che genere di youtuber siete?”
    Per mettere d’accordo tutti i fanboy della galassia (sì, ora potete lasciare i forconi e le torce) abbiamo voluto raggruppare le tipologie di youtuber in :

    1)Gamer
    In principio ,su Youtube , erano i gattini… poi arrivarono i gameplay a ristabilire l’ordine.
    Vesti i panni di un giocatore kick-ass tra conferenze videoludiche e tornei internazionali.

    2)Recensore
    Ah il buon vecchio Yotobi ha una categoria tutta per lui. Perché non diventare un ironico film critic e scegliere se portare il nuovo Star Wars nell’olimpo dei film hollywoodiani oppure smontarlo e gettarlo in pasto ai meme

    3)Fashion Blogger
    Coff Coff Francesco Sole (E’ un fashion blogger?No?)
    Tutti abbiamo quel gigantesco scatolone pieno di trucchi in casa e ci ripetiamo “Dovrei fare una recensione del mio nuovo mascara!”… Ah già

    4)Cover Band
    Wanna Be Kurt Cobain?Dal vostro piccolo scantinato al Disco d’oro il passo è breve, soprattutto se in mezzo c’è della cocaina

    5)Esperimenti sociali
    Fa sempre ridere qualcuno che fa finta di scorreggiare sui passanti… o forse è illegale
    Passeggiate per la vostra città importunando i poliziotti o bestemmiando in chiesa con una telecamera nascosta
    FANTASTICO

    6)Comic Video
    Boh,solo 5 categorie non era il massimo quindi TAA-DAN: freddure brutte e mini-video su Facebook c:

    Tramite le vostre scelte influenzerete la carriera del vostro alter-ego e lo porterete al successo o alla rovina in quella landa desolata che è Youtube. (I nostri legali ci consigliano di dire che NON conosciamo e NON abbiamo mai giocato ad un gioco Telltale)

    Il tutto è ambientato nella moderna Youtube Italia (e magari nelle altre community estere in base alla lingua scelta) con continui riferimenti ai protagonisti del palcoscenico della Tv 2.0 (Pioveranno denunce)

    Le nostre meschine intenzioni sono di portare il nostro capolavoro su Kickstarter e successivamente su Steam perché amiamo molto i Rolex e le Maserati, ma prima gradiremmo avere un piccolo feedback da voi ner… ehm videogiocatori esperti.
    Grazie in anticipo

     

    In fede
    CEO della Asinus Games e futuro sovrano del mondo
    Dario Fumarola

    (Gran parte dei ricavati verrà utilizzata per finanziare i piccoli youtuber con talento da vendere che purtroppo, magari per mancanza di mezzi, non riescono ad emergere. Ma questo verrà spiegato meglio nella campagna Kickstarter)

     

    Qualche Screenshot:

     

     

    http://i.imgur.com/61VTCIo.jpg

     

    http://i.imgur.com/qRjdwgM.pnghttp://i.imgur.com/8eXDmiG.png

    http://i.imgur.com/gp8q8mW.jpg

  9. Salve a tutti,
    esiste un modo per rendere questi due script compatibili fra loro? Oppure esistono altri message system compatibili? (Ho già provato con il Lune)

     

    [sCUSATE PER IL REPOST MA E' ABBASTANZA URGENTE]

     

    (Sistema di scelte)

     

    #------------------------------------------------------------------------------#
    # Galv's Visual Novel Choices
    #------------------------------------------------------------------------------#
    # For: RPGMAKER VX ACE
    # Version 1.9
    #------------------------------------------------------------------------------#
    # 2013-01-16 - Version 1.9 - Added Y offset for choice window
    # 2012-11-28 - Version 1.8 - Z level setting added
    # 2012-11-28 - Version 1.7 - Added compatability for some cursor scripts
    # 2012-11-28 - Version 1.6 - Fixed a bug that could crash the game.
    # 2012-11-28 - Version 1.5 - Added offset to change postion of cursor x and y
    # 2012-11-28 - Version 1.4 - Fixed z levels and made cursor use an image
    # 2012-11-27 - Version 1.3 - Fixed a bug with cancel choice selection
    # 2012-11-27 - Version 1.2 - added a switch to disable script effects
    # 2012-11-27 - Version 1.1 - added ability to use different image per choice
    # - added a couple more options
    # 2012-11-27 - Version 1.0 - release
    #------------------------------------------------------------------------------#
    # This script overwrites the default "Show Choices" list. The choices are
    # changed so they display centered on the screen with a graphic behind each
    # of them. Made with visual novel choice selection in mind.
    #------------------------------------------------------------------------------#
    # INSTRUCTIONS:
    # Copy the graphic from the demo /Graphics/System into your project.
    # Copy the script into your script list, below Materials and above Main
    #
    # Some setup options below, most only need to be changed if you use your own
    # custom choice image.
    #------------------------------------------------------------------------------#
    # Codes:
    #------------------------------------------------------------------------------#
    # Most of the usual codes that work in messages should work in choices.
    # (eg. \V[x], \N[x], \C[x], etc. Look at message tooltip to know more.)
    #
    # A new one has been added so you can change the background image for separate
    # choice options.
    #
    # \B[x]
    #
    # This works by adding the number x (as you put in the code above) to the end
    # of the CHOICE IMAGE file name. For example, the default choice image is:
    # "Choice.png" located in /Graphics/System/. If you put the code anywhere in
    # a choice box: \B[3] it will look for "Choice3.png" image in the same
    # location.
    #------------------------------------------------------------------------------#

    ($imported ||= {})["Galvs_Image_Choices"] = true
    module Galv_Choice

    #------------------------------------------------------------------------------#
    # SCRIPT SETUP OPTIONS
    #------------------------------------------------------------------------------#

    CURSOR_IMAGE = "Cursor" # Images used to determine which option you select
    CURSOR_OPACITY = 255 # Opacity of the cursor
    CURSOR_Y_OFFSET = 0 # Nudge cursor position vertically
    CURSOR_X_OFFSET = 0 # Nudge cursor position horizontally

    CHOICE_IMAGE = "Choice" # Image for each choice located in /Graphics/System
    IMAGE_Y_OFFSET = 3 # Nudge your choice image vertically if needed
    IMAGE_OPACITY = 215 # The opacity of the image

    CHOICE_HEIGHT = 45 # How tall each choice.
    CHOICE_ITEM_Y = 2 # Offset for choice item text

    CENTER_TEXT = true # left aligned if false, centered if true

    DISABLE_SWITCH = 1 # Turn this switch ON to disable this script

    CHOICES_Y = 0 # Y offset to move choice window up or down.
    # useful if you use a script that creates a namebox
    CHOICES_Z = 50 # The z value of the choices window. Try changing it
    # if pictures or other scripts appear over or under
    # the choices window to how you like.

    #------------------------------------------------------------------------------#
    OTHER_Y_OFFSET = 12 # May fix other cursor scripts positioning
    #------------------------------------------------------------------------------#
    # SCRIPT SETUP OPTIONS
    #------------------------------------------------------------------------------#

    end

    class Window_ChoiceList < Window_Command

    alias galv_choice_initialize initialize
    def initialize(message_window)
    galv_choice_initialize(message_window)
    self.z = Galv_Choice::CHOICES_Z
    end

    def start
    @index = 0
    setup_choices
    make_cursor
    refresh
    open
    activate
    update_placement
    update_bgs
    refresh
    select(0)
    end

    def make_cursor
    return if $game_switches[Galv_Choice::DISABLE_SWITCH]
    @cursor_sprite = Sprite.new
    @cursor_sprite.bitmap = Cache.system(Galv_Choice::CURSOR_IMAGE)
    end

    def setup_choices
    @choice_sprite = []
    if !$game_switches[Galv_Choice::DISABLE_SWITCH]
    self.opacity = 0
    get_widths
    else
    self.opacity = 255
    end
    end

    alias galv_choice_update_placement update_placement
    def update_placement
    if $game_switches[Galv_Choice::DISABLE_SWITCH]
    galv_choice_update_placement
    else
    self.width = [max_choice_width + 12, 96].max + padding * 4
    self.width = [width, Graphics.width].min
    self.height = contents_height + Galv_Choice::CHOICE_HEIGHT - 10
    self.x = (Graphics.width - width) / 2

    if @message_window.openness < 100
    self.y = Graphics.height - contents_height + item_height / 2
    elsif @message_window.y >= Graphics.height / 2
    self.y = @message_window.y - contents_height + item_height / 2 - Galv_Choice::CHOICES_Y
    else
    self.y = @message_window.y + @message_window.height + item_height / 2 + Galv_Choice::CHOICES_Y
    end
    end
    end

    alias galv_choice_contents_height contents_height
    def contents_height
    if $game_switches[Galv_Choice::DISABLE_SWITCH]
    galv_choice_contents_height
    else
    (item_max + 1) * item_height
    end
    end

    def draw_item(index)
    rect = item_rect_for_text(index)
    draw_text_ex(rect.x, rect.y, command_name(index))
    if !$game_switches[Galv_Choice::DISABLE_SWITCH]
    draw_bgs(index)
    end
    end

    def item_rect_for_text(index)
    rect = item_rect(index)

    if $game_switches[Galv_Choice::DISABLE_SWITCH]
    rect.x += 4
    rect.width -= 8
    rect
    else
    if Galv_Choice::CENTER_TEXT
    rect.x = (max_choice_width - @text_sizes.collect {|s| text_size(s).width }[index] + (padding * 3)) / 2
    else
    rect.x += 4
    end
    rect.width -= 8
    rect.y += Galv_Choice::CHOICE_ITEM_Y
    rect
    end
    end

    def get_widths
    @text_sizes = []
    @choice_background = []
    $game_message.choices.each_with_index do |c,i|
    @text_sizes = esc_characters(c,i)
    end
    end

    def esc_characters(text,index)
    result = text.to_s.clone
    result.gsub!(/\\/) { "\e" }
    result.gsub!(/\e\e/) { "\\" }
    result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
    result.gsub!(/\eN\[(\d+)\]/i) { $game_actors[$1.to_i].name}
    result.gsub!(/\eP\[(\d+)\]/i) {
    if $game_party.members[$1.to_i].nil?
    ""
    else
    $game_party.members[$1.to_i].name
    end
    }
    result.gsub!(/\eG/i) { Vocab::currency_unit }
    result.gsub!(/\eC\[(\d+)\]/i) { "" }
    result.gsub!(/\eI\[(\d+)\]/i) { " " }
    result.gsub!(/\eB\[(\d+)\]/i) { @choice_background[index] = $1.to_i }
    result.gsub!(/\eB\[(\d+)\]/i) { "" }
    result
    end

    def convert_escape_characters(text)
    result = text.to_s.clone
    result.gsub!(/\\/) { "\e" }
    result.gsub!(/\e\e/) { "\\" }
    result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
    result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
    result.gsub!(/\eN\[(\d+)\]/i) { actor_name($1.to_i) }
    result.gsub!(/\eP\[(\d+)\]/i) { party_member_name($1.to_i) }
    result.gsub!(/\eG/i) { Vocab::currency_unit }
    result.gsub!(/\eB\[(\d+)\]/i) { "" }
    result
    end

    def item_height
    return line_height if $game_switches[Galv_Choice::DISABLE_SWITCH]
    return Galv_Choice::CHOICE_HEIGHT
    end

    def item_rect(index)
    rect = Rect.new
    rect.width = item_width
    rect.height = item_height - 15
    rect.height += 15 if $game_switches[Galv_Choice::DISABLE_SWITCH]
    rect.x = index % col_max * (item_width + spacing)
    rect.y = index / col_max * item_height
    rect
    end

    def draw_bgs(index)
    return if @choice_sprite[index] != nil

    if @choice_background[index].nil?
    b = ""
    else
    b = @choice_background[index]
    end
    @choice_sprite[index] = Sprite.new
    @choice_sprite[index].bitmap = Cache.system(Galv_Choice::CHOICE_IMAGE + b.to_s)
    @choice_sprite[index].x = index % col_max * (item_width + spacing)
    @choice_sprite[index].y = index / col_max * item_height
    @choice_sprite[index].z = self.z - 2
    end

    def update_bgs
    @choice_sprite.each_with_index do |s,i|
    s.y = self.y + i * Galv_Choice::CHOICE_HEIGHT + Galv_Choice::IMAGE_Y_OFFSET
    s.x = (Graphics.width - s.width) / 2
    s.opacity = Galv_Choice::IMAGE_OPACITY
    end
    end

    def dispose_bgs
    @choice_sprite.each_with_index do |s,i|
    s.dispose
    s.bitmap.dispose
    end
    if !$game_switches[Galv_Choice::DISABLE_SWITCH]
    @cursor_sprite.dispose
    @cursor_sprite.bitmap.dispose
    @choice_sprite = []
    end
    end

    alias galv_choice_call_ok_handler call_ok_handler
    def call_ok_handler
    galv_choice_call_ok_handler
    dispose_bgs
    end
    alias galv_choice_call_cancel_handler call_cancel_handler
    def call_cancel_handler
    galv_choice_call_cancel_handler
    dispose_bgs
    end

    def update_cursor
    if $game_switches[Galv_Choice::DISABLE_SWITCH]
    super
    else
    cursor_rect.empty
    return if @cursor_sprite.nil? || @choice_sprite.nil?
    if @index < 0
    @cursor_sprite.opacity = 0
    else
    @cursor_sprite.opacity = Galv_Choice::CURSOR_OPACITY
    @cursor_sprite.x = @choice_sprite[@index].x + Galv_Choice::CURSOR_X_OFFSET
    @cursor_sprite.y = @choice_sprite[@index].y + Galv_Choice::CURSOR_Y_OFFSET
    @cursor_sprite.z = self.z - 1
    cursor_rect.y = (item_height * @index) + Galv_Choice::OTHER_Y_OFFSET
    end
    end
    end

    end # Window_ChoiceList < Window_Command

     

     

    (XS Message system)

     

    #==============================================================================
    # XS - Message
    # Author: Nicke
    # Created: 08/11/2012
    # Edited: 19/11/2012
    # 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.
    #==============================================================================
    # Requires: XS - Core Script.
    #==============================================================================
    # A message system based on using variables ingame.
    # If the variable has the value 0 the default value will take place.
    # To setup a simple message dialog do as you would normally do when adding
    # text in events but before it set the variables you want to change.
    #
    # When changing width and height you should know that height is visible
    # line numbers which means the numbers 1 to 4 is prefered to use.
    #
    # Example:
    # You could set the width to 544 and height to 4 which is pretty much how
    # the default message window looks like.
    #
    # This script also support sound effect to be played each time a character is
    # processed. Can be tweaked in the settings.
    #
    # When setting variables for bold, shadow, namebox and skin etc. Remember to use
    # the script area in the variable.
    #
    # If I wanted to enable bold and setting a custom skin I would do this:
    # Set the value "true" in the script section for variable 41.
    # Set the value "Window" in the script section for variable 44.
    #
    # Note: When changing the message window skin you must use this method after
    # setting the variable in order to properly update to the new skin:
    # SceneManager.scene.set_message_skin
    #
    # Example:
    # So after setting variable 44 (default one) to "Window3" call that method.
    #
    # *** Only for RPG Maker VX Ace. ***
    #==============================================================================
    ($imported ||= {})["XAIL-MESSAGE-SYSTEM"] = true

    module XAIL
    module MSG
    #--------------------------------------------------------------------------#
    # * Settings
    #--------------------------------------------------------------------------#
    # Set the window variables.
    # WINDOW_VAR = [width, height, padding, x, y, delay,
    # font_name, font_size, font_color, outline, bold, shadow, namebox, skin]
    WINDOW_VAR = [31,32,33,34,35,36,37,38,39,40,41,42,43,44]

    # Set the window open/close animation in frames.
    # WINDOW_ANIMATE = [openness, closeness]
    WINDOW_ANIMATE = [15, 15]

    # Name box options.
    # NAME = [font, size, color, bold, shadow]
    NAME = [["Verdana", "Anklada™"], 14, Color.new(255,225,235,225), true, true]

    # Set the sound for when the characters are processing.
    # The sound effect will be played each time the occurence is met.
    # From the default it will happen every odd processed character.
    # Can be set to nil to disable.
    # SE = [occurence, name, vol, pitch]
    SE = [2, "Decision1", 60, 150]

    # Set the animation options for face window.
    # For type only :fade exists at the moment.
    # ANIM_FACE = [enabled, type, animation_speed_in, animation_speed_out]
    ANIM_FACE = [true, :fade, 12, 8]

    # Set the animation options for name window.
    # For type only :fade exists at the moment.
    # ANIM_NAME = [animation_speed_in, animation_speed_out]
    ANIM_NAME = [true, :fade, 12, 8]

    end
    end
    # *** Don't edit below unless you know what you are doing. ***
    #==============================================================================#
    # ** Error Handler
    #==============================================================================#
    unless $imported["XAIL-XS-CORE"]
    # // Error handler when XS - Core is not installed.
    msg = "The script %s requires the latest version of XS - Core in order to function properly."
    name = "XS - Message"
    msgbox(sprintf(msg, name))
    exit
    end
    #==============================================================================#
    # ** Window_Base
    #==============================================================================#
    class Window_Base < Window

    alias xail_msg_winbase_upd_open update_open
    def update_open(*args, &block)
    # // Method to update openness
    # This should only occur when $game_message is visible.
    if $game_message.visible
    self.openness += XAIL::MSG::WINDOW_ANIMATE[0]
    self.opacity = self.openness unless self.opacity == 0
    self.back_opacity = self.openness unless self.opacity == 0
    @opening = false if open?
    else
    xail_msg_winbase_upd_open(*args, &block)
    end
    end

    alias xail_msg_winbase_upd_close update_close
    def update_close(*args, &block)
    # // Method override to update closeness.
    # This should only occur when $game_message is visible.
    if $game_message.visible
    self.openness -= XAIL::MSG::WINDOW_ANIMATE[1]
    self.opacity = self.openness unless self.opacity == 0
    self.back_opacity = self.openness unless self.opacity == 0
    @closing = false if close?
    else
    xail_msg_winbase_upd_close(*args, &block)
    end
    end

    end
    #==============================================================================#
    # ** Window_Message_Face
    #==============================================================================#
    class Window_Message_Face < Window_Base

    def initialize(x, y, width, height)
    # // Method to initialize.
    super(x, y, width, height)
    skin = $game_variables[XAIL::MSG::WINDOW_VAR[13]] == 0 ? "Window" : $game_variables[XAIL::MSG::WINDOW_VAR[13]]
    self.windowskin = Cache.system(skin)
    refresh
    end

    def refresh
    # // Method to refresh.
    contents.clear
    r = Rect.new(0, 0, width, height)
    r2 = Rect.new(2, 2, width-28, height-28)
    contents.fill_rect(r, Color.new(75,125,135,245))
    contents.gradient_fill_rect(r2, Color.new(125,125,125,255), Color.new(0,0,0,255), false)
    draw_face($game_message.face_name, $game_message.face_index, 4, 4)
    end

    end
    #==============================================================================#
    # ** Window_Message_Name
    #==============================================================================#
    class Window_Message_Name < Window_Base

    def initialize(name, x, y, width, height)
    # // Method to initialize.
    super(x, y, width, height)
    skin = $game_variables[XAIL::MSG::WINDOW_VAR[13]] == 0 ? "Window" : $game_variables[XAIL::MSG::WINDOW_VAR[13]]
    self.windowskin = Cache.system(skin)
    @name = name
    refresh
    end

    def standard_padding
    # // Method to set standard padding
    return 4
    end

    def name=(name)
    # // Method to refresh and set name.
    return if @name == name
    @name = name
    refresh
    end

    def refresh
    # // Method to refresh.
    contents.clear
    draw_font_text(@name, 0, 0, contents_width, 1, XAIL::MSG::NAME[0], XAIL::MSG::NAME[1], XAIL::MSG::NAME[2])
    end

    end
    #==============================================================================#
    # ** Window_Message
    #==============================================================================#
    class Window_Message < Window_Base

    def initialize
    # // Method override initialize for window message.
    super(0, 0, window_width, window_height)
    self.z = 200
    self.openness = 0
    create_all_windows
    create_back_bitmap
    create_back_sprite
    clear_instance_variables
    set_window_skins
    end

    def set_window_skins
    # // Method to set window skins.
    @gold_window.windowskin = Cache.system(get_var(XAIL::MSG::WINDOW_VAR[13], :skin))
    @choice_window.windowskin = Cache.system(get_var(XAIL::MSG::WINDOW_VAR[13], :skin))
    @number_window.windowskin = Cache.system(get_var(XAIL::MSG::WINDOW_VAR[13], :skin))
    @item_window.windowskin = Cache.system(get_var(XAIL::MSG::WINDOW_VAR[13], :skin))
    end

    #~ alias xail_msg_winmsg_create_all_windows create_all_windows
    #~ def create_all_windows(*args, &block)
    #~ # // Method to create all windows.
    #~ xail_msg_winmsg_create_all_windows(*args, &block)
    #~ @choice_window = Window_ChoiceList.new(self)
    #~ @number_window = Window_NumberInput.new(self)
    #~ @item_window = Window_KeyItem.new(self)
    #~ @choice_window.windowskin
    #~ end

    def window_width
    # // Method override to return width.
    get_var(XAIL::MSG::WINDOW_VAR[0], :width)
    end

    def window_height
    # // Method override to return height.
    fitting_height(get_var(XAIL::MSG::WINDOW_VAR[1], :height))
    end

    def standard_padding
    # // Method to return the padding.
    get_var(XAIL::MSG::WINDOW_VAR[2], :padding)
    end

    def window_x
    # // Method to return x value of window.
    get_var(XAIL::MSG::WINDOW_VAR[3], :win_x)
    end

    def window_y
    # // Method to return y value of window.
    get_var(XAIL::MSG::WINDOW_VAR[4], :win_y)
    end

    def get_var(var, type)
    # // Method to return variable value if conditions met.
    unless var.nil? or $game_variables[var] == 0
    return $game_variables[var]
    else
    case type
    when :width ; return Graphics.width
    when :height ; return visible_line_number
    when :padding ; return 12
    when :win_x ; return 0
    when :win_y ; return 0
    when :wait ; return 0
    when :font_name ; return Font.default_name
    when :font_size ; return Font.default_size
    when :font_color ; return Font.default_color
    when :font_out_color ; return Font.default_out_color
    when :font_bold ; return Font.default_bold
    when :font_shadow ; return Font.default_shadow
    when :name ; return ""
    when :skin ; return "Window"
    end
    end
    end

    alias xail_msg_winmsg_upd_placement update_placement
    def update_placement(*args, &block)
    # // Method to update placement.
    xail_msg_winmsg_upd_placement(*args, &block)
    self.width = window_width
    self.height = window_height
    self.x = window_x
    self.y = window_y
    create_contents
    end

    def fiber_main
    # // Method override for fiber main.
    $game_message.visible = true
    update_background
    update_placement
    loop do
    process_all_text if $game_message.has_text?
    process_input
    $game_message.clear
    @gold_window.close
    dispose_face
    dispose_name
    Fiber.yield
    break unless text_continue?
    end
    close_and_wait
    $game_message.visible = false
    @fiber = nil
    end

    def draw_message_face
    # // Method to draw face window.
    unless $game_message.face_name.empty?
    x = window_x - 44
    @face_window = Window_Message_Face.new(x, window_y, 128, 128)
    @face_window.z = 201
    @face_window.opacity = 0
    if XAIL::MSG::ANIM_FACE[0]
    case XAIL::MSG::ANIM_FACE[1]
    when :fade
    @face_window.contents_opacity = 0
    fade(XAIL::MSG::ANIM_FACE[2], @face_window, :in)
    end
    end
    end
    end

    def draw_message_name
    # // Method to draw name window.
    name = get_var(XAIL::MSG::WINDOW_VAR[12], :name)
    unless name == ""
    w = text_size(name).width + 24
    x = window_x + 16
    @name_window = Window_Message_Name.new(name, x, window_y - 31, w, 34)
    @name_window.z = 199
    if XAIL::MSG::ANIM_NAME[0]
    case XAIL::MSG::ANIM_NAME[1]
    when :fade
    @name_window.opacity = @name_window.contents_opacity = 0
    fade(XAIL::MSG::ANIM_NAME[2], @name_window, :in, true, true)
    end
    end
    end
    end

    alias xail_msg_winmsg_process_normal_character process_normal_character
    def process_normal_character(c, pos)
    # // Method to set a wait time for each processed character.
    # This will also play a SE based on if the pos is a odd number.
    xail_msg_winmsg_process_normal_character(c, pos)
    wait(get_var(XAIL::MSG::WINDOW_VAR[5], :wait))
    if (pos[:x] % XAIL::MSG::SE[0] > 0)
    Sound.play(XAIL::MSG::SE[1], XAIL::MSG::SE[2], XAIL::MSG::SE[3]) unless XAIL::MSG::SE.nil?
    end
    end

    alias xail_msg_winmsg_open_and_wait open_and_wait
    def open_and_wait(*args, &block)
    # // Method for open and wait.
    xail_msg_winmsg_open_and_wait(*args, &block)
    draw_message_face ; draw_message_name
    end

    def new_page(text, pos)
    # // Method override for new page.
    contents.clear
    contents.font.name = get_var(XAIL::MSG::WINDOW_VAR[6], :font_name)
    contents.font.size = get_var(XAIL::MSG::WINDOW_VAR[7], :font_size)
    contents.font.color = get_var(XAIL::MSG::WINDOW_VAR[8], :font_color)
    contents.font.out_color = get_var(XAIL::MSG::WINDOW_VAR[9], :font_out_color)
    contents.font.bold = eval(get_var(XAIL::MSG::WINDOW_VAR[10], :font_bold)) unless $game_variables[XAIL::MSG::WINDOW_VAR[10]] == 0
    contents.font.shadow = eval(get_var(XAIL::MSG::WINDOW_VAR[11], :font_shadow)) unless $game_variables[XAIL::MSG::WINDOW_VAR[11]] == 0
    pos[:x] = new_line_x
    pos[:y] = 0
    pos[:new_x] = new_line_x
    pos[:height] = calc_line_height(text)
    clear_flags
    end

    def new_line_x
    # // Method for new line x pos.
    $game_message.face_name.empty? ? 0 : @face_window.width / 2 + 4
    end

    def input_choice
    # // Method to start the input choice.
    @choice_window.start
    skin = $game_variables[XAIL::MSG::WINDOW_VAR[13]] == 0 ? "Window" : $game_variables[XAIL::MSG::WINDOW_VAR[13]]
    @choice_window.windowskin = Cache.system(skin)
    @choice_window.opacity = 255
    Fiber.yield while @choice_window.active
    end

    def input_number
    # // Method to start the input number.
    @number_window.start
    skin = $game_variables[XAIL::MSG::WINDOW_VAR[13]] == 0 ? "Window" : $game_variables[XAIL::MSG::WINDOW_VAR[13]]
    @number_window.windowskin = Cache.system(skin)
    @number_window.opacity = 255
    Fiber.yield while @number_window.active
    end

    def fade(max, window, type, con_op = true, op = false)
    # // Method to fade in/out the windows opacity and/or contents_opacity.
    return if window.is_a?(Array)
    case type
    when :in
    for i in 1..max
    Graphics.update
    window.contents_opacity = i * (255 / max) if con_op
    window.opacity = i * (255 / max) if op
    end
    when :out
    for i in 1..max
    Graphics.update
    window.contents_opacity = 255 - i * (255 / max) if con_op
    window.opacity = 255 - i * (255 / max) if op
    end
    end
    end

    def dispose_face
    # // Method to dispose face window.
    unless @face_window.nil? or @face_window.is_a?(Array)
    if XAIL::MSG::ANIM_FACE[0]
    case XAIL::MSG::ANIM_FACE[1]
    when :fade
    fade(XAIL::MSG::ANIM_FACE[3], @face_window, :out)
    end
    end
    @face_window = nil, @face_window.dispose
    end
    end

    def dispose_name
    # // Method to dispose name window.
    unless @name_window.nil? or @name_window.is_a?(Array)
    if XAIL::MSG::ANIM_NAME[0]
    case XAIL::MSG::ANIM_NAME[1]
    when :fade
    fade(XAIL::MSG::ANIM_NAME[3], @name_window, :out)
    end
    end
    @name_window = nil, @name_window.dispose
    end
    end

    end
    #==============================================================================#
    # ** Scene_Map
    #==============================================================================#
    class Scene_Map < Scene_Base

    def set_message_skin
    # // Method to set message window skin.
    skin = $game_variables[XAIL::MSG::WINDOW_VAR[13]] == 0 ? "Window" : $game_variables[XAIL::MSG::WINDOW_VAR[13]]
    @message_window.windowskin = Cache.system(skin)
    end

    end # END OF FILE

    #=*==========================================================================*=#
    # ** END OF FILE
    #=*==========================================================================*=#

     

     

    (Seconda parte del message system)

     

    #==============================================================================
    # XaiL System - Core
    # Author: Nicke
    # Created: 07/01/2012
    # Edited: 08/10/2013
    # Version: 2.1f
    #==============================================================================
    # 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.
    #
    # Core script for XaiL System.
    # Caution! This needs to be located before any other XS scripts.
    #
    # *** Only for RPG Maker VX Ace. ***
    #==============================================================================
    ($imported ||= {})["XAIL-XS-CORE"] = true

    module Colors
    #--------------------------------------------------------------------------#
    # * Colors
    #--------------------------------------------------------------------------#
    White = Color.new(255,255,255)
    LightRed = Color.new(255,150,150)
    LightGreen = Color.new(150,255,150)
    LightBlue = Color.new(150,150,255)
    DarkYellow = Color.new(225,225,20)
    Alpha = Color.new(0,0,0,128)
    AlphaMenu = 100
    end
    module XAIL
    module CORE
    #--------------------------------------------------------------------------#
    # * Settings
    #--------------------------------------------------------------------------#
    # Graphics.resize_screen(width, height )
    Graphics.resize_screen(544,416)

    # FONT DEFAULTS:
    Font.default_name = ["VL Gothic"]
    Font.default_size = 20
    Font.default_bold = false
    Font.default_italic = false
    Font.default_shadow = true
    Font.default_outline = true
    Font.default_color = Colors::White
    Font.default_out_color = Colors::Alpha

    # USE_TONE = true/false:
    # Window tone for all windows ingame. Default: true.
    USE_TONE = false

    # SAVE
    SAVE_MAX = 20 # Default 16.
    SAVE_FILE_VIS = 4 # Default 4.

    # JAPANESE = true/false
    JAPANESE = false

    end
    end
    # *** Don't edit below unless you know what you are doing. ***
    #==============================================================================#
    # ** Game_System
    #==============================================================================#
    class Game_System

    # // Method to determine japanese game.
    def japanese? ; return XAIL::CORE::JAPANESE ; end

    end
    #==============================================================================#
    # ** String
    #==============================================================================#
    class String

    def to_class(parent = Kernel)
    # // Method to convert string to class.
    chain = self.split "::"
    klass = parent.const_get chain.shift
    return chain.size < 1 ? (klass.is_a?(Class) ? klass : nil) : chain.join("::").to_class(klass)
    rescue
    nil
    end

    def cap_words
    # // Method to capitalize every word.
    self.split(' ').map {|w| w.capitalize }.join(' ')
    end

    def slice_char(char)
    # // Method to slice char.
    self.split(char).map {|w| w.sub(char, " ") }.join(" ")
    end

    end
    #==============================================================================#
    # ** Vocab
    #==============================================================================#
    class << Vocab

    def xparam(id)
    # // Method to return xparam name.
    case id
    when 0 ; "Hit Chance"
    when 1 ; "Evasion"
    when 2 ; "Critical Chance"
    when 3 ; "Critical Evasion"
    when 4 ; "Magic Evasion"
    when 5 ; "Magic Reflection"
    when 6 ; "Counter Attack"
    when 7 ; "HP Regeneration"
    when 8 ; "MP Regeneration"
    when 9 ; "TP Regeneration"
    end
    end

    end
    #==============================================================================
    # ** Sound
    #==============================================================================
    class << Sound

    def play(name, volume, pitch, type = :se)
    # // Method to play a sound. If specified name isn't valid throw an error.
    case type
    when :se ; RPG::SE.new(name, volume, pitch).play rescue valid?(name)
    when :me ; RPG::ME.new(name, volume, pitch).play rescue valid?(name)
    when :bgm ; RPG::BGM.new(name, volume, pitch).play rescue valid?(name)
    when :bgs ; RPG::BGS.new(name, volume, pitch).play rescue valid?(name)
    end
    end

    def valid?(name)
    # // Method to raise error if specified sound name is invalid.
    msgbox("Error. Unable to find sound file: " + name)
    exit
    end

    end
    #==============================================================================
    # ** DataManager
    #==============================================================================
    class << DataManager

    def savefile_max
    # // Method override, save file max.
    return XAIL::CORE::SAVE_MAX
    end

    end
    #==============================================================================
    # ** SceneManager
    #==============================================================================
    class << SceneManager

    def call_ext(scene_class, args = nil)
    # // Method to call a scene with arguments.
    @stack.push(@scene)
    @scene = scene_class.new(args)
    end

    end
    #==============================================================================
    # ** Scene_File
    #==============================================================================
    class Scene_File < Scene_MenuBase

    def visible_max
    # // Method override, visible_max for save files.
    return XAIL::CORE::SAVE_FILE_VIS
    end

    end
    #==============================================================================
    # ** Window_Base
    #------------------------------------------------------------------------------
    # Importing font fix that will remove weird characters.
    # Adding new methods such as new gauge, actor param, font text, icon drawing,
    # big icon drawing and a line with a shadow.
    #==============================================================================
    class Window_Base < Window

    # // Importing Custom font fix. (Credit Lone Wolf).
    alias :process_normal_character_vxa :process_normal_character
    def process_normal_character(c, pos)
    return unless c >= ' '
    process_normal_character_vxa(c, pos)
    end unless method_defined? :process_normal_character

    def draw_text_ex_no_reset(x, y, text)
    # // Method to draw ex text without resetting the font.
    text = convert_escape_characters(text)
    pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
    process_character(text.slice!(0, 1), text, pos) until text.empty?
    end

    alias xail_core_winbase_upt_tone update_tone
    def update_tone(*args, &block)
    # // Method to change tone of the window.
    return unless XAIL::CORE::USE_TONE
    xail_core_winbase_upt_tone(*args, &block)
    end

    def draw_gauge_ex(x, y, width, height, rate, color1, color2)
    # // Method to draw a gauge.
    fill_w = (width * rate).to_i
    gauge_y = y + line_height - 8
    contents.fill_rect(x, gauge_y, width + 1, height + 1, Color.new(255,255,255,64))
    contents.fill_rect(x, gauge_y, width, height, Color.new(0,0,0,100))
    contents.gradient_fill_rect(x, gauge_y, fill_w, height, color1, color2)
    end

    def draw_actor_param_gauge(actor, x, y, width, param_id, font, size, bar_color1, bar_color2, txt_color1, txt_color2)
    # // Method to draw actor parameters with a gauge.
    case param_id
    when 2 ; param_rate = actor.param(2) / actor.param_max(2).to_f
    when 3 ; param_rate = actor.param(3) / actor.param_max(3).to_f
    when 4 ; param_rate = actor.param(4) / actor.param_max(4).to_f
    when 5 ; param_rate = actor.param(5) / actor.param_max(5).to_f
    when 6 ; param_rate = actor.param(6) / actor.param_max(6).to_f
    when 7 ; param_rate = actor.param(7) / actor.param_max(7).to_f
    end
    contents.font.name = font
    contents.font.size = size
    contents.font.bold = true
    contents.font.shadow = false
    draw_gauge_ex(x, y - 14, width, 20, param_rate, bar_color1, bar_color2)
    contents.font.color = txt_color1
    draw_text(x + 10, y, 120, line_height, Vocab::param(param_id))
    contents.font.color = txt_color2
    draw_text(x + width - 38, y, 36, line_height, actor.param(param_id), 2)
    reset_font_settings
    end

    def draw_actor_xparam_gauge(actor, x, y, width, xparam_id, font, size, bar_color1, bar_color2, txt_color1, txt_color2)
    # // Method to draw actor xparameters with a gauge.
    case xparam_id
    when 0
    xparam_rate = actor.xparam(0) / 100.to_f
    xparam_name = Vocab.xparam(0)
    when 1
    xparam_rate = actor.xparam(1) / 100.to_f
    xparam_name = Vocab.xparam(1)
    when 2
    xparam_rate = actor.xparam(2) / 100.to_f
    xparam_name = Vocab.xparam(2)
    when 3
    xparam_rate = actor.xparam(3) / 100.to_f
    xparam_name = Vocab.xparam(3)
    when 4
    xparam_rate = actor.xparam(4) / 100.to_f
    xparam_name = Vocab.xparam(4)
    when 5
    xparam_rate = actor.xparam(5) / 100.to_f
    xparam_name = Vocab.xparam(5)
    when 6
    xparam_rate = actor.xparam(6) / 100.to_f
    xparam_name = Vocab.xparam(6)
    when 7
    xparam_rate = actor.xparam(7) / 100.to_f
    xparam_name = Vocab.xparam(7)
    when 8
    xparam_rate = actor.xparam(8) / 100.to_f
    xparam_name = Vocab.xparam(8)
    when 9
    xparam_rate = actor.xparam(9) / 100.to_f
    xparam_name = Vocab.xparam(9)
    end
    contents.font.name = font
    contents.font.size = size
    contents.font.bold = true
    contents.font.shadow = false
    draw_gauge_ex(x, y - 14, width, 20, xparam_rate, bar_color1, bar_color2)
    contents.font.color = txt_color1
    draw_text(x + 10, y, 120, line_height, xparam_name)
    contents.font.color = txt_color2
    draw_text(x + width - 38, y, 36, line_height, "#{actor.xparam(xparam_id)}%", 2)
    reset_font_settings
    end

    def draw_line_ex(x, y, color, shadow)
    # // Method to draw a horizontal line with a shadow.
    line_y = y + line_height / 2 - 1
    contents.fill_rect(x, line_y, contents_width, 2, color)
    line_y += 1
    contents.fill_rect(x, line_y, contents_width, 2, shadow)
    end

    def draw_box(x, y, width, height, color, shadow)
    # // Method to draw a box with shadow.
    contents.fill_rect(x, y, width, height, color)
    x += 1
    y += 1
    contents.fill_rect(x, y, width, height, shadow)
    end

    def draw_vertical_line_ex(x, y, color, shadow)
    # // Method to draw a vertical line with a shadow.
    line_x = x + line_height / 2 - 1
    contents.fill_rect(line_x, y, 2, contents_height, color)
    line_x += 1
    contents.fill_rect(line_x, y, 2, contents_height, shadow)
    end

    def draw_icons(icons, alignment, x = 0, y = 0, offset_icon = [])
    # // Method to draw icons in a horizonal or vertical alignment.
    icons.each {|icon|
    next if icon.nil?
    # // If included in offset do extra spacing.
    offset_icon.each {|offset|
    if icon == offset
    y += line_height * 1 if alignment == :vertical
    x += line_height * 1 if alignment == :horizontal
    end
    }
    draw_icon(icon.nil? ? nil : icon, x.nil? ? 0 : x, y.nil? ? 0 : y) rescue nil
    y += line_height if alignment == :vertical
    x += line_height if alignment == :horizontal
    }
    end

    def draw_big_icon(icon, x, y, width, height, opacity = 255)
    # // Method to draw a big icon.
    bitmap = Cache.system("Iconset")
    rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
    rect2 = Rect.new(x, y, width, height)
    contents.stretch_blt(rect2, bitmap, rect, opacity)
    end

    def draw_font_text(text, x, y, width, alignment, font, size, color, bold = true, shadow = true)
    # // Method to draw font text.
    contents.font.name = font
    contents.font.size = size
    contents.font.color = color
    contents.font.bold = bold
    contents.font.shadow = shadow
    contents.font.out_color = Color.new(0,0,0,255)
    draw_text(x, y, width, calc_line_height(text), text, alignment)
    reset_font_settings
    end

    def draw_font_text_ex(text, x, y, font, size, color, bold = true, shadow = true)
    # // Method to draw font text ex.
    contents.font.name = font
    contents.font.size = size
    contents.font.color = color
    contents.font.bold = bold
    contents.font.shadow = shadow
    contents.font.out_color = Color.new(0,0,0,255)
    text = convert_escape_characters(text)
    pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
    process_character(text.slice!(0, 1), text, pos) until text.empty?
    reset_font_settings
    end

    end
    #==============================================================================#
    # ** Window_Selectable
    #------------------------------------------------------------------------------
    # Adding support for pageleft and pageright for window selectable.
    #==============================================================================#
    class Window_Selectable < Window_Base

    def cursor_pageright ; end
    def cursor_pageleft ; end

    alias xail_core_winselect_process_cursor_move process_cursor_move
    def process_cursor_move(*args, &block)
    # // Method to process cursor movement.
    xail_core_winselect_process_cursor_move(*args, &block)
    cursor_pageright if !handle?(:pageright) && Input.trigger?(:RIGHT)
    cursor_pageright if !handle?(:pageleft) && Input.trigger?(:LEFT)
    end

    alias xail_core_winselect_process_handling process_handling
    def process_handling(*args, &block)
    # // Method to process handling.
    xail_core_winselect_process_handling(*args, &block)
    return process_pageright if handle?(:pageright) && Input.trigger?(:RIGHT)
    return process_pageleft if handle?(:pageleft) && Input.trigger?(:LEFT)
    end

    def process_pageright
    # // Method to process page right.
    Sound.play_cursor
    Input.update
    deactivate
    call_handler(:pageright)
    end

    def process_pageleft
    # // Method to process page left.
    Sound.play_cursor
    Input.update
    deactivate
    call_handler(:pageleft)
    end

    end
    #==============================================================================#
    # ** Window_Icon
    #------------------------------------------------------------------------------
    # New Window :: Window_Icon - A window for drawing icon(s).
    #==============================================================================#
    class Window_Icon < Window_Base

    attr_accessor :enabled
    attr_accessor :alignment

    def initialize(x, y, window_width, hsize)
    # // Method to initialize the icon window.
    super(0, 0, window_width, window_height(hsize))
    @icons = []
    @index = 0
    @enabled = true
    @alignment = 0
    refresh
    end

    def window_height(hsize)
    # // Method to return the height.
    fitting_height(hsize)
    end

    def refresh
    # // Method to refresh the icon window.
    contents.clear
    end

    def draw_cmd_icons(icons, index)
    # // Draw all of the icons.
    return if !@enabled
    count = 0
    for i in icons
    align = 0
    x = 110
    next if i[index].nil?
    case @alignment
    when 1, 2 ; align = -110
    end
    draw_icon(i[index], x + align, 24 * count)
    count += 1
    break if (24 * count > height - 24)
    end
    end

    end
    #==============================================================================
    # ** Game_Party
    #------------------------------------------------------------------------------
    # Adding check item method to return a item based on the type.
    #==============================================================================
    class Game_Party < Game_Unit

    def check_item?(item, type)
    # // Method to return a item based on the type.
    case type
    when :items ; $data_items[item]
    when :weapons ; $data_weapons[item]
    when :armors ; $data_armors[item]
    when :gold ; item
    when :exp ; item
    end
    end

    end
    #==============================================================================
    # ** Game_Event
    #------------------------------------------------------------------------------
    # Adding methods to check for comments on events.
    #==============================================================================
    class Game_Event < Game_Character

    def comment?(comment)
    # // Method to check if comment is included in event.
    unless empty? or @list.nil?
    for evt in @list
    if evt.code == 108 or evt.code == 408
    if evt.parameters[0].include?(comment)
    return true
    end
    end
    end
    end
    return false
    end

    def comment_int?(comment)
    # // Method to check for a integer in event.
    unless empty? or @list.nil?
    for evt in @list
    if evt.code == 108 or evt.code == 408
    if evt.parameters[0] =~ /<#{comment}:[ ]?(\d*)>?/
    return ($1.to_i > 0 ? $1.to_i : 0)
    end
    end
    end
    end
    end

    def comment_string?(comment)
    # // Method to check for a string in event.
    unless empty? or @list.nil?
    for evt in @list
    if evt.code == 108 or evt.code == 408
    if evt.parameters[0] =~ /<#{comment}:[ ]?(\w*)>?/
    return $1.to_s
    end
    end
    end
    end
    end


    end # END OF FILE

    #=*==========================================================================*=#
    # ** END OF FILE
    #=*==========================================================================*

     

     

    Grazie in anticipo

  10. Salve a tutti,
    esiste un modo per rendere questi due script compatibili fra loro? Oppure esistono altri message system compatibili? (Ho già provato con il Lune)

     

    (Sistema di scelte)

     

    #------------------------------------------------------------------------------#
    # Galv's Visual Novel Choices
    #------------------------------------------------------------------------------#
    # For: RPGMAKER VX ACE
    # Version 1.9
    #------------------------------------------------------------------------------#
    # 2013-01-16 - Version 1.9 - Added Y offset for choice window
    # 2012-11-28 - Version 1.8 - Z level setting added
    # 2012-11-28 - Version 1.7 - Added compatability for some cursor scripts
    # 2012-11-28 - Version 1.6 - Fixed a bug that could crash the game.
    # 2012-11-28 - Version 1.5 - Added offset to change postion of cursor x and y
    # 2012-11-28 - Version 1.4 - Fixed z levels and made cursor use an image
    # 2012-11-27 - Version 1.3 - Fixed a bug with cancel choice selection
    # 2012-11-27 - Version 1.2 - added a switch to disable script effects
    # 2012-11-27 - Version 1.1 - added ability to use different image per choice
    # - added a couple more options
    # 2012-11-27 - Version 1.0 - release
    #------------------------------------------------------------------------------#
    # This script overwrites the default "Show Choices" list. The choices are
    # changed so they display centered on the screen with a graphic behind each
    # of them. Made with visual novel choice selection in mind.
    #------------------------------------------------------------------------------#
    # INSTRUCTIONS:
    # Copy the graphic from the demo /Graphics/System into your project.
    # Copy the script into your script list, below Materials and above Main
    #
    # Some setup options below, most only need to be changed if you use your own
    # custom choice image.
    #------------------------------------------------------------------------------#
    # Codes:
    #------------------------------------------------------------------------------#
    # Most of the usual codes that work in messages should work in choices.
    # (eg. \V[x], \N[x], \C[x], etc. Look at message tooltip to know more.)
    #
    # A new one has been added so you can change the background image for separate
    # choice options.
    #
    # \B[x]
    #
    # This works by adding the number x (as you put in the code above) to the end
    # of the CHOICE IMAGE file name. For example, the default choice image is:
    # "Choice.png" located in /Graphics/System/. If you put the code anywhere in
    # a choice box: \B[3] it will look for "Choice3.png" image in the same
    # location.
    #------------------------------------------------------------------------------#

    ($imported ||= {})["Galvs_Image_Choices"] = true
    module Galv_Choice

    #------------------------------------------------------------------------------#
    # SCRIPT SETUP OPTIONS
    #------------------------------------------------------------------------------#

    CURSOR_IMAGE = "Cursor" # Images used to determine which option you select
    CURSOR_OPACITY = 255 # Opacity of the cursor
    CURSOR_Y_OFFSET = 0 # Nudge cursor position vertically
    CURSOR_X_OFFSET = 0 # Nudge cursor position horizontally

    CHOICE_IMAGE = "Choice" # Image for each choice located in /Graphics/System
    IMAGE_Y_OFFSET = 3 # Nudge your choice image vertically if needed
    IMAGE_OPACITY = 215 # The opacity of the image

    CHOICE_HEIGHT = 45 # How tall each choice.
    CHOICE_ITEM_Y = 2 # Offset for choice item text

    CENTER_TEXT = true # left aligned if false, centered if true

    DISABLE_SWITCH = 1 # Turn this switch ON to disable this script

    CHOICES_Y = 0 # Y offset to move choice window up or down.
    # useful if you use a script that creates a namebox
    CHOICES_Z = 50 # The z value of the choices window. Try changing it
    # if pictures or other scripts appear over or under
    # the choices window to how you like.

    #------------------------------------------------------------------------------#
    OTHER_Y_OFFSET = 12 # May fix other cursor scripts positioning
    #------------------------------------------------------------------------------#
    # SCRIPT SETUP OPTIONS
    #------------------------------------------------------------------------------#

    end

    class Window_ChoiceList < Window_Command

    alias galv_choice_initialize initialize
    def initialize(message_window)
    galv_choice_initialize(message_window)
    self.z = Galv_Choice::CHOICES_Z
    end

    def start
    @index = 0
    setup_choices
    make_cursor
    refresh
    open
    activate
    update_placement
    update_bgs
    refresh
    select(0)
    end

    def make_cursor
    return if $game_switches[Galv_Choice::DISABLE_SWITCH]
    @cursor_sprite = Sprite.new
    @cursor_sprite.bitmap = Cache.system(Galv_Choice::CURSOR_IMAGE)
    end

    def setup_choices
    @choice_sprite = []
    if !$game_switches[Galv_Choice::DISABLE_SWITCH]
    self.opacity = 0
    get_widths
    else
    self.opacity = 255
    end
    end

    alias galv_choice_update_placement update_placement
    def update_placement
    if $game_switches[Galv_Choice::DISABLE_SWITCH]
    galv_choice_update_placement
    else
    self.width = [max_choice_width + 12, 96].max + padding * 4
    self.width = [width, Graphics.width].min
    self.height = contents_height + Galv_Choice::CHOICE_HEIGHT - 10
    self.x = (Graphics.width - width) / 2

    if @message_window.openness < 100
    self.y = Graphics.height - contents_height + item_height / 2
    elsif @message_window.y >= Graphics.height / 2
    self.y = @message_window.y - contents_height + item_height / 2 - Galv_Choice::CHOICES_Y
    else
    self.y = @message_window.y + @message_window.height + item_height / 2 + Galv_Choice::CHOICES_Y
    end
    end
    end

    alias galv_choice_contents_height contents_height
    def contents_height
    if $game_switches[Galv_Choice::DISABLE_SWITCH]
    galv_choice_contents_height
    else
    (item_max + 1) * item_height
    end
    end

    def draw_item(index)
    rect = item_rect_for_text(index)
    draw_text_ex(rect.x, rect.y, command_name(index))
    if !$game_switches[Galv_Choice::DISABLE_SWITCH]
    draw_bgs(index)
    end
    end

    def item_rect_for_text(index)
    rect = item_rect(index)

    if $game_switches[Galv_Choice::DISABLE_SWITCH]
    rect.x += 4
    rect.width -= 8
    rect
    else
    if Galv_Choice::CENTER_TEXT
    rect.x = (max_choice_width - @text_sizes.collect {|s| text_size(s).width }[index] + (padding * 3)) / 2
    else
    rect.x += 4
    end
    rect.width -= 8
    rect.y += Galv_Choice::CHOICE_ITEM_Y
    rect
    end
    end

    def get_widths
    @text_sizes = []
    @choice_background = []
    $game_message.choices.each_with_index do |c,i|
    @text_sizes = esc_characters(c,i)
    end
    end

    def esc_characters(text,index)
    result = text.to_s.clone
    result.gsub!(/\\/) { "\e" }
    result.gsub!(/\e\e/) { "\\" }
    result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
    result.gsub!(/\eN\[(\d+)\]/i) { $game_actors[$1.to_i].name}
    result.gsub!(/\eP\[(\d+)\]/i) {
    if $game_party.members[$1.to_i].nil?
    ""
    else
    $game_party.members[$1.to_i].name
    end
    }
    result.gsub!(/\eG/i) { Vocab::currency_unit }
    result.gsub!(/\eC\[(\d+)\]/i) { "" }
    result.gsub!(/\eI\[(\d+)\]/i) { " " }
    result.gsub!(/\eB\[(\d+)\]/i) { @choice_background[index] = $1.to_i }
    result.gsub!(/\eB\[(\d+)\]/i) { "" }
    result
    end

    def convert_escape_characters(text)
    result = text.to_s.clone
    result.gsub!(/\\/) { "\e" }
    result.gsub!(/\e\e/) { "\\" }
    result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
    result.gsub!(/\eV\[(\d+)\]/i) { $game_variables[$1.to_i] }
    result.gsub!(/\eN\[(\d+)\]/i) { actor_name($1.to_i) }
    result.gsub!(/\eP\[(\d+)\]/i) { party_member_name($1.to_i) }
    result.gsub!(/\eG/i) { Vocab::currency_unit }
    result.gsub!(/\eB\[(\d+)\]/i) { "" }
    result
    end

    def item_height
    return line_height if $game_switches[Galv_Choice::DISABLE_SWITCH]
    return Galv_Choice::CHOICE_HEIGHT
    end

    def item_rect(index)
    rect = Rect.new
    rect.width = item_width
    rect.height = item_height - 15
    rect.height += 15 if $game_switches[Galv_Choice::DISABLE_SWITCH]
    rect.x = index % col_max * (item_width + spacing)
    rect.y = index / col_max * item_height
    rect
    end

    def draw_bgs(index)
    return if @choice_sprite[index] != nil

    if @choice_background[index].nil?
    b = ""
    else
    b = @choice_background[index]
    end
    @choice_sprite[index] = Sprite.new
    @choice_sprite[index].bitmap = Cache.system(Galv_Choice::CHOICE_IMAGE + b.to_s)
    @choice_sprite[index].x = index % col_max * (item_width + spacing)
    @choice_sprite[index].y = index / col_max * item_height
    @choice_sprite[index].z = self.z - 2
    end

    def update_bgs
    @choice_sprite.each_with_index do |s,i|
    s.y = self.y + i * Galv_Choice::CHOICE_HEIGHT + Galv_Choice::IMAGE_Y_OFFSET
    s.x = (Graphics.width - s.width) / 2
    s.opacity = Galv_Choice::IMAGE_OPACITY
    end
    end

    def dispose_bgs
    @choice_sprite.each_with_index do |s,i|
    s.dispose
    s.bitmap.dispose
    end
    if !$game_switches[Galv_Choice::DISABLE_SWITCH]
    @cursor_sprite.dispose
    @cursor_sprite.bitmap.dispose
    @choice_sprite = []
    end
    end

    alias galv_choice_call_ok_handler call_ok_handler
    def call_ok_handler
    galv_choice_call_ok_handler
    dispose_bgs
    end
    alias galv_choice_call_cancel_handler call_cancel_handler
    def call_cancel_handler
    galv_choice_call_cancel_handler
    dispose_bgs
    end

    def update_cursor
    if $game_switches[Galv_Choice::DISABLE_SWITCH]
    super
    else
    cursor_rect.empty
    return if @cursor_sprite.nil? || @choice_sprite.nil?
    if @index < 0
    @cursor_sprite.opacity = 0
    else
    @cursor_sprite.opacity = Galv_Choice::CURSOR_OPACITY
    @cursor_sprite.x = @choice_sprite[@index].x + Galv_Choice::CURSOR_X_OFFSET
    @cursor_sprite.y = @choice_sprite[@index].y + Galv_Choice::CURSOR_Y_OFFSET
    @cursor_sprite.z = self.z - 1
    cursor_rect.y = (item_height * @index) + Galv_Choice::OTHER_Y_OFFSET
    end
    end
    end

    end # Window_ChoiceList < Window_Command

     

     

    (XS Message system)

     

    #==============================================================================
    # XS - Message
    # Author: Nicke
    # Created: 08/11/2012
    # Edited: 19/11/2012
    # 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.
    #==============================================================================
    # Requires: XS - Core Script.
    #==============================================================================
    # A message system based on using variables ingame.
    # If the variable has the value 0 the default value will take place.
    # To setup a simple message dialog do as you would normally do when adding
    # text in events but before it set the variables you want to change.
    #
    # When changing width and height you should know that height is visible
    # line numbers which means the numbers 1 to 4 is prefered to use.
    #
    # Example:
    # You could set the width to 544 and height to 4 which is pretty much how
    # the default message window looks like.
    #
    # This script also support sound effect to be played each time a character is
    # processed. Can be tweaked in the settings.
    #
    # When setting variables for bold, shadow, namebox and skin etc. Remember to use
    # the script area in the variable.
    #
    # If I wanted to enable bold and setting a custom skin I would do this:
    # Set the value "true" in the script section for variable 41.
    # Set the value "Window" in the script section for variable 44.
    #
    # Note: When changing the message window skin you must use this method after
    # setting the variable in order to properly update to the new skin:
    # SceneManager.scene.set_message_skin
    #
    # Example:
    # So after setting variable 44 (default one) to "Window3" call that method.
    #
    # *** Only for RPG Maker VX Ace. ***
    #==============================================================================
    ($imported ||= {})["XAIL-MESSAGE-SYSTEM"] = true

    module XAIL
    module MSG
    #--------------------------------------------------------------------------#
    # * Settings
    #--------------------------------------------------------------------------#
    # Set the window variables.
    # WINDOW_VAR = [width, height, padding, x, y, delay,
    # font_name, font_size, font_color, outline, bold, shadow, namebox, skin]
    WINDOW_VAR = [31,32,33,34,35,36,37,38,39,40,41,42,43,44]

    # Set the window open/close animation in frames.
    # WINDOW_ANIMATE = [openness, closeness]
    WINDOW_ANIMATE = [15, 15]

    # Name box options.
    # NAME = [font, size, color, bold, shadow]
    NAME = [["Verdana", "Anklada™"], 14, Color.new(255,225,235,225), true, true]

    # Set the sound for when the characters are processing.
    # The sound effect will be played each time the occurence is met.
    # From the default it will happen every odd processed character.
    # Can be set to nil to disable.
    # SE = [occurence, name, vol, pitch]
    SE = [2, "Decision1", 60, 150]

    # Set the animation options for face window.
    # For type only :fade exists at the moment.
    # ANIM_FACE = [enabled, type, animation_speed_in, animation_speed_out]
    ANIM_FACE = [true, :fade, 12, 8]

    # Set the animation options for name window.
    # For type only :fade exists at the moment.
    # ANIM_NAME = [animation_speed_in, animation_speed_out]
    ANIM_NAME = [true, :fade, 12, 8]

    end
    end
    # *** Don't edit below unless you know what you are doing. ***
    #==============================================================================#
    # ** Error Handler
    #==============================================================================#
    unless $imported["XAIL-XS-CORE"]
    # // Error handler when XS - Core is not installed.
    msg = "The script %s requires the latest version of XS - Core in order to function properly."
    name = "XS - Message"
    msgbox(sprintf(msg, name))
    exit
    end
    #==============================================================================#
    # ** Window_Base
    #==============================================================================#
    class Window_Base < Window

    alias xail_msg_winbase_upd_open update_open
    def update_open(*args, &block)
    # // Method to update openness
    # This should only occur when $game_message is visible.
    if $game_message.visible
    self.openness += XAIL::MSG::WINDOW_ANIMATE[0]
    self.opacity = self.openness unless self.opacity == 0
    self.back_opacity = self.openness unless self.opacity == 0
    @opening = false if open?
    else
    xail_msg_winbase_upd_open(*args, &block)
    end
    end

    alias xail_msg_winbase_upd_close update_close
    def update_close(*args, &block)
    # // Method override to update closeness.
    # This should only occur when $game_message is visible.
    if $game_message.visible
    self.openness -= XAIL::MSG::WINDOW_ANIMATE[1]
    self.opacity = self.openness unless self.opacity == 0
    self.back_opacity = self.openness unless self.opacity == 0
    @closing = false if close?
    else
    xail_msg_winbase_upd_close(*args, &block)
    end
    end

    end
    #==============================================================================#
    # ** Window_Message_Face
    #==============================================================================#
    class Window_Message_Face < Window_Base

    def initialize(x, y, width, height)
    # // Method to initialize.
    super(x, y, width, height)
    skin = $game_variables[XAIL::MSG::WINDOW_VAR[13]] == 0 ? "Window" : $game_variables[XAIL::MSG::WINDOW_VAR[13]]
    self.windowskin = Cache.system(skin)
    refresh
    end

    def refresh
    # // Method to refresh.
    contents.clear
    r = Rect.new(0, 0, width, height)
    r2 = Rect.new(2, 2, width-28, height-28)
    contents.fill_rect(r, Color.new(75,125,135,245))
    contents.gradient_fill_rect(r2, Color.new(125,125,125,255), Color.new(0,0,0,255), false)
    draw_face($game_message.face_name, $game_message.face_index, 4, 4)
    end

    end
    #==============================================================================#
    # ** Window_Message_Name
    #==============================================================================#
    class Window_Message_Name < Window_Base

    def initialize(name, x, y, width, height)
    # // Method to initialize.
    super(x, y, width, height)
    skin = $game_variables[XAIL::MSG::WINDOW_VAR[13]] == 0 ? "Window" : $game_variables[XAIL::MSG::WINDOW_VAR[13]]
    self.windowskin = Cache.system(skin)
    @name = name
    refresh
    end

    def standard_padding
    # // Method to set standard padding
    return 4
    end

    def name=(name)
    # // Method to refresh and set name.
    return if @name == name
    @name = name
    refresh
    end

    def refresh
    # // Method to refresh.
    contents.clear
    draw_font_text(@name, 0, 0, contents_width, 1, XAIL::MSG::NAME[0], XAIL::MSG::NAME[1], XAIL::MSG::NAME[2])
    end

    end
    #==============================================================================#
    # ** Window_Message
    #==============================================================================#
    class Window_Message < Window_Base

    def initialize
    # // Method override initialize for window message.
    super(0, 0, window_width, window_height)
    self.z = 200
    self.openness = 0
    create_all_windows
    create_back_bitmap
    create_back_sprite
    clear_instance_variables
    set_window_skins
    end

    def set_window_skins
    # // Method to set window skins.
    @gold_window.windowskin = Cache.system(get_var(XAIL::MSG::WINDOW_VAR[13], :skin))
    @choice_window.windowskin = Cache.system(get_var(XAIL::MSG::WINDOW_VAR[13], :skin))
    @number_window.windowskin = Cache.system(get_var(XAIL::MSG::WINDOW_VAR[13], :skin))
    @item_window.windowskin = Cache.system(get_var(XAIL::MSG::WINDOW_VAR[13], :skin))
    end

    #~ alias xail_msg_winmsg_create_all_windows create_all_windows
    #~ def create_all_windows(*args, &block)
    #~ # // Method to create all windows.
    #~ xail_msg_winmsg_create_all_windows(*args, &block)
    #~ @choice_window = Window_ChoiceList.new(self)
    #~ @number_window = Window_NumberInput.new(self)
    #~ @item_window = Window_KeyItem.new(self)
    #~ @choice_window.windowskin
    #~ end

    def window_width
    # // Method override to return width.
    get_var(XAIL::MSG::WINDOW_VAR[0], :width)
    end

    def window_height
    # // Method override to return height.
    fitting_height(get_var(XAIL::MSG::WINDOW_VAR[1], :height))
    end

    def standard_padding
    # // Method to return the padding.
    get_var(XAIL::MSG::WINDOW_VAR[2], :padding)
    end

    def window_x
    # // Method to return x value of window.
    get_var(XAIL::MSG::WINDOW_VAR[3], :win_x)
    end

    def window_y
    # // Method to return y value of window.
    get_var(XAIL::MSG::WINDOW_VAR[4], :win_y)
    end

    def get_var(var, type)
    # // Method to return variable value if conditions met.
    unless var.nil? or $game_variables[var] == 0
    return $game_variables[var]
    else
    case type
    when :width ; return Graphics.width
    when :height ; return visible_line_number
    when :padding ; return 12
    when :win_x ; return 0
    when :win_y ; return 0
    when :wait ; return 0
    when :font_name ; return Font.default_name
    when :font_size ; return Font.default_size
    when :font_color ; return Font.default_color
    when :font_out_color ; return Font.default_out_color
    when :font_bold ; return Font.default_bold
    when :font_shadow ; return Font.default_shadow
    when :name ; return ""
    when :skin ; return "Window"
    end
    end
    end

    alias xail_msg_winmsg_upd_placement update_placement
    def update_placement(*args, &block)
    # // Method to update placement.
    xail_msg_winmsg_upd_placement(*args, &block)
    self.width = window_width
    self.height = window_height
    self.x = window_x
    self.y = window_y
    create_contents
    end

    def fiber_main
    # // Method override for fiber main.
    $game_message.visible = true
    update_background
    update_placement
    loop do
    process_all_text if $game_message.has_text?
    process_input
    $game_message.clear
    @gold_window.close
    dispose_face
    dispose_name
    Fiber.yield
    break unless text_continue?
    end
    close_and_wait
    $game_message.visible = false
    @fiber = nil
    end

    def draw_message_face
    # // Method to draw face window.
    unless $game_message.face_name.empty?
    x = window_x - 44
    @face_window = Window_Message_Face.new(x, window_y, 128, 128)
    @face_window.z = 201
    @face_window.opacity = 0
    if XAIL::MSG::ANIM_FACE[0]
    case XAIL::MSG::ANIM_FACE[1]
    when :fade
    @face_window.contents_opacity = 0
    fade(XAIL::MSG::ANIM_FACE[2], @face_window, :in)
    end
    end
    end
    end

    def draw_message_name
    # // Method to draw name window.
    name = get_var(XAIL::MSG::WINDOW_VAR[12], :name)
    unless name == ""
    w = text_size(name).width + 24
    x = window_x + 16
    @name_window = Window_Message_Name.new(name, x, window_y - 31, w, 34)
    @name_window.z = 199
    if XAIL::MSG::ANIM_NAME[0]
    case XAIL::MSG::ANIM_NAME[1]
    when :fade
    @name_window.opacity = @name_window.contents_opacity = 0
    fade(XAIL::MSG::ANIM_NAME[2], @name_window, :in, true, true)
    end
    end
    end
    end

    alias xail_msg_winmsg_process_normal_character process_normal_character
    def process_normal_character(c, pos)
    # // Method to set a wait time for each processed character.
    # This will also play a SE based on if the pos is a odd number.
    xail_msg_winmsg_process_normal_character(c, pos)
    wait(get_var(XAIL::MSG::WINDOW_VAR[5], :wait))
    if (pos[:x] % XAIL::MSG::SE[0] > 0)
    Sound.play(XAIL::MSG::SE[1], XAIL::MSG::SE[2], XAIL::MSG::SE[3]) unless XAIL::MSG::SE.nil?
    end
    end

    alias xail_msg_winmsg_open_and_wait open_and_wait
    def open_and_wait(*args, &block)
    # // Method for open and wait.
    xail_msg_winmsg_open_and_wait(*args, &block)
    draw_message_face ; draw_message_name
    end

    def new_page(text, pos)
    # // Method override for new page.
    contents.clear
    contents.font.name = get_var(XAIL::MSG::WINDOW_VAR[6], :font_name)
    contents.font.size = get_var(XAIL::MSG::WINDOW_VAR[7], :font_size)
    contents.font.color = get_var(XAIL::MSG::WINDOW_VAR[8], :font_color)
    contents.font.out_color = get_var(XAIL::MSG::WINDOW_VAR[9], :font_out_color)
    contents.font.bold = eval(get_var(XAIL::MSG::WINDOW_VAR[10], :font_bold)) unless $game_variables[XAIL::MSG::WINDOW_VAR[10]] == 0
    contents.font.shadow = eval(get_var(XAIL::MSG::WINDOW_VAR[11], :font_shadow)) unless $game_variables[XAIL::MSG::WINDOW_VAR[11]] == 0
    pos[:x] = new_line_x
    pos[:y] = 0
    pos[:new_x] = new_line_x
    pos[:height] = calc_line_height(text)
    clear_flags
    end

    def new_line_x
    # // Method for new line x pos.
    $game_message.face_name.empty? ? 0 : @face_window.width / 2 + 4
    end

    def input_choice
    # // Method to start the input choice.
    @choice_window.start
    skin = $game_variables[XAIL::MSG::WINDOW_VAR[13]] == 0 ? "Window" : $game_variables[XAIL::MSG::WINDOW_VAR[13]]
    @choice_window.windowskin = Cache.system(skin)
    @choice_window.opacity = 255
    Fiber.yield while @choice_window.active
    end

    def input_number
    # // Method to start the input number.
    @number_window.start
    skin = $game_variables[XAIL::MSG::WINDOW_VAR[13]] == 0 ? "Window" : $game_variables[XAIL::MSG::WINDOW_VAR[13]]
    @number_window.windowskin = Cache.system(skin)
    @number_window.opacity = 255
    Fiber.yield while @number_window.active
    end

    def fade(max, window, type, con_op = true, op = false)
    # // Method to fade in/out the windows opacity and/or contents_opacity.
    return if window.is_a?(Array)
    case type
    when :in
    for i in 1..max
    Graphics.update
    window.contents_opacity = i * (255 / max) if con_op
    window.opacity = i * (255 / max) if op
    end
    when :out
    for i in 1..max
    Graphics.update
    window.contents_opacity = 255 - i * (255 / max) if con_op
    window.opacity = 255 - i * (255 / max) if op
    end
    end
    end

    def dispose_face
    # // Method to dispose face window.
    unless @face_window.nil? or @face_window.is_a?(Array)
    if XAIL::MSG::ANIM_FACE[0]
    case XAIL::MSG::ANIM_FACE[1]
    when :fade
    fade(XAIL::MSG::ANIM_FACE[3], @face_window, :out)
    end
    end
    @face_window = nil, @face_window.dispose
    end
    end

    def dispose_name
    # // Method to dispose name window.
    unless @name_window.nil? or @name_window.is_a?(Array)
    if XAIL::MSG::ANIM_NAME[0]
    case XAIL::MSG::ANIM_NAME[1]
    when :fade
    fade(XAIL::MSG::ANIM_NAME[3], @name_window, :out)
    end
    end
    @name_window = nil, @name_window.dispose
    end
    end

    end
    #==============================================================================#
    # ** Scene_Map
    #==============================================================================#
    class Scene_Map < Scene_Base

    def set_message_skin
    # // Method to set message window skin.
    skin = $game_variables[XAIL::MSG::WINDOW_VAR[13]] == 0 ? "Window" : $game_variables[XAIL::MSG::WINDOW_VAR[13]]
    @message_window.windowskin = Cache.system(skin)
    end

    end # END OF FILE

    #=*==========================================================================*=#
    # ** END OF FILE
    #=*==========================================================================*=#

     

     

    (Seconda parte del message system)

     

    #==============================================================================
    # XaiL System - Core
    # Author: Nicke
    # Created: 07/01/2012
    # Edited: 08/10/2013
    # Version: 2.1f
    #==============================================================================
    # 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.
    #
    # Core script for XaiL System.
    # Caution! This needs to be located before any other XS scripts.
    #
    # *** Only for RPG Maker VX Ace. ***
    #==============================================================================
    ($imported ||= {})["XAIL-XS-CORE"] = true

    module Colors
    #--------------------------------------------------------------------------#
    # * Colors
    #--------------------------------------------------------------------------#
    White = Color.new(255,255,255)
    LightRed = Color.new(255,150,150)
    LightGreen = Color.new(150,255,150)
    LightBlue = Color.new(150,150,255)
    DarkYellow = Color.new(225,225,20)
    Alpha = Color.new(0,0,0,128)
    AlphaMenu = 100
    end
    module XAIL
    module CORE
    #--------------------------------------------------------------------------#
    # * Settings
    #--------------------------------------------------------------------------#
    # Graphics.resize_screen(width, height )
    Graphics.resize_screen(544,416)

    # FONT DEFAULTS:
    Font.default_name = ["VL Gothic"]
    Font.default_size = 20
    Font.default_bold = false
    Font.default_italic = false
    Font.default_shadow = true
    Font.default_outline = true
    Font.default_color = Colors::White
    Font.default_out_color = Colors::Alpha

    # USE_TONE = true/false:
    # Window tone for all windows ingame. Default: true.
    USE_TONE = false

    # SAVE
    SAVE_MAX = 20 # Default 16.
    SAVE_FILE_VIS = 4 # Default 4.

    # JAPANESE = true/false
    JAPANESE = false

    end
    end
    # *** Don't edit below unless you know what you are doing. ***
    #==============================================================================#
    # ** Game_System
    #==============================================================================#
    class Game_System

    # // Method to determine japanese game.
    def japanese? ; return XAIL::CORE::JAPANESE ; end

    end
    #==============================================================================#
    # ** String
    #==============================================================================#
    class String

    def to_class(parent = Kernel)
    # // Method to convert string to class.
    chain = self.split "::"
    klass = parent.const_get chain.shift
    return chain.size < 1 ? (klass.is_a?(Class) ? klass : nil) : chain.join("::").to_class(klass)
    rescue
    nil
    end

    def cap_words
    # // Method to capitalize every word.
    self.split(' ').map {|w| w.capitalize }.join(' ')
    end

    def slice_char(char)
    # // Method to slice char.
    self.split(char).map {|w| w.sub(char, " ") }.join(" ")
    end

    end
    #==============================================================================#
    # ** Vocab
    #==============================================================================#
    class << Vocab

    def xparam(id)
    # // Method to return xparam name.
    case id
    when 0 ; "Hit Chance"
    when 1 ; "Evasion"
    when 2 ; "Critical Chance"
    when 3 ; "Critical Evasion"
    when 4 ; "Magic Evasion"
    when 5 ; "Magic Reflection"
    when 6 ; "Counter Attack"
    when 7 ; "HP Regeneration"
    when 8 ; "MP Regeneration"
    when 9 ; "TP Regeneration"
    end
    end

    end
    #==============================================================================
    # ** Sound
    #==============================================================================
    class << Sound

    def play(name, volume, pitch, type = :se)
    # // Method to play a sound. If specified name isn't valid throw an error.
    case type
    when :se ; RPG::SE.new(name, volume, pitch).play rescue valid?(name)
    when :me ; RPG::ME.new(name, volume, pitch).play rescue valid?(name)
    when :bgm ; RPG::BGM.new(name, volume, pitch).play rescue valid?(name)
    when :bgs ; RPG::BGS.new(name, volume, pitch).play rescue valid?(name)
    end
    end

    def valid?(name)
    # // Method to raise error if specified sound name is invalid.
    msgbox("Error. Unable to find sound file: " + name)
    exit
    end

    end
    #==============================================================================
    # ** DataManager
    #==============================================================================
    class << DataManager

    def savefile_max
    # // Method override, save file max.
    return XAIL::CORE::SAVE_MAX
    end

    end
    #==============================================================================
    # ** SceneManager
    #==============================================================================
    class << SceneManager

    def call_ext(scene_class, args = nil)
    # // Method to call a scene with arguments.
    @stack.push(@scene)
    @scene = scene_class.new(args)
    end

    end
    #==============================================================================
    # ** Scene_File
    #==============================================================================
    class Scene_File < Scene_MenuBase

    def visible_max
    # // Method override, visible_max for save files.
    return XAIL::CORE::SAVE_FILE_VIS
    end

    end
    #==============================================================================
    # ** Window_Base
    #------------------------------------------------------------------------------
    # Importing font fix that will remove weird characters.
    # Adding new methods such as new gauge, actor param, font text, icon drawing,
    # big icon drawing and a line with a shadow.
    #==============================================================================
    class Window_Base < Window

    # // Importing Custom font fix. (Credit Lone Wolf).
    alias :process_normal_character_vxa :process_normal_character
    def process_normal_character(c, pos)
    return unless c >= ' '
    process_normal_character_vxa(c, pos)
    end unless method_defined? :process_normal_character

    def draw_text_ex_no_reset(x, y, text)
    # // Method to draw ex text without resetting the font.
    text = convert_escape_characters(text)
    pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
    process_character(text.slice!(0, 1), text, pos) until text.empty?
    end

    alias xail_core_winbase_upt_tone update_tone
    def update_tone(*args, &block)
    # // Method to change tone of the window.
    return unless XAIL::CORE::USE_TONE
    xail_core_winbase_upt_tone(*args, &block)
    end

    def draw_gauge_ex(x, y, width, height, rate, color1, color2)
    # // Method to draw a gauge.
    fill_w = (width * rate).to_i
    gauge_y = y + line_height - 8
    contents.fill_rect(x, gauge_y, width + 1, height + 1, Color.new(255,255,255,64))
    contents.fill_rect(x, gauge_y, width, height, Color.new(0,0,0,100))
    contents.gradient_fill_rect(x, gauge_y, fill_w, height, color1, color2)
    end

    def draw_actor_param_gauge(actor, x, y, width, param_id, font, size, bar_color1, bar_color2, txt_color1, txt_color2)
    # // Method to draw actor parameters with a gauge.
    case param_id
    when 2 ; param_rate = actor.param(2) / actor.param_max(2).to_f
    when 3 ; param_rate = actor.param(3) / actor.param_max(3).to_f
    when 4 ; param_rate = actor.param(4) / actor.param_max(4).to_f
    when 5 ; param_rate = actor.param(5) / actor.param_max(5).to_f
    when 6 ; param_rate = actor.param(6) / actor.param_max(6).to_f
    when 7 ; param_rate = actor.param(7) / actor.param_max(7).to_f
    end
    contents.font.name = font
    contents.font.size = size
    contents.font.bold = true
    contents.font.shadow = false
    draw_gauge_ex(x, y - 14, width, 20, param_rate, bar_color1, bar_color2)
    contents.font.color = txt_color1
    draw_text(x + 10, y, 120, line_height, Vocab::param(param_id))
    contents.font.color = txt_color2
    draw_text(x + width - 38, y, 36, line_height, actor.param(param_id), 2)
    reset_font_settings
    end

    def draw_actor_xparam_gauge(actor, x, y, width, xparam_id, font, size, bar_color1, bar_color2, txt_color1, txt_color2)
    # // Method to draw actor xparameters with a gauge.
    case xparam_id
    when 0
    xparam_rate = actor.xparam(0) / 100.to_f
    xparam_name = Vocab.xparam(0)
    when 1
    xparam_rate = actor.xparam(1) / 100.to_f
    xparam_name = Vocab.xparam(1)
    when 2
    xparam_rate = actor.xparam(2) / 100.to_f
    xparam_name = Vocab.xparam(2)
    when 3
    xparam_rate = actor.xparam(3) / 100.to_f
    xparam_name = Vocab.xparam(3)
    when 4
    xparam_rate = actor.xparam(4) / 100.to_f
    xparam_name = Vocab.xparam(4)
    when 5
    xparam_rate = actor.xparam(5) / 100.to_f
    xparam_name = Vocab.xparam(5)
    when 6
    xparam_rate = actor.xparam(6) / 100.to_f
    xparam_name = Vocab.xparam(6)
    when 7
    xparam_rate = actor.xparam(7) / 100.to_f
    xparam_name = Vocab.xparam(7)
    when 8
    xparam_rate = actor.xparam(8) / 100.to_f
    xparam_name = Vocab.xparam(8)
    when 9
    xparam_rate = actor.xparam(9) / 100.to_f
    xparam_name = Vocab.xparam(9)
    end
    contents.font.name = font
    contents.font.size = size
    contents.font.bold = true
    contents.font.shadow = false
    draw_gauge_ex(x, y - 14, width, 20, xparam_rate, bar_color1, bar_color2)
    contents.font.color = txt_color1
    draw_text(x + 10, y, 120, line_height, xparam_name)
    contents.font.color = txt_color2
    draw_text(x + width - 38, y, 36, line_height, "#{actor.xparam(xparam_id)}%", 2)
    reset_font_settings
    end

    def draw_line_ex(x, y, color, shadow)
    # // Method to draw a horizontal line with a shadow.
    line_y = y + line_height / 2 - 1
    contents.fill_rect(x, line_y, contents_width, 2, color)
    line_y += 1
    contents.fill_rect(x, line_y, contents_width, 2, shadow)
    end

    def draw_box(x, y, width, height, color, shadow)
    # // Method to draw a box with shadow.
    contents.fill_rect(x, y, width, height, color)
    x += 1
    y += 1
    contents.fill_rect(x, y, width, height, shadow)
    end

    def draw_vertical_line_ex(x, y, color, shadow)
    # // Method to draw a vertical line with a shadow.
    line_x = x + line_height / 2 - 1
    contents.fill_rect(line_x, y, 2, contents_height, color)
    line_x += 1
    contents.fill_rect(line_x, y, 2, contents_height, shadow)
    end

    def draw_icons(icons, alignment, x = 0, y = 0, offset_icon = [])
    # // Method to draw icons in a horizonal or vertical alignment.
    icons.each {|icon|
    next if icon.nil?
    # // If included in offset do extra spacing.
    offset_icon.each {|offset|
    if icon == offset
    y += line_height * 1 if alignment == :vertical
    x += line_height * 1 if alignment == :horizontal
    end
    }
    draw_icon(icon.nil? ? nil : icon, x.nil? ? 0 : x, y.nil? ? 0 : y) rescue nil
    y += line_height if alignment == :vertical
    x += line_height if alignment == :horizontal
    }
    end

    def draw_big_icon(icon, x, y, width, height, opacity = 255)
    # // Method to draw a big icon.
    bitmap = Cache.system("Iconset")
    rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
    rect2 = Rect.new(x, y, width, height)
    contents.stretch_blt(rect2, bitmap, rect, opacity)
    end

    def draw_font_text(text, x, y, width, alignment, font, size, color, bold = true, shadow = true)
    # // Method to draw font text.
    contents.font.name = font
    contents.font.size = size
    contents.font.color = color
    contents.font.bold = bold
    contents.font.shadow = shadow
    contents.font.out_color = Color.new(0,0,0,255)
    draw_text(x, y, width, calc_line_height(text), text, alignment)
    reset_font_settings
    end

    def draw_font_text_ex(text, x, y, font, size, color, bold = true, shadow = true)
    # // Method to draw font text ex.
    contents.font.name = font
    contents.font.size = size
    contents.font.color = color
    contents.font.bold = bold
    contents.font.shadow = shadow
    contents.font.out_color = Color.new(0,0,0,255)
    text = convert_escape_characters(text)
    pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
    process_character(text.slice!(0, 1), text, pos) until text.empty?
    reset_font_settings
    end

    end
    #==============================================================================#
    # ** Window_Selectable
    #------------------------------------------------------------------------------
    # Adding support for pageleft and pageright for window selectable.
    #==============================================================================#
    class Window_Selectable < Window_Base

    def cursor_pageright ; end
    def cursor_pageleft ; end

    alias xail_core_winselect_process_cursor_move process_cursor_move
    def process_cursor_move(*args, &block)
    # // Method to process cursor movement.
    xail_core_winselect_process_cursor_move(*args, &block)
    cursor_pageright if !handle?(:pageright) && Input.trigger?(:RIGHT)
    cursor_pageright if !handle?(:pageleft) && Input.trigger?(:LEFT)
    end

    alias xail_core_winselect_process_handling process_handling
    def process_handling(*args, &block)
    # // Method to process handling.
    xail_core_winselect_process_handling(*args, &block)
    return process_pageright if handle?(:pageright) && Input.trigger?(:RIGHT)
    return process_pageleft if handle?(:pageleft) && Input.trigger?(:LEFT)
    end

    def process_pageright
    # // Method to process page right.
    Sound.play_cursor
    Input.update
    deactivate
    call_handler(:pageright)
    end

    def process_pageleft
    # // Method to process page left.
    Sound.play_cursor
    Input.update
    deactivate
    call_handler(:pageleft)
    end

    end
    #==============================================================================#
    # ** Window_Icon
    #------------------------------------------------------------------------------
    # New Window :: Window_Icon - A window for drawing icon(s).
    #==============================================================================#
    class Window_Icon < Window_Base

    attr_accessor :enabled
    attr_accessor :alignment

    def initialize(x, y, window_width, hsize)
    # // Method to initialize the icon window.
    super(0, 0, window_width, window_height(hsize))
    @icons = []
    @index = 0
    @enabled = true
    @alignment = 0
    refresh
    end

    def window_height(hsize)
    # // Method to return the height.
    fitting_height(hsize)
    end

    def refresh
    # // Method to refresh the icon window.
    contents.clear
    end

    def draw_cmd_icons(icons, index)
    # // Draw all of the icons.
    return if !@enabled
    count = 0
    for i in icons
    align = 0
    x = 110
    next if i[index].nil?
    case @alignment
    when 1, 2 ; align = -110
    end
    draw_icon(i[index], x + align, 24 * count)
    count += 1
    break if (24 * count > height - 24)
    end
    end

    end
    #==============================================================================
    # ** Game_Party
    #------------------------------------------------------------------------------
    # Adding check item method to return a item based on the type.
    #==============================================================================
    class Game_Party < Game_Unit

    def check_item?(item, type)
    # // Method to return a item based on the type.
    case type
    when :items ; $data_items[item]
    when :weapons ; $data_weapons[item]
    when :armors ; $data_armors[item]
    when :gold ; item
    when :exp ; item
    end
    end

    end
    #==============================================================================
    # ** Game_Event
    #------------------------------------------------------------------------------
    # Adding methods to check for comments on events.
    #==============================================================================
    class Game_Event < Game_Character

    def comment?(comment)
    # // Method to check if comment is included in event.
    unless empty? or @list.nil?
    for evt in @list
    if evt.code == 108 or evt.code == 408
    if evt.parameters[0].include?(comment)
    return true
    end
    end
    end
    end
    return false
    end

    def comment_int?(comment)
    # // Method to check for a integer in event.
    unless empty? or @list.nil?
    for evt in @list
    if evt.code == 108 or evt.code == 408
    if evt.parameters[0] =~ /<#{comment}:[ ]?(\d*)>?/
    return ($1.to_i > 0 ? $1.to_i : 0)
    end
    end
    end
    end
    end

    def comment_string?(comment)
    # // Method to check for a string in event.
    unless empty? or @list.nil?
    for evt in @list
    if evt.code == 108 or evt.code == 408
    if evt.parameters[0] =~ /<#{comment}:[ ]?(\w*)>?/
    return $1.to_s
    end
    end
    end
    end
    end


    end # END OF FILE

    #=*==========================================================================*=#
    # ** END OF FILE
    #=*==========================================================================*

     

     

    Grazie in anticipo

  11. (Sono abbastanza nuovo sul forum e nel mondo di RPG Maker quindi non ho idea se uno script del genere esista)

    Mi serve uno script che vada a modificare il sistema di scelte di base con qualcosa più gradevole all'occhio (magari in stile Telltale) da utilizzare in un progetto con trama dinamica.

    Ho già controllato nel forum e non dovrebbe esserci niente di simile,chiedo venia se questo è un re-post

     

    Grazie in anticipo e non esitate a chiedere se qualcosa non è chiaro :smile:

     

    PROGETTO A FINI COMMERCIALI

  12. Ciao a tutti,

    sono nuovo sul forum e non ho idea se questo sia un re-post (ho fatto un veloce scroll e non ho notato nulla di simile)

    Mi servirebbe uno script per cambiare la finestra di dialogo ,o , in caso non sia necessario uno script, un mini-tutorial che mi spieghi come fare.

    Non so se sono stato abbastanza chiaro,non esitate a chiedere spiegazioni

     

    Grazie in anticipo :smile:

     

    (Progetto a fini commerciali)

     

    Questa finestra per intenderci

    http://www.ludomedia.it/upload/screens/pc/39203/Ao-Oni-0.png

  13. Salve a tutti sono nuovo sul forum (e non so se questo sia un re-post)

    Vorrei sapere se i tiles per le mappe in parallasse di Celianna sono utilizzabili per scopi commerciali o se è possibile acquistarne la licenza

    Esistono,anche ,altri tiles (sempre per mappe parallax) free con commercial usage?

     

    Grazie in anticipo :smile:

  14. Premetto che sono nuovo sul forum e,in generale, anche al mondo di Rpg Maker

     

    Salve a tutti,

    vorrei sapere se,tramite script,si potesse ottenere un sistema di parametri modificabili dal giocatore in base ai quali si ottiene un determinato risultato (negativo o positivo).

    Per intenderci qualcosa di simile a "Game Dev Tycoon" (quello nell'immagine) nel quale modificando gli indicatori del gameplay,della trama e della grafica si poteva ottenere un buon gioco o meno.

    Attualmente non sono interessato allo Script in se,voglio solo sapere se qualcosa del genere è fattibile... magari più in là cercherò qualcuno in grado di farlo.

     

    Grazie in anticipo :smile:

     

    Se non sono stato chiaro riquardo qualcosa non esitate a chiedere spiegazioni

     

    http://static.delmondo.info/wp-content/uploads/2013/05/game-dev-tycoon.png

×
×
  • Create New...