Jump to content
Rpg²S Forum
  • 0

Script di un diario...


Theoras
 Share

Question

Avrei bisogno di uno script che fungesse da "diario di viaggio". Quando io lo apro da una scelta su un menu mi viene una serie di scritte, descrizioni di missioni che ho fatto NELL'ORDINE in cui le ho fatte.

Se una missione non l'ho fatta la descrizione di quella missione non deve apparire, è chiaro.

 

E' possibile realizzare una cosa del genere?

 

Volete due giochi Completi e Seri fatti con RPG MAKER? Cliccate su...

www.raldon.altervista.org

 

Problemi con Raldon? Segnalali su...

www.raldon.forumfree.net

 

Partecipante al Rpg2s.net Game Contest 2008/2009

http://www.rpg2s.net/contest/GameContest0809/gc0809-bannerino.jpg

Gioco in Sviluppo: Raldon

 

 

Posizioni raggiunte nei Contest

http://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest3Oct.gifhttp://img76.imageshack.us/img76/1260/destroy3gr3.pnghttp://img233.imageshack.us/img233/7186/comics2hd8.gifhttp://www.rpg2s.net/gif/GC_bestoftool3.gif

http://www.rpg2s.net/gif/GC_premio3.gifhttp://www.rpg2s.net/gif/GC_premio3.gifhttp://www.rpg2s.net/gif/GC_premio1.gifhttp://www.rpg2s.net/gif/GC_premio2.gifhttp://www.rpg2s.net/gif/GC_grafica3.gifhttp://www.rpg2s.net/gif/GC_programmazione3.gifhttp://www.rpg2s.net/gif/GC_programmazione1.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo3K.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo2XP.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo2BEST.gif

http://www.rpg2s.net/awards/bestuser2.jpghttp://www.rpg2s.net/awards/bestmaker2.jpghttp://www.rpg2s.net/awards/mostpresent1.jpghttp://www.rpg2s.net/awards/mostproductive1.jpg

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Come si diceva una volta! "Se puoi immaginarlo, allora puoi programmarlo!"

Semplice e vero, con la programmazione puoi fare tutto!

Ora non sono un esperto di ruby o rpgmaker, però il concetto è semplicissimo.

Tu devi avere un elenco di missioni, con descrizione e simili, da parte e quando avviene un certo evento devi "copiarle" nel diario. Detto così è semplicissimo, l'unica cosa difficile è tradurre pseudocodice in codice vero e proprio, e questo dipende unicamente dalle tue capacità ;P

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


SCContest1Oct.gif
gifnatale1.pnggifnatale12.png

Link to comment
Share on other sites

  • 0

T'ho buttato giù uno script per il diario, non è niente di che, anzi sembra più una pergamena che un diario.

Comunque speriamo che ti sia utile.

 

=begin

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

Scipt Diario

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

 

Instruzioni:

Per prima cosa bisogna modificare il menu in modo che visualizzi il diario:

 

1)Aprire il Scene_Menu e trovare una serie sN = "Qualche cosa" es.

s6 = "Esci dal Gioco" e mettere sotto questi elementi un'altro elemento

con scritto s e accanto il numero successivo all'ultimo visulizzato es.

nel mio caso sarà s7 = "Diario".

 

2)Modificare la linea sottostante vale dire:

@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])

con questa:

@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s7, s6])

Cioè mettere il Diario al penultimo posto del menu.

 

3)In fondo al Scene_Menu c'è il def update con una serie di when

l'ultimo dovrebbe essere when 5, di solito è così, va sostituito con when 6

sotto a questo mettete:

when 5

$game_system.se_play($data_system.decision_se)

$scene = Scene_Diary.new

e sotto a questo dovrebbe esserci un end.

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

Fine, almeno per quanto riguarda al menu.

Ora veniamo alle funzioni:

Nella finestra del diario viene visualizzato tutto quello che è scritto nel

file Diary.rxdata sulla cartella Data del progetto, che se non presente

verrà creato automaticamente anche se vuoto.

Perciò tutto quello che bisogna fare per far funzionare questo script è

aggiungere la voce al menu, cioè quello che ho fatto qui sopra, avviare per

una volta il gioco e una volta fatto aprire la cartella del progetto del

gioco andare su data, aprire il file Diary.rxdata con un editor di testo

(Per chi non lo sapesse: click col tasto destro del mouse, selezionare

"Apri con" e sceglere il blocco note oppure altri editor) e

