Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Vai al contenuto

Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Screen Contest #90

Kamikun






  • Si prega di effettuare il log in prima di rispondere
Rompere la quarta parete come Psycho Mantis

    Exim Gealbhonn
  • Utente avanzato

  • Utenti
  • Rens: 49
  • 2
  • StellettaStellettaStelletta
  • 355 messaggi
  • Sesso:Maschio
  • Abilitā:Esperto

#1 Inviato 07 August 2016 - 00:56 AM

Rompere la quarta parete come Psycho Mantis
Versione 1.0

 

 

 

 

 

1. Introduzione:
       Per: RPG Maker VX Ace.
       Autore: Sora Keyblade
       Descrizione: Una delle scene più memorabili che hanno caratterizzato il primo Metal Gear Solid di sicuro è stata quella  dove Psycho Mantis commentava i dati della Memory Card. Con questo tutorial voglio spiegarvi come poter raggiungere  un risultato simile con RPG Maker VX Ace.

      Prerequisiti: Modulo di supporto di Holy87
      Ultima modifica: /

 

2. Screen:

Immagine.png

 

https://s8.postimg.org/6ldb6cadx/Immagine.png

 

3.Demo:

 

http://www.mediafire.com/download/dq14692pn2eof09/Rottura+Quarta+Parete.zip

4. Tutorial:

 

