[crossfire] Quest management system proposal
Nicolas Weeger (Laposte)
nicolas.weeger at laposte.net
Sun Aug 6 04:50:18 CDT 2006
> Looking at that, and looking at your example, it seems hardly really
> clear to follow.
After some thinking, having a Python script handle the dialog seems the best
way, actually :)
This way, the whole dialog is written into the Python script, including the
logic.
> I think that for the NPC state data, that should probably be stored in a
> force object that expires after some amount of time (like 1 minute
> real-time after last update). After all, other players may interact with
> that NPC, and state should reset for them.
I'd say each player has his/her own state, so they don't conflict.
> My personal inclination would be the quest not to be a script - ideally a
> core part of the server, lesser would be a plugin.
Well, there aren't that many quest-general things, actually.
Maybe utilities (like: do this for every player in the quest party) could be
written to help write quests scripts.
> I'd put using a python script near the bottom. Not that python is
> inherently bad, but I think for developer reasons. In theory, the entire
> crossfire server could be in python - that obviously won't happen. But
> given that the server is currently in C, it is quite reasonable to expect
> all developers to know C. But if there are bugs/improvements that need to
> be done to the script, but the developer doesn't know python, not sure
> where that really leaves things.
I'd say you underestimate developers :)
Scripting wouldn't require many functions in Python, just basic ones, and any
C developer would feel at home looking at the logic imo.
> As a note, the ability to give such rewards just in general could be nice
> not really related to quests. Drop an item, get some exp reward, etc.
This can already be done, via a Python script for instance. Unless I'm
mistaking what you mean?
So what I'd do is:
* remove existing quest system, which is a bastardized version
* write a Python "quests" command, with a few parameters (to get descriptions
and so on)
* write a few Python scripts to help write quest scripts and manage quests and
such
Then it's just a matter of writing Python scripts to handle quests :)
Nicolas
More information about the crossfire
mailing list