Inform e Glulx/RUINS, l'avventura comincia/La cripta dei nove signori della notte (o sette come i nani)?
La vostra situazione è terribile: così conciati, le ragazze non vi degneranno neanche di uno sguardo. Non che prima vi guardassero poi più di tanto (una su duecento), ma adesso ogni vostra possibilità è andata persa. Delusi e disperati, decidete di farla finita e vi dirigete verso la Tana del Verme, convinti che verrete divorati quanto prima da quella bestiaccia schifosa. Ma più passa il tempo, più la tana diventa scivolosa intorno al vostro corpo di facocero, e strillate senza volerlo come annaspate nell'oscurità, precipitando infine a sud verso una cripta. Vi guardate intorno: la cripta è arredata di mensole, otturata con un sigillo di terracotta e contenente alcune figure dipinte che potrebbero rappresentare i Nove Signori Della Notte. C’è anche un favo splendidamente conservato, che forse rappresenta qualche tipo di offerta funeraria.
La cripta dei nove signori della notte (o sette come i nani)?
modificaLa Tana del Verme
, che abbiamo già visto nel sesto paragrafo di questo capitolo, presenta ora delle novità:
Object Wormcast "Tana Del Verme" with description . . . cant_go [; if (player ~= warthog) "Cominci a capire che c'@`e qualcosa dietro la tana, perch@'e questa via deve essere stata creata da qualche sorta di animale strisciante, troppo stretta per il tuo pancione da archeologo."; print "La tana diventa scivolosa intorno al tuo corpo di facocero e strilli senza volerlo come annaspi nell'oscurit@`a, precipitando infine a sud verso...^"; PlayerTo(Burial_Shaft); rtrue; ], after [; Drop: move noun to Square_Chamber; print_ret (The) noun, " scivola attraverso uno dei cunicoli e ", (itorthem) noun, " perdi rapidamente di vista."; ], has light;
Quando il giocatore cerca di andare in una direzione che non porta da nessuna parte, se non è stato ancora trasformato in un facocero, Inform si limita a stampare a video il relativo messaggio. Diverso è invece il caso in cui il giocatore sia il facocero in questione. Dopo che Inform ha stampato a video il relativo messaggio di appartenenza, entra in gioco l’istruzione PlayerTo
, che si usa quando si vuole spostare il giocatore in una locazione qualsiasi definita all’interno dell’avventura stessa, o eventualmente in un contenitore con l’attributo enterable
.
Sono previsti poi due possibili parametri: 1
(Inform sposta il giocatore nella locazione indicata tra le parentesi tonde senza però stampare a video la descrizione della nuova locazione):
Tana Del Verme (come facocero) >n La tana diventa scivolosa intorno al tuo corpo di facocero e strilli senza volerlo come annaspi nell'oscurità, precipitando infine a sud verso... >
e 2
(Inform stampa a video la descrizione della nuova locazione):
La Sala Quadrata (come facocero) Delle iscrizioni scolpite riempiono le pareti, il pavimento e il soffitto. >e Tana Del Verme (come facocero) >n La tana diventa scivolosa intorno al tuo corpo di facocero e strilli senza volerlo come annaspi nell'oscurità, precipitando infine a sud verso... La Cripta (come facocero) Sui tuoi appunti di lavoro puoi leggere: "Una cripta arredata di mensole, otturata con un sigillo di terracotta e contenente alcune figure dipinte che potrebbero rappresentare i Nove Signori Della Notte. Delle ossa sparpagliate sembrerebbero appartenere a un uomo anziano e a diversi bambini sacrificati, mentre altri resti funerari comprendono anche le zampe di un giaguaro." (Negli appunti è importante non far notare che sei spaventato.) C'è un favo splendidamente conservato qui. >
Se viene chiamata la funzione con il solo nome della locazione (come accade di fatto in Ruins), il valore di default è 2
(o, più tecnicamente, true
, che per Inform in questo caso è uguale a 2
). A ogni modo, ricordatevi di far seguire la chiamata alla funzione con l'istruzione rtrue
[1].
Grazie all’istruzione PlayerTo
, è possibile creare lo stesso effetto della parola magica xyzzy
presente in Avventura
[2]. È possibile, cioè, fare in modo che se il giocatore si trova in una specifica locazione e digita la parola xyzzy
(ma può essere una qualsiasi) viene spostato in un’altra locazione e viceversa:
Il Tempio Questo magnifico tempio mostra segni di scavi da preesistenti miniere di calcare, specialmente verso il lato occidentale, dove due lunghi cornicioni si dirigono verso sud. La grande porta di pietra gialla è aperta. Ci sono delle pitture impegnative e vivide qui, troppo lucide per essere guardate e ottenute mediante incisione da parte di un popolo altamente organizzato. Mostrano un sovrano corazzato che calpesta un prigioniero. Una grande lastra di pietra che funge da tavolo o altare, domina il Tempio. Sopra il ripiano dell'altare vedi una maschera facciale in mosaico di giada. >xyzzy Il Grande Altopiano I tuoi appunti menzionano qualcosa circa questa bassa scarpata di calcare, ma la foresta pluviale ne ha rivendicato il possesso. Cupi ulivi crescono ovunque, e una pioggia appena smessa riempie l'aria con una calda nebbia bagnata. La "Struttura 10" è un cumulo di materiali da costruzione, che una volta avrebbero potuto costituire una piramide sepolcrale, ma della quale ora nulla rimane, eccetto alcuni gradini scolpiti nella nuda roccia che portano giù, nell'oscurità. La tua cassa d'imballaggio giace qui, pronta per contenere eventuali scoperte di alto valore culturale da riportare alla civiltà. >xyzzy Il Tempio Questo magnifico tempio mostra segni di scavi da preesistenti miniere di calcare, specialmente verso il lato occidentale, dove due lunghi cornicioni si dirigono verso sud. La grande porta di pietra gialla è aperta. La lampada al sodio, posata a terra, si sta lentamente consumando. Ci sono delle pitture impegnative e vivide qui, troppo lucide per essere guardate e ottenute mediante incisione da parte di un popolo altamente organizzato. Mostrano un sovrano corazzato che calpesta un prigioniero. Una grande lastra di pietra che funge da tavolo o altare, domina il Tempio. Sopra il ripiano dell'altare vedi una maschera facciale in mosaico di giada. >
Come avete appena visto, le due locazioni interessate sono Forest
e Shrine
. Andiamo ora a vedere come questi due oggetti sono stati modificati:
Object Forest "Il Grande Altopiano" with description . . . before [; Listen: "Urla di scimmie, pipistrelli, pappagalli, macao."; Xyzzy: if (Shrine hasnt visited) rfalse; PlayerTo(Shrine); rtrue; ], has light; Object Shrine "Il Tempio" with description "Questo magnifico tempio mostra segni di scavi da preesistenti miniere di calcare, specialmente verso il lato occidentale, dove due lunghi cornicioni si dirigono verso sud.", before [; Xyzzy: PlayerTo(Forest); rtrue; ], . . .
Nell’oggetto Forest, l’istruzione PlayerTo
viene eseguita solo se il giocatore è stato almeno una volta nella Sala del Tempio
. Nell’oggetto Shrine
, invece, la funzione viene eseguita sempre (la locazione Forest
infatti, dal momento che è proprio quella di partenza, è sempre "visitata" almeno una volta dal giocatore). Occorre inoltre definire l’azione xyzzy
che, per ovvie ragioni, non è fra quelle standard:
Include "ItalianG"; [ PhotographSub; . . . ]; [ XyzzySub; "Non accade nulla..."; ]; Verb 'fotografa' * noun -> Photograph; Verb 'xyzzy' * -> Xyzzy;
Nulla di complicato, come potete vedere. Dal momento che questa azione è così semplice, corrisponde allora in Inform alla proprietà before
. Inoltre, se il giocatore digita la parola magica quando non è ancora andato almeno una volta nella Sala del Tempio
o se non si trova nel Grande Altopiano
o nella sala medesima:
Il Grande Altopiano I tuoi appunti menzionano qualcosa circa questa bassa scarpata di calcare, ma la foresta pluviale ne ha rivendicato il possesso. Cupi ulivi crescono ovunque, e una pioggia appena smessa riempie l'aria con una calda nebbia bagnata. La "Struttura 10" è un cumulo di materiali da costruzione, che una volta avrebbero potuto costituire una piramide sepolcrale, ma della quale ora nulla rimane, eccetto alcuni gradini scolpiti nella nuda roccia che portano giù, nell'oscurità. Un fungo macchiato cresce dalla terra fradicia, su un gambo lungo. La tua cassa d'imballaggio giace qui, pronta per contenere eventuali scoperte di alto valore culturale da riportare alla civiltà. >xyzzy Non accade nulla... >prendi il fungo Hai raccolto abilmente il fungo, senza staccarlo dal suo gambo sottile. >mangia il fungo Lo sgranocchi ad un angolo, incapace di capire l'origine di un gusto così acre, distratto dal volo di un macao sopra la tua testa che sembra quasi un'esplosione nel sole. Il battito delle sue ali è quasi assordante, e delle pietre crollano una sull'altra. >giù La Sala Quadrata Sei in una sala di pietra oscura e profonda, larga circa dieci metri. Un raggio di sole, proveniente dalla cima della scalinata, la illumina diffusamente, ma le ombre del livello più basso rivelano dei passaggi verso est e sud, che conducono verso la più profonda oscurità del Tempio. Delle iscrizioni scolpite riempiono le pareti, il pavimento e il soffitto. >xyzzy Non accade nulla... >
ecco quello che accade (cioè nulla).
Per quanto riguarda invece la Cripta
, c’è un piccolo problema: entrando (o meglio, precipitando) come facocero, non è possibile leggere gli appunti di lavoro. Eppure la descrizione di questa nuova locazione afferma proprio il contrario: ora, dal momento che, come vedremo meglio nel prossimo paragrafo, è possibile accedere alla Cripta
anche in forma "umana", non basta cancellare la parte di descrizione inerente agli appunti di lavoro, ma occorre modificare l’oggetto Burial_Shaft
nel seguente modo:
Object Burial_Shaft "La Cripta" with description [; if (player ~= warthog) "Sui tuoi appunti di lavoro puoi leggere: ~Una cripta arredata di mensole, otturata con un sigillo di terracotta e contenente alcune figure dipinte che potrebbero rappresentare i Nove Signori Della Notte. Delle ossa sparpagliate sembrerebbero appartenere a un uomo anziano e a diversi bambini sacrificati, mentre altri resti funerari comprendono anche le zampe di un giaguaro.~ (Negli appunti @`e importante non far notare che sei spaventato.)"; "Sei in una cripta arredata di mensole, otturata con un sigillo di terracotta e contenente alcune figure dipinte che potrebbero rappresentare i Nove Signori Della Notte. Delle ossa sparpagliate sembrerebbero appartenere a un uomo anziano e a diversi bambini sacrificati, mentre altri resti funerari comprendono anche le zampe di un giaguaro."; ], n_to Wormcast, cant_go "Gli architetti di questa sala sono stati avari nel fornirla di uscite. Alcuni facoceri, comunque, sembrano aver scavato dei cunicoli da nord.", has female light;
Se il giocatore non è un facocero, Inform stampa a video il messaggio "Suoi tuoi appunti di lavoro...
", altrimenti viene stampato a video "Sei in una cripta arredata di mensole...
". Vi ricordo ancora una volta che, per un’istruzione if
, si usano le parentesi graffe aperte ({
) e chiuse (}
) solo se ad essa corrispondono più istruzioni; altrimenti, come in questo caso, si omettono.
Note
modifica- ↑ Cliccate qui per scaricare il listato di questo esercizio (il file 4.13.inf).
- ↑
Adventure
oColossal Cave
(tradotta in italiano da Giovanni Riccardi) è la prima avventura testuale ad essere mai stata scritta. Ulteriori informazioni potete trovarle all’indirizzo http://www.rickadams.org/adventure/.