Jump to content
Rpg²S Forum

ProGM

Rpg²S Admin
  • Posts

    3,215
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by ProGM

  1. Si, scusa, io mi sono messo a riorganizzare il codiceXD

    perchè così è un po' scomodo, perchè la cosa peggiore da fare in questi casi è fare $scene = Scene_Map.new

    Ora, non voglio offendere (lo dico perchè qualcuno si è offeso una volta)...

    ti metto il codice risistemato:

    #=====================================================
    # ■ Selettore di Linguaggio v1.5  --  Broly88
    #=====================================================
    # DESCRIZIONE - Script che permette la visualizzazione
    # a video di un messaggio, scritto in una lingua
    # scelta arbitrariamente dall'utente.
    # ----------------------------------------------------
    # COMPATIBILITA':
    # <> Multi-line (si viene informati se le righe sono
    #	più delle 4 normali previste per un messaggio)
    # <> Default special commands (\c[],\v[],...)
    # <> Opzioni di posizionamento e trasparenza (default)
    # <> Simboli e lettere accentate (i file esterni di
    #	lingua devono però essere salvati con codifica
    #	Unicode UTF-8)
    # <> Script per i face e i nomi
    # ----------------------------------------------------
    # FUNZIONAMENTO - Lo script utilizza la variabile
    # globale "$lang" per impostare il percorso da cui
    # caricare di volta in volta il messaggio richiesto.
    # Tale messaggio viene designato dal parametro n
    # passato alla classe. E' possibile espandere il
    # numero di lingue disponibili, aggiornando l'array
    # percorsi con le corrette posizioni dei file esterni
    # di lingua.
    #=====================================================
    
    module PERCORSI
     #Definisce l'array con i percorsi dei file di lingua
     PATH = []
     PATH.push("Language\\Italiano.rxdata") # 0 - ITA
     PATH.push("Language\\Inglese.rxdata")  # 1 - ENG
    end
    
    class Scene_Map
    
     def show_message(n)
    #Imposta il numero ID del messaggio	
    @n = n
    #Verifica che sia impostato un codice di lingua,
    #altrimenti imposta la lingua di default (ITA)
    if $lang == nil
      $lang = 0
    end
    #Imposta il percorso del file di lingua
    @path = PERCORSI::PATH[$lang]
    #Estrae il testo dal file di lingua esterno
    @appo = IO.readlines(@path)
    #Se il messaggio richiesto esiste, lo carica nel
    #buffer dei messaggi, altrimenti informa l'utente
    #dell'errore avvenuto
    if @n<=(@appo.size-1)
      @testo = @appo[@n].to_s
      $game_temp.message_text = compila_messaggio
      else
      print("Errore, il messaggio scelto non esiste")
      return
    end
    #Torna alla mappa chiamante
     end
     
     def compila_messaggio
    @mex = ""
    @line = 1	
    #Il messaggio prevede una sola riga
    if @testo.size<=54
      @mex = @testo
    else
      #Messaggio multiriga
      i=54
      while(i<@testo.size)		
    	#La riga termina con uno spazio
    	if @testo[i]==32		
    	  @testo[i]="\n"		  
    	else
    	  #La riga termina con una nuova parola/lettera		  
    	  if (@testo[i-1]==32)			
    		#Nuova parola
    		if (@testo[i+1]!=32 and @testo[i+1]!=10)
    		  @testo[i-1]="\n"			  
    		end
    		#Nuova lettera/simbolo
    		if @testo[i+1]==32
    		  @testo[i+1]="\n"			  
    		end
    	  else
    		#La riga termina con una parola in corso
    		#La parola è composta da due lettere
    		if (@testo[i+1]==32)
    		  @testo[i+1]="\n"			  
    		else
    		  #La parola è composta da più lettere.
    		  #Trova l'inizio e va a capo
    		  k=(i-1)
    		  while (@testo[k]!=32)
    			k-=1
    		  end
    		  i=k
    		  @testo[i]="\n"			  
    		end
    	  end
    	end
    	i+=54
    	@line+=1
      end
      #Se il messaggio risultante occupa meno di 4
      #righe lo stampa, altrimenti riporta l'errore
      if (@line<5)
    	@mex=@testo
      else
    	print("In questo messaggio ci sono "+@line.to_s+" righe")
      end
    end
    #Ritorna il messaggio corretto per la stampa
    return @mex
     end
     
    end

    poi nell'evento:

    @message_waiting = true
    $game_temp.message_proc = Proc.new { 
    @message_waiting = false }
    $scene.show_message(0)

    ti spiego che ho fatto... allora per evitare di cambiare $scene c'è un solo modo, cioè usare una def in aggiunta a scene_map. esattamente quello che ho fatto O_. In questo modo non devi richiamare Scene_Map a fine codice perchè ci sei già!

    bah... provare per credereXD

    comunque del tuo codice non ho cambiato nulla, ho solo cambiato nome alla classe e unificato "initialize" e "main" della classe, chiamandola "show_message"XD

  2. basta che fai:

    @classe = QuelloCheè.new

     

    comunque, ora provo!

     

    EDIT: per risolvere il bug dei messaggi infiniti metti questo poco prima del codice che richiama il messaggio:

    @message_waiting = true
    $game_temp.message_proc = Proc.new { 
    @message_waiting = false }

    mi autoquoto!

    così vedi il messaggio che ho scritto mentre tu rispondeviXD

  3. 3- Sapete per caso come posso lanciare lo script senza cambiare la "$scene"?

    basta che fai:

    @classe = QuelloCheè.new

     

    comunque, ora provo!

     

    EDIT: per risolvere il bug dei messaggi infiniti metti questo poco prima del codice che richiama il messaggio:

    @message_waiting = true
    $game_temp.message_proc = Proc.new { 
    @message_waiting = false }

  4. ma che problema ideologico e problema ideologico...

    la cosa è semplice:

    L'uomo ha due "dipendenze" naturali, nutrirsi e dormire... se uno c'ha voglia di inventarsene altri fatti suoi, a me bastano queste due... non è il problema salute e non salute.

     

    Io conosco una sola malattia mortale...

     

     

    La vita!

  5. non leggo molti manga, perchè non riesco a seguire una serie, perdo qualche numero e mi passa la vogliaXD anime invece molti

    comunque:

    Rave

    Inu Yasha

    Ranma 1/2 ( a lucca ho preso la serie completa *_*)

    Full metal alchemist

    Full Metal Panic

    Maison Ikkoku

    Naruto

    Beck

    Dragon Ball

    GTO

    One Piece

     

    quello che odio di più... e chi si ricorda il nome.... centra qualcosa con Letter D, o initial d... comunque uno schifo!

×
×
  • Create New...