Help, Please.

Right, For order for you to help me ill tell you what i do know
(To help you help me - if that makes sense at all)

I’m a New to Imform 7
But, I know already how to make a place/room, set the scenry and place any objects or people/man/woman
into the room i know how to give a description and how to make some fixed in place.

What I would like is for the player to be-able to have a conversation/s with the people/persons

I put in the game - to like be-able to

ask martin about photo (or to)
talk to martin

I’ve seen that when i look this up others say to make a table
or make a new rule
but I can never get the tables to work and im a bit stuck
I’m not sure I’m even making the table or rule right
can you help explain how to make talking/asking other people (for example martin)
possible and how to also make a response
so that something like this example

take photo
photo taken

ask martin about photo
martin says “he remembers that photo”

and i want like options so they can ask martin loads of things
like to ask him about himself, about the other people and yourself - ect. ect.

ask martin about himself
martin says after dinner he is feeling better

ask martin about yourself
you look great to night, I’m glad you came

also how do make it that they have to do this (talk to/ask Martin)
before they can leave the room/place

a simple as possible or step by step guide would be the best way for me to understand i think
thanks much love xx

I’m composing a little example to illustrate how to do this; I’ll put it up in a sec. (EDIT: And I’m clearly confused.) (EDIT EDIT: No, I’m not.)

OK, here we go. The relevant section of the manual is 7.6; in fact this example is a variant on Example 94 tailored specifically to conversation. You should also be generally familiar with chapters 7 and 12, especially 7.2-7.5 and 12.7-12.9.

First off, the Inform conversational actions are asking it about and telling it about (and answering it that, but we’ll leave that out for now). There’s no “talking to” action by default, although it’s added fairly often. I’ll start this example with asking. The setting:

[code]The darkroom is a room. “This small room is illuminated only with a faint red glow.”

Martin is a man in the darkroom. The description of Martin is “In ordinary light, Martin has brown hair and green eyes.”

The photo is in the darkroom. The description of the photo is “That’s definitely Martin, but who’s the other person in the picture? Perhaps he knows.”

The technician is a man in the darkroom. The description of the technician is “He’s busy developing the photos.”[/code]

To start, you’ll probably want to replace the default asking response (“There is no reply”) with something a bit more customized (note the word instead):

Report asking someone about: say "[The noun] doesn't know anything about that." instead.

The asking action has two variables: the noun (who you asked) and the topic understood (what you asked about). The above uses the noun, so it will print the name of the person in the response, ie, “Martin doesn’t know anything about that.” But perhaps you want Martin to have his own response, so that asking Martin about something is different than asking the technician or anyone else:

Report asking Martin about: say "Martin says that [the topic understood] falls outside his area of expertise." instead.

Now Martin will respond differently than other people, and he’ll mention the topic you asked about, so if you ask about watermelons, you’ll get “Martin says that watermelons fall outside his area of expertise.”

But you want to write specific responses for specific topics. If there are only one or two topics you care about and not very many people in the game, you can write individual Instead rules for each one; for instance, this rule will make everyone in the game panic at the thought of snakes:

Instead of asking someone about "snakes", say "[The noun] screams in terror!"

But that would be inefficient, so we’ll use tables. But I’ll break it up because this example is already tremendously long.

Rather than writing a different rule for every single conversational topic, we’ll give each person a table that contains all his or her replies. See chapter 15 for more about tables.

[code]A person has a table name called the questions table.
The questions table of Martin is the Table of Martin.

Table of Martin
Topic Reply
“photo” “Martin says ‘He remembers that photo.’”
“technician” “Martin says ‘I’ve never seen him before in my life.’”[/code]

(Note the single quotes. As you probably know, they’ll appear as double quotes in the game.) As written, the topic has to be that exact word in the quotes: if you ask martin about “picture”, that will fall outside his area of expertise. We could get around this by just listing all the synonyms we want:

Table of Martin (continued) Topic Reply "you" or "yourself" "You look great to night, I'm glad you came."

There are two problems: First, that’s unwieldy, and second, only Martin will recognize those synonyms because they’re in his table. For the technician, “you” and “yourself” will be different topics. A text token (see 16.3) is more efficient.

[code]Table of Martin (continued)
Topic Reply
“[himself]” “martin says after dinner he is feeling better”

Understand “him” or “himself” as “[himself]” when asking someone about.[/code]

Now anyone you ask will respond the same to “him” and “himself.” But we don’t always want everyone to respond to the same synonyms, so here’s a final refinement to make Martin, but not the technician or anyone else, understand his own name as “himself”:

Understand "Martin" as "[himself]" when asking Martin about.

And finally, the actual line that looks up the entry in the person’s table and prints the reply:

Instead of asking someone about a topic listed in the questions table of the noun: say "[reply entry][paragraph break]".

You might want to take a look at Eric Eve’s Conversation Framework extensions. They provide more functionality and eliminate some of the messy stuff.


True, but they still require a basic knowledge of the “ask” and “tell” actions.

You can add rules for telling someone about exactly the same way as asking someone about: Give each person another table called the answers table, define what table it is for each person, and fill that table with the appropriate responses. You’ll probably want to modify the Understand statements so they apply to both actions:

Understand "darkroom" or "dark room" as "[darkroom]" when asking someone about or telling someone about.

Talking to is more complicated because it involves creating an entirely new action. If you want to keep things simple, you might want to skip it. Otherwise, look at 12.7-12.9 and then you’ll make an action that takes one noun:

Talking to is an action applying to one thing. Understand "talk to/with [something]" or "speak to/with [something]" as talking to.

An action involves three sets of rules: check, carry out, and report. Inform will move through the rules in that order. Let’s start with the Check rules. You can use these to exclude any cases that don’t make sense:

Check talking to: if the noun is not a person, say "You look ridiculous talking to [a noun]." instead.

Since this is a really simple action, you don’t really need any carry out rules. Normally that’s where you put all the complicated stuff, but all you want to do is print a response, so you can move straight to the report rules. This is the generic response:

Report talking to: say "[The noun] doesn't want to talk to you."

And then you can write Instead rules to make specific people reply specific ways:

Instead of talking to Martin, say "Martin says, 'I'm so glad you're here.'"

To keep the player from leaving before talking to Martin, you’ll need a flag: a variable that is false to begin with and then becomes true when we’ve done the thing we want.

Martin greeted is a truth state that varies.  Martin greeted is false.

While this variable is false, a rule keeps you from leaving:

Instead of going while Martin greeted is false, say "You don't want to go just yet.  Who knows when you'll next have a chance to talk to Martin?"

And we can have various actions set the variable to true:

[code]Before talking to Martin:
now Martin greeted is true.

Before asking Martin about:
now Martin greeted is true.

Before telling Martin about:
now Martin greeted is true.[/code]

That’s all I got. I hope that gets you on the right track.

Thanks so much!!!, that really helpful :mrgreen: :mrgreen:
But, I am still having trouble unfortantly with my table.

I put like your example:

[code]A person has a table name called the questions table.
The questions table of Martin is the Table of Martin.

Table of Martin
Topic Reply
“photo” "Martin says ‘He remembers that photo.’ "
“yourself” "Martin says ‘You look great to night, I’m glad you came.’ "
“himself” "Martin says ‘After dinner he is feeling better.’ "

And I get this: -

[i]This is the report produced by Inform 7 (build 6G60) on its most recent run through:

Problem. In the table Martin, the entry ‘“yourself” "Martin says ’ You look great to night, I’m glad you came.’ "’
is not something I recognise, and should either be a value, or a kind (such as ‘a number’), or a blank entry ‘–’.

See the manual: 15.1 > Laying out tables

Problem. In the table Martin, the entry ‘“himself” "Martin says ‘After dinner he is feeling better.’ "’
is not something I recognise.[/i]

i dont quite understand where im going wrong
and don’t understand the need for numbers or a blank entry
as it is a table to do with talking
15.1 dosn’t really help me as the explication is a table that would use numbers
and dose not tell you about blank entry

ps. i love how it understands the photo yet it is no different :unamused:

Did you remember to use tabs to separate columns, not spaces? That is, “Yourself”“Martin says…”

:laughing: :laughing: no.
haha it been a long day at work :laughing:

I have now completed my game but im now having issues Releasing it
I’ve tried releasing it with a website (Ref: Ch 12.10)
(without artwork or music)
and it dose make a website and i can browse the website
and i get file:///C:/Users/user/Desktop/Documents/Inform/Projects/project%20x%20Materials/Release/index.html
as the website adress but this only makes it view-able to me
and i want my freind to be able to play the game
i then use Ch 12:11 to Release along with an interpreter.
i have Windows Glulxe for Windows.
i ask it to release with Glulxe but it fails

Release along with the "Glulxe" interpreter.

i think im doing wrong - how do i do this?

wait i think i worked it out with Windows Frotz
nope im more confused then ever all ive managed is to get the game to play in frotz

Just use the formula

Release along with an interpreter.

That should release your game as a website playable in any browser.

Thanks Felix, I’ve gone and done that and Imform 7 Succeeded.
but - when I browse ‘Play-in-browser page’

i get an error code

[code]An error occurred:
Component: engine
Code: 200

Detail: 3

Traceback (most recent call last):

(anonymous function)
(anonymous function)
(anonymous function)
(anonymous function)
(anonymous function)[/code]

plus this still anyway dosn’t make the webpage viewable to other people
it just makes the game playable on the webpage sigh
im not very clever :neutral_face:

If you want to let other people play the game, options are that you send the story file (.ulx or .gblorb) to them and ask them to install an interpreter. You don’t need the “install along with an interpreter” option for this, it’s only for online play.

The other option is to release along with the (web) interpreter and upload the whole thing on your personal web pages. If you don’t have that possibility, it’s better to use the “old fashioned” way and send the story file only.

ok so - how do you release along with the (web) interpreter and upload the whole thing on your personal web page (freewebs)
(would it work with a freewebs?)

It will work with any website that you can directly upload files to (e.g. FTP).
Just upload the whole Release directory and you’ll be set.

If freewebs doesn’t allow direct uploading, you can always go with github (though the learning curve on using git is quite steep)

thanks joel ive made myself a github and seted up and made a repo :slight_smile:
im finding this easy it reminds me of DOS. :sunglasses:
but i don’t quite understand how i get my if story up there

im glad you guys are so nice to help a village idiot like me :laughing:

There is some good advice here:
Basically you just set up a branch named “gh-pages” and commit everything to that branch.
They make it sound far more complicated than it has to be. Just follow the steps and you should be good to go :slight_smile:

It’s ridiculously easy to use Dropbox for this. Just put your folder in your Public folder and share the link to the html file.


ok i think ive made a project page now
but that doesn’t like push my story to it
sorry i really dont have clue now :neutral_face:
(brain hurt)
i think im meant to wait 10 mins for this page i made to work
(cus it not currently working) … ect-X…git

EDIT: im going to give this drop box a try
EDIT EDIT: dropbox is no good i dont want to give them the file
i want a page to like hold it like the games on em…
so they can play them on the site :mrgreen:
thanks anyway.

right back to github my page works now
but it doesn’t hold the game
im starting to think that i should just tell them to download the stupid file
this is getting more fuss then i wanted it to sigh
ive uploaded the game to repo and its in downloads
i guessed that what i had to do to get it on to the site