[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.
This commit is contained in:
Rumble 2007-05-17 20:51:06 +00:00
parent 2f24e37bb8
commit 8315bc5da8
29 changed files with 191 additions and 1330 deletions

View file

@ -5,6 +5,21 @@ The Builder Academy
builderacademy.net 9091 builderacademy.net 9091
tbaMUD 3.52 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 [Apr 14 2007] - Rumble
IP's only visible to LVL_GOD and above now for the paranoid people out there. IP's only visible to LVL_GOD and above now for the paranoid people out there.
[Apr 13 2007] - Rumble [Apr 13 2007] - Rumble

View file

@ -0,0 +1 @@
Rumble (May 15) [ 1204] Added changelog to do_file.

View file

@ -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
~

View file

@ -1,6 +1,7 @@
************************************************************************* *******************************************************************************
* The following people have reached immortality on tbaMUD. * * The following people have reached immortality on tbaMUD. *
************************************************************************* *******************************************************************************
Immortals Immortals
~~~~~~~~~ ~~~~~~~~~

View file

@ -1,9 +1,10 @@
************************************************************************* *******************************************************************************
* The following people have reached immortality on tbaMUD. * * The following people have reached immortality on tbaMUD. *
************************************************************************* *******************************************************************************
Implementors Implementors
~~~~~~~~~~~~ ~~~~~~~~~~~~
Rumble
Greater Gods Greater Gods
~~~~~~~~~~~~ ~~~~~~~~~~~~

View file

@ -40,6 +40,10 @@ The email listing of the gods is pinned against the wall.~
0 0 0 0 0 0 0 0
1 1 0 30 1 1 0 30
E E
emails listing~
HELP CONTACT
~
E
wizlist~ wizlist~
Implementors Implementors
~~~~~~~~~~~ ~~~~~~~~~~~
@ -56,10 +60,6 @@ wizlist~
Santa Shamra Shimmer Silvanos Smaug Snowlock Talgard Taylor Santa Shamra Shimmer Silvanos Smaug Snowlock Talgard Taylor
Theophilus Tocamat Torpidai Treestump Tuskony Zizazat Theophilus Tocamat Torpidai Treestump Tuskony Zizazat
~ ~
E
emails listing~
HELP CONTACT
~
#5 #5
foraged berries~ foraged berries~
some foraged berries~ some foraged berries~
@ -135,7 +135,7 @@ waybread bread~
a waybread~ a waybread~
Some waybread has been put here.~ 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 24 0 0 0
1 50 0 0 1 50 0 0
E E
@ -693,19 +693,6 @@ runestone Sanctum church~
This is one of the runestones used by the priests of Sanctum in their duties. 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 #42
hammer Sanctum~ hammer Sanctum~
the hammer of Sanctum~ the hammer of Sanctum~
@ -755,20 +742,6 @@ An immortal device to set questpoints.~
0 0 0 0 0 0 0 0
1 1 0 31 1 1 0 31
T 168 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 #46
key gateguard~ key gateguard~
the gateguard key~ the gateguard key~
@ -803,19 +776,6 @@ comfy bed~
This bed is beckoning you to lay down and get some much needed sleep. This bed is beckoning you to lay down and get some much needed sleep.
Just "sleep bed" 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 #51
generic ring rfinger~ generic ring rfinger~
a generic ring~ a generic ring~

View file

@ -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 #1202
scroll~ scroll~
a 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 1 0 0 0 0 a 0 0 0 0 0 0 0
0 0 23 0 0 0 23 0
1 1 0 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 #1205
staff~ staff~
staff~ staff~
@ -74,23 +22,6 @@ Staff~
4 0 0 0 0 a 0 0 0 0 0 0 0 4 0 0 0 0 a 0 0 0 0 0 0 0
1 3 3 31 1 3 3 31
1 1 0 0 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 #1210
Straight Jacket~ Straight Jacket~
a 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 9 0 0 0 0 ad 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 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 <up | down | left | right>
You must collect the prizes and avoid the animal to obtain maximum points.
Each prize is worth 500 * game_level in experience.
~
#1218 #1218
spring fountain water~ spring fountain water~
a spring well~ 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 4 b 0 0 0 ao 0 0 0 0 0 0 0
1 10 10 23 1 10 10 23
5 1 0 30 5 1 0 30
T 87
E E
staff black~ staff black~
A Huge staff sits here eminating a tremendous power. 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 #1275
uniform~ uniform~
a Builder Academy 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 15 0 0 0 0 0 0 0 0 0 0 0 0
20000 3 0 0 20000 3 0 0
0 0 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 #1299
christmas tree~ christmas tree~
a christmas tree~ a christmas tree~

View file

@ -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 17 0 0 0 0 a 0 0 0 0 0 0 0
8 8 3 0 8 8 3 0
10 10 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 #3004
bottle local~ bottle local~
a bottle~ a bottle~
@ -135,13 +127,13 @@ A small sword lies here.~
0 1 6 11 0 1 6 11
3 60 10 0 3 60 10 0
E E
sword small~
The small sword seems to have an inscription of some sort.
~
E
inscription~ inscription~
It says: 'May this sword be a good companion. ' It says: 'May this sword be a good companion. '
~ ~
E
sword small~
The small sword seems to have an inscription of some sort.
~
#3022 #3022
sword long~ sword long~
a long sword~ a long sword~
@ -289,14 +281,6 @@ E
pot~ pot~
It is a nice pot. You could use it, if you ever settled down. 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 #3041
shirt chain mail~ shirt chain mail~
a chain mail shirt~ 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
0 0 0 0 0 0 0 0
E E
board~
If you can read this, the board is not working.
~
E
social bulletin~ social bulletin~
Use 'look board' to read the board. Use 'look board' to read the board.
~ ~
E
board~
If you can read this, the board is not working.
~
#3097 #3097
boards frozen bulletin gen_boards~ boards frozen bulletin gen_boards~
a frozen bulletin board~ 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
0 0 0 0 0 0 0 0
E E
board~
If you can read this, the board is not working.
~
E
freeze bulletin~ freeze bulletin~
Use 'look board' to read the board. Use 'look board' to read the board.
~ ~
E
board~
If you can read this, the board is not working.
~
#3098 #3098
boards holy bulletin gen_boards~ boards holy bulletin gen_boards~
a holy bulletin board~ 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
0 0 0 0 0 0 0 0
E E
board~
If you can read this, the board is not working.
~
E
holy bulletin~ holy bulletin~
Use 'look board' to read the board. Use 'look board' to read the board.
~ ~
E
board~
If you can read this, the board is not working.
~
#3099 #3099
boards bulletin gen_boards~ boards bulletin gen_boards~
a bulletin board~ 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
0 0 0 0 0 0 0 0
E E
board~
If you can read this, the board is not working.
~
E
bulletin~ bulletin~
Use 'look board' to read the board. Use 'look board' to read the board.
~ ~
E
board~
If you can read this, the board is not working.
~
$~ $~

View file

@ -2042,9 +2042,10 @@ end
~ ~
#87 #87
Obj Remove Example~ Obj Remove Example~
1 l 90 1 l 100
~ ~
return 0 return 0
%send% %actor% You can't remove it.
~ ~
#88 #88
Obj Load Example~ Obj Load Example~
@ -2539,48 +2540,9 @@ end
~ ~
#98 #98
Mob Act - 98 Teleporter Give~ Mob Act - 98 Teleporter Give~
0 e 0 0 g 100
has entered the game.~ ~
* By Rumble whisper %actor% this is a crash test
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
~ ~
#99 #99
Obj Command 82 - Teleporter~ Obj Command 82 - Teleporter~

View file

@ -7,7 +7,7 @@ a strange portal located above you.
D4 D4
~ ~
~ ~
0 0 100 0 0 -1
S S
T 1200 T 1200
#1 #1
@ -21,7 +21,7 @@ D5
A strange portal in the floor is the only exit. A strange portal in the floor is the only exit.
~ ~
~ ~
0 0 100 0 0 -1
S S
#2 #2
Welcome to the Builder Academy~ Welcome to the Builder Academy~
@ -552,6 +552,16 @@ D2
~ ~
0 0 21 0 0 21
S S
#32
An unfinished room~
You are in an unfinished room.
~
0 0 0 0 0 9
D1
~
~
0 0 33
S
#33 #33
Rumble's Room~ Rumble's Room~
The mark of the immature man is that he wants to die nobly for a cause, 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 --Wilhelm Stekel
~ ~
0 8 0 0 0 0 0 8 0 0 0 0
D1
~
~
0 0 33
D3
~
~
0 0 32
E E
.test~ .test~
can you see this with look around? can you see this with look around?
@ -703,7 +721,7 @@ D3
D4 D4
~ ~
trapdoor~ trapdoor~
1 0 130 1 0 -1
S S
#90 #90
Epictetus' Prison Cell~ Epictetus' Prison Cell~

View file

@ -26,7 +26,7 @@ LIBS = @LIBS@ @CRYPTLIB@ @NETLIB@
OBJFILES = act.comm.o act.informative.o act.item.o act.movement.o \ 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 \ 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 \ 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_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 \ 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 \ 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 \ 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 \ 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 \ 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_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 \ 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 \ genobj.c genolc.c genshp.c genwld.c genzon.c graph.c handler.c hedit.c \

View file

@ -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) { for (i = list; i; i = i->next_content) {
num = 0; num = 0;
for (j = list; j != i; j = j->next_content) 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; break;
if (j != i) if (j != i)
continue; continue;
for (j = i; j; j = j->next_content) 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++; num++;
if (CAN_SEE_OBJ(ch, i) && (*i->description != '.' || (IS_NPC(ch) || PRF_FLAGGED(ch, PRF_HOLYLIGHT)))) { if (CAN_SEE_OBJ(ch, i) && (*i->description != '.' || (IS_NPC(ch) || PRF_FLAGGED(ch, PRF_HOLYLIGHT)))) {
if (mode == SHOW_OBJ_LONG) if (mode == SHOW_OBJ_LONG)

View file

@ -52,7 +52,7 @@ int has_boat(struct char_data *ch)
if (GET_LEVEL(ch) > LVL_IMMORT) if (GET_LEVEL(ch) > LVL_IMMORT)
return (1); return (1);
if (AFF_FLAGGED(ch, AFF_WATERWALK)) if (AFF_FLAGGED(ch, AFF_WATERWALK) || AFF_FLAGGED(ch, AFF_FLYING))
return (1); return (1);
/* non-wearable boats in inventory will do it */ /* non-wearable boats in inventory will do it */
@ -68,6 +68,56 @@ int has_boat(struct char_data *ch)
return (0); 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 /* do_simple_move assumes that there is no master, no followers and that the
* direction exists. It returns 1 for success, 0 if failure. */ * direction exists. It returns 1 for success, 0 if failure. */
int do_simple_move(struct char_data *ch, int dir, int need_specials_check) 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 */ /* move points needed is avg. move loss for src and destination sect type */
need_movement = (movement_loss[SECT(IN_ROOM(ch))] + need_movement = (movement_loss[SECT(IN_ROOM(ch))] +
movement_loss[SECT(EXIT(ch, dir)->to_room)]) / 2; movement_loss[SECT(EXIT(ch, dir)->to_room)]) / 2;

View file

@ -117,6 +117,7 @@ ACMD(do_copyover);
ACMD(do_peace); ACMD(do_peace);
void mod_llog_entry(struct last_entry *llast,int type); void mod_llog_entry(struct last_entry *llast,int type);
ACMD(do_plist); ACMD(do_plist);
ACMD(do_wizupdate);
int purge_room(room_rnum room) 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]; char buf[MAX_STRING_LENGTH];
struct char_data *tempch; 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 : "<None>", j->short_description ? j->short_description : "<None>",
CCNRM(ch, C_NRM), j->name); 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)); 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)) 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 : "<None>"); send_to_char(ch, "Title: %s\r\n", k->player.title ? k->player.title : "<None>");
@ -1280,6 +1281,7 @@ void do_cheat(struct char_data *ch)
return; return;
} }
send_to_char(ch, "Your level has been restored, for now!\r\n"); send_to_char(ch, "Your level has been restored, for now!\r\n");
save_char(ch);
} }
ACMD(do_return) ACMD(do_return)
@ -4100,6 +4102,7 @@ ACMD(do_file)
{ "syslog", LVL_GOD, "../syslog" }, { "syslog", LVL_GOD, "../syslog" },
{ "crash", LVL_GOD, "../syslog.CRASH" }, { "crash", LVL_GOD, "../syslog.CRASH" },
{ "help", LVL_GOD, "../log/help" }, { "help", LVL_GOD, "../log/help" },
{ "changelog", LVL_GOD, "../changelog" },
{ "\n", 0, "\n" } { "\n", 0, "\n" }
}; };
@ -4130,7 +4133,7 @@ ACMD(do_file)
} }
if(!*value) if(!*value)
req_lines = 15; /* default is the last 15 lines */ req_lines = 15; /* Default is the last 30 lines. */
else else
req_lines = atoi(value); req_lines = atoi(value);
@ -4148,7 +4151,8 @@ ACMD(do_file)
} }
rewind(req_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); 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); "%d players listed.\r\n", CCCYN(ch, C_NRM), CCNRM(ch, C_NRM), count);
page_string(ch->desc, buf, TRUE); page_string(ch->desc, buf, TRUE);
} }
ACMD(do_wizupdate)
{
run_autowiz();
send_to_char(ch, "Wizlists updated.\n\r");
}

View file

@ -2568,7 +2568,7 @@ char *act(const char *str, int hide_invisible, struct char_data *ch,
} }
#include "screen.h" #include "screen.h"
if (type == TO_GMOTE) { if (type == TO_GMOTE && !IS_NPC(ch)) {
struct descriptor_data *i; struct descriptor_data *i;
char buf[MAX_STRING_LENGTH]; char buf[MAX_STRING_LENGTH];

View file

@ -193,17 +193,13 @@ room_vnum donation_room_3 = 235;
/* GAME OPERATION OPTIONS */ /* GAME OPERATION OPTIONS */
/* /* If false stock world files will be converted to 128bit. If true the MUD will
* Please read 128bit.readme before setting this to true. Set this * exit with a warning when encountering stock world files. */
* flag if you want the conversion to take place.
*/
int bitwarning = FALSE; int bitwarning = FALSE;
/* /* If you want to look at normal world files but DO NOT want to save to 128bit
* If you want to look at normal worldfiles but DO NOT want to save * format, turn this to false. However, do not save through olc, or your
* to 128bit format, turn this to false. However, do not save through * world files will be 128bit anyway. */
* olc, or your worldfiles will be 128bit anyway.
*/
int bitsavetodisk = TRUE; int bitsavetodisk = TRUE;
/* This is the default port on which the game should run if no port is given on /* This is the default port on which the game should run if no port is given on

View file

@ -207,8 +207,8 @@ const char *affected_bits[] =
"PROT-GOOD", "PROT-GOOD",
"SLEEP", "SLEEP",
"NO_TRACK", "NO_TRACK",
"UNUSED", "FLY",
"UNUSED", "SCUBA",
"SNEAK", "SNEAK",
"HIDE", "HIDE",
"UNUSED", "UNUSED",

View file

@ -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]);
}

View file

@ -465,7 +465,7 @@ void boot_world(void)
renum_zone_table(); renum_zone_table();
if(converting) { if(converting) {
log("Saving 128bit worldfiles to disk."); log("Saving 128bit world files to disk.");
save_all(); save_all();
} }
@ -642,8 +642,6 @@ void destroy_db(void)
/* Events */ /* Events */
event_free_all(); event_free_all();
/* context sensitive help system */
free_context_help();
} }
/* body of the booting system */ /* body of the booting system */
@ -680,9 +678,6 @@ void boot_db(void)
log("Loading help entries."); log("Loading help entries.");
index_boot(DB_BOOT_HLP); index_boot(DB_BOOT_HLP);
log("Setting up context sensitive help system for OLC");
boot_context_help();
log("Generating player index."); log("Generating player index.");
build_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)) { 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); exit(1);
} else if ((retval == 3) && (bitwarning == FALSE)) { } 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 * 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 * will save the entire world later on, when every room, mobile, and object
* is converted. */ * 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)) { 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. */ /* Let's make the implementor read some, before converting his world files. */
log("WARNING: Conventional mobilefiles detected. Please read 128bit.readme."); log("WARNING: Conventional mobile files detected. See config.c.");
exit(1); exit(1);
} else if ((retval == 4) && (bitwarning == FALSE)) { } else if ((retval == 4) && (bitwarning == FALSE)) {
log("Converting mobile #%d to 128bits..", nr); 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"); 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 * 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 * f4 into letter. Disadvantage is that &letter cannot be longer then 128
* characters, but this shouldn't occur anyway. */ * 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, 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)) { f4, f5, f6, f7, f8, f9, f10, f11, f12)) == 4) && (bitwarning == TRUE)) {
/* Let's make the implementor read some, before converting his worldfiles. */ /* Let's make the implementor read some, before converting his world files. */
log("WARNING: Conventional objectfiles detected. Please read 128bit.readme."); log("WARNING: Conventional object files detected. Please see config.c.");
exit(1); exit(1);
} else if (((retval == 4) || (retval == 3)) && (bitwarning == FALSE)) { } else if (((retval == 4) || (retval == 3)) && (bitwarning == FALSE)) {

View file

@ -87,7 +87,6 @@
#define GREETINGS_FILE LIB_TEXT"greetings" /* The opening screen. */ #define GREETINGS_FILE LIB_TEXT"greetings" /* The opening screen. */
#define HELP_PAGE_FILE LIB_TEXT_HELP"screen" /* for HELP <CR> */ #define HELP_PAGE_FILE LIB_TEXT_HELP"screen" /* for HELP <CR> */
#define IHELP_PAGE_FILE LIB_TEXT_HELP"iscreen" /* for HELP <CR> imms */ #define IHELP_PAGE_FILE LIB_TEXT_HELP"iscreen" /* for HELP <CR> imms */
#define CONTEXT_HELP_FILE LIB_TEXT"contexthelp" /* context help for olc */
#define INFO_FILE LIB_TEXT"info" /* for INFO */ #define INFO_FILE LIB_TEXT"info" /* for INFO */
#define WIZLIST_FILE LIB_TEXT"wizlist" /* for WIZLIST */ #define WIZLIST_FILE LIB_TEXT"wizlist" /* for WIZLIST */
#define IMMLIST_FILE LIB_TEXT"immlist" /* for IMMLIST */ #define IMMLIST_FILE LIB_TEXT"immlist" /* for IMMLIST */

View file

@ -2093,7 +2093,7 @@ ACMD(do_vdelete)
if (!*buf || !*buf2) { if (!*buf || !*buf2) {
send_to_char(ch, "Usage: vdelete { <variablename> | * } <id>\r\n"); send_to_char(ch, "Usage: vdelete { <variablename> | * | all } <id>\r\n");
return; return;
} }
@ -2126,7 +2126,7 @@ ACMD(do_vdelete)
return; return;
} }
if (*var == '*') { if (*var == '*' || is_abbrev(var, "all")) {
struct trig_var_data *vd_next; struct trig_var_data *vd_next;
for (vd = sc_remote->global_vars; vd; vd = vd_next) { for (vd = sc_remote->global_vars; vd; vd = vd_next) {
vd_next = vd->next; vd_next = vd->next;

View file

@ -785,6 +785,9 @@ int remove_otrigger(obj_data *obj, char_data *actor)
if (!SCRIPT_CHECK(obj, OTRIG_REMOVE)) if (!SCRIPT_CHECK(obj, OTRIG_REMOVE))
return 1; return 1;
if (!valid_dg_target(actor, 0))
return 1;
for (t = TRIGGERS(SCRIPT(obj)); t; t = t->next) { for (t = TRIGGERS(SCRIPT(obj)); t; t = t->next) {
if (TRIGGER_CHECK(t, OTRIG_REMOVE)) { if (TRIGGER_CHECK(t, OTRIG_REMOVE)) {
ADD_UID_VAR(buf, t, actor, "actor", 0); ADD_UID_VAR(buf, t, actor, "actor", 0);

View file

@ -221,6 +221,7 @@ ACMD(do_who);
ACMD(do_wield); ACMD(do_wield);
ACMD(do_wizlock); ACMD(do_wizlock);
ACMD(do_wiznet); ACMD(do_wiznet);
ACMD(do_wizupdate);
ACMD(do_wizutil); ACMD(do_wizutil);
ACMD(do_write); ACMD(do_write);
ACMD(do_zcheck); ACMD(do_zcheck);
@ -494,6 +495,7 @@ cpp_extern const struct command_info cmd_info[] = {
{ ";" , ";" , POS_DEAD , do_wiznet , LVL_IMMORT, 0 }, { ";" , ";" , POS_DEAD , do_wiznet , LVL_IMMORT, 0 },
{ "wizhelp" , "wizhelp" , POS_SLEEPING, do_commands , LVL_IMMORT, SCMD_WIZHELP }, { "wizhelp" , "wizhelp" , POS_SLEEPING, do_commands , LVL_IMMORT, SCMD_WIZHELP },
{ "wizlist" , "wizlist" , POS_DEAD , do_gen_ps , 0, SCMD_WIZLIST }, { "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 }, { "wizlock" , "wizlock" , POS_DEAD , do_wizlock , LVL_IMPL, 0 },
{ "write" , "write" , POS_STANDING, do_write , 1, 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. */ /* Quick check for the OLC states. */
for (player_i = 0; olc_functions[player_i].state >= 0; player_i++) for (player_i = 0; olc_functions[player_i].state >= 0; player_i++)
if (STATE(d) == olc_functions[player_i].state) { 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); (*olc_functions[player_i].func)(d, arg);
return; return;
} }

View file

@ -420,146 +420,4 @@ int free_strings(void *data, int type);
ACMD(do_oasis_list); ACMD(do_oasis_list);
ACMD(do_oasis_links); ACMD(do_oasis_links);
void print_zone(struct char_data *ch, zone_rnum rnum); 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 #endif

View file

@ -593,8 +593,8 @@ void oedit_disp_perm_menu(struct descriptor_data *d)
get_char_colors(d->character); get_char_colors(d->character);
clear_screen(d); clear_screen(d);
for (counter = 0; counter < NUM_AFF_FLAGS; counter++) { for (counter = 1; 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" : ""); 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); 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" write_to_output(d, "\r\nObject permanent flags: %s%s%s\r\n"

View file

@ -924,28 +924,6 @@ void mag_assign_spells(void)
TAR_CHAR_ROOM | TAR_OBJ_INV | TAR_OBJ_ROOM, FALSE, MAG_MANUAL, TAR_CHAR_ROOM | TAR_OBJ_INV | TAR_OBJ_ROOM, FALSE, MAG_MANUAL,
NULL); 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*/ /* 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, spello(SPELL_DG_AFFECT, "Script-inflicted", 0, 0, 0, POS_SITTING,
TAR_IGNORE, TRUE, 0, TAR_IGNORE, TRUE, 0,

View file

@ -107,11 +107,6 @@
* SPELL_IDENTIFY used with scrolls of identify) or non-players (such as NPC * SPELL_IDENTIFY used with scrolls of identify) or non-players (such as NPC
* only spells). */ * only spells). */
#define SPELL_IDENTIFY 201 #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 /* To make an affect induced by dg_affect look correct on 'stat' we need to
* define it with a 'spellname'. */ * define it with a 'spellname'. */

View file

@ -228,11 +228,11 @@
#define AFF_PROTECT_GOOD 14 /* Char protected from good */ #define AFF_PROTECT_GOOD 14 /* Char protected from good */
#define AFF_SLEEP 15 /* (R) Char magically asleep */ #define AFF_SLEEP 15 /* (R) Char magically asleep */
#define AFF_NOTRACK 16 /* Char can't be tracked */ #define AFF_NOTRACK 16 /* Char can't be tracked */
#define AFF_UNUSED16 17 /* Room for future expansion */ #define AFF_FLYING 17 /* Char is flying */
#define AFF_UNUSED17 18 /* Room for future expansion */ #define AFF_SCUBA 18 /* Room for future expansion */
#define AFF_SNEAK 19 /* Char can move quietly */ #define AFF_SNEAK 19 /* Char can move quietly */
#define AFF_HIDE 20 /* Char is hidden */ #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 */ #define AFF_CHARM 22 /* Char is charmed */
/* Modes of connectedness: used by descriptor_data.state */ /* Modes of connectedness: used by descriptor_data.state */

View file

@ -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 PRF_FLAGGED(ch, flag) (IS_SET_AR(PRF_FLAGS(ch), (flag)))
#define ROOM_FLAGGED(loc, flag) (IS_SET_AR(ROOM_FLAGS(loc), (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 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 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 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))) #define OBJ_FLAGGED(obj, flag) (IS_SET_AR(GET_OBJ_EXTRA(obj), (flag)))