[crossfire] Dialog mode

2010-01-05 Thread Nicolas Weeger
Hello.


I'd like to propose a (menu-driven) dialog mode for players.
Something like what you can find in various RPG games.

Description:
- started when player says something to a NPC, like now
- player is presented with text and options, and a free text zone (to not have 
all options visible/obvious)
- player can't really move (or moving exits the dialog mode)
- NPCs are marked as 'busy' and thus won't move while talked to
- separates more the 'hack' part and the 'role playing' part
- separates clearly the 'say' to trigger things / talk to other players, and 
the dialog with an NPC


What do you think of that? :)


Nicolas
-- 
http://nicolas.weeger.org [Mon p'tit coin du web]


signature.asc
Description: This is a digitally signed message part.
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


[crossfire] NPC respawning

2010-01-05 Thread Nicolas Weeger
Hello.

I'm wondering about NPC (not monsters, but real NPC the player can interact 
with) respawning when killed.

If for instance you kill the owner of a tavern, should she respawn?


I can see three options:
- keep the same way it is now, respawn at map reset
- make (some) NPCs unkillable
- generate a random NPC close, with random dialogs not too far from the 
original one's


I admit to prefer the last solution, as it makes the world more dynamic IMO.
Of course, then, you have to put all relevant dialogs in a script / plugin so 
they can be redispatched on other NPCs.


Thoughts? Opinions? :)


Nicolas
-- 
http://nicolas.weeger.org [Mon p'tit coin du web]


signature.asc
Description: This is a digitally signed message part.
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] NPC respawning

2010-01-05 Thread Rick Tanner
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 1/5/10 12:13 PM, Nicolas Weeger wrote:
 Hello.
 
 I'm wondering about NPC (not monsters, but real NPC the player can interact 
 with) respawning when killed.
 
 If for instance you kill the owner of a tavern, should she respawn?

So the tavern owner would never respawn .. ever?

 I can see three options:
 - keep the same way it is now, respawn at map reset
 - make (some) NPCs unkillable
 - generate a random NPC close, with random dialogs not too far from the 
 original one's

What about making the NPC un-attackable or immune to all attacks?

 I admit to prefer the last solution, as it makes the world more dynamic IMO.
 Of course, then, you have to put all relevant dialogs in a script / plugin so 
 they can be redispatched on other NPCs.

Going with you preferred option listed above.. what happens when that
NPC dies for some reason?  Another nearby NPC is created?

What happens if the entire tavern population is wiped out from a
misfired spell or marauding player?



-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.7 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iD8DBQFLQ4/2hHyvgBp+vH4RAl8PAKDvSaC1Im4aXrDNfZOGvxHJW+CsGQCgqBcC
MxUbVTUnm6fmd7wRV6IhtbA=
=Lv+l
-END PGP SIGNATURE-

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Dialog mode

2010-01-05 Thread Rick Tanner
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 1/5/10 12:17 PM, Nicolas Weeger wrote:
 Hello.
 
 
 I'd like to propose a (menu-driven) dialog mode for players.
 Something like what you can find in various RPG games.
 
 Description:
 - started when player says something to a NPC, like now

Would the dialog system (at least, initially) work like it does now?

Meaning, NPC response is based on key word(s) from the player character?



-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.7 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iD8DBQFLQ5jthHyvgBp+vH4RAlNiAJ9GxWjRZHZsyWpOZ99JCxczuTTSUwCgvNVN
il8DcYJLowtPBMEjyghiWik=
=MG3l
-END PGP SIGNATURE-

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] NPC respawning

2010-01-05 Thread Nicolas Weeger
 So the tavern owner would never respawn .. ever?

That's the subject of this thread :)

 What about making the NPC un-attackable or immune to all attacks?

= unkillable.


 Going with you preferred option listed above.. what happens when that
 NPC dies for some reason?  Another nearby NPC is created?

Yes, a NPC is created nearby (in the same building for a tavern, for 
instance), after some delay.


 What happens if the entire tavern population is wiped out from a
 misfired spell or marauding player?

Depends on the role this tavern plays, and the various NPCs.
If random NPCs, they'll respawn maybe later.
If special NPCs (dragon emissary?), then after some time there should be a 
similar one.

Of course it really depends on the context.


Nicolas
-- 
http://nicolas.weeger.org [Mon p'tit coin du web]


signature.asc
Description: This is a digitally signed message part.
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Dialog mode

2010-01-05 Thread Nicolas Weeger
 Would the dialog system (at least, initially) work like it does now?

 Meaning, NPC response is based on key word(s) from the player character?

Yes, probably keywords.
Though the player wouldn't use the 'say' command, but click on the selected 
reply in the dialog.
Game-wise the player will see eg 'you say azerty' while other players will 
see 'player says azerty to NPC'. Or the text could be changed ('you nod'), 
like what I started to do with the @question @reply system.

This could also add more options ('give an item', 'drop an item' [NPC says 
you 'can't enter library without letting bag outside'], and so on)


Nicolas
-- 
http://nicolas.weeger.org [Mon p'tit coin du web]


signature.asc
Description: This is a digitally signed message part.
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] NPC respawning

2010-01-05 Thread Mark Wedel

  Having the NPC's be unkillable is the easiest approach - all that is needed 
is 
set up of proper immunities, etc to do so.

  Having new ones spawn is reasonable, but I then start wondering what do we 
really get from that vs making them unkillable?  If the bar tender is killed 
and 
in a minute a new one shows up with all the same information, not sure what 
letting them kill gains us.  Sure, it may be more realistic, but having a new 
person show up isn't, so your trade one point of realism for another.  If 
anything, if people kept getting killed in a tavern, you'd think people would 
actually stay away from it.

  I'd think both of these cases would not really alter the case of maps 
resetting - if map resets for whatever reason, tavern would go back to default 
setup.

  One could even see the tavern closing down (people can not enter it), which 
would force a reset sooner.  Could be said that new workers need to be found, 
damage repaired, etc.

  I'm not really adverse to any of them - it just seems like writing respawn 
code could be a fair amount of work.  One thing to keep in mind is that a 
solution that can only be done in maps is best - I know that not everyone knows 
the scripting system, so I could imagine some folks wouldn't bother with the 
scripting work.

  From a maintenance point, if changing the conversation of an NPC means having 
to load up the map, see that it points to a script, go to that script, and then 
update it, that also becomes a bit more of a pain.

  I wonder if instead the NPC's could somehow be stored/associated with the 
map, 
and there is a script that goes and places them (during initial load an 
periodically during the life of the map).

  For example, on a special space (or maybe as a new map property) the 
different 
NPC's are stored.  Maybe even several different ones with similar messages, but 
the NPC's themselves could be different.  Lets say there are 50 such NPC's 
stored away.

  During initial load, based on some parameter, 20 of those NPC's are copied 
and 
placed onto the map.  The script that takes care of these periodically runs to 
make sure that there are always about 20 NPC's on the map.  If one dies, it 
goes 
and places one on the map again.  There would be code that makes sure the same 
NPC is not placed twice.

  One could even extend this so that NPC's come and go - maybe some NPC's 
wander 
away, and are replaced by other ones - also adds some flavor (the NPC that told 
you about the tower a day ago isn't around anymore, but may show up again down 
the road).

  What is also perhaps interesting is that since which NPCs are on the map, 
what 
information is present may also change.  For example, of those 20 NPC's chosen, 
maybe 2 of them have basically the same information about some tower.  But 
maybe 
the NPC with information about a dungeon is not about.

  Now I'm not sure if this approach is easier or harder.  A plus here is that 
all conversation is stored on the map, not in scripts - the script is just used 
for the placement (and maybe having NPC's wander about).  So a person without 
any scripting knowledge could add new NPC's and have them behave like the rest.


___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] Dialog mode

2010-01-05 Thread Mark Wedel
Nicolas Weeger wrote:
 Would the dialog system (at least, initially) work like it does now?

 Meaning, NPC response is based on key word(s) from the player character?
 
 Yes, probably keywords.
 Though the player wouldn't use the 'say' command, but click on the selected 
 reply in the dialog.
 Game-wise the player will see eg 'you say azerty' while other players will 
 see 'player says azerty to NPC'. Or the text could be changed ('you nod'), 
 like what I started to do with the @question @reply system.
 
 This could also add more options ('give an item', 'drop an item' [NPC says 
 you 'can't enter library without letting bag outside'], and so on)
 

  I like it.  I've never really liked the somewhat random approach right now of 
trying to figure out what keywords the NPC is looking for.

  Do you imagine do this by scripts, or extending the msg/endmsg logic?

  A complication for something like player giving items to NPC is that option 
can really only be available if the player has that item, but this starts 
needing some scripting logic to basically say 'only present this option to 
player if...'

  But a general approach could probably be done with something like:

@match hello
I know about all sorts of interesting monsters and dungeons
@reply monsters dungeons
@match dungeons


  That would cover a large amount of desired conversations - I'd think the 
give/take items would be a fairly small number and requiring scripts for those 
might be reasonable.  But I wonder if something @script tags could be added to 
allow for calling general purpose scripts.


___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire