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 [email protected] http://mailman.metalforge.org/mailman/listinfo/crossfire

