From df3c3d539501a067180cea737535ff9c658a7524 Mon Sep 17 00:00:00 2001 From: kinther Date: Thu, 25 Sep 2025 08:50:33 -0700 Subject: [PATCH] Fix some syslog startup messages --- lib/world/mob/30.mob | 12 - lib/world/obj/30.obj | 10 +- src/castle.c | 812 ------------------------------------------- src/config.c | 8 +- src/spec_assign.c | 28 -- 5 files changed, 9 insertions(+), 861 deletions(-) delete mode 100644 src/castle.c diff --git a/lib/world/mob/30.mob b/lib/world/mob/30.mob index f03aa00..58e751b 100644 --- a/lib/world/mob/30.mob +++ b/lib/world/mob/30.mob @@ -170,7 +170,6 @@ hard times and need a little boost. 300 90000 8 8 2 E -T 3016 #3013 newbie tour guide~ the newbie tour guide~ @@ -259,7 +258,6 @@ well as defensive spells make him a deadly opponent. 330 108900 8 8 1 E -T 3000 #3025 knight templar guildguard~ the knight templar~ @@ -275,7 +273,6 @@ opponent. 330 108900 8 8 1 E -T 3001 #3026 assassin guildguard~ the assassin~ @@ -291,7 +288,6 @@ to use them combined with his extraordinary stealth makes him a deadly opponent. 330 108900 8 8 1 E -T 3002 #3027 knight guildguard~ the knight~ @@ -306,7 +302,6 @@ skill combined with his experience in warfare makes him a deadly opponent. 330 108900 8 8 1 E -T 3003 #3040 bartender~ the bartender~ @@ -408,7 +403,6 @@ A Peacekeeper is standing here, ready to jump in at the first sign of trouble. 8 8 1 BareHandAttack: 10 E -T 3009 #3060 cityguard guard~ the cityguard~ @@ -421,7 +415,6 @@ A cityguard stands here. 100 10000 8 8 1 E -T 3009 #3061 janitor~ the janitor~ @@ -434,7 +427,6 @@ A janitor is walking around, cleaning up. 10 100 8 8 1 E -T 3011 #3062 fido dog~ the beastly fido~ @@ -449,7 +441,6 @@ hanging around his teeth. 8 8 1 BareHandAttack: 4 E -T 3010 #3063 mercenary~ the mercenary~ @@ -499,7 +490,6 @@ An odif yltsaeb is here, walking backwards. 8 8 1 BareHandAttack: 4 E -T 3010 #3067 cityguard guard~ the cityguard~ @@ -512,7 +502,6 @@ A cityguard is here, guarding the gate. 100 10000 8 8 1 E -T 3009 #3068 green gelatinous blob oozing~ the green gelatinous blob~ @@ -526,7 +515,6 @@ An oozing green gelatinous blob is here, sucking in bits of debris. 8 8 0 BareHandAttack: 6 E -T 3011 #3089 petshops shop boy~ the Pet Shop Boy~ diff --git a/lib/world/obj/30.obj b/lib/world/obj/30.obj index 97c225b..aacfa18 100644 --- a/lib/world/obj/30.obj +++ b/lib/world/obj/30.obj @@ -391,7 +391,7 @@ a yellow potion of see invisible~ A small yellow potion has carelessly been left here.~ ~ 10 g 0 0 0 ao 0 0 0 0 0 0 0 -12 19 -1 -1 +1 19 -1 -1 1 400 10 0 0 E potion yellow~ @@ -403,7 +403,7 @@ a scroll of recall~ A scroll has carelessly been left here.~ ~ 2 g 0 0 0 ao 0 0 0 0 0 0 0 -12 42 -1 -1 +1 42 -1 -1 4 200 10 0 0 E scroll recall~ @@ -415,7 +415,7 @@ a gray wand of invisibility~ A gray wand has carelessly been left here.~ ~ 3 g 0 0 0 ao 0 0 0 0 0 0 0 -12 2 2 29 +1 2 2 29 2 400 10 0 0 E wand gray~ @@ -431,7 +431,7 @@ a gnarled staff~ A gnarled staff has carelessly been left here.~ ~ 4 g 0 0 0 ao 0 0 0 0 0 0 0 -12 1 1 38 +1 1 1 38 17 700 50 0 0 E staff gnarled~ @@ -452,7 +452,7 @@ a metal staff~ A metal staff has carelessly been left here.~ ~ 4 g 0 0 0 ao 0 0 0 0 0 0 0 -10 8 8 15 +1 8 8 15 7 850 30 0 0 E staff metal~ diff --git a/src/castle.c b/src/castle.c deleted file mode 100644 index df30806..0000000 --- a/src/castle.c +++ /dev/null @@ -1,812 +0,0 @@ -/************************************************************************** -* File: castle.c Part of tbaMUD * -* Usage: Special procedures for King's Castle area. * -* * -* All rights reserved. See license for complete information. * -* * -* Special procedures for Kings Castle by Pjotr. Coded by Sapowox. * -* CircleMUD is based on DikuMUD, Copyright (C) 1990, 1991. * -**************************************************************************/ - -#include "conf.h" -#include "sysdep.h" -#include "structs.h" -#include "utils.h" -#include "comm.h" -#include "interpreter.h" -#include "handler.h" -#include "db.h" -#include "spells.h" -#include "act.h" -#include "spec_procs.h" /**< castle.c is part of the spec_procs module */ -#include "fight.h" - -/* IMPORTANT! The below defined number is the zone number of the Kings Castle. - * Change it to apply to your chosen zone number. The default zone number - * is 80. */ - -#define Z_KINGS_C 150 - -/* local, file scope restricted functions */ -static mob_vnum castle_virtual(mob_vnum offset); -static room_rnum castle_real_room(room_vnum roomoffset); -static struct char_data *find_npc_by_name(struct char_data *chAtChar, const char *pszName, int iLen); -static int block_way(struct char_data *ch, int cmd, char *arg, room_vnum iIn_room, int iProhibited_direction); -static int member_of_staff(struct char_data *chChar); -static int member_of_royal_guard(struct char_data *chChar); -static struct char_data *find_guard(struct char_data *chAtChar); -static struct char_data *get_victim(struct char_data *chAtChar); -static int banzaii(struct char_data *ch); -static int do_npc_rescue(struct char_data *ch_hero, struct char_data *ch_victim); -static int is_trash(struct obj_data *i); -static void fry_victim(struct char_data *ch); -static int castle_cleaner(struct char_data *ch, int cmd, int gripe); -static int castle_twin_proc(struct char_data *ch, int cmd, char *arg, int ctlnum, const char *twinname); -static void castle_mob_spec(mob_vnum mobnum, SPECIAL(*specproc)); -/* Special procedures for Kings Castle by Pjotr. Coded by Sapowox. */ -SPECIAL(CastleGuard); -SPECIAL(James); -SPECIAL(cleaning); -SPECIAL(DicknDavid); -SPECIAL(tim); -SPECIAL(tom); -SPECIAL(king_welmar); -SPECIAL(training_master); -SPECIAL(peter); -SPECIAL(jerry); - - - - -/* Assign castle special procedures. NOTE: The mobile number isn't fully - * specified. It's only an offset from the zone's base. */ -static void castle_mob_spec(mob_vnum mobnum, SPECIAL(*specproc)) -{ - mob_vnum vmv = castle_virtual(mobnum); - mob_rnum rmr = NOBODY; - - if (vmv != NOBODY) - rmr = real_mobile(vmv); - - if (rmr == NOBODY) { - if (!mini_mud) - log("SYSERR: assign_kings_castle(): can't find mob #%d.", vmv); - /* SYSERR_DESC: When the castle_mob_spec() function is given a mobnum - * that does not correspond to a mod loaded (when not in minimud mode), - * this error will result. */ - } else - mob_index[rmr].func = specproc; -} - -static mob_vnum castle_virtual(mob_vnum offset) -{ - zone_rnum zon; - - if ((zon = real_zone(Z_KINGS_C)) == NOWHERE) - return NOBODY; - - return zone_table[zon].bot + offset; -} - -static room_rnum castle_real_room(room_vnum roomoffset) -{ - zone_rnum zon; - - if ((zon = real_zone(Z_KINGS_C)) == NOWHERE) - return NOWHERE; - - return real_room(zone_table[zon].bot + roomoffset); -} - -/* Routine: assign_kings_castle. Used to assign function pointers to all mobiles - * in the Kings Castle. Called from spec_assign.c. */ -void assign_kings_castle(void) -{ - castle_mob_spec(0, CastleGuard); /* Gwydion */ - castle_mob_spec(1, king_welmar); /* Our dear friend, the King */ - castle_mob_spec(3, CastleGuard); /* Jim */ - castle_mob_spec(4, CastleGuard); /* Brian */ - castle_mob_spec(5, CastleGuard); /* Mick */ - castle_mob_spec(6, CastleGuard); /* Matt */ - castle_mob_spec(7, CastleGuard); /* Jochem */ - castle_mob_spec(8, CastleGuard); /* Anne */ - castle_mob_spec(9, CastleGuard); /* Andrew */ - castle_mob_spec(10, CastleGuard); /* Bertram */ - castle_mob_spec(11, CastleGuard); /* Jeanette */ - castle_mob_spec(12, peter); /* Peter */ - castle_mob_spec(13, training_master); /* The training master */ - castle_mob_spec(16, James); /* James the Butler */ - castle_mob_spec(17, cleaning); /* Ze Cleaning Fomen */ - castle_mob_spec(20, tim); /* Tim, Tom's twin */ - castle_mob_spec(21, tom); /* Tom, Tim's twin */ - castle_mob_spec(24, DicknDavid); /* Dick, guard of the Treasury */ - castle_mob_spec(25, DicknDavid); /* David, Dicks brother */ - castle_mob_spec(26, jerry); /* Jerry, the Gambler */ - castle_mob_spec(27, CastleGuard); /* Michael */ - castle_mob_spec(28, CastleGuard); /* Hans */ - castle_mob_spec(29, CastleGuard); /* Boris */ -} - -/* Routine: member_of_staff. Used to see if a character is a member of the - * castle staff. Used mainly by BANZAI:ng NPC:s. */ -static int member_of_staff(struct char_data *chChar) -{ - int ch_num; - - if (!IS_NPC(chChar)) - return (FALSE); - - ch_num = GET_MOB_VNUM(chChar); - - if (ch_num == castle_virtual(1)) - return (TRUE); - - if (ch_num > castle_virtual(2) && ch_num < castle_virtual(15)) - return (TRUE); - - if (ch_num > castle_virtual(15) && ch_num < castle_virtual(18)) - return (TRUE); - - if (ch_num > castle_virtual(18) && ch_num < castle_virtual(30)) - return (TRUE); - - return (FALSE); -} - -/* Function: member_of_royal_guard. Returns TRUE if the character is a guard on - * duty, otherwise FALSE. Used by Peter the captain of the royal guard. */ -static int member_of_royal_guard(struct char_data *chChar) -{ - int ch_num; - - if (!chChar || !IS_NPC(chChar)) - return (FALSE); - - ch_num = GET_MOB_VNUM(chChar); - - if (ch_num == castle_virtual(3) || ch_num == castle_virtual(6)) - return (TRUE); - - if (ch_num > castle_virtual(7) && ch_num < castle_virtual(12)) - return (TRUE); - - if (ch_num > castle_virtual(23) && ch_num < castle_virtual(26)) - return (TRUE); - - return (FALSE); -} - -/* Function: find_npc_by_name. Returns a pointer to an npc by the given name. - * Used by Tim and Tom. */ -static struct char_data *find_npc_by_name(struct char_data *chAtChar, - const char *pszName, int iLen) -{ - struct char_data *ch; - - for (ch = world[IN_ROOM(chAtChar)].people; ch; ch = ch->next_in_room) - if (IS_NPC(ch) && !strncmp(pszName, ch->player.short_descr, iLen)) - return (ch); - - return (NULL); -} - -/* Function: find_guard. Returns the pointer to a guard on duty. Used by Peter - * the Captain of the Royal Guard */ -static struct char_data *find_guard(struct char_data *chAtChar) -{ - struct char_data *ch; - - for (ch = world[IN_ROOM(chAtChar)].people; ch; ch = ch->next_in_room) - if (!FIGHTING(ch) && member_of_royal_guard(ch)) - return (ch); - - return (NULL); -} - -/* Function: get_victim. Returns a pointer to a randomly chosen character in - * the same room, fighting someone in the castle staff. Used by BANZAII-ing - * characters and King Welmar... */ -static struct char_data *get_victim(struct char_data *chAtChar) -{ - struct char_data *ch; - int iNum_bad_guys = 0, iVictim; - - for (ch = world[IN_ROOM(chAtChar)].people; ch; ch = ch->next_in_room) - if (FIGHTING(ch) && member_of_staff(FIGHTING(ch))) - iNum_bad_guys++; - - if (!iNum_bad_guys) - return (NULL); - - iVictim = rand_number(0, iNum_bad_guys); /* How nice, we give them a chance */ - if (!iVictim) - return (NULL); - - iNum_bad_guys = 0; - - for (ch = world[IN_ROOM(chAtChar)].people; ch; ch = ch->next_in_room) { - if (FIGHTING(ch) == NULL) - continue; - - if (!member_of_staff(FIGHTING(ch))) - continue; - - if (++iNum_bad_guys != iVictim) - continue; - - return (ch); - } - - return (NULL); -} - -/* Banzaii. Makes a character banzaii on attackers of the castle staff. Used - * by Guards, Tim, Tom, Dick, David, Peter, Master, and the King. */ -static int banzaii(struct char_data *ch) -{ - struct char_data *chOpponent; - - if (!AWAKE(ch) || GET_POS(ch) == POS_FIGHTING || !(chOpponent = get_victim(ch))) - return (FALSE); - - act("$n roars: 'Protect the Kingdom of Great King Welmar! BANZAIIII!!!'", - FALSE, ch, 0, 0, TO_ROOM); - hit(ch, chOpponent, TYPE_UNDEFINED); - return (TRUE); -} - -/* Do_npc_rescue. Makes ch_hero rescue ch_victim. Used by Tim and Tom. */ -static int do_npc_rescue(struct char_data *ch_hero, struct char_data *ch_victim) -{ - struct char_data *ch_bad_guy; - - for (ch_bad_guy = world[IN_ROOM(ch_hero)].people; - ch_bad_guy && (FIGHTING(ch_bad_guy) != ch_victim); - ch_bad_guy = ch_bad_guy->next_in_room); - - /* NO WAY I'll rescue the one I'm fighting! */ - if (!ch_bad_guy || ch_bad_guy == ch_hero) - return (FALSE); - - act("You bravely rescue $N.\r\n", FALSE, ch_hero, 0, ch_victim, TO_CHAR); - act("You are rescued by $N, your loyal friend!\r\n", - FALSE, ch_victim, 0, ch_hero, TO_CHAR); - act("$n heroically rescues $N.", FALSE, ch_hero, 0, ch_victim, TO_NOTVICT); - - if (FIGHTING(ch_bad_guy)) - stop_fighting(ch_bad_guy); - if (FIGHTING(ch_hero)) - stop_fighting(ch_hero); - - set_fighting(ch_hero, ch_bad_guy); - set_fighting(ch_bad_guy, ch_hero); - return (TRUE); -} - -/* Procedure to block a person trying to enter a room. Used by Tim/Tom at Kings - * bedroom and Dick/David at treasury. */ -static int block_way(struct char_data *ch, int cmd, char *arg, room_vnum iIn_room, - int iProhibited_direction) -{ - if (cmd != ++iProhibited_direction) - return (FALSE); - - if (ch->player.short_descr && !strncmp(ch->player.short_descr, "King Welmar", 11)) - return (FALSE); - - if (IN_ROOM(ch) != real_room(iIn_room)) - return (FALSE); - - if (!member_of_staff(ch)) - act("The guard roars at $n and pushes $m back.", FALSE, ch, 0, 0, TO_ROOM); - - send_to_char(ch, "The guard roars: 'Entrance is Prohibited!', and pushes you back.\r\n"); - return (TRUE); -} - -/* Routine to check if an object is trash. Used by James the Butler and the - * Cleaning Lady. */ -static int is_trash(struct obj_data *i) -{ - if (!OBJWEAR_FLAGGED(i, ITEM_WEAR_TAKE)) - return (FALSE); - - if (GET_OBJ_TYPE(i) == ITEM_DRINKCON || GET_OBJ_COST(i) <= 10) - return (TRUE); - - return (FALSE); -} - -/* Fry_victim. Finds a suitabe victim, and cast some _NASTY_ spell on him. Used - * by King Welmar. */ -static void fry_victim(struct char_data *ch) -{ - struct char_data *tch; - - if (ch->points.mana < 10) - return; - - /* Find someone suitable to fry ! */ - if (!(tch = get_victim(ch))) - return; - - switch (rand_number(0, 8)) { - case 1: - case 2: - case 3: - send_to_char(ch, "You raise your hand in a dramatical gesture.\r\n"); - act("$n raises $s hand in a dramatical gesture.", 1, ch, 0, 0, TO_ROOM); - cast_spell(ch, tch, 0, SPELL_COLOR_SPRAY); - break; - case 4: - case 5: - send_to_char(ch, "You concentrate and mumble to yourself.\r\n"); - act("$n concentrates, and mumbles to $mself.", 1, ch, 0, 0, TO_ROOM); - cast_spell(ch, tch, 0, SPELL_HARM); - break; - case 6: - case 7: - act("You look deeply into the eyes of $N.", 1, ch, 0, tch, TO_CHAR); - act("$n looks deeply into the eyes of $N.", 1, ch, 0, tch, TO_NOTVICT); - act("You see an ill-boding flame in the eye of $n.", 1, ch, 0, tch, TO_VICT); - cast_spell(ch, tch, 0, SPELL_FIREBALL); - break; - default: - if (!rand_number(0, 1)) - cast_spell(ch, ch, 0, SPELL_HEAL); - break; - } - - ch->points.mana -= 10; - - return; -} - -/* King_welmar. Control the actions and movements of the King. */ -SPECIAL(king_welmar) -{ - char actbuf[MAX_INPUT_LENGTH]; - - const char *monolog[] = { - "$n proclaims 'Primus in regnis Geticis coronam'.", - "$n proclaims 'regiam gessi, subiique regis'.", - "$n proclaims 'munus et mores colui sereno'.", - "$n proclaims 'principe dignos'." - }; - - static const char bedroom_path[] = "s33004o1c1S."; - static const char throne_path[] = "W3o3cG52211rg."; - static const char monolog_path[] = "ABCDPPPP."; - - static const char *path; - static int path_index; - static bool move = FALSE; - - if (!move) { - if (time_info.hours == 8 && IN_ROOM(ch) == castle_real_room(51)) { - move = TRUE; - path = throne_path; - path_index = 0; - } else if (time_info.hours == 21 && IN_ROOM(ch) == castle_real_room(17)) { - move = TRUE; - path = bedroom_path; - path_index = 0; - } else if (time_info.hours == 12 && IN_ROOM(ch) == castle_real_room(17)) { - move = TRUE; - path = monolog_path; - path_index = 0; - } - } - if (cmd || (GET_POS(ch) < POS_SLEEPING) || - (GET_POS(ch) == POS_SLEEPING && !move)) - return (FALSE); - - if (GET_POS(ch) == POS_FIGHTING) { - fry_victim(ch); - return (FALSE); - } else if (banzaii(ch)) - return (FALSE); - - if (!move) - return (FALSE); - - switch (path[path_index]) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - perform_move(ch, path[path_index] - '0', 1); - break; - - case 'A': - case 'B': - case 'C': - case 'D': - act(monolog[path[path_index] - 'A'], FALSE, ch, 0, 0, TO_ROOM); - break; - - case 'P': - break; - - case 'W': - GET_POS(ch) = POS_STANDING; - act("$n awakens and stands up.", FALSE, ch, 0, 0, TO_ROOM); - break; - - case 'S': - GET_POS(ch) = POS_SLEEPING; - act("$n lies down on $s beautiful bed and instantly falls asleep.", FALSE, ch, 0, 0, TO_ROOM); - break; - - case 'r': - GET_POS(ch) = POS_SITTING; - act("$n sits down on $s great throne.", FALSE, ch, 0, 0, TO_ROOM); - break; - - case 's': - GET_POS(ch) = POS_STANDING; - act("$n stands up.", FALSE, ch, 0, 0, TO_ROOM); - break; - - case 'G': - act("$n says 'Good morning, trusted friends.'", FALSE, ch, 0, 0, TO_ROOM); - break; - - case 'g': - act("$n says 'Good morning, dear subjects.'", FALSE, ch, 0, 0, TO_ROOM); - break; - - case 'o': - do_gen_door(ch, strcpy(actbuf, "door"), 0, SCMD_UNLOCK); /* strcpy: OK */ - do_gen_door(ch, strcpy(actbuf, "door"), 0, SCMD_OPEN); /* strcpy: OK */ - break; - - case 'c': - do_gen_door(ch, strcpy(actbuf, "door"), 0, SCMD_CLOSE); /* strcpy: OK */ - do_gen_door(ch, strcpy(actbuf, "door"), 0, SCMD_LOCK); /* strcpy: OK */ - break; - - case '.': - move = FALSE; - break; - } - - path_index++; - return (FALSE); -} - -/* Training_master. Acts actions to the training room, if his students are - * present. Also allowes warrior-class to practice. Used by the Training - * Master. */ -SPECIAL(training_master) -{ - struct char_data *pupil1, *pupil2 = NULL, *tch; - - if (!AWAKE(ch) || (GET_POS(ch) == POS_FIGHTING)) - return (FALSE); - - if (cmd) - return (FALSE); - - if (banzaii(ch) || rand_number(0, 2)) - return (FALSE); - - if (!(pupil1 = find_npc_by_name(ch, "Brian", 5))) - return (FALSE); - - if (!(pupil2 = find_npc_by_name(ch, "Mick", 4))) - return (FALSE); - - if (FIGHTING(pupil1) || FIGHTING(pupil2)) - return (FALSE); - - if (rand_number(0, 1)) { - tch = pupil1; - pupil1 = pupil2; - pupil2 = tch; - } - - switch (rand_number(0, 7)) { - case 0: - act("$n hits $N on $s head with a powerful blow.", FALSE, pupil1, 0, pupil2, TO_NOTVICT); - act("You hit $N on $s head with a powerful blow.", FALSE, pupil1, 0, pupil2, TO_CHAR); - act("$n hits you on your head with a powerful blow.", FALSE, pupil1, 0, pupil2, TO_VICT); - break; - - case 1: - act("$n hits $N in $s chest with a thrust.", FALSE, pupil1, 0, pupil2, TO_NOTVICT); - act("You manage to thrust $N in the chest.", FALSE, pupil1, 0, pupil2, TO_CHAR); - act("$n manages to thrust you in your chest.", FALSE, pupil1, 0, pupil2, TO_VICT); - break; - - case 2: - send_to_char(ch, "You command your pupils to bow.\r\n"); - act("$n commands $s pupils to bow.", FALSE, ch, 0, 0, TO_ROOM); - act("$n bows before $N.", FALSE, pupil1, 0, pupil2, TO_NOTVICT); - act("$N bows before $n.", FALSE, pupil1, 0, pupil2, TO_NOTVICT); - act("You bow before $N, who returns your gesture.", FALSE, pupil1, 0, pupil2, TO_CHAR); - act("You bow before $n, who returns your gesture.", FALSE, pupil1, 0, pupil2, TO_VICT); - break; - - case 3: - act("$N yells at $n, as he fumbles and drops $s sword.", FALSE, pupil1, 0, ch, TO_NOTVICT); - act("$n quickly picks up $s weapon.", FALSE, pupil1, 0, 0, TO_ROOM); - act("$N yells at you, as you fumble, losing your weapon.", FALSE, pupil1, 0, ch, TO_CHAR); - send_to_char(pupil1, "You quickly pick up your weapon again.\r\n"); - act("You yell at $n, as he fumbles, losing $s weapon.", FALSE, pupil1, 0, ch, TO_VICT); - break; - - case 4: - act("$N tricks $n, and slashes him across the back.", FALSE, pupil1, 0, pupil2, TO_NOTVICT); - act("$N tricks you, and slashes you across your back.", FALSE, pupil1, 0, pupil2, TO_CHAR); - act("You trick $n, and quickly slash him across $s back.", FALSE, pupil1, 0, pupil2, TO_VICT); - break; - - case 5: - act("$n lunges a blow at $N but $N parries skillfully.", FALSE, pupil1, 0, pupil2, TO_NOTVICT); - act("You lunge a blow at $N but $E parries skillfully.", FALSE, pupil1, 0, pupil2, TO_CHAR); - act("$n lunges a blow at you, but you skillfully parry it.", FALSE, pupil1, 0, pupil2, TO_VICT); - break; - - case 6: - act("$n clumsily tries to kick $N, but misses.", FALSE, pupil1, 0, pupil2, TO_NOTVICT); - act("You clumsily miss $N with your poor excuse for a kick.", FALSE, pupil1, 0, pupil2, TO_CHAR); - act("$n fails an unusually clumsy attempt at kicking you.", FALSE, pupil1, 0, pupil2, TO_VICT); - break; - - default: - send_to_char(ch, "You show your pupils an advanced technique.\r\n"); - act("$n shows $s pupils an advanced technique.", FALSE, ch, 0, 0, TO_ROOM); - break; - } - - return (FALSE); -} - -SPECIAL(tom) -{ - return castle_twin_proc(ch, cmd, argument, 48, "Tim"); -} - -SPECIAL(tim) -{ - return castle_twin_proc(ch, cmd, argument, 49, "Tom"); -} - -/* Common routine for the Castle Twins. */ -static int castle_twin_proc(struct char_data *ch, int cmd, char *arg, int ctlnum, const char *twinname) -{ - struct char_data *king, *twin; - - if (!AWAKE(ch)) - return (FALSE); - - if (cmd) - return block_way(ch, cmd, arg, castle_virtual(ctlnum), 1); - - if ((king = find_npc_by_name(ch, "King Welmar", 11)) != NULL) { - char actbuf[MAX_INPUT_LENGTH]; - - if (!ch->master) - do_follow(ch, strcpy(actbuf, "King Welmar"), 0, 0); /* strcpy: OK */ - if (FIGHTING(king)) - do_npc_rescue(ch, king); - } - - if ((twin = find_npc_by_name(ch, twinname, strlen(twinname))) != NULL) - if (FIGHTING(twin) && 2 * GET_HIT(twin) < GET_HIT(ch)) - do_npc_rescue(ch, twin); - - if (GET_POS(ch) != POS_FIGHTING) - banzaii(ch); - - return (FALSE); -} - - -/* Routine for James the Butler. Complains if he finds any trash. This doesn't - * make sure he _can_ carry it. */ -SPECIAL(James) -{ - return castle_cleaner(ch, cmd, TRUE); -} - -/* Common code for James and the Cleaning Woman. */ -static int castle_cleaner(struct char_data *ch, int cmd, int gripe) -{ - struct obj_data *i; - - if (cmd || !AWAKE(ch) || GET_POS(ch) == POS_FIGHTING) - return (FALSE); - - for (i = world[IN_ROOM(ch)].contents; i; i = i->next_content) { - if (!is_trash(i)) - continue; - - if (gripe) { - act("$n says: 'My oh my! I ought to fire that lazy cleaning woman!'", - FALSE, ch, 0, 0, TO_ROOM); - act("$n picks up a piece of trash.", FALSE, ch, 0, 0, TO_ROOM); - } - obj_from_room(i); - obj_to_char(i, ch); - return (TRUE); - } - - return (FALSE); -} - -/* Routine for the Cleaning Woman. Picks up any trash she finds. */ -SPECIAL(cleaning) -{ - return castle_cleaner(ch, cmd, FALSE); -} - -/* CastleGuard. Standard routine for ordinary castle guards. */ -SPECIAL(CastleGuard) -{ - if (cmd || !AWAKE(ch) || (GET_POS(ch) == POS_FIGHTING)) - return (FALSE); - - return (banzaii(ch)); -} - -/* DicknDave. Routine for the guards Dick and David. */ -SPECIAL(DicknDavid) -{ - if (!AWAKE(ch)) - return (FALSE); - - if (!cmd && GET_POS(ch) != POS_FIGHTING) - banzaii(ch); - - return (block_way(ch, cmd, argument, castle_virtual(36), 1)); -} - -/*Peter. Routine for Captain of the Guards. */ -SPECIAL(peter) -{ - struct char_data *ch_guard = NULL; - - if (cmd || !AWAKE(ch) || GET_POS(ch) == POS_FIGHTING) - return (FALSE); - - if (banzaii(ch)) - return (FALSE); - - if (!(rand_number(0, 3)) && (ch_guard = find_guard(ch))) - switch (rand_number(0, 5)) { - case 0: - act("$N comes sharply into attention as $n inspects $M.", - FALSE, ch, 0, ch_guard, TO_NOTVICT); - act("$N comes sharply into attention as you inspect $M.", - FALSE, ch, 0, ch_guard, TO_CHAR); - act("You go sharply into attention as $n inspects you.", - FALSE, ch, 0, ch_guard, TO_VICT); - break; - case 1: - act("$N looks very small, as $n roars at $M.", - FALSE, ch, 0, ch_guard, TO_NOTVICT); - act("$N looks very small as you roar at $M.", - FALSE, ch, 0, ch_guard, TO_CHAR); - act("You feel very small as $N roars at you.", - FALSE, ch, 0, ch_guard, TO_VICT); - break; - case 2: - act("$n gives $N some Royal directions.", - FALSE, ch, 0, ch_guard, TO_NOTVICT); - act("You give $N some Royal directions.", - FALSE, ch, 0, ch_guard, TO_CHAR); - act("$n gives you some Royal directions.", - FALSE, ch, 0, ch_guard, TO_VICT); - break; - case 3: - act("$n looks at you.", FALSE, ch, 0, ch_guard, TO_VICT); - act("$n looks at $N.", FALSE, ch, 0, ch_guard, TO_NOTVICT); - act("$n growls: 'Those boots need polishing!'", - FALSE, ch, 0, ch_guard, TO_ROOM); - act("You growl at $N.", FALSE, ch, 0, ch_guard, TO_CHAR); - break; - case 4: - act("$n looks at you.", FALSE, ch, 0, ch_guard, TO_VICT); - act("$n looks at $N.", FALSE, ch, 0, ch_guard, TO_NOTVICT); - act("$n growls: 'Straighten that collar!'", - FALSE, ch, 0, ch_guard, TO_ROOM); - act("You growl at $N.", FALSE, ch, 0, ch_guard, TO_CHAR); - break; - default: - act("$n looks at you.", FALSE, ch, 0, ch_guard, TO_VICT); - act("$n looks at $N.", FALSE, ch, 0, ch_guard, TO_NOTVICT); - act("$n growls: 'That chain mail looks rusty! CLEAN IT !!!'", - FALSE, ch, 0, ch_guard, TO_ROOM); - act("You growl at $N.", FALSE, ch, 0, ch_guard, TO_CHAR); - break; - } - - return (FALSE); -} - -/* Procedure for Jerry and Michael in x08 of King's Castle. Code by Sapowox - * modified by Pjotr.(Original code from Master) */ -SPECIAL(jerry) -{ - struct char_data *gambler1, *gambler2 = NULL, *tch; - - if (!AWAKE(ch) || (GET_POS(ch) == POS_FIGHTING)) - return (FALSE); - - if (cmd) - return (FALSE); - - if (banzaii(ch) || rand_number(0, 2)) - return (FALSE); - - if (!(gambler1 = ch)) - return (FALSE); - - if (!(gambler2 = find_npc_by_name(ch, "Michael", 7))) - return (FALSE); - - if (FIGHTING(gambler1) || FIGHTING(gambler2)) - return (FALSE); - - if (rand_number(0, 1)) { - tch = gambler1; - gambler1 = gambler2; - gambler2 = tch; - } - - switch (rand_number(0, 5)) { - case 0: - act("$n rolls the dice and cheers loudly at the result.", - FALSE, gambler1, 0, gambler2, TO_NOTVICT); - act("You roll the dice and cheer. GREAT!", - FALSE, gambler1, 0, gambler2, TO_CHAR); - act("$n cheers loudly as $e rolls the dice.", - FALSE, gambler1, 0, gambler2, TO_VICT); - break; - case 1: - act("$n curses the Goddess of Luck roundly as he sees $N's roll.", - FALSE, gambler1, 0, gambler2, TO_NOTVICT); - act("You curse the Goddess of Luck as $N rolls.", - FALSE, gambler1, 0, gambler2, TO_CHAR); - act("$n swears angrily. You are in luck!", - FALSE, gambler1, 0, gambler2, TO_VICT); - break; - case 2: - act("$n sighs loudly and gives $N some gold.", - FALSE, gambler1, 0, gambler2, TO_NOTVICT); - act("You sigh loudly at the pain of having to give $N some gold.", - FALSE, gambler1, 0, gambler2, TO_CHAR); - act("$n sighs loudly as $e gives you your rightful win.", - FALSE, gambler1, 0, gambler2, TO_VICT); - break; - case 3: - act("$n smiles remorsefully as $N's roll tops $s.", - FALSE, gambler1, 0, gambler2, TO_NOTVICT); - act("You smile sadly as you see that $N beats you. Again.", - FALSE, gambler1, 0, gambler2, TO_CHAR); - act("$n smiles remorsefully as your roll tops $s.", - FALSE, gambler1, 0, gambler2, TO_VICT); - break; - case 4: - act("$n excitedly follows the dice with $s eyes.", - FALSE, gambler1, 0, gambler2, TO_NOTVICT); - act("You excitedly follow the dice with your eyes.", - FALSE, gambler1, 0, gambler2, TO_CHAR); - act("$n excitedly follows the dice with $s eyes.", - FALSE, gambler1, 0, gambler2, TO_VICT); - break; - default: - act("$n says 'Well, my luck has to change soon', as he shakes the dice.", - FALSE, gambler1, 0, gambler2, TO_NOTVICT); - act("You say 'Well, my luck has to change soon' and shake the dice.", - FALSE, gambler1, 0, gambler2, TO_CHAR); - act("$n says 'Well, my luck has to change soon', as he shakes the dice.", - FALSE, gambler1, 0, gambler2, TO_VICT); - break; - } - return (FALSE); -} diff --git a/src/config.c b/src/config.c index 217894f..f227977 100644 --- a/src/config.c +++ b/src/config.c @@ -173,13 +173,13 @@ room_vnum mortal_start_room = 131; room_vnum immort_start_room = 1; /* Virtual number of room that frozen players should enter at. */ -room_vnum frozen_start_room = 1202; +room_vnum frozen_start_room = 1; /* Virtual numbers of donation rooms. note: you must change code in do_drop of * act.item.c if you change the number of non-NOWHERE donation rooms. */ -room_vnum donation_room_1 = 3063; -room_vnum donation_room_2 = 5510; -room_vnum donation_room_3 = 235; +room_vnum donation_room_1 = 1; +room_vnum donation_room_2 = 1; +room_vnum donation_room_3 = 1; /* GAME OPERATION OPTIONS */ diff --git a/src/spec_assign.c b/src/spec_assign.c index 838f144..96ec5cf 100644 --- a/src/spec_assign.c +++ b/src/spec_assign.c @@ -63,41 +63,19 @@ static void ASSIGNROOM(room_vnum room, SPECIAL(fname)) * puff, fido, janitor, and cityguards are now implemented via triggers. */ void assign_mobiles(void) { - assign_kings_castle(); - - ASSIGNMOB(3105, mayor); - - ASSIGNMOB(110, postmaster); - ASSIGNMOB(1201, postmaster); ASSIGNMOB(3010, postmaster); - ASSIGNMOB(10412, postmaster); - ASSIGNMOB(10719, postmaster); - ASSIGNMOB(25710, postmaster); - ASSIGNMOB(27164, postmaster); - ASSIGNMOB(30128, postmaster); - ASSIGNMOB(31510, postmaster); } /* assign special procedures to objects */ void assign_objects(void) { - ASSIGNOBJ(1226, gen_board); /* builder's board */ - ASSIGNOBJ(1227, gen_board); /* staff board */ - ASSIGNOBJ(1228, gen_board); /* advertising board */ ASSIGNOBJ(3096, gen_board); /* social board */ ASSIGNOBJ(3097, gen_board); /* freeze board */ ASSIGNOBJ(3098, gen_board); /* immortal board */ ASSIGNOBJ(3099, gen_board); /* mortal board */ - ASSIGNOBJ(115, bank); - ASSIGNOBJ(334, bank); /* atm */ - ASSIGNOBJ(336, bank); /* cashcard */ ASSIGNOBJ(3034, bank); /* atm */ ASSIGNOBJ(3036, bank); /* cashcard */ - ASSIGNOBJ(3907, bank); - ASSIGNOBJ(10640, bank); - ASSIGNOBJ(10751, bank); - ASSIGNOBJ(25758, bank); } /* assign special procedures to rooms */ @@ -106,12 +84,6 @@ void assign_rooms(void) room_rnum i; ASSIGNROOM(3031, pet_shops); - ASSIGNROOM(10738, pet_shops); - ASSIGNROOM(23281, pet_shops); - ASSIGNROOM(25722, pet_shops); - ASSIGNROOM(27155, pet_shops); - ASSIGNROOM(27616, pet_shops); - ASSIGNROOM(31523, pet_shops); if (CONFIG_DTS_ARE_DUMPS) for (i = 0; i <= top_of_world; i++)