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