On Tue, 3 Dec 1996, Eduardo Gutierrez de Oliveira wrote: > On Tue, 3 Dec 1996, Alex wrote: > > Bored. Updates. Major. Lots. New. Dates. Can See What. Enjoy. > Very cool... Indeed..:) > BTW, the embalmer link is wrong, points to emblamer..:) > Maybe a spec_proc of an emblamer would be cool... "He did it!!" blaming > evryone for everything..:P Add the functions together in spec_procs.c (the get_people_room and the select_person_room are both kindof useful... you may want to add them to utils.c instead and add a prototype in utils.h so you can use them anywhere for whatever purpose). Er... please note that this was made while still in my mailer. Don't forget to assign this to a mob in spec_assign.c Er... after having typed it... I guess he's not much of a blamer compared to a complainer. Oh well... I guess I will change the name of the proc :P. - mendar /* start of the proc stuff... */ int get_people_room(int room) { struct char_data *person; int i=0; for(person=world[room].people ; person; person=person->next) { if(person) i++; } return i; } struct char_data *select_person_room(const int room) { struct char_data *person; int i; i=get_people_room(room); if(!i) return NULL; for(person=world[room].people; i; person=person->next) { i--; } return person; } SPECIAL(complainer) { struct char_data *vict1,*vict2,*self; int i; self=(struct char_data *)me; if(!AWAKE(self)) { if(cmd) { if(number(0,1)) { do_wake(self,0,0,0) } return (0); } else { if(number(1,5)==5) { do_wake(self,0,0,0) } return (1); } } if(CMD_IS("flee")) { act("$n tells you 'You wuss! haha...'", FALSE, self, ch, 0, TO_VICT); do_flee(ch,argument,cmd,0); switch(number(1,6) { case 1: act("$n says 'I bet $N just peed $S pants.'", FALSE, self, ch, 0, TO_ROOM); break; case 2: act("$n says 'I heard $N runs from $S own shadow too.'", FALSE, self, ch, 0, TO_ROOM); break; case 3; act("$n says 'I bet $N's afraid of the dark too.'", FALSE, self, ch, 0, TO_ROOM); break; default: break; } return (1); } if(CMD_IS("sleep")) { do_sleep(ch,argument,cmd,0); switch(number(1,6)) { case 1: do_say(self, "Ok everyone... Shhhhhh", 0, 0); break; case 2: do_say(self, "That's a good idea... I'm going to sleep too.", 0, 0); do_sleep(self,0,0,0); break; case 3: do_say(self, "Heh. What a sleepyhead.", 0, 0); break; default: break; } } if(cmd) return; if(FIGHTING(self) { switch(number(1,80) { case 1: do_say(self,"I think I'm losing...",0,0); break; case 2: do_say(self,"The world won't miss a loudmouth like me. Hah.",0,0); break; case 3: if(GET_HIT(self)<(GET_MAX_HIT(self)/3)) { do_say(self,"I'll live...",0,0); do_say(self,"My cuts are only flesh wounds.",0,0); } break; default: break; } return (1); } if(get_people_room(self->in_room)<=1) return (0); vict1=select_person_room(self->in_room); if(!AWAKE(vict1)) return (0); if(FIGHTING(vict1)) { if(number(0,1)) { vict1=FIGHTING(vict1); /* swap the person we're talking about */ /* makes it more interesting. */ } switch(number(1,80)) { case 1: act("$n says '$N started it!'", FALSE, self, vict1, 0, TO_NOTVICT); act("$n says 'I KNOW you started it!'", FALSE, self, vict1, 0, TO_VICT); break; case 2: act("$n says '$N's fighting technique is so lame...'", FALSE, self,vict1,0,TO_NOTVICT); act("$n says 'Your fighting technique is so lame...'", FALSE, self,vict1,0,TO_VICT); break; case 3: act("$n says 'Hehe. I think $N is going to die.'", FALSE, self,vict1,0,TO_NOTVICT); break; case 4: act("$n says 'Hehe. I hope $N loses. $E's such a jerk.'", FALSE, self,vict1,0,TO_NOTVICT); default: break; } return (1); } /* just a summary of how we can get to this point :P. (for those who might be lost already. */ /* execution gets here only if the mob assigned with this is not sleeping, not fighting, if a person hasn't fled or gone to sleep, or the person we've chosen isn't fighting and awake. */ switch(number(1,140)) { case 1: do_say(self,"I talk too much!",0,0); break; case 2: do_say(self,"I think I'm brainless.",0,0); break; case 3: do_say(self,"I think YOU'RE brainless.",0,0); break; case 4: do_say(self,"People are stupid.",0,0); break; case 5: do_say(self,"Who's to blame?",0,0); break; case 6: if(IS_NPC(vict1)&&MEMORY(vict1)) act("$n says 'I think $N is after someone.'",FALSE, self, vict1, 0, TO_ROOM); break; case 7: act("$n says '$N sleeps too much.'", FALSE, self, vict1, 0, TO_NOTVICT); break; case 8: act("$n says 'Run everyone!!! $N is going to kill you!'", FALSE, self, vict1, 0, TO_NOTVICT); break; case 9: act("$n says '$N eats the crumbs on the floor of the bakery.'", FALSE, self, vict1, 0, TO_NOTVICT); act("$n says 'Bleeech.'", FALSE, self, vict1, 0, TO_ROOM); break; case 10: act("$n says '$N did it. I'm sure...'", FALSE, self, vict1, 0, TO_NOTVICT); break; default: break; } return (1); } +-----------------------------------------------------------+ | 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