Ad esempio: se mi avvicino un NPC a punto x del gioco, con gli elementi ye z missioni, come faccio a capire cosa l'Anp ha bisogno di dire? Ramificazione dialogo e rispondere alle lettore ingresso sembra banale come avente uno script definito , e l'input dell'utente provoca il lettore script per saltare ad una particolare linea nello script, che ha una corrispondente serie di risposta linee (molto come un scegliere il proprio avventura)
Tuttavia, legando nella logica di capire se il giocatore ha alcuni elementi, e completato alcune missioni sembra davvero rovinare questo script modello basato.
Niente affatto. È sufficiente considerare i condizionali nei dati.
Diciamo che hai la tua lista di dialoghi, numerati da 1 a 400 o simili come gli esempi del libro Scegli la tua avventura. Suppongo che ogni dialogo possa consistere nel testo pronunciato dal NPC, seguito da un elenco di risposte disponibili per il giocatore.
Quindi il prossimo passo è aggiungere i condizionali li ', semplicemente allegando le condizioni ad ogni risposta. Il modo più semplice è farlo con un linguaggio di scripting, in modo da avere un codice breve e semplice che restituisce True se questa risposta è disponibile per il giocatore e False se non lo è.
es. (Formato XML, ma potrebbe essere qualsiasi cosa)
<dialogue id='1'>
<text>
Couldst thou venture forth and kill me 10 rats, perchance?
</text>
<response condition="True" nextDialogue='2'>
Verily! Naught could be better than slaying thy verminous foes. Ten ratty
carcasses shall I bring unto thee.
</text>
<response condition="rats_left_in_world() < 10" nextDialogue='3'>
Nay, brother! Had thou but ten rats remaining, my sword would be thine,
but tis not to be.
</response>
</dialogue>
Nel vostro linguaggio di scripting, avresti bisogno di una funzione 'rats_left_in_world' che è possibile chiamare per recuperare il valore in questione.
Cosa succede se non si dispone di linguaggio di scripting? Bene, potresti avere il codice del programmatore una condizione individuale per ogni situazione nel tuo dialogo - un po 'noioso, non è poi così difficile se il tuo dialogo è scritto in anticipo. Quindi fai riferimento a una condizione per nome nello script di conversazione.
Uno schema più avanzato, ancora non richiedono un linguaggio di scripting, potrebbe utilizzare un tag per ogni condizione, in questo modo:
<response>
<condition type='min_level' value='50'/>
Sadly squire, my time is too valuable for the likes of thee. Get thyself a
farm hand or stable boy to do thy bidding!
</response>
È possibile aggiungere tutte le condizioni in là come è necessario, purché può essere facilmente specificato con uno o due valori. Se tutte le condizioni sono soddisfatte, la risposta è disponibile.
Cool, ho appena modificato la domanda per essere una wiki della comunità –