On Tue, 12 May 1998, Quinn ShadowStalker wrote: ->I was wondering how I would implement level tags (level restricitions) on ->equipment. <grumble> Let's see, this would qualify as the millionth time someone has went through this _very_ basic thing on the list. Add a variable to obj_flag_data and obj_file_elem called "int level;" This will be used for the minimum level of the object. Add a GET_OBJ_LEVEL macro to utils.h, #define GET_OBJ_LEVEL(obj) ((obj)->obj_flags.level) In db.c go to parse_object() and find the line, (retval = sscanf(line, " %d %s %s", t, f1, f2)) != 3) { and add, (retval = sscanf(line, " %d %s %s %d", t, f1, f2, t+1)) < 3) { and then after the "obj_proto[i].obj_flags.wear_flags = asciiflag_conv(f2);" add, obj_proto[i].obj_flags.level = (retvall > 3 ? t[1] : 0); Then add the GET_LEVEL checks to wherever you want to restrict using the object. Say, you want them to not be able to equip the object. Go to equip_char() and then where you see "invalid_class(ch, obj)" add, "|| GET_LEVEL(ch) < GET_OBJ_LEVEL(obj)". I'll spare everyone the talk about why I don't like level restrictions like this on objects -- especially on non-weapons. -dak +------------------------------------------------------------+ | 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