From 8315bc5da8e6753a799c2641d4d18ac23ae07a01 Mon Sep 17 00:00:00 2001 From: Rumble Date: Thu, 17 May 2007 20:51:06 +0000 Subject: [PATCH] [May 17 2007] - Rumble Added AFF_FLYING/SCUBA and appropriate checks in act.movement.c. Room sector ty pes IN FLIGHT and UNDERWATER are finally being used! Removed all of the Dragon_Breathes. Removed context help system. Added invis level on reconnect. [May 15 2007] - Rumble Fixed object stacking to match s-desc and item_number. Added wizupdate command. Added valid_dg_target check to object remove trigs. --- changelog | 15 ++ lib/misc/ideas | 1 + lib/text/contexthelp | 591 ------------------------------------------ lib/text/immlist | 7 +- lib/text/wizlist | 7 +- lib/world/obj/0.obj | 50 +--- lib/world/obj/12.obj | 119 +-------- lib/world/obj/30.obj | 56 ++-- lib/world/trg/0.trg | 48 +--- lib/world/wld/0.wld | 24 +- src/Makefile.in | 4 +- src/act.informative.c | 4 +- src/act.movement.c | 68 ++++- src/act.wizard.c | 20 +- src/comm.c | 2 +- src/config.c | 14 +- src/constants.c | 4 +- src/context_help.c | 272 ------------------- src/db.c | 21 +- src/db.h | 1 - src/dg_scripts.c | 4 +- src/dg_triggers.c | 3 + src/interpreter.c | 5 +- src/oasis.h | 142 ---------- src/oedit.c | 4 +- src/spell_parser.c | 22 -- src/spells.h | 5 - src/structs.h | 6 +- src/utils.h | 2 +- 29 files changed, 191 insertions(+), 1330 deletions(-) delete mode 100644 lib/text/contexthelp delete mode 100644 src/context_help.c diff --git a/changelog b/changelog index 0ab7e91..36286b2 100644 --- a/changelog +++ b/changelog @@ -5,6 +5,21 @@ The Builder Academy builderacademy.net 9091 tbaMUD 3.52 +[May 17 2007] - Rumble + Added AFF_FLYING/SCUBA and appropriate checks in act.movement.c. Room sector types IN FLIGHT and UNDERWATER are finally being used! + Removed all of the Dragon_Breathes. + Removed context help system. + Added invis level on reconnect. +[May 15 2007] - Rumble + Fixed object stacking to match s-desc and item_number. + Added wizupdate command. + Added valid_dg_target check to object remove trigs. + Fixed shops and affects to work with 128 bits. + Removed Hometown and Languages. +[May 09 2007] - Rumble + Fixed nogos/nowiz from flagging everyone in who. + Fixed numerous SYSERR's where mobs were using player only specials. + Added 128 bits patch by Niese Petersen with numerous updates and fixes. [Apr 14 2007] - Rumble IP's only visible to LVL_GOD and above now for the paranoid people out there. [Apr 13 2007] - Rumble diff --git a/lib/misc/ideas b/lib/misc/ideas index e69de29..a2b709b 100644 --- a/lib/misc/ideas +++ b/lib/misc/ideas @@ -0,0 +1 @@ +Rumble (May 15) [ 1204] Added changelog to do_file. diff --git a/lib/text/contexthelp b/lib/text/contexthelp deleted file mode 100644 index bd31a32..0000000 --- a/lib/text/contexthelp +++ /dev/null @@ -1,591 +0,0 @@ -#001 * CONTEXT_OEDIT_MAIN_MENU -*OEDIT-MENU~ -#002 * CONTEXT_OEDIT_EDIT_NAMELIST -Enter a list of @ukeywords@n seperated by spaces. - -The list may not contain color codes and should not contain small words -like 'an', 'a', 'the' or 'of'. - -When making drink containers, do not include the name of the liquid in -this list. It will be added automatically. - -Example: axe wood wooden -~ -#003 * CONTEXT_OEDIT_SHORTDESC -Enter a @ushort description@n for the object. A short description is -used when the name of the object is put into sentences, or is listed -in inventories, containers etc. - -It should contain words like 'a', 'an' or 'the' if needed, but no -capitalization or punctuation. - -Example: a wooden axe - -When making drink containers, do not include the name of the liquid in -this list. It will be added automatically. -~ -#004 * CONTEXT_OEDIT_LONGDESC -Enter a @ulong description@n for the object. The long description is -used when the object is in the room, ie. not in containers. - -The long description is never put into lists or sentences, and should -therefore have correct grammar, capitalization and punctuation. - -Example: An axe with a wooden shaft has been thrown here. -~ -#005 * CONTEXT_OEDIT_ACTDESC -Never shown -~ -#006 * CONTEXT_OEDIT_TYPE -Select a type for the object. Depending on the choice of type, the -values have different meaning. The types are: - 0) UNDEFINED - not meaningful. Do not use. - 1) LIGHT - a lightsource. - 2) SCROLL - a scroll with magical spells. - 3) WAND - a magical wand; point at target to use. - 4) STAFF - a magical staff; hit all in room with spell(s). - 5) WEAPON - any kind of damaging weapon. - 6) FIRE WEAPON - not implemented. Do not use. - 7) MISSILE - not implemented. Do not use. - 8) TREASURE - not implemented. Do not use. - 9) ARMOR - a piece of armor. -10) POTION - a magical potion. Quaff to use. -11) WORN - worn, but not armor. -12) OTHER - if no other categori applies, use this. -13) TRASH - what it says; taken by scavengers. -14) TRAP - not implemented. Do not use. -15) CONTAINER - something something else can be in. -16) NOTE - can be written on with a PEN. -17) LIQ CONTAINER- for storing liquids. -18) KEY - for opening doors. -19) FOOD - for eating. -20) MONEY - a pile of gold. -21) PEN - can write on NOTEs. -22) BOAT - when carried, one can traverse water. -23) FOUNTAIN - a BIG liquid container. Can fill other liquid conts. -~ -#007 * CONTEXT_OEDIT_EXTRAS -Select a set of bits from this list: -1) GLOW Item is glowing (cosmetic). -2) HUM Item is humming (cosmetic). -3) NORENT Item cannot be rented. -4) NODONATE Item cannot be donated. -5) NOINVIS Item cannot be made invisible. -6) INVISIBLE Item is invisible. -7) MAGIC Item has a magical aura and cannot be enchanted. -8) NODROP Item is cursed and cannot be dropped. -9) BLESS Item is blessed (cosmetic). -10) ANTI_GOOD Item cannot be used by good-aligned characters. -11) ANTI_EVIL Item cannot be used by evil-aligned characters. -12) ANTI_NEUTRAL Item cannot be used by neutral align characters. -13) ANTI_MAGIC_USER Item cannot be used by the Mage class. -14) ANTI_CLERIC Item cannot be used by the Cleric class. -15) ANTI_THIEF Item cannot be used by the Thief class. -16) ANTI_WARRIOR Item cannot be used by the Warrior class. -17) NOSELL Shopkeepers will not buy or sell the item. - -Use '0' to quit the menu. -Any other number sets or removes the corresponding bit. -~ -#008 * CONTEXT_OEDIT_WEAR -A list of possible wear locations from this list: - 1) TAKE Item can be taken (picked up off the ground). - 2) FINGER Item can be worn on the fingers. - 3) NECK Item can be worn around the neck. - 4) BODY Item can be worn on the body. - 5) HEAD Item can be worn on the head. - 6) LEGS Item can be worn on the legs. - 7) FEET Item can be worn on the feet. - 8) HANDS Item can be worn on the hands. - 9) ARMS Item can be worn on the arms. -10) SHIELD Item can be used as a shield. -11) ABOUT Item can be worn about the body. -12) WAIST Item can be worn around the waist. -13) WRIST Item can be worn around the wrist. -14) WIELD Item can be wielded; e.g. weapons. -15) HOLD Item can be held (the "hold" command). - -Most items should be 'TAKE' to be able to pick them up. -Use '0' to quit the menu. -Any other number sets or removes the corresponding bit. -~ -#009 * CONTEXT_OEDIT_WEIGHT -Enter the weight of the object in pounds. Weapons over 40 pounds are -too heavy to use for most people. Be reasonable. -~ -#010 * CONTEXT_OEDIT_COST -Enter the cost in gold pieces for this object. This will be the base -price used when dealing with shopkeepers. -~ -#011 * CONTEXT_OEDIT_COSTPERDAY -Enter the rent cost. This is how many gold pieces the object will cost -per day when renting. -~ -#012 * CONTEXT_OEDIT_TIMER -You shouldn't have to alter this setting, except when making objects -with otimer triggers attached. This counter will drop by one for each -mud hour that passes. Unless there's a trigger attached, nothing more -will happen. -~ -#013 * CONTEXT_OEDIT_VALUE_1 -Depending on the @utype@n of the item this value have different meanings; - -"Spell level" - the level of the spell cast by the item. -"Modifier to hitroll" - the addition the item has to natural hitroll. -"Apply to AC" - the apply to AC this item has. This is tripled if worn - on body, and doubled on arms and legs. -"Max weight to contain" - the weight this container can contain in pounds. -"Max drink units" - the number of 'drink units' the container can hold. - Note that one drinks some 4-6 drink units per time. -"Hours to fill stomach" - the time this food will satiate you. -"Number of gold coins" - the size of the money pile. -~ -#014 * CONTEXT_OEDIT_VALUE_2 -Depending on the @utype@n of the item this value have different meanings; - -A list of spells - choose one of them to have the item cast the spell. -"Max number of charges" - how many charges does it have when fully recharged ? -"Number of damage dice" - the number of dice to roll to determine the damage - the item causes. This is calculated as xdy - (read: x dice of size y) - Ie. 1d5 would mean you enter '1' at the prompt. - -Container flags: - 1) CLOSEABLE Container can be closed and locked. - 2) PICKPROOF Lock on container cannot be picked. - 3) CLOSED Container is closed when created. - 4) LOCKED Container is locked when created. -Exit the menu with '0'. - -"Initial drink units" - number of drink units in the item when loaded. This - must be equal or less than the max capacity. -~ -#015 * CONTEXT_OEDIT_VALUE_3 -Depending on the @utype@n of the item this value have different meanings; - -A list of spells - choose one of them to have the item cast the spell. -"Number of hours" - how long will the light burn. Use -1 to get infinate - light. These are rare, though. -"Number of charges remaining" - the number of charges in the item when - loaded. This must be less than or equal to the max. -"Size of damage dice" - the size of the dice to roll to determine the damage - the item causes. This is calculated as xdy - (read: x dice of size y) - Ie. 1d5 would mean you enter '5' at the prompt. -"Vnum of key to open container" - if the container is locked, you need to - set a key to open it. - -A list of liquid types. Choose one from the list. -~ -#016 * CONTEXT_OEDIT_VALUE_4 -Depending on the @utype@n of the item this value have different meanings; - -A list of spells - choose one of them to have the item cast the spell. -A list of weapon types - choose one to have the weapon attack with the - right sound effects. - Only piercing and stabbing can backstab. -"Poisoned" - anything besides '0' will make the item poisonous. -~ -#017 * CONTEXT_OEDIT_APPLY -Select an apply from the list below: - -0 NONE No effect - used to quit the menu. -1 STR Apply to strength. -2 DEX Apply to dexterity. -3 INT Apply to intelligence. -4 WIS Apply to wisdom. -5 CON Apply to constitution. -6 CHA Apply to charisma. -7 CLASS DO NOT USE! -8 LEVEL DO NOT USE! -9 AGE Apply to character's MUD age, in MUD-years. -10 CHAR_WEIGHT Apply to weight. -11 CHAR_HEIGHT Apply to height. -12 MANA Apply to MAX mana points. -13 HIT Apply to MAX hit points. -14 MOVE Apply to MAX movement points. -15 GOLD DO NOT USE! -16 EXP DO NOT USE! -17 AC Apply to armor class (AC). -18 HITROLL Apply to hitroll. -19 DAMROLL Apply to damage roll bonus. -20 SAVING_PARA Apply to save throw: paralyze -21 SAVING_ROD Apply to save throw: rods -22 SAVING_PETRI Apply to save throw: petrif -23 SAVING_BREATH Apply to save throw: breath -24 SAVING_SPELL Apply to save throw: spells -~ -#018 * CONTEXT_OEDIT_APPLYMOD -Decide how this apply has effect by typing a number. -The number may be negative, and this helps in some situations: - -Good when positive: -STR, DEX, INT, WIS, CON, CHA, MANA, HIT, MOVE, HITROLL, DAMROLL - -Good when negative: -AGE, AC, SAVING_* -~ -#019 * CONTEXT_OEDIT_EXTRADESC_KEY -Enter the keywordlist seperated by spaces, which is needed to see -the description. - -Example: table desk -~ -#020 * CONTEXT_OEDIT_CONFIRM_SAVEDB -Not used ? -~ -#021 * CONTEXT_OEDIT_CONFIRM_SAVESTRING -If you type 'y', the object is saved to disk right away. - 'n' will let you quit without saving, while - 'a' will abort the quit. -~ -#022 * CONTEXT_OEDIT_PROMPT_APPLY -Enter a number from the list to the left to alter one of the applies. - -This is how you alter the effect on hitroll, damroll, saving throws, AC, -age, height, weight or stats. -~ -#023 * CONTEXT_OEDIT_EXTRADESC_DESCRIPTION -Never shown -~ -#024 * CONTEXT_OEDIT_EXTRADESC_MENU -Select an option to the left. -'1' to change the keyword list for this description. -'2' to change the description shown. -'3' to go to next description in this room. - If no such description exists, and this one is used, make a new one. -'0' to leave the menu. -~ -#025 * CONTEXT_OEDIT_LEVEL -Enter the minimum level one must be to wield/hold/wear the object. -~ -#026 * CONTEXT_OEDIT_PERM -Enter the effects this item has on people using it. These are permanent -bits which are set when the object is worn/wielded/held. - -When wearing an object with this flag, - 1) BLIND The wearer goes blind - 2) INVIS The wearer becomes invisible - 3) DET-ALIGN The wearer detects alignments - 4) DET-INVIS The wearer sees invisible objects and players. - 5) DET-MAGIC The wearer sees magic on objects - 6) SENSE-LIFE The wearer sees hidden mobs/players - 7) WATWALK The wearer can walk on water - 8) SANCT The wearer is protected by sanctuary - 9) GROUP DO NOT USE - reserved for internal use -10) CURSE The wearer is influenced by a curse -11) INFRA The wearer sees in the dark -12) POISON The wearer is poisoned -13) PROT-EVIL The wearer is protected from evil -14) PROT-GOOD The wearer is protected from good -15) SLEEP The wearer is magically put to sleep -16) !TRACK The wearer cannot be tracked -17) UNUSED DO NOT USE -18) UNUSED DO NOT USE -19) SNEAK The wearer moves silently -20) HIDE The wearer is hidden - use with caution -21) UNUSED DO NOT USE -22) CHARM DO NOT USE - reserved for internal use -~ -/* this line should not give any problems */ -#027 * CONTEXT_REDIT_MAIN_MENU -test -~ -#028 * CONTEXT_REDIT_NAME -test -~ -#029 * CONTEXT_REDIT_DESC -Never shown -~ -#030 * CONTEXT_REDIT_FLAGS -test -~ -#031 * CONTEXT_REDIT_SECTOR -test -~ -#032 * CONTEXT_REDIT_EXIT_MENU -test -~ -#033 * CONTEXT_REDIT_CONFIRM_SAVEDB -test -~ -#034 * CONTEXT_REDIT_CONFIRM_SAVESTRING -test -~ -#035 * CONTEXT_REDIT_EXIT_NUMBER -test -~ -#036 * CONTEXT_REDIT_EXIT_DESCRIPTION -Never shown -~ -#037 * CONTEXT_REDIT_EXIT_KEYWORD -test -~ -#038 * CONTEXT_REDIT_EXIT_KEY -test -~ -#039 * CONTEXT_REDIT_EXIT_DOORFLAGS -test -~ -#040 * CONTEXT_REDIT_EXTRADESC_MENU -test -~ -#041 * CONTEXT_REDIT_EXTRADESC_KEY -test -~ -#042 * CONTEXT_REDIT_EXTRADESC_DESCRIPTION -Never shown -~ -#043 * CONTEXT_ZEDIT_MAIN_MENU -test -~ -#044 * CONTEXT_ZEDIT_DELETE_ENTRY -test -~ -#045 * CONTEXT_ZEDIT_NEW_ENTRY -test -~ -#046 * CONTEXT_ZEDIT_CHANGE_ENTRY -test -~ -#047 * CONTEXT_ZEDIT_COMMAND_TYPE -test -~ -#048 * CONTEXT_ZEDIT_IF_FLAG -test -~ -#049 * CONTEXT_ZEDIT_ARG1 -test -~ -#050 * CONTEXT_ZEDIT_ARG2 -test -~ -#051 * CONTEXT_ZEDIT_ARG3 -test -~ -#052 * CONTEXT_ZEDIT_ZONE_NAME -test -~ -#053 * CONTEXT_ZEDIT_ZONE_LIFE -test -~ -#054 * CONTEXT_ZEDIT_ZONE_BOT -test -~ -#055 * CONTEXT_ZEDIT_ZONE_TOP -test -~ -#056 * CONTEXT_ZEDIT_ZONE_RESET -test -~ -#057 * CONTEXT_ZEDIT_CONFIRM_SAVESTRING -test -~ -#058 * CONTEXT_ZEDIT_SARG1 -test -~ -#059 * CONTEXT_ZEDIT_SARG2 -test -~ -#060 * CONTEXT_MEDIT_MAIN_MENU -test -~ -#061 * CONTEXT_MEDIT_ALIAS -test -~ -#062 * CONTEXT_MEDIT_S_DESC -test -~ -#063 * CONTEXT_MEDIT_L_DESC -test -~ -#064 * CONTEXT_MEDIT_D_DESC -Never shown -~ -#065 * CONTEXT_MEDIT_NPC_FLAGS -test -~ -#066 * CONTEXT_MEDIT_AFF_FLAGS -test -~ -#067 * CONTEXT_MEDIT_CONFIRM_SAVESTRING -test -~ -#068 * CONTEXT_MEDIT_SEX -test -~ -#069 * CONTEXT_MEDIT_HITROLL -test -~ -#070 * CONTEXT_MEDIT_DAMROLL -test -~ -#071 * CONTEXT_MEDIT_NDD -test -~ -#072 * CONTEXT_MEDIT_SDD -test -~ -#073 * CONTEXT_MEDIT_NUM_HP_DICE -test -~ -#074 * CONTEXT_MEDIT_SIZE_HP_DICE -test -~ -#075 * CONTEXT_MEDIT_ADD_HP -test -~ -#076 * CONTEXT_MEDIT_AC -test -~ -#077 * CONTEXT_MEDIT_EXP -test -~ -#078 * CONTEXT_MEDIT_GOLD -test -~ -#079 * CONTEXT_MEDIT_POS -test -~ -#080 * CONTEXT_MEDIT_DEFAULT_POS -test -~ -#081 * CONTEXT_MEDIT_ATTACK -test -~ -#082 * CONTEXT_MEDIT_LEVEL -test -~ -#083 * CONTEXT_MEDIT_ALIGNMENT -test -~ -#084 * CONTEXT_SEDIT_MAIN_MENU -test -~ -#085 * CONTEXT_SEDIT_CONFIRM_SAVESTRING -test -~ -#086 * CONTEXT_SEDIT_NOITEM1 -test -~ -#087 * CONTEXT_SEDIT_NOITEM2 -test -~ -#088 * CONTEXT_SEDIT_NOCASH1 -test -~ -#089 * CONTEXT_SEDIT_NOCASH2 -test -~ -#090 * CONTEXT_SEDIT_NOBUY -test -~ -#091 * CONTEXT_SEDIT_BUY -test -~ -#092 * CONTEXT_SEDIT_SELL -test -~ -#093 * CONTEXT_SEDIT_PRODUCTS_MENU -test -~ -#094 * CONTEXT_SEDIT_ROOMS_MENU -test -~ -#095 * CONTEXT_SEDIT_NAMELIST_MENU -test -~ -#096 * CONTEXT_SEDIT_NAMELIST -test -~ -#097 * CONTEXT_SEDIT_OPEN1 -test -~ -#098 * CONTEXT_SEDIT_OPEN2 -test -~ -#099 * CONTEXT_SEDIT_CLOSE1 -test -~ -#100 * CONTEXT_SEDIT_CLOSE2 -test -~ -#101 * CONTEXT_SEDIT_KEEPER -test -~ -#102 * CONTEXT_SEDIT_BUY_PROFIT -test -~ -#103 * CONTEXT_SEDIT_SELL_PROFIT -test -~ -#104 * CONTEXT_SEDIT_TYPE_MENU -test -~ -#105 * CONTEXT_SEDIT_DELETE_TYPE -test -~ -#106 * CONTEXT_SEDIT_DELETE_PRODUCT -test -~ -#107 * CONTEXT_SEDIT_NEW_PRODUCT -test -~ -#108 * CONTEXT_SEDIT_DELETE_ROOM -test -~ -#109 * CONTEXT_SEDIT_NEW_ROOM -test -~ -#110 * CONTEXT_SEDIT_SHOP_FLAGS -test -~ -#111 * CONTEXT_SEDIT_NOTRADE -test -~ -#112 * CONTEXT_TRIGEDIT_MAIN_MENU -This is the Trigger edit page. - -From here you have access to all the options needed to create a script. -The page is divided into two sections; -One describing the triggers' type and arguments, -and one showing the command list (point 6). -~ -#113 * CONTEXT_TRIGEDIT_TRIGTYPE -test -~ -#114 * CONTEXT_TRIGEDIT_CONFIRM_SAVESTRING -If you type 'y', the trigger is saved to disk right away. - 'n' will let you quit without saving, while - 'a' will abort the quit -~ -#115 * CONTEXT_TRIGEDIT_NAME -This will let you decide on the name of the trigger. -Anything will go, but it is recommended you keep it -short and to the point. -~ -#116 * CONTEXT_TRIGEDIT_INTENDED -Here you decide on the type of thing this trigger is made for. -You can attach it to other types later, but this decides which -list of types you will get when you get to that point. -~ -#117 * CONTEXT_TRIGEDIT_TYPES -test -~ -#118 * CONTEXT_TRIGEDIT_COMMANDS -test -~ -#119 * CONTEXT_TRIGEDIT_NARG -test -~ -#120 * CONTEXT_TRIGEDIT_ARGUMENT -test -~ -#121 * CONTEXT_SCRIPT_MAIN_MENU -test -~ -#122 * CONTEXT_SCRIPT_NEW_TRIGGER -test -~ -#123 * CONTEXT_SCRIPT_DEL_TRIGGER -~ \ No newline at end of file diff --git a/lib/text/immlist b/lib/text/immlist index 5a225a7..139ce76 100644 --- a/lib/text/immlist +++ b/lib/text/immlist @@ -1,6 +1,7 @@ -************************************************************************* -* The following people have reached immortality on tbaMUD. * -************************************************************************* +******************************************************************************* +* The following people have reached immortality on tbaMUD. * +******************************************************************************* Immortals ~~~~~~~~~ + diff --git a/lib/text/wizlist b/lib/text/wizlist index e663c87..e712ec0 100644 --- a/lib/text/wizlist +++ b/lib/text/wizlist @@ -1,9 +1,10 @@ -************************************************************************* -* The following people have reached immortality on tbaMUD. * -************************************************************************* +******************************************************************************* +* The following people have reached immortality on tbaMUD. * +******************************************************************************* Implementors ~~~~~~~~~~~~ + Rumble Greater Gods ~~~~~~~~~~~~ diff --git a/lib/world/obj/0.obj b/lib/world/obj/0.obj index 6eeae5c..02b9db5 100644 --- a/lib/world/obj/0.obj +++ b/lib/world/obj/0.obj @@ -40,6 +40,10 @@ The email listing of the gods is pinned against the wall.~ 0 0 0 0 1 1 0 30 E +emails listing~ + HELP CONTACT +~ +E wizlist~ Implementors ~~~~~~~~~~~ @@ -56,10 +60,6 @@ wizlist~ Santa Shamra Shimmer Silvanos Smaug Snowlock Talgard Taylor Theophilus Tocamat Torpidai Treestump Tuskony Zizazat ~ -E -emails listing~ - HELP CONTACT -~ #5 foraged berries~ some foraged berries~ @@ -135,7 +135,7 @@ waybread bread~ a waybread~ Some waybread has been put here.~ ~ -19 0 0 0 0 a 0 0 0 0 0 0 0 +19 0 0 0 0 a 0 0 0 rs 0 0 0 24 0 0 0 1 50 0 0 E @@ -693,19 +693,6 @@ runestone Sanctum church~ This is one of the runestones used by the priests of Sanctum in their duties. ~ -#41 -Bell sanctum freedom~ -the bell of Sanctum's freedom~ -The symbol of Sanctum's freedom waits to be returned to its city.~ -Nothing. -~ -4 b 0 0 0 ao 0 0 0 0 0 0 0 -30 1 1 39 -1 1000 0 0 -E -bell sanctum's freedom~ - This is the bell that represents the freedom of the city of Sanctum. -~ #42 hammer Sanctum~ the hammer of Sanctum~ @@ -755,20 +742,6 @@ An immortal device to set questpoints.~ 0 0 0 0 1 1 0 31 T 168 -#45 -pile coins gold~ -a pile of gold coins~ -A pile of gold coins is half-buried in the mud and muck.~ -~ -20 0 0 0 0 a 0 0 0 0 0 0 0 -1000000 0 0 0 -0 0 0 0 -T 193 -E -pile coins gold~ - The glittering gold catches your eye. Though covered in dirt and grime money -is money. -~ #46 key gateguard~ the gateguard key~ @@ -803,19 +776,6 @@ comfy bed~ This bed is beckoning you to lay down and get some much needed sleep. Just "sleep bed" ~ -#50 -generic light~ -a generic light~ -A generic light is lying here.~ -~ -1 0 0 0 0 ao 0 0 0 0 0 0 0 -0 0 -1 0 -1 1 0 0 -E -generic light~ - Since this light is completely generic there are no distinctive features -worth noticing. -~ #51 generic ring rfinger~ a generic ring~ diff --git a/lib/world/obj/12.obj b/lib/world/obj/12.obj index 9c1e5f6..c983482 100644 --- a/lib/world/obj/12.obj +++ b/lib/world/obj/12.obj @@ -1,46 +1,3 @@ -#1200 -email list staff~ -a list of the staff's emails~ -A list of the staff's emails has been left here.~ -~ -14 0 0 0 0 ao 0 0 0 0 0 0 0 -0 0 0 0 -1 1 0 0 -E -list email staff~ -@RHELP CONTACT@n for the most recent listing or: - -Name Email ICQ # AIM MSN -Welcor welcor@@builderacademy.net 18755607 -Rumble rumble@@builderacademy.net 100121659 admwint wintersn -Ferret ferret@@builderacademy.net radiax01 -Elaseth elaseth@@builderacademy.net ParaVox3 -Relsqui relsqui@@builderacademy.net 72136407 spiritethereal -Heiach heiach@@builderacademy.net heiach heiach -Detta detta@@builderacademy.net -Shamra shamra@@builderacademy.net BlackdemonRahl -Elorien elorien@@builderacademy.net -Random random@@builderacademy.net 219948345 -Fyre fyre@@builderacademy.net -Fizban mudaddict4life@@gmail.com Fizban1216 Fizban1216 -~ -#1201 -pamphlet trigedit~ -a pamphlet advertising the wonderful world of triggers~ -A small pamphlet advertising the wonderful world of Trigedit.~ -~ -12 0 0 0 0 an 0 0 0 0 0 0 0 -0 0 0 0 -1 1 0 0 -E -pamphlet trigedit~ -Are you looking to pour in life into your mobs? To enliven your rooms? Or just -make your objects special? Well then, come and read to your hearts content -through the trigedit tutorial hallway starting in room 13. It will describe -what trigedit is, what it can do, and of course, how to make them. Dont forget, -for optimal results, Use the pages in conjuction with TSTAT. Have fun with the -power of (minor)coding! -~ #1202 scroll~ a scroll~ @@ -57,15 +14,6 @@ This is a @Rred@n test object~ 1 0 0 0 0 a 0 0 0 0 0 0 0 0 0 23 0 1 1 0 0 -#1204 -wand~ -the wand~ -A test wand~ -~ -3 0 0 0 0 a 0 0 0 0 0 0 0 -1 1 1 31 -1 1 0 0 -T 1284 #1205 staff~ staff~ @@ -74,23 +22,6 @@ Staff~ 4 0 0 0 0 a 0 0 0 0 0 0 0 1 3 3 31 1 1 0 0 -#1209 -squishy armchair chair~ -a squishy armchair~ -A large squishy armchair sits in front of the fireplace.~ -~ -12 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 -0 0 0 0 -T 1209 -T 1286 -E -chair armchair squishy~ - This chair has large red leather cushions, on the seat and back. Strange -patterens are sewn into the seat and back. The arms are made of the same -material as the rest of the chair, and they seem to be stuffed to a point where -they look to be almost exploding. -~ #1210 Straight Jacket~ a straight jacket~ @@ -99,24 +30,6 @@ You can't see it...it isn't here.~ 9 0 0 0 0 ad 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 -#1212 -game console~ -a game console~ -A game console sits in one corner of the room~ -~ -12 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 -0 0 0 0 -T 1212 -T 1213 -E -game console~ -To start a game type: go -To move around type: go - -You must collect the prizes and avoid the animal to obtain maximum points. -Each prize is worth 500 * game_level in experience. -~ #1218 spring fountain water~ a spring well~ @@ -222,23 +135,11 @@ A Gigantic Black Staff rests here.~ 4 b 0 0 0 ao 0 0 0 0 0 0 0 1 10 10 23 5 1 0 30 +T 87 E staff black~ A Huge staff sits here eminating a tremendous power. ~ -#1269 -switch~ -a switch from a willow tree~ -A magical switch from a willow tree has carelessly been discarded here.~ -~ -5 b 0 0 0 an 0 0 0 0 0 0 0 -7 10 5 2 -2 1000 0 0 -T 1270 -E -switch willow~ - It's a stick. It's magical. It also hurts when you beat people with it. -~ #1275 uniform~ a Builder Academy uniform~ @@ -303,24 +204,6 @@ A large blackened desk~ 15 0 0 0 0 0 0 0 0 0 0 0 0 20000 3 0 0 0 0 0 0 -#1298 -firework new year piece~ -a piece of fireworks~ -A piece of fireworks is planted in a champagne bottle.~ -~ -12 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 -0 0 0 0 -T 1297 -E -bottle champagne~ - The bottle is filled partially with water so it doesn't tilt over. Someone -has obviously drunk the champagne first. -~ -E -firework new year piece~ - This large rocket is about to go up! Strange colours will fill the sky! -~ #1299 christmas tree~ a christmas tree~ diff --git a/lib/world/obj/30.obj b/lib/world/obj/30.obj index c722ef5..2f4c4df 100644 --- a/lib/world/obj/30.obj +++ b/lib/world/obj/30.obj @@ -22,14 +22,6 @@ A dark bottle of ale has been left here.~ 17 0 0 0 0 a 0 0 0 0 0 0 0 8 8 3 0 10 10 3 0 -#3003 -bottle firebreather~ -a bottle~ -A bottle of firebreather has been left here.~ -~ -17 0 0 0 0 a 0 0 0 0 0 0 0 -8 8 7 0 -10 50 17 0 #3004 bottle local~ a bottle~ @@ -135,13 +127,13 @@ A small sword lies here.~ 0 1 6 11 3 60 10 0 E -sword small~ - The small sword seems to have an inscription of some sort. -~ -E inscription~ It says: 'May this sword be a good companion. ' ~ +E +sword small~ + The small sword seems to have an inscription of some sort. +~ #3022 sword long~ a long sword~ @@ -289,14 +281,6 @@ E pot~ It is a nice pot. You could use it, if you ever settled down. ~ -#3040 -plate breast~ -a breast plate~ -A breast plate is lying on the ground.~ -~ -9 0 0 0 0 ad 0 0 0 0 0 0 0 -7 0 0 0 -50 180 15 0 #3041 shirt chain mail~ a chain mail shirt~ @@ -535,13 +519,13 @@ A large, sociable bulletin board is mounted on a wall here.~ 0 0 0 0 0 0 0 0 E -board~ - If you can read this, the board is not working. -~ -E social bulletin~ Use 'look board' to read the board. ~ +E +board~ + If you can read this, the board is not working. +~ #3097 boards frozen bulletin gen_boards~ a frozen bulletin board~ @@ -551,13 +535,13 @@ A large bulletin board is here, carved from a block of ice.~ 0 0 0 0 0 0 0 0 E -board~ - If you can read this, the board is not working. -~ -E freeze bulletin~ Use 'look board' to read the board. ~ +E +board~ + If you can read this, the board is not working. +~ #3098 boards holy bulletin gen_boards~ a holy bulletin board~ @@ -567,13 +551,13 @@ A large bulletin board is mounted on a wall here. It glows with a faint aura.~ 0 0 0 0 0 0 0 0 E -board~ - If you can read this, the board is not working. -~ -E holy bulletin~ Use 'look board' to read the board. ~ +E +board~ + If you can read this, the board is not working. +~ #3099 boards bulletin gen_boards~ a bulletin board~ @@ -583,11 +567,11 @@ A large bulletin board is mounted on a wall here.~ 0 0 0 0 0 0 0 0 E -board~ - If you can read this, the board is not working. -~ -E bulletin~ Use 'look board' to read the board. ~ +E +board~ + If you can read this, the board is not working. +~ $~ diff --git a/lib/world/trg/0.trg b/lib/world/trg/0.trg index 91cf1e9..de512f2 100644 --- a/lib/world/trg/0.trg +++ b/lib/world/trg/0.trg @@ -2042,9 +2042,10 @@ end ~ #87 Obj Remove Example~ -1 l 90 +1 l 100 ~ return 0 +%send% %actor% You can't remove it. ~ #88 Obj Load Example~ @@ -2539,48 +2540,9 @@ end ~ #98 Mob Act - 98 Teleporter Give~ -0 e 0 -has entered the game.~ -* By Rumble -if %actor.is_pc% - if !%actor.eq(*)% - %load% obj 50 %actor% light - %load% obj 51 %actor% rfinger - %load% obj 52 %actor% lfinger - %load% obj 53 %actor% neck1 - %load% obj 54 %actor% neck2 - %load% obj 55 %actor% body - %load% obj 56 %actor% head - %load% obj 57 %actor% legs - %load% obj 58 %actor% feet - %load% obj 59 %actor% hands - %load% obj 60 %actor% arms - %load% obj 61 %actor% shield - %load% obj 62 %actor% about - %load% obj 63 %actor% waist - %load% obj 64 %actor% rwrist - %load% obj 65 %actor% lwrist - %load% obj 66 %actor% wield - %load% obj 67 %actor% hold - end - wait 2 sec - if !(%actor.inventory(82)%) - wait 1 s - say You are not prepared to travel these realms to their fullest. - wait 1 s - say Maybe I can help you. - %load% obj 82 - give teleporter %actor.name% - *could actor carry the weight? - if !%actor.inventory(82)% - drop teleporter - end - wait 2 s - say With this you may teleport to areas that may not be accessible in any other way. - wait 2 s - say HELP AREAS - end -end +0 g 100 +~ +whisper %actor% this is a crash test ~ #99 Obj Command 82 - Teleporter~ diff --git a/lib/world/wld/0.wld b/lib/world/wld/0.wld index 0fdca68..d0cf427 100644 --- a/lib/world/wld/0.wld +++ b/lib/world/wld/0.wld @@ -7,7 +7,7 @@ a strange portal located above you. D4 ~ ~ -0 0 100 +0 0 -1 S T 1200 #1 @@ -21,7 +21,7 @@ D5 A strange portal in the floor is the only exit. ~ ~ -0 0 100 +0 0 -1 S #2 Welcome to the Builder Academy~ @@ -552,6 +552,16 @@ D2 ~ 0 0 21 S +#32 +An unfinished room~ +You are in an unfinished room. +~ +0 0 0 0 0 9 +D1 +~ +~ +0 0 33 +S #33 Rumble's Room~ The mark of the immature man is that he wants to die nobly for a cause, @@ -559,6 +569,14 @@ while the mark of the mature man is that he wants to live humbly for one. --Wilhelm Stekel ~ 0 8 0 0 0 0 +D1 +~ +~ +0 0 33 +D3 +~ +~ +0 0 32 E .test~ can you see this with look around? @@ -703,7 +721,7 @@ D3 D4 ~ trapdoor~ -1 0 130 +1 0 -1 S #90 Epictetus' Prison Cell~ diff --git a/src/Makefile.in b/src/Makefile.in index 219c924..b810758 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -26,7 +26,7 @@ LIBS = @LIBS@ @CRYPTLIB@ @NETLIB@ OBJFILES = act.comm.o act.informative.o act.item.o act.movement.o \ act.offensive.o act.other.o act.social.o act.wizard.o aedit.o alias.o \ ban.o boards.o bsd-snprintf.o castle.o cedit.o class.o comm.o config.o \ - constants.o context_help.o db.o dg_comm.o dg_db_scripts.o dg_event.o \ + constants.o db.o dg_comm.o dg_db_scripts.o dg_event.o \ dg_handler.o dg_misc.o dg_mobcmd.o dg_objcmd.o dg_olc.o dg_scripts.o \ dg_triggers.o dg_variables.o dg_wldcmd.o fight.o genmob.o \ genobj.o genolc.o genshp.o genwld.o genzon.o graph.o handler.o hedit.o \ @@ -39,7 +39,7 @@ OBJFILES = act.comm.o act.informative.o act.item.o act.movement.o \ CXREF_FILES = act.comm.c act.informative.c act.item.c act.movement.c \ act.offensive.c act.other.c act.social.c act.wizard.c aedit.c alias.c \ ban.c boards.c bsd-snprintf.c castle.c cedit.c class.c comm.c config.c \ - constants.c context_help.c db.c dg_comm.c dg_db_scripts.c dg_event.c \ + constants.c db.c dg_comm.c dg_db_scripts.c dg_event.c \ dg_handler.c dg_misc.c dg_mobcmd.c dg_objcmd.c dg_olc.c dg_scripts.c \ dg_triggers.c dg_variables.c dg_wldcmd.c fight.c genmob.c \ genobj.c genolc.c genshp.c genwld.c genzon.c graph.c handler.c hedit.c \ diff --git a/src/act.informative.c b/src/act.informative.c index 006e2e2..e7248e9 100644 --- a/src/act.informative.c +++ b/src/act.informative.c @@ -211,12 +211,12 @@ void list_obj_to_char(struct obj_data *list, struct char_data *ch, int mode, int for (i = list; i; i = i->next_content) { num = 0; for (j = list; j != i; j = j->next_content) - if (!strcmp(j->short_description, i->short_description)) + if (!strcmp(j->short_description, i->short_description) && (!strcmp(j->name, i->name))) break; if (j != i) continue; for (j = i; j; j = j->next_content) - if (!strcmp(j->short_description, i->short_description)) + if (!strcmp(j->short_description, i->short_description) && (!strcmp(j->name, i->name))) num++; if (CAN_SEE_OBJ(ch, i) && (*i->description != '.' || (IS_NPC(ch) || PRF_FLAGGED(ch, PRF_HOLYLIGHT)))) { if (mode == SHOW_OBJ_LONG) diff --git a/src/act.movement.c b/src/act.movement.c index a677cbf..9526ec4 100644 --- a/src/act.movement.c +++ b/src/act.movement.c @@ -52,7 +52,7 @@ int has_boat(struct char_data *ch) if (GET_LEVEL(ch) > LVL_IMMORT) return (1); - if (AFF_FLAGGED(ch, AFF_WATERWALK)) + if (AFF_FLAGGED(ch, AFF_WATERWALK) || AFF_FLAGGED(ch, AFF_FLYING)) return (1); /* non-wearable boats in inventory will do it */ @@ -68,6 +68,56 @@ int has_boat(struct char_data *ch) return (0); } +/* Simple function to determine if char can fly. */ +int has_flight(struct char_data *ch) +{ + struct obj_data *obj; + int i; + + if (GET_LEVEL(ch) > LVL_IMMORT) + return (1); + + if (AFF_FLAGGED(ch, AFF_FLYING)) + return (1); + + /* Non-wearable flying items in inventory will do it. */ + for (obj = ch->carrying; obj; obj = obj->next_content) + if (OBJAFF_FLAGGED(obj, AFF_FLYING) && OBJAFF_FLAGGED(obj, AFF_FLYING)) + return (1); + + /* Any equipped objects with AFF_FLYING will do it too. */ + for (i = 0; i < NUM_WEARS; i++) + if (GET_EQ(ch, i) && OBJAFF_FLAGGED(obj, AFF_FLYING)) + return (1); + + return (0); +} + +/* Simple function to determine if char can scuba. */ +int has_scuba(struct char_data *ch) +{ + struct obj_data *obj; + int i; + + if (GET_LEVEL(ch) > LVL_IMMORT) + return (1); + + if (AFF_FLAGGED(ch, AFF_SCUBA)) + return (1); + + /* Non-wearable scuba items in inventory will do it. */ + for (obj = ch->carrying; obj; obj = obj->next_content) + if (OBJAFF_FLAGGED(obj, AFF_SCUBA) && (find_eq_pos(ch, obj, NULL) < 0)) + return (1); + + /* Any equipped objects with AFF_SCUBA will do it too. */ + for (i = 0; i < NUM_WEARS; i++) + if (GET_EQ(ch, i) && OBJAFF_FLAGGED(obj, AFF_SCUBA)) + return (1); + + return (0); +} + /* do_simple_move assumes that there is no master, no followers and that the * direction exists. It returns 1 for success, 0 if failure. */ int do_simple_move(struct char_data *ch, int dir, int need_specials_check) @@ -104,6 +154,22 @@ int do_simple_move(struct char_data *ch, int dir, int need_specials_check) } } + /* If this room or the one we're going to needs flight, check for it. */ + if ((SECT(IN_ROOM(ch)) == SECT_FLYING) || (SECT(EXIT(ch, dir)->to_room) == SECT_FLYING)) { + if (!has_flight(ch)) { + send_to_char(ch, "You need to be flying to go there!\r\n"); + return (0); + } + } + + /* If this room or the one we're going to needs scuba, check for it. */ + if ((SECT(IN_ROOM(ch)) == SECT_UNDERWATER) || (SECT(EXIT(ch, dir)->to_room) == SECT_UNDERWATER)) { + if (!has_scuba(ch)) { + send_to_char(ch, "You need to be able to breathe water to go there!\r\n"); + return (0); + } + } + /* move points needed is avg. move loss for src and destination sect type */ need_movement = (movement_loss[SECT(IN_ROOM(ch))] + movement_loss[SECT(EXIT(ch, dir)->to_room)]) / 2; diff --git a/src/act.wizard.c b/src/act.wizard.c index 4c83a27..6499abb 100644 --- a/src/act.wizard.c +++ b/src/act.wizard.c @@ -117,6 +117,7 @@ ACMD(do_copyover); ACMD(do_peace); void mod_llog_entry(struct last_entry *llast,int type); ACMD(do_plist); +ACMD(do_wizupdate); int purge_room(room_rnum room) { @@ -646,7 +647,7 @@ void do_stat_object(struct char_data *ch, struct obj_data *j) char buf[MAX_STRING_LENGTH]; struct char_data *tempch; - send_to_char(ch, "Name: '%s%s%s', Aliases: %s\r\n", CCYEL(ch, C_NRM), + send_to_char(ch, "Name: '%s%s%s', Keywords: %s\r\n", CCYEL(ch, C_NRM), j->short_description ? j->short_description : "", CCNRM(ch, C_NRM), j->name); @@ -802,7 +803,7 @@ void do_stat_character(struct char_data *ch, struct char_data *k) GET_NAME(k), IS_NPC(k) ? GET_ID(k) : GET_IDNUM(k), GET_ROOM_VNUM(IN_ROOM(k)), IS_NPC(k) ? NOWHERE : GET_LOADROOM(k)); if (IS_MOB(k)) - send_to_char(ch, "Alias: %s, VNum: [%5d], RNum: [%5d]\r\n", k->player.name, GET_MOB_VNUM(k), GET_MOB_RNUM(k)); + send_to_char(ch, "Keyword: %s, VNum: [%5d], RNum: [%5d]\r\n", k->player.name, GET_MOB_VNUM(k), GET_MOB_RNUM(k)); send_to_char(ch, "Title: %s\r\n", k->player.title ? k->player.title : ""); @@ -1280,6 +1281,7 @@ void do_cheat(struct char_data *ch) return; } send_to_char(ch, "Your level has been restored, for now!\r\n"); + save_char(ch); } ACMD(do_return) @@ -4100,6 +4102,7 @@ ACMD(do_file) { "syslog", LVL_GOD, "../syslog" }, { "crash", LVL_GOD, "../syslog.CRASH" }, { "help", LVL_GOD, "../log/help" }, + { "changelog", LVL_GOD, "../changelog" }, { "\n", 0, "\n" } }; @@ -4128,9 +4131,9 @@ ACMD(do_file) send_to_char(ch, "You are not godly enough to view that file!\r\n"); return; } - + if(!*value) - req_lines = 15; /* default is the last 15 lines */ + req_lines = 15; /* Default is the last 30 lines. */ else req_lines = atoi(value); @@ -4148,7 +4151,8 @@ ACMD(do_file) } rewind(req_file); - req_lines = MIN(MIN(req_lines, num_lines),150); + /* Limit the maximum number of lines to 300. */ + req_lines = MIN(MIN(req_lines, num_lines), 300); len = snprintf(buf, sizeof(buf), "Last %d lines of %s:\r\n", req_lines, fields[l].file); @@ -4326,3 +4330,9 @@ ACMD(do_plist) "%d players listed.\r\n", CCCYN(ch, C_NRM), CCNRM(ch, C_NRM), count); page_string(ch->desc, buf, TRUE); } + +ACMD(do_wizupdate) +{ + run_autowiz(); + send_to_char(ch, "Wizlists updated.\n\r"); +} diff --git a/src/comm.c b/src/comm.c index cb68802..777074e 100644 --- a/src/comm.c +++ b/src/comm.c @@ -2568,7 +2568,7 @@ char *act(const char *str, int hide_invisible, struct char_data *ch, } #include "screen.h" - if (type == TO_GMOTE) { + if (type == TO_GMOTE && !IS_NPC(ch)) { struct descriptor_data *i; char buf[MAX_STRING_LENGTH]; diff --git a/src/config.c b/src/config.c index f9b394a..b75129b 100644 --- a/src/config.c +++ b/src/config.c @@ -193,17 +193,13 @@ room_vnum donation_room_3 = 235; /* GAME OPERATION OPTIONS */ -/* - * Please read 128bit.readme before setting this to true. Set this - * flag if you want the conversion to take place. - */ +/* If false stock world files will be converted to 128bit. If true the MUD will + * exit with a warning when encountering stock world files. */ int bitwarning = FALSE; -/* - * If you want to look at normal worldfiles but DO NOT want to save - * to 128bit format, turn this to false. However, do not save through - * olc, or your worldfiles will be 128bit anyway. - */ +/* If you want to look at normal world files but DO NOT want to save to 128bit + * format, turn this to false. However, do not save through olc, or your + * world files will be 128bit anyway. */ int bitsavetodisk = TRUE; /* This is the default port on which the game should run if no port is given on diff --git a/src/constants.c b/src/constants.c index e8dace4..5102276 100644 --- a/src/constants.c +++ b/src/constants.c @@ -207,8 +207,8 @@ const char *affected_bits[] = "PROT-GOOD", "SLEEP", "NO_TRACK", - "UNUSED", - "UNUSED", + "FLY", + "SCUBA", "SNEAK", "HIDE", "UNUSED", diff --git a/src/context_help.c b/src/context_help.c deleted file mode 100644 index a6e91d8..0000000 --- a/src/context_help.c +++ /dev/null @@ -1,272 +0,0 @@ -/************************************************************************** -* File: context_help.c Part of tbaMUD * -* Usage: Handles the context sensitive help system. * -* By Welcor. * -**************************************************************************/ - -#include "conf.h" -#include "sysdep.h" -#include "structs.h" -#include "utils.h" -#include "comm.h" -#include "db.h" -#include "interpreter.h" -#include "oasis.h" -#include "dg_olc.h" - -/* Extern functions */ -ACMD(do_help); - -/* local global */ -char *context_help_list[NUM_CONTEXTS]; - -/* If you add more olc options, be sure to add a case for it here. - Welcor */ -int find_context(struct descriptor_data *d) -{ - switch STATE(d) { - case CON_TRIGEDIT: return find_context_trigedit(d); - case CON_REDIT: return find_context_redit(d); - case CON_MEDIT: return find_context_medit(d); - case CON_OEDIT: return find_context_oedit(d); - case CON_ZEDIT: return find_context_zedit(d); - case CON_SEDIT: return find_context_sedit(d); - default: return NOTHING; - } -} - -int find_context_oedit(struct descriptor_data *d) -{ - switch (OLC_MODE(d)) { - case OEDIT_MAIN_MENU: return CONTEXT_OEDIT_MAIN_MENU; - case OEDIT_KEYWORD: return CONTEXT_OEDIT_KEYWORD; - case OEDIT_SHORTDESC: return CONTEXT_OEDIT_SHORTDESC; - case OEDIT_LONGDESC: return CONTEXT_OEDIT_LONGDESC; - case OEDIT_ACTDESC: return CONTEXT_OEDIT_ACTDESC; - case OEDIT_TYPE: return CONTEXT_OEDIT_TYPE; - case OEDIT_EXTRAS: return CONTEXT_OEDIT_EXTRAS; - case OEDIT_WEAR: return CONTEXT_OEDIT_WEAR; - case OEDIT_WEIGHT: return CONTEXT_OEDIT_WEIGHT; - case OEDIT_COST: return CONTEXT_OEDIT_COST; - case OEDIT_COSTPERDAY: return CONTEXT_OEDIT_COSTPERDAY; - case OEDIT_TIMER: return CONTEXT_OEDIT_TIMER; - case OEDIT_VALUE_1: return CONTEXT_OEDIT_VALUE_1; - case OEDIT_VALUE_2: return CONTEXT_OEDIT_VALUE_2; - case OEDIT_VALUE_3: return CONTEXT_OEDIT_VALUE_3; - case OEDIT_VALUE_4: return CONTEXT_OEDIT_VALUE_4; - case OEDIT_APPLY: return CONTEXT_OEDIT_APPLY; - case OEDIT_APPLYMOD: return CONTEXT_OEDIT_APPLYMOD; - case OEDIT_EXTRADESC_KEY: return CONTEXT_OEDIT_EXTRADESC_KEY; - case OEDIT_CONFIRM_SAVEDB: return CONTEXT_OEDIT_CONFIRM_SAVEDB; - case OEDIT_CONFIRM_SAVESTRING: return CONTEXT_OEDIT_CONFIRM_SAVESTRING; - case OEDIT_PROMPT_APPLY: return CONTEXT_OEDIT_PROMPT_APPLY; - case OEDIT_EXTRADESC_DESCRIPTION: return CONTEXT_OEDIT_EXTRADESC_DESCRIPTION; - case OEDIT_EXTRADESC_MENU: return CONTEXT_OEDIT_EXTRADESC_MENU; - case OEDIT_LEVEL: return CONTEXT_OEDIT_LEVEL; - case OEDIT_PERM: return CONTEXT_OEDIT_PERM; - case OLC_SCRIPT_EDIT: return find_context_script_edit(d); - default: return NOTHING; - } -} - -int find_context_redit(struct descriptor_data *d) -{ - switch (OLC_MODE(d)) { - case REDIT_MAIN_MENU: return CONTEXT_REDIT_MAIN_MENU; - case REDIT_NAME: return CONTEXT_REDIT_NAME; - case REDIT_DESC: return CONTEXT_REDIT_DESC; - case REDIT_FLAGS: return CONTEXT_REDIT_FLAGS; - case REDIT_SECTOR: return CONTEXT_REDIT_SECTOR; - case REDIT_EXIT_MENU: return CONTEXT_REDIT_EXIT_MENU; - case REDIT_CONFIRM_SAVEDB: return CONTEXT_REDIT_CONFIRM_SAVEDB; - case REDIT_CONFIRM_SAVESTRING: return CONTEXT_REDIT_CONFIRM_SAVESTRING; - case REDIT_EXIT_NUMBER: return CONTEXT_REDIT_EXIT_NUMBER; - case REDIT_EXIT_DESCRIPTION: return CONTEXT_REDIT_EXIT_DESCRIPTION; - case REDIT_EXIT_KEYWORD: return CONTEXT_REDIT_EXIT_KEYWORD; - case REDIT_EXIT_KEY: return CONTEXT_REDIT_EXIT_KEY; - case REDIT_EXIT_DOORFLAGS: return CONTEXT_REDIT_EXIT_DOORFLAGS; - case REDIT_EXTRADESC_MENU: return CONTEXT_REDIT_EXTRADESC_MENU; - case REDIT_EXTRADESC_KEY: return CONTEXT_REDIT_EXTRADESC_KEY; - case REDIT_EXTRADESC_DESCRIPTION:return CONTEXT_REDIT_EXTRADESC_DESCRIPTION; - case OLC_SCRIPT_EDIT: return find_context_script_edit(d); - default: return NOTHING; - } -} - -int find_context_zedit(struct descriptor_data *d) -{ - switch (OLC_MODE(d)) { - case ZEDIT_MAIN_MENU: return CONTEXT_ZEDIT_MAIN_MENU; - case ZEDIT_DELETE_ENTRY: return CONTEXT_ZEDIT_DELETE_ENTRY; - case ZEDIT_NEW_ENTRY: return CONTEXT_ZEDIT_NEW_ENTRY; - case ZEDIT_CHANGE_ENTRY: return CONTEXT_ZEDIT_CHANGE_ENTRY; - case ZEDIT_COMMAND_TYPE: return CONTEXT_ZEDIT_COMMAND_TYPE; - case ZEDIT_IF_FLAG: return CONTEXT_ZEDIT_IF_FLAG; - case ZEDIT_ARG1: return CONTEXT_ZEDIT_ARG1; - case ZEDIT_ARG2: return CONTEXT_ZEDIT_ARG2; - case ZEDIT_ARG3: return CONTEXT_ZEDIT_ARG3; - case ZEDIT_ZONE_NAME: return CONTEXT_ZEDIT_ZONE_NAME; - case ZEDIT_ZONE_LIFE: return CONTEXT_ZEDIT_ZONE_LIFE; - case ZEDIT_ZONE_BOT: return CONTEXT_ZEDIT_ZONE_BOT; - case ZEDIT_ZONE_TOP: return CONTEXT_ZEDIT_ZONE_TOP; - case ZEDIT_ZONE_RESET: return CONTEXT_ZEDIT_ZONE_RESET; - case ZEDIT_CONFIRM_SAVESTRING:return CONTEXT_ZEDIT_CONFIRM_SAVESTRING; - case ZEDIT_SARG1: return CONTEXT_ZEDIT_SARG1; - case ZEDIT_SARG2: return CONTEXT_ZEDIT_SARG2; - default: return NOTHING; - } -} - -int find_context_medit(struct descriptor_data *d) -{ - switch (OLC_MODE(d)) { - case MEDIT_MAIN_MENU: return CONTEXT_MEDIT_MAIN_MENU; - case MEDIT_KEYWORD: return CONTEXT_MEDIT_KEYWORD; - case MEDIT_S_DESC: return CONTEXT_MEDIT_S_DESC; - case MEDIT_L_DESC: return CONTEXT_MEDIT_L_DESC; - case MEDIT_D_DESC: return CONTEXT_MEDIT_D_DESC; - case MEDIT_NPC_FLAGS: return CONTEXT_MEDIT_NPC_FLAGS; - case MEDIT_AFF_FLAGS: return CONTEXT_MEDIT_AFF_FLAGS; - case MEDIT_CONFIRM_SAVESTRING:return CONTEXT_MEDIT_CONFIRM_SAVESTRING; - case MEDIT_SEX: return CONTEXT_MEDIT_SEX; - case MEDIT_HITROLL: return CONTEXT_MEDIT_HITROLL; - case MEDIT_DAMROLL: return CONTEXT_MEDIT_DAMROLL; - case MEDIT_NDD: return CONTEXT_MEDIT_NDD; - case MEDIT_SDD: return CONTEXT_MEDIT_SDD; - case MEDIT_NUM_HP_DICE: return CONTEXT_MEDIT_NUM_HP_DICE; - case MEDIT_SIZE_HP_DICE: return CONTEXT_MEDIT_SIZE_HP_DICE; - case MEDIT_ADD_HP: return CONTEXT_MEDIT_ADD_HP; - case MEDIT_AC: return CONTEXT_MEDIT_AC; - case MEDIT_EXP: return CONTEXT_MEDIT_EXP; - case MEDIT_GOLD: return CONTEXT_MEDIT_GOLD; - case MEDIT_POS: return CONTEXT_MEDIT_POS; - case MEDIT_DEFAULT_POS: return CONTEXT_MEDIT_DEFAULT_POS; - case MEDIT_ATTACK: return CONTEXT_MEDIT_ATTACK; - case MEDIT_LEVEL: return CONTEXT_MEDIT_LEVEL; - case MEDIT_ALIGNMENT: return CONTEXT_MEDIT_ALIGNMENT; - case OLC_SCRIPT_EDIT: return find_context_script_edit(d); - default: return NOTHING; - } -} - -int find_context_sedit(struct descriptor_data *d) -{ - switch (OLC_MODE(d)) { - case SEDIT_MAIN_MENU: return CONTEXT_SEDIT_MAIN_MENU; - case SEDIT_CONFIRM_SAVESTRING:return CONTEXT_SEDIT_CONFIRM_SAVESTRING; - case SEDIT_NOITEM1: return CONTEXT_SEDIT_NOITEM1; - case SEDIT_NOITEM2: return CONTEXT_SEDIT_NOITEM2; - case SEDIT_NOCASH1: return CONTEXT_SEDIT_NOCASH1; - case SEDIT_NOCASH2: return CONTEXT_SEDIT_NOCASH2; - case SEDIT_NOBUY: return CONTEXT_SEDIT_NOBUY; - case SEDIT_BUY: return CONTEXT_SEDIT_BUY; - case SEDIT_SELL: return CONTEXT_SEDIT_SELL; - case SEDIT_PRODUCTS_MENU: return CONTEXT_SEDIT_PRODUCTS_MENU; - case SEDIT_ROOMS_MENU: return CONTEXT_SEDIT_ROOMS_MENU; - case SEDIT_NAMELIST_MENU: return CONTEXT_SEDIT_NAMELIST_MENU; - case SEDIT_NAMELIST: return CONTEXT_SEDIT_NAMELIST; - case SEDIT_OPEN1: return CONTEXT_SEDIT_OPEN1; - case SEDIT_OPEN2: return CONTEXT_SEDIT_OPEN2; - case SEDIT_CLOSE1: return CONTEXT_SEDIT_CLOSE1; - case SEDIT_CLOSE2: return CONTEXT_SEDIT_CLOSE2; - case SEDIT_KEEPER: return CONTEXT_SEDIT_KEEPER; - case SEDIT_BUY_PROFIT: return CONTEXT_SEDIT_BUY_PROFIT; - case SEDIT_SELL_PROFIT: return CONTEXT_SEDIT_SELL_PROFIT; - case SEDIT_TYPE_MENU: return CONTEXT_SEDIT_TYPE_MENU; - case SEDIT_DELETE_TYPE: return CONTEXT_SEDIT_DELETE_TYPE; - case SEDIT_DELETE_PRODUCT: return CONTEXT_SEDIT_DELETE_PRODUCT; - case SEDIT_NEW_PRODUCT: return CONTEXT_SEDIT_NEW_PRODUCT; - case SEDIT_DELETE_ROOM: return CONTEXT_SEDIT_DELETE_ROOM; - case SEDIT_NEW_ROOM: return CONTEXT_SEDIT_NEW_ROOM; - case SEDIT_SHOP_FLAGS: return CONTEXT_SEDIT_SHOP_FLAGS; - case SEDIT_NOTRADE: return CONTEXT_SEDIT_NOTRADE; - default: return NOTHING; - } -} - -int find_context_trigedit(struct descriptor_data *d) -{ - switch (OLC_MODE(d)) { - case TRIGEDIT_MAIN_MENU: return CONTEXT_TRIGEDIT_MAIN_MENU; - case TRIGEDIT_TRIGTYPE: return CONTEXT_TRIGEDIT_TRIGTYPE; - case TRIGEDIT_CONFIRM_SAVESTRING:return CONTEXT_TRIGEDIT_CONFIRM_SAVESTRING; - case TRIGEDIT_NAME: return CONTEXT_TRIGEDIT_NAME; - case TRIGEDIT_INTENDED: return CONTEXT_TRIGEDIT_INTENDED; - case TRIGEDIT_TYPES: return CONTEXT_TRIGEDIT_TYPES; - case TRIGEDIT_COMMANDS: return CONTEXT_TRIGEDIT_COMMANDS; - case TRIGEDIT_NARG: return CONTEXT_TRIGEDIT_NARG; - case TRIGEDIT_ARGUMENT: return CONTEXT_TRIGEDIT_ARGUMENT; - default: return NOTHING; - } -} - -int find_context_script_edit(struct descriptor_data *d) -{ - switch (OLC_SCRIPT_EDIT_MODE(d)) { - case SCRIPT_MAIN_MENU: return CONTEXT_SCRIPT_MAIN_MENU; - case SCRIPT_NEW_TRIGGER:return CONTEXT_SCRIPT_NEW_TRIGGER; - case SCRIPT_DEL_TRIGGER:return CONTEXT_SCRIPT_DEL_TRIGGER; - default: return NOTHING; - } -} - -char *NO_HELP = "No help available (yet)!\r\n"; -#define FIND_HELP_CHAR '*' - -int context_help(struct descriptor_data *d, char *arg) -{ - int context = NOTHING; - char actbuf[MAX_INPUT_LENGTH], *tmp; - /* skip if context help isn't wanted */ - if (strncmp(arg, CONTEXT_HELP_STRING, strlen(CONTEXT_HELP_STRING))) - return FALSE; - - tmp = one_argument(arg, actbuf); /* the totally useless 'help' string.. */ - skip_spaces(&tmp); - - if (!*tmp) - context = find_context(d); - - if (context != NOTHING && context < NUM_CONTEXTS && *context_help_list[context]) { - if (*context_help_list[context] == FIND_HELP_CHAR) { - strncpy(actbuf, context_help_list[context]+1, sizeof(actbuf)-1); - do_help(d->character, actbuf, 0, 0); - } else { - write_to_output(d, "\r\n%s\r\n> ", context_help_list[context]); - } - return TRUE; - } - strncpy(actbuf, tmp, sizeof(actbuf)-1); - do_help(d->character, actbuf, 0, 0); - return TRUE; -} - -void boot_context_help(void) { - int i, num; - FILE *fl; - char line[READ_SIZE]; - - fl = fopen(CONTEXT_HELP_FILE, "r"); - - /* init to 'no help' string */ - for (i=0;i < NUM_CONTEXTS;i++) - context_help_list[i] = NO_HELP; - - if (!fl) { - log("No context help found : %s", strerror(errno)); - return; - } - while (get_line(fl, line)) { - if (sscanf(line, "#%d *", &num) == 1 && num >= 0 && num < NUM_CONTEXTS) /* got a number, now get the text */ - context_help_list[num] = fread_string(fl, "Context sensitive help"); - } - - fclose(fl); -} - -void free_context_help(void) { - int i; - - for (i = 0; i < NUM_CONTEXTS; i++) - if (context_help_list[i] && context_help_list[i] != NO_HELP) - free(context_help_list[i]); -} diff --git a/src/db.c b/src/db.c index 6c5ba10..53d448e 100644 --- a/src/db.c +++ b/src/db.c @@ -465,7 +465,7 @@ void boot_world(void) renum_zone_table(); if(converting) { - log("Saving 128bit worldfiles to disk."); + log("Saving 128bit world files to disk."); save_all(); } @@ -642,8 +642,6 @@ void destroy_db(void) /* Events */ event_free_all(); - /* context sensitive help system */ - free_context_help(); } /* body of the booting system */ @@ -680,9 +678,6 @@ void boot_db(void) log("Loading help entries."); index_boot(DB_BOOT_HLP); - log("Setting up context sensitive help system for OLC"); - boot_context_help(); - log("Generating player index."); build_player_index(); @@ -1185,10 +1180,10 @@ void parse_room(FILE *fl, int virtual_nr) } if (((retval = sscanf(line, " %d %s %s %s %s %d ", t, flags, flags2, flags3, flags4, t + 2)) == 3) && (bitwarning == TRUE)) { - log("WARNING: Conventional worldfiles detected. Please read 128bit.readme."); + log("WARNING: Conventional world files detected. See config.c."); exit(1); } else if ((retval == 3) && (bitwarning == FALSE)) { - /* Looks like the implementor is ready, so let's load the worldfiles. We + /* Looks like the implementor is ready, so let's load the world files. We * load the extra three flags as 0, since they won't be anything anyway. We * will save the entire world later on, when every room, mobile, and object * is converted. */ @@ -1638,8 +1633,8 @@ void parse_mobile(FILE *mob_f, int nr) } if (((retval = sscanf(line, "%s %s %s %s %s %s %s %s %d %c", f1, f2, f3, f4, f5, f6, f7, f8, t + 2, &letter)) == 10) && (bitwarning == TRUE)) { - /* Let's make the implementor read some, before converting his worldfiles. */ - log("WARNING: Conventional mobilefiles detected. Please read 128bit.readme."); + /* Let's make the implementor read some, before converting his world files. */ + log("WARNING: Conventional mobile files detected. See config.c."); exit(1); } else if ((retval == 4) && (bitwarning == FALSE)) { log("Converting mobile #%d to 128bits..", nr); @@ -1670,7 +1665,7 @@ void parse_mobile(FILE *mob_f, int nr) check_bitvector_names(AFF_FLAGS(mob_proto + i)[0], affected_bits_count, buf2, "mobile affect"); - /* This is necessary, since if we have conventional worldfiles, &letter is + /* This is necessary, since if we have conventional world files, &letter is * loaded into f4 instead of the letter characters. So what we do, is copy * f4 into letter. Disadvantage is that &letter cannot be longer then 128 * characters, but this shouldn't occur anyway. */ @@ -1790,8 +1785,8 @@ char *parse_object(FILE *obj_f, int nr) if (((retval = sscanf(line, " %d %s %s %s %s %s %s %s %s %s %s %s %s", t, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12)) == 4) && (bitwarning == TRUE)) { - /* Let's make the implementor read some, before converting his worldfiles. */ - log("WARNING: Conventional objectfiles detected. Please read 128bit.readme."); + /* Let's make the implementor read some, before converting his world files. */ + log("WARNING: Conventional object files detected. Please see config.c."); exit(1); } else if (((retval == 4) || (retval == 3)) && (bitwarning == FALSE)) { diff --git a/src/db.h b/src/db.h index 79b935c..15eabb6 100644 --- a/src/db.h +++ b/src/db.h @@ -87,7 +87,6 @@ #define GREETINGS_FILE LIB_TEXT"greetings" /* The opening screen. */ #define HELP_PAGE_FILE LIB_TEXT_HELP"screen" /* for HELP */ #define IHELP_PAGE_FILE LIB_TEXT_HELP"iscreen" /* for HELP imms */ -#define CONTEXT_HELP_FILE LIB_TEXT"contexthelp" /* context help for olc */ #define INFO_FILE LIB_TEXT"info" /* for INFO */ #define WIZLIST_FILE LIB_TEXT"wizlist" /* for WIZLIST */ #define IMMLIST_FILE LIB_TEXT"immlist" /* for IMMLIST */ diff --git a/src/dg_scripts.c b/src/dg_scripts.c index aed709b..d887ce0 100644 --- a/src/dg_scripts.c +++ b/src/dg_scripts.c @@ -2093,7 +2093,7 @@ ACMD(do_vdelete) if (!*buf || !*buf2) { - send_to_char(ch, "Usage: vdelete { | * } \r\n"); + send_to_char(ch, "Usage: vdelete { | * | all } \r\n"); return; } @@ -2126,7 +2126,7 @@ ACMD(do_vdelete) return; } - if (*var == '*') { + if (*var == '*' || is_abbrev(var, "all")) { struct trig_var_data *vd_next; for (vd = sc_remote->global_vars; vd; vd = vd_next) { vd_next = vd->next; diff --git a/src/dg_triggers.c b/src/dg_triggers.c index 912f7ab..c46152b 100644 --- a/src/dg_triggers.c +++ b/src/dg_triggers.c @@ -785,6 +785,9 @@ int remove_otrigger(obj_data *obj, char_data *actor) if (!SCRIPT_CHECK(obj, OTRIG_REMOVE)) return 1; + if (!valid_dg_target(actor, 0)) + return 1; + for (t = TRIGGERS(SCRIPT(obj)); t; t = t->next) { if (TRIGGER_CHECK(t, OTRIG_REMOVE)) { ADD_UID_VAR(buf, t, actor, "actor", 0); diff --git a/src/interpreter.c b/src/interpreter.c index e480190..44ab195 100644 --- a/src/interpreter.c +++ b/src/interpreter.c @@ -221,6 +221,7 @@ ACMD(do_who); ACMD(do_wield); ACMD(do_wizlock); ACMD(do_wiznet); +ACMD(do_wizupdate); ACMD(do_wizutil); ACMD(do_write); ACMD(do_zcheck); @@ -494,6 +495,7 @@ cpp_extern const struct command_info cmd_info[] = { { ";" , ";" , POS_DEAD , do_wiznet , LVL_IMMORT, 0 }, { "wizhelp" , "wizhelp" , POS_SLEEPING, do_commands , LVL_IMMORT, SCMD_WIZHELP }, { "wizlist" , "wizlist" , POS_DEAD , do_gen_ps , 0, SCMD_WIZLIST }, + { "wizupdate", "wizupde" , POS_DEAD , do_wizupdate, LVL_GRGOD, 0 }, { "wizlock" , "wizlock" , POS_DEAD , do_wizlock , LVL_IMPL, 0 }, { "write" , "write" , POS_STANDING, do_write , 1, 0 }, @@ -1327,9 +1329,6 @@ void nanny(struct descriptor_data *d, char *arg) /* Quick check for the OLC states. */ for (player_i = 0; olc_functions[player_i].state >= 0; player_i++) if (STATE(d) == olc_functions[player_i].state) { - /* send context-sensitive help if need be */ - if (context_help(d, arg)) return; - (*olc_functions[player_i].func)(d, arg); return; } diff --git a/src/oasis.h b/src/oasis.h index fc2a8d2..c61d217 100644 --- a/src/oasis.h +++ b/src/oasis.h @@ -420,146 +420,4 @@ int free_strings(void *data, int type); ACMD(do_oasis_list); ACMD(do_oasis_links); void print_zone(struct char_data *ch, zone_rnum rnum); - -#define CONTEXT_HELP_STRING "help" - -#define CONTEXT_OEDIT_MAIN_MENU 1 -#define CONTEXT_OEDIT_KEYWORD 2 -#define CONTEXT_OEDIT_SHORTDESC 3 -#define CONTEXT_OEDIT_LONGDESC 4 -#define CONTEXT_OEDIT_ACTDESC 5 -#define CONTEXT_OEDIT_TYPE 6 -#define CONTEXT_OEDIT_EXTRAS 7 -#define CONTEXT_OEDIT_WEAR 8 -#define CONTEXT_OEDIT_WEIGHT 9 -#define CONTEXT_OEDIT_COST 10 -#define CONTEXT_OEDIT_COSTPERDAY 11 -#define CONTEXT_OEDIT_TIMER 12 -#define CONTEXT_OEDIT_VALUE_1 13 -#define CONTEXT_OEDIT_VALUE_2 14 -#define CONTEXT_OEDIT_VALUE_3 15 -#define CONTEXT_OEDIT_VALUE_4 16 -#define CONTEXT_OEDIT_APPLY 17 -#define CONTEXT_OEDIT_APPLYMOD 18 -#define CONTEXT_OEDIT_EXTRADESC_KEY 19 -#define CONTEXT_OEDIT_CONFIRM_SAVEDB 20 -#define CONTEXT_OEDIT_CONFIRM_SAVESTRING 21 -#define CONTEXT_OEDIT_PROMPT_APPLY 22 -#define CONTEXT_OEDIT_EXTRADESC_DESCRIPTION 23 -#define CONTEXT_OEDIT_EXTRADESC_MENU 24 -#define CONTEXT_OEDIT_LEVEL 25 -#define CONTEXT_OEDIT_PERM 26 -#define CONTEXT_REDIT_MAIN_MENU 27 -#define CONTEXT_REDIT_NAME 28 -#define CONTEXT_REDIT_DESC 29 -#define CONTEXT_REDIT_FLAGS 30 -#define CONTEXT_REDIT_SECTOR 31 -#define CONTEXT_REDIT_EXIT_MENU 32 -#define CONTEXT_REDIT_CONFIRM_SAVEDB 33 -#define CONTEXT_REDIT_CONFIRM_SAVESTRING 34 -#define CONTEXT_REDIT_EXIT_NUMBER 35 -#define CONTEXT_REDIT_EXIT_DESCRIPTION 36 -#define CONTEXT_REDIT_EXIT_KEYWORD 37 -#define CONTEXT_REDIT_EXIT_KEY 38 -#define CONTEXT_REDIT_EXIT_DOORFLAGS 39 -#define CONTEXT_REDIT_EXTRADESC_MENU 40 -#define CONTEXT_REDIT_EXTRADESC_KEY 41 -#define CONTEXT_REDIT_EXTRADESC_DESCRIPTION 42 -#define CONTEXT_ZEDIT_MAIN_MENU 43 -#define CONTEXT_ZEDIT_DELETE_ENTRY 44 -#define CONTEXT_ZEDIT_NEW_ENTRY 45 -#define CONTEXT_ZEDIT_CHANGE_ENTRY 46 -#define CONTEXT_ZEDIT_COMMAND_TYPE 47 -#define CONTEXT_ZEDIT_IF_FLAG 48 -#define CONTEXT_ZEDIT_ARG1 49 -#define CONTEXT_ZEDIT_ARG2 50 -#define CONTEXT_ZEDIT_ARG3 51 -#define CONTEXT_ZEDIT_ZONE_NAME 52 -#define CONTEXT_ZEDIT_ZONE_LIFE 53 -#define CONTEXT_ZEDIT_ZONE_BOT 54 -#define CONTEXT_ZEDIT_ZONE_TOP 55 -#define CONTEXT_ZEDIT_ZONE_RESET 56 -#define CONTEXT_ZEDIT_CONFIRM_SAVESTRING 57 -#define CONTEXT_ZEDIT_SARG1 58 -#define CONTEXT_ZEDIT_SARG2 59 -#define CONTEXT_MEDIT_MAIN_MENU 60 -#define CONTEXT_MEDIT_KEYWORD 61 -#define CONTEXT_MEDIT_S_DESC 62 -#define CONTEXT_MEDIT_L_DESC 63 -#define CONTEXT_MEDIT_D_DESC 64 -#define CONTEXT_MEDIT_NPC_FLAGS 65 -#define CONTEXT_MEDIT_AFF_FLAGS 66 -#define CONTEXT_MEDIT_CONFIRM_SAVESTRING 67 -#define CONTEXT_MEDIT_SEX 68 -#define CONTEXT_MEDIT_HITROLL 69 -#define CONTEXT_MEDIT_DAMROLL 70 -#define CONTEXT_MEDIT_NDD 71 -#define CONTEXT_MEDIT_SDD 72 -#define CONTEXT_MEDIT_NUM_HP_DICE 73 -#define CONTEXT_MEDIT_SIZE_HP_DICE 74 -#define CONTEXT_MEDIT_ADD_HP 75 -#define CONTEXT_MEDIT_AC 76 -#define CONTEXT_MEDIT_EXP 77 -#define CONTEXT_MEDIT_GOLD 78 -#define CONTEXT_MEDIT_POS 79 -#define CONTEXT_MEDIT_DEFAULT_POS 80 -#define CONTEXT_MEDIT_ATTACK 81 -#define CONTEXT_MEDIT_LEVEL 82 -#define CONTEXT_MEDIT_ALIGNMENT 83 -#define CONTEXT_SEDIT_MAIN_MENU 84 -#define CONTEXT_SEDIT_CONFIRM_SAVESTRING 85 -#define CONTEXT_SEDIT_NOITEM1 86 -#define CONTEXT_SEDIT_NOITEM2 87 -#define CONTEXT_SEDIT_NOCASH1 88 -#define CONTEXT_SEDIT_NOCASH2 89 -#define CONTEXT_SEDIT_NOBUY 90 -#define CONTEXT_SEDIT_BUY 91 -#define CONTEXT_SEDIT_SELL 92 -#define CONTEXT_SEDIT_PRODUCTS_MENU 93 -#define CONTEXT_SEDIT_ROOMS_MENU 94 -#define CONTEXT_SEDIT_NAMELIST_MENU 95 -#define CONTEXT_SEDIT_NAMELIST 96 -#define CONTEXT_SEDIT_OPEN1 97 -#define CONTEXT_SEDIT_OPEN2 98 -#define CONTEXT_SEDIT_CLOSE1 99 -#define CONTEXT_SEDIT_CLOSE2 100 -#define CONTEXT_SEDIT_KEEPER 101 -#define CONTEXT_SEDIT_BUY_PROFIT 102 -#define CONTEXT_SEDIT_SELL_PROFIT 103 -#define CONTEXT_SEDIT_TYPE_MENU 104 -#define CONTEXT_SEDIT_DELETE_TYPE 105 -#define CONTEXT_SEDIT_DELETE_PRODUCT 106 -#define CONTEXT_SEDIT_NEW_PRODUCT 107 -#define CONTEXT_SEDIT_DELETE_ROOM 108 -#define CONTEXT_SEDIT_NEW_ROOM 109 -#define CONTEXT_SEDIT_SHOP_FLAGS 110 -#define CONTEXT_SEDIT_NOTRADE 111 -#define CONTEXT_TRIGEDIT_MAIN_MENU 112 -#define CONTEXT_TRIGEDIT_TRIGTYPE 113 -#define CONTEXT_TRIGEDIT_CONFIRM_SAVESTRING 114 -#define CONTEXT_TRIGEDIT_NAME 115 -#define CONTEXT_TRIGEDIT_INTENDED 116 -#define CONTEXT_TRIGEDIT_TYPES 117 -#define CONTEXT_TRIGEDIT_COMMANDS 118 -#define CONTEXT_TRIGEDIT_NARG 119 -#define CONTEXT_TRIGEDIT_ARGUMENT 120 -#define CONTEXT_SCRIPT_MAIN_MENU 121 -#define CONTEXT_SCRIPT_NEW_TRIGGER 122 -#define CONTEXT_SCRIPT_DEL_TRIGGER 123 - -/* includes number 0 */ -#define NUM_CONTEXTS 124 - -/* Prototypes for the context sensitive help system */ -int find_context(struct descriptor_data *d); -int find_context_oedit(struct descriptor_data *d); -int find_context_redit(struct descriptor_data *d); -int find_context_zedit(struct descriptor_data *d); -int find_context_medit(struct descriptor_data *d); -int find_context_sedit(struct descriptor_data *d); -int find_context_trigedit(struct descriptor_data *d); -int find_context_script_edit(struct descriptor_data *d); -int context_help(struct descriptor_data *d, char *arg); -void boot_context_help(void); -void free_context_help(void); #endif diff --git a/src/oedit.c b/src/oedit.c index e18d69d..eb185d5 100644 --- a/src/oedit.c +++ b/src/oedit.c @@ -593,8 +593,8 @@ void oedit_disp_perm_menu(struct descriptor_data *d) get_char_colors(d->character); clear_screen(d); - for (counter = 0; counter < NUM_AFF_FLAGS; counter++) { - write_to_output(d, "%s%2d%s) %-20.20s %s", grn, counter + 1, nrm, affected_bits[counter], !(++columns % 2) ? "\r\n" : ""); + for (counter = 1; counter < NUM_AFF_FLAGS; counter++) { + write_to_output(d, "%s%2d%s) %-20.20s %s", grn, counter, nrm, affected_bits[counter], !(++columns % 2) ? "\r\n" : ""); } sprintbitarray(GET_OBJ_PERM(OLC_OBJ(d)), affected_bits, EF_ARRAY_MAX, bits); write_to_output(d, "\r\nObject permanent flags: %s%s%s\r\n" diff --git a/src/spell_parser.c b/src/spell_parser.c index bfa1a8a..88d08fa 100644 --- a/src/spell_parser.c +++ b/src/spell_parser.c @@ -924,28 +924,6 @@ void mag_assign_spells(void) TAR_CHAR_ROOM | TAR_OBJ_INV | TAR_OBJ_ROOM, FALSE, MAG_MANUAL, NULL); - /* These spells are currently not used, not implemented, and not castable. - * Values for the 'breath' spells are filled in assuming a dragon's breath. */ - spello(SPELL_FIRE_BREATH, "fire breath", 0, 0, 0, POS_SITTING, - TAR_IGNORE, TRUE, 0, - NULL); - - spello(SPELL_GAS_BREATH, "gas breath", 0, 0, 0, POS_SITTING, - TAR_IGNORE, TRUE, 0, - NULL); - - spello(SPELL_FROST_BREATH, "frost breath", 0, 0, 0, POS_SITTING, - TAR_IGNORE, TRUE, 0, - NULL); - - spello(SPELL_ACID_BREATH, "acid breath", 0, 0, 0, POS_SITTING, - TAR_IGNORE, TRUE, 0, - NULL); - - spello(SPELL_LIGHTNING_BREATH, "lightning breath", 0, 0, 0, POS_SITTING, - TAR_IGNORE, TRUE, 0, - NULL); - /* you might want to name this one something more fitting to your theme -Welcor*/ spello(SPELL_DG_AFFECT, "Script-inflicted", 0, 0, 0, POS_SITTING, TAR_IGNORE, TRUE, 0, diff --git a/src/spells.h b/src/spells.h index 0cd5c7b..38ffd75 100644 --- a/src/spells.h +++ b/src/spells.h @@ -107,11 +107,6 @@ * SPELL_IDENTIFY used with scrolls of identify) or non-players (such as NPC * only spells). */ #define SPELL_IDENTIFY 201 -#define SPELL_FIRE_BREATH 202 -#define SPELL_GAS_BREATH 203 -#define SPELL_FROST_BREATH 204 -#define SPELL_ACID_BREATH 205 -#define SPELL_LIGHTNING_BREATH 206 /* To make an affect induced by dg_affect look correct on 'stat' we need to * define it with a 'spellname'. */ diff --git a/src/structs.h b/src/structs.h index 409fbbc..8aa054b 100644 --- a/src/structs.h +++ b/src/structs.h @@ -228,11 +228,11 @@ #define AFF_PROTECT_GOOD 14 /* Char protected from good */ #define AFF_SLEEP 15 /* (R) Char magically asleep */ #define AFF_NOTRACK 16 /* Char can't be tracked */ -#define AFF_UNUSED16 17 /* Room for future expansion */ -#define AFF_UNUSED17 18 /* Room for future expansion */ +#define AFF_FLYING 17 /* Char is flying */ +#define AFF_SCUBA 18 /* Room for future expansion */ #define AFF_SNEAK 19 /* Char can move quietly */ #define AFF_HIDE 20 /* Char is hidden */ -#define AFF_UNUSED20 21 /* Room for future expansion */ +#define AFF_FREE 21 /* Room for future expansion */ #define AFF_CHARM 22 /* Char is charmed */ /* Modes of connectedness: used by descriptor_data.state */ diff --git a/src/utils.h b/src/utils.h index 88454a6..e41267b 100644 --- a/src/utils.h +++ b/src/utils.h @@ -215,7 +215,7 @@ void char_from_furniture(struct char_data *ch); #define PRF_FLAGGED(ch, flag) (IS_SET_AR(PRF_FLAGS(ch), (flag))) #define ROOM_FLAGGED(loc, flag) (IS_SET_AR(ROOM_FLAGS(loc), (flag))) #define EXIT_FLAGGED(exit, flag) (IS_SET((exit)->exit_info, (flag))) -#define OBJAFF_FLAGGED(obj, flag) (IS_SET(GET_OBJ_AFFECT(obj), (flag))) +#define OBJAFF_FLAGGED(obj, flag) (IS_SET_AR(GET_OBJ_AFFECT(obj), (flag))) #define OBJVAL_FLAGGED(obj, flag) (IS_SET(GET_OBJ_VAL((obj), 1), (flag))) #define OBJWEAR_FLAGGED(obj, flag) (IS_SET_AR(GET_OBJ_WEAR(obj), (flag))) #define OBJ_FLAGGED(obj, flag) (IS_SET_AR(GET_OBJ_EXTRA(obj), (flag)))