On Mon, 25 Aug 1997, Andrey Fidrya wrote:
> When player kills mob first time, he gets full XP.
> When he kill same mob more and more, he gets less and less XP.
> If he killed same mob for over 100 times, he gets no XP at all.
> If he stops killing same mob for a while and killed 20-40 other mobs,
> he can kill first mob for full XP again.
> Anyone have any ideas about implementing that system?
> If you just keep an array with mobs and number_of_kills per each mob,
> playerbase will become ~10 kb larger per each player. :(
If you only keep an array (or linked list) of 20 or 40 (or whatever)
entries of vnum and # killed with each player, that won't be too bad.
Sort it by most recent mob killed (ie when a mob is killed, make the
first entry in the array be that mob.) And if the list is already full,
drop the oldest entry. It sounds like a linked list'd probably be the
way to go with this. Vnum is an int (4 bytes, generally) and kills can
be a byte (1 byte [duh!]) if you make it so it doesn't track kills above
100, so you're adding 5 bytes * 20 or 40 or whatever per player, which is
200 bytes worst case. That isn't too bad, actually.
Sounds interesting,
Ray
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST