[lnkForumImage]
Download FREE Software.

Confronta i prezzi di migliaia di prodotti.
News Forum Italiano
 Home | Login | Registrati | Ricerca 


 

Forums >

it.comp.giochi.avventure.testuali

Inform 7: le mille e una... cosa che non capisco - 2

paolo.sfredda

25/08/2015 18:14:22

Ciao a tutti.

La seconda cosa che non capisco, più di dettaglio è:
per assegnare il giocatore a un personaggio della storia è obbligatorio
che il personaggio sia sempre "on-stage". Ma proprio per questo in ogni
descrizione lo si vede.

Ridefinisco la regola del guarda?

[inizio codice]

James is a person.
now James is in Salotto;[obbligatorio per il comando successivo]
now the player is James.

[fine codice]

Da questo momento in poi, alla fine di ogni descrizione continua a dire,
giustamente:

'Qui puoi anche vedere te stesso'

pg

8 Risposte

Flavio G.

26/08/2015 07:57:29

0

Il giorno martedì 25 agosto 2015 20:14:25 UTC+2, pgsfredda ha scritto:
> Ciao a tutti.
>
> La seconda cosa che non capisco, più di dettaglio è:
> per assegnare il giocatore a un personaggio della storia è obbligatorio
> che il personaggio sia sempre "on-stage". Ma proprio per questo in ogni
> descrizione lo si vede.
>
> Ridefinisco la regola del guarda?
>
> [inizio codice]
>
> James is a person.
> now James is in Salotto;[obbligatorio per il comando successivo]
> now the player is James.
>
> [fine codice]
>
> Da questo momento in poi, alla fine di ogni descrizione continua a dire,
> giustamente:
>
> 'Qui puoi anche vedere te stesso'
>
> pg

Mmmh, confesso che in questa situazione mi trovi un pò impreparato. Tuttavia, cercando un pò in giro ho trovato questo:

The player's point of view can also be moved by shifting to another character. Suppose the story features two people, Alice and Bob, and the player at the keyboard is giving commands to Alice, and seeing everything from her point of view. The phrase:

now the player is Bob

switches the perspective so that now Bob is the one controlled by the human player, and it's Bob's point of view which counts. The human being at the keyboard may feel a sense of having jumped abruptly from place to place, but in fact neither Alice nor Bob has moved.

A change of player can sometimes cause confusing things to happen, if it takes place as part of a successful action. Suppose there's an action called "possessing", which enables the player to possess somebody else's body; and suppose the player types POSSESS ADELE. The action succeeds, so that the player moves into the mind of Adele. But that means that at the end of the action, the player is no longer the actor - that is, no longer the person who began the action; and consequently, Inform won't use the report rulebook to say what has just happened. It's a strange business, moving into another body.

Flavio G.

26/08/2015 08:00:03

0

Il giorno mercoledì 26 agosto 2015 09:57:29 UTC+2, Flavio G. ha scritto:
> Il giorno martedì 25 agosto 2015 20:14:25 UTC+2, pgsfredda ha scritto:
> > Ciao a tutti.
> >
> > La seconda cosa che non capisco, più di dettaglio è:
> > per assegnare il giocatore a un personaggio della storia è obbligatorio
> > che il personaggio sia sempre "on-stage". Ma proprio per questo in ogni
> > descrizione lo si vede.
> >
> > Ridefinisco la regola del guarda?
> >
> > [inizio codice]
> >
> > James is a person.
> > now James is in Salotto;[obbligatorio per il comando successivo]
> > now the player is James.
> >
> > [fine codice]
> >
> > Da questo momento in poi, alla fine di ogni descrizione continua a dire,
> > giustamente:
> >
> > 'Qui puoi anche vedere te stesso'
> >
> > pg
>
> Mmmh, confesso che in questa situazione mi trovi un pò impreparato. Tuttavia, cercando un pò in giro ho trovato questo:
>
> The player's point of view can also be moved by shifting to another character. Suppose the story features two people, Alice and Bob, and the player at the keyboard is giving commands to Alice, and seeing everything from her point of view. The phrase:
>
> now the player is Bob
>
> switches the perspective so that now Bob is the one controlled by the human player, and it's Bob's point of view which counts. The human being at the keyboard may feel a sense of having jumped abruptly from place to place, but in fact neither Alice nor Bob has moved.
>
> A change of player can sometimes cause confusing things to happen, if it takes place as part of a successful action. Suppose there's an action called "possessing", which enables the player to possess somebody else's body; and suppose the player types POSSESS ADELE. The action succeeds, so that the player moves into the mind of Adele. But that means that at the end of the action, the player is no longer the actor - that is, no longer the person who began the action; and consequently, Inform won't use the report rulebook to say what has just happened. It's a strange business, moving into another body.

