[CF-Devel] quest exp rewards (RE: monsters, ...)

crossfire-devel-admin at archives.real-time.com crossfire-devel-admin at archives.real-time.com
Fri May 23 23:43:20 CDT 2003


Various notes:

Specifying a skill to award exp is completely reasonable, and easy enough to do. 
  In the new skill system, you can have exp in a skill and still not be able to 
use it (this sort of has to be the case, because you have skills like praying - 
you may need a skill tool, or you may know it intrinsicly, but either way, the 
pray skill object has to hold the exp).

  It would be odd to have 5000 exp in a skill and still not be able to know it. 
  but it seems completely reasonable to me that if the exp reward is noteworthy 
that it would teach you the skill instead of the exp reward if you don't know 
it.  This may not be appropriate for low level (<10?) quests, but at some point, 
learning a skill is more about the luck of finding the appropriate skill scroll 
in the shops and not about resources (money).

The issue of players camping out keeps coming up, and I keep repeating the same 
thing - look at the RESET_LOCATION_TIME in include/config.h.  Setting that means 
you can't camp out - you'll get returned to your last savebed location.  The 
only downside to turning it on is that players get a free word of recall.  But 
if set to something reasonable (1800 (30 minutes)), probably not a really big 
deal - losing half an hour of play time to get that word of recall is probably a 
reasonable tradeoff.

The only other issue with exp reward object is how to handle a party of 
adventurers - I guess that would be easy - split the reward with everyone in the 
party.  If a player leaves the party right before he steps on the space, the 
other players are screwed, OTOH, they are not likely to party with him again. 
But if people just work together and don't actually use the party code, I'm not 
sure how to work it out.

  This could be one reason to add a force object recording player has got the 
reward - then, it could be usuable many times, but if the player has gotten the 
reward, he won't get it again (until the force expires or whatever).  But it 
means everyone he is playing with can also get the reward.

Tracking who has visited the object doesn't make a lot of sense to me.  If 2 
weeks have passed and for whatever reason, people haven't visited that exp 
object, should I get screwed out of that exp?  And at least with force objects, 
we could perhaps have a special 'quest' tag or the like and thus have a command 
which shows which quests you've done and when they expire, eg, something like:

quest name		expires at
return the scroll to
grok			May 28, 23:18
clear tower of foo bar	May 26, 18:54

  and whatever - can use the 'msg' field of the force object to hold the quest 
name.  Thus, a player logs in and says 'ahh - I can re-do the forge sword of 
kram quest, as its not listed'.  The only question would be should the lack of 
repeatability of quests be real (earth) time based, or game time (pticks) based?

As far as plugins go, to me, it makes the most sense to have basic functionality 
within the server code itself, and use plugins to expand the functionality of 
the object.

  In this case, the object actually isn't that complicated - has walk_on/fly_on 
set, in the 'skill' field contains the name of the skill to add the exp to, and 
the exp field contains how much exp to reward.  Some other flag can have 
something like 'player can't use this if force object is in inventory, and we 
add one if player doesn't have force object'.

  Now the plugin can expand that - do other things, do other checks (if, for 
example, the quest is to clear an area, then perhaps the plugin would go look 
and make sure there aren't any monsters in the area).

  To me, we shouldn't expect most map makers to write plugin scripts.  Rather, 
we should provide the basic functionality in objects in the came, which the 
editor make easy to modify, and which are readily available.  If the map maker 
has the skill and want to make plugin scripts, great.

  But as I've said before, the code has to be someplace - whether it is C code 
in the server, or python code in the plugin.  IMO, basic functionality should be 
in the C code.

  I don't mean to downplay the usefulness of the plugin code - there are lots of 
things where you want to do some special processing, but it is used in only a 
few places, and thus doesn't make sense to do it as C code - the plugin is ideal 
for that.  But the python code shouldn't replace the basic operations of the game.

The other fact of the matter is that I'm sure the C code is _a lot_ faster than 
the python code.  This isn't a big deal right now, and probably isn't a big deal 
for most scripts, but if using scripts for common objects became to commonplace, 
we'd then probably start looking at performance at that point and start 
implementing more of it in C anyways.

I also don't think the basis of 'using plugins would be hard, thus we don't have 
to worry about mapmakers abusing it' is quite the right approach.  If it is too 
hard, no one would use it at all, and we'd have the same type of maps we have 
right now.  IMO, keeping good maps is more an issue of players/other developers 
reviewing the maps, saying they are good/map, making changes, and whatnot.  I 
have a feeling a good number of 'bad' maps are not as much because the map maker 
didn't know what they were doing - they almost certainly did when they put that 
mega weapon there or whatever - they just thought it'd be cool or whatever else. 
  If plugins are used, the same thing could happen, and now you also have to 
start reviewing the plugins that are submitted (what exactly is this plugin 
doing?  Does it make sense, is it abusive, etc).






_______________________________________________
crossfire-devel mailing list
     
     crossfire-devel at lists.real-time.com
     
     
     https://mailman.real-time.com/mailman/listinfo/crossfire-devel
     
     
    


More information about the crossfire mailing list