Newsgroup: it.comp.giochi.avventure.testuali
Titolo: [Inform] Verbo "Esci"

Non mi piace molto la gestione del verbo "Esci" in Inform.
Per potere, in tutte le locazioni, digitare una cosa tipo >ESCI DALL'UFFICIO
o >ESCI DAL MANICOMIO devo per forza creare una "sottolocazione" (cioè un
oggetto ufficio dentro l'ufficio-locazione) chiamata, appunto, "ufficio" o
"manicomio"?
Lo so, per convenzione in Inform non si usa la formula "ESCI DA STANZA" (ma
solo >ESCI): preferirei, però, inserirla in un modo non troppo macchinoso.
Il problema è che il "name" della locazione ('ufficio' per esempio) non è
considerato un oggetto (ma al limite un oggetto-scenario). Idee?
f.

 considerato un oggetto (ma al limite un oggetto-scenario). Idee?
Provo a risponderti a livello intuitivo, dal momento che ora non ho il
manuale sotto mano e sono diversi mesi che non entro nei meandri tecnici di
Inform; comunque si potrebbe estendere la grammatica di Exit assegnandogli
una routine di parsing personalizzata.
Questa routine avrebbe il compito di esaminare l'input inserito e verificare
se corrisponde ad un riferimento della locazione in cui ci si trova. (tra
parentesi, non e' detto che realizzare detta routine sia facile, ma credo
proprio che sia fattibile ;-)
Cio' fatto, ogni stanza potrebbe ereditare da un'ipotetica classe Room che
implementerebbe un 'before' per Exit col compito di verificare l'azione
desiderata.
Ripeto, ho ripreso in mano Inform l'altro giorno e sono un po' arrugginito,
chiedo scusa se non sono stato troppo preciso, ma credo che l'intuizione
possa essere un buono spunto.
Ciao,
Paolo
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 "manicomio"?
Prova ad aggiungere queste due routine:
[ Handle_SCENERY_PE;
     if (action_to_be == ##Exit)
         <<Go out_obj>>;
     rfalse;
];
[ ParserError eType;
     if (eType == SCENERY_PE) return Handle_SCENERY_PE();
     rfalse;
];
oppure, se usi scenic.h, modifica Handle_SCENERY_PE nel file.
Non ho controllato bene se ci sono problemi. Probabilmente, specialmente 
se si usa scenic.h, bisogna aggiungere qualche controllo in piu' (tipo 
controllare che la stanza fornisca la direzione out_to, o che l'oggetto 
sia veramente la stanza e non un altro oggetto scenico).
bye
-- 
Paolo Lucchesi
email: plucchesi(at)tin(dot)it
home page: 
http://www.paololucchesi.it
"Tempus Edax Rerum"

 
Vero, io ormai creo n locazioni found_in della vera location:
esempio strada con found_in tutte le location a cui puoi accedere
dalla strada:
L'unica cosa che gestisco manualmente č la doppia descrizione, se ti
trovi dentro o fuori dato che in questo modo il "name" č visibile in
entrambe
le parti.
bai
t

 f.
dando a tutte le tue locazioni l'attributo container?(in modo che esci
da stanza funzioni come "esci dalla scatola gigante?) l'unico problema
č che dovresti eliminare il noioso (dentro la tua stanza) quando viene
invocata la funzione PrintLocation. mi pare comunque che nel capitolo
dedcato a changeplayer si parli di un argomento che puoi 
passareallafunzione per evitare di stampae il (dentro a, oppure il
come nuovopersonaggio)
ciao (scritto in stazione centrale a milano, da un terminal wi-fi di
tiscali... che figata!!)
philip