talking to characters

BenM
I made it to page 35 in the Tutorial, although there is so much information missing that it was nearly impossible. However, on Page 36 (Additional example) your instruction totally breaks down. Please explain, step-by-step, exactly what one has to do in order to speak to individual characters. It may require three or more pages of explanation, but simple saying, as you do: "Here the say command is extended...etc." is completely confusing to beginners such as me. Showing the code doesn't help since we're not entering the code; we trying to use the drop-down menus, etc...

In fact, the problem goes back even further. When you explained the weigh command on page 35 you mentioned Bob. But where did Bob come from. I've been trying follow the instructions from the beginning, but the tutorial never explained how to set up Bob as an object, how to give him attributes, etc...

Now, on p. 36, there's a Troll? And all of those instructions as shown on the screen shot of the script make no sense.

I'm so frustrated that I'm about to dump this entire Quest application and go back to Alan, an application that I know works and that doesn't involve non-intuitive drop downs.

Before I do this, however, I'm hoping that someone can take this "saying" information (p. 36) and explain it in simple, clear instructions.

Thanks,

-- Ben

jaynabonne
I'm feeling a bit stupid right now - can you point me to what you're using for the tutorial? The only one I know of is the online one in the Quest documentation, which is HTML-based and doesn't have page numbers. It sounds like you have some sort of downloaded file, but for the life of me, I can't find it. If you could point me to what you're using, I'd be happy to have a go at trying to help. (If you are using the online version, a link would be handy.) It's been years since I first went through the tutorial, and I don't know what its current state is.

adammadam
there is another tutorial if you open up quest, click on help, then it will open a webpage, click on start tutorial, in this tutorial it explains more like how to make an object, how to give attributes etc. Though it certainly doesn't cover everything and some things I think everyone will end up having to ask about on the forums, but luckily I've had good help from other people with anything I've been stuck on.

jaynabonne
That tutorial is here: http://docs.textadventures.co.uk/quest/tutorial/

BenM
Hi Jay ...
Yes, that's exactly the tutorial I'm using. What I did was download it, copy it to Word and then print it out so that I'd have a hard copy in front of me while trying to learn the system. I guess I inserted the page numbers (but I forgot to mention that I did that). The place where I'm stuck is the "Additional Example" which comes right after "Checking for An Attribute." The instruction is extremely thin here and -- for me -- impossible to follow.

I did figure out how to put a "Bob" and a "Troll" into the room (still using the Lounge from the 1st steps). And I was able to follow the instructions under "Adding a Simple Command" (so that I got the required general responses when shouting or saying something). But the next steps -- differentiating between the two characters still elude me.

Thanks,
-- Ben

jaynabonne
My take: if you've followed the steps up to that point, you should have a "say #text'" command. In this step, that command is extended to handle a "to" object. So you should go to your "say #text#" command, extend the pattern to be "say #text# to #object_one#, set "Name" to "saying", and then change the script to be what is shown there, which is a simple switch on "object_one", with different msg's depending on the object.

The screen capture is a bit wrong, as the "weigh" command that has existed up until that point is inexplicably gone. I'd just ignore that little continuity problem. (It's not necessary to remove it and probably not intended.)

The screen capture also doesn't show the "default" case, which is clearly shown in the code snippet. It might be off the bottom.

Let me know if you need more than that. :)

HegemonKhan
the tutorial is a bit difficult for new people, I got stuck on the 'say to troll' Command too, but this was back like 3 years ago, and the tutorial has changed a bit since then, but if you want to take a look (probably won't be too much help for you though), here was my own difficulty with it (though, after I got help on that part of the tutorial, I jumped into learning quest's code quickly, but after I was done with the tutorial, I was overwhelmed from all the info, and just confused by all of the terms, laughs):

viewtopic.php?t=3348

-------

anyways, I'd have to look at the tutorial to re-learn it, to help you through it, though I'm trying to help someone else today, but if-when I get time, I can try to help you with the tutorial.

-----

for beginners, the big things to learn are:

Creating (adding in) the Elements ( http://docs.textadventures.co.uk/quest/elements/ ), the 'physical things' of quest, mostly just these for now:

Objects (3 Types):

1. Room Objects (locations~areas you can move~goto with your Player Objects)
2. Player Objects (such as the default 'player' Player Object, your controllable~playable characters~actors)
3. (non-room, non-player) Objects (any other stuff in your game: npcs~townsfolk, items, equipment, furniture, trees~outdoor stuff, spells, etc).

Exits: connectors of the Room Objects, for the compass~directional movement during game play. They only go one way, so to go back and forth, you need to make two exits (there's an option for this in the GUI~Editor when you create~add in your Exits)

Verbs (your actions 'buttons' and 'hypertexts' added to your Objects): these are only for that specific Object you're added the Verb to.

Commands (this is much more advanced than Verbs, so it's a step up within the tutorial):

Commands enable you to do dynamic~universal actions. They are not bound to an individual Object. Instead, they use your input drung game play, taking that input to be used in~for its actions (scripting: the 'add a script' circle buttons stuff).

Functions, Turnscripts, and Timers are more advanced too, like how Commands are, so you might just want to stick with Verbs for now. Unless you want to learn Commands, Functions, Turnscripts, and Timers.

Understanding Attributes and their Usage:

http://docs.textadventures.co.uk/quest/types/

for a conceptual and actual example:

'room' Object -> 'Objects' Tab -> Add -> Name: HK

'HK' Player Object -> 'Attributes' Tab -> Attributes -> Add -> (see below, repeat as needed)

Attribute Name: sex
Attribute Type: string
Attribute Value~Expression: male

Attribute Name: age1
Attribute Type: string
Attribute Value~Expression: adult

Attribute Name: age2
Attribute Type: int (integer)
Attribute Value~Expression: 18 // I wish I was still 18, lol

Attribute Name: dead
Attribute Type: boolean
Attribute Value~Expression: false // yes, I am alive, lol ... until I get killed in the game...

Attribute Name: right_hand
Attribute Type: object
Attribute Value~Expression: sword

Attribute Name: left_hand
Attribute Type: object
Attribute Value~Expression: shield

'player' Player Object -> 'Objects' Tab -> Add -> Name: sword

'player' Player Object -> 'Objects' Tab -> Add -> Name: shield

lastly, learning the usage of Scripting (your actions~events, your 'run as script -> add new script' stuff):

The Two Super Scripts, which especially when used together, let's you do 90% of everything that you want to do:

1. the 'set a variable or attribute' Script (using, setting, re-setting, and changing~altering Attributes via Scripting)

(Element: Verb, Command, Turnscript, Function, Timer, etc) -> run as script -> add new script -> variables -> 'set a variable or 'attribute' Script -> (see below)

set variable Object_name.Attribute_name = [expression] Value_or_Expression

for example:

Object_name: player
Attribute_name: strength
Value_or_Expression: 100

set variable player.strength = 100

which is the same thing as:

'player' Player Object -> 'Attributes' Tab -> Attributes -> Add -> (see below)

(Object Name: player)
Attribute name: strength
Attribute Type: int
Attribute Value: 100

2. the 'if' Script:

(Element: Verb, Command, Turnscript, Function, Timer, etc) -> run as script -> add new script -> scripts -> 'if' Script -> (see below)

if [expression] Object_name.Attribute_name OPERATOR Value_or_Expression

OPERATORS:

Math operators:

Addition: +
Subraction: -
Multiplication: *
Division: /
Modulus (same as division but it gets the remainder): %
Equals: =
Not Equals 1: <>
Not Equals 2: not Object_name.Attribute_name = Value_or_Expression
Greater Than: >
Lesser Than: <
Greater Than and~or Equal To: >=
Lesser Than and~or Equal To: <=

String~Text Operators:

assignment: =
comparison: =
contraction 1: <>
contraction 2: not Object_name.Attribute_name = Value_or_Expression
concatenation: +
etc etc etc ??

for example:

(Element: Verb, Command, Turnscript, Function, Timer, etc) -> run as script -> add new script -> output -> 'print a message' Script -> (see below)

Add Turnscript -> Name: global_turnscript, 'Enabled' checkbox (have it be checked in), Scripts:

if [expression] player.strength1 >= 67 and player.strength <= 100
-> then -> set variable player.strength2 = "strong"
else if [expression] player.strength1 >= 34 and player.strength < 67
-> then -> set variable player.strength2 = "average"
else if [expression] player.strength1 >= 0 and player.strength < 34
-> then -> set variable player.strength2 = "weak"
print [exprssion] "You are {player.strength2} in strength."

// output:
//
// (if strength1 is 0-33): You are weak in strength.
// (if strength1 is 34-66): You are average in strength.
// (if strength1 is 67-100): You are strong in strength.

BenM
Hi Jay,
Thanks for your generous suggestion. I've copied it below. Unfortunately, I can't seem to make it work. I'd post a screen shot but I don't know how to do that here.

My take: if you've followed the steps up to that point, you should have a "say #text'" command. In this step, that command is extended to handle a "to" object. So you should go to your "say #text#" command, extend the pattern to be "say #text# to #object_one#, set "Name" to "saying", and then change the script to be what is shown there, which is a simple switch on "object_one", with different msg's depending on the object.

I don't know how to do the "simple" switch on "object_one". I can't understand any of the tutorial's instructions.

HegemonKhan
add Command -> (see below)

Command Name box: saying
Command Pattern box: say #text# to #object#
Command Scripts: (see below)

run as script -> add new script -> ??? (I don't have quest open ~ not sure what category it is under ~ just scroll down until you find) -> 'switch' Script -> (see below, this is more how it looks in code, but you should be able to match it up in the GUI~Editor)

switch (object)
-> case (bob)
->-> print [expression] text + " " + object + ", how are you doing?"
-> case (troll)
->-> print [expression] text + " " + object + ", now... Die!"

for example, you type in:

say hi to bob, outputs: hi bob, how are doing?
~OR~
say hi to troll, outputs: hi troll, now... Die!
~OR~
say hello to troll, outputs: hello troll, now... Die!
~OR~
say hello to bob, outputs: hello bob, how are you?
~OR~
say hola to bob, outputs: hola bob, how are you?
~OR~
say kunichiwa to troll, outputs: kunichiwa troll, now... Die!

jaynabonne
To create a switch statement, do the following:

1) In your command, click "Add New Script" to bring up the Add Script Command window.
2) Scroll down to where it says "Scripts" (pass up "Output" and "Objects"). Under that category, you should see "Switch..." Select that and click Add.
3) After the label "Switch", enter "object_one" (no quotes).
Now you can add the various cases.
4) Click the Add button. For the case expression, enter "troll" (again, no quotes - just the word).
5) Then it will ask you for the script for that case. Click Add New Script, choose "Print a Message" from "Output".
6) It will ask you for the text to output. Switch where it says "message" after "Print" to "expression". Then in the field enter this:

"You say: " + text_talk

7) Click "Add new script" and select "Print a message".
8 ) Leave it as "Print message" and type this in the input field:

The troll grunts but otherwise ignores you.

As you can see, when you choose "message", you don't need quotes around the string. With "expression", you do.
9) Close the script window.
10) Click the Add button again, and this time enter "bob" (no quotes). Add a message output script for bob as well as before.

See how that goes. I can add more detail if you like or if anything is confusing.

BenM
HegemanKhan
I’m trying to set up the commands exactly as you’ve instructed. But when I play and game and enter “Say hi to Bob.,” the output reads:

> Say hi to Bob
hi Object: Bob, how are you doing?
……………………………………….

Jaynabonne
It’s still not working.
On the tree, I’m in “saying”
The pattern is “Command Pattern” and, under that, the line reads:
Say #text_talk# to #object_one#
The switch box reads: Object_one
The key is: Bob
The script line is: Print “ You say:” + text_talk / Print “Bob smiles.”
However, I get the following output:
> Say Hi to Bob
Error running script: Error compiling expression 'object_one': Unknown object or variable 'object_one'

If I enter either “Bob” or “troll” (no quotes in either case) into the Switch Box, the thing works … as long as I’m referring specifically to Bob or the troll. But if, for example the Switch box reads: “Bob, then the output in the game says “Bob smiles,” even through I’ve entered “Say hi to troll.

jaynabonne
Is your switch box really "Object_one" with a capital "O"? If so, then that won't work - it needs to match the one in the pattern exactly, which has a lower-case "o". I just did a quick test, and it works, so it's probably something like that.

BenM
Wow, that would be simple, wouldn't it. But no, my switch box shows object_one -- lower case.

HegemonKhan
and your Command Pattern uses lowercase 'object_one', also?

Make sure that your 'says' (in your Command and when you type in input during game play) are both 'say'
OR
Make sure that your 'says' (in your Command and when you type in input during game play) are both 'Say'

--------

right now, we're trying to trouble-shoot what your issue is, focusing first on making sure you got everything matching up correctly.

if you want to make it really easy on us:

right click on your game file itself, choose to open it with notepad (or if you got an apple computer: text editor), highlight all, copy, and paste in your post to here, this is your entire game code, which we can go through and fix it up for you.

when you paste it into your post, please type~do this in your post:

[code.](paste your game code here)[/code.]

but without the dots in the brackets, which will produce this:

(paste your game code here)


as this keeps all your formating~indenting, as well as keeping your post small.

----------

P.S.

I would recommend as a noob-practice (I'm still a noob too) actually always using lowercase (and NEVER using uppercase), it makes things so much easier.

HegemonKhan
BenM wrote:HegemanKhan
I’m trying to set up the commands exactly as you’ve instructed. But when I play and game and enter “Say hi to Bob.,” the output reads:

> Say hi to Bob
hi Object: Bob, how are you doing?


oops... I made 1 tiny mistake... which is why it is doing that, laughs. Even one tiny mistake, causes a big mess up, laughs. I wasn't 100% perfect in my typing~coding, lol.

in the scripting (add new scripts), in my previous post I used 'object', when I should have used 'object.name', which you can see correctly now below:

here's the fix (hopefully it will now work correctly, lol):

(I'll bold and increase the font size)

add Command -> (see below)

Command Name box: saying
Command Pattern box: say #text# to #object#
Command Scripts: (see below)

run as script -> add new script -> ??? (I don't have quest open ~ not sure what category it is under ~ just scroll down until you find) -> 'switch' Script -> (see below, this is more how it looks in code, but you should be able to match it up in the GUI~Editor)

switch (object)
-> case (bob)
->-> print [expression] text + " " + object.name + ", how are you doing?"
-> case (troll)
->-> print [expression] text + " " + object.name + ", now... Die!"

for example, you type in:

say hi to bob, outputs: hi bob, how are doing?
~OR~
say hi to troll, outputs: hi troll, now... Die!
~OR~
say hello to troll, outputs: hello troll, now... Die!
~OR~
say hello to bob, outputs: hello bob, how are you?
~OR~
say hola to bob, outputs: hola bob, how are you?
~OR~
say kunichiwa to troll, outputs: kunichiwa troll, now... Die!

-----------

or, you can use 'alias' instead:

add Command -> (see below)

Command Name box: saying
Command Pattern box: say #text# to #object#
Command Scripts: (see below)

run as script -> add new script -> ??? (I don't have quest open ~ not sure what category it is under ~ just scroll down until you find) -> 'switch' Script -> (see below, this is more how it looks in code, but you should be able to match it up in the GUI~Editor)

switch (object)
-> case (bob)
->-> print [expression] text + " " + object.alias + ", how are you doing?"
-> case (troll)
->-> print [expression] text + " " + object.alias + ", now... Die!"

for example, you type in:

say hi to bob, outputs: hi bob, how are doing?
~OR~
say hi to troll, outputs: hi troll, now... Die!
~OR~
say hello to troll, outputs: hello troll, now... Die!
~OR~
say hello to bob, outputs: hello bob, how are you?
~OR~
say hola to bob, outputs: hola bob, how are you?
~OR~
say kunichiwa to troll, outputs: kunichiwa troll, now... Die!

BenM
Hegemon,
I'd love to help you guys by highlighting the text, copying it and pasting it, etc. Unfortunately, I don't seem to be able to do that. When I go the Quest and right-click on my game, nothing happens.

Meanwhile, I'll try this adjusted coding that you recommend, and get back to you tomorrow.

Thanks,
-- B

HegemonKhan
let me try to explain Commands and their use of VARIABLES:

the Command Pattern is what is the generic format that you have to type in during game play to activate the Command and to give it stuff to use in the Command.

the first word in the Command Pattern is used to determine which Command you want to activate, for example, say I got two Commands:

1. Command Name: kick_command
Command Pattern: kick #object#

2. Command Name: kiss_command
Command Pattern: kiss #object#

if I type in during game play: kick xxx, it activates the 'kick_command' Command

if I type in during game play: kiss xxx, it activates the 'kiss_command' Command

---------

but what if I had these two Commands:

1. Command Name: kick_command
Command Pattern: kiss #object#

2. Command Name: kiss_command
Command Pattern: kiss #object#

now, when I type in during game play: kiss xxx, quest doesn't know which Command to activate~use, and either: gives an error message or it will give us a popup window, asking~forcing us to choose which Command to be used~activated.

--------

so, the most simple Command Pattern is:

activator VARIABLE

------

alright, now let's get into the VARIABLES:

#object# and #text#

we're going to ignore the subtle differences between them for now, as it's really complicated to try to explain... so for now, just remember~understand this, for example: if you actually created an Object named 'bob' and an Object named 'troll', then you would use: #object#, otherwise, you'd use: #text#

what the #object~text# does, is to take whatever you type in during game play, and use it in your Command's Scripting (add new scripts).

for example for the Command Pattern: say #text#, I type in:

say hi

the #____# tells the quest engine to set your input to be a VARIABLE, so conceptually:

text = #text# = hi
text = hi

and then 'text' is used in your Command's Scripting (add new scripts):

print [expression] text
// outputs: hi

this is just algebraic substitution (though with text, and not number amounts, lol):

instead of:

y = x
x = 5
y = x = 5
y = 5

print [expression] y
// output: 5

or

y = x + 4
x = 5
y = (5) + 4 = 9

print [expression] y
// outputs: 9

we do:

y = x
x = "hi"
y = x = "hi"
y = "hi"

print [expression] y
// output: hi

or

y = x + "blah blah blah"
x = "hi"
y = hi blah blah blah

print [expression] y
// outputs: hi blah blah blah

or

instead of 'x', we're using: 'player.strength' as our 'x'

y = "You have " + player.strength + " strength."
player.strength = 100
y = "You have " + (100) + " strength."
y = You have 100 strength.

print [expression] y
// outputs: You have 100 strength.

------

now, let's go to the expanded tutorial example:

(ach, you might want to ignore some of this, as it deals with 'object.name' ~ 'object.alias', as I didn't explain it well, it'll just confuse you more, argh)

Object Name: troll
'troll' Object's 'name' (ID) String Attribute: "troll"
troll.name = "troll"

Object name: bob
'bob' Object's 'name' (ID) String Attribute: "bob"
bob.name = "bob"

Command Pattern: say #text# to #object#

you type in during game play: say hi to troll

text = #text# = hi
object = #object# = troll

Object_name.Attribute_name = Value_or_Expression
object.name = troll.name = "troll"
object.name = "troll"

print [expression] text + " " + object.name
// outputs: hi troll

you type in during game play: say hello to bob

text = #text# = hello
object = #object# = bob

Object_name.Attribute_name = Value_or_Expression
object.name = bob.name = "bob"
object.name = "bob"

print [expression] text + " " + object.name
// outputs: hello bob

HegemonKhan
you want to right click on your:

'xxx.aslx' file itself (your saved tutorial game file) in your quest folder or on your desktop or wherever you saved it to.

and then choose to open it with notepad

and now you got the mass of game code in notepad, which you highlight, copy, and paste into your post.

---------

for example, when I create a new quest Text Adventure game, and save it on my desktop, naming the game file: 'testing game stuff.aslx' :

I right click on my 'testing game file.aslx' file on my desktop, choose to open it with notepad, this is what I see in notepad (the default new game code):

<asl version="550">
<include ref="English.aslx" />
<include ref="Core.aslx" />
<game name="xxx">
<gameid>xxx</gameid>
<version>1.0</version>
<firspublished>2015</firstpublished>
</game>
<object name="room">
<inherit name="editor_room" />
<object name="player">
<inherit name="editor_object" />
<inherit name="editor_player" />
</object>
</object>
</asl>


---------

or, you can see you entire game code this way too:

just open up your tutorial game normally into the GUI~Editor, and at the top of the screen is a horizontal bar, click on the notepaper-like button between the 'play' and '?-help' buttons. This notepaper like button is a toggle to go back and forth between GUI~Editor mode and your (full game code) Code View mode.

once in Code View mode, highlight, copy, and paste into your post.

BenM
Mssrs: HegemonKhan and Jaynabonne …

Well, it finally works. I entered the material that Mr. Khan most recently, and so far the game responds as intended. So many thanks for that.
I should point out that there seem to be major discrepancies between this solution and the instructions shown in the Tutorial. To wit:
On the command pattern line the tutorial instructs me to enter

say #text_talk# to #object_one#

whereas your solution for that line is

say #text# to #object#\

In both cases, the name line is “saying” (no quotes)

On the unresolved object line, the tutorial has me enter: "Say that to who?" (no quotes)

Your solution has nothing on that line. But it doesn’t seem to make any difference because when I play the say and enter “say hi,” for example, the game doesn’t output “Say that to who?” On the contrary, it outputs “I don’t understand your command.” (I know, this is a default answer).

Then we’re down to that big Switch Section.

In the little box after “Switch,” the tutorial says I should enter

object_one

Your solution for that box just calls for

object.

And finally, in the key/Script section, matching bob, for example, the tutorial asks for:

Print “You say. “ +text_talk / Print “Bob smiles back at you.”

Whereas your solution calls for the expression:

Print text + “” + object.name(or alias) + “, how are you doing?”

If these discrepancies didn’t matter – if both ways of doing it produced the same results – there wouldn’t be a problem. But, try as I might, I wasn’t able to get the tutorial’s solution to work. Do you have any idea of the reason for the problem? Is it an issue of proofreading or has Quest changed materially since the tutorial was first published?

One last thought: although I don’t seem able to right-click, copy-and-paste my work using notepad, I can take screen shots of specific pages and send those along with my questions. I don’t see any way of pasting screen shots into the usual forum respond boxes, so I would probably need an email.

HegemonKhan
I wasn't following the tutorial directly, so that's why the discrepencies, sorry for the confusion.

and I just ignored the 'unresolved' in my posts, whereas the tutoral asks you to change it.

---------

examples of a few (out of infinite) Command Pattern Expressions:

Command Pattern: activator
Command Pattern: activator #VARIABLE1#
Command Pattern: activator #VARIABLE1# #VARIABLE2#
Command Pattern: activator #VARIABLE1# grammer_fluff #VARIABLE2#
Command Pattern: activator #VARIABLE1# #VARIABLE2# #VARIABLE3#
Command Pattern: activator #VARIABLE1# grammer_fluff #VARIABLE2# grammer_fluff #VARIABLE3#
etc etc etc

examples (as example inputs by the person playing the game):

i
info
information
c
char
character
i
inv
inventory
say hi
say hi to bob
order bob to mow lawn
order troll to mow world
craft hydrogen and oxygen
mix toad, rabbit_feet, and mushroom
buy sword shield helmet mail pauldron
equip sword n shield
cast fireball
cast fireball blizzard quake tornado

-----------

x = 8
y = x + 3
y = 11

whatever label~name I use for the 'x' VARIABLE, doesn't matter:

a = 8
y = a + 3
y = 11

ball = 8
y = ball + 3
y = 11

text = 8
y = text + 3
y = 11

text_talk = 8
y = text_talk + 3
y = 11

whether we use 'x' or 'a' or 'ball' or 'text' or 'text_talk', for the VARIABLE's label~name, doesn't matter at all.

that is the difference between the tutorial and my post in regards to:

tutorial's VARIABLE's label: text_talk
vs
HK's post's VARIABLE's label: text

and

tutorial's VARIABLE's label: object_one
vs
HK's post's VARIABLE's label: object

we (the tutorial and me) just called~labeled~named the VARIABLES differently, that is all.

--------

I didn't know what the tutorial asked to be done exactly, so I made up my own somewhat similiar 'saying' Command and I made up how it gives its responses (the 'print message' Script) for the person playing the game to see.

HegemonKhan
BenM wrote:One last thought: although I don’t seem able to right-click, copy-and-paste my work using notepad, I can take screen shots of specific pages and send those along with my questions. I don’t see any way of pasting screen shots into the usual forum respond boxes, so I would probably need an email.


do you have an apple or pc computer, or are you using a mobile device ???

if you got an apple or pc computer, you can definately right click on your tutorial game file and open it up in notepad (every pc comes with notepad) or text editor (I think all apples have text editor ~ though I'm using an old macbook ~ v10.5.6 and its buried in the 'utilities' Folder, but I'm sure the text editor is kept in use for current apple computers).

and, again, you can always through the GUI~Editor, switch into Code View mode too: highlighting, copying, and pasting your game code here in a post.

BenM
Mssrs: HegemonKhan and Jaynabonne …

Well, it finally works. I entered the material that Mr. Khan most recently, and so far the game responds as intended. So many thanks for that.

I should point out that there seem to be major discrepancies between this solution and the instructions shown in the Tutorial. To wit:

On the command pattern line the tutorial instructs me to enter

say #text_talk# to #object_one#

whereas your solution for that line is

say #text# to #object#

In both cases, the name line is “saying” (no quotes)

On the unresolved object line, the tutorial has me enter

Say that to who?

Your solution has nothing on that line. But it doesn’t seem to make any difference because when I play the say and enter “say hi,” for example, the game doesn’t output “Say that to who?” On the contrary, it outputs “I don’t understand your command.” (I know, this is a default answer).

Then we’re down to that big Switch Section.

In the little box after “Switch,” the tutorial says I should enter

object_one

Your solution for that box just calls for

object.

And finally, in the key/Script section, matching bob, for example, the tutorial asks for:

Print “You say. “ +text_talk / Print “Bob smiles back at you.”

Whereas your solution calls for the expression:

Print text + “” + object.name(or alias) + “, how are you doing?”

If these discrepancies didn’t matter – if both ways of doing it produced the same results – there wouldn’t be a problem. But, try as I might, I wasn’t able to get the tutorial’s solution to work. Do you have any idea of the reason for the problem? Is it an issue of proofreading or has Quest changed materially since the tutorial was first published?

One last thought: although I don’t seem able to right-click, copy-and-paste my work using notepad, I can take screen shots of specific pages and send those along with my questions. I don’t see any way of pasting screen shots into the usual forum respond boxes, so I would probably need an email.

HegemonKhan
this was done by me going through the tutorial (but from a few years ago, so some stuff might have changed), so, at the bottom of this post, are two file attachments for you to DL, and look at~study~compare and etc:

(if you don't recognize some stuff, it might be because: as I understood the stuff, I got a bit creative with some of the tutorial's lessons, trying to do extra~creative things beyond what the tutorial instructs you to do)

BenM
Mr. Khan,
First, thank you for all the time and effort you have spent in trying to instruct me. Some of the information has been extremely helpful. For example, I followed your example for setting up the talk-to commands and they seem to be working, at least as far as I've taken them. I've also managed to copy-and-paste game code into Notepad. I had thought I'd be able to paste the actual screen displays, but evidently that's not possible. I guess that means anyone trying to help me would have to read the code -- and I don't envy them that tast.

I've tried to download the two sample games you're attached

Attachments

tutorial defibrillator guide.aslx
(23.13 KiB) Downloaded 4 times

Tutorial Game edited for v550.aslx
(13.72 KiB) Downloaded 2 times

Unfortunately, when I try to open them I get the following message:

"Failed to load game due to the following errors:
*Invalid XML; Data at the root level is invalid. Line 1, Position 1.

For some reason I was able to download them last night, but, when I tried again today, that message popped up for both attachments.

Assuming that the problem is fixable, when I download them will I be printing out the raw code or will I see the graphic interfaces?

Thanks,

-- B

jaynabonne
tutorial defibrillator guide.aslx won't open because it's not an aslx file - it's a text file with a bunch of content. If you rename it to have a .txt extension, it should load in some default program (e.g. notepad).

The "edited" game loaded for me.

HegemonKhan
ya, the one file is just a text doc of some notes+guide of mine, I had to use '*.aslx' extension to upload it as an attachment (this site wouldn't accept it as a *.txt or *.doc file, so I assumed only *.aslx files were allowed ~ for obvious reasons ~ makes sense), so that's why its set as a '*.aslx' file.

-------

and my bad about the notepad... it may not be an option for you to choose when you right click on your game file as a software~program to use to open up the file, depending how you got your directory~folder~computer setup... my apologies, I didn't think~realize this until now. And you don't have to use notepad, you can use any text software (such as MS word).

so a different way would be to: open up notepad, choose to load~open file, and find your game file, as the file to open.

the point is just to see your game code, which you can then post or pm to us, for us to help you better, (or just to work in code yourself).

-------

if once you're able to download the game file of mine (the 'tutorial game edited' named file), you may not be able to (at the moment) open my file into the GUI~Editor, due to a conflict in quest versions.

my file is set for using quest version 550 (5.5.X)

I'm not sure if there's a quest beta version of 560 (5.6.X), if there is and you downlaoded that 'quest.exe', then you hopefully jsut need to open up my game file and change the very top line:

from:

<asl version="550">

to:

<asl version="560">

and then hopefully it should now be able to open up into the GUI~Editor...

(I don't use the beta's as they may still ahve some bugs, so I just download the stable quest.exe, but not the betas, until they become the new stable quest.exe)

jaynabonne
The asl version for 5.6 is still 550.

BenM
You guys are way past my understanding once you're talking about versions, extensions, etc...

I was able to save the Defibrillator link to my downloads, then the change the extension to .txt, and open it. But, of course, what opened was a whole bunch of code which is like trying to read the Dead Sea Scrolls in the original Aramaic. The mystery is that I was able to open it directly from the link --- once --- and it opened with the graphic interfaces (is that the GUI version?). After that one time, however, it refuses to be opened and, instead, flashes the error message to me as previously noted.

As to copying the code into notepad (or another text editor), I've got that figured out -- although, as I said, the result is just the raw code and, therefore, hard to read. You ought to try the Allen code; it's much more straight forward.

Anyway, I'll try and push on through, basically repeating what I've already accomplished until it becomes second-nature. Mr. Khan, I'm trying to understand all that material you sent me regarding commands and variables. But there are still some terms with which I'm not familiar. For instance, you use the word "activator." What's an activator? Also, you give an example:

1. Command Name: kick_command
Command Pattern: kick #object#

But looking at the left-hand column in my interface, I don't see anything like kick(or any other verb)_command. In other words, I don't see a verb_command. Am I supposed, in some way, to change the Command Name, or does that happen automatically?

HegemonKhan
could you tell us whether you got a pc or an apple computer or a mobile device? as maybe then we can help you a bit better with your problems. (Your file opening doesn't have anything to do the with the UAC: user account control, basically are you on a standard user account or an administrator account, if you got a pc, does it?)

-------

what I call the 'activator' is just the very first word~text (NON-#____#) of your Command Pattern, lol.

-----

oh, my 'kick_command' would be a custom Command (aka: you create~add a new Command, called~named, for example, 'kick_command' )

To create~add your own (custom) global Commands:

'game' -> 'Commands' -> Add -> (set it up)

-----

if~when you're interested in coding, I'd recommend you download this free text software, as you can choose quest's 'XML' language (at the top of the opened notepad++ software's bar menu, under its 'languages' category) with it, and it'll color code your game code, making it so much easier to understand, read, write, and trouble shoot your game code:

notepad++ ( https://notepad-plus-plus.org/ )

enjoy :D

BenM
Mr. Khan and Mr. Jaynabonne ...
Thank you for your input. Things are starting to become a bit clearer, although all that stuff about coding has me stumped. At any rate, I've run into a different situation and, since it doesn't apply specifically to "talking to characters," I'll start a new subject: "Teleporting the Player." Hope you can help me there.
Thanks,
-- Ben

HegemonKhan
unfortunately, whether you want it to or not, you're going to start learning some of quest's coding, as you learn more with using quest's GUI~Editor and in trying to make a game, hehe ... if I, XanMag, Neonayon, and Forgewright, can, so can you, too, hehe :D

Just be patient, be you'll learn more and more and more, and at some point, you'll reach 'plateaus~milestones' in learning where your game making abilities have vastly improved from before, being much more capable with doing stuff and things in~with quest.

Set small simple goals, don't get discouraged (you've no idea how many roadblocks I've hit and been discouraged at, lol), as learning to make a game, and the engine used, and especial coding, takes time and ain't easy either.

This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums