mirror of
https://github.com/tbamud/tbamud.git
synced 2025-12-21 01:30:12 +01:00
[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:
parent
2f24e37bb8
commit
8315bc5da8
29 changed files with 191 additions and 1330 deletions
15
changelog
15
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
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
Rumble (May 15) [ 1204] Added changelog to do_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
|
||||
~
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
*************************************************************************
|
||||
*******************************************************************************
|
||||
* The following people have reached immortality on tbaMUD. *
|
||||
*************************************************************************
|
||||
*******************************************************************************
|
||||
|
||||
Immortals
|
||||
~~~~~~~~~
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
*************************************************************************
|
||||
*******************************************************************************
|
||||
* The following people have reached immortality on tbaMUD. *
|
||||
*************************************************************************
|
||||
*******************************************************************************
|
||||
|
||||
Implementors
|
||||
~~~~~~~~~~~~
|
||||
Rumble
|
||||
|
||||
Greater Gods
|
||||
~~~~~~~~~~~~
|
||||
|
|
|
|||
|
|
@ -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~
|
||||
|
|
|
|||
|
|
@ -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 <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
|
||||
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~
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
~
|
||||
$~
|
||||
|
|
|
|||
|
|
@ -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~
|
||||
|
|
|
|||
|
|
@ -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~
|
||||
|
|
|
|||
|
|
@ -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 \
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 : "<None>",
|
||||
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 : "<None>");
|
||||
|
||||
|
|
@ -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" }
|
||||
};
|
||||
|
||||
|
|
@ -4130,7 +4133,7 @@ ACMD(do_file)
|
|||
}
|
||||
|
||||
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");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
||||
|
|
|
|||
14
src/config.c
14
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
|
||||
|
|
|
|||
|
|
@ -207,8 +207,8 @@ const char *affected_bits[] =
|
|||
"PROT-GOOD",
|
||||
"SLEEP",
|
||||
"NO_TRACK",
|
||||
"UNUSED",
|
||||
"UNUSED",
|
||||
"FLY",
|
||||
"SCUBA",
|
||||
"SNEAK",
|
||||
"HIDE",
|
||||
"UNUSED",
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
}
|
||||
21
src/db.c
21
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)) {
|
||||
|
||||
|
|
|
|||
1
src/db.h
1
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 <CR> */
|
||||
#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 WIZLIST_FILE LIB_TEXT"wizlist" /* for WIZLIST */
|
||||
#define IMMLIST_FILE LIB_TEXT"immlist" /* for IMMLIST */
|
||||
|
|
|
|||
|
|
@ -2093,7 +2093,7 @@ ACMD(do_vdelete)
|
|||
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
142
src/oasis.h
142
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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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'. */
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue