Re: Skylar's <learn()>

From: Skylar (skylar@ifconfig.intserv.com)
Date: 07/12/96


On Wed, 10 Jul 1996, Brian Williams - Nashak wrote:

> if that was what I think it is.. like how Sojourn has the little 
> "Ye feel your skill in <skill> improving" thing..  and that like did a 
> GET_SKILL(ch, SKILL_DODGE) = (GET_SKILL(ch, SKILL_DODGE) + .1)
> or something.. =) if so.. could you please post the actual void learn() 
> command? I sure would enjoy it.. :P if not.. anyone have any hints on how 
> to do this? and make it so only like.. every 20-30 times you dodged it'd 
> actually say "Ye feel yer blah blah".. but it went up like a tenth of a 
> point every time you dodged?

The actual code for this issnt all mine to post, but here's the basic 
theory behind the learning system we use on exile...

Characters get a certain number of "slots" for skills they can learn at 
one time, depending on WIS and INT.  The slots are just a linked list
of structures containing the skill number and a timestamp of when it was
last learned.  When learn() is called, it checks to see if the skill in
question is slotted (has been learned recently), if it is, it checks the 
timer on it to see if the char is able to learn this skill again yet.  If  
the skill is not slotted, it checks for open slots, and if there is one,
the char learns, and the skill is entered in the empty slot.  If the timer
on the skill is not up, or the char has no slots to learn new skills, 
then they dont learn at all (until one of the timers is up).

This is of course, all internal, from the character's perspective, all 
thats going on is that if they fight a lot, or cast a lot, or hunt a lot,
they get better at it, over time.


The timers I think are pretty important, it keeps people from sitting 
around all day typing stuff like #5000 sneak;#5000 hide and crap like 
that to boost themselves up to max in a short period of time...  also, 
it makes sense sort of... when you learn something new, it takes a while 
for it to sink in :)



-Sky



This archive was generated by hypermail 2b30 : 12/07/00 PST