Stavo programmando una cosa del genere su Elysian Quest (se dessi un'occhiata al gioco e lasciassi un feedback te ne sarei molto grato!), quindi ho pensato di divulgare le conoscenze che ho acquisito, ipotizzando che possa essere ritenuta una cosa interessante da parte di alcuni.

 

Il grande Holy87, all'interno del suo Modulo di supporto, ha piazzato diversi metodi che ci permettono di ottenere varie informazioni sull'utente che sta giocando al nostro gioco, in particolare ai fine del tutorial sono di nostro interesse:

Win.username

Che ci permette di ottenere il nome di sistema (che quasi sempre è il nome del proprietario del PC), il quale usato in un messaggio dà l'impressione di essere a conoscenza dell'identità del giocatore, facendogli credere di parlargli direttamente e non più attraverso il suo avatar virtuale. Quindi piazziamo il codice sopra riportato come valore di una variabile ed lo mostriamo in un messaggio con il codice \V[id_variabile].

 

Altro metodo del modulo di supporto che ci può essere interessante è

Win.version

il quale ci permette di ottenere la versione del Kernel del sistema operativo su cui sta girando il gioco e quindi risalire alla versione del sistema operativo vero e proprio (ricordo che rpg maker vx ace gira soltanto su sistemi microsoft, quindi non ci sono problematiche riguardanti altri sistemi operativi), infatti ogni versione del kernel corrisponde ad un sistema operativo Windows, nel dettagli:

la versione 5.0 corrisponde a Windows 2000

la versione 5.1 corrisponde a Windows XP

la versione 6.0 corrisponde a Windows Vista

la versione 6.1 corrisponde a Windows 7

la versione 6.2 corrisponde a Windows 8

la versione 6.3 corrisponde a Windows 8.1

la versione 10.0 corrisponde a Windows 10

 

Quindi piazziamo il codice sopra riportato come valore di una variabile e con una serie di controlli risaliamo alla versione di Windows in uso, per poi, ovviamente, stamparla su un messaggio con il solito codice \V[id_variabile]

N.B. Rpg Maker VX Ace, via eventi, non permette di paragonare il valore di una variabile con un numero razionale (come quelli del kernel), quindi bisogna farlo via script, ossia:

Cliccate su Conditional Branch (o Condizione SE) nella lista degli eventi, poi andate nell'ultima pagina (del conditional), cliccate su script e nella textbox mettete il seguente codice

$game_variables[id_variabile]==versione_kernel

ovviamente andranno modifcato id_variabile con la variabile che contiene la versione del kernel, mentre versione_kernel deve essere uno di quei 7 al fine di valutare a quale sistema operativo sta usando l'utente.

 

 

Il modulo di supporto vi ha stupito? Be', non finisce qui perché ho scritto un piccolo script che può veramente essere utile per instaurare un contatto diretto con la persona dietro lo schermo che gioca al vostro gioco, eludento quell'aspetto alienante che è il gioco stesso (oltre ad essere la citazione più grande alla scena di MGS di questo tutorial)!

 

Vi presento uno script di mia ideazione che è in grado di leggere i file all'interno di una cartella e estrarne uno casualmente, il quale se impostato in un determinato modo ci permette di conoscere i giochi all'interno del PC.


#==============================================================================
# SK | Rottura Quarta Parete 
# Autore: Sora Keyblade
# Versione: 1.0
# Programma: RPG Maker VX Ace
# Data: 06/08/2016
# Ultima Modifica: /
#-------------------------------------------------------------------------------
# Descrizione:
#    Script ideato per Elysian Quest. 
#     Questo script estrae il nome di una cartella o file casualmente
#     all'interno di un determinato percorso che viene settato dal Maker. 
#     Questo script è stato pensato per poter riprodurre la rottura della 
#     quarta parete in modo simile a come la ruppe Psycho Mantis nel 
#     primo Metal Gear Solid, ma può essere usato anche per altri scopi.
#-------------------------------------------------------------------------------
# Istruzioni:
#    Mettete il seguente codice sotto -Materials-, con il nome che più desideri
#    e seguite le istruzioni sotto riportate per la configurazione.
#    Per far estrarre il nome del gioco bisogna assegnare ad una variabile
#    il valore:
#          SK.estrai_gioco
#    se si vuole estrarre più di un gioco (senza il rischio di una ripetizione)
#    basta mettere come argomento gli id delle variabili che hanno registrato
#    precedentemente un gioco. Es.:
#          SK.estrai_gioco(1,2)
#    Si possono mettere quante varibili si vogliono.
#-------------------------------------------------------------------------------
# Termini di Uso:
#     -Free sia per giochi commerciali che non. 
#     -Il creditarmi all'interno del vostro gioco è apprezzato, ma non necessario 
#     -Vietata l'appropriazione indebita
#===============================================================================
# -Inizio Configurazione
#===============================================================================

module SK
  module Configurazione
    #Mettere tra le virgolette il percorso della cartella giochi. Di default è
    #settato per Steam (Attenzione che lo script prende in considerazione tutto
    # ciò che c'è nella cartella, quindi assicuratevi che ci possano essere solo
    #giochi in quella cartella
    Percorso_Giochi="C:/Program Files (x86)/Steam/steamapps/common"
    
    #Cosa risponde il gioco se non viene trovata la cartella, può essere usata
    #per un controllo al fine di saltare il passaggio del dialogo
    Percorso_non_esiste=0
  end
#===============================================================================
# -Fine Configurazione
#===============================================================================

   def self.estrai_gioco(*id_variabile_giochi)
     lista_giochi=[]
     giro=0
     if File.exist?(SK::Configurazione::Percorso_Giochi)
       Dir.foreach(SK::Configurazione::Percorso_Giochi) do |gioco|
         giro+=1
         lista_giochi.push(gioco) if giro>2
       end
       for i in id_variabile_giochi
         lista_giochi.delete($game_variables[i]) if lista_giochi.include?($game_variables[i])
       end
     else
       return SK::Configurazione::Percorso_non_esiste
     end
     
     valore_casuale=rand(lista_giochi.size-1)
     if lista_giochi[valore_casuale]!=nil
        return lista_giochi[valore_casuale]
      else
        return SK::Configurazione::Percorso_non_esiste
      end
   end
end
     
  

Vediamo insieme come funziona:

-nella parte della configurazione vediamo due linee di codice che possono esserci utili

Percorso_Giochi="C:/Program Files (x86)/Steam/steamapps/common"

e

Percorso_non_esiste=0

Il primo è semplicemente il percorso da cui lo script andrà ad estrapolare il nome dei giochi, in questo caso particolare va a vedere nella cartella "common" di steam dove vengono salvati i giochi della piattaforma Valve (il percorso lo potete cambiare con qualsiasi altro percorso, però dovete essere certi che in quel percorso di siano solo giochi oppure qualsiasi altro dato di vostro interesse).

 

Il secondo invece è il valore che ritorna lo script al posto del titolo di un gioco se la cartella non esiste oppure la cartella sia vuota. Solitamente metterei nil, ma per poter fare un confronto con gli eventi si dovrebbe procedere nuovamente via script e si può evitare perfettamente mettendo come valore un qualsiasi numero intero, come il numero zero (non si potrà presentare mai il caso che un gioco si chiami "0", in quanto anche se esistesse verrebbe estratto dallo script come stringa e non come intero).

Quindi grazie a questa funzione si potrebbe fare un sistema di controllo del genere per prevenire il fatto che il giocatore non abbia installato Steam (o quel che vi pare) e quindi che non ci sia alcun gioco da estrapolare, per esempio:

 

se variabile==0:

   Messaggio: "Vedo che non ha installato Steam!"

altrimenti:

  Messaggio "Hai giocato a \V[variabile]"

fine

 

 

Comunque dopo la configurazione passiamo al funzionamento dello script vero e proprio, mettiamo come valore di una variabile (sempre via script) il seguente codice:

SK.estrai_gioco

adesso quella variabile ha come valore il nome di un gioco a caso presente nella libreria steam tra quelli scaricati.

Se si volesse estrarre più di un gioco e si volesse evitare la possibilità che compaia 2 volte il nome dello stesso titolo si può aggiungere come argomento del codice sopra riportato gli id delle variabili che prima hanno memorizzato il nome di un gioco, privando così la nuova variabile di poter ottenere il valore di quelle precedenti. Per esempio

SK.estrai_gioco(1,2,3)

La nuova variabile così non potrà ottenere i valori delle variabili con id 1,2 e 3, impedendo così qualsiasi doppione. Il risultato finale per il mio script dovrebbe essere una cosa del genere:

 

variabile001=SK.estrai_gioco

variabile002=SK.esrai_gioco(1)

variabile003=SK.estrai_gioco(1,2)

se variabile001==0:

   Messaggio: "Vedo che non ha installato Steam!"

altrimenti:

  Messaggio "Hai giocato a \V[1], \V[2] e \V[3]"

fine

 

N.B.  Qua si parla di variabili che contengono stringhe (ossia parole o frasi), quindi non si può sapere con certezza quanto siano lunghe, di conseguenza vi consiglierei di installare il mio script per l'Endline Automatico dei Messaggi (ossia uno script che vi toglie il faticoso compito di dover mandare a capo manualmente durante la stesura dei messaggi il testo, potrete quindi scrivere il messaggio tutto in una riga, ed usare l'"a-capo" solo per questioni stilistiche, e lo script ve lo adatterà automaticamente), al fine di non far uscire il testo fuori dalla schermata.

 

Il tutorial finisce qui, se avete dubbi o consigli da proporre fate pure, ne sarei solo felice ^^


Modificato da Sora Keyblade, 07 August 2016 - 15:59 PM.


    leooo0010
  • Utente avanzato

  • Utenti
  • Rens: 0
  • 0
  • StellettaStellettaStelletta
  • 318 messaggi
  • Sesso:Maschio
  • Provenienza:Italia, Piemonte
  • Abilitā:Adepto

#2 Inviato 07 August 2016 - 02:20 AM

Mi piace  :sisi:.

E' un'idea simpatica da attuare  :tongue:


    Before the apocalypse...

Team Project 64-Bit

6bcoRgE.png

 

 

 

 


    Lusianl
  • Lord Charset

  • Utenti
  • Rens: 711
  • 16
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 5342 messaggi
  • Sesso:Maschio
  • Provenienza:lazio
  • Abilitā:Maestro

#3 Inviato 07 August 2016 - 09:49 AM

Una specie di spione! XD

1129.png

2986.png

BIM_Banner3.png

Premi RpgMaker

Spoiler

    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58424 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#4 Inviato 07 August 2016 - 11:16 AM

Ero curioso, leggendo gli aggiornamenti di stato, di quale feature di MG potesse essere. Non me l'aspettavo. Trovata simpatica, Sora! XD

Mi chiedo già le possibili implementazioni extra... ci son persone che hanno creato giochi che cambiano livelli in base alla presenza delle cartelle su desktop o simili...

^ ^


(\_/)
(^ ^) <----coniglietto rosso, me!     
(> <)

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^  
 
REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

Spoiler


    Dax
  • C'č pių gioia nel dare che nel ricevere

  • Rpg˛S Admin
  • Rens: 838
  • 7
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 4554 messaggi
  • Sesso:Maschio
  • Provenienza:Nord Sud Ovest Est
  • Abilitā:Maestro


#5 Inviato 07 August 2016 - 12:00 PM

"L'ultimo video che hai visto è - XXX Tette Exxxtralarge-, complimenti!" XD


Membro Segreto della
Vecchia Guardia del Making [Gif in fase di reload]

SCContest1Oct.gif[icona di un premio]

tgSY1j0.pnggifnatale1.pnggifnatale12.png


    Zuppo
  • Moralizzatore

  • Utenti
  • Rens: 111
  • 3
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 13962 messaggi
  • Sesso:Maschio
  • Provenienza:Ilneth
  • Abilitā:Esperto

#6 Inviato 07 August 2016 - 17:38 PM

Così come è ora funziona solo su windows, vè?


Deviantart

ElfGamesWorks Forum

 

My adventure game
Little Briar Rose

 

 

Altri progetti: Oh! I'm Getting Taller! / Il pifferaio di Hamelin

I miei Fumetti: Folletto Vs Nenè / A.s.D. / A.s.D.2

fablecontest1st.pngSCContest3Oct.gif 1zokd2s.png  qRfaRqE.png  eger81.gifBEu6G.gifeger81.gif
 

Un sogno nel cassetto...

Spoiler

Citaziò!

Spoiler


Scheda di Zuppo Del'Oquie

Spoiler


    Exim Gealbhonn
  • Utente avanzato

  • Utenti
  • Rens: 49
  • 2
  • StellettaStellettaStelletta
  • 355 messaggi
  • Sesso:Maschio
  • Abilitā:Esperto

#7 Inviato 07 August 2016 - 22:12 PM

Ero curioso, leggendo gli aggiornamenti di stato, di quale feature di MG potesse essere. Non me l'aspettavo. Trovata simpatica, Sora! XD

Mi chiedo già le possibili implementazioni extra... ci son persone che hanno creato giochi che cambiano livelli in base alla presenza delle cartelle su desktop o simili...

^ ^

Lo script non è eccessivamente complesso, anche uno che sa eventare qualcosina non dovrebbe avere problemi a modifcarlo per i propri scopi, quindi i possibili utilizzi aumentano esponenzialmente. In ogni caso stavo pensando che un feature del genere in un gioco horror farebbe un gran effetto!

 

 

Così come è ora funziona solo su windows, vè?

Be', è una guida per VX Ace, il quale funziona solo su sistemi windows, quindi sì






  • Feed RSS