Newsgroup: it.comp.giochi.avventure.testuali
Titolo: [Inform] - L'angolo del novellino

Come conseguenza di un azione devo spedire il giocatore in una "finta 
stanza" (non è una locazione ma un semplice testo narrativo)... fin qui 
nessun problema.
Ma come faccio a fare in modo che ad ogni comando errato del giocatore 
la risposta sia sempre uguale (in pratica viene riconosciuto un solo 
comando, per tutti gli altri viene data sempre la stessa risposta).
... Grasie
-- 
"love is good and love is kind/love is drunk and love is blind/love is 
good and love is mine/love is drunk all the time
shame"
Billy Corgan

 comando, per tutti gli altri viene data sempre la stessa risposta).
Fammi capire bene:
Vuoi dire qualcosa di simile alla locazione di Masquerade (se ricordo bene) 
in cui si finiva se si scriveva una parolaccia e ne si usciva solo 
chiedendo scusa ?
Non so se hai presente l' esempio, penso che qui solo erix capisce a cosa mi 
riferisco....
Saluti,
Dott. Piergiorgio.

 riferisco....
Masquerade della Phoenix Software, primi anni Ottanta, scritto da Dale
Johnson e Rick Incrocci. Uno dei giochi con l'apertura migliore di sempre:
una stanza con un cadavere obeso disteso a terra.
f.

 comando, per tutti gli altri viene data sempre la stessa risposta).
Se ho capito bene cosa vuoi fare, penso che una before "cattiva" nella 
stanza potrebbe essere la soluzione:
before [;
   default:
     if (action==salta) {
         ...
     }
     "Buhaaaahaaahaaa!";
],
(Non ho ne' compilatore ne' DM4, spero vada bene)
Paolo

Dott. Piergiorgio wrote:

LOL


Paolo Lucchesi wrote:

Stasera ti so dire.


Paolo Lucchesi wrote:

"No such costant as Salta" .... qualsiasi azione scriva


 
action == ##Salta   ! <-- nota ##
e devi avere da qualche parte: 
[ SaltaSub;
        "Salta, salta ,salta";
];
E' importante aggiungere "Sub" al nome dell'azione.
Giancarlo

Giancarlo Niccolai wrote:

Ok ora visto che sei qui perché non mi spieghi il tutto? Mi basta la 
funzione SaltaSub .... a che serve, comunque penso di intuirlo.
Grazie


 
Ok, io se fossi in te procederei così: crea una VERA stanza nella quale il
tuo personaggio viene messo se fa la cosa che non deve fare, e nella quale
rimane fino a che non indovina cosa fare. E' più flessibile, ed è anche
possibile aggiungere dettagli che non ti puoi permettere negli altri modi.
Object LaMiaStanza "La stanza dalla quale non puoi uscire"
with
   ! quando catapulti il tuo player qui, registra la stanza 
   ! nella quale deve tornare usando questa
   coming_from 0,
 
   description [;
      print "Di' shezan per tornare ", (artin) self.coming_from, ".^"  ;
   ],
   before [;
      Shezan:  
         print "Ce l'hai fatta!!^";
         playerTo( self.coming_from );
         self.coming_from = 0; ! per sicurezza
 
     default:  ! tutte le altrea azioni.
        "Mi spiace. Non puoi fare niente se non dici shezan.";
   ],
   has light;  ! o sarai al buio.
! Per gestire shezan normalmente:
[ ShezanSub;
   "Gridi SHEZAN, ma non succede niente.";
]
! Grammatica:
Verb 'shezan'   
   *   -> Shezan; !la parola shezan genera l'azione shezan.
! Supponendo che il giocatore non possa gridare parole oscene in chiesa.
Object chiesa "Un luogo sacro"
with
    ...
    before [;
    ...
    Rude:  ! la cosa che NON deve fare...
       print "Non dovevi farlo!^";
       LaMiaStanza.coming_from = self;
       PlayerTo( LaMiaStanza );
    ....
Chiaro?
Giancarlo
P.s. se funziona mi aspetto dei ringraziamenti ;-)
 

 "No such costant as Salta" .... qualsiasi azione scriva
E nemmeno cervello, ovviamente... Non salta, jump...
bye
-- 
Paolo Lucchesi
email: 
pluc...@tin.it
homepage: 
http://www.paololucchesi.it
"Non viviamo in un mondo perfetto (per fortuna)"

 "No such costant as Salta" .... qualsiasi azione scriva
La mattina presto oltre al compilatore e al DM4 non ho nemmeno cervello. 
Ovviamente intendevo Jump (o una qualsiasi altra azione).


     
Stasera ti so dire....


     
GRAAAAAAAZIE.


  
questo coming_from cos'è? una "variabile" dell'oggetto LaMiaStanza o
una proprietà generale che conserva i movimenti del Player?
 grazie !
philip

Philip Koch wrote:

Una delle caratteristiche più belle di Inform è quella di poter dichiarare
nuove proprietà senza troppe formalità. Semplicemente scrivi
Object MioOggetto "Un bell'oggetto"
with
    La_mia_nuova_prop "contenuto della proprietà",
....
Non solo, ma da quel momento, "la_mia_nuova_prop" diventa un token
riconoscibile anche per altri oggetti. Ad esempio:
if ( AltroOggetto provides la_prop ) ! abbreviato ;-), questo è falso
...
if( MioOggetto provides la_prop) ! vero!!!
...
Solo che se scrivi AltroOggetto.la_prop = 3 hai un errore. la_prop esiste
solo per MioOggetto.
Ci sono altri dettagli, basti dire che il modello degli
oggetti/proprietà/attributi di inform è uno dei più soddisfacenti nel
panorama OOP.
Giancarlo.

Philip Koch wrote:

Scusa, essendo + preciso: è una proprietà (ossia "variabile dell'oggetto")
specifica di LaMiaStanza, che qualcun'altro (il verbo/azione che muove
l'oggetto qui dentro) si occuperà di gestire correttamete.
Giancarlo.