On Fri, 25 Oct 1996, Cyber Reaper wrote: > looking for: > > SKILLS: > > HASTE Standard MAG_AFFECTS to add an AFF_HASTE to the character (see something like armor or bless for details). Addition to fight.c, perform_violence() to add a secondary hit() for every time hit() is called (if you've added more for dual wielding or multiple attacks, etc) - just add another call if the char has AFF_HASTE on to every call you make to a hitting routine - could also add doubles to the violent skills like kick, bash, backstab... For detractions... could use age, for caster and reciever (classic) or (I use) making them get hungry/thirsty 4* as fast (limits.c, point_update()). I would post code, but as you might gather from the above, its spinkled all around the mud in little tid-bits... > SLOW Once you've got haste conquered, you've got this as well... > CIRCLE Erm, backstab without the FIGHTING() check? > PUSH (I have seenthis on... push the person into another room. good > for pushing partners into posable death traps =:} ) ACMD(do_push) { struct char_data *vict; static char arg2[MAX_INPUT_LENGTH]; int mydir; half_chop(argument, arg, arg2); if (!(vict = get_char_room_vis(ch, arg))) { send_to_char("Push who?\r\n", ch); return; } if (vict == ch) { send_to_char("Just walk there, idiot.\r\n", ch); return; } if ((mydir = search_block(arg2, dirs, FALSE)) >= 0) { if (CAN_GO(vict, mydir)) if (number(1, 100) + GET_DEX(ch) > number(1, 100) + GET_DEX(vict)) { act("You throw your weight against $N and push $M out of the room.", FALSE, ch, 0, vict, TO_CHAR); act("$n throws $s weight against $N and pushes $M out of the room.", FALSE, ch, 0, vict, TO_NOTVICT); act("$n throws $s weight against you and pushes you out of the room.", FALSE, ch, 0, vict, TO_VICT); perform_move(vict, mydir, 1); return; } else { act("$N skillfully sidesteps and you go flying to the ground!", FALSE, ch, 0, vict, TO_CHAR); act("$n tries to push $N, but goes flying to the ground instead.", FALSE, ch, 0, vict, TO_ROOM); act("You skillfully sidestep $n's push, and $e goes tumbling to the ground!", FALSE, ch, 0, vict, TO_VICT); hit(vict, ch, TYPE_UNDEFINED); } } send_to_char("Push them which way?\r\n", ch); return; } /* End push */ Should be easilly modifiable to suit your needs... > > ALSO looking for: > > How to make it so when a PLAYER hands a MOB a item with the right > VNUM the mob will respond accordingle... #define MY_TARGET_OBJ 666 /* whatever... */ if (CMD_IS("give")) { if (obj = get_obj_in_list_vis(ch, arg, ch->carrying)) if (GET_OBJ_VNUM(obj) == MY_TARGET_OBJ) /* Check a second arg to make sure it was meant to be given to the mob and not someone else, and add whatever you want 'im to do... */ > someone to come and get the stupid mobprog to work in my mud and add > a mobprog editor to medit (oassis). (I am in no way able to do this > myself.) Hate mobprogs.. use specials... cleaner and quicker... > someone explaining how to get the OBJ TIMERS working (yes alix I have > the snippit =:} ) but I mean geting them working using the TIMER in > oasis. Erm, #define PULSE_OBJECT to something, and call a object_activity() just like mobile_activity() is called... can be used for a lot more than timers. Heres a stripped down version of my object_activity() ... void object_activity(void) { struct obj_data *obj, *tobj, *next_thing; int room; for (obj = object_list; obj; obj = obj->next) { /* Timers... */ if (GET_OBJ_TIMER(obj) > 0) GET_OBJ_TIMER(obj) --; /* Bio-Degradables */ if (IS_OBJ_STAT(obj, ITEM_BIO) && (!GET_OBJ_TIMER(obj))) { act("$p decays into gritty debris and blows away.", 0, 0, obj, 0, TO_ROOM); extract_obj(obj); } /* A little ambiance? heh... */ if (GET_OBJ_TYPE(obj) == ITEM_LIGHT && obj->worn_by && number(0, 1000) > 995 ) { sprintf(buf, "%s's %s flickers briefly.\r\n", GET_SHORT(obj->worn_by), obj->short_description); send_to_room(buf, obj->worn_by->in_room); } /* Sound affects ... */ if (IS_OBJ_STAT(obj, ITEM_SOUND) && obj->worn_by && number(0, 1000) > 975) { sprintf(buf, "%s", obj->action_description); send_to_room(buf, obj->worn_by->in_room); } /* Objects falling from air rooms etc... */ if (obj->in_room != NOWHERE && ( world[obj->in_room].sector_type == SECT_AIR || world[obj->in_room].sector_type == SECT_CLIMB || world[obj->in_room].sector_type == SECT_SHEER) && OBJ_EXIT(obj, DOWN) && OBJ_CAN_GO(obj, DOWN)) { sprintf(buf, "%s plummets down.\r\n", obj->short_description); send_to_room(buf, obj->in_room); room = world[obj->in_room].dir_option[DOWN]->to_room; obj_from_room(obj); obj_to_room(obj, room); sprintf(buf, "%s falls in from above.\r\n", obj->short_description); send_to_room(buf, obj->in_room); } } } -Sky +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST