137
PC Master
script. Προαιρετικά μπορούμε να ξεκινή-
σουμε με ένα @S, που θα είναι οι αρχικές
προτάσεις που θα λέγονται προτού καν
αρχίσει ο διάλογος. Για να εκφωνήσει
ένας χαρακτήρας μία φράση, απλώς γρά-
φουμε script name του χωρίς το πρόθεμα
c, άνω κάτω τελεία και στη συνέχεια αυτό
που επιθυμούμε να πει. Με την επιλογή
return επιστρέφουμε τον έλεγχο στον
παίκτη, ενώ με τη stop τερματίζουμε το
διάλογο. Αν θέλουμε να δώσουμε το λόγο
στον narrator, απλώς γράφουμε narrator
ως όνομα. Με goto-dialog X μεταβαίνου-
με σε μία επιλογή διαλόγου, ενώ με
option-on X και option-off X ενεργοποι-
ούμε και απενεργοποιούμε μία εντολή
αντίστοιχα. Μπορούμε να χρησιμοποιή-
σουμε και κανονικές scripting εντολές
στο dialog script. Για να τις δηλώσουμε,
αρκεί να αφήσουμε ένα κενό από αριστε-
ρά με tab ή spaces. Προσοχή μόνο να μην
αφήσουμε κανένα κενό στις υπόλοιπες.
Στο διάλογο μεταξύ Chris και
Bluntnose, θα γράψουμε τις παρακάτω
επιλογές:
1:
Did you fix your computer yet?
2:
Have you seen Cornelius?
3:
How long ago did you see him?
4:
Do you have $20 I can borrow?
5:
I’ll see you around.
Σε όλες τις παραπάνω θα έχουμε τσε-
καρισμένα τα Show & Say, εκτός από το
Show της τρίτης επιλογής, αφού θα την
ενεργοποιήσουμε μέσω κάποιας άλλης.
Στο dialog script window θα πληκτρο-
λογήσουμε τα εξής:
@
S
Chris: Good morning Bluntnose, how
are you?
Bluntnose: I can’t complain.
return
@1
Bluntnose: No, but I’m working on it.
Chris: What seems to be the problem?
Bluntnose: I think my PSU is fried.
option-off 1
return
@2
Bluntnose: Yes, he was at the
restaurant earlier today.
option-off 2
option-on 3
return
@3
Bluntnose: About 20 minutes ago. I’m
sure he’s still there.
GiveScore(10);
option-off 3
return
@4
Bluntnose: Sorry man, I’m broke.
return
@5
Bluntnose: Take care, Chris.
stop
Δεν έχουμε πει ακόμα στο παιχνίδι μας
πότε ξεκινά ο παραπάνω διάλογος. Αφού
του δώσουμε το όνομα Cornelius0 στο
Project Grid, θα πάμε στα Events του
Bluntnose και συγκεκριμένα στο Talk to
character. Στη συνάρτηση
cBluntnose_Talk() που δημιουργείται, πλη-
κτρολογούμε:
cChris.Walk(200, 100, eBlock);
cChris.FaceCharacter(cBluntnose,
eBlock);
Cornelius0.Start();
Προφανώς οι συντεταγμένες μπορεί να
είναι διαφορετικές στο δικό μας παιχνίδι.
Είδαμε πώς βάλαμε τον Chris να κοιτάξει
τον Bluntnose προτού ξεκινήσει να του
μιλάει. Αποθηκεύουμε το PC Master Sage,
το τρέχουμε και μιλάμε στον καινούργιο
φίλο μας, για να δούμε πώς λειτουργεί ο
διάλογος. Αν θέλουμε, μπορούμε να σχε-
διάσουμε για τους χαρακτήρες μας στιγ-
μιότυπα κατά τα οποία ανοιγοκλείνουν το
στόμα, ώστε να φτιάξουμε και μία speech
view για καθένα.
Μπορεί τα interactions που μάθαμε αυ-
τόν το μήνα να αφορούσαν σε χαρακτή-
ρες, αλλά φυσικά μπορούν να χρησιμο-
ποιηθούν αυτούσια σε hotspots ή objects.
Μέχρι το επόμενο τεύχος, προσπαθήστε
να πειραματιστείτε με τα events που συμ-
βαίνουν έπειτα από ένα κλικ, καθώς και
με το dialog script, οι πλήρεις εντολές
του οποίου αναφέρονται στις οδηγίες του
προγράμματος.
PC
TO TIP
ΤΟΥ ΜΗΝΑ
Μέχρι να εξοικειωθείτε με τις block-
ing functions, μπορεί να σας συμ-
βαίνει συχνά ο χαρακτήρας σας να
εκτελεί εντολές προτού ολοκληρώ-
σει τις προηγούμενες. Για παράδειγ-
μα, μπορεί να παίρνει ένα αντικείμε-
νο προτού ξεκινήσει καν να περπα-
τά για να φτάσει κοντά του. Ένα κα-
λό τρικ για να βεβαιώνεστε ότι δεν
θα συμβαίνει αυτό, είναι να προσθέ-
τετε την εντολή Wait(1); πριν από
εκείνη που θέλετε να εκτελεστεί τε-
λευταία. Το αποτέλεσμα θα είναι
όπως το θέλετε και δεν θα υπάρχει
καμία καθυστέρηση.
Οι επιλογές διαλόγου μεταξύ Chris και Bluntnose Sixgill.
Το πλήρες dialog script.
Ο διάλογος των δύο πρωταγωνιστών.