Whoa, just getting back from vaca George? ;) Well, here is my find_skill_num()
function. It will match cast 'm m' to magic missile. Woo Woo! Sorry about the
indentation, C&P screwed it up a little. I reverted my spell code to use:
{"armor", 30, 10, 2, POS_FIGHTING,
TAR_CHAR_ROOM, NON_VIOLENT, MAG_AFFECTS,
UU, 8,UU,10,UU,12,UU,UU,UU,15,15,UU,UU,UU,UU,UU,UU,UU,UU,
IS_SPELL,5},
because we like this format better, so you might need to change some things.
(the last int is casting_time and the IS_SPELL is for sorting)
--Angus
int find_skill_num(char *name)
{
int skindex = 0, ok;
char *temp, *temp2;
char *first=get_buffer(256);
char *first2=get_buffer(256);
if(*name=='!')
return -1;
for(skindex=1;skindex<MAX_SPELLS;skindex++)
{
if (is_abbrev(name, spells[spell_sort_info[skindex]].spell_name))
{
release_buffer(first2);
release_buffer(first);
return spell_sort_info[skindex];
}
ok = 1;
temp = any_one_arg(spells[spell_sort_info[skindex]].spell_name, first);
temp2 = any_one_arg(name, first2);
while (*first && *first2 && ok)
{
if (!is_abbrev(first2, first))
ok = 0;
temp = any_one_arg(temp, first);
temp2 = any_one_arg(temp2, first2);
}
if (ok && !*first2)
{
release_buffer(first2);
release_buffer(first);
return spell_sort_info[skindex];
}
}
release_buffer(first2);
release_buffer(first);
return -1;
}
______________________________ Reply Separator _________________________________
Subject: Re: Question about find_skill_num()
Author: INTERNET:CIRCLE@POST.QUEENSU.CA at CSERVE
Date: 9/21/98 11:38 PM
rve.com>
On Thu, 10 Sep 1998, Angus Mezick wrote:
>Just wondering why we don't use spells[spell_sort_info[i]] instead of spells[i]
>for searching for spell numbers. Just replace all instances of skindex with
I'd assume because all the !UNUSED! end up at the top of the sorted list.
>spell_sort_info[skindex]. We recently ran into a problem with a skill named
>shock following the shocking grasp spell and the player not being able to
>practice the skill. Anyone see any problems with this? esp since we spend all
>that time bubble sorting all the spells/skills during boot.
qsort() now. Shouldn't really be a problem, but beware of the !RESERVED!
and !UNUSED! spells popping up first. They're filtered out of the
list_skills() function by this line:
if (GET_LEVEL(ch) >= spell_info[i].min_level[(int) GET_CLASS(ch)]) {
+------------------------------------------------------------+
| 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/15/00 PST