Glad to be helpful!
Here’s a few basic code samples on the topics you asked for to give you a flavor of what some of this might look like in Inform 7. They’re all just quick sketches, and all could be implemented in different ways. (Also, I’ve made only a cursory effort to compile them, so a bit of syntax may be off here and there. But hopefully they’ll give you a sample to compare to Quest’s syntax.)
Tracking player attributes, take 1:
Strength is a number that varies. Strength is 7. Wisdom is a number that varies.
Wisdom is 12. Intelligence is a number that varies. Intelligence is 14.
Alignment is a kind of value. The alignments are lawful good, neutral good,
chaotic good, lawful neutral, true neutral, chaotic neutral, lawful evil,
neutral evil, and chaotic evil.
The player-alignment is an alignment variable. [Means the same thing as "alignment that varies."]
The player-alignment is chaotic neutral.
You can then check player stats just by referring to the value of the global variable:
Check opening the rusty door:
if strength is less than eight, say "You'll never force it open!" instead.
But if you wanted to track stats for NPCs in the game in the same way, that’s easy enough:
Temple is a room.
High Priestess Mxplutwxn is a woman in Temple. The player is a man in Temple.
A person has a number called strength. The strength of Mxplutwxn is 9.
The strength of the player is 10.
A person has a number called wisdom. The wisdom of Mxplutwxn is 18.
The wisdom of the player is 5.
A person has a number called intelligence.
The intelligence of a person is usually 12. [Easy enough to set defaults.]
A person has an alignment. [Assuming we repeat the previous definition.]
The alignment of a person is usually true neutral.
The alignment of Mxplutwxn is lawful evil.
The alignment of the player is chaotic good.
You can then refer to the individual attributes of each individual:
if the intelligence of the player is less than four: end the story saying "You're too dumb to survive!"
if the alignment of High Priestess Mxplutwxn is true neutral: [...]
.
Generating a playable website just involves adding this declaration to the source:
Release along with an interpreter.
That’s it.
Simple conversation with Eric Eve’s largest, most inclusive package:
Include Conversation Package by Eric Eve.
Last Chance Saloon is a room. The bar is a supporter in Last Chance Saloon.
The bartender is a woman in Last Chance Saloon. The empty bottle is a thing in Last
Chance Saloon.
Response of the bartender when asked-or-told about the player:
say "She snorts. 'Don't try to run your game on [italic type]me[roman type].'".
Response of the bartender when given-or-shown the bottle:
say "She rolls her eyes. 'We've been through this already once tonight. You're not getting another drink until you pay your tab down.'".
Response of the bartender when asked-or-told about "money":
say "'Right, that's what you'll need in order to pay down your tab and get another drink, Einstein.'".
It’s possible to create conversation trees, too, using the same package, that close off and open up conversational options, but I hesitate to sketch one out because they’re a little more involved. You can take a look at the extension’s documentation for samples, though, if you’d like.
Anyway, I hope that’s helpful! Good luck with your project.