Vai al contenuto

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

  • Chatbox

    You don't have permission to chat.
    Load More
Loppa

RPGMAKER VX ACE Eventi che non vengono trasportati fuori dallo schermo

Recommended Posts

Ho un problema con il teletrasporto degli eventi, a quanto pare non funziona se lo schermo non lo "vede", cosa si può fare per rimediare oppure è un limite del programma, ho pure tolto l'antilag ma non sembra dipendere da quello

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

scusa se ti rispondo solo ora, ma non avevo proprio alcuna idea, solo poco fa ho avuto una sorta di illuminazione, anche se non so se sia la soluzione giusta; hai controllato che l'evento sia "abilitato" ? nel senso, se è un evento che parte con delle condizioni, assicurati che le condizioni siano attive altrimenti è come se l'evento non ci fosse.

 

Altrimenti non so, se fosse per l'antilag ti direi di inserire il tag <global> nel nome dell'evento (potrebbe essere diverso a seconda dell'antilag utilizzato), ma se hai detto che hai disabilitato l'antilag quasi sicuramente non dipenderà da quello...

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Figurati Ghost, nessun problema... Comunque, mi sono anche spiegato male io, l'avvio dell'evento è settato a processo parallelo 

Esempio dell'evento:

 

<aspetta 40 frame>

<imposta posizione evento N1>

<aspetta 10 frame>

<imposta posizione evento N2>

Etc....

Il problema è che quando esco dallo schermo è come se gli eventi (esempio: mostri etc) smettessero di muoversi, per poi reiniziare a muoversi quando vengono di nuovo inquadrati.

 

Si aggrava al fatto che se l'evento in processo parallelo che gestisce "lo spawn" dei mostri, ha l'ordine di teletrasportare un mostro distante anche solo 1 tiles dall'inquadratura, ovviamente non essendo inquadrata la zona dello "spawn", il mostro non viene trasportato e rimane li a bordo mappa. Impedendo il corretto svolgimento della partità perchè uno spawn di mostro in meno e le variabili alla fine non combaciano e l'evento che si dovrebbe attivare a fine ondate non si attiva.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

domanda scema, hai provato ad attivare l'opzione "Attraverso" accanto alla grafica dell'evento (oppure durante il movimento) perchè se non sbaglio gli eventi non possono transitare su altri eventi anche se questi sono impostati come "sotto l'eroe", a meno che non abbiano questa opzione attivata.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Sisi, l'attraversa è necessario praticamente in tutti gli eventi che stanno al di sotto per fare in modo che gli eventi su mappa possano transitare al di sopra dell'evento settato "attraversa" (Ad esempio quando splatti uno zombie e rimane il corpo sotto calpestabile)

 

 

 

mi par di ricordare che sull'ace, ciò che non è inquadrato risulta fermo/ibernato.

 

Ecco mi sa che il problema è questo.

 

Ma come si fa a fare un minigame dove i mostri vengono spawnati se non inquadrati... Perchè questa assurda limitazione? XD

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

qualcuno sul forum internazionale ha posto la tua stessa domanda e ho trovato questo:

#==============================================================================
# Autonomous Movement Extension
# Version 1.01
# By Napoleon
#
# About:
# Allows you to set the range for the autonomous movement events. Supports both
# a default range (so it can be configured per map) as well as an event-specific
# range.
#
# Instructions:
# - Place below "▼ Materials" but above "▼ Main Process".
# - You may adjust the range for specific events by adding a comment to it.
# - Comment sample: assign 25 to x and 35 to y (without the quotes):
#   "<auto_mov = 25 35>"
# - You may change "auto_mov" to something else by modifiying the value
#   of COMMENT_TAG
#
# Requires:
# - RPG Maker VX Ace
#
# Terms of Use:
# - Attribution 3.0 Unported (CC BY 3.0)
#   http://creativecommons.org/licenses/by/3.0/
# - Attribution is not required. This overrules what's stated in the above
#   license.
#
# Version History:
# 1.01 (21-05-2013)
#   - Improved the $imported
# 1.00 (4-2-2013)
#   - First Release
#==============================================================================
# Configurable section
#==============================================================================
COMMENT_TAG = "auto_mov" # The first value of the comment tags
GAME_VAR_IDX_X = 3 # The index for the game_variable that sets the default update range for delta x. Assign a 0 value to disable this.
GAME_VAR_IDX_Y = 4 # The index for the game_variable that sets the default update range for delta y. Assign a 0 value to disable this.
#==============================================================================
# Don't edit below this line
#==============================================================================
$imported ||= {}
$imported[:nap_autonomous_mov_ext] = 1.01


class Game_Event < Game_Character
 
  def update_self_movement
    # Set default values
    if GAME_VAR_IDX_X > 0 then range_x = $game_variables[GAME_VAR_IDX_X] else range_x = 12 end
    if GAME_VAR_IDX_Y > 0 then range_y = $game_variables[GAME_VAR_IDX_Y] else range_y = 8 end
   
    # Search for a comment for a specific range for this event.
    if @list != nil
      @list.each {|i|
        if [108, 408].include?(i.code) && i.parameters[0] =~ /<#{Regexp.escape(COMMENT_TAG)} = ([^>]*)>/
            range_x = Integer($1.split[0])
            range_y = Integer($1.split[1])
          break
      end}
    end
   
    if near_the_screen?(range_x, range_y) && @stop_count > stop_count_threshold
      case @move_type
      when 1;  move_type_random
      when 2;  move_type_toward_player
      when 3;  move_type_custom
      end
    end
  end # update_self_movement
 
end # Game_Character
#==============================================================================
# 
# ■ End of File
# 
#==============================================================================

 

 

nota che il genio che ha postato lo script lo ha messo su un unca stringa... ho dovuto metterlo io da capo rigo per rigo, e non escludo che potrei aver sbaglaito qualcosa... ma in pratica risolve il problema che ha detto kaine, ossia che gli eventi fuori schermo non si possono controllare perchè è come se si ibernassero.

 

edit: sistemato a dovere, ora dovrebbe essere giusto.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Grazie ancora, purtroppo non seguo molto la community internazionale se non per la grafica di VexedEnigma che mi occorre per il pop horror e per vedere le novità anche circa i contributi da parte della community, per quella grafica. ^^

 

Sto inserendo lo script, quindi dovrei aggiungere un commento per ogni mostro, l'ho fatto.

 

Ho messo un commento nel mostro con: <auto_mov = 100 100>

 

Per provare e ho inserito nello script X 100 Y 100, l'ho messo in processo parallelo e ho messo "muovi verso eroe" ma non funziona, mi devo sempre avvicinare

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Io, in ace, non avevo problemi a far muovere eventi che si trovavano fuori dallo schermo... non vorrei che sia una limitazione del tuo script anti-lag.

Per esempio, all'inizio di questo mio video, gli eventi degli eroi sono fuori dalla inquadratura (circa 3 tile fuori) ma, riesco tranquillamente ad ordinargli tramite evento COMUNE di muoversi verso il centro della mappa ad inizio battaglia... però, per farlo, ho dovuto disattivare l'anti-lag in quella mappa specifica. io ti consiglierei di provare il tuo evento su un progetto senza script... così, per vedere se funziona e togliersi ogni dubbio...

 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ah, ora lo script mi ha bloccato tutti gli eventi del gioco senza il commento dello script, niente lo lascio così perchè non ho voglia di generare anche nuovi bug da risolvere XD

 

(Se gli eventi sono a pochi tiles al di fuori dello schermo vengono letti e quindi teletrasportati alla posizione, io gestisco tramite un evento su mappa in processo parallelo, che semplicemente spawna in game gli zombie, se invece si trovano a 4-5 tiles di distanza dall'inquadratura non c'è verso che vengano letti, se non con lo script di ghost ma quì sono di fronte ad un bivio che è più che altro un problema strutturale, inserisco lo script e di conseguenza edito tutti gli eventi di gioco fin ora creati o continuo con questo "difetto"?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ah, ora lo script mi ha bloccato tutti gli eventi del gioco senza il commento dello script, niente lo lascio così perchè non ho voglia di generare anche nuovi bug da risolvere XD

 

(Se gli eventi sono a pochi tiles al di fuori dello schermo vengono letti e quindi teletrasportati alla posizione, io gestisco tramite un evento su mappa in processo parallelo, che semplicemente spawna in game gli zombie, se invece si trovano a 4-5 tiles di distanza dall'inquadratura non c'è verso che vengano letti, se non con lo script di ghost ma quì sono di fronte ad un bivio che è più che altro un problema strutturale, inserisco lo script e di conseguenza edito tutti gli eventi di gioco fin ora creati o continuo con questo "difetto"?

 

hai provato a "obbligare" gli eventi a fare quei passi tramite un altro evento?

tipo che so metti un evento parallelo che li fa muovere di quanto basta per entrare nella distanza nella quale il tool lo legge; tipo che so, se si trova a 10 caselle dallo schermo, fai un evento parallelo (o ancora meglio un evento comune) e che lo fa muovere di 7/8 passi così che si "attivi".

 

Se no, se non va o se per qualsiasi motivo non è possibile usare i common event per questo scopo, ti direi di tenere lo script, a questo proposito, se ho ben capito come funziona questo script, forse non hai bisogno di aggiornare gli eventi, perchè se editi le stringhe:

 

GAME_VAR_IDX_X = 3 # The index for the game_blablabla

GAME_VAR_IDX_Y = 4 # The index for the game_blablabla

 

dovrebbe applicarsi a tutti gli eventi senza bisogno del tag, dovrebbe diventare di default, quindi se invece di mettere 3 e 4 metti 100 e 100 come hai fatto prima, non dovresti avere problemi

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Esatto praticamente, quello script per lo spawn è simile a quello che sto facendo io ad eventi sull'ace... Se non fosse per quel limite del programma non avrei alcun problema. Comunque, con gli eventi senza il comment purtroppo non funziona, a tutti gli eventi li freeza senza nemmeno farli muovere se inquadrati, dovrei rivedere tutti gli eventi e applicarci il comment personalizzato cioè la vedo come uno sbatti inutile perchè nel 2k3 era normale anche da 500 tiles di distanza il mostro iniziava a rincorrerti XD

 

Per questioni mie di gestione non lo posso inserire questo script anche se devo ammettere che è utile e anche se non funziona da 100 tiles di distanza un po di differenza la fa. (non lo posso inserire perchè come ho detto dovrei ristrutturare il gioco basandomi anche su quello script di movimento) :S un casino

 

Edit: Lo script funziona comunque

Modificato da Loppa (Visualizza storico modifiche)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

@@Loppa

 

yo, hai risolto il problema poi?

 

te lo chiedo perchè ho trovato per caso un altro script che dovrebbe risolvere il problema, e così mentre lo leggevo mi è tornata in mente questa discussione... si tratta, banalmente, dell' Anti-Lag del battle system in tempo reale di Falcao, uno dei più famosi in circolazione, ma ho scoperto che funziona anche come script indipendente. In pratica ti permette di specificare con un tag quali eventi sono "immuni" all'anti-lag e quindi sono in esecuzione anche a 3000 tiles di distanza xDD

 

te lo lascio qui per ogni eventualità:

#===============================================================================
# * Falcao Pearl ABS script shelf # 9
#
# Pearl Antilag v 1.1
# This is just an add on for the Pearl ABS system, it run as standalone mode too
#
# This script reduce the lag coused by tons of events on a map, this script
# ignores parallel process events, and autorun events triggers
#
# Website: http://falcaorgss.wordpress.com/
# Foro: www.makerpalace.com
#===============================================================================

module PearlAntilag
  
  # How many tiles outside the screen the script going to tolerate
  OutRange = 2
  
  # if you want to disable the script for an especific evet, tag <global> in the
  # event name box
  
end

class Game_Map
  attr_reader :max_width, :max_height
  alias falcaopearl_antilag_initialize initialize
  def initialize
    set_max_screen
    falcaopearl_antilag_initialize
  end
  
  def set_max_screen
    @[member=Max]_width  = (Graphics.width / 32).truncate
    @[member=Max]_height = (Graphics.height / 32).truncate
  end
end

class << Graphics
  alias falcaopearl_antilag_g resize_screen
  def resize_screen(w, h)
    falcaopearl_antilag_g(w, h)
    $game_map.set_max_screen unless $game_map.nil?
  end
end

class Game_Event < Game_Character
  attr_accessor :allow_update
  alias falcaopearl_antilag_ini initialize
  def initialize(map_id, event)
    falcaopearl_antilag_ini(map_id, event)
    @ignore_antilag = event.name.include?('<global>')
    @parallel_mode = @trigger == 3 || @trigger == 4 || @ignore_antilag
    @allow_update = true
    update_on_screen_event
  end
  
  alias falcaopearl_antilag_page setup_page_settings
  def setup_page_settings
    falcaopearl_antilag_page
    @parallel_mode = @trigger == 3 || @trigger == 4 || @ignore_antilag
  end
  
  def update_on_screen_event
    @allow_update = false unless @parallel_mode
    max_w = $game_map.max_width ; max_h = $game_map.max_height
    out = PearlAntilag::OutRange
    sx = (screen_x / 32).to_i
    sy = (screen_y / 32).to_i
    if sx.between?(0 - out, max_w + out) and sy.between?(0 - out, max_h + out)
      @allow_update = true
    end
  end
  
  alias falcaopearl_antilag_up update
  def update
    unless @parallel_mode
      update_on_screen_event
      return unless @allow_update
    end
    falcaopearl_antilag_up
  end
end

class Sprite_Character < Sprite_Base
  alias falcaopearl_antilag_update update
  def update
    if @character.is_a?(Game_Event) #and [email protected]_mode
      unless @character.allow_update
        end_animation if @character.animation_id > 0
        end_balloon if @character.balloon_id > 0
        self.x = @character.screen_x
        self.y = @character.screen_y
        self.z = @character.screen_z
        return
      end
    end
    falcaopearl_antilag_update
  end
end

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

In effetti non avevo risolto il problema, ma l'avevo bypassato riprogrammando tutti gli eventi coinvolti, poi faccio qualche test, nel frattempo ti ringrazio Ghost ^^ 

 

Quindi basta mettere <global> nel nome dell'evento per farlo runnare come se lo script non lo toccasse?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

 

 

Quindi basta mettere <global> nel nome dell'evento per farlo runnare come se lo script non lo toccasse?

 

esatto, basta che sostituisci il tuo attuale antilag con questo e po inserisci il tag <global> nel nome evento;

ovviamente può anche andare insieme ad altri tag, esempio <enemy 1> <global>

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Dunque, ho provato ad inserirlo e ho messo come valore 20 per testare, appena apro il player esce questo:

 

zoi2l3.jpg

    if sx.between?(0 - out, max_w + out) and sy.between?(0 - out, max_h + out)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Dunque, ho controllato l'altro script l'avevo probabilmente rimosso l'altra volta perchè alla fine mi aveva bloccato tutti gli eventi e riprogrammarli tutti è davvero troppo

 

 

 

Per questioni mie di gestione non lo posso inserire questo script anche se devo ammettere che è utile e anche se non funziona da 100 tiles di distanza un po di differenza la fa. (non lo posso inserire perchè come ho detto dovrei ristrutturare il gioco basandomi anche su quello script di movimento) :S un casino

 

Ora, magari non è che entra in conflitto con il bs o qualche altro script?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

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

Crea un account

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

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

  • Contenuti simili

    • Da kaine
      Questo plugin permette di accedere ai dati che normalmente non sono accessibili all'utente finale.
      Nonostante tutto il plugin non può ritenersi concluso, dato che è un progetto in continua espansione, trovate informazioni dettagliate sulla questione nel readme.html
      Al momento tramite questo plugin è possibile accedere alle statistiche dei mostri presenti in battaglia.
      Alcune possono essere alterate(Hp/Mp) altre invece no(attacco, difesa,intelligenza,agilità)
      Trovate la lista dei comandi con le relative spiegazioni sul loro funzionamento all'interno del file readme.html
       
      Autore: AubreyTheBard
      Link Download: https://www.mediafire.com/file/odagfm1mfpfrq0r/DynDataAccess.7z/file
       
      nota: Chiunque fosse interessato ad espandere le funzionalità del plugin, all'interno del readme.html troverà la sezione How to contribute, dove viene spiegato come aggiungere nuove funzionalità.
       
       
    • Da kaine
      Questo plugin permette di sovrascrivere i valori predefiniti del database con valori salvati in file .txt (che i programmi per i fogli di calcolo considerano come "valori separati da tabulazione").
      Il plugin può sovrascrivere più parti del database in modo indipendente, all'avvio del gioco o durante lo stesso, tenendo traccia delle modifiche apportate riapplicandole quando verrà caricato un salvataggio.
       
      Tramite il suo utilizzo è possibile creare giochi con più livelli di difficoltà, sovrascrivendo i valori delle statistiche dei nemici in base alla scelta effettuata, o cambiare la difficoltà se essa è troppo alta o bassa durante la partita a proprio piacimento(a discrezione del creatore del gioco dare questa oppotunità all'utente finale).
      Oltre alle statistiche dei nemici possono essere modificati anche i valori riguardanti i personaggi, abilità, oggetti e altro ancora.
       
      Oltre ai su citati file .txt è  possibile modificare i dati di gioco anche tramite programmi per i fogli di calcolo (come Microsoft Excel ed Open Office Calc), invece di utilizzare l'editor del database di Rpg Maker.
      Con l'utilizzo di questi programmi è possibile fare modifiche più radicali su gruppi più grandi e utilizzare formule per generare valori basati su altri valori.
       
      Per approfondire il tutto vi rimando al file readme.html presente nell'archivio
       
      Autore: AubreyTheBard
       
      Link Download:
      https://www.mediafire.com/file/pki411pmlzn8nmr/DynDatabaseOverride.7z/file
    • Da kaine
      Questa patch rimuove il comando end, altrimenti aggiunto automaticamente, dal motore di gioco nella scelta principale del menu
      Se si definisce che la scelta nel database è vuota, può
      bloccare il gioco o causare altri problemi.
       
      Tool e versioni supportate:
      Rpgmaker 2003: v1.00-v1.03-v1.05-v1.08-v1.09-v1.12
      Autore: Cherry, KotatsuAkira(porting)
       
      Link  Download:
      (2003 v1.09-v1.12)
      https://www.mediafire.com/file/vwbjb8naswekm58/RPG_RT_112_NoEndCommandInMenu.ips/file
      (2003 v1.00-v1.03-v1.05-v1.08)
      https://www.mediafire.com/file/v4ql077l5icn9dy/RPGMakerPatch_NoEndCommand.7z/file
       
       
      Per applicarla dovete usare questo programmino qui:
      http://www.mediafire.com/download/5jf9r44itbm7674/lips102.zip
      Nel caso in cui invece avete patchato il vostro gioco con la versione 0.20 di dynrpg mettete la patch direttamente nella cartella dynpatches.
       
    • Da kaine
      Tramite questa patch è possibile modificare la posizione del timer sia durante il gioco che in battaglia, alcuni esempi di utilizzo sono il cambiare angolo o far si che in determinate circostanze lo si possa shakerare, posizionare sopra un nemico o far si che segua costantemente l'eroe, un veicolo ecc ecc sta tutto alla vostra immaginazione.
       
      La patch utilizza le seguenti variabili:
      Timer 1
      3401 - 3402 contengono i valori delle coordinate X e Y del timer in game
      3403 - 3404 contengono i valori delle coordinate X e Y del timer in battaglia
      Solo 2003 :
      Timer 2
      3405 - 3406 contengono i valori delle coordinate X e Y del timer in game
      3407 - 3408 contengono i valori delle coordinate X e Y del timer in battaglia
       
      Tool e versioni supportate:
      Rpgmaker 2000: v1.07-v1.10-v1.50-v1.51-v1.62
      Rpgmaker 2003: v1.08-v1.09-v1.12-Maniacs Patch mp210414_EN_IM-mp210414_EN_PF-mp210414_JP_IM-mp210414_JP_PF
       
      Autore: KotatsuAkira
      Link Download:
      https://www.mediafire.com/file/wv677ddsjv9dpv4/RPGMakerPatch_VarTimerPos.7z/file
       
      Nel caso in cui utilizziate la patch Screen32 all'interno dell'archivio è presente una versione compatibile con essa che andrà applicata solamente dopo aver applicato la prima.
       
      Per applicarla dovete usare questo programmino qui:
      https://www.mediafire.com/file/5jf9r44itbm7674/lips102.zip/file
×