Dopo di che riporta e spiega l'esempio seguente (un pò lungo)

Suppose we have a game where we want the player to control two different characters, swapping bodies from one turn to the next. First, the setting, and the two people who will alternately play:

"Terror of the Sierra Madre"

The Hay-Strewn Corridor is a room. "[if the player is Maleska]The horse stalls are empty: you have already drained the animals, and carried off their corpses. The house will not long sustain you now.

The window throws on the floor a bright square of malevolent sunlight[otherwise]The stalls for horses run down one side of the room, but the house has long stood empty. A square window without shutters looks out over the ranch, away toward the Sierras[end if]."

Teresa is a woman in the Hay-Strewn Corridor. "Teresa stands opposite you[if Teresa carries something], her fingers wrapped tightly around [a list of things carried by Teresa][end if]." Teresa carries a bulb of garlic and a cross.

Maleska is a man in the Hay-Strewn Corridor. "Maleska watches you from eyes entirely black." Maleska carries a skull.

If we tried the text above in Inform, we would find ourselves in the Hay-Strewn Corridor and confronted by both Teresa and Maleska. If "player" is not set to any named person, Inform creates a bland person called "yourself" to represent the player. To avoid this, we set "player" to the person we want to begin as. The player character is normally privately-named, so we'll need to make sure "Maleska" still means what it should.

The player is Maleska. Understand "Maleska" as Maleska.

Now the Corridor contains just two people, and we arrive on the scene as Maleska, with only Teresa facing us.

At the end of every turn we will use the 'now the player is...' phrase. (This looks as if it simply changes the value of "player": which it does, but it also carries out a complicated operation behind the scenes to effect the switch.)

Every turn:
if the player is Maleska, now the player is Teresa;
otherwise now the player is Maleska.

Our two characters already see the Corridor differently, but let's differentiate them further:

Every person has a number called strength. The strength of Teresa is 3. The strength of Maleska is 5.

In this small example, strength is not used for anything, except that we will display it on the status line:

When play begins:
now the command prompt is "[bold type][player][roman type] > ";
now the left hand status line is "[player]";
now the right hand status line is "STR: [strength of the player]".

That last rule doesn't quite do what we might have expected. When we print "[player]", we find that Inform usually prints "yourself". This is because Inform says "you" to mean Teresa when talking to the player-being-Teresa, and likewise for Maleska. We want to override that in this particular story, because the rapid switches of personality are otherwise hard to follow. So:

Rule for printing the name of Teresa: say "Teresa".

Rule for printing the name of Maleska: say "Maleska".

paolo.sfredda

26/08/2015 10:35:51

0

Il 26/08/15 09:57, Flavio G. ha scritto:
> Il giorno martedì 25 agosto 2015 20:14:25 UTC+2, pgsfredda ha
> scritto:
>> Ciao a tutti.
>>
>> La seconda cosa che non capisco, più di dettaglio è: per assegnare
>> il giocatore a un personaggio della storia è obbligatorio che il
>> personaggio sia sempre "on-stage". Ma proprio per questo in ogni
>> descrizione lo si vede.
>>
>> Ridefinisco la regola del guarda?
>>
>> [inizio codice]
>>
>> James is a person. now James is in Salotto;[obbligatorio per il
>> comando successivo] now the player is James.
>>
>> [fine codice]
>>
>> Da questo momento in poi, alla fine di ogni descrizione continua a
>> dire, giustamente:
>>
>> 'Qui puoi anche vedere te stesso'
>>
>> pg
>
> Mmmh, confesso che in questa situazione mi trovi un pò impreparato.
> Tuttavia, cercando un pò in giro ho trovato questo:
>
> The player's point of view can also be moved by shifting to another
> character.

Ti ringrazio molto sia per questa intro sia per il pezzo di codice che
hai riportato nell'altro post. Avevo visto entrambi (sempre per la
teoria LFM).

Però il mio problema è un po' diverso sia negli obiettivi sia negli
effetti voluti.

Obiettivi: poiché sono previsti molti dialoghi dove viene menzionato il
nome del player, mi interessava creare un personaggio ad-hoc, anche
nella descrizione, da far impersonificare al giocatore una volta per tutte.

Non voglio perseguire lo strano business di cui parla l'esempio :-)
>> It's a strange business, moving into another body.

Ho un'intera sezione dedicata ai personaggi.

Effetto voluto: senza cambiare punto di vista (anche se sarebbe comunque
interessante), cerco di centralizzare in un unico punto tutte le
informazioni inerenti la stessa cosa (in questo caso il protagonista).

E questa potrebbe essere la terza cosa che non capisco di Inform che non
semplifica molto alcune cose banali come definire delle cose in un unico
punto per poi poterle utilizzare altrove o meglio, consente l'analogo di
funzioni, procedure e costanti ma non sempre è molto immediato nella
loro stesura e nel loro uso (sempre per la mia poca esperienza).

Il problema qui è quello di disattivare la regola "printing the locale
description" per la parte "for you-can-also-see rule" (response D)
quando si applica al player ma non capisco come si faccia.

Grazie ancora
pg

Flavio G.

26/08/2015 11:09:07

0

Il giorno mercoledì 26 agosto 2015 12:35:53 UTC+2, pgsfredda ha scritto:
> Il 26/08/15 09:57, Flavio G. ha scritto:
> > Il giorno martedì 25 agosto 2015 20:14:25 UTC+2, pgsfredda ha
> > scritto:
> >> Ciao a tutti.
> >>
> >> La seconda cosa che non capisco, più di dettaglio è: per assegnare
> >> il giocatore a un personaggio della storia è obbligatorio che il
> >> personaggio sia sempre "on-stage". Ma proprio per questo in ogni
> >> descrizione lo si vede.
> >>
> >> Ridefinisco la regola del guarda?
> >>
> >> [inizio codice]
> >>
> >> James is a person. now James is in Salotto;[obbligatorio per il
> >> comando successivo] now the player is James.
> >>
> >> [fine codice]
> >>
> >> Da questo momento in poi, alla fine di ogni descrizione continua a
> >> dire, giustamente:
> >>
> >> 'Qui puoi anche vedere te stesso'
> >>
> >> pg
> >
> > Mmmh, confesso che in questa situazione mi trovi un pò impreparato.
> > Tuttavia, cercando un pò in giro ho trovato questo:
> >
> > The player's point of view can also be moved by shifting to another
> > character.
>
> Ti ringrazio molto sia per questa intro sia per il pezzo di codice che
> hai riportato nell'altro post. Avevo visto entrambi (sempre per la
> teoria LFM).
>
> Però il mio problema è un po' diverso sia negli obiettivi sia negli
> effetti voluti.
>
> Obiettivi: poiché sono previsti molti dialoghi dove viene menzionato il
> nome del player, mi interessava creare un personaggio ad-hoc, anche
> nella descrizione, da far impersonificare al giocatore una volta per tutte.
>
> Non voglio perseguire lo strano business di cui parla l'esempio :-)
> >> It's a strange business, moving into another body.
>
> Ho un'intera sezione dedicata ai personaggi.
>
> Effetto voluto: senza cambiare punto di vista (anche se sarebbe comunque
> interessante), cerco di centralizzare in un unico punto tutte le
> informazioni inerenti la stessa cosa (in questo caso il protagonista).
>
> E questa potrebbe essere la terza cosa che non capisco di Inform che non
> semplifica molto alcune cose banali come definire delle cose in un unico
> punto per poi poterle utilizzare altrove o meglio, consente l'analogo di
> funzioni, procedure e costanti ma non sempre è molto immediato nella
> loro stesura e nel loro uso (sempre per la mia poca esperienza).
>
> Il problema qui è quello di disattivare la regola "printing the locale
> description" per la parte "for you-can-also-see rule" (response D)
> quando si applica al player ma non capisco come si faccia.
>
> Grazie ancora
> pg

Ho paura che l'unico modo per far impersonare al giocatore un png (in questo caso James) sia quello di inserire nel codice "The player is James", facendo si che già ad inizio gioco il nostro pg è James, senza che venga stampato alcun messaggio. O almeno sembra che così funzioni.

Se il tuo obiettivo primario è di far si che il player abbia un "nome" e che esso venga usato durante l'avventura per riferirsi al personaggio principale, potresti anche fare così:

Salotto is a room. "Un semplice, piccolo salottino."

The player's name is a text that varies. The player's name is "James".

When play begins:
say "Il tuo nome è [player's name]".

Linda is a woman in salotto. "Linda ti saluta, 'ciao [player's name]!'".

Flavio G.

26/08/2015 11:15:53

0

Il giorno mercoledì 26 agosto 2015 13:09:07 UTC+2, Flavio G. ha scritto:
> Il giorno mercoledì 26 agosto 2015 12:35:53 UTC+2, pgsfredda ha scritto:
> > Il 26/08/15 09:57, Flavio G. ha scritto:
> > > Il giorno martedì 25 agosto 2015 20:14:25 UTC+2, pgsfredda ha
> > > scritto:
> > >> Ciao a tutti.
> > >>
> > >> La seconda cosa che non capisco, più di dettaglio è: per assegnare
> > >> il giocatore a un personaggio della storia è obbligatorio che il
> > >> personaggio sia sempre "on-stage". Ma proprio per questo in ogni
> > >> descrizione lo si vede.
> > >>
> > >> Ridefinisco la regola del guarda?
> > >>
> > >> [inizio codice]
> > >>
> > >> James is a person. now James is in Salotto;[obbligatorio per il
> > >> comando successivo] now the player is James.
> > >>
> > >> [fine codice]
> > >>
> > >> Da questo momento in poi, alla fine di ogni descrizione continua a
> > >> dire, giustamente:
> > >>
> > >> 'Qui puoi anche vedere te stesso'
> > >>
> > >> pg
> > >
> > > Mmmh, confesso che in questa situazione mi trovi un pò impreparato.
> > > Tuttavia, cercando un pò in giro ho trovato questo:
> > >
> > > The player's point of view can also be moved by shifting to another
> > > character.
> >
> > Ti ringrazio molto sia per questa intro sia per il pezzo di codice che
> > hai riportato nell'altro post. Avevo visto entrambi (sempre per la
> > teoria LFM).
> >
> > Però il mio problema è un po' diverso sia negli obiettivi sia negli
> > effetti voluti.
> >
> > Obiettivi: poiché sono previsti molti dialoghi dove viene menzionato il
> > nome del player, mi interessava creare un personaggio ad-hoc, anche
> > nella descrizione, da far impersonificare al giocatore una volta per tutte.
> >
> > Non voglio perseguire lo strano business di cui parla l'esempio :-)
> > >> It's a strange business, moving into another body.
> >
> > Ho un'intera sezione dedicata ai personaggi.
> >
> > Effetto voluto: senza cambiare punto di vista (anche se sarebbe comunque
> > interessante), cerco di centralizzare in un unico punto tutte le
> > informazioni inerenti la stessa cosa (in questo caso il protagonista).
> >
> > E questa potrebbe essere la terza cosa che non capisco di Inform che non
> > semplifica molto alcune cose banali come definire delle cose in un unico
> > punto per poi poterle utilizzare altrove o meglio, consente l'analogo di
> > funzioni, procedure e costanti ma non sempre è molto immediato nella
> > loro stesura e nel loro uso (sempre per la mia poca esperienza).
> >
> > Il problema qui è quello di disattivare la regola "printing the locale
> > description" per la parte "for you-can-also-see rule" (response D)
> > quando si applica al player ma non capisco come si faccia.
> >
> > Grazie ancora
> > pg
>
> Ho paura che l'unico modo per far impersonare al giocatore un png (in questo caso James) sia quello di inserire nel codice "The player is James", facendo si che già ad inizio gioco il nostro pg è James, senza che venga stampato alcun messaggio. O almeno sembra che così funzioni.
>
> Se il tuo obiettivo primario è di far si che il player abbia un "nome" e che esso venga usato durante l'avventura per riferirsi al personaggio principale, potresti anche fare così:
>
> Salotto is a room. "Un semplice, piccolo salottino."
>
> The player's name is a text that varies. The player's name is "James".
>
> When play begins:
> say "Il tuo nome è [player's name]".
>
> Linda is a woman in salotto. "Linda ti saluta, 'ciao [player's name]!'".

Altro sistema che mi è appena venuto in mente: potresti applicare a James la condizione "scenery", in questo modo:

James is a scenery man in salotto.

Tutti gli *oggetti con questa condizione non compaiono nella descrizione della stanza, ma soltanto se esaminati, riportano la descrizione dell'oggetto che decidiamo di dare. E' una condizione che uso per gli oggetti che in qualche modo fanno parte della location (alberi, altari, colonne, etc), anche perchè sono automaticamente fissi e non trasportabili.

paolo.sfredda

26/08/2015 11:18:15

0

>>

>> Il problema qui è quello di disattivare la regola "printing the
>> locale description" per la parte "for you-can-also-see rule"
>> (response D) quando si applica al player ma non capisco come si
>> faccia.
>>
>> Grazie ancora pg
>
> Ho paura che l'unico modo per far impersonare al giocatore un png (in
> questo caso James) sia quello di inserire nel codice "The player is
> James", facendo si che già ad inizio gioco il nostro pg è James,
> senza che venga stampato alcun messaggio. O almeno sembra che così
> funzioni.
>
> Se il tuo obiettivo primario è di far si che il player abbia un
> "nome" e che esso venga usato durante l'avventura per riferirsi al
> personaggio principale, potresti anche fare così:
>
> Salotto is a room. "Un semplice, piccolo salottino."
>
> The player's name is a text that varies. The player's name is
> "James".
>
> When play begins: say "Il tuo nome è [player's name]". Linda is a
> woman in salotto. "Linda ti saluta, 'ciao [player's name]!'".
>

Perfetto funziona nel primo modo che mi hai suggerito (era davvero banale).

Avendolo inserito nella regola "when play begins" avevo usato il "now"
che mi dava i problemi che dicevo.

La seconda soluzione che proponi è quella che avevo adottato in
precedenza ma non mi piaceva perché dovevo replicare le caratteristiche
di James per il player.

Resta però il fatto che se dovessi cambiare attribuzione del player
rimane il problema iniziale. Ma per ora non mi interessa.

Grazie
pg

paolo.sfredda

26/08/2015 11:22:33

0

>

> Altro sistema che mi è appena venuto in mente: potresti applicare a
> James la condizione "scenery", in questo modo:
>
> James is a scenery man in salotto.
>
> Tutti gli *oggetti con questa condizione non compaiono nella
> descrizione della stanza, ma soltanto se esaminati, riportano la
> descrizione dell'oggetto che decidiamo di dare. E' una condizione che
> uso per gli oggetti che in qualche modo fanno parte della location
> (alberi, altari, colonne, etc), anche perchè sono automaticamente
> fissi e non trasportabili.
>

No. Anche se scenery, essendo a man appare nuovamente "Vedi anche te
stesso" risolvibile solo modificando la regola che scrivevo prima.

Grazie lo stesso
pg

Flavio G.

26/08/2015 13:15:54

0

Il giorno mercoledì 26 agosto 2015 13:18:17 UTC+2, pgsfredda ha scritto:
> >>
>
> >> Il problema qui è quello di disattivare la regola "printing the
> >> locale description" per la parte "for you-can-also-see rule"
> >> (response D) quando si applica al player ma non capisco come si
> >> faccia.
> >>
> >> Grazie ancora pg
> >
> > Ho paura che l'unico modo per far impersonare al giocatore un png (in
> > questo caso James) sia quello di inserire nel codice "The player is
> > James", facendo si che già ad inizio gioco il nostro pg è James,
> > senza che venga stampato alcun messaggio. O almeno sembra che così
> > funzioni.
> >
> > Se il tuo obiettivo primario è di far si che il player abbia un
> > "nome" e che esso venga usato durante l'avventura per riferirsi al
> > personaggio principale, potresti anche fare così:
> >
> > Salotto is a room. "Un semplice, piccolo salottino."
> >
> > The player's name is a text that varies. The player's name is
> > "James".
> >
> > When play begins: say "Il tuo nome è [player's name]". Linda is a
> > woman in salotto. "Linda ti saluta, 'ciao [player's name]!'".
> >
>
> Perfetto funziona nel primo modo che mi hai suggerito (era davvero banale).
>
> Avendolo inserito nella regola "when play begins" avevo usato il "now"
> che mi dava i problemi che dicevo.
>
> La seconda soluzione che proponi è quella che avevo adottato in
> precedenza ma non mi piaceva perché dovevo replicare le caratteristiche
> di James per il player.
>
> Resta però il fatto che se dovessi cambiare attribuzione del player
> rimane il problema iniziale. Ma per ora non mi interessa.
>
> Grazie
> pg

Ottimo!