Benvenuto Visitatore(Log In|Registrati)
![]() ![]() |
20 Mar 2016, 14:00
Messaggio
#1
|
|
|
Gruppo: Gamer Messaggi: 9 Iscritto il: 13 March 16 Da: Quebec City Utente Nr.: 21.122 SO Windows7 |
Salve,
Sto cominciando a programmare la mia storia e non riesco a capire il mio errore per delle azioni (verbi) di un personaggio. Copio il codice relativo ad Helga (il personaggio in Guglielmo Tell della guida Inform per i principianti) per il mio personaggio X. Lo metto in un luogo (L). Arrivo in L e X mi da la cosa che deve darmi. Vorrei ringraziarlo, cosa che succede con "Parla", ma non ho la risposta esatta: Se dico Parla X - La risposta è Cosa vuoi dire? non riesco a capire. Se dico Parla - Ho la risposta del mio codice. Grazie per l'aiuto. |
|
|
|
20 Mar 2016, 19:40
Messaggio
#2
|
|
|
Gruppo: Gamer Messaggi: 75 Iscritto il: 21 November 15 Da: roma Utente Nr.: 20.971 SO Mac OS |
Ciao,
Da come scrivi credo tu ti riferisca a come è definita la grammatica del verbo "parla": Se scrivi PARLA funziona Se scrivi PARLA A X funziona Se scrivi PARLA DI X funziona Se scrivi PARLA CON X funziona Se scrivi PARLA X non funziona Questo perché non comprende X come interlocutore o come argomento di conversazione. Il codice responsabile di questo tipo di comportamento lo trovi sulla GIP a pagina 128. Se nul codice extend inserissi anche Extend 'parla' * creature -> talk; Ovverosia senza indicare articoli ti funzionerebbe, anche se perderesti la possibilità di distinguere X come argomento o interlocutore -------------------- |
|
|
|
20 Mar 2016, 19:47
Messaggio
#3
|
|
|
Gruppo: Gamer Messaggi: 9 Iscritto il: 13 March 16 Da: Quebec City Utente Nr.: 21.122 SO Windows7 |
|
|
|
|
20 Mar 2016, 23:03
Messaggio
#4
|
|
|
Gruppo: Gamer Messaggi: 75 Iscritto il: 21 November 15 Da: roma Utente Nr.: 20.971 SO Mac OS |
X ha l'attributo animate?
Senza vedere il codice è complicato capire -------------------- |
|
|
|
20 Mar 2016, 23:06
Messaggio
#5
|
|
|
Gruppo: Gamer Messaggi: 9 Iscritto il: 13 March 16 Da: Quebec City Utente Nr.: 21.122 SO Windows7 |
X ha l'attributo animate? Senza vedere il codice è complicato capire NPC "Luigi" piazzola_sosta with name 'vicino' 'amico', description "Luigi @`e un tuo caro amico.", initial [; print "Luigi smette di osservare la valle e ti saluta."; if (location hasnt visited) { move torcia to player; print "^Ciao Mario, come stai?^A proposito, avevo dimentica di restituirti la torcia elettrica che mi avevi prestato.^Tieni!^"; } ], frasi_dette 0, ! per contare gli argomenti di conversazione life [; Kiss: print_ret "~Ooh"; Talk: self.frasi_dette = self.frasi_dette + 1; switch (self.frasi_dette) { 1: score = score + 1; print_ret "Ringrazi Luigi per la torcia."; 2: print_ret "~Grazie, ci vediamo presto.~"; default: return false; } ], has proper; Class NPC with life [; Answer,Ask,Order,Tell: print_ret "Usa soltanto PARLA [", (arta) self, "]."; ], has animate; Messaggio modificato da horses60 il 20 Mar 2016, 23:07 |
|
|
|
21 Mar 2016, 10:17
Messaggio
#6
|
|
|
Gruppo: Gamer Messaggi: 75 Iscritto il: 21 November 15 Da: roma Utente Nr.: 20.971 SO Mac OS |
nel codice del personaggio non ci vedo niente che non va.
hai aggiunto il seguente codice alla fine del tuo listato, ovvero DOPO l'inclusione di ItalianG? CITAZIONE [ TalkSub;
if (noun == player) print_ret "Niente di quello che dici può sorprenderti."; if (RunLife(noun,##Talk) ~= false) return; print_ret "Al momento, non ti viene niente da dire."; ]; Extend 'parla' first * 'a'/'ad'/'all^'/'allo'/'alla'/'al'/ 'agli'/'ai'/'alle'/'con' creature -> Talk; Messaggio modificato da marfal il 21 Mar 2016, 10:21 -------------------- |
|
|
|
21 Mar 2016, 10:36
Messaggio
#7
|
|
|
Gruppo: Gamer Messaggi: 130 Iscritto il: 12 January 16 Utente Nr.: 21.046 BGE Indiana Jones and the Fate of Atlantis Playing Sulle Orme del Chisciano SO Linux |
CODICE NPC "Luigi" piazzola_sosta with name 'vicino' 'amico', description "Luigi @`e un tuo caro amico.", initial [; print "Luigi smette di osservare la valle e ti saluta."; if (location hasnt visited) { move torcia to player; print "^Ciao Mario, come stai?^A proposito, avevo dimentica di restituirti la torcia elettrica che mi avevi prestato.^Tieni!^"; } ], frasi_dette 0, ! per contare gli argomenti di conversazione life [; Kiss: print_ret "~Ooh"; Talk: self.frasi_dette = self.frasi_dette + 1; switch (self.frasi_dette) { 1: score = score + 1; print_ret "Ringrazi Luigi per la torcia."; 2: print_ret "~Grazie, ci vediamo presto.~"; default: return false; } ], has proper; Class NPC with life [; Answer,Ask,Order,Tell: print_ret "Usa soltanto PARLA [", (arta) self, "]."; ], has animate; Secondo me il problema è nell'estensione della grammatica di 'parla' o - più probabilmente - nella TalkSub che non passa l'incarico alla proprietà life. Potresti mettere Talk nella before invece che nella life, oppure usare questo: CODICE [TalkSub; if (noun == player) "Ti fai una domanda e ti dai una risposta..."; if (RunLife(noun,##Talk) ~= false) return; "Non hai niente da dire."; ]; Mentre la grammatica che userei io è: CODICE Extend 'parla' first * 'a'/'ad'/'all^'/'allo'/'alla'/'al'/ 'agli'/'ai'/'alle'/'con' creature -> Talk; Ah, a Luigi manca il name 'luigi' (ma non è questo il problema). Facci sapere se così funziona... bye -------------------- Paolo Lucchesi
[email protected] http://www.paololucchesi.it plucchesi5 su gmail, g+, hangouts paolol#7497 su discord |
|
|
|
21 Mar 2016, 12:26
Messaggio
#8
|
|
|
Gruppo: Gamer Messaggi: 9 Iscritto il: 13 March 16 Da: Quebec City Utente Nr.: 21.122 SO Windows7 |
|
|
|
|
21 Mar 2016, 14:36
Messaggio
#9
|
|
|
Gruppo: Gamer Messaggi: 75 Iscritto il: 21 November 15 Da: roma Utente Nr.: 20.971 SO Mac OS |
ovvero DOPO l'inclusione di ItalianG? si, perché altrimenti da errore in compilazione Qui di seguito posto il tuo codice testato e funzionante CODICE !% +language_name=Italian ! ------------------------------------------ ! Esempio di listato per oldgamesitalia ! Quest'avventura @`e software libero, pu@`o essere liberamente usata, ! copiata, distribuita e modificata senza alcun vincolo. ! Questo prodotto e' distribuito senza alcuna garanzia. L'autore non puo' essere ! ritenuto responsabile per qualsiasi danno dovuto direttamente o indirettamente ! all'uso del prodotto. ! ------------------------------------------ ! File principale ! ------------------------------------------ Constant Story "Esempio di dialogo"; Constant Headline "^Una dimostrazione per oldgamesitalia di Marco Falcinelli^"; Release 1; ! ------------------------------------------ ! Costanti ! ------------------------------------------ ! ------------------------------------------ ! Messaggi di libreria ! ------------------------------------------ Include "parser"; Object LibraryMessages with before [; ]; Include "verblib"; Include "replace"; ! ------------------------------------------ ! Classi e Attributi ! ------------------------------------------ Class Room has light; Class NPC with life [; Answer,Ask,Order,Tell: print_ret "Usa soltanto PARLA [", (arta) self, "]."; ], has animate; ! ------------------------------------------ ! Variabili e Oggetti particolari ! ------------------------------------------ ! ------------------------------------------ ! Locazioni ! ------------------------------------------ Room camera "camera" with description "La descrizione di una camera."; ! ------------------------------------------ ! Personaggi ! ------------------------------------------ NPC luigi "Luigi" camera with name 'vicino' 'amico' 'luigi', description "Luigi @`e un tuo caro amico.", initial [; print "Luigi smette di osservare la valle e ti saluta."; if (location hasnt visited) { move torcia to player; print "^Ciao Mario, come stai?^A proposito, avevo dimentica di restituirti la torcia elettrica che mi avevi prestato.^Tieni!^"; } ], frasi_dette 0, ! per contare gli argomenti di conversazione life [; Kiss: print_ret "~Ooh"; Talk: self.frasi_dette = self.frasi_dette + 1; switch (self.frasi_dette) { 1: score = score + 1; print_ret "Ringrazi Luigi per la torcia."; 2: print_ret "~Grazie, ci vediamo presto.~"; default: return false; } ], has proper; ! ------------------------------------------ ! Oggetti ! ------------------------------------------ Object torcia "torcia" with name 'torcia', description "una torcia", has light; ! ------------------------------------------ ! Include e Procedure ! ------------------------------------------ ! Includes ! Entry point routines [Initialise; lookmode=2; location = camera; move luigi to camera; banner(); ]; Include "italiang"; [TalkSub; if (noun == player) print_ret "Niente di quello che dici pu@`o sorprenderti."; if (RunLife(noun,##Talk) ~= false) return; print_ret "Al momento, non ti viene niente da dire."; ]; ! ------------------------------------------ ! Estensioni ! ------------------------------------------ Extend 'parla' first * 'a'/'ad'/'all^'/'allo'/'alla'/'al'/ 'agli'/'ai'/'alle'/'con' creature -> Talk; una volta compilato il comportamento del parser è: CITAZIONE Esempio di dialogo Una dimostrazione per oldgamesitalia di Marco Falcinelli Versione 1 -- Numero di serie 160321 Inform v6.31 -- Libreria 6/11 -- Infit v2.5 S camera La descrizione di una camera. Luigi smette di osservare la valle e ti saluta. Ciao Mario, come stai? A proposito, avevo dimentica di restituirti la torcia elettrica che mi avevi prestato. Tieni! >parla luigi Cosa vuoi dire? Non riesco a capire. >parla a luigi Ringrazi Luigi per la torcia. [Il tuo punteggio è appena aumentato di un punto.] >parla con luigi "Grazie, ci vediamo presto." >parla ( a Luigi) Al momento, non ti viene niente da dire. > il comportamento è quello che ci si aspetta. Ovvero solo "parla luigi" non viene accettato perché grammaticamente non previsto. prova questo esempio, e quindi confrontalo con il tuo listato per vedere quali sono le differenze. -------------------- |
|
|
|
22 Mar 2016, 12:50
Messaggio
#10
|
|
|
Gruppo: Gamer Messaggi: 9 Iscritto il: 13 March 16 Da: Quebec City Utente Nr.: 21.122 SO Windows7 |
Ah, a Luigi manca il name 'luigi' (ma non è questo il problema). Grazie per l'aiuto PaoloL ho trovato l'inghippo. Il problema era proprio il "name" luigi!!! Ho dedotto che anche se si usa un verbo con un oggetto, bisogna sempre dichiararlo nei "name". Giusta deduzione? Grazie, ora posso continuare... |
|
|
|
![]() ![]() ![]() |
| Versione Lo-Fi | Oggi è il: 12th November 2026 - 18:27 |