I'm thinking the natural data model for the user-defined "stories" would be a finite state machine. At any given time, the player is in a certain state, and the author defines various "transitions" to go to other states. That way the whole thing can be visualized (by the author) as a graph, with nodes representing states, and edges representing transitions.
The transitions can be triggered by chat messages, killing a mob, eating a pie, targeting an object, etc.
Each state can have its own variables/behaviors, including an introductory text message that shows when you enter the state (the "quest text"), or a timer that starts when you enter a state, and goes to another state when it expires.
Internationalization is a pain, but not impossible. I usually swap out a different chat parsing function depending on the active language.
|