Newsgroup: it.comp.giochi.avventure.testuali
Titolo: Inform 6: estendere Show agli oggetti non posseduti

Ciao! sto di nuovo impazzendo dietro al codice della mia nuova 
avventura, nel (vano, finora) tentativo di estendere Show (che 
solitamente opera con held, come Give) agli oggetti non posseduti.
Questo e' quello che ho provato finora:
Extend 'mostra'
	* noun 'a'/'ad'/'all^'/'allo'/'alla'/'al'/'agli'/'ai'/'alle' creature 
-> Show;
Extend 'mostra' replace
	* noun 'a'/'ad'/'all^'/'allo'/'alla'/'al'/'agli'/'ai'/'alle' creature 
-> Show;
Extend 'mostra' first
	* noun 'a'/'ad'/'all^'/'allo'/'alla'/'al'/'agli'/'ai'/'alle' creature 
-> Show;
Extend 'mostra' last
	* noun 'a'/'ad'/'all^'/'allo'/'alla'/'al'/'agli'/'ai'/'alle' creature 
-> Show;
In tutti i casi mi dice che non possiedo l'oggetto, proprio come se Show 
operasse ancora con held. Prima di provare a modificare italiang.h, 
facendo chissa' quale danno, c'e' qualcos'altro che posso provare?
Grazie!
Marco

 facendo chissa' quale danno, c'e' qualcos'altro che posso provare?
Il problema non è in italiang.h ma in verblibm.h, dove ShowSub controlla 
che l'oggetto sia realmente in mano al giocatore. Quindi:
1. Aggiungi verso l'inizio del codice (prima di Include VerbLib;) la riga
Replace ShowSub;
2. Assieme a tutte le tue altre Sub (o comunque prima di Include 
ItalianG;) metti la nuova ShowSub, copiata da quella di VerbLibm.h ma 
con la prima riga commentata.
[ ShowSub;
     !if (parent(noun) ~= player) return L__M(##Show, 1, noun);
     if (second == player) <<Examine noun>>;
     if (RunLife(second, ##Show) ~= 0) rfalse;
     L__M(##Show, 2, second);
];
3. In fondo al file (dopo Include ItalianG;) definisci la tua grammatica 
(andava bene la forma con replace)
Extend 'mostra' replace
	* noun 'a'/'ad'/'all^'/'allo'/'alla'/'al'/
	  'agli'/'ai'/'alle' creature			-> Show
	* 'a'/'ad'/'all^'/'allo'/'alla'/'al'/'agli'/
	  'ai'/'alle' creature noun			-> Show reverse;
"Vualà"
bye
-- 
Paolo Lucchesi
email: plucchesiNOSPAM(at)NOSPAMtin(dot)NOSPAMit
homepage: 
http://www.paololucchesi.it


Grazie, Paolo, sei sempre efficientissimo (oltre che gentile). Visto che 
ti intendi cosi' bene di Inform 6 vorrei chiederti una cosa per una idea 
scioccante che mi piacerebbe molto mettere in pratica.
Forse non tutti sanno che Inform riconosce solo le prime nove (9) 
lettere di ogni parola, rendendo quindi uguali termini come 
'inginocchiatoio' e 'inginocchiati' (per citare il primo caso che mi 
viene in mente).
Esiste un modo rapido e indolore per fargli considerare soltanto le 
prime 5 lettere di ogni parole anziche' le prime 9? in questo modo si 
avrebbe un effetto Quill, aumentando (secondo me) la giocabilita'. 
Chiaro che si dovrebbe tenere conto di tutte le parole usate 
nell'avventura, ma nel mio caso non ci sarebbero problemi.
Grazie!
Marco

 nell'avventura, ma nel mio caso non ci sarebbero problemi.
Risposta 1: Non lo fare. Davvero. Non è una buona cosa. È un ostacolo 
per il giocatore, non un aiuto.
Risposta 2: Per quanto ne so, non si può fare; se ho ben capito la 
dimensione delle parole nel dizionario è fissata a livello di compilatore.
Risposta 3: probabilmente non è quello che vuoi, ma è l'unica idea che 
mi viene; potresti definire per ogni oggetto e per ogni verbo un 
sinonimo da 5 caratteri:
Object "scatola marrone"
   with name 'scatola' 'scato' 'marrone' 'marro',
Verb 'esami' = 'esamina'
Questo accetterebbe 'esami scato', ma non 'esamiba scatona'.
bye
-- 
Paolo Lucchesi - p...@NOSPAMpaololucchesi.it

> Esiste un modo rapido e indolore [...]
Mi devo correggere. In Glulx potrebbe funzionare mettere _all'inizio_ 
del file la direttiva
!% $DICT_WORD_SIZE=5
Tutto da provare


 bye
Grazie! ma perche' sei contrario a utilizzare abbreviazioni? alla fine 
per take e examine si utilizzano quasi sempre t e x. In fondo e' un 
periodo in cui si parla spesso di snellire l'interfaccia testuale. Ai 
tempi Atrus era inorridito, ma nel 2002 avevo ricevuto un sacco di 
complimenti per la mia idea di utilizzare i tasti cursore per spostarsi 
attraverso le locazioni di Enigma (quando era scritto in qbasic). Anche 
i tasti funzione secondo me andrebbero utilizzati come palliativo dei 
principali comandi.
Ciao!
Marco

 bye
Sei un grande, funziona perfettamente! unico esilarante effetto 
collaterale e' che l'abbreviazione de facto a 5 lettere rende 
imprevedibile la gestione dei pronomi... Effettivamente 
l'implementazione di questa chicca e' da valutare con attenzione. Grazie 
ancora!
Marco

 principali comandi.
Questo è interessante, ma secondo me potrebbe essere fatto a livello di 
interprete e, soprattutto, dovrebbe essere configurabile dall'utente.


 bye
Ciao!