aggiungere quel che si vuole.

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

Veniamo all parte importante le Funzioni del testo:

1)/[N] Se inserite questo nel testo del Diary con N il numero di una switch

la righa a cui è asseggnata non verrà visualizzata se la switch è impostata

su off, IMPORTANTE: la / va PER FORZA messa come primo carattere della riga.

 

2)/K[N] Come sopra solo che se mettete il valore K ad un numero maggiore di 1

la condizione di visualizzazzione verrà estesa alle K-1 righe succssive.

 

3)\a Se inserite questo la linea verrà visualizzata con l'allineamento

scelto S che può avere valore:

0 = Sinistra 1 = Centrato 2 = Destra

 

4)Se inserite [t] oppure [T] si inserirà nel testo una tabulazione " ".

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

Alcune funzioni sono le stesse dei messaggi:

- \c[N] Imposta il colore della linea ud uno degli 8 colori

predefiniti(1-7).

- \v[N] Mostra il valore della variabile N nel punto in cui è inserita.

- \n[N] Mostra il nome dell'eroe N.

Se volete commentare qualcosa tutto quello dopo il carattere # non verrà

visualizzato, almeno per quella linea.

 

Infine lo script riconosce se ci sono righe in eccedenza cioè se il numero di

supera 14, sarà possibile scrollare la finestra con i tasti direzionali.

=end

 

# ---------------------------------

# Little_Arrow class

# ---------------------------------

class Little_Arrow < Sprite

 

def initialize(viewport,angle=0)

super(viewport)

self.bitmap = RPG::Cache.windowskin($game_system.windowskin_name)

self.ox = 0

self.oy = 0

self.z = 250

self.angle = angle

@blink_count = 0

update

end

 

def update

@blink_count = (@blink_count + 1) % 8

if @blink_count < 4

self.src_rect.set(160, 64, 16, 16)

else

self.src_rect.set(160, 64, 16, 16)

end

end

end

 

# ---------------------------------

# Window_Diary class

# ---------------------------------

class Window_Diary < Window_Base

 

def initialize

file = File.open("Data/Diary.rxdata","a")

file.close

file = File.open("Data/Diary.rxdata")

str = file.readlines

@lines = 0

k_lines = 0

strings = []

for i in 0..str.size - 1

if k_lines > 1

k_lines -= 1

elsif str.index("/")==0

if str.index(/[0-9]/)== 1

str.sub!(/([0-9]+)/){}

k_lines = $1.to_i

str.sub!(/\[([0-9]+)\]/){}

k_switch = $1.to_i

if $game_switches[k_switch]

@lines += 1

end

else

str.sub!(/\[([0-9]+)\]/){}

switch = $1.to_i

if $game_switches[switch]

@lines += 1

end

end

else

@lines += 1

end

end

 

if lines > 14

super(0, 0, 640, 480 + (lines - 14)*32)

else

super(0, 0, 640, 480)

end

self.contents = Bitmap.new(width - 32, height - 32)

file.close

refresh

end

 

def refresh

y=0

file = File.open("Data/Diary.rxdata")

str = file.readlines

k_lines = 0

k_switch = 0

for i in 0..str.size-1

color = normal_color

align = 0

str.gsub!(/\\[Cc]\[([0-9]+)\]/,"")

color = $1.to_i

str.gsub!(/\\[Aa]\[([0-2])\]/,"")

align = $1.to_i

str.gsub!(/\[[Tt]\]/) { " " }

str.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }

str.gsub!(/#/) do

str.gsub!(/./m,"")

end

str.gsub!(/\\[Nn]\[([0-9]+)\]/) do

$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""

end

if k_lines > 1

if $game_switches[k_switch]

set_text(y,str,color,align)

y+=32

end

k_lines -=1

elsif str.index("/")==0

if str.index(/[0-9]/)==1

str.sub!(/([0-9]+)/, "")

k_lines = $1.to_i

end

str.sub!(/\[([0-9]+)\]/, "")

str.slice!(0)

switch = $1.to_i

k_switch = switch if k_lines > 0

if $game_switches[switch]

set_text(y,str,color,align)

y+=32

end

else

set_text(y,str,color,align)

y+=32

end

end

file.close

end

 

def lines

return @lines

end

 

def set_text(y,text,color,align)

self.contents.font.color = text_color(color)

self.contents.draw_text(4, y, self.width - 40, 32, text,align)

end

end

# ---------------------------------

# Scene_Diary class

# ---------------------------------

class Scene_Diary

def initialize(a = 0)

@menu_call = (a == 0 ? true:false)

end

def main

create_arrow

@diary_window = Window_Diary.new

@lines = @diary_window.lines

Graphics.transition

loop do

Graphics.update

Input.update

update

if $scene != self

break

end

end

Graphics.freeze

@diary_window.dispose

@little_arrow1.dispose

@little_arrow2.dispose

end

 

def create_arrow

viewport = Viewport.new(0, 0, 640, 480)

viewport.z = 3000

@little_arrow1 = Little_Arrow.new(viewport,180)

@little_arrow1.x = 312

@little_arrow1.y = 16

@little_arrow1.visible = false

@little_arrow2 = Little_Arrow.new(viewport)

@little_arrow2.x = 312

@little_arrow2.y = 460

@little_arrow2.visible = false

end

 

def update

if Input.trigger?(Input::B)

$game_system.se_play($data_system.cancel_se)

if @menu_call == true

$scene = Scene_Menu.new(6)

else

$scene = Scene_Map.new

end

end

 

if @lines > 14

if @diary_window.y < 0

@little_arrow1.visible = true

else

@little_arrow1.visible = false

end

 

if @diary_window.y > -32*(@lines - 14)

@little_arrow2.visible = true

else

@little_arrow2.visible = false

end

 

if Input.press?(Input::UP) && @diary_window.y < 0

@diary_window.y += 10

end

if Input.press?(Input::DOWN) && @diary_window.y > -32*(@lines - 14)

@diary_window.y -= 10

end

end

end

end

 

 

Se c'è qualche problema fammelo sapere su questo topic così te lo risolvo.

Edited by Sylaer

http://www.rpg2s.net/awards/bestscripter1.jpg

Se avete bisogno di modifiche, correzioni o creazioni da zero di script RGSS, allora visitate la mia bottega.

La bottega di Sylaer

Link to comment
Share on other sites

  • 0

Purtroppo non mi funziona.

 

Cioè sono riuscito a creare la scelta del menu, ma quando ci clicco su "Diario" mi si apre una pagina blu e nient'altro.

 

In diary ho scritto queste cose:

 

/3[16]La attivi o no la swich 16??

si

no

 

Di regola mi dovrebbe visualizzare, se la swich 16 è attivata,

 

La attivi o no la swich 16??

si

no

 

GIusto?

Il problema è che non mi visualizza nulla...

Ho provato a fare "Nuovo Gioco" ma non cambia niente, se attivo la sedici non ci scrive niente comunque.

 

P.S. Ma se io non metto una swich di attivazione all'inizio di una rigaquella riga deve esser visualizzata sempre e comunque, giusto?

 

Altre domande più specifiche te le invio per MP.

 

Grazie comunque dell'interessamento, Sylaer!

 

EDIT: Tutto risolto, sono un idiota...

Avevo letto male le istruzioni...

Edited by Raldon

 

Volete due giochi Completi e Seri fatti con RPG MAKER? Cliccate su...

www.raldon.altervista.org

 

Problemi con Raldon? Segnalali su...

www.raldon.forumfree.net

 

Partecipante al Rpg2s.net Game Contest 2008/2009

http://www.rpg2s.net/contest/GameContest0809/gc0809-bannerino.jpg

Gioco in Sviluppo: Raldon

 

 

Posizioni raggiunte nei Contest

http://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest3Oct.gifhttp://img76.imageshack.us/img76/1260/destroy3gr3.pnghttp://img233.imageshack.us/img233/7186/comics2hd8.gifhttp://www.rpg2s.net/gif/GC_bestoftool3.gif

http://www.rpg2s.net/gif/GC_premio3.gifhttp://www.rpg2s.net/gif/GC_premio3.gifhttp://www.rpg2s.net/gif/GC_premio1.gifhttp://www.rpg2s.net/gif/GC_premio2.gifhttp://www.rpg2s.net/gif/GC_grafica3.gifhttp://www.rpg2s.net/gif/GC_programmazione3.gifhttp://www.rpg2s.net/gif/GC_programmazione1.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo3K.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo2XP.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo2BEST.gif

http://www.rpg2s.net/awards/bestuser2.jpghttp://www.rpg2s.net/awards/bestmaker2.jpghttp://www.rpg2s.net/awards/mostpresent1.jpghttp://www.rpg2s.net/awards/mostproductive1.jpg

Link to comment
Share on other sites

  • 0

Fammi capire bene: anche se scrivi qualcosa nel file Diary.rxdata, non ti mostra niente sulla finestra?

Comunque la finestra del diario te la apre, giusto?

Non lo so', sei sicuro di aver salvato il file prima di par partire il gioco?

http://www.rpg2s.net/awards/bestscripter1.jpg

Se avete bisogno di modifiche, correzioni o creazioni da zero di script RGSS, allora visitate la mia bottega.

La bottega di Sylaer

Link to comment
Share on other sites

  • 0

Non vorrei essere irritante, Sylaer, ma avrei bisogno di un ultimo favore.

 

Non so nemmeno se si possa fare, ma è possibile fare un comando che attraverso "Call Script" degli eventi richiami lo script del diario?

 

Volete due giochi Completi e Seri fatti con RPG MAKER? Cliccate su...

www.raldon.altervista.org

 

Problemi con Raldon? Segnalali su...

www.raldon.forumfree.net

 

Partecipante al Rpg2s.net Game Contest 2008/2009

http://www.rpg2s.net/contest/GameContest0809/gc0809-bannerino.jpg

Gioco in Sviluppo: Raldon

 

 

Posizioni raggiunte nei Contest

http://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest3Oct.gifhttp://img76.imageshack.us/img76/1260/destroy3gr3.pnghttp://img233.imageshack.us/img233/7186/comics2hd8.gifhttp://www.rpg2s.net/gif/GC_bestoftool3.gif

http://www.rpg2s.net/gif/GC_premio3.gifhttp://www.rpg2s.net/gif/GC_premio3.gifhttp://www.rpg2s.net/gif/GC_premio1.gifhttp://www.rpg2s.net/gif/GC_premio2.gifhttp://www.rpg2s.net/gif/GC_grafica3.gifhttp://www.rpg2s.net/gif/GC_programmazione3.gifhttp://www.rpg2s.net/gif/GC_programmazione1.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo3K.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo2XP.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo2BEST.gif

http://www.rpg2s.net/awards/bestuser2.jpghttp://www.rpg2s.net/awards/bestmaker2.jpghttp://www.rpg2s.net/awards/mostpresent1.jpghttp://www.rpg2s.net/awards/mostproductive1.jpg

Link to comment
Share on other sites

  • 0
Ottimo. Non so se lo utilizzerò, comunque grazie.

 

Volete due giochi Completi e Seri fatti con RPG MAKER? Cliccate su...

www.raldon.altervista.org

 

Problemi con Raldon? Segnalali su...

www.raldon.forumfree.net

 

Partecipante al Rpg2s.net Game Contest 2008/2009

http://www.rpg2s.net/contest/GameContest0809/gc0809-bannerino.jpg

Gioco in Sviluppo: Raldon

 

 

Posizioni raggiunte nei Contest

http://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest3Oct.gifhttp://img76.imageshack.us/img76/1260/destroy3gr3.pnghttp://img233.imageshack.us/img233/7186/comics2hd8.gifhttp://www.rpg2s.net/gif/GC_bestoftool3.gif

http://www.rpg2s.net/gif/GC_premio3.gifhttp://www.rpg2s.net/gif/GC_premio3.gifhttp://www.rpg2s.net/gif/GC_premio1.gifhttp://www.rpg2s.net/gif/GC_premio2.gifhttp://www.rpg2s.net/gif/GC_grafica3.gifhttp://www.rpg2s.net/gif/GC_programmazione3.gifhttp://www.rpg2s.net/gif/GC_programmazione1.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo3K.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo2XP.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo2BEST.gif

http://www.rpg2s.net/awards/bestuser2.jpghttp://www.rpg2s.net/awards/bestmaker2.jpghttp://www.rpg2s.net/awards/mostpresent1.jpghttp://www.rpg2s.net/awards/mostproductive1.jpg

Link to comment
Share on other sites

  • 0

Si può fare, ma bisogna che tu risostituisca lo script con quello che ho modificato ora.

Una volta fatto basta che tu inserisca questo nel call script:

 

$scene = Scene_Diary.new(1)

 

Ho dovuto modificare lo script perchè se si preme il tasto cancella viene rievocato automaticamente il menu e non la mappa anche se si era chiamato il diario da lì.

Edited by Sylaer

http://www.rpg2s.net/awards/bestscripter1.jpg

Se avete bisogno di modifiche, correzioni o creazioni da zero di script RGSS, allora visitate la mia bottega.

La bottega di Sylaer

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