> on some muds I have seen you can add a '-' to the argument to make it more > exact. lets say want to look for a bronze plate mail, if you do a "cast > 'locate'bronze" you will probably get lots of hits on a variety of bronze > objects. instead you can do a "cast 'locate'bronze-mail" or even "cast > 'locate'bronze-mail-plate" to look more exactly for the object you want to > search for. > > since I want this to work on each and every command possible on my mud, > both for mobs and objects, I figured so far that I have to change the > isname() in handler.c, but I have no idea how to proceed next. can > someone out here help me out? -- /Damian/ I think that this is probaly a very simple procedure; tokenize the spell argument for(obj=list of all objs; obj;obj= next object) { found=1; for(i=0;i < # of tokens;i++) { if(!isname(obj_name(obj),token[i])) found=0; } if(found) { add to list } } However, what george said was true - using a hyphen as a field delimiter is a bad choice. What if you make an item named "ring-mail" or "great-axe". Why don't you just do this; After checks for mana/spell success/etc, but before the actual cast_spell(), strdup the argument of the spell to the character. You don't have to edit the pfile structure - just add it in one of the unsaved positions, like last_tell. That way, if you need to use it in your spell, you can. I use it for spells like locate object (so I can actually match on the word, instead of generating a target object), and a few other places. Don't forget to free the memory when you're done with it. PjD +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT