Jump to content

AD-Blocker detected, please disable your ad-blocker when surfing in makerando.com - There is no invasive Ad.

 

  • Chatbox

    You don't have permission to chat.
    Load More
Sign in to follow this  
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

Share this post


Link to post
Share on other sites

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...

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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...

 

Share this post


Link to post
Share on other sites

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"?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Edited by Loppa (see edit history)

Share this post


Link to post
Share on other sites

@@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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

 

 

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>

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

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

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By kaine
      Questo plugin permette di modificare il mostro contro cui si sta combattendo durante le battaglie, in base ai valori associati a determinate variabili(esempio: Potete far si che un innocuo slime con pochi hp a random possa diventare un qualsiasi mostro presente nel database, senza dover fare mille pagine di battaglia per ogni trasformazione possibile), inoltre permette sempre tramite variabili, di cambiare le posizioni di entrambi gli schieramenti in battaglia(mostri ed eroi). 
      All'interno dell'archivio trovate il file readme.html in cui è spiegato dettagliatamente il funzionamento del plugin e come configurarlo.
      Autore: Aubrey The Bard
       
      Link Download:
      https://www.mediafire.com/file/dohnmjg6ej3iv59/DynBattlerChange_R74IJaK.zip/file
    • By kaine
      Questo Plugin in sostanza permette di usare tutti i comandi degli eventi tramite commento, potendo utilizzare come parametro pure le variabili. Inoltre rende alcuni comandi più flessibili e potenti. Per esempio, potete usare una variabile per richiamare diversi eventi comuni, mostrare battle animation e immagini. Inoltre è possibile sovrascrivere i parametri delle stringhe compresi quelli dei commenti.

      All'interno dell'archivio trovate un file html con una spiegazione approfondita per ogni parametro.
       
      Autore: Aubrey The Bard
       
      Link Download:
      https://www.mediafire.com/file/t11vg8dkya2982t/DynParams_qnkHUQD.zip/file
    • By kaine
      Questa patch è solo per la versione ufficiale di rpgmaker 2003(1.12a)
      Autore: BingShan
      Link Download:
      Patch: https://ux.getuploader.com/xingqier/download/194
      TPC: https://ux.getuploader.com/xingqier/download/193
       
       
      Qui trovate il nuovo sito con le varie informazioni aggiornate sulla patch(vi consiglio altamente l'uso di google translate in inglese se volete capirci qualcosa, non in italiano perché google è pessimo con la nostra lingua):
      https://bingshan1024.github.io/steam2003_maniacs/
       
      Qui trovate l'elenco delle funzionalità che apporta questa patch tradotte in inglese(tramite google translate):
       
      Comandi Modificati:
       
       
      Nuovi comandi
       
      Installazione della patch:
      Nota: Prima di procedere fate una copia di backup della cartella in cui tenete rpgmaker per precauzione, non sia mai che qualcosa vada storto!
       
      Una volta che avete estratto l'archivio avviate utility.exe 
       
      Selezionate il metodo di aggiornamento degli eventi della mappa(l'ultimo da quanto vedo è incompatibile al momento) Immediately(Default) 
      Nella nuova versione dovrebbe essere selezionato in automatico ed in lingua inglese.
       
      Selezionate la cartella in cui si trova il tool Source Folder(io per sicurezza ho usato una copia della cartella che tenevo sul desktop)

       
      Dopodiché selezionate la cartella di destinazione Destination Folder 

       
      Una volta selezionati i due percorsi cliccate sul pulsantone immediatamente sotto Apply Patch

       
      Quando vi verrà chiesto il permesso per avviare patch.exe date l'ok
      Se l'applicazione della patch è andata a buon fine vi apparirà un piccolo box con una piccola scritta incomprensibile.(Se il messaggio dovesse essere differente chiudete e ripetete l'operazione)

      Premete su OK.
      In automatico vi si aprirà la cartella in cui avete deciso di inserire il tool con la patch applicata.
       
      Adesso potete chiudere utility.exe
      La parte sul fondo in cui si vedono dei progetti, serve solamente nel caso in cui dobbiate convertire un progetto già in corso nella versione ufficiale del tool.
      Se dovete creare un nuovo progetto non vi serve.
       
       
                     

       
×