[crossfire] Dialog mode
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
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
-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
-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
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
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
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
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