Newsgroup: it.comp.giochi.avventure.testuali
Titolo: [Inform] Far comparire gli oggetti!!

Come si fa a far comparire gli oggetti quando esamino un qualcosa?
Se prendiamo come esempio:
Object    Tavolo "tavolo" Stanza
  with       name "tavolo",
               description "Un tavolo.",
               before [; Examine: if (penna in player)
                                                "Non vedi niente di
speciale.";
                                            else boh??
                        ];
   has        static supporter;
Object    Penna "penna"
  with      name "penna"
              description "Una penna stilografica.",
  has       female;
Come dovrei aggiustarlo?
Grazie a tutti.
Ciao.
P.S.: l'attributo legible non c'è più o non funziona nella versione 6.21 di
Inform?

striker (
strik...@tiscali.it
) wrote:
: Come si fa a far comparire gli oggetti quando esamino un qualcosa?
Non sono sicuro di capire bene il tuo dubbio. Se la penna sta fin
dall'inizio nel/sul tavolo (definendola ad esempio con `Object Penna
"penna" Tavolo') e (credo) se il tavolo e` "trasparent", la si dovrebbe
vedere senza problemi.
   Se vuoi che normalmente non si veda, ma si debba fare qualcosa di
speciale, tipo frugare tra altre cianfrusaglie, forse puoi mettere tra i
"before" del tavolo qualcosa come (non ti fidare ciecamente del codice
cosi` com'e`):
[; Search: move Penna to Tavolo;
"In mezzo a robaccia inutile trovi una bella penna.";];
: Object    Tavolo "tavolo" Stanza
:   with       name "tavolo",
:                description "Un tavolo.",
:                before [; Examine: if (penna in player)
:                                                 "Non vedi niente di
: speciale.";
:                                             else boh??
:                         ];
:    has        static supporter;
Non mi sembra molto bello quel `if (penna in player)': se la penna ce l'ha
il giocatore, e` chiaro che la descrizione del tavolo non la menzionera`;
se sta sul tavolo, o per terra, o altrove (e non e` "concealed" o simili),
il programma dovrebbe dirlo da solo.
Non so se tutto cio` ti aiuta.
Ciao,
							Daniele

 "In mezzo a robaccia inutile trovi una bella penna.";];
Attenzione pero', questo fa si che ad ogni comando "guarda in tavolo"
la penna magicamente va a finire sul tavolo, magari flaggando
general puoi evitarlo:
Object tavolo "tavolo" with
   ...
   before
   [;
      Search: if (self hasnt general) {
                 give self general; move penna to self;
              }
   ],
   ....
Senza messaggio, in questo modo se il player posiziona altra roba
sul tavolo ti viene elencato tutto in automatico.
bai
t

Ok, fin qui ho capito. Passiamo ad un altro esempio.
Supponendo che il foglio abbia l'attributo concealed, ho provato a fare
anche:
 Object armadio "armadio" with
    ...
    before
    [;
       LookUnder: if (self hasnt general) {
                  give self general; give foglio ~concealed;
                    "Sotto il mobile trovi un foglio";
               }
    ],
    ....
Ma perché non funziona??? O meglio esce la scritta "Sotto il mobile trovi un
foglio" ma la penna non compare.
Come mai? Come si dovrebbe fare?
Grazie.
Ciao.


Dove dovrebbe comparire la penna, sul tavolo?
Non ho capito se il problema č il foglio o la penna.
Forse confondi l'utilizzo della keyword self.
bai
t

 Forse confondi l'utilizzo della keyword self.
Lasciamo perdere l'esempio del tavolo e della penna che l'ho capito.
Adesso vorrei fare un altro esempio: ho un armadio, lo guardo sotto e trovo
un foglio.
Presumo che inizialmente il foglio dovrebbe "non esistere", quindi gli
assegno l'attributo concealed,
e quando faccio l'azione "guarda sotto armadio" il foglio compare, ho
provato a fare:
Object armadio "armadio" with
    ...
    before
    [;
       LookUnder: if (self hasnt general) {
                  give self general; give foglio ~concealed;
                    "Sotto il mobile trovi un foglio";
               }
    ],
    ....
Solo che non funziona, allora ho pensato vuoi vedere che se per eliminare
l'attributo concealed non serve solo/affatto il ~ ?
Chiedo quindi come posso far comparire il foglio?
Grazie.
Ciao.

 Grazie.
bye
-- 
Paolo Lucchesi
email: 
pluc...@tin.it
homepage: 
http://www.paololucchesi.it
"Non viviamo in un mondo perfetto (per fortuna)"

...
: > [; Search: move Penna to Tavolo;
: > "In mezzo a robaccia inutile trovi una bella penna.";];
: Attenzione pero', questo fa si che ad ogni comando "guarda in tavolo"
: la penna magicamente va a finire sul tavolo, magari flaggando
: general puoi evitarlo:
Gia`, gia`, hai ragione; a quello che ho scritto va premesso con
un'opportuna flag, come dici, che il programma lo deve fare solo la prima
volta, cosi` quando uno cerca (o esamina, o dice la parola magica), appare
l'oggetto e il relativo messaggio.
Ciao,
							Daniele

 indipendente dalla reale posizione dell'armadio.
Ecco quello che volevo capire. Grazie.
Ciao.

 ->). Poi
Io per tenere nascosti o far scomparire gli oggetti mi creo un'apposita
locazione 'fantasma' in cui tenerli. Quindi se il foglio esiste solo dopo
che ho guardato sotto l'armadio, all'inizio si trova nella locazione Limbo,
in cui ovviamente il giocatore non potra' mai arrivare. Sbaglio?
Ciao e grazie,
Marco

 in cui ovviamente il giocatore non potra' mai arrivare. Sbaglio?
No, va bene. Solo che "nothing" e' un'ottima locazione fantasma. Un 
oggetto che non "appartiene" ad una locazione, al giocatore o ad un 
altro oggetto e' difatto non esistente. Ovvero, mentre quest'oggetto:
Object -> telefono "telefono"
...;
appartiene ad un altro oggetto (presumibilmente una locazione), 
quest'altro oggetto:
Object telefono "telefono"
...;
non appartiene a niente, e quindi "non esiste". Per portarlo in gioco 
posso usare "move telefono to <dovemipare>". E posso togliere di torno 
un oggetto con "remove <oggetto>".
Il tuo sistema funziona, è solo un po' uno spreco. Il metodo canonico 
dovrebbe essere quello che ho indicato.


 ha scritto nel messaggio
news:gGuu9.43497$TD1.1...@news2.tin.it...

Vedi chi č cresciuto a pane e Modulo Base? Non vorrei sbagliare
clamorosamente ma per quel che mi ricordo questo č proprio il sistema usato
da erix nel suo MB. La soluzione giusta č quella data da Paolo.
HAPPY INFORMING
Giovanni


Infatti, anch'io utilizzo quello canonico!!!
bai
t

 Giovanni
Ciao,
Marco

 
E' una pezza, definisci chiaramente l'attrributo 
male per gli NPC, infatti c'è un problema con una routine
che Giovanni ha inserito per la stampa corretta delle
preposizioni.
Oppure attendi un pochino la versione corretta delle librerie
che, sono sicuro, uscira' tra breve.
bai
t