Jump to content
Rpg²S Forum
  • 0

Variabili in database


Riccardo
 Share

Question

Salve ragazzi, premetto che ho ampiamente utilizzato il tasto di ricerca per una soluzione, ma essendo piuttosto tedioso anche solo formulare la richiesta non ho ottenuto alcun risultato. Dunque la mia domanda parte da questa constatazione. Quando noi andiamo a rinominare un eroe, il nome registrato viene inserito in una variabile della quale possiamo richiamarne il contenuto nei messaggi usando \n[idpersonaggio]. Ora, nel mio gioco ci sono due differenti team che spesso si incontrano e giustamente la squadra attualmente in uso risulta con i nomi opportunamente modificati, mentre la squadra nemica risulta con i nomi presenti nel database nella sezione mostri. Il problema è che se provo a mettere \n[idpersonaggio2] al posto del suo nome nel database, nella battaglia vien fuori proprio "\n[idpersonaggio2]". Lo stesso problema si verifica se voglio che un mio personaggio possegga un oggetto particolare che riporti il suo nome. Ad esempio il personaggio3 viene chiamato dall'utente "Ciccio". Esso possiede un'arma speciale chiamata "Spada magica di *personaggio3*". L'obiettivo sarebbe ottenere "Spada magica di Ciccio". Ovviamente anche qui inserire \n[idpersonaggio3] non sembra funzionare. Quindi arrivando alla domanda, vorrei sapere se è possibile realizzare questo tipo di situazioni per default o se è necessario ricorrere a qualche script. Mi sembra comunque strano possedere una variabile per eroe e non poterla usare in qualsiasi box di testo(che alla fine di questo stiamo parlando). Spero di essere stato chiaro, ovviamente sono disposto a spiegarmi meglio qualora sia necessario. Grazie per l'attenzione!

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0
Ci vuole uno script apposito. Ora, non ricordo effettivamente come funzionano gli script dell'Xp, ma ricordo che sono molto ostici da personalizzare.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Non ho Xp, ma se il sistema del database è simile a VX e Ace, dovresti avere le classi RPG::Item ad esempio che si riferiscono agli oggetti.

Questi hanno attributi pubblici come @name in modo da poter essere subito prelevati.

 

Un'idea sarebbe quella di personalizzare questa classe rendendo l'attributo accessibile solo attraverso un metodo, che quindi può rilasciare il proprio nome oppure uno personalizzato.

Ad esempio, supponiamo che l'oggetto 10 del database debba riferirsi al nome dell'eroe 5, e l'oggetto 11 il valore della variabile 100:

 

class RPG::Item
  def name
    case @id
    when 10
      return @$game_actors[5]
    when 11
      return $game_variables[100]
    end
  end
end
Non so se mi sono spiegato... Questa è tutta teoria comunque, al momento non ho installato RPG Maker Xp sul PC.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Si ma in teoria così il nome dell'oggetto sarebbe esattamente il nome del personaggio. Io invece ho bisogno che nel suo nome o nella sua descrizione venga fuori il nome del personaggio in un dato momento. Non so se mi sono spiegato bene.

Link to comment
Share on other sites

  • 0

Si ma in teoria così il nome dell'oggetto sarebbe esattamente il nome del personaggio. Io invece ho bisogno che nel suo nome o nella sua descrizione venga fuori il nome del personaggio in un dato momento. Non so se mi sono spiegato bene.

 

Qualcosa del genere:

 

class RPG::Item
  def description
    if id == 10 and $game_switches[2]
 return "Descrizione sull'eroe " + $game_actors[1]
else
 return @description
end
  end
end

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Questo dovrebbe andare:

# Modulo personale generico
module Pers
  RE_ACT = /[\\]n[\[](\d)[\]]/i
  
  # Restituisce il nome dell'eroe dal segnaposto "\n[id]"
  def self.parsed_actor_name(text)
    a = text =~ self::RE_ACT ? $1.to_s : ""
    return $game_actors[a.to_i].name if a != ""
    return ""
  end
  
end

class RPG::Weapon
  def name
    return @name.gsub(Pers::RE_ACT) {Pers.parsed_actor_name(@name)}
  end
  
  def description
    return @description.gsub(Pers::RE_ACT) {Pers.parsed_actor_name(@description)}
  end
end

class RPG::Enemy
  def name
    return @name.gsub(Pers::RE_ACT) {Pers.parsed_actor_name(@name)}
  end
end

Come puoi vedere vale per armi e nemici e solo per i nomi degli eroi.

Per farlo funzionare anche con armature, oggetti, ecc. basta copiare una delle due classi (Weapon o Enemy) e modificarla di conseguenza.

Se invece vuoi fargli riconoscere altre info oltre al nome dell'eroe (come avviene ad esempio nella finestra dei messaggi) bisogna lavorarci un po' di più...

 

Per usarlo, basta settare ad esempio il nome dell'arma "Spada di \n[1]" e nel menu comparirà "Spada di Ciccio" se il primo eroe si chiama Ciccio ;)

Edited by ickh

Giochi completi

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/rha2Trr.png

[sHORT] ELYON 5 --> http://www.rpg2s.net/forum/index.php/topic/19876-short2015full-elyon-5/

 

Progetti in corso

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/5KdJ3fW.png

White Crow --> http://www.rpg2s.net/forum/index.php/topic/20845-white-crow/

Link to comment
Share on other sites

  • 0

Scusami lo stavo testando ma non ho ben capito dove inserire il modulo e le classi. Per il modulo immagino debba creare una nuova classe sopra main. Ma per le 2 classi? Devo modificare delle due classi preesistenti o crearne altre?

Link to comment
Share on other sites

  • 0

E' uno script come gli altri, inserisci tutto quanto in una nuova voce sopra Main.

Giochi completi

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/rha2Trr.png

[sHORT] ELYON 5 --> http://www.rpg2s.net/forum/index.php/topic/19876-short2015full-elyon-5/

 

Progetti in corso

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/5KdJ3fW.png

White Crow --> http://www.rpg2s.net/forum/index.php/topic/20845-white-crow/

Link to comment
Share on other sites

  • 0

Ecco io ho fatto così e non funziona. Sicuro sia uno script per RGSS1? Mi sembra differente dalle altre classi

EDIT:Scusami sono un'idiota! E' perfetto! Anziché mettere il numero dell'eroe mettevo il suo id. Suppongo funzioni comunque per numeri a 2 cifre giusto? Comunque non dovrebbe servirmi in ogni caso è già fantastico così. Posso ringraziarti in qualche modo?

Edited by Riccardo
Link to comment
Share on other sites

  • 0

Fatto e testato su XP...

Cos'è che non ti funziona? Va in errore oppure non fa quello che dovrebbe fare?

Giochi completi

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/rha2Trr.png

[sHORT] ELYON 5 --> http://www.rpg2s.net/forum/index.php/topic/19876-short2015full-elyon-5/

 

Progetti in corso

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/5KdJ3fW.png

White Crow --> http://www.rpg2s.net/forum/index.php/topic/20845-white-crow/

Link to comment
Share on other sites

  • 0

Suppongo funzioni comunque per numeri a 2 cifre giusto?

Ops, no... :blush:

 

Sostituisci questa riga:

RE_ACT = /[\\]n[\[](\d)[\]]/i 

con questa:

RE_ACT = /[\\]n[\[](\d*?)[\]]/i

Giochi completi

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/rha2Trr.png

[sHORT] ELYON 5 --> http://www.rpg2s.net/forum/index.php/topic/19876-short2015full-elyon-5/

 

Progetti in corso

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/5KdJ3fW.png

White Crow --> http://www.rpg2s.net/forum/index.php/topic/20845-white-crow/

Link to comment
Share on other sites

  • 0

No problem.

Non penso che la utilizzerò mai, però è una funzionalità carina.

Hai avuto una bella idea. ;)

Giochi completi

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/rha2Trr.png

[sHORT] ELYON 5 --> http://www.rpg2s.net/forum/index.php/topic/19876-short2015full-elyon-5/

 

Progetti in corso

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/5KdJ3fW.png

White Crow --> http://www.rpg2s.net/forum/index.php/topic/20845-white-crow/

Link to comment
Share on other sites

  • 0

In verità la funzionalità per l'arma mi tornerà utile solo in un unico caso, è quella dei nemici che ha suscitato la mia curiosità. Ho sempre desiderato poter fare allenamenti liberi tra alcuni componenti del gruppo, specie se tra essi nasce una specie di rivalità :-)

Link to comment
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
 Share

×
×
  • Create New...