Jump to content
Rpg²S Forum

Renato

Utenti
  • Posts

    29
  • Joined

  • Last visited

Posts posted by Renato

  1. intendevo se si potesse fare con le variabili interne, ma dopo diversi tentativi ho capito che tramite una condizione non si può gestire tutto l'evento, poiché se l'evento viene inserito nella parte in cui la condizione si avvera funziona sempre, anche quando non si avvera, nel caso contrario, in cui venga inserito dopo else capita con quasi tutti gli script che ho provato che da un errore nel game interpreter, in un caso mi è successo che l'errore lo dava finché la condizione si verificava, quando la condizione smetteva di verificarsi segnalava lo stesso errore dell'interpreter

     

    EDIT: per interne intendo interne allo script, comunque ho provato con variabili create nello script, variabili di base, variabili in altri script e anche con la variabile dei soldi (non si sa mai), ma niente

  2. Si, ho messo notifica immediatamente, però ho appena notato che ci sono le opzioni per le notifiche e non c'erano le spunte sui quadratini, adesso ho messo il segno su quasi tutto, credo di aver risolto...

    Aspetterò che qualcuno risponda ad un post, così ne avrò la certezza.

     

    Grazie per la risposta!

  3. Ok, scusate per il triplo post, è per renderlo visibile...

    Oggi per la fretta di andare a lavoro non avevo fatto caso ad una parte dello script, ma ora con calma ho trovato la soluzione definitiva, ovvero:

     

    Poiché la definizione di morte è già definita negli script di base del gioco, riscriverla causa ovviamente un conflitto, quindi bisogna eliminare tutta questa parte o farla diventare un commento:


    class Game_BattlerBase
    #--------------------------------------------------------------------------
    # * Overwrite method: refresh
    #--------------------------------------------------------------------------
    def refresh
    state_resist_set.each {|state_id| erase_state(state_id) }
    @hp = [[@hp, mhp].min, 0].max
    @mp = [[@mp, mmp].min, 0].max
    die if @dying && !immortal?
    return if @dying
    valid = @hp == 0 && !immortal?
    valid ? add_state(death_state_id) : remove_state(death_state_id)
    end


    #--------------------------------------------------------------------------
    # * Alias method: element_set
    #--------------------------------------------------------------------------
    alias :element_set_ve_animated_battle :element_set
    def element_set(item)
    element_set = element_set_ve_animated_battle(item)
    element_set += poses.element_flag
    element_set.compact
    end
    end

     

     

    Ovviamente bisogna anche eliminare l'altra parte che crea il problema, ovviamente se la morte è definita di default per rendere invisibile un battler che subisce questo stato è inutile chiamare una posa che lo gestisca, come è inutile chiamarne una per quando questo stato viene rimosso, di base il battler ritorna, quindi è meglio eliminare tutta la parte che gestisce la posa della morte e della resurrezione, quindi basta eliminare o far diventare commento anche questa parte:

     

     

     

    #--------------------------------------------------------------------------
    # * Alias method: die
    #--------------------------------------------------------------------------

     

    alias :die_ve_animated_battle :die
    def die
    return @dying = true if immortal?
    poses.call_pose(:die, :clear)
    @dying = false
    die_ve_animated_battle
    end
    #--------------------------------------------------------------------------
    # * Alias method: revive
    #--------------------------------------------------------------------------
    alias :revive_ve_animated_battle :revive
    def revive
    call_pose(:revive,:clear)
    end
    Adesso funziona alla perfezione!!!!!!!
    PS: ci sono anche alcune piccole imperfezioni grafiche derivanti dallo script di Yanfly Ace Battle engine che ho corretto:
    modificare
    dx = 0; dy = 0; dw = 0
    con
    dx = 0; dy = - 25; dw = 0
    perché i numeri che indicano il danno viene troppo attaccato al personaggio
    e modificare:
    bh = Font.default_size * 3
    con
    bh = Font.default_size * 4
    perché altrimenti viene tagliata la parte superiore dei numeri che indicano il danno
    Finalmente risolto tutto!!!!!!!!!!! ^ ^
  4. Grazie per avermelo fatto notare

    Per non avere nessun errore basta sostituire:

    call_pose(:revive, :clear)

    con:

    poses.call_pose(:revive,:clear)

    Solo che c'è un problema, il personaggio rimane invisibile, ora sto cercando una soluzione, ma sono ancora in alto mare, mi viene in mente una possibile soluzione ma non so come attuarla:

    Inserire nel database, all'interno della scheda stati, tra le caratteristiche "effetto morte: non scompare" (si trova in altro)

    E fin qui nessun problema

    Poi la soluzione che vorrei trovare è creare una dissolvenza al 100% per lo stato della morte, avevo trovato uno script che permetteva di creare effetti agli stati, ma non lo riesco più a trovare o comunque fare qualcosa di simile...

     

    Però è straziante che dopo tutta questa fatica a cercare soluzioni per creare un gioco decente, poi doversi fermare per un dettaglio così banale, ma essenziale per la riuscita del gioco -_-

     

    EDIT: Ho letto sul blog dello scripter che il bug è noto, ma che non ha tempo per risolverlo, ma appena avrà tempo lo sistemerà, scritto il 19 Aprile

     

     

     

    EDIT: Ho trovato la soluzione, non so perché ma ogni volta che c'è qualcosa che non va, eliminandola si risolve sempre il problema ^_^

     

    è vero che c'è un errore nel chiamare la posa, e che quindi non è call_pose ma poses.call_ pose, ma è una dicitura completamente inutile, quindi va eliminata, in più qualche riga sopra c'è il richiamo alla posa della morte, che è ancora più inutile, dato che rpg lo fa di base, quindi eliminando solo questa riga

     

    poses.call_pose(:die, :clear)

     

    si ottiene l'effetto corretto, ovvero, quando un personaggio muore scompare e quando ritorna in vita riappare normalmente, senza intoppi

     

     

    Mi sono dovuto studiare gli script di default per arrivarci, ma ne è valsa la pena, ti ringrazio ancora per la segnalazione, mi ero proprio dimenticato di testare la resurrezione, se me ne fossi accorto tra qualche mese a gioco completo ci sarei rimasto malissimo

  5. Grazie a tutti quanti, mi sto trovando veramente bene e con il supporto, diretto o indiretto, di moltissimi utenti del forum sto imparando tantissime cose e finora ho trovato soluzione ad ogni dubbio o problema trovato finora...

    Rispondo solo ora perché non mi ero accorto che qualcuno mi avesse risposto alla presentazione ^_^

     

     

    Un compositore, magnifico! Benvenutissimo! :smile:

     

    Beh, si, è la mia passione, compongo sia canzoni da suonare, sia canzoni fatte al pc...

    Purtroppo l'errore di cercare di comporre musica classica con più di 500 strumenti con reason mi ha mandato in corto circuito la scheda audio, quindi la scheda madre si è di conseguenza bruciata, ma appena avrò qualche risorsa economica in più, mi degnerò di acquistare un nuovo pc (quello che sto utilizzando non è proprio il massimo) e una volta acquistati anche i programmi per creare la musica, creerò anche basi adatte agli rpg, così potrò finalmente rendermi utile in qualche modo anch'io all'interno del forum ^_^

  6. Grazie, sono contento di aver trovato una soluzione, in maniera un po' casuale, ma mi ha fatto capire alcune cose.

     

    Per quanto riguarda disattivare uno script quindi, se si crea una variabile all'inizio dello script e si imposta a 0 e si crea una if che lo ricopre tutto (se la variabile è uguale a 0 lo script funziona, altrimenti no), poi comunque si può disattivare e riattivare a piacimento tramite eventi cambiando il valore di quella variabile, o sbaglio?

    *_* mi si sta aprendo un mondo!

  7. Risolto anche questo enigma...

     

    Questo potrebbe essere molto interessante per tutti quelli che intendono usare questi 2 fantastici codici:

     

    Per utilizzare contemporaneamente gli script Victor Engine - Animated Battle e Yanfly - Ace Battle Engine

    Bisogna aprire lo script di Yanfly (che va inserito nella voce Materiali al di sopra degli script di Victor) e cancellare (o far diventare commenti) le seguenti stringhe:

     

     

    #--------------------------------------------------------------------------
    # new method: sprite
    #--------------------------------------------------------------------------
    def sprite
    index = $game_party.battle_members.index(self)
    return SceneManager.scene.spriteset.actor_sprites[index]
    end
    Utilizzando la ricerca dei caratteri all'interno degli script per trovarli si può cercare con:
    "new method: sprite" (senza virgolette)
    e ne appariranno due all'interno dello script di Yanfly che ci interessa, bisogna selezionare il primo ed annullare quelle stringhe
    (il contenuto di queste stringhe viene modificato dallo script di victor, quindi non si perde nulla del codice, a parte quel brutto bug!!!!!)
  8. Ok, ho trovato una buona soluzione, che con molta sincerità mi ha lasciato sorpreso, ho fatto una piccolissima modifichina allo script di yanfly per renderli compatibili:

     

     

    # dh = Graphics.height - SceneManager.scene.command_window.y
    # dh -= SceneManager.scene.command_window.height
    non ho ben capito queste 2 stringhe a cosa servano, ma basta toglierle per far funzionare tutto, anche i negozi funzionano a meraviglia ^_^
    all'inizio mi segnava un'altra stringa come errore, ma ho creato una mega if su tutto l'intero script (che ovviamente non ha funzionato, ma lavorerò per farla funzionare) e mi sono venure quelle 2 righe come errori (prima una e poi l'altra) ho provato ad eliminarle ed il gioco è fatto
    se soluzioni più semplici a volte sono le migliori
  9. "Disattivare" temporaneamente uno script è impossibile, ma si può aggirare il problema incompatibilità a volte...

     

    Mi è venuta in mente una possibile soluzione, ma credo sia molto più complicato di quello che penso, ovvero:

     

     

    inserire nella prima riga:

    if $game_switches[0005] = false

    alla penultima else

    e all'ultima end

     

    ma come da aspettativa mi ha dato errore: undefinited method "[ ] =" for nil:NilClass

     

    sto cercando di studiarmi un modo per riuscirci, però devo capire come inserirlo bene, ma credo sia possibile in un qualche modo

     

     

     

    Eh, è un bel problema, in quanto la banca di Dekita è un "negozio" modificato e lo shop di Yanfly agisce proprio sui negozi...

    Temo che dovrai per forza di cose rinunciare ad uno dei due...

     

    Uhm... Nel caso non riuscissi a creare uno swich (o una variabile) capace di annullare uno script o una parte a mio piacimento durante il corso del gioco...

    Sarebbe un bel problema, potrei comunque provare a fare una copia degli script di base riguardanti il negozio, rinominarli e rinominare allo stesso modo tutte le classi, metodi e variabili...

    il lavoro sarebbe epico, ma non è detto che funzioni... tentar non nuoce ^_^

     

     

     

    Chiedi a Dekita di renderlo compatibile magari :)

     

    Ottima idea, anche se sono sicuro che ci abbia già pensato e che sia difficile anche per lui e che se dovesse trovare una soluzione la pubblicherebbe subito, nel frattempo che mi risponde o che trova una soluzione intanto provo a trovare una soluzione alternativa ^ ^

     

    Ringrazio ancora tutti per l'attenzione e per l'impegno che mettete nel cercare di aiutarmi

  10. Sono rimasto generico poiché il problema mi si è presentato in più occasioni, (speravo in un qualcosa che ad esempio potesse inserire un "=begin" alla prima riga ed un "=end" all'ultima per poi toglierli, ma immaginavo fosse assurdo ^_^ ) dunque, ho fatto una selezione degli script da scartare che ritengo carini ma non necessari al progetto, ed effettivamente di script di cui ho proprio tanta necessità non ci sono, gli unici che mi piacerebbe proprio tenere per via del lavoro e tempo impiegati nel lavorarli sono Yanfly ace shop options (ho scaricato e disegnato molte immagini per arricchire lo shop menu) e Banca di Dekita (ho pure già fatto una richiesta per chiarire un forte dubbio su questo script e ho passato ore a studiarmi lo script ed altri script per trovarmi una soluzione)

    Si trovano rispettivamente in:

    Yanfly ace shop options http://dl.dropboxusercontent.com/u/49701990/YEA/Ace_Shop_Options.rb

    La Banca di Dekita si trova qui http://dekitarpg.wordpress.com/2013/01/29/perfect-bank/comment-page-1/#comment-445 (non linko il testo poiché l'autore non vuole, o almeno così ho capito)

     

    Spero si possa trovare una soluzione per questi due script

  11. Il problema alla fine non era neanche la modifica che avevo apportato, chiedo scusa se sto creando confusione, ma un conflitto con uno script di Yanfly: Ace Batte Engine:

    https://dl.dropboxusercontent.com/u/17078211/Scripts/YEA/Ace_Battle_Engine.rb

    anche se entrambi modificano la scena della battaglia non pensavo che andassero in conflitto perché Victor nei suoi video di esempio usa entrambi gli script e a lui non mostra questo conflitto, ho provato a cercare nel blog di victor e c'è scritto che ha reso lo script compatibile con quello di Yanfly

     

    Ho fatto un test su un nuovo progetto in cui uso solo gli script relativi al problema e se non inserisco lo script di Yanfly tutto torna in ordine

    L'aspetto delle battaglie è più bello con lo script di Yanfly e sembra tutto più ordinato, per questo mi sarebbe piaciuto utilizzarli insieme

  12. Intendo se si può disattivare un intero script inserito nella voce Materials tramite un evento con call script, per poi riattivarlo con un altro call script

    Il momento in cui uno script va in conflitto con un altro è quando si da inizio ad un evento che richiama una scena del primo script tramite un tag nel call script e appare l'errore del conflitto con il secondo script, questo significa che se prima di inserire il tag disattivassi il secondo script, potrei tranquillamente inserire il tag che chiama la scena senza avere errori, per poi riattivarlo successivamente una volta chiusa quella scena, spero di essermi spiegato bene

    Nomorehero, ti ringrazio tantissimo per l'interessamento

  13. Ciao a tutti!

     

    Ecco, nel titolo ho scritto tutto, volevo sapere se è possibile tramite evento annullare uno script, fare come se proprio non ci fosse, per poi riattivarlo successivamente, tramite un'altro evento o sempre nello stesso evento.

     

    Questo sarebbe veramente utilissimo per quando si hanno degli script che vanno in conflitto solo in determinare situazioni...

     

    Vi ringrazio ancora vivamente in anticipo, anche se temo che la mia richiesta sia assurda!

  14. Chiedo scusa, purtroppo lo script non l'ho trovato all'interno del forum, credo comunque che ci sia, ho trovato però molte discussioni in cui se ne parla, ed essendo uno script molto famoso ho dato per scontato che si conosca...

     

    Lo script è esageratamente troppo lungo da copiare, metto il link del txt:

    https://dl.dropboxusercontent.com/u/27014140/Scripts/Victor%20Engine%20-%20Animated%20Battle.txt

     

     

    Con più precisione, credo che il problema sia qui o in una parte dello script che lo richiama:

     

     

    # Pose for physical attacks
    <action: attack, reset>
    wait: targets, movement;
    direction: self, subjects;
    pose: self, row 2, all frames, sufix _3, wait 3, y +1;
    icon: self, weapon, angle -90, x +12, y -16;
    icon: self, weapon, angle -45, x +6, y -16;
    icon: self, weapon, angle 0, x -6;
    anim: targets, weapon;
    icon: self, weapon, angle 45, x -10, y +8;
    effect: self, targets, 100%;
    wait: 20;
    icon: self, delete;
    </action>
    si trova in questa voce:
    #--------------------------------------------------------------------------
    # * Sample settings used for battlers tagged as 'kaduki' style
    #--------------------------------------------------------------------------
    VE_ACTION_SETTINGS[:kaduki] = "
  15. Ciao a tutti!!!!!!

     

    Sono riuscito, dopo tantissime prove e con l'ausilio di tanto impegno, ma soprattutto fortuna a settare il Victor Engine - Battle Animated (v.1.21)

     

    Una volta riuscito a far apparire i personaggi (eroi e nemici) con gli sprite desiderati ed aver impostato le ROW di tutte le pose in maniera che i personaggi si muovessero a mio piacere, ho notato una cosa alquanto insolita:

     

    Quando un personaggio attacca, giustamente si avvicina al nemico, però quando colpisce non è lui a muovere l'arma, ma è il personaggio che si trova nel lato opposto.

     

    Esempio:

     

    Se ho 2 personaggi che combattono, quando il primo attacca, il secondo muove l'arma e quando il secondo attacca, il primo muove l'arma

    Se ho 3 personaggi che combattono, quando il primo attacca, il terzo muove l'arma e quando il terzo attacca, il primo muove l'arma, mentre il secondo personaggio esegue l'attacco perfettamente

    Quando ho 4 personaggi, il primo attacca e il quarto muove l'arma, il secondo attacca e il terzo muove l'arma, il terzo attacca e il secondo muove l'arma, il quarto attacca e il primo muove l'arma...

     

    Come potrei rimediare a questo errore?

     

    Grazie in anticipo

  16. ti ringrazio tantissimo KenzoMe92 :D

    proprio oggi ho trovato invece la soluzione tramite evento: $game_variables[n] = $game_storage.cash

    comunque mi è molto più utile la soluzione che mi hai trovato tu, la proverò subito ^ ^

     

    Edit: Provato, ma purtroppo mi da errore:

    unexceped tIDENTIFIER, expecting keywood_end

    $game variables[3] = @cash

     

    ricapitolo quello che ho fatto, molto probabilmente è un mio errore, le linee sono rimaste inveriate, poiché lo script l'ho copiato tale e quale modificando solo i termini ed ho ricontrollato sullo script originale se le linee combaciassero

     

    ho copiato $game_variables[3] += amount nella linea 683, mandando giù di una linea @main_com_wind.activate,

    la linea 691 con scritto def deposit_cash(amount) è slittata ovviamente anche lei di un posto, ed ho copiato $game_variables[3] -= amount

    nello spazio vuoto al di sopra, ovvero nella linea 691

     

    infine nella linea 894, dove all'inizio c'era setup di:

    def initialize

    setup
    ho provato quindi a copiare la stringa $game variables[3] = @cash in tutte le posizioni possibili, ovvero sopra def inizialize, sotto e infine sotto a setup, ma senza risultati, ho riprovato le varie combinazioni poi provando a mettere $game_variables[3] -= amount sotto la scritta
    def deposit_cash(amount) ma senza risultato
    ok, scusa per questa descrizione esagerata, spero di essermi fatto capire ^ ^
    grazie ancora per il supporto
    PS: ho riprovato tutto anche mettendo end dopo l'ultima stringa da aggiungere ed ho provato anche con $game_storage.cash al posto di @cash
×
×
  • Create New...