Jump to content
Rpg²S Forum

simo_23

Utenti
  • Posts

    59
  • Joined

  • Last visited

Posts posted by simo_23

  1.  

    Beccato! Effettivamente volevano essere una citazione proprio a quella serie televisiva, anche se solo per il nome...

    Le Zone Ambra del gioco saranno vivibili e vissute anche se infestate da mostri e quant'altro e troveremo al loro interno anche paesi e la casa dello stesso Shu.

     

    Citazione apprezzatissima, almeno per quanto mi riguarda. (Adoro quella serie! *.*)

     

     

     

    Ah quindi Don sta per Don! XD E' un fico! XD SoraLella pure! XD

     

    A me sembrano due con loschi propositi. Sarà per via degli occhiali? :\

  2. Nella sezione CONFIGURAZIONE GENERALE c'è un settaggio chiamato Distanza_x, che indica a quanti pixel di distanza dal bordo sinistro compaia il popup. Devi regolarlo in base alla dimensione della tua finestra. Se hai quelle di default, prova con 510, dovrebbe andar bene.

    Mi sà che questo per ora è l'unico modo.

  3. Ok, allora ho fatto come dici tu. Ma nulla. xD

    Ho supposto da me stesso che mettendo il commento lì eliminavamo permanentemente la variabile @oblo, almeno perchè lì doveva essere il momento della sua inizializzazione. Quindi ho provato a mettere sotto commento anche la riga che dichiarava il Viewport, e lo script funziona alla perfezione, ma i popup sono ancora "sotto" la luce.

    Questo è il metodo mostra_popup che ho semplicemente riordinato e ho aggiunto la .z all'oggetto immagine, che essendo uno sprite ha tra i suoi attributi la profondità (z):

    def mostra_popup(testo, icona = 0, tone = nil)
    immagine = Sprite.new#(@oblo)
    immagine.bitmap = Cache.picture(Grafica)
    immagine.tone = Tone.new(tone[0],tone[1],tone[2],tone[3]) if tone != nil

    finestra = Window_Map_Popup.new(immagine.width, testo, icona)
    finestra.opacity = 0
    finestra.x = 0 - finestra.width
    finestra.y = Altezza
    immagine.x = riposizionax(finestra,immagine)
    immagine.y = riposizionay(finestra,immagine)
    immagine.z = 200
    popup = [finestra, immagine, 0, 0]
    sposta_popup_su #sposta sopra tutti i popup già presenti
    @popups.push(popup)
    end

     

    Poi volevo fare una domanda: l'icona stessa ed il testo non sono sprite anche loro? Quindi al momento della loro creazione basta specificare la .z anche per il loro sprite ed il gioco è fatto (questo lo penso io)

    Solo che nonostante abbia cercato, non capisco proprio da dove prendi i parametri "testo" ed "icona".

    Credo che così si potrebbe risolvere, ma qua gli esperti siete voi xD.

     

    Aspetto risposte. =D

  4. Allora, la faccio breve.

    Quando comparivano i popup essi erano influenzati dalle luci/ombre presenti nella mappa.

    Ovvero, se c'èra della luce vicino ai popup, la loro grafica risentiva della luce e si "colorava" di conseguenza.

    Questo non deve accadere per 2 motivi:

    - 1: I popup fungono da "narrazione esterna", quindi non devono essere influenzati da altri script

    - 2: Se c'è una zona di ombra totale, risulta difficile la comprensione del popup stesso.

    Dopo aver sondato il terreno con Holy87 che mi ha gentilmente risposto e dopo aver varie volte escogitato metodi indolori per il suicidio ecco a cosa sono arrivato:

     

    $imported = {} if $imported == nil
    $imported["H87_Popup"] = true
    #===============================================================================
    # Sistema Popup di Holy87
    # Versione 1.0
    #===============================================================================
    # Questo script permette di mostrare in modo dinamico popup multipli per
    # l'acquisizione o lo smarrimento di oro e oggetti, quando si ottiene un lev-up.
    # Non solo, ma è possibile anche creare popup personalizzati per le più
    # svariate situazioni. Basta mettere semplicemente in un evento, un Chiama
    # Script con:
    # Popup.show("messaggio")
    # Oppure
    # Popup.show("Messaggio",x) dove x sta all'id dell'icona
    # oppure ancora
    # Popup.show("Messaggio",x,[R,G,B,S]) dove RGB sono le tonalità, S la saturazione.
    #-------------------------------------------------------------------------------
    # INSTALLAZIONE
    # Installare sotto Materials, prima del Main. Importare una immagine come barra
    # per i popup. Non ha importanza la grandezza, lo script adatterà il popup a
    # seconda delle dimesioni dell'immagine.
    # INFO compatibilità:
    # *Classe Scene_Map
    # Alias: update, start, terminate
    # *Classe Game_Party
    # Alias: gain_gold, gain_item
    # *Classe Game_Actor
    # Sovrascrive: show_level_up
    #===============================================================================
    module H87_Popup
    #-------------------------------------------------------------------------------
    # CONFIGURAZIONE GENERALE
    # Configura lo script nelle opzioni generiche.
    #-------------------------------------------------------------------------------
    #Velocità di comparsa del popup. Numeri piccoli aumentano la velocità.
    Speed = 3
    #-----------------------------------------------------------------------------
    #Tempo in secondi, prima che il popup cominci a sparire.
    Time = 3
    #-----------------------------------------------------------------------------
    #Velocità di sparizione del popup una volta che scade il tempo
    Fade = 4
    #-----------------------------------------------------------------------------
    #Coordinata Y del popup quando apparirà.
    #Se viene impostato in basso allo schermo, popup consecutivi creeranno una
    #pila che sale, altrimenti scenderà.
    Altezza = 355
    #-----------------------------------------------------------------------------
    #Grafica dell'immagine dello sfondo del popup
    Grafica = "PopupBar"
    #-----------------------------------------------------------------------------
    #Distanza in pixel dal bordo sinistro dello schermo quando spunta il popup
    Distanzax = 5
    #Distanza in pixel dei popup consecutivi quando vengono messi in fila
    Distanzay = 3
    #-----------------------------------------------------------------------------
    #Imposta lo switch che verrà usato per attivare e disattivare i popup
    #automatici, nel caso tu voglia cambiare denaro e oggetti al giocatore senza
    #che se ne accorga.
    Switch = 1
    #-------------------------------------------------------------------------------
    # CONFIGURAZIONE SPECIFICA
    # Configurazione specifica di attivazione, suono e colore di ogni tipo di popup
    #-------------------------------------------------------------------------------
    # *Configurazione Oggetti
    #Seleziona il suono che verrà eseguito all'ottenimento dell'oggetto
    SuonoOggetto = "Item1"
    #Imposta la tonalità di colore del popup (Rosso, Verde, Blu e Saturazione)
    ItemPreso= [-50,0,120,0]
    #-----------------------------------------------------------------------------
    # *Configura l'ottenimento del denaro
    #Seleziona l'icona che verrà mostrata quando otterrai del denaro
    Iconaoro = 361
    #Seleziona il suono che verrà eseguito all'ottenimento del denaro
    SuonoOro = "Shop"
    #Mostrare il popup quando si ottiene denaro?
    Mostra_OroU = true
    #Mostrare il popup quando si perde denaro?
    Mostra_OroD = true
    #Seleziona la tonalità di colore del popup quando si ottiene denaro
    GoldTone = [-50,70,0,10]
    #Seleziona la tonalità di colore del popup quando si perde denaro
    GoldPerso= [70,0,-50,50]
    #-----------------------------------------------------------------------------
    # *Configura il livello superiore (Funziona solo se selezioni Mostra Level Up)
    # Mostrare il livello superiore con un popup, o con il metodo classico?
    MostraLevel = true
    # Mostrare i poteri appresi quando si sale di livello su mappa?
    MostraPoteri = true
    #Icona del livello superiore
    IconaLevel = 125
    #Tonalità che viene mostrata al livello superiore
    LivSup = [ 50, 50,100,0]
    #Tonalità che viene mostrata per i nuovi poteri appresi
    NuoveSkill = [ 50, 50,50,0]
    #Suono che viene eseguito al livello superiore
    SuonoLevel = "Up1"
    #Testo dell'abilità appresa
    Learn = "appresa!"
    #-----------------------------------------------------------------------------
    # *Configura popup per switch e variabili (funziona solo in modalità Test)
    #Seleziona l'icona di switch e variabili
    Iconaswitch = 80
    #Seleziona la tonalità di colore
    SwitchTone = [0,0,0,255]
    #-----------------------------------------------------------------------------
    #===============================================================================
    # FINE CONFIGURAZIONE
    # Modificare tutto ciò che c'è sotto può compromettere il corretto funzionamento
    # dello script. Agisci a tuo rischio e pericolo!
    #===============================================================================
    end
    #===============================================================================
    # Modulo Popup
    #===============================================================================
    module Popup
    def self.show(testo, icona=0, tone=nil)
    SceneManager.scene.mostra_popup(testo, icona, tone) if SceneManager.scene_is?(Scene_Map)
    end

    def self.esegui(suono)
    RPG::SE.new(suono,80,100).play if SceneManager.scene_is?(Scene_Map)
    end
    end

    #===============================================================================
    # Classe Scene_Map
    #===============================================================================
    class Scene_Map < Scene_Base
    include H87_Popup

    #-----------------------------------------------------------------------------
    # * Start
    #-----------------------------------------------------------------------------
    alias h87_pstart start
    def start
    h87_pstart
    @popups = []
    @oblo = Viewport.new(0,0,Graphics.width,Graphics.height)
    @oblo.z = 200
    end

    #-----------------------------------------------------------------------------
    # * Update
    #-----------------------------------------------------------------------------
    alias h87_pupdate update
    def update
    h87_pupdate
    aggiorna_popups
    end

    #-----------------------------------------------------------------------------
    # * Aggiunge un nuovo popup
    #-----------------------------------------------------------------------------
    def mostra_popup(testo, icona = 0, tone = nil)
    immagine = Sprite.new(@oblo)
    immagine.bitmap = Cache.picture(Grafica)
    immagine.tone = Tone.new(tone[0],tone[1],tone[2],tone[3]) if tone != nil
    finestra = Window_Map_Popup.new(immagine.width,testo,icona)
    finestra.opacity = 0
    finestra.x = 0-finestra.width
    finestra.y = Altezza
    immagine.x = riposizionax(finestra,immagine)
    immagine.y = riposizionay(finestra,immagine)
    popup = [finestra,immagine,0,0]
    sposta_popup_su #sposta sopra tutti i popup già presenti
    @popups.push(popup)
    end

    #-----------------------------------------------------------------------------
    # * Calcola la posizione dell'immagine
    #-----------------------------------------------------------------------------
    def riposizionax(finestra,immagine)
    larg=(finestra.width-immagine.width)/2
    return finestra.x+larg
    end

    #-----------------------------------------------------------------------------
    # * Calcola la posizione dell'immagine
    #-----------------------------------------------------------------------------
    def riposizionay(finestra,immagine)
    alt=(finestra.height-immagine.height)/2
    return finestra.y+alt
    end

    #-----------------------------------------------------------------------------
    # * Aggiornamento
    #-----------------------------------------------------------------------------
    def aggiorna_popups
    muovi_popup
    fade_popup
    end

    #-----------------------------------------------------------------------------
    # * Muove i popup
    #-----------------------------------------------------------------------------
    def muovi_popup
    for i in 0..@popups.size-1
    break if @popups[i] == nil
    barra = @popups[i]
    finestra = barra[0]
    next if finestra.disposed?
    immagine = barra[1]
    tempo = barra[2]
    prossimay= barra[3]
    x = finestra.x
    y = finestra.y
    metax = Distanzax
    if Altezza > Graphics.height/2
    metay = Altezza - Distanzay - prossimay
    else
    metay = Altezza + Distanzay + prossimay
    end
    finestra.x += (metax-x)/Speed
    finestra.y += (metay-y)/Speed
    tempo += 1
    immagine.x = riposizionax(finestra,immagine)
    immagine.y = riposizionay(finestra,immagine)
    if tempo > Time*Graphics.frame_rate
    finestra.contents_opacity -= Fade
    immagine.opacity -= Fade
    end
    @popups[i] = [finestra,immagine,tempo, prossimay] #riassemblamento
    end
    end

    #-----------------------------------------------------------------------------
    # * Assegna la prossima coordinata Y
    #-----------------------------------------------------------------------------
    def sposta_popup_su
    for i in 0..@popups.size-1
    next if @popups[i][1].disposed?
    @popups[i][3]+=@popups[i][1].height+Distanzay
    end
    end

    #-----------------------------------------------------------------------------
    # * Terminate
    #-----------------------------------------------------------------------------
    alias h87_pterminate terminate
    def terminate
    h87_pterminate
    for i in 0..@popups.size-1
    elimina_elemento(i)
    end
    @oblo.dispose
    end

    #-----------------------------------------------------------------------------
    # *Elimina i popup non più presenti
    #-----------------------------------------------------------------------------
    def fade_popup
    for i in 0..@popups.size-1
    next if @popups[i][1].disposed?
    if @popups[i][1].opacity == 0
    elimina_elemento(i)
    end
    end
    end

    #-----------------------------------------------------------------------------
    # *Dispone finestre e picture
    #-----------------------------------------------------------------------------
    def elimina_elemento(i)
    @popups[i][0].dispose unless @popups[i][0].disposed?
    @popups[i][1].dispose unless @popups[i][1].disposed?
    end

    end #scene_map

    #===============================================================================
    # Classe Window_Map_Popup
    #===============================================================================
    class Window_Map_Popup < Window_Base

    def initialize(larghezza, testo, icona = 0)
    super(0,0,larghezza,48)
    @testo = testo
    @icona = icona
    refresh
    end

    def refresh
    self.contents.clear
    draw_icon(@icona,0,0)
    @icona == 0 ? d = 0 : d = 24
    self.contents.draw_text(d,0,self.width-(self.padding*2)-d,line_height,@testo)
    end
    end #Scene_Map

    #===============================================================================
    # Classe Game_Party
    #===============================================================================
    class Game_Party < Game_Unit
    alias ottieni_oro gain_gold
    #-----------------------------------------------------------------------------
    # * Ottieni Oro
    #-----------------------------------------------------------------------------
    def gain_gold(amount)
    if $game_switches[H87_Popup::Switch] == false
    if amount> 0 and H87_Popup::Mostra_OroU
    Popup.show("+"+amount.to_s+Vocab.currency_unit,H87_Popup::Iconaoro,H87_Popup::GoldTone)
    Popup.esegui(H87_Popup::SuonoOro)
    end
    if amount < 0 and H87_Popup::Mostra_OroD
    Popup.show(amount.to_s+Vocab.currency_unit,H87_Popup::Iconaoro,H87_Popup::GoldPerso)
    Popup.esegui(H87_Popup::SuonoOro)
    end
    end
    ottieni_oro(amount)
    end

    #-----------------------------------------------------------------------------
    # * Ottieni Oggetto
    #-----------------------------------------------------------------------------
    alias prendi_oggetto gain_item
    def gain_item(item, amount, include_equip = false)
    case item
    when RPG::Item
    oggetto = $data_items[item.id]
    when RPG::Armor
    oggetto = $data_armors[item.id]
    when RPG::Weapon
    oggetto = $data_weapons[item.id]
    end
    if amount > 0 and $game_switches[H87_Popup::Switch] == false and item != nil
    nome = oggetto.name
    icona = oggetto.icon_index
    testo = sprintf("%s x%d",nome,amount)
    Popup.show(testo,icona,H87_Popup::ItemPreso)
    Popup.esegui(H87_Popup::SuonoOggetto)
    end
    prendi_oggetto(item, amount, include_equip)
    end

    end # Game_Party

    class Game_Actor < Game_Battler

    #-----------------------------------------------------------------------------
    # * Mostra Lv. Up
    #-----------------------------------------------------------------------------
    def display_level_up(new_skills)
    if SceneManager.scene_is?(Scene_Map) and H87_Popup::MostraLevel
    testo = sprintf("%s %s%2d!",@name,Vocab::level,@level)
    Popup.show(testo,H87_Popup::IconaLevel,H87_Popup::LivSup)
    Popup.esegui(H87_Popup::SuonoLevel)
    if H87_Popup::MostraPoteri
    for skill in new_skills
    testo = sprintf("%s %s",skill.name,H87_Popup::Learn)
    Popup.show(testo,skill.icon_index,H87_Popup::NuoveSkill)
    end
    end
    else
    $game_message.new_page
    $game_message.add(sprintf(Vocab::LevelUp, @name, Vocab::level, @level))
    new_skills.each do |skill|
    $game_message.add(sprintf(Vocab::ObtainSkill, skill.name))
    end
    end
    end

    end # Game_Actor

    La mia aggiunta è stata:

    @oblo.z = 200, che produce il seguente effetto:

    http://i49.tinypic.com/2db9bh1.png

     

    Cioè quello di "sollevare" il popup ad un livello superiore.

    Adesso basta soltanto che qualcuno mi dica come disegnare l'icona ed il testo ad un livello superiore a quello della grafica del popup xD.

     

    Vi prego, esimetemi dal suicidio. Aiutate una povera anima pia. Grazie e addio.

  5. xD...Hai ragione Guardian.

    Comunque mi riferivo a quello presente nel forum. In questo topic ci sono arrivato da quello della lista di tutti gli script, e vedendo nella stessa lista salto e corsa chiedevo se si potessero unire. In ogni caso ecco il link allo script del salto ^^.

    Script Salto

  6. Sono contento che tu lo abbia scaricato...

    Non ricordo più come si fa ad aggiungere il codice url e così non sono riuscito a modifiicare il primo post.

    Fammi sapere come ti sembra il gioco :rovatfl:

     

    Certamente, provvederò al più presto =D

  7. Ragazzi a me da' un errore alla riga 155:

     

    RGSSError occoured.

    failed to create bitmap

     

    Scusate la domanda da niubbo, ma come potrei risolvere? Se fosse possibile mi potreste anche dare una spiegazione di quello che provoca l'errore?

  8. D: Ragazzi, quando creo una porta con la creazione evento rapido, e vado a provarla, funziona tutto, ma nell'animazione, quando la porta si apre, sotto si vede il pezzo di tile che avevo messo (in questo caso i mattoni). Come faccio a far vedere nero al di sotto della porta quando si apre??
×
×
  • Create New...