{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410 {\fonttbl\f0\fswiss\fcharset77 Helvetica;} {\colortbl;\red255\green255\blue255;} \margl1440\margr1440\vieww9000\viewh8400\viewkind0 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural \f0\fs24 \cf0 /* Okay, your going to need to add a few things into interp.c & interp.h,\ I believe just bitflag, bitshow & qinfo. They are at the end of this (the stuff you put into act_info and act_wiz.) Other than that, read on, add & enjoy.\ \ The only credit I require is keeping the headers in the code, sending me an email letting me know if you liked the code, any bug fixes so I can fix them for everyone and if you want any improvements (I know a bunch of it is long as hell and can probably be done better with a loop or something, but i'm no good with that stuff. :P)\ \ You can reach me via email at learycm@gmail.com\ You can reach me via AIM at cmleary0919\ \ Or you can also log into my mud: swayingbalance.com 9999\ */\ \ \ \ //Add the following lines into merc.h (or whatever you may have renamed it to)\ \ // Put these wherever you want.\ /*\ * QST bits for players (tierup/sidequests)\ */\ #define QST_TIERONE_ONE (A)\ #define QST_TIERTWO_ONE (B)\ #define QST_TIERTHR_ONE (C)\ #define QST_TIERFOU_ONE (D)\ #define QST_TIERFIV_ONE (E)\ #define QST_TIERSIX_ONE (F)\ \ #define SDE_QSTONE_ONE (A)\ #define SDE_QSTTWO_ONE (B)\ /*\ * RCE_ bits for lpayers (race based quests)\ */\ #define RCE_MINOTAUR_ONE (A)\ #define RCE_TROLL_ONE (B)\ #define RCE_CENTAUR_ONE (C)\ #define RCE_IMP_ONE (D)\ #define RCE_GOBLIN_ONE (E)\ #define RCE_GNOME_ONE (F)\ #define RCE_FAERY_ONE (G)\ #define RCE_AAROK_ONE (H)\ #define RCE_OGRE_ONE (I)\ #define RCE_DWARF_ONE (J)\ #define RCE_ELF_ONE (K)\ #define RCE_HUMAN_ONE (L)\ #define RCE_MINOTAUR_TWO (M)\ #define RCE_TROLL_TWO (N)\ #define RCE_CENTAUR_TWO (O)\ #define RCE_IMP_TWO (P)\ #define RCE_GOBLIN_TWO (Q)\ #define RCE_GNOME_TWO (R)\ #define RCE_FAERY_TWO (S)\ #define RCE_AAROK_TWO (T)\ #define RCE_OGRE_TWO (U)\ #define RCE_DWARF_TWO (V)\ #define RCE_ELF_TWO (W)\ #define RCE_HUMAN_TWO (X)\ \ //Under struct char_data\ long qst;\ long sde;\ long rce;\ //Search for act_bit_name and add these\ char * qst_bit_name args( ( int qst_flags ) );\ char * sde_bit_name args( ( int sde_flags ) );\ char * rce_bit_name args( ( int rce_flags ) );\ \ //Add the following lines into mob_prog.c\ \ //Put these under "act" in the fn_keyword table\ "qst", \ "rce",\ "sde",\ \ //Search for CHK_ACT\ case CHK_QST: \ return( lval_char != NULL\ && IS_SET(lval_char->qst, flag_lookup(buf, qst_flags)) );\ case CHK_RCE:\ return( lval_char != NULL\ && IS_SET(lval_char->rce, flag_lookup(buf, rce_flags)) );\ case CHK_SDE: \ return( lval_char != NULL\ && IS_SET(lval_char->sde, flag_lookup(buf, sde_flags)) );\ //Add the following lines into save.c\ \ //In fread_char\ //Under Case Q\ KEY( "Qst", ch->qst, fread_flag (fp));\ //Under Case R\ KEY ("Rce", ch->rce, fread_flag(fp));\ //Under Case S\ KEY ("Sde", ch->sde, fread_flag(fp));\ //In fwrite_char, I put them just above vnum/password.\ if (ch->qst != 0)\ fprintf (fp, "Qst %s\\n", print_flags (ch->qst));\ if (ch->rce != 0)\ fprintf (fp, "Rce %s\\n", print_flags (ch->rce));\ if (ch->sde != 0)\ fprintf (fp, "Sde %s\\n", print_flags (ch->sde));\ if (ch->tog != 0) \ \ //Add the following lines into handler.c .. I put them near act_bit_name\ \ char *sde_bit_name (int sde_flags)\ \{\ static char buf[512];\ \ buf[0] = '\\0';\ \ if (sde_flags & SDE_QSTONE_ONE)\ strcat (buf, " sideqst11");\ if (sde_flags & SDE_QSTTWO_ONE)\ strcat (buf, " sideqst21");\ \ return (buf[0] != '\\0') ? buf + 1 : "none";\ \}\ char *rce_bit_name (int rce_flags)\ \{\ static char buf[512];\ \ buf[0] = '\\0';\ \ if (rce_flags & RCE_MINOTAUR_ONE) \ strcat (buf, " minotaur1");\ if (rce_flags & RCE_TROLL_ONE)\ strcat (buf, " troll1");\ if (rce_flags & RCE_CENTAUR_ONE)\ strcat (buf, " centaur1");\ if (rce_flags & RCE_IMP_ONE)\ strcat (buf, " imp1");\ if (rce_flags & RCE_GOBLIN_ONE)\ strcat (buf, " goblin1");\ if (rce_flags & RCE_GNOME_ONE)\ strcat (buf, " gnome1");\ if (rce_flags & RCE_FAERY_ONE)\ strcat (buf, " faery1");\ if (rce_flags & RCE_AAROK_ONE)\ strcat (buf, " aarokcra1");\ if (rce_flags & RCE_OGRE_ONE)\ strcat (buf, " ogre1");\ if (rce_flags & RCE_DWARF_ONE)\ strcat (buf, " dwarf1");\ if (rce_flags & RCE_ELF_ONE)\ strcat (buf, " elf1");\ if (rce_flags & RCE_HUMAN_ONE)\ strcat (buf, " human1");\ if (rce_flags & RCE_MINOTAUR_TWO)\ strcat (buf, " minotaur2");\ if (rce_flags & RCE_TROLL_TWO)\ strcat (buf, " troll2");\ if (rce_flags & RCE_CENTAUR_TWO)\ strcat (buf, " centaur2");\ if (rce_flags & RCE_IMP_TWO)\ strcat (buf, " imp2");\ if (rce_flags & RCE_GOBLIN_TWO)\ strcat (buf, " goblin2");\ if (rce_flags & RCE_GNOME_TWO)\ strcat (buf, " gnome2");\ if (rce_flags & RCE_FAERY_TWO)\ strcat (buf, " faery2");\ if (rce_flags & RCE_AAROK_TWO)\ strcat (buf, " aarokcra2");\ if (rce_flags & RCE_OGRE_TWO)\ strcat (buf, " ogre2");\ if (rce_flags & RCE_DWARF_TWO)\ strcat (buf, " dwarf2");\ if (rce_flags & RCE_ELF_TWO)\ strcat (buf, " elf2");\ if (rce_flags & RCE_HUMAN_TWO)\ strcat (buf, " human2");\ \ return (buf[0] != '\\0') ? buf + 1 : "none";\ \}\ char *qst_bit_name (int qst_flags)\ \{\ static char buf[512];\ \ buf[0] = '\\0';\ \ if (qst_flags & QST_TIERONE_ONE)\ strcat (buf, " tier1-1");\ if (qst_flags & QST_TIERTWO_ONE)\ strcat (buf, " tier2-1");\ if (qst_flags & QST_TIERTHR_ONE)\ strcat (buf, " tier3-1");\ if (qst_flags & QST_TIERFOU_ONE)\ strcat (buf, " tier4-1");\ if (qst_flags & QST_TIERFIV_ONE)\ strcat (buf, " tier5-1");\ if (qst_flags & QST_TIERSIX_ONE)\ strcat (buf, " tier6-1");\ return (buf[0] != '\\0') ? buf + 1 : "none";\ \}\ \ \ //Add the following line into your mobprog mob command table in mob_cmds.c\ \ \{ "bitflag", do_bitflag \},\ \ // Add the following line into your mob_cmds.h command table, look for something like DECLARE_DO_FUN( do_\ \ DECLARE_DO_FUN( do_bitflag);\ \ //Add the following into tables.h\ \ extern const struct flag_type sde_flags[];\ extern const struct flag_type rce_flags[];\ extern const struct flag_type qst_flags[];\ \ //Add the following tables into table.c\ \ const struct flag_type sde_flags[] = \{\ \{"sideqst11", A, TRUE\},\ \{"sideqst21", B, TRUE\},\ \{NULL, 0, TRUE\}\ \}; \ const struct flag_type rce_flags[] = \{\ \{"minotaurone", A, TRUE\},\ \{"trollone", B, TRUE\},\ \{"centaurone", C, TRUE\},\ \{"impone", D, TRUE\},\ \{"goblinone", E, TRUE\},\ \{"gnomeone", F, TRUE\},\ \{"faeryone", G, TRUE\},\ \{"aarokcraone", H, TRUE\},\ \{"ogreone", I, TRUE\},\ \{"dwarfone", J, TRUE\},\ \{"elfone", K, TRUE\},\ \{"humanone", L, TRUE\},\ \{"minotaurtwo", M, TRUE\},\ \{"trolltwo", N, TRUE\},\ \{"centaurtwo", O, TRUE\},\ \{"imptwo", P, TRUE\},\ \{"goblintwo", Q, TRUE\},\ \{"gnometwo", R, TRUE\},\ \{"faerytwo", S, TRUE\},\ \{"aarokcratwo", T, TRUE\},\ \{"ogretwo", U, TRUE\},\ \{"ogretwo", V, TRUE\},\ \{"dwarftwo", W, TRUE\},\ \{"elftwo", X, TRUE\},\ \{"humantwo", Y, TRUE\},\ \{NULL, 0, TRUE\}\ \}; \ const struct flag_type qst_flags[] = \{\ \{"tier11", A, TRUE\},\ \{"tier21", B, TRUE\},\ \{"tier31", C, TRUE\},\ \{"tier41", D, TRUE\},\ \{"tier51", E, TRUE\},\ \{"tier61", F, TRUE\},\ \{NULL, 0, TRUE\}\ \};\ \ // Add this into act_info.c, anywhere. It is alot, but there is one more thing to do after this, so be careful.\ \ /*\ * Mortal command to show them which quests they have completed.\ */\ \ void do_mqstshow (CHAR_DATA *ch, char *argument)\ \{\ char arg[MAX_INPUT_LENGTH];\ \ argument = one_argument (argument, arg);\ \ if (arg[0] == '\\0' || argument[0] == '\\0')\ \{\ send_to_char("\{GCompleted Quests\{W\\n\\r", ch);\ send_to_char("\{W----------------\{x\\n\\r", ch);\ \ send_to_char("\{GTier Quests\{W:\{g\\n\\r", ch);\ \ if(IS_SET(ch->qst, QST_TIERONE_ONE))\ send_to_char("\{gYou have completed the first part of the tier one quest.\{x\\n\\r", ch);\ if(IS_SET(ch->qst, QST_TIERTWO_ONE))\ send_to_char("\{gYou have completed the first part of the tier two quest.\{x\\n\\r", ch);\ if(IS_SET(ch->qst, QST_TIERTHR_ONE))\ send_to_char("\{gYou have completed the first part of the tier three quest.\{x\\n\\r", ch);\ if(IS_SET(ch->qst, QST_TIERFOU_ONE))\ send_to_char("\{gYou have completed the first part of the tier four quest.\{x\\n\\r", ch);\ if(IS_SET(ch->qst, QST_TIERFIV_ONE))\ send_to_char("\{gYou have completed the first part of the tier five quest.\{x\\n\\r", ch);\ if(IS_SET(ch->qst, QST_TIERSIX_ONE))\ send_to_char("\{gYou have completed the first part of the tier six quest.\{x\\n\\r", ch);\ if(!IS_SET(ch->qst, QST_TIERONE_ONE) &&\ !IS_SET(ch->qst, QST_TIERTWO_ONE) &&\ !IS_SET(ch->qst, QST_TIERTHR_ONE) &&\ !IS_SET(ch->qst, QST_TIERFOU_ONE) &&\ !IS_SET(ch->qst, QST_TIERFIV_ONE) &&\ !IS_SET(ch->qst, QST_TIERSIX_ONE))\ send_to_char("\{gYou have not completed any of the tier based quests.\{x\\n\\r", ch);\ send_to_char("\{G\\n\\rRacial Quests\{W:\{g\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_MINOTAUR_ONE))\ send_to_char("\{gYou have completed the first part of the minotaur quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_TROLL_ONE))\ send_to_char("\{gYou have completed the first part of the troll quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_CENTAUR_ONE))\ send_to_char("\{gYou have completed the first part of the centaur quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_IMP_ONE))\ send_to_char("\{gYou have completed the first part of the imp quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_GOBLIN_ONE))\ send_to_char("\{gYou have completed the first part of the goblin quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_GNOME_ONE))\ send_to_char("\{gYou have completed the first part of the gnome quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_FAERY_ONE))\ send_to_char("\{gYou have completed the first part of the faery quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_AAROK_ONE))\ send_to_char("\{gYou have completed the first part of the aarokcra quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_OGRE_ONE))\ send_to_char("\{gYou have completed the first part of the ogre quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_DWARF_ONE))\ send_to_char("\{gYou have completed the first part of the dwarf quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_ELF_ONE))\ send_to_char("\{gYou have completed the first part of the elf quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_HUMAN_ONE))\ send_to_char("\{gYou have completed the first part of the human quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_MINOTAUR_TWO))\ send_to_char("\{gYou have completed the second part of the minotaur quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_TROLL_TWO))\ send_to_char("\{gYou have completed the second part of the troll quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_CENTAUR_TWO))\ send_to_char("\{gYou have completed the second part of the centaur quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_IMP_TWO))\ send_to_char("\{gYou have completed the second part of the imp quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_GOBLIN_TWO))\ send_to_char("\{gYou have completed the second part of the goblin quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_GNOME_TWO))\ send_to_char("\{gYou have completed the second part of the gnome quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_FAERY_TWO))\ send_to_char("\{gYou have completed the second part of the faery quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_AAROK_TWO))\ send_to_char("\{gYou have completed the second part of the aarokcra quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_OGRE_TWO))\ send_to_char("\{gYou have completed the second part of the ogre quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_DWARF_TWO))\ send_to_char("\{gYou have completed the second part of the dwarf quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_ELF_TWO))\ send_to_char("\{gYou have completed the second part of the elf quest.\{x\\n\\r", ch);\ if(IS_SET(ch->rce, RCE_HUMAN_TWO))\ send_to_char("\{gYou have completed the second part of the human quest.\{x\\n\\r", ch);\ if(!IS_SET(ch->rce, RCE_MINOTAUR_ONE) &&\ !IS_SET(ch->rce, RCE_TROLL_ONE) &&\ !IS_SET(ch->rce, RCE_CENTAUR_ONE) &&\ !IS_SET(ch->rce, RCE_IMP_ONE) &&\ !IS_SET(ch->rce, RCE_GOBLIN_ONE) &&\ !IS_SET(ch->rce, RCE_GNOME_ONE) &&\ !IS_SET(ch->rce, RCE_FAERY_ONE) &&\ !IS_SET(ch->rce, RCE_AAROK_ONE) &&\ !IS_SET(ch->rce, RCE_OGRE_ONE) &&\ !IS_SET(ch->rce, RCE_DWARF_ONE) &&\ !IS_SET(ch->rce, RCE_ELF_ONE) &&\ !IS_SET(ch->rce, RCE_HUMAN_ONE) &&\ !IS_SET(ch->rce, RCE_MINOTAUR_TWO) &&\ !IS_SET(ch->rce, RCE_TROLL_TWO) &&\ !IS_SET(ch->rce, RCE_CENTAUR_TWO) &&\ !IS_SET(ch->rce, RCE_IMP_TWO) &&\ !IS_SET(ch->rce, RCE_GOBLIN_TWO) &&\ !IS_SET(ch->rce, RCE_GNOME_TWO) &&\ !IS_SET(ch->rce, RCE_FAERY_TWO) &&\ !IS_SET(ch->rce, RCE_AAROK_TWO) &&\ !IS_SET(ch->rce, RCE_OGRE_TWO) &&\ !IS_SET(ch->rce, RCE_DWARF_TWO) &&\ !IS_SET(ch->rce, RCE_ELF_TWO) &&\ !IS_SET(ch->rce, RCE_HUMAN_TWO))\ send_to_char("\{gYou have not completed any of the racial quests yet.\\n\\r\{x", ch);\ \ send_to_char("\{G\\n\\rSide Quests\{W:\{g\\n\\r", ch);\ if(IS_SET(ch->sde, SDE_QSTONE_ONE))\ send_to_char("\{gYou have completed the first side quest.\{x\\n\\r", ch);\ if(IS_SET(ch->sde, SDE_QSTTWO_ONE))\ send_to_char("\{gYou have completed the second side quest.\{x\\n\\r", ch);\ if(!IS_SET(ch->sde, SDE_QSTONE_ONE) &&\ !IS_SET(ch->sde, SDE_QSTTWO_ONE))\ send_to_char("\{gYou have not completed any of the side quests yet.\\n\\r\{x", ch);\ \}\ \}\ \ // Now add everything below this line into the bottom of act_wiz.c and your done.\ \ // Add the following into act_wiz.c at the bottom\ \ /***************************************************************************************\ * *\ * The following two commands are for use with the new bit flag QST_XX_XX to go with *\ * the quest system for tiering up and possible side quests which was coded in Jan 07. *\ * *\ * Other files of interest for QST_ Flags: swaybal.h, handler.c, interp.c, interp.h *\ * mob_cmds.c, mob_cmds.h, tables.c, act_info.c (qinfo) *\ * *\ ***************************************************************************************/\ // This command is also used for the RCE_ and SDE_ and soon to be CLS_ quests. \ /* \ * do_bitflag by Taemos 01/07: Used to set QST_ flags\ * \ * Other files: interp.c, interp.h, mob_cmds.c, mob_cmds.h, tables.c, tables.h\ * mob_prog.c\ * \ * Thanks to Skol from Ansalon (ansalonmud.com:8679) for help w/ debugging.\ */\ \ void do_bitflag (CHAR_DATA * ch, char *argument)\ \{\ char buf[MSL];\ char arg1[MIL];\ char arg2[MIL]; \ CHAR_DATA *victim; \ \ argument = one_argument(argument, arg1);\ argument = one_argument(argument, arg2); \ \ if (arg1[0] == '\\0' || arg2[0] == '\\0') \ \{\ send_to_char("Syntax: bitflag <player> <qstflag>\\n\\r", ch);\ return; \ \}\ /* Checking to see if the player is logged in. */\ if ((victim = get_char_world (ch, arg1)) == NULL)\ \{\ send_to_char ("Players must be logged in to have a bit flag set.\\n\\r", ch);\ return;\ \} \ /* Mobs arent coded for QST_ flags. */\ if (IS_NPC (victim))\ \{\ send_to_char ("Mobiles cannot have quest bit flags set.\\n\\r", ch);\ return;\ \}\ /* No reason to use the argument of all. */\ if ( !str_cmp( arg1, "all" ) )\ \{\ send_to_char("That will NOT be done.", ch);\ \}\ /*Checking to see for QST_TIERONE_ONE */\ if (!str_cmp (arg2, "tieroneone") || !str_cmp (arg2, "tier11"))\ \{\ if(IS_SET(victim->qst, QST_TIERONE_ONE))\ \{\ send_to_char("QST_TIERONE_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->qst, QST_TIERONE_ONE);\ return;\ \}\ send_to_char("QST_TIERONE_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->qst, QST_TIERONE_ONE);\ return;\ \}\ /*Checking to see for QST_TIERTWO_ONE */\ if (!str_cmp (arg2, "tiertwoone") || !str_cmp (arg2, "tier21"))\ \{\ if(IS_SET(victim->qst, QST_TIERTWO_ONE))\ \{\ send_to_char("QST_TIERTWO_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->qst, QST_TIERTWO_ONE);\ return;\ \}\ send_to_char("QST_TIERTWO_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->qst, QST_TIERTWO_ONE);\ return;\ \}\ /*Checking to see for QST_TIERTHR_ONE */\ if (!str_cmp (arg2, "tierthreeone") || !str_cmp (arg2, "tier31"))\ \{\ if(IS_SET(victim->qst, QST_TIERTHR_ONE))\ \{\ send_to_char("QST_TIERTHR_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->qst, QST_TIERTHR_ONE);\ return;\ \}\ send_to_char("QST_TIERTHR_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->qst, QST_TIERTHR_ONE);\ return;\ \}\ /*Checking to see for QST_TIERFOU_ONE */\ if (!str_cmp (arg2, "tierfourone") || !str_cmp (arg2, "tier41"))\ \{\ if(IS_SET(victim->qst, QST_TIERFOU_ONE))\ \{\ send_to_char("QST_TIERFOU_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->qst, QST_TIERFOU_ONE);\ return;\ \}\ send_to_char("QST_TIERFOU_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->qst, QST_TIERFOU_ONE);\ return;\ \}\ /*Checking to see for QST_TIERFIV_ONE */\ if (!str_cmp (arg2, "tierfiveone") || !str_cmp (arg2, "tier51"))\ \{\ if(IS_SET(victim->qst, QST_TIERFIV_ONE))\ \{\ send_to_char("QST_TIERFIV_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->qst, QST_TIERFIV_ONE);\ return;\ \}\ send_to_char("QST_TIERFIV_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->qst, QST_TIERFIV_ONE);\ return;\ \}\ /*Checking to see for QST_TIERSIX_ONE */\ if (!str_cmp (arg2, "tiersixone") || !str_cmp (arg2, "tier61"))\ \{\ if(IS_SET(victim->qst, QST_TIERSIX_ONE))\ \{\ send_to_char("QST_TIERSIX_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->qst, QST_TIERSIX_ONE);\ return;\ \}\ send_to_char("QST_TIERSIX_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->qst, QST_TIERSIX_ONE);\ return;\ \}\ /* CHECKING FOR RACE QUEST BIT FLAGS */\ /*Checking to see for RCE_MINOTAUR_ONE */\ if (!str_cmp (arg2, "minotaur1") || !str_cmp (arg2, "minotaurone"))\ \{\ if(IS_SET(victim->rce, RCE_MINOTAUR_ONE))\ \{\ send_to_char("RCE_MINOTAUR_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_MINOTAUR_ONE);\ return;\ \}\ send_to_char("RCE_MINOTAUR_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_MINOTAUR_ONE);\ return;\ \}\ /*Checking to see for RCE_MINOTAUR_TWO */\ if (!str_cmp (arg2, "minotaur2") || !str_cmp (arg2, "minotaurtwo"))\ \{\ if(IS_SET(victim->rce, RCE_MINOTAUR_TWO))\ \{\ send_to_char("RCE_MINOTAUR_TWO is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_MINOTAUR_TWO);\ return;\ \}\ send_to_char("RCE_MINOTAUR_TWO is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_MINOTAUR_TWO);\ return;\ \}\ /*Checking to see for RCE_TROLL_ONE */\ if (!str_cmp (arg2, "troll1") || !str_cmp (arg2, "trollone"))\ \{\ if(IS_SET(victim->rce, RCE_TROLL_ONE))\ \{\ send_to_char("RCE_TROLL_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_TROLL_ONE);\ return;\ \}\ send_to_char("RCE_TROLL_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_TROLL_ONE);\ return;\ \}\ /*Checking to see for RCE_CENTAUR_ONE*/\ if (!str_cmp (arg2, "centaur1") || !str_cmp (arg2, "centaurone"))\ \{\ if(IS_SET(victim->rce, RCE_CENTAUR_ONE))\ \{\ send_to_char("RCE_CENTAUR_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_CENTAUR_ONE);\ return;\ \}\ send_to_char("RCE_CENTAUR_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_CENTAUR_ONE);\ return;\ \}\ /*Checking to see for RCE_CENTAUR_TWO*/\ if (!str_cmp (arg2, "centaur2") || !str_cmp (arg2, "centaurtwo"))\ \{\ if(IS_SET(victim->rce, RCE_CENTAUR_TWO))\ \{\ send_to_char("RCE_CENTAUR_TWO is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_CENTAUR_TWO);\ return;\ \}\ send_to_char("RCE_CENTAUR_TWO is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_CENTAUR_TWO);\ return;\ \}\ /*Checking to see for RCE_IMP_ONE*/\ if (!str_cmp (arg2, "imp1") || !str_cmp (arg2, "impone"))\ \{\ if(IS_SET(victim->rce, RCE_IMP_ONE))\ \{\ send_to_char("RCE_IMP_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_IMP_ONE);\ return;\ \}\ send_to_char("RCE_IMP_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_IMP_ONE);\ return;\ \}\ /*Checking to see for RCE_IMP_TWO*/\ if (!str_cmp (arg2, "imp2") || !str_cmp (arg2, "imptwo"))\ \{\ if(IS_SET(victim->rce, RCE_IMP_TWO))\ \{\ send_to_char("RCE_IMP_TWO is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_IMP_TWO);\ return;\ \}\ send_to_char("RCE_IMP_TWO is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_IMP_TWO);\ return;\ \}\ /*Checking to see for RCE_GOBLIN_ONE*/\ if (!str_cmp (arg2, "goblin1") || !str_cmp (arg2, "goblinone"))\ \{\ if(IS_SET(victim->rce, RCE_GOBLIN_ONE))\ \{\ send_to_char("RCE_GOBLIN_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_GOBLIN_ONE);\ return;\ \}\ send_to_char("RCE_GOBLIN_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_GOBLIN_ONE);\ return;\ \}\ /*Checking to see for RCE_GOBLIN_TWO*/\ if (!str_cmp (arg2, "goblin2") || !str_cmp (arg2, "goblintwo"))\ \{\ if(IS_SET(victim->rce, RCE_GOBLIN_TWO))\ \{\ send_to_char("RCE_GOBLIN_TWO is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_GOBLIN_TWO);\ return;\ \}\ send_to_char("RCE_GOBLIN_TWO is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_GOBLIN_TWO);\ return;\ \}\ /*Checking to see for RCE_GNOME_ONE*/\ if (!str_cmp (arg2, "gnome1") || !str_cmp (arg2, "gnomeone"))\ \{\ if(IS_SET(victim->rce, RCE_GNOME_ONE))\ \{\ send_to_char("RCE_GNOME_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_GNOME_ONE);\ return;\ \}\ send_to_char("RCE_GNOME_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_GNOME_ONE);\ return;\ \}\ /*Checking to see for RCE_GNOME_TWO*/\ if (!str_cmp (arg2, "gnome2") || !str_cmp (arg2, "gnometwo"))\ \{\ if(IS_SET(victim->rce, RCE_GNOME_TWO))\ \{\ send_to_char("RCE_GNOME_TWO is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_GNOME_TWO);\ return;\ \}\ send_to_char("RCE_GNOME_TWO is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_GNOME_TWO);\ return;\ \}\ /*Checking to see for RCE_FAERY_ONE*/\ if (!str_cmp (arg2, "faery1") || !str_cmp (arg2, "faeryone"))\ \{\ if(IS_SET(victim->rce, RCE_FAERY_ONE))\ \{\ send_to_char("RCE_FAERY_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_FAERY_ONE);\ return;\ \}\ send_to_char("RCE_FAERY_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_FAERY_ONE);\ return;\ \}\ /*Checking to see for RCE_FAERY_TWO*/\ if (!str_cmp (arg2, "faerytwo") || !str_cmp (arg2, "faery2"))\ \{\ if(IS_SET(victim->rce, RCE_FAERY_TWO))\ \{\ send_to_char("RCE_FAERY_TWO is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_FAERY_TWO);\ return;\ \}\ send_to_char("RCE_FAERY_TWO is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_FAERY_TWO);\ return;\ \}\ /*Checking to see for RCE_AAROK_ONE*/\ if (!str_cmp (arg2, "aarokcra1") || !str_cmp (arg2, "aarokcraone"))\ \{\ if(IS_SET(victim->rce, RCE_AAROK_ONE))\ \{\ send_to_char("RCE_AAROK_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_AAROK_ONE);\ return;\ \}\ send_to_char("RCE_AAROK_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_AAROK_ONE);\ return;\ \}\ /*Checking to see for RCE_AAROK_TWO */\ if (!str_cmp (arg2, "aarokcra2") || !str_cmp (arg2, "aarokcratwo"))\ \{\ if(IS_SET(victim->rce, RCE_AAROK_TWO))\ \{\ send_to_char("RCE_AAROK_TWO is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_AAROK_TWO);\ return;\ \}\ send_to_char("RCE_AAROK_TWO is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_AAROK_TWO);\ return;\ \}\ /*Checking to see for RCE_OGRE_ONE*/\ if (!str_cmp (arg2, "ogreone") || !str_cmp (arg2, "ogre1"))\ \{\ if(IS_SET(victim->rce, RCE_OGRE_ONE))\ \{\ send_to_char("RCE_OGRE_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_OGRE_ONE);\ return;\ \}\ send_to_char("RCE_OGRE_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_OGRE_ONE);\ return;\ \}\ /*Checking to see for RCE_OGRE_TWO*/\ if (!str_cmp (arg2, "ogretwo") || !str_cmp (arg2, "ogre2"))\ \{\ if(IS_SET(victim->rce, RCE_OGRE_TWO))\ \{\ send_to_char("RCE_OGRE_TWO is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_OGRE_TWO);\ return;\ \}\ send_to_char("RCE_OGRE_TWO is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_OGRE_TWO);\ return;\ \}\ /*Checking to see for RCE_DWARF_ONE*/\ if (!str_cmp (arg2, "dwarfone") || !str_cmp (arg2, "dwarf1"))\ \{\ if(IS_SET(victim->rce, RCE_DWARF_ONE))\ \{\ send_to_char("RCE_DWARF_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_DWARF_ONE);\ return;\ \}\ send_to_char("RCE_DWARF_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_DWARF_ONE);\ return;\ \}\ /*Checking to see for RCE_DWARF_TWO*/\ if (!str_cmp (arg2, "dwarftwo") || !str_cmp (arg2, "dwarf2"))\ \{\ if(IS_SET(victim->rce, RCE_DWARF_TWO))\ \{\ send_to_char("RCE_DWARF_TWO is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_DWARF_TWO);\ return;\ \}\ send_to_char("RCE_DWARF_TWO is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_DWARF_TWO);\ return;\ \}\ /*Checking to see for RCE_ELF_ONE*/\ if (!str_cmp (arg2, "elfone") || !str_cmp (arg2, "elf1"))\ \{\ if(IS_SET(victim->rce, RCE_ELF_ONE))\ \{\ send_to_char("RCE_ELF_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_ELF_ONE);\ return;\ \}\ send_to_char("RCE_ELF_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_ELF_ONE);\ return;\ \}\ /*Checking to see for RCE_ELF_TWO*/\ if (!str_cmp (arg2, "elftwo") || !str_cmp (arg2, "elf2"))\ \{\ if(IS_SET(victim->rce, RCE_ELF_TWO))\ \{\ send_to_char("RCE_ELF_TWO is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_ELF_TWO);\ return;\ \}\ send_to_char("RCE_ELF_TWO is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_ELF_TWO);\ return;\ \}\ /*Checking to see for RCE_HUMAN_ONE*/\ if (!str_cmp (arg2, "humanone") || !str_cmp (arg2, "human1"))\ \{\ if(IS_SET(victim->rce, RCE_HUMAN_ONE))\ \{\ send_to_char("RCE_HUMAN_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_HUMAN_ONE);\ return;\ \}\ send_to_char("RCE_HUMAN_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_HUMAN_ONE);\ return;\ \}\ /*Checking to see for RCE_HUMAN_TWO*/\ if (!str_cmp (arg2, "humantwo") || !str_cmp (arg2, "human2"))\ \{\ if(IS_SET(victim->rce, RCE_HUMAN_TWO))\ \{\ send_to_char("RCE_HUMAN_TWO is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->rce, RCE_HUMAN_TWO);\ return;\ \}\ send_to_char("RCE_HUMAN_TWO is being set.\\n\\r", ch);\ SET_BIT(victim->rce, RCE_HUMAN_TWO);\ return;\ \}\ \ /* CHECKING FOR SIDE QUEST BIT FLAGS */\ \ /*Checking to see for SDE_QSTONE_ONE */\ if (!str_cmp (arg2, "sidequestoneone") || !str_cmp (arg2, "sq11"))\ \{\ if(IS_SET(victim->sde, SDE_QSTONE_ONE))\ \{\ send_to_char("SDE_QSTONE_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->sde, SDE_QSTONE_ONE);\ return;\ \}\ send_to_char("SDE_QSTONE_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->sde, SDE_QSTONE_ONE);\ return;\ \}\ /*Checking to see for SDE_QSTTWO_ONE */\ if (!str_cmp (arg2, "sidequesttwoone") || !str_cmp (arg2, "sq21"))\ \{\ if(IS_SET(victim->sde, SDE_QSTTWO_ONE))\ \{\ send_to_char("SDE_QSTTWO_ONE is being removed.\\n\\r", ch);\ REMOVE_BIT(victim->sde, SDE_QSTTWO_ONE);\ return;\ \}\ send_to_char("SDE_QSTTWO_ONE is being set.\\n\\r", ch);\ SET_BIT(victim->sde, SDE_QSTTWO_ONE);\ return;\ \}\ /* Testing to see why this wont work. */\ sprintf(buf, "Player %s and flag %s are invalid arguments, please see help bitflag.", arg1, arg2);\ send_to_char (buf,ch);\ \}\ \ /* \ * do_bitshow by Taemos 01/07 (Used to display a player's QST_, RCE_, and SDE_ flags\ * \ * Other Files: interp.c, interp.h\ */ \ \ void do_bitshow (CHAR_DATA *ch, char *argument)\ \{ \ char buf[MAX_STRING_LENGTH];\ char arg[MAX_INPUT_LENGTH];\ CHAR_DATA *victim;\ \ argument = one_argument (argument, arg);\ /* Making sure the player is logged in. */\ if ((victim = get_char_world (ch, arg)) == NULL)\ \{ \ send_to_char ("They aren't here.\\n\\r", ch);\ return;\ \}\ /* Showing the victim's QST_, RCE_, and SDE_ flags */\ if (arg[0] == '\\0' || argument[0] == '\\0')\ \{ \ sprintf (buf, "\{gBit Flags for \{G%s\{x:\\n\\r\{g-------------------------\{x\\n\\r", victim->name);\ send_to_char(buf, ch);\ sprintf (buf, " \{GTier \{W:\{g %s\{x\\n\\r", qst_bit_name (victim->qst));\ send_to_char(buf, ch);\ sprintf (buf, "\{GRacial \{W:\{g %s\{x\\n\\r", rce_bit_name (victim->rce));\ send_to_char(buf, ch);\ sprintf (buf, "\{G Side \{W:\{g %s\\n\\r", sde_bit_name (victim->sde));\ send_to_char(buf, ch);\ return;\ \} \ /* Would be waaay too spammy. */\ if (!str_cmp (arg, "all") || !str_cmp (argument, "all"))\ \{ \ send_to_char ("We wont be doing that.", ch);\ return;\ \}\ /* Making sure the command says something if syntax is invalid. */\ send_to_char ("Check who's questflags?", ch);\ return;\ \}\ }