At 06:52 PM 5/26/98 +1000, you wrote:
>Ok, I need some help with the following...
Yes, you do...
>I'm trying to get objects to set the AFF bits
>after fooling around making changes I added
>another case in the parse_object function
>this all works fine and dandy... but what I
>want to know, is what I have to change in
>any of the structures... I see that
>obj_flag_data has a long, called bitvector,
You do not need to change any of the structures. You already said that the
obj_flag_data bitvector variable is there; that is all you need.
>so I wrote myself a routine that did the following:
>
>long find_aff(long affect)
>{
> long tmp;
> switch (affect) {
> case 0: tmp = AFF_BLIND; break;
> case 1: tmp = AFF_INVISIBLE; break;
> etc...
> default: tmp = AFF_UNUSED20; break;
> }
>
> return tmp;
>}
This code is useless. The bitvector variable is exactly that, a
'bitvector'. You can set multiple affects just like mob flags. If you
don't know what bitvectors are, RTFD.
>this is called in the case statement
>of parse_object using the following:
>
>obj_proto[i].obj_flags.bitvector = asciiflag_conv(f1);
You dont need to do that. All you need to do is read the variable and run
it through asciiflag_conv(), just like the other obj flags(RTFC).
try this:
obj_proto[i].obj_flags.bitvector = asciiflag_conv(f1);
>can someone please tell me what I'm doing wrong?
It always helps to _understand_ the code before you go messing with it. If
you understood the code, you would know to look at equip_char() in
handler.c(unequip_char() too), right around line 513
equip_char() line 513:
for (j = 0; j < MAX_OBJ_AFFECT; j++)
affect_modify(ch,
obj->affected[j].location,
obj->affected[j].modifier,
obj->obj_flags.bitvector, TRUE);
That will add the aff to the char...
>(BTW I also want to change the structure so I can
>have objects that do more than one affection, could
>I do this by changing bitvector to
>long bitvector[MAX_AFFECTIONS]
>and then modifying the affect code to loop until
>max_affections?)
Also if you understood bitvectors, you would know that this capability is
already there. How in the world do you give mobs multiple affects?
>I'm RTFCING like crazy, this one just has me
>stumped.
Looking for code in all the wrong places.....
*>Jon<*
P.S.
Did you take the time to look at the snippets page? I know for certain
there is a no brainer snippet that will _tell_ you how to do exactly what
you want....
+------------------------------------------------------------+
| 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