From cb59bf0315b519ef15658cc942281df8e4ba3b3f Mon Sep 17 00:00:00 2001 From: kinther Date: Tue, 30 Sep 2025 07:00:54 -0700 Subject: [PATCH] Remove hitroll/damroll --- lib/world/mob/1.mob | 9 +- lib/world/mob/30.mob | 608 ---------------- lib/world/mob/index | 1 - lib/world/mob/index.mini | 1 - lib/world/obj/30.obj | 695 ------------------ lib/world/obj/index | 1 - lib/world/obj/index.mini | 1 - lib/world/shp/30.shp | 398 ----------- lib/world/shp/index | 1 - lib/world/shp/index.mini | 1 - lib/world/wld/30.wld | 1430 -------------------------------------- lib/world/wld/index | 1 - lib/world/wld/index.mini | 1 - lib/world/zon/30.zon | 175 ----- lib/world/zon/index | 1 - lib/world/zon/index.mini | 1 - src/Makefile | 1 + src/act.wizard.c | 154 ++-- src/constants.c | 2 - src/db.c | 35 +- src/dg_variables.c | 15 +- src/genmob.c | 11 +- src/genolc.c | 11 +- src/handler.c | 30 +- src/magic.c | 8 +- src/medit.c | 78 +-- src/oasis.h | 51 +- src/pfdefaults.h | 2 - src/players.c | 6 - src/protocol.c | 2 - src/protocol.h | 2 - src/spells.c | 6 +- src/structs.h | 18 +- src/util/plrtoascii.c | 6 - src/utils.h | 6 +- 35 files changed, 133 insertions(+), 3636 deletions(-) delete mode 100644 lib/world/mob/30.mob delete mode 100644 lib/world/obj/30.obj delete mode 100644 lib/world/shp/30.shp delete mode 100644 lib/world/wld/30.wld delete mode 100644 lib/world/zon/30.zon diff --git a/lib/world/mob/1.mob b/lib/world/mob/1.mob index 7e247c7..4952bd1 100644 --- a/lib/world/mob/1.mob +++ b/lib/world/mob/1.mob @@ -9,8 +9,7 @@ eyes have a bluish-tint to them with a small amount of green. One might call his stature bulky, as he has quite a bit of muscle. ~ 2122 0 0 0 0 0 0 0 0 E -1 20 1 3d20+40 1d1+0 -0 0 +1 3d20+40 1d1 8 8 1 Str: 16 Dex: 14 @@ -39,8 +38,7 @@ dark hair has been pulled back behind her head, intensifying the sharpness of her nose. ~ 2122 0 0 0 0 0 0 0 0 E -0 20 10 3d20+40 1d1+0 -0 0 +0 3d20+40 1d1 8 8 2 Str: 14 Dex: 18 @@ -69,8 +67,7 @@ hands are marred with minor cuts and scars from years of working in service to others. ~ 10 0 0 0 0 0 0 0 0 E -1 20 10 3d12+60 1d1+0 -0 0 +1 3d12+60 1d1 8 8 1 Str: 18 Int: 12 diff --git a/lib/world/mob/30.mob b/lib/world/mob/30.mob deleted file mode 100644 index 58e751b..0000000 --- a/lib/world/mob/30.mob +++ /dev/null @@ -1,608 +0,0 @@ -#3000 -wizard~ -the wizard~ -A wizard walks around behind the counter, talking to himself. -~ - The wizard looks old and senile, and yet he looks like a very powerful -wizard. He is equipped with fine clothing, and is wearing many fine rings and -bracelets. -~ -26635 0 0 0 16 0 0 0 900 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3001 -baker~ -the baker~ -The baker looks at you calmly, wiping flour from his face with one hand. -~ - A fat, nice looking baker. But you can see that he has many scars on his -body. -~ -26635 0 0 0 16 0 0 0 900 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3002 -grocer~ -the grocer~ -A grocer stands at the counter, with a slightly impatient look on his face. -~ - A tall grocer, who moves two 200 pounds bag of flour around on his shoulders. - -~ -26635 0 0 0 16 0 0 0 900 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3003 -weaponsmith~ -the weaponsmith~ -A weaponsmith is standing here. -~ - He is a young weaponsmith, who still has lots to learn but he is still eager -to sell you his latest implements of carnage and destruction. -~ -26635 0 0 0 16 0 0 0 900 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3004 -armorer~ -the armorer~ -An armorer stands here displaying his new (and previously owned) armors. -~ - An old but very strong armorer. He has made more suits of armor in his -life than you have ever seen. -~ -26635 0 0 0 16 0 0 0 900 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3005 -receptionists~ -the receptionist~ -A receptionist is standing behind the counter here, smiling at you. -~ - You notice a tired look in her face. She looks like she isn't paid well -enough to put up with any crap from mud players with attitudes. -~ -59419 0 0 0 65616 0 0 0 900 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 2 -E -#3006 -captain stolar~ -Captain Stolar~ -A retired captain stands here, selling boats. -~ - This captain has eaten more sharks than you have killed peas. -~ -26635 0 0 0 16 0 0 0 900 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3007 -sailor~ -the sailor~ -A sailor stands here, waiting to help you. -~ - He looks like a strong, fit sailor. -~ -26634 0 0 0 0 0 0 0 900 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3008 -uncle juan~ -Uncle Juan~ -Uncle Juan is here ready to take your order. -~ - He looks like he may or may not have a green card. -~ -26635 0 0 0 0 0 0 0 900 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3009 -wally watermaster~ -Wally the Watermaster~ -Wally the Watermaster is standing behind the counter. -~ - Wally is a bit pudgy but looks very strong. He has a glass of Midgaard -Natural Spring Water in his hand. When he notices you, he proudly displays his -fine collection of contemporary waters. -~ -26635 0 0 0 16 0 0 0 800 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3010 -postmasters~ -the postmaster~ -The head postmaster is standing here, waiting to help you with your mail. -~ - The Postmaster seems like a happy old man, though a bit sluggish. He worries -about the reputation of the MMS (Midgaard Mail Service), as many people seem to -think that it is slow. Perhaps if he were to brush the cobwebs from his uniform -it would help to make a better impression. -~ -518154 0 0 0 65552 0 0 0 1000 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3011 -travelling saleswoman woman~ -the travelling saleswoman~ -This saleswoman is laden with gadgets and gizmos that are outrageously priced. -~ - A combination of good business sense, charming personality, and good looks -has made her a success at pushing useless products on uneducated buyers. Only -on a rare occasion does she sell anything useful. -~ -253962 0 0 0 0 0 0 0 0 E -30 10 -8 6d6+300 5d5+5 -300 90000 -8 8 2 -E -#3012 -kind soul~ -a kind soul~ -A very kind and caring soul is here looking out for those who need it. -~ - She immediately reminds you of your mother. Constantly worrying about -everyone and everything. She is always around to help out those who have hit -hard times and need a little boost. -~ -253962 0 0 0 0 0 0 0 0 E -30 10 -8 6d6+300 5d5+5 -300 90000 -8 8 2 -E -#3013 -newbie tour guide~ -the newbie tour guide~ -A newbie tour guide is here to help. "@RTell guide help@y" for assistance.@n -~ - This young lady has the sole purpose of helping those who need assistance. -She will follow you around Midgaard and provide a walking tour of the local -attractions. -~ -10 0 0 0 2128 0 0 0 0 E -10 17 4 2d2+100 1d2+1 -100 10000 -8 8 2 -SavingPara: 2 -SavingRod: 2 -SavingPetri: 2 -SavingBreath: 2 -SavingSpell: 2 -E -#3020 -master mage guildmasters~ -the mages' guildmaster~ -Your guildmaster is studying a spellbook while preparing to cast a spell. -~ - Even though your guildmaster looks old and tired, you can clearly see the -vast amount of knowledge she possesses. She is wearing fine magic clothing, and -you notice that she is surrounded by a blue shimmering aura. -~ -59419 0 0 0 16 0 0 0 1000 E -34 9 -10 6d6+340 5d5+5 -340 115600 -8 8 2 -E -#3021 -guildmasters master priest~ -the priests' guildmaster~ -Your guildmaster is praying to your God here. -~ - You are in no doubt that this guildmaster is truly close to your God; he has -a peaceful, loving look. You notice that he is surrounded by a white aura. -~ -59419 0 0 0 16 0 0 0 1000 E -34 9 -10 6d6+340 5d5+5 -340 115600 -8 8 1 -E -#3022 -guildmasters master beggar thief~ -the thieves' guildmaster~ -A beggar is sitting here, could she be a guildmaster? -~ - You realize that whenever your guildmaster moves, you fail to notice it - the -way of the true thief. She is to be dressed in poor clothing, having the -appearance of a beggar. -~ -59419 0 0 0 16 0 0 0 1000 E -34 9 -10 6d6+340 5d5+5 -340 115600 -8 8 2 -E -#3023 -guildmasters master~ -the fighters' guildmaster~ -Your guildmaster is standing here sharpening an axe. -~ - This is your master. Big and strong with bulging muscles. Several scars -across his body proves that he was using arms before you were born. He has a -calm look on his face. -~ -59419 0 0 0 0 0 0 0 1000 E -34 9 -10 6d6+340 5d5+5 -340 115600 -8 8 1 -E -#3024 -sorcerer guildguard~ -the sorcerer~ -A sorcerer is guarding the entrance. -~ - He is an experienced mage who has specialized in the field of Combat Magic. -He is here to guard the Mage's Guild and his superior knowledge of offensive as -well as defensive spells make him a deadly opponent. -~ -256010 0 0 0 80 0 0 0 900 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3025 -knight templar guildguard~ -the knight templar~ -A knight templar is guarding the entrance. -~ - He is a specially trained warrior belonging to the military order of the -Faith. His duty is to protect the faithful from persecution and infidel attacks -and his religious devotion combined with his superior skill makes him a deadly -opponent. -~ -256010 0 0 0 80 0 0 0 1000 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3026 -assassin guildguard~ -the assassin~ -An assassin is guarding the entrance. -~ - He is a thief who has specialized in killing others as effectively as -possible, using all sorts of weapons. His superior knowledge of how and where -to use them combined with his extraordinary stealth makes him a deadly opponent. - -~ -256010 0 0 0 1572944 0 0 0 400 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3027 -knight guildguard~ -the knight~ -A knight is guarding the entrance. -~ - He is an expert warrior who has attained knighthood through countless -chivalrous deeds. His duty is to protect the Guild of Swordsmen and his extreme -skill combined with his experience in warfare makes him a deadly opponent. -~ -256010 0 0 0 80 0 0 0 800 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3040 -bartender~ -the bartender~ -A bartender watches you calmly, while he skillfully mixes a drink. -~ - A tired looking Bartender who hates trouble in his bar. -~ -24586 0 0 0 0 0 0 0 900 E -24 12 -4 4d4+240 4d4+4 -240 57600 -8 8 1 -E -#3041 -waiter~ -the waiter~ -A waiter is going around from one place to another. -~ - A tired looking waiter. -~ -24586 0 0 0 0 0 0 0 900 E -23 13 -3 4d4+230 3d3+3 -230 52900 -8 8 1 -E -#3042 -waiter~ -the waiter~ -A man now leads a quiet, peaceful life as a waiter is standing here. -~ - This man was obviously a famous sorcerer in his younger days as you instantly -recognize his face. -~ -24586 0 0 0 0 0 0 0 600 E -23 13 -3 4d4+230 3d3+3 -230 52900 -8 8 1 -E -#3043 -waiter~ -the waiter~ -A waiter who seems to have reached contact with his God is standing here. -~ - This waiter almost makes you feel like you should drop to your knees and -begin to worship your God. Naaah. -~ -24586 0 0 0 0 0 0 0 600 E -23 13 -3 4d4+230 3d3+3 -230 52900 -8 8 1 -E -#3044 -waiter~ -the waiter~ -A waiter who knows where all his customers keep their money is standing here. -~ - Hmmm... Wonder where he got that coin he is playing with. -~ -24586 0 0 0 0 0 0 0 600 E -23 13 -3 4d4+230 3d3+3 -230 52900 -8 8 1 -E -#3045 -waiter~ -the waiter~ -A waiter is here. -~ - This guy looks like he could easily kill you while still carrying quite a few -firebreathers. -~ -24586 0 0 0 0 0 0 0 600 E -23 13 -3 4d4+230 3d3+3 -230 52900 -8 8 1 -E -#3046 -filthy~ -Filthy~ -Filthy is standing here, eager to serve you a special drink. -~ - Filthy looks real, ehm, dirty. He likes to keep his customers happy, but do -not mess with him or else he'll get upset. -~ -26650 0 0 0 16 0 0 0 600 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 1 -E -#3059 -keeper peacekeeper~ -the Peacekeeper~ -A Peacekeeper is standing here, ready to jump in at the first sign of trouble. -~ - He looks very strong and wise. Looks like he doesn't answer to ANYONE. -~ -6232 0 0 0 16 0 0 0 1000 E -17 15 0 3d3+170 2d2+2 -170 28900 -8 8 1 -BareHandAttack: 10 -E -#3060 -cityguard guard~ -the cityguard~ -A cityguard stands here. -~ - A big, strong, helpful, trustworthy guard. -~ -6216 0 0 0 16 0 0 0 1000 E -10 17 4 2d2+100 1d2+1 -100 10000 -8 8 1 -E -#3061 -janitor~ -the janitor~ -A janitor is walking around, cleaning up. -~ - What a tough job he has. -~ -2120 0 0 0 0 0 0 0 800 E -1 20 9 0d0+10 1d2+0 -10 100 -8 8 1 -E -#3062 -fido dog~ -the beastly fido~ -A beastly fido is mucking through the garbage looking for food here. -~ - The fido is a small dog that has a foul smell and pieces of rotted meat -hanging around his teeth. -~ -202 0 0 0 65536 0 0 0 -200 E -1 20 9 0d0+10 1d2+0 -10 100 -8 8 1 -BareHandAttack: 4 -E -#3063 -mercenary~ -the mercenary~ -A mercenary is waiting for a job here. -~ - He looks pretty mean, and you imagine he'd do anything for money. -~ -2058 0 0 0 0 0 0 0 -330 E -5 19 7 1d1+50 1d2+0 -50 2500 -8 8 1 -E -#3064 -drunk~ -the drunk~ -A singing, happy Drunk. -~ - A drunk who seems to be too happy, and to carry too much money. -~ -10 0 0 0 0 0 0 0 400 E -2 20 8 0d0+20 1d2+0 -20 400 -8 8 1 -E -#3065 -beggar~ -the beggar~ -A beggar is here, asking for a few coins. -~ - The beggar looks like she is fed up with life. -~ -10 0 0 0 0 0 0 0 400 E -1 20 9 0d0+10 1d2+0 -10 100 -8 8 2 -E -#3066 -odif yltsaeb~ -the odif yltsaeb~ -An odif yltsaeb is here, walking backwards. -~ - The odif is a small god that has been reversed by some dog. -~ -65768 0 0 0 65536 0 0 0 -200 E -1 20 9 0d0+10 1d2+0 -10 100 -8 8 1 -BareHandAttack: 4 -E -#3067 -cityguard guard~ -the cityguard~ -A cityguard is here, guarding the gate. -~ - A big, strong, helpful, trustworthy guard. -~ -6218 0 0 0 0 0 0 0 1000 E -10 17 4 2d2+100 1d2+1 -100 10000 -8 8 1 -E -#3068 -green gelatinous blob oozing~ -the green gelatinous blob~ -An oozing green gelatinous blob is here, sucking in bits of debris. -~ - A horrid looking thing; it is huge, greenish, and looks like the blob. -~ -256216 0 0 0 16 0 0 0 0 E -20 14 -2 4d4+200 3d3+3 -200 40000 -8 8 0 -BareHandAttack: 6 -E -#3089 -petshops shop boy~ -the Pet Shop Boy~ -There is a Pet Shop Boy standing here cuddling something furry in his hands. -~ - As you look at him, he opens his hands to reveal a rat! -~ -26634 0 0 0 0 0 0 0 1000 E -10 17 4 2d2+100 1d2+1 -100 10000 -8 8 1 -E -#3090 -kitten pets~ -the kitten~ -A small loyal kitten is here. -~ - The kitten looks like a cute, little, fierce fighter. -~ -16398 0 0 0 0 0 0 0 0 E -1 20 9 0d0+10 1d2+0 -10 100 -8 8 0 -BareHandAttack: 8 -E -#3091 -puppy pets~ -the puppy~ -A small loyal puppy is here. -~ - The puppy looks like a cute, little, fierce fighter. -~ -16398 0 0 0 0 0 0 0 0 E -1 20 9 0d0+10 1d2+0 -10 100 -8 8 0 -BareHandAttack: 8 -E -#3092 -beagle pets~ -the beagle~ -A small, quick, loyal beagle is here. -~ - The beagle looks like a fierce fighter. -~ -16398 0 0 0 0 0 0 0 0 E -2 20 8 0d0+20 1d2+0 -20 400 -8 8 0 -BareHandAttack: 4 -E -#3093 -rottweiler pets~ -the rottweiler~ -A large, loyal rottweiler is here. -~ - The rottweiler looks like a strong, fierce fighter. -~ -16398 0 0 0 0 0 0 0 0 E -3 19 8 0d0+30 1d2+0 -30 900 -8 8 0 -BareHandAttack: 4 -E -#3094 -wolf pets~ -the wolf~ -A large, trained wolf is here. -~ - The wolf looks like a strong, fearless fighter. -~ -16398 0 0 0 0 0 0 0 0 E -4 19 7 0d0+40 1d2+0 -40 1600 -8 8 0 -BareHandAttack: 4 -E -#3095 -cryogenicist cryo~ -the cryogenicist~ -The cryogenicist is here, playing with a canister of liquid nitrogen. -~ - You notice a tired look in her face. She looks like she isn't paid well -enough to put up with any crap from mud players with attitudes. -~ -26635 0 0 0 65616 0 0 0 900 E -33 9 -9 6d6+330 5d5+5 -330 108900 -8 8 2 -E -$ diff --git a/lib/world/mob/index b/lib/world/mob/index index e149c92..fab85c7 100644 --- a/lib/world/mob/index +++ b/lib/world/mob/index @@ -1,5 +1,4 @@ 0.mob 1.mob 2.mob -30.mob $ diff --git a/lib/world/mob/index.mini b/lib/world/mob/index.mini index ce905d9..857f13a 100644 --- a/lib/world/mob/index.mini +++ b/lib/world/mob/index.mini @@ -1,2 +1 @@ -30.mob $ diff --git a/lib/world/obj/30.obj b/lib/world/obj/30.obj deleted file mode 100644 index aacfa18..0000000 --- a/lib/world/obj/30.obj +++ /dev/null @@ -1,695 +0,0 @@ -#3000 -barrel beer~ -a barrel~ -A beer barrel has been left here.~ -~ -17 0 0 0 0 a 0 0 0 0 0 0 0 -50 50 1 0 -50 300 100 0 0 -#3001 -bottle beer~ -a bottle~ -A beer bottle has been left here.~ -~ -17 0 0 0 0 a 0 0 0 0 0 0 0 -8 8 1 0 -10 20 8 0 0 -#3002 -bottle dark ale~ -a bottle~ -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 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 0 -#3004 -bottle local~ -a bottle~ -A dark bottle has been left here.~ -~ -17 0 0 0 0 a 0 0 0 0 0 0 0 -8 8 8 0 -10 20 7 0 0 -#3005 -key dull metal~ -a key of dull metal~ -A key made of a dull metal is lying on the ground here.~ -~ -18 cdq 0 0 0 ao 0 0 0 0 0 0 0 -0 0 0 0 -1 1 0 0 0 -#3006 -teleporter~ -the teleporter~ -A strange device labeled "teleporter" was left here.~ -~ -12 0 0 0 0 a 0 0 0 0 0 0 0 -0 0 0 0 -1 10 0 0 0 -T 3014 -T 3015 -E -teleporter~ -This teleporter is used to transfer players between zones. Accessible zones -are listed under HELP ZONES by being CAPITALIZED. For example to teleport to: - 74 Newbie GRAVEyard -- Jojen 3- 5 -type: teleport grave - The teleporter may also be used to recall back to Midgaard at any time. - -Uncapitalized zones are linked through a capitalized zone. -~ -#3009 -waybread bread~ -a waybread~ -Some waybread has been put here.~ -~ -19 0 0 0 0 a 0 0 0 0 0 0 0 -24 0 0 0 -1 50 50 0 0 -E -waybread bread~ - The waybread is the traditional feed of elves when travelling, they call it -lembas. It is said to refresh the weary traveler greatly. -~ -#3010 -bread loaf~ -a bread~ -A loaf of bread has been left here.~ -~ -19 0 0 0 0 a 0 0 0 0 0 0 0 -12 0 0 0 -1 10 10 0 0 -#3011 -danish pastry~ -a danish pastry~ -A nice looking delicious danish pastry has been placed here.~ -~ -19 0 0 0 0 a 0 0 0 0 0 0 0 -5 0 0 0 -1 5 5 0 0 -#3012 -taco mexican~ -a Mexican taco~ -A tasty looking Mexican taco has been dropped here.~ -~ -19 0 0 0 0 a 0 0 0 0 0 0 0 -15 0 0 0 -1 15 15 0 0 -#3013 -burrito hot~ -a spicy hot burrito~ -A spicy looking burrito has been set here.~ -~ -19 0 0 0 0 a 0 0 0 0 0 0 0 -10 0 0 0 -1 10 10 0 0 -#3014 -nachos nacho~ -some nachos with cheese~ -Some nachos have been left here.~ -~ -19 0 0 0 0 a 0 0 0 0 0 0 0 -5 0 0 0 -1 5 5 0 0 -E -nachos nacho~ - They have cheese on them. Looks like one of Uncle Juan's specials. -~ -#3015 -meat chunk~ -a piece of meat~ -A rather dubious looking piece of meat is on the ground here.~ -~ -19 0 0 0 0 a 0 0 0 0 0 0 0 -14 0 0 0 -5 24 10 0 0 -E -meat chunk~ - It isn't so much that the meat looks poisoned or anything, but that you just -are not sure of its origins. You doubt that a hunter would drop a side of -venison or rabbit meat... What in the world could this meat have come from, you -wonder... -~ -#3020 -dagger~ -a dagger~ -A dagger with a long thin blade is here.~ -~ -5 n 0 0 0 an 0 0 0 0 0 0 0 -0 1 4 11 -1 10 10 0 0 -#3021 -sword small~ -a small sword~ -A small sword lies here.~ -~ -5 e 0 0 0 an 0 0 0 0 0 0 0 -0 1 6 11 -3 60 10 0 0 -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~ -A long sword has been left here.~ -~ -5 n 0 0 0 an 0 0 0 0 0 0 0 -0 1 8 3 -8 600 10 0 0 -#3023 -club wooden~ -a wooden club~ -A simple looking wooden club is here.~ -~ -5 0 0 0 0 an 0 0 0 0 0 0 0 -0 1 3 7 -3 12 10 0 0 -#3024 -warhammer hammer~ -a warhammer~ -A medium sized warhammer is here.~ -~ -5 0 0 0 0 an 0 0 0 0 0 0 0 -0 1 5 7 -6 50 10 0 0 -#3025 -flail large~ -a flail~ -A large flail is here.~ -~ -5 0 0 0 0 an 0 0 0 0 0 0 0 -0 2 4 7 -6 625 10 0 0 -#3030 -torch~ -a torch~ -A large torch.~ -~ -1 0 0 0 0 ao 0 0 0 0 0 0 0 -0 0 24 0 -1 10 10 0 0 -#3031 -lantern brass~ -a lantern~ -A brass lantern is here.~ -~ -1 0 0 0 0 ao 0 0 0 0 0 0 0 -0 0 96 0 -1 50 10 0 0 -#3032 -bag~ -a bag~ -A small bag is here.~ -~ -15 0 0 0 0 ao 0 0 0 0 0 0 0 -50 0 0 0 -2 20 10 0 0 -#3033 -box~ -a box~ -A small box is here.~ -~ -15 0 0 0 0 ao 0 0 0 0 0 0 0 -10 0 0 0 -5 50 10 0 0 -#3034 -atm teller banks machine~ -an automatic teller machine~ -An automatic teller machine has been installed in the wall here.~ -~ -12 cdeg 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 -0 0 0 0 0 -E -atm teller bank machine~ - There is a small note on the machine which says: - -To use, type 'BALANCE', 'WITHDRAW ', or 'DEPOSIT '. -Please report any strange occurrences to the bank manager. - -~ -#3035 -fountain water~ -the large fountain~ -A large fountain carved from blue-streaked marble is here, bubbling merrily.~ -~ -23 cdeg 0 0 0 0 0 0 0 0 0 0 0 -500 500 15 0 -505 0 0 0 0 -E -marble blue streaked fountain~ - It is a well crafted fountain, carved from a single piece of very beautiful -white marble shot through with electric blue streaks that look almost like -lightning dancing along the sides of the fountain. It seems to be enchanted in -some manner, as the water level seems to never lower. -~ -#3036 -cashcard card atm banks~ -a cashcard~ -A handy dandy cashcard is sitting on the ground here.~ -~ -12 cdeg 0 0 0 ao 0 0 0 0 0 0 0 -0 0 0 0 -1 1000 10 0 0 -E -cashcard card atm~ - There is some writing on the back of the card which reads: - -To use, type 'BALANCE', 'WITHDRAW ', or 'DEPOSIT '. -Please report any strange occurrences to the bank manager. - -~ -#3037 -candle~ -a candle~ -A candle lies here, unlit.~ -~ -1 0 0 0 0 ao 0 0 0 0 0 0 0 -0 0 -1 0 -1 5 1 0 0 -E -candle~ - A home-made candle, how quaint! -~ -#3038 -nail~ -a nail~ -A penny nail lies in the dust.~ -~ -5 0 0 0 0 an 0 0 0 0 0 0 0 -0 1 1 11 -1 5 1 0 0 -E -nail~ - Its a common iron nail, used for carpentry work. -~ -#3039 -pot~ -a pot~ -A cast-iron pot sits on the ground.~ -~ -15 0 0 0 0 a 0 0 0 0 0 0 0 -10 0 0 0 -10 100 20 0 0 -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 0 -#3041 -shirt chain mail~ -a chain mail shirt~ -A chain mail shirt is lying on the ground.~ -~ -9 0 0 0 0 ad 0 0 0 0 0 0 0 -5 0 0 0 -50 250 5 0 0 -#3042 -shield wooden~ -a shield~ -A small wooden shield is lying on the ground.~ -~ -9 0 0 0 0 aj 0 0 0 0 0 0 0 -2 0 0 0 -3 100 10 0 0 -#3043 -jacket soft leather~ -a leather jacket~ -A soft leather jacket is lying on the ground.~ -~ -9 0 0 0 0 ad 0 0 0 0 0 0 0 -2 0 0 0 -10 200 10 0 0 -#3044 -jacket studded leather~ -a studded leather jacket~ -A studded leather jacket is lying on the ground.~ -~ -9 0 0 0 0 ad 0 0 0 0 0 0 0 -3 0 0 0 -20 500 10 0 0 -#3045 -jacket scale mail~ -a scale mail jacket~ -A scale mail jacket is lying on the ground.~ -~ -9 0 0 0 0 ad 0 0 0 0 0 0 0 -4 0 0 0 -40 1000 10 0 0 -#3046 -plate bronze breast~ -a bronze breast plate~ -A bronze breast plate is lying on the ground.~ -~ -9 0 0 0 0 ad 0 0 0 0 0 0 0 -6 0 0 0 -50 700 10 0 0 -#3050 -scroll identify~ -a scroll of identify~ -A scroll has carelessly been left here.~ -~ -2 g 0 0 0 ao 0 0 0 0 0 0 0 -1 52 -1 -1 -1 5000 10 0 0 -E -scroll identify~ - The scroll has a magic formula drawn upon it: - - ??? - ? ? - ? - ? - ? - * - -~ -#3051 -potion yellow~ -a yellow potion of see invisible~ -A small yellow potion has carelessly been left here.~ -~ -10 g 0 0 0 ao 0 0 0 0 0 0 0 -1 19 -1 -1 -1 400 10 0 0 -E -potion yellow~ - The potion has a small label 'Detect The Invisible'. -~ -#3052 -scroll recall~ -a scroll of recall~ -A scroll has carelessly been left here.~ -~ -2 g 0 0 0 ao 0 0 0 0 0 0 0 -1 42 -1 -1 -4 200 10 0 0 -E -scroll recall~ - The scroll has written a formulae of 'Word of Recall' upon it. -~ -#3053 -wand gray~ -a gray wand of invisibility~ -A gray wand has carelessly been left here.~ -~ -3 g 0 0 0 ao 0 0 0 0 0 0 0 -1 2 2 29 -2 400 10 0 0 -E -wand gray~ - The wand is an old dark gray stick. You notice a small symbol etched -at the base of the wand. It looks like this: - \ / - - O - - / \ -~ -#3054 -staff gnarled~ -a gnarled staff~ -A gnarled staff has carelessly been left here.~ -~ -4 g 0 0 0 ao 0 0 0 0 0 0 0 -1 1 1 38 -17 700 50 0 0 -E -staff gnarled~ - The staff is made of old oak, and is around five feet long. It fits -perfectly into your hand. You notice a small symbol etched at the -base of the staff, it looks like: - - ZZZZZ - Z - Z - Z - ZZZZZ z z - -~ -#3055 -staff metal~ -a metal staff~ -A metal staff has carelessly been left here.~ -~ -4 g 0 0 0 ao 0 0 0 0 0 0 0 -1 8 8 15 -7 850 30 0 0 -E -staff metal~ - The staff is made of metals unknown to you. -~ -#3060 -raft~ -a raft~ -A raft has been left here.~ -~ -22 0 0 0 0 a 0 0 0 0 0 0 0 -0 0 0 0 -50 400 10 0 0 -E -raft~ - The raft looks very primitive. -~ -#3061 -canoe~ -a canoe~ -A canoe has been left here.~ -~ -22 0 0 0 0 a 0 0 0 0 0 0 0 -0 0 0 0 -32 1000 100 0 0 -E -canoe~ - The canoe is fairly light. -~ -#3070 -gauntlets bronze~ -a pair of bronze gauntlets~ -A pair of bronze gauntlets is lying on the ground.~ -~ -9 0 0 0 0 ah 0 0 0 0 0 0 0 -6 0 0 0 -8 175 10 0 0 -#3071 -gloves leather~ -a pair of leather gloves~ -A pair of leather gloves is lying on the ground.~ -~ -9 0 0 0 0 ah 0 0 0 0 0 0 0 -3 0 0 0 -3 75 10 0 0 -#3075 -helmet bronze~ -a bronze helmet~ -A bronze helmet is lying on the ground.~ -~ -9 0 0 0 0 ae 0 0 0 0 0 0 0 -6 0 0 0 -8 350 10 0 0 -#3076 -cap leather~ -a leather cap~ -A leather cap is lying on the ground.~ -~ -9 0 0 0 0 ae 0 0 0 0 0 0 0 -3 0 0 0 -3 150 10 0 0 -#3080 -leggings bronze~ -a pair of bronze leggings~ -A pair of bronze leggings is lying on the ground.~ -~ -9 0 0 0 0 af 0 0 0 0 0 0 0 -6 0 0 0 -8 350 10 0 0 -#3081 -pants leather~ -a pair of leather pants~ -A pair of leather pants is lying on the ground.~ -~ -9 0 0 0 0 af 0 0 0 0 0 0 0 -3 0 0 0 -8 150 10 0 0 -#3082 -leather gorget neck guard~ -a leather gorget~ -A leather neck guard has been left here~ -~ -9 0 0 0 0 ac 0 0 0 0 0 0 0 -3 0 0 0 -1 10 0 0 0 -E -leather gorget neck guard~ - This leather neck guard is meant to protect the throat and face in battle. -~ -#3083 -leather ring~ -a leather ring~ -A leather ring with strange symbols lies here.~ -~ -11 0 0 0 0 ab 0 0 0 0 0 0 0 -1 0 0 0 -1 10 1 0 0 -E -leather ring~ - The ring used to have some strange writing and symbols around the band but it -has become so worn with time and use that it is unreadable. -~ -#3084 -leather boots~ -a pair of leather boots~ -A pair of leather boots is lying here.~ -~ -11 0 0 0 0 ag 0 0 0 0 0 0 0 -4 0 0 0 -2 11 0 0 0 -E -leather boots~ - The boots are worn with age but well oiled and polished to still remain -useable. -~ -#3085 -sleeves bronze~ -a pair of bronze sleeves~ -A pair of bronze sleeves is lying on the ground.~ -~ -9 0 0 0 0 ai 0 0 0 0 0 0 0 -6 0 0 0 -8 175 10 0 0 -#3086 -sleeves leather~ -a pair of leather sleeves~ -A pair of leather sleeves is lying on the ground.~ -~ -9 0 0 0 0 ai 0 0 0 0 0 0 0 -2 0 0 0 -4 75 10 0 0 -#3087 -brown leather cape~ -a brown leather cape~ -A brown leather cape was abandoned on the floor~ -~ -9 0 0 0 0 ak 0 0 0 0 0 0 0 -5 0 0 0 -4 100 0 0 0 -E -brown leather cape~ - It is a rough brown leather cape that is frayed at the end. -~ -A -1 1 -#3088 -leather old belt~ -an old leather belt~ -A belt made of leather was left here.~ -~ -9 e 0 0 0 al 0 0 0 0 0 0 0 -2 0 0 0 -1 30 0 0 0 -E -belt leather old~ - It looks very, very old. -~ -A -18 2 -A -1 1 -#3089 -leather wristguard~ -a leather wristguard~ -A leather wristguard lies in the dirt.~ -~ -9 0 0 0 0 am 0 0 0 0 0 0 0 -1 0 0 0 -3 30 0 0 0 -E -leather wristguard~ - The wristguard has been heavily oiled and is extremely flexible and -supportive. It is laced with some leather string to loosen and tighten to -almost any size. -~ -#3096 -boards social bulletin gen_boards~ -a social bulletin board~ -A large, sociable bulletin board is mounted on a wall here.~ -~ -12 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 -0 0 0 0 0 -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~ -A large bulletin board is here, carved from a block of ice.~ -~ -13 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 -0 0 0 0 0 -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~ -A large bulletin board is mounted on a wall here. It glows with a faint aura.~ -~ -13 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 -0 0 0 0 0 -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~ -A large bulletin board is mounted on a wall here.~ -~ -13 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 -0 0 0 0 0 -E -bulletin~ - Use 'look board' to read the board. -~ -E -board~ - If you can read this, the board is not working. -~ -$~ diff --git a/lib/world/obj/index b/lib/world/obj/index index 77452fb..6f5e7e4 100644 --- a/lib/world/obj/index +++ b/lib/world/obj/index @@ -1,5 +1,4 @@ 0.obj 1.obj 2.obj -30.obj $ diff --git a/lib/world/obj/index.mini b/lib/world/obj/index.mini index cde9b4c..857f13a 100644 --- a/lib/world/obj/index.mini +++ b/lib/world/obj/index.mini @@ -1,2 +1 @@ -30.obj $ diff --git a/lib/world/shp/30.shp b/lib/world/shp/30.shp deleted file mode 100644 index bcc96ee..0000000 --- a/lib/world/shp/30.shp +++ /dev/null @@ -1,398 +0,0 @@ -CircleMUD v3.0 Shop File~ -#3000~ -3050 -3051 -3052 -3053 -3054 --1 -1.15 -0.15 -2 -3 -4 -10 --1 -%s Sorry, I haven't got exactly that item.~ -%s You don't seem to have that.~ -%s I don't buy such items.~ -%s That is too expensive for me!~ -%s You can't afford it!~ -%s That'll be %d coins, please.~ -%s You'll get %d coins for it!~ -0 -6 -3000 -2 -3033 --1 -0 -28 -0 -0 -#3001~ -3009 -3010 -3011 --1 -1.40 -0.90 --1 -%s Haven't got that on storage - try list!~ -%s I don't buy!~ -%s I don't buy!~ -%s I don't buy!~ -%s If you have no money, you'll have to go!~ -%s That'll be %d coins.~ -%s Oops - %d a minor bug - please report!~ -0 -6 -3001 -0 -3009 --1 -0 -28 -0 -0 -#3002~ -3030 -3031 -3032 -3033 -3036 --1 -1.50 -0.40 -1 -8 -15 --1 -%s Haven't got that on storage - try list!~ -%s You don't seem to have that.~ -%s I don't buy THAT... Try another shop.~ -%s I can't afford such a treasure.~ -%s You can't afford it!~ -%s That'll be %d coins, please.~ -%s You'll get %d coins for it!~ -0 -6 -3002 -0 -3010 --1 -0 -28 -0 -0 -#3003~ -3020 -3021 -3022 -3023 -3024 -3025 --1 -1.30 -0.40 -5 --1 -%s I haven't got that kind of a weapon!~ -%s You don't carry that weapon!~ -%s I only buy weapons.~ -%s I can't afford such a great weapon!~ -%s sorry, but NO CREDIT!~ -%s That costs just %d coins.~ -%s Here, you can have %d coins for that.~ -0 -6 -3003 -0 -3011 --1 -0 -28 -0 -0 -#3004~ -3040 -3041 -3042 -3043 -3044 -3045 -3046 -3070 -3071 -3075 -3076 -3080 -3081 -3085 -3086 --1 -1.20 -0.50 -9 --1 -%s Haven't got that on storage - try list!~ -%s You don't seem to have that.~ -%s I only buy armors.. Go away!~ -%s That is too expensive for me - Try a wizard!~ -%s You can't afford it!~ -%s That'll be %d coins, please.~ -%s You'll get %d coins for it!~ -0 -6 -3004 -0 -3020 --1 -0 -28 -0 -0 -#3005~ -3006 --1 -1.20 -0.90 --1 -%s Sorry, I don't stock that item.~ -%s You don't seem to have that.~ -%s I don't trade in such items.~ -%s I can't afford that!~ -%s You are too poor!~ -%s That'll be %d coins, thanks.~ -%s I'll give you %d coins for that.~ -0 -6 -3011 -0 -3000 --1 -0 -28 -0 -0 -#3006~ -3060 -3061 --1 -1.20 -0.90 -22 --1 -%s Sorry pal, I have not got that kind of ship.~ -%s Ok, but let me see it first.~ -%s I only trade ships.~ -%s I can't afford such a nice ship.~ -%s This ship is too expensive for you.~ -%s Here is your ship, I'll take %d gold coins.~ -%s What a fine deal, you get %d gold coins.~ -0 -6 -3006 -0 -3049 --1 -6 -22 -0 -0 -#3007~ --1 -2.00 -0.50 --1 -%s Sorry, you aren't on my list of people I can sell to.~ -%s Sorry, I don't buy from outsiders.~ -%s Sorry, I don't buy from outsiders.~ -%s Sorry, I don't buy from outsiders.~ -%s Sorry, but here, no money means no goods!~ -%s That will be %d coins, please. Thank you.~ -%s Here, you can have %d coins for that.~ -2 -6 -3007 -1 -3050 --1 -0 -28 -0 -0 -#3009~ -3102 -3103 -3104 --1 -1.20 -0.80 --1 -%s Sorry, I don't have that -- try list!~ -%s Sorry, I don't buy waters from outsiders.~ -%s Sorry, I don't buy waters from outsiders.~ -%s Sorry, I don't buy waters from outsiders.~ -%s Sorry, but here, no money means no water!~ -%s That will be %d coins, please. Thank you.~ -%s Here, you can have %d coins for that.~ -0 -6 -3009 -0 -3058 --1 -0 -28 -0 -0 -#3040~ -3000 -3001 -3002 -3003 -3004 --1 -1.10 -0.90 --1 -%s It's very noisy in here, what did you say you wanted to buy?~ -%s I don't buy!~ -%s I don't buy!~ -%s I don't buy!~ -%s Are you drunk or what?? - NO CREDIT!~ -%s That'll be - say %d coins.~ -%s Here, you can have %d coins for that.~ -0 -6 -3040 -0 -3007 --1 -0 -28 -0 -0 -#3042~ -3002 -3003 --1 -1.20 -0.80 --1 -%s Haven't got that on storage - try list!~ -%s I don't buy!~ -%s I don't buy!~ -%s I don't buy!~ -%s If you have no money, you'll have to go!~ -%s That'll be %d coins.~ -%s Here, you can have %d coins for that.~ -0 -6 -3042 -112 -3018 --1 -0 -28 -0 -0 -#3043~ -3002 -3004 --1 -1.10 -0.90 --1 -%s Haven't got that on storage - try list!~ -%s I don't buy!~ -%s I don't buy!~ -%s I don't buy!~ -%s If you have no money, you'll have to go!~ -%s That'll be %d coins.~ -%s Here, you can have %d coins for that.~ -0 -6 -3043 -104 -3003 --1 -0 -28 -0 -0 -#3044~ -3003 -3004 --1 -1.70 -0.80 --1 -%s Haven't got that on storage - try list!~ -%s I don't buy!~ -%s I don't buy!~ -%s I don't buy!~ -%s If you have no money, you'll have to go!~ -%s That'll be %d coins.~ -%s Here, you can have %d coins for that.~ -0 -6 -3044 -88 -3028 --1 -0 -28 -0 -0 -#3045~ -3002 -3003 -3004 --1 -1.50 -0.75 --1 -%s Haven't got that on storage - try list!~ -%s I don't buy!~ -%s I don't buy!~ -%s I don't buy!~ -%s If you have no money, you'll have to go!~ -%s That'll be %d coins.~ -%s Here, you can have %d coins for that.~ -0 -6 -3045 -56 -3022 --1 -0 -28 -0 -0 -#3046~ -3004 -3003 --1 -1.30 -0.70 --1 -%s It's very noisy in here, what did you say you wanted to buy?~ -%s I don't buy!~ -%s I don't buy!~ -%s I don't buy!~ -%s Oh, bugger off, NO CREDIT!~ -%s That'll be - say %d coins.~ -%s Here, you can have %d coins for that.~ -0 -6 -3046 -0 -3048 --1 -0 -28 -0 -0 -$~ diff --git a/lib/world/shp/index b/lib/world/shp/index index 879c2e3..bf56546 100644 --- a/lib/world/shp/index +++ b/lib/world/shp/index @@ -1,5 +1,4 @@ 0.shp 1.shp 2.shp -30.shp $ diff --git a/lib/world/shp/index.mini b/lib/world/shp/index.mini index db5fd77..857f13a 100644 --- a/lib/world/shp/index.mini +++ b/lib/world/shp/index.mini @@ -1,2 +1 @@ -30.shp $ diff --git a/lib/world/wld/30.wld b/lib/world/wld/30.wld deleted file mode 100644 index fb4b33b..0000000 --- a/lib/world/wld/30.wld +++ /dev/null @@ -1,1430 +0,0 @@ -#3000 -The Reading Room~ - You are in a small, simple room which is mostly empty, save a few -wooden desks and benches. To the east you hear the bustle of the Temple -of Midgaard, a sharp contrast to the relative quiet of this peaceful -room. -~ -30 156 0 0 0 0 -D1 -You see the Temple of Midgaard. -~ -~ -0 -1 3001 -E -credits info~ - Guilds: 20-23 -~ -S -#3001 -The Temple Of Midgaard~ - You are in the southern end of the temple hall in the Temple of Midgaard. -The temple has been constructed from giant marble blocks, eternal in -appearance, and most of the walls are covered by ancient wall paintings -picturing Gods, giants and peasants. - Large steps lead down through the grand temple gate, descending the huge -mound upon which the temple is built and ends on the temple square below. -To the west, you see the Reading Room. The donation room is in a small -alcove to your east. -~ -30 156 0 0 0 0 -D0 -At the northern end of the temple hall is a statue and a huge altar. -~ -~ -0 -1 3054 -D1 -In the east, you see a small alcove with a rickety wooden sign which -reads "Midgaard Donation Room." -~ -~ -0 -1 3063 -D2 -You look down the huge stone steps at the temple square below. -~ -~ -0 -1 3005 -D3 -You see the Reading Room. -~ -~ -0 -1 3000 -D5 -You see the temple square. -~ -~ -0 -1 3005 -E -paintings ancient wall peasants gods giants~ - The paintings are numerous in style and quality. But, they all have the same -surreal quality that tugs at the mind to become lost in their depth and detail. -~ -S -T 3017 -#3002 -The Clerics' Inner Sanctum~ - This is the inner sanctum. A picture of the mighty Thor, is hanging on -the wall, just above the altar which is set against the western wall. A well -in the middle of the floor leads down into darkness. Vile smells waft from -the depths. -~ -30 12 0 0 0 0 -D1 -You see your favorite place, the bar of divination. -~ -~ -0 -1 3003 -D5 -You can't see what is down there, it is too dark. Looks like it would be -impossible to climb back up. -~ -~ -0 -1 7026 -S -#3003 -The Bar Of Divination~ - The bar is one of the finest in the land, lucky it is members only. Fine -furniture is set all around the room. A small sign is hanging on the wall. -~ -30 140 0 0 0 0 -D2 -You see the entrance. -~ -~ -0 -1 3004 -D3 -You see the inner sanctum. -~ -~ -0 -1 3002 -E -sign~ - The sign reads: -Free instructions provided by the waiter: - Buy - Buy something (drinkable) from the waiter. - List - The waiter will show you all the different drinks and - specialties, and tell the price of each. -~ -S -#3004 -The Entrance To The Clerics' Guild~ - The entrance hall is a small modest room, reflecting the true nature of -the Clerics. The exit leads east to the temple square. A small entrance to -the bar is in the northern wall. -~ -30 8 0 0 0 0 -D0 -You see the bar, richly decorated with really stylish furniture. -~ -~ -0 -1 3003 -D1 -You see the Temple Square. -~ -~ -0 -1 3005 -S -#3005 -The Temple Square~ - You are standing on the temple square. Huge marble steps lead up to the -temple gate. The entrance to the Clerics' Guild is to the west, and the old -Grunting Boar Inn, is to the east. Just south of here you see the market -square, the center of Midgaard. -~ -30 0 0 0 0 1 -D0 -You see the temple. -~ -~ -0 -1 3001 -D1 -You see the good old Grunting Boar Inn. -~ -~ -0 -1 3006 -D2 -You see the Market Square. -~ -~ -0 -1 3014 -D3 -You see the entrance to the Clerics' Guild. -~ -~ -0 -1 3004 -S -#3006 -The Entrance Hall Of The Grunting Boar Inn~ - You are standing in the entrance hall of the Grunting Boar Inn. The hall -has been wisely decorated with simple, functional furniture. The heavy smell -of dust and aging paper drifts in from the Post Office to the north. A small -staircase leads up to the reception and the bar is to the east. -~ -30 8 0 0 0 0 -D0 -You see the Midgaard Post Office. -~ -~ -0 -1 3062 -D1 -Surprise! You see the bar. -~ -~ -0 -1 3007 -D3 -You see the temple square. -~ -~ -0 -1 3005 -D4 -You see the reception. -~ -~ -0 -1 3008 -S -#3007 -The Grunting Boar~ - You are standing in the bar. The bar is set against the northern wall, old -archaic writing, carvings and symbols cover its top. A fireplace is built into -the western wall, and through the southeastern windows you can see the temple -square. This place makes you feel like home. -A small sign with big letters is fastened to the bar. -~ -30 136 0 0 0 0 -D3 -You see the exit to the entrance hall. -~ -~ -0 -1 3006 -E -sign~ - The sign reads: -Free instructions provided by the Grunting Boar Inn. - Buy - Buy something (drinkable) from the bartender. - List - The bartender will show you all the different drinks and - specialties, and tell the price of each. -~ -E -writing carving carvings symbols symbol~ - Although it is very hard to understand, you think it looks a lot like beer, -poems about beer, and small beer-mugs. -~ -S -#3008 -The Reception~ - You are standing in the reception. The staircase leads down to the -entrance hall. An exit to the north leads to the Cryogenic Center. -There is a small sign on the counter. -~ -30 8 0 0 0 0 -D0 -You see the Cryogenic Center. -~ -~ -0 -1 3064 -D5 -You see the entrance hall. -~ -~ -0 -1 3006 -E -sign~ - Rooms are expensive but good! You may: - - Offer - get an offer on a room - Time is in real life days. - Rent - Rent a room (saves your stuff, and quits the game), - minimum charge is one day. - - - MY WAY OR THE HIGHWAY - PAY YOUR RENT! - WE WON'T THINK TWICE BEFORE KICKING YOU OUT. -~ -S -#3009 -The Bakery~ - You are standing inside the small bakery. A sweet scent of danish and -fine bread fills the room. The bread and Danish are arranged in fine order -on the shelves, and seem to be of the finest quality. -A small sign is on the counter. -~ -30 136 0 0 0 0 -D2 -You see the main street. -~ -~ -0 -1 3013 -E -danish pastry~ - You see that this is truly delicious pastry. Must be made by a Dane from -Denmark (which surely is not the capital of Sweden! ). Former ruler of -Scandinavia, England, Northern Germany, Northern France, Russia, Greenland, -Iceland, Estonia etc. Etc. The sight of those large, wholesome chokoladeboller -makes your mouth water and your soul sing. -~ -E -sign~ - Free instructions provided by the store: - Buy - Will buy you some bread or pastry. - List - The baker will kindly tell you the price and sort of the bread in - his bakery. -~ -S -#3010 -The General Store~ - You are inside the general store. All sorts of items are stacked on shelves -behind the counter, safely out of your reach. -A small note hangs on the wall. -~ -30 136 0 0 0 0 -D2 -You see the main street. -~ -~ -0 -1 3015 -E -note~ - The note reads: - List - Show which various items are in the store. - Buy - Buy an item. - Value - The shopkeeper will (free of charge) tell how much he will - pay for your item. - Sell - Sell an item. -~ -S -#3011 -The Weapon Shop~ - The smell of worked metals and various quenching oils fills the room. Every -available space in the room including the ceiling is loaded with various -equipment and weaponry. There is a small note on the counter. -~ -30 136 0 0 0 0 -D2 -You see the main street. -~ -~ -0 -1 3016 -E -note~ - The note reads: - List - Show which various items are in the store. - Buy - Buy an item. - Value - The shopkeeper will (free of charge) tell how much he will - pay for your item. - Sell - Sell an item. -~ -S -#3012 -Main Street~ - You are at the end of the main street of Midgaard. South of here is the -entrance to the Guild of Magic Users. The street continues east towards the -market square. The magic shop is to the north and to the west is the city -gate. -~ -30 0 0 0 0 1 -D0 -You see the magic shop. -~ -~ -0 -1 3033 -D1 -You see the main street. -~ -~ -0 -1 3013 -D2 -You see the entrance to the Guild of Magic Users. -~ -~ -0 -1 3017 -D3 -You see the city gate. -~ -~ -0 -1 3040 -S -#3013 -Main Street~ - You are on the main street passing through the City of Midgaard. South of -here is the entrance to the Armory, and the bakery is to the north. East of -here is the market square. -~ -30 0 0 0 0 1 -D0 -You see the bakery. -~ -~ -0 -1 3009 -D1 -You see the market square. -~ -~ -0 -1 3014 -D2 -You see the armory. -~ -~ -0 -1 3020 -D3 -You see the main street. -~ -~ -0 -1 3012 -S -#3014 -Market Square~ - You are standing on the market square, the famous Square of Midgaard. -A large, peculiar looking statue is standing in the middle of the square. -Roads lead in every direction, north to the temple square, south to the -common square, east and westbound is the main street. -~ -30 0 0 0 0 1 -D0 -You see the temple square. -~ -~ -0 -1 3005 -D1 -You see the main street. -~ -~ -0 -1 3015 -D2 -You see the common square. -~ -~ -0 -1 3025 -D3 -You see the main street. -~ -~ -0 -1 3013 -E -statue~ - What you see is the Midgaard Worm, stretching around the Palace of Midgaard. -~ -S -#3015 -Main Street~ - You are on the main street crossing through town. To the north is the -general store, and the main street continues east. To the west you see and -hear the market place, to the south a small door leads into the Pet Shop. -~ -30 0 0 0 0 1 -D0 -You see the general store. -~ -~ -0 -1 3010 -D1 -You see the main street. -~ -~ -0 -1 3016 -D2 -You see the Pet Shop. -~ -~ -0 -1 3031 -D3 -You see the market square. -~ -~ -0 -1 3014 -S -#3016 -Main Street~ - The main street, to the north is the weapon shop and to the south is the -Guild of Swordsmen. To the east you leave town and to the west the street -leads to the market square. -~ -30 0 0 0 0 1 -D0 -You see the weapon shop. -~ -~ -0 -1 3011 -D1 -You see the city gate. -~ -~ -0 -1 3041 -D2 -You see the swordsmen's guild. -~ -~ -0 -1 3021 -D3 -You see the main street leading to the market square. -~ -~ -0 -1 3015 -S -#3017 -The Entrance To The Mages' Guild~ - The entrance hall to this guild is a small, poor lighted room. -~ -30 8 0 0 0 0 -D0 -You see the main street. -~ -~ -0 -1 3012 -D2 -You see your favorite place, the Mages' Bar. -~ -~ -0 -1 3018 -S -#3018 -The Mages' Bar~ - The bar is one of the weirdest in the land. Mystical images float around -the air. Illusions of fine furniture appear all around the room. -~ -30 140 0 0 0 0 -D0 -You see the lobby. -~ -~ -0 -1 3017 -D1 -You see the laboratory. -~ -~ -0 -1 3019 -S -#3019 -The Mages' Laboratory~ - This is the Magical Experiments Laboratory. Dark smoke-stained stones arch -over numerous huge oaken tables, most of these cluttered with strange- looking -pipes and flasks. The floor is covered with half-erased pentagrams and even -weirder symbols, and a blackboard in a dark corner has only been partially -cleaned, some painful-looking letters faintly visible. -~ -30 12 0 0 0 0 -D3 -You see the bar. -~ -~ -0 -1 3018 -S -#3020 -The Armory~ - The armory has a wide assortment of armor displayed on the walls and in the -windows. Helmets, shields, and suits of armor are for sale. To the north is -the main street. On the wall is a small note. -~ -30 136 0 0 0 0 -D0 -You see the main street. -~ -~ -0 -1 3013 -E -note~ - You can use these commands for trading: - value To get the price of an item in your possession. - sell To sell something. - buy To buy something (provided that the shop has it in store). - list Gives you a listing of the shop's inventory. - WE DON'T GIVE CREDIT; WE DON'T EXPECT TO RECEIVE CREDIT! - NO HAGGLING -~ -S -#3021 -The Entrance Hall To The Guild Of Swordsmen~ - The entrance hall to the Guild of Swordsmen. A place where one has to be -careful not to say something wrong (or right). To the east is the bar and to -the north is the main street. -~ -30 8 0 0 0 0 -D0 -You see the main street. -~ -~ -0 -1 3016 -D1 -You see the swordsmen's bar, many noises comes from there. -~ -~ -0 -1 3022 -S -#3022 -The Bar Of Swordsmen~ - The bar of swordsmen, once upon a time beautifully furnished. But now the -furniture is all around you in small pieces. To the south is the yard, and -to the west is the entrance hall. -~ -30 140 0 0 0 0 -D2 -You see the practice yard. -~ -~ -0 -1 3023 -D3 -You see the entrance hall to the warriors' guild. -~ -~ -0 -1 3021 -S -#3023 -The Tournament And Practice Yard~ - This is the practice yard of the fighters. To the north is the bar. -A well leads down into darkness. -~ -30 12 0 0 0 0 -D0 -You see the bar. -~ -~ -0 -1 3022 -D5 -You can't see what is down there, it is too dark. Looks like it would be -impossible to climb back up. -~ -~ -0 -1 7048 -S -#3024 -The Eastern End Of Poor Alley~ - You are at the poor alley. South of here is the Grubby Inn and to the -east you see common square. The alley continues further west. -~ -30 0 0 0 0 1 -D1 -You see the common square. -~ -~ -0 -1 3025 -D2 -You see the Inn. -~ -~ -0 -1 3048 -D3 -You see the poor alley. -~ -~ -0 -1 3044 -S -#3025 -The Common Square~ - The common square, people pass you, talking to each other. To the west is -the poor alley and to the east is the dark alley. To the north, this square -is connected to the market square. From the south you notice a nasty smell. -~ -30 0 0 0 0 1 -D0 -You see the market square. -~ -~ -0 -1 3014 -D1 -You see the dark alley. -~ -~ -0 -1 3026 -D2 -You see the city dump. -~ -~ -0 -1 3030 -D3 -You see Poor Alley. -~ -~ -0 -1 3024 -S -#3026 -The Dark Alley~ - The dark alley, to the west is the common square and to the south is the -Guild of Thieves. The alley continues east. -~ -30 0 0 0 0 1 -D1 -The alley continues east. -~ -~ -0 -1 3045 -D2 -You see the entrance to the thieves' guild. -~ -~ -0 -1 3027 -D3 -You see the common square. -~ -~ -0 -1 3025 -E -guild~ - It is the thieves' guild, don't enter if you care about your health or money. -~ -S -#3027 -The Entrance Hall To The Guild Of Thieves~ - The entrance hall to the thieves' and assassins' guild. A place where you -can lose both your life and your money, if you are not careful. To the north -is the dark alley and to the east is the thieves' bar. -~ -30 8 0 0 0 0 -D0 -You see the alley. -~ -~ -0 -1 3026 -D1 -You see the thieves bar, where everything disappears. -~ -~ -0 -1 3028 -S -#3028 -The Thieves' Bar~ - The bar of the thieves. Once upon a time this place was beautifully -furnished, but now it seems almost empty. To the south is the yard, and to -the west is the entrance hall. - (Maybe the furniture has been stolen?!) -~ -30 140 0 0 0 0 -D2 -You see the secret yard. -~ -~ -0 -1 3029 -D3 -You see the entrance hall to the thieves' guild. -~ -~ -0 -1 3027 -E -furniture~ - As you look at the furniture, the chair you sit on disappears. -~ -S -#3029 -The Secret Yard~ - The secret practice yard of thieves and assassins. To the north is the -bar. A well leads down into darkness. -~ -30 12 0 0 0 0 -D0 -You see the bar. -~ -~ -0 -1 3028 -D5 -You can't see what is down there, it is too dark. Looks like it would be -impossible to climb back up. -~ -~ -0 -1 7043 -S -#3030 -The Dump~ - The dump, where the people from the city drop their garbage. Through the -garbage you can see a large junction of pipes, looks like the entrance to the -sewer system. North of here you see the common square. -~ -30 4 0 0 0 2 -D0 -You see the common square. -~ -~ -0 -1 3025 -D5 -You see the sewers. -~ -grate~ -2 3005 7030 -S -T 3004 -#3031 -The Pet Shop~ - The Pet Shop is a small crowded store, full of cages and animals of -various sizes. There is a sign on the wall. -~ -30 140 0 0 0 0 -D0 -You see the main street. -~ -~ -0 -1 3015 -E -sign~ - The sign reads: - Use 'List' to see the available pets. - Use 'Buy ' to buy yourself a pet. - Instructions for having pets: - You can use 'order ' to order your pets around. - If you abuse your pet, it will no longer regard you as its master. - If you have several pets you may use 'order followers ' - You can name the pet you buy with: 'buy ' - Regards, - The Shopkeeper -~ -S -#3032 -PETSHOP STOREROOM~ - Make two rooms and some pets. The rooms MUST be sequential. If the first -room is 315 then the second must be 316. The second room is known as the -storeroom. All that is required in the storeroom is to load one of each mob you -wish to be a pet. This room can not have any exits and will never be used by -mortals. Although a pet shopkeeper is not required it is recommended. After -all of this is done ask your coder to implement the petshop. It will not work -until the code is changed and the MUD is rebooted. The cost of pets is 300 -times their level. -~ -30 1536 0 0 0 0 -S -#3033 -The Magic Shop~ - Behind the counter you see various items, neatly placed in racks, -presumably most of them are magic. -~ -30 136 0 0 0 0 -D2 -You see the main street. -~ -~ -0 -1 3012 -S -#3040 -Inside The West Gate Of Midgaard~ - You are by two small towers that have been built into the city wall and -connected with a footbridge across the heavy wooden gate. Main Street leads -east and Wall Road leads south from here. -~ -30 0 0 0 0 1 -D1 -You see Main Street. -~ -~ -0 -1 3012 -D2 -You see the road running along the inner side of the city wall. You notice -that it is called Wall Road. -~ -~ -0 -1 3042 -D3 -The city gate is to the west. -~ -gate~ -1 3112 3052 -E -bridge footbridge~ - It is too high up to reach but it looks as if one easily could walk across it -from one tower to the other. -~ -E -gate~ - It is a set of very big double doors made from hard wood. They have been -reinforced with large iron bands to make them even more sturdy. One of the -doors is equipped with a very big lock. -~ -E -tower towers~ - Both of the towers are built from large gray rocks that have been fastened to -each other with some kind of mortar, just like the city wall. -~ -E -wall~ - It is built from large gray rocks that have been fastened to each other with -some kind of mortar. It is far too high to climb. -~ -S -#3041 -Inside The East Gate Of Midgaard~ - You are by two small towers that have been built into the city wall and -connected with a footbridge across the heavy wooden gate. Main Street leads -west from here. To the south you see the Water Shop. -~ -30 0 0 0 0 1 -D1 -You see the city gate. -~ -gate~ -1 3112 3053 -D2 -You see the water shop. -~ -~ -0 -1 3058 -D3 -You see Main Street. -~ -~ -0 -1 3016 -E -bridge footbridge~ - It is too high up to reach but it looks as if one easily could walk across it -from one tower to the other. -~ -E -gate~ - It is a set of very big double doors made from hard wood. They have been -reinforced with large iron bands to make them even more sturdy. One of the -doors is equipped with a very big lock. -~ -E -tower towers~ - Both of the towers are built from large gray rocks that have been fastened to -each other with some kind of mortar, just like the city wall. -~ -E -wall~ - It is built from large gray rocks that have been fastened to each other with -some kind of mortar. It is far too high to climb. -~ -S -#3042 -Wall Road~ - You are walking next to the western city wall. The road continues further -south and the city gate is just north of here. -~ -30 0 0 0 0 1 -D0 -You see the city gate. -~ -~ -0 -1 3040 -D2 -The road continues further south. -~ -~ -0 -1 3043 -E -wall~ - It is built from large gray rocks that have been fastened to each other with -some kind of mortar. It is far too high to climb. -~ -S -#3043 -Wall Road~ - You are walking next to the western city wall. Wall Road continues further -north and south. A small, poor alley leads east. -Some letters have been written on the wall here. -~ -30 0 0 0 0 1 -D0 -The road continues further north. -~ -~ -0 -1 3042 -D1 -Poor Alley leads east. -~ -~ -0 -1 3044 -D2 -The road continues further south. -~ -~ -0 -1 3047 -E -wall writing letters~ - It says 'Who watches the watchmen? ' -~ -E -wall~ - It is built from large gray rocks that have been fastened to each other with -some kind of mortar. It is far too high to climb. -~ -S -#3044 -Poor Alley~ - You are on Poor Alley, which continues further east. You see the -city wall to the west. -~ -30 0 0 0 0 1 -D1 -The alley leads east. -~ -~ -0 -1 3024 -D3 -The alley leads west. -~ -~ -0 -1 3043 -S -#3045 -The Dark Alley At The Levee~ - You are standing in the alley which continues east and west. South of -here you see the levee. -~ -30 0 0 0 0 1 -D1 -The alley leads east. -~ -~ -0 -1 3046 -D2 -You see the levee. -~ -~ -0 -1 3049 -D3 -The alley leads west. -~ -~ -0 -1 3026 -S -#3046 -The Eastern End Of The Alley~ - You are standing at the eastern end of the alley, the city wall is just -east, blocking any further movement. A small warehouse is directly south of -here. -~ -30 0 0 0 0 1 -D2 -You see the warehouse. -~ -~ -0 -1 3050 -D3 -You see the alley. -~ -~ -0 -1 3045 -S -#3047 -Wall Road~ - You are standing on the road next to the western city wall, which -continues north. South of here is a bridge across the river. -~ -30 0 0 0 0 1 -D0 -You see the road. -~ -~ -0 -1 3043 -D2 -You see the bridge. -~ -~ -0 -1 3051 -E -wall~ - It is built from large gray rocks that have been fastened to each other with -some kind of mortar. It is far too high to climb. -~ -S -#3048 -Grubby Inn~ - You are inside the old Grubby Inn. This place has not been cleaned for -several decades; vile smells make you dizzy. -~ -30 136 0 0 0 0 -D0 -You see the alley. -~ -~ -0 -1 3024 -S -#3049 -The Levee~ - You are at the levee. South of here you see the river gently flowing west. -The river bank is very low making it possible to enter the river. -~ -30 128 0 0 0 1 -D0 -You see the alley. -~ -~ -0 -1 3045 -D2 -You see the river flowing west. -~ -~ -0 -1 3203 -S -#3050 -The Deserted Warehouse~ - You are inside the warehouse. The room is decorated with various old -items from ships. -~ -30 8 0 0 0 0 -D0 -You see the alley. -~ -~ -0 -1 3046 -S -#3051 -On The Bridge~ - You are standing on the stone bridge crosses the river. The bridge is -built out from the western city wall and the river flows west through an -opening in the wall ten feet below the bridge. -~ -30 0 0 0 0 1 -D0 -You see the road. -~ -~ -0 -1 3047 -D2 -You see the Concourse. -~ -~ -0 -1 3100 -E -bridge~ - It is built from large gray rocks that have been fastened to each other with -some kind of mortar, just like the wall. -~ -E -opening~ - You cannot really see it from here as it is somewhere beneath your feet. -~ -E -wall~ - It is built from large gray rocks that have been fastened to each other with -some kind of mortar. It is far too high to climb. -~ -S -#3052 -Outside The West Gate Of Midgaard~ - You are by two small towers that have been built into the city wall and -connected with a footbridge across the heavy wooden gate. To the west you -can see the edge of a big forest. -~ -30 0 0 0 0 1 -D1 -The city gate is to the east. -~ -gate~ -1 3112 3040 -D3 -The forest edge is to the west. -~ -~ -0 -1 6092 -E -bridge footbridge~ - It is too high up to reach but it looks as if one easily could walk across it -from one tower to the other. -~ -E -gate~ - It is a set of very big double doors made from hard wood. They have been -reinforced with large iron bands to make them even more sturdy. One of the -doors is equipped with a very big lock. -~ -E -tower towers~ - Both of the towers are built from large gray rocks that have been fastened to -each other with some kind of mortar, just like the city wall. -~ -E -wall~ - It is built from large gray rocks that have been fastened to each other with -some kind of mortar. It is far too high to climb. -~ -S -#3053 -Outside The East Gate Of Midgaard~ - You are by two small towers that have been built into the city wall and -connected with a footbridge across the heavy wooden gate. To the east the -plains stretch out in the distance. -~ -30 0 0 0 0 1 -D1 -You see the plains. -~ -~ -0 -1 3503 -D3 -You see the city gate. -~ -gate~ -1 3112 3041 -E -bridge footbridge~ - It is too high up to reach but it looks as if one easily could walk across it -from one tower to the other. -~ -E -gate~ - It is a set of very big double doors made from hard wood. They have been -reinforced with large iron bands to make them even more sturdy. One of the -doors is equipped with a very big lock. -~ -E -tower towers~ - Both of the towers are built from large gray rocks that have been fastened to -each other with some kind of mortar, just like the city wall. -~ -E -wall~ - It is built from large gray rocks that have been fastened to each other with -some kind of mortar. It is far too high to climb. -~ -S -#3054 -By The Temple Altar~ - You are by the temple altar in the northern end of the Temple of Midgaard. -A huge altar made from white polished marble dominates this part of the temple. -Towering behind the altar is a ten foot tall sitting statue of Odin, the King of -the Gods. To the north, steps lead out the back of the temple towards the -countryside. -~ -30 8 0 0 0 0 -D0 -You see the vast Midgaard countryside. -~ -~ -0 -1 3059 -D2 -You see the southern end of the temple. -~ -~ -0 -1 3001 -E -altar~ - Even though the altar is more than ten feet long it appears to be made from a -single block of white virgin marble. -~ -E -statue odin king god~ - The statue represents the one-eyed Odin sitting on a his throne. He has -long, gray hair and beard and a strict look on his face. On top of the throne, -just above his shoulders, his two ravens Hugin and Munin are sitting and at his -feet are his wolves Gere and Freke. -~ -S -#3058 -Ye Olde Water Shoppe~ - You are standing in the center of a small wooden shop whose walls are -covered with racks upon racks of water jugs. Several large barrels with -spigots are stacked in the corner. -~ -30 136 0 0 0 0 -D0 -You see the East Gate. -~ -~ -0 -1 3041 -S -#3059 -Behind The Temple Altar~ - You are on a dirt path leading away from the Temple Altar which is south -of here. To the north, the path continues through the lush contryside of -Midgaard towards the Dragonhelm Mountains far off to the north. -~ -30 0 0 0 0 1 -D0 -You see the lush, green countryside of Midgaard. -~ -~ -0 -1 3060 -D2 -You see the Temple Altar. -~ -~ -0 -1 3054 -S -#3060 -The Great Field Of Midgaard~ - You are walking on a wide dirt path through the lush, green, fresh -Midgaard countryside. You can see to the horizon to the north, east, -and west; the busy city of Midgaard lies to the south. All around you -is healthy green grass and an occasional large oak tree. The sun feels -wonderful on your face and a pleasant wind blows through your hair. Birds -chirp quietly to themselves and you can smell the faint scent of flowers -and freshly cut grass. You feel like you could lie down in the grass and -stay here forever, surrounded by powerful beauty in all directions. - The path you are on continues north through the field and south back -to Midgaard. -~ -30 0 0 0 0 1 -D0 -You see more of the path through the Great Field. -~ -~ -0 -1 3061 -D2 -You see the path which goes back to Midgaard. -~ -~ -0 -1 3059 -S -#3061 -The Great Field Of Midgaard~ - You are walking on a wide dirt path through the lush, green, fresh -Midgaard countryside. You can see to the horizon to the north, east, -and west; the busy city of Midgaard lies to the south. All around you -is healthy green grass and an occasional large oak tree. The sun feels -wonderful on your face and a pleasant wind blows through your hair. Birds -chirp quietly to themselves and you can smell the faint scent of flowers -and freshly cut grass. You feel like you could lie down in the grass and -stay here forever, surrounded by powerful beauty in all directions. - There is a strange structure on the eastern side of the path. A small -dirt path splits off of the main path and leads off to the west. -~ -30 4 0 0 0 1 -D0 -The path continues northwards bringing you ever closer to the Dragonhelm -Mountains. -~ -~ -0 -1 3065 -D1 -There is a strange structure to the east on the edge of the trail. -~ -~ -0 -1 18600 -D2 -You see more of the Field. -~ -~ -0 -1 3060 -D3 -There is a strange path leading towards a rusty gate to the west. -~ -~ -0 -1 3066 -S -#3062 -The Post Office~ - You are in the central post office for Midgaard. Piles of assorted mail -lay untouched in the corners, collecting cobwebs. Several large crates have -been pried open by curious customs agents, and are now stacked along the west -wall, hiding plenty of 'WANTED' posters. -There is a sign posted on the wall here. -~ -30 8 0 0 0 1 -D2 -You see the entrance to the Grunting Boar Inn and Tavern. -~ -~ -0 -1 3006 -E -sign~ - ********************************************************** - * * - * Mail Instructions: * - * * - * To send a note to someone: * - * MAIL * - * * - * To see if you have any mail: * - * CHECK * - * * - * To get the Postmaster to give you your mail: * - * RECEIVE * - * * - * Stamps cost 150 coins per letter * - * Type 'HELP MAIL' for more info * - ********************************************************** -~ -E -letters envelopes assorted~ - Envelopes of all sizes are heaped into hugh piles around the room. As you -look closer, you see a letter that you had posted a full week ago, laying -unnoticed and slightly rat-chewed towards the bottom of the pile. -~ -E -cobwebs~ - They seem to cover everything here, even the Postmaster himself. -~ -E -crates opened large~ - As you know, it is illegal to send contraband items through the Midgaard -Mail. The customs agents use this as a great excuse to seize liquor, rare -spices, and just about anything they might find useful or profitable. -~ -E -WANTED posters poster wall~ - Faces of various known Killers and Thieves can barely be seen behind the -crates on the west wall. Some of them look quite familar, sorta like that guy -who you saw in the Reception a minute ago... But then again, they are rather -hard to see past the crates. -~ -S -#3063 -The Midgaard Donation Room~ - You are in a small, undecorated room just off of the main temple. There -are a couple of small wooden benches here where people occasionally sit -while they wait for items to appear. The temple is to the west. -~ -30 28 0 0 0 1 -D3 -The busy temple is back west. -~ -~ -0 -1 3001 -S -#3064 -The Cryogenic Center~ - You are standing in an impossibly white sterile room with cylindrical -body-length canisters lined up against the walls. The Reception is to the -south. -~ -30 8 0 0 0 1 -D2 -The Reception is to the south. -~ -~ -0 -1 3008 -S -#3065 -The Great Field Of Midgaard~ - You are walking on a wide dirt path through the lush, green, fresh -Midgaard countryside. You can see to the horizon to the north, east, -and west; the busy city of Midgaard lies to the south. All around you -is healthy green grass and an occasional large oak tree. The sun feels -wonderful on your face and a pleasant wind blows through your hair. Birds -chirp quietly to themselves and you can smell the faint scent of flowers -and freshly cut grass. You feel like you could lie down in the grass and -stay here forever, surrounded by powerful beauty in all directions. - The way north appears to be blocked by a large plot device and you cannot -see any way around it. -~ -30 0 0 0 0 2 -D0 -Unfortunately the way north is blocked by a large plot device and there -does not seem to be any way around it. -~ -~ -0 -1 -1 -D2 -The path continues through the field to the south past an odd structure -on the eastern side of the path. -~ -~ -0 -1 3061 -E -plot device~ - What more is a plot device than something to block a certain direction for -reasons beyond your comprehension. -~ -S -#3066 -The Dirt Path~ - You are walking along a narrow dirt path through the lush, green, -fresh Midgaard countryside. You can see to the horizon to the north -and east; the busy city of Midgaard lies to the south. All around -you is healthy green grass and an occasional large oak tree. The sun -feels wonderful on your face and a pleasant wind blows through your -hair. Birds chirp quietly to themselves and you can smell the faint -scent of flowers and freshly cut grass. You feel like you could lie -down in the grass and stay here forever, surrounded by powerful beauty -in all directions. - There is a large rusty gate sitting in a stone archway just to the -west. -~ -30 0 0 0 0 2 -D1 -The path meets up with a larger path just to the east. -~ -~ -0 -1 3061 -D3 -There is a large rusty gate just to the west. -~ -~ -0 -1 3600 -S -$~ diff --git a/lib/world/wld/index b/lib/world/wld/index index ba7ee21..b6bba7d 100644 --- a/lib/world/wld/index +++ b/lib/world/wld/index @@ -1,5 +1,4 @@ 0.wld 1.wld 2.wld -30.wld $ diff --git a/lib/world/wld/index.mini b/lib/world/wld/index.mini index 8498055..857f13a 100644 --- a/lib/world/wld/index.mini +++ b/lib/world/wld/index.mini @@ -1,2 +1 @@ -30.wld $ diff --git a/lib/world/zon/30.zon b/lib/world/zon/30.zon deleted file mode 100644 index d1a09c5..0000000 --- a/lib/world/zon/30.zon +++ /dev/null @@ -1,175 +0,0 @@ -#30 -DikuMUD~ -Northern Midgaard~ -3000 3099 15 2 d 0 0 0 1 33 -R 0 3000 3006 -1 (the teleporter) -O 0 3006 99 3000 (the teleporter) -M 0 3011 1 3000 (the travelling saleswoman) -G 1 3006 99 -1 (the teleporter) -R 0 3000 3099 -1 (a bulletin board) -O 0 3099 99 3000 (a bulletin board) -R 0 3001 3034 -1 (an automatic teller machine) -O 0 3034 99 3001 (an automatic teller machine) -M 0 3012 1 3063 (a kind soul) -M 0 3045 1 3022 (the waiter) -G 1 3002 100 -1 (a bottle) -G 1 3003 100 -1 (a bottle) -G 1 3004 100 -1 (a bottle) -E 1 3022 100 16 (a long sword) -R 0 3022 3096 -1 (a social bulletin board) -O 0 3096 99 3022 (a social bulletin board) -M 0 3044 1 3028 (the waiter) -G 1 3003 100 -1 (a bottle) -G 1 3004 100 -1 (a bottle) -E 1 3021 100 16 (a small sword) -R 0 3028 3096 -1 (a social bulletin board) -O 0 3096 99 3028 (a social bulletin board) -M 0 3043 1 3003 (the waiter) -G 1 3002 100 -1 (a bottle) -G 1 3004 100 -1 (a bottle) -E 1 3024 100 16 (a warhammer) -R 0 3003 3096 -1 (a social bulletin board) -O 0 3096 99 3003 (a social bulletin board) -M 0 3042 1 3018 (the waiter) -G 1 3002 100 -1 (a bottle) -G 1 3003 100 -1 (a bottle) -E 1 3020 100 16 (a dagger) -R 0 3018 3096 -1 (a social bulletin board) -O 0 3096 99 3018 (a social bulletin board) -M 0 3009 1 3058 (Wally the Watermaster) -G 1 3102 100 -1 (a cup) -G 1 3103 100 -1 (a bottle) -G 1 3104 100 -1 (a canteen) -M 0 3026 1 3027 (the assassin) -E 1 3022 100 16 (a long sword) -M 0 3059 5 3027 (the Peacekeeper) -M 0 3060 10 3027 (the cityguard) -E 1 3022 100 16 (a long sword) -R 0 3027 3034 -1 (an automatic teller machine) -O 0 3034 99 3027 (an automatic teller machine) -M 0 3027 1 3021 (the knight) -E 1 3022 100 16 (a long sword) -M 0 3059 5 3021 (the Peacekeeper) -M 0 3060 10 3021 (the cityguard) -E 1 3022 100 16 (a long sword) -R 0 3021 3034 -1 (an automatic teller machine) -O 0 3034 99 3021 (an automatic teller machine) -M 0 3024 1 3017 (the sorcerer) -E 1 3022 100 16 (a long sword) -M 0 3059 5 3017 (the Peacekeeper) -M 0 3060 10 3017 (the cityguard) -E 1 3022 100 16 (a long sword) -R 0 3017 3034 -1 (an automatic teller machine) -O 0 3034 99 3017 (an automatic teller machine) -M 0 3025 1 3004 (the knight templar) -E 1 3022 100 16 (a long sword) -M 0 3059 5 3004 (the Peacekeeper) -M 0 3060 10 3004 (the cityguard) -E 1 3022 100 16 (a long sword) -R 0 3004 3034 -1 (an automatic teller machine) -O 0 3034 99 3004 (an automatic teller machine) -M 0 3005 1 3008 (the receptionist) -E 1 3022 100 16 (a long sword) -M 0 3068 4 3008 (the green gelatinous blob) -R 0 3008 3034 -1 (an automatic teller machine) -O 0 3034 99 3008 (an automatic teller machine) -M 0 3000 1 3033 (the wizard) -G 1 3050 500 -1 (a scroll of identify) -G 1 3051 500 -1 (a yellow potion of see invisible) -G 1 3052 500 -1 (a scroll of recall) -G 1 3053 500 -1 (a gray wand of invisibility) -G 1 3054 500 -1 (a gnarled staff) -M 0 3001 1 3009 (the baker) -G 1 3009 100 -1 (a waybread) -G 1 3010 100 -1 (a bread) -G 1 3011 100 -1 (a danish pastry) -E 1 3022 100 16 (a long sword) -M 0 3002 1 3010 (the grocer) -G 1 3030 100 -1 (a torch) -G 1 3031 100 -1 (a lantern) -G 1 3032 100 -1 (a bag) -G 1 3033 100 -1 (a box) -G 1 3036 100 -1 (a cashcard) -E 1 3022 100 16 (a long sword) -M 0 3003 1 3011 (the weaponsmith) -G 1 3020 100 -1 (a dagger) -G 1 3021 100 -1 (a small sword) -G 1 3022 100 -1 (a long sword) -G 1 3023 100 -1 (a wooden club) -G 1 3024 100 -1 (a warhammer) -G 1 3025 100 -1 (a flail) -E 1 3022 100 16 (a long sword) -M 0 3004 1 3020 (the armorer) -G 1 3040 100 -1 (a breast plate) -G 1 3041 100 -1 (a chain mail shirt) -G 1 3042 100 -1 (a shield) -G 1 3043 100 -1 (a leather jacket) -G 1 3044 100 -1 (a studded leather jacket) -G 1 3045 100 -1 (a scale mail jacket) -G 1 3046 100 -1 (a bronze breast plate) -G 1 3070 100 -1 (a pair of bronze gauntlets) -G 1 3071 100 -1 (a pair of leather gloves) -G 1 3075 100 -1 (a bronze helmet) -G 1 3076 100 -1 (a leather cap) -G 1 3080 100 -1 (a pair of bronze leggings) -G 1 3081 100 -1 (a pair of leather pants) -G 1 3085 100 -1 (a pair of bronze sleeves) -G 1 3086 100 -1 (a pair of leather sleeves) -E 1 3022 100 16 (a long sword) -M 0 3006 1 3049 (Captain Stolar) -G 1 3060 20 -1 (a raft) -G 1 3061 10 -1 (a canoe) -M 0 3007 1 3050 (the sailor) -M 0 3010 1 3062 (the postmaster) -M 0 3020 1 3019 (the mages' guildmaster) -M 0 3021 1 3002 (the priests' guildmaster) -M 0 3022 1 3029 (the thieves' guildmaster) -M 0 3023 1 3023 (the fighters' guildmaster) -M 0 3040 1 3007 (the bartender) -G 1 3000 100 -1 (a barrel) -G 1 3001 100 -1 (a bottle) -G 1 3002 100 -1 (a bottle) -G 1 3003 100 -1 (a bottle) -G 1 3004 100 -1 (a bottle) -E 1 3022 100 16 (a long sword) -M 0 3046 1 3048 (Filthy) -G 1 3003 100 -1 (a bottle) -G 1 3004 100 -1 (a bottle) -E 1 3022 100 16 (a long sword) -M 0 3059 5 3014 (the Peacekeeper) -M 0 3060 10 3014 (the cityguard) -E 1 3022 100 16 (a long sword) -M 0 3061 5 3006 (the janitor) -M 0 3062 15 3024 (the beastly fido) -G 1 3015 30 -1 (a piece of meat) -M 0 3062 15 3025 (the beastly fido) -G 1 3015 30 -1 (a piece of meat) -M 0 3062 15 3016 (the beastly fido) -G 1 3015 30 -1 (a piece of meat) -M 0 3062 15 3012 (the beastly fido) -G 1 3015 30 -1 (a piece of meat) -M 0 3063 5 3026 (the mercenary) -E 1 3021 100 16 (a small sword) -M 0 3064 3 3007 (the drunk) -M 0 3065 2 3044 (the beggar) -G 1 3005 1 -1 (a key of dull metal) -M 0 3065 2 3048 (the beggar) -M 0 3066 1 3026 (the odif yltsaeb) -G 1 3015 30 -1 (a piece of meat) -M 0 3067 10 3041 (the cityguard) -E 1 3022 100 16 (a long sword) -M 0 3067 10 3040 (the cityguard) -E 1 3022 100 16 (a long sword) -M 0 3068 4 3014 (the green gelatinous blob) -M 0 3089 1 3031 (the Pet Shop Boy) -M 0 3090 1 3032 (the kitten) -M 0 3091 1 3032 (the puppy) -M 0 3092 1 3032 (the beagle) -M 0 3093 1 3032 (the rottweiler) -M 0 3094 1 3032 (the wolf) -M 0 3095 1 3064 (the cryogenicist) -E 1 3022 100 16 (a long sword) -R 0 3005 3035 -1 (the large fountain) -O 0 3035 1 3005 (the large fountain) -S -$ diff --git a/lib/world/zon/index b/lib/world/zon/index index 2813661..bf65be4 100644 --- a/lib/world/zon/index +++ b/lib/world/zon/index @@ -1,5 +1,4 @@ 0.zon 1.zon 2.zon -30.zon $ diff --git a/lib/world/zon/index.mini b/lib/world/zon/index.mini index 1e05c59..857f13a 100644 --- a/lib/world/zon/index.mini +++ b/lib/world/zon/index.mini @@ -1,2 +1 @@ -30.zon $ diff --git a/src/Makefile b/src/Makefile index c2c4608..8219ac8 100644 --- a/src/Makefile +++ b/src/Makefile @@ -47,6 +47,7 @@ $%.o: %.c clean: rm -f *.o depend + rm -f ./tests/*.o depend # Dependencies for the object files (automagically generated with # gcc -MM) diff --git a/src/act.wizard.c b/src/act.wizard.c index 20c5281..13b4bea 100644 --- a/src/act.wizard.c +++ b/src/act.wizard.c @@ -1238,9 +1238,8 @@ static void do_stat_character(struct char_data *ch, struct char_data *k) CCCYN(ch, C_NRM), CCYEL(ch, C_NRM), GET_SCREEN_WIDTH(k), CCNRM(ch, C_NRM), CCYEL(ch, C_NRM), GET_PAGE_LENGTH(k), CCCYN(ch, C_NRM), CCNRM(ch, C_NRM)); - send_to_char(ch, "AC: [%d%+d/10], Hitroll: [%2d], Damroll: [%2d], Saving throws: [%d/%d/%d/%d/%d]\r\n", - GET_AC(k), dex_app[GET_DEX(k)].defensive, k->points.hitroll, - k->points.damroll, GET_SAVE(k, 0), GET_SAVE(k, 1), GET_SAVE(k, 2), + send_to_char(ch, "AC: [%d%+d/10], Saving throws: [%d/%d/%d/%d/%d]\r\n", + GET_AC(k), dex_app[GET_DEX(k)].defensive, GET_SAVE(k, 0), GET_SAVE(k, 1), GET_SAVE(k, 2), GET_SAVE(k, 3), GET_SAVE(k, 4)); sprinttype(GET_POS(k), position_types, buf, sizeof(buf)); @@ -3228,7 +3227,6 @@ static struct set_struct { { "class", LVL_BUILDER, BOTH, MISC }, { "color", LVL_GOD, PC, BINARY }, { "con", LVL_BUILDER, BOTH, NUMBER }, - { "damroll", LVL_BUILDER, BOTH, NUMBER }, /* 10 */ { "deleted", LVL_IMPL, PC, BINARY }, { "dex", LVL_BUILDER, BOTH, NUMBER }, { "drunk", LVL_BUILDER, BOTH, MISC }, @@ -3237,7 +3235,6 @@ static struct set_struct { { "gold", LVL_BUILDER, BOTH, NUMBER }, { "height", LVL_BUILDER, BOTH, NUMBER }, { "hitpoints", LVL_BUILDER, BOTH, NUMBER }, - { "hitroll", LVL_BUILDER, BOTH, NUMBER }, { "hunger", LVL_BUILDER, BOTH, MISC }, /* 20 */ { "int", LVL_BUILDER, BOTH, NUMBER }, { "invis", LVL_GOD, PC, NUMBER }, @@ -3374,14 +3371,10 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c vict->real_abils.con = value; affect_total(vict); break; - case 10: /* damroll */ - vict->points.damroll = RANGE(-20, 20); - affect_total(vict); - break; - case 11: /* delete */ + case 10: /* delete */ SET_OR_REMOVE(PLR_FLAGS(vict), PLR_DELETED); break; - case 12: /* dex */ + case 11: /* dex */ if (IS_NPC(vict) || GET_LEVEL(vict) >= LVL_GRGOD) RANGE(3, 25); else @@ -3389,7 +3382,7 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c vict->real_abils.dex = value; affect_total(vict); break; - case 13: /* drunk */ + case 12: /* drunk */ if (!str_cmp(val_arg, "off")) { GET_COND(vict, DRUNK) = -1; send_to_char(ch, "%s's drunkenness is now off.\r\n", GET_NAME(vict)); @@ -3403,32 +3396,28 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c return (0); } break; - case 14: /* exp */ + case 13: /* exp */ vict->points.exp = RANGE(0, 50000000); break; - case 15: /* frozen */ + case 14: /* frozen */ if (ch == vict && on) { send_to_char(ch, "Better not -- could be a long winter!\r\n"); return (0); } SET_OR_REMOVE(PLR_FLAGS(vict), PLR_FROZEN); break; - case 16: /* gold */ + case 15: /* gold */ GET_GOLD(vict) = RANGE(0, 100000000); break; - case 17: /* height */ + case 16: /* height */ GET_HEIGHT(vict) = value; affect_total(vict); break; - case 18: /* hit */ + case 17: /* hit */ vict->points.hit = RANGE(-9, vict->points.max_hit); affect_total(vict); break; - case 19: /* hitroll */ - vict->points.hitroll = RANGE(-20, 20); - affect_total(vict); - break; - case 20: /* hunger */ + case 18: /* hunger */ if (!str_cmp(val_arg, "off")) { GET_COND(vict, HUNGER) = -1; send_to_char(ch, "%s's hunger is now off.\r\n", GET_NAME(vict)); @@ -3442,7 +3431,7 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c return (0); } break; - case 21: /* int */ + case 19: /* int */ if (IS_NPC(vict) || GET_LEVEL(vict) >= LVL_GRGOD) RANGE(3, 25); else @@ -3450,20 +3439,20 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c vict->real_abils.intel = value; affect_total(vict); break; - case 22: /* invis */ + case 20: /* invis */ if (GET_LEVEL(ch) < LVL_IMPL && ch != vict) { send_to_char(ch, "You aren't godly enough for that!\r\n"); return (0); } GET_INVIS_LEV(vict) = RANGE(0, GET_LEVEL(vict)); break; - case 23: /* invistart */ + case 21: /* invistart */ SET_OR_REMOVE(PLR_FLAGS(vict), PLR_INVSTART); break; - case 24: /* killer */ + case 22: /* killer */ SET_OR_REMOVE(PLR_FLAGS(vict), PLR_KILLER); break; - case 25: /* level */ + case 23: /* level */ if ((!IS_NPC(vict) && value > GET_LEVEL(ch)) || value > LVL_IMPL) { send_to_char(ch, "You can't do that.\r\n"); return (0); @@ -3471,7 +3460,7 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c RANGE(1, LVL_IMPL); vict->player.level = value; break; - case 26: /* loadroom */ + case 24: /* loadroom */ if (!str_cmp(val_arg, "off")) { REMOVE_BIT_AR(PLR_FLAGS(vict), PLR_LOADROOM); } else if (is_number(val_arg)) { @@ -3489,27 +3478,27 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c return (0); } break; - case 27: /* mana */ + case 25: /* mana */ vict->points.mana = RANGE(0, vict->points.max_mana); affect_total(vict); break; - case 28: /* maxhit */ + case 26: /* maxhit */ vict->points.max_hit = RANGE(1, 5000); affect_total(vict); break; - case 29: /* maxmana */ + case 27: /* maxmana */ vict->points.max_mana = RANGE(1, 5000); affect_total(vict); break; - case 30: /* maxmove */ + case 28: /* maxmove */ vict->points.max_move = RANGE(1, 5000); affect_total(vict); break; - case 31: /* move */ + case 29: /* move */ vict->points.move = RANGE(0, vict->points.max_move); affect_total(vict); break; - case 32: /* name */ + case 30: /* name */ if (ch != vict && GET_LEVEL(ch) < LVL_IMPL) { send_to_char(ch, "Only Imps can change the name of other players.\r\n"); return (0); @@ -3519,24 +3508,24 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c return (0); } break; - case 33: /* nodelete */ + case 31: /* nodelete */ SET_OR_REMOVE(PLR_FLAGS(vict), PLR_NODELETE); break; - case 34: /* nohassle */ + case 32: /* nohassle */ if (GET_LEVEL(ch) < LVL_GOD && ch != vict) { send_to_char(ch, "You aren't godly enough for that!\r\n"); return (0); } SET_OR_REMOVE(PRF_FLAGS(vict), PRF_NOHASSLE); break; - case 35: /* nosummon */ + case 33: /* nosummon */ SET_OR_REMOVE(PRF_FLAGS(vict), PRF_SUMMONABLE); send_to_char(ch, "Nosummon %s for %s.\r\n", ONOFF(!on), GET_NAME(vict)); break; - case 36: /* nowiz */ + case 34: /* nowiz */ SET_OR_REMOVE(PLR_FLAGS(vict), PLR_NOWIZLIST); break; - case 37: /* olc */ + case 35: /* olc */ if (is_abbrev(val_arg, "socials") || is_abbrev(val_arg, "actions") || is_abbrev(val_arg, "aedit")) GET_OLC_ZONE(vict) = AEDIT_PERMISSION; else if (is_abbrev(val_arg, "hedit") || is_abbrev(val_arg, "help")) @@ -3551,7 +3540,7 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c } else GET_OLC_ZONE(vict) = atoi(val_arg); break; - case 38: /* password */ + case 36: /* password */ if (GET_LEVEL(vict) >= LVL_GRGOD) { send_to_char(ch, "You cannot change that.\r\n"); return (0); @@ -3560,7 +3549,7 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c *(GET_PASSWD(vict) + MAX_PWD_LENGTH) = '\0'; send_to_char(ch, "Password changed to '%s'.\r\n", val_arg); break; - case 39: /* poofin */ + case 37: /* poofin */ if ((vict == ch) || (GET_LEVEL(ch) == LVL_IMPL)) { skip_spaces(&val_arg); parse_at(val_arg); @@ -3574,7 +3563,7 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c POOFIN(vict) = strdup(val_arg); } break; - case 40: /* poofout */ + case 38: /* poofout */ if ((vict == ch) || (GET_LEVEL(ch) == LVL_IMPL)) { skip_spaces(&val_arg); parse_at(val_arg); @@ -3588,10 +3577,10 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c POOFOUT(vict) = strdup(val_arg); } break; - case 41: /* quest */ + case 39: /* quest */ SET_OR_REMOVE(PRF_FLAGS(vict), PRF_QUEST); break; - case 42: /* room */ + case 40: /* room */ if ((rnum = real_room(value)) == NOWHERE) { send_to_char(ch, "No room exists with that number.\r\n"); return (0); @@ -3600,23 +3589,23 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c char_from_room(vict); char_to_room(vict, rnum); break; - case 43: /* screenwidth */ + case 41: /* screenwidth */ GET_SCREEN_WIDTH(vict) = RANGE(40, 200); break; - case 44: /* sex */ + case 42: /* sex */ if ((i = search_block(val_arg, genders, FALSE)) < 0) { send_to_char(ch, "Must be 'male', 'female', or 'neutral'.\r\n"); return (0); } GET_SEX(vict) = i; break; - case 45: /* showvnums */ + case 43: /* showvnums */ SET_OR_REMOVE(PRF_FLAGS(vict), PRF_SHOWVNUMS); break; - case 46: /* siteok */ + case 44: /* siteok */ SET_OR_REMOVE(PLR_FLAGS(vict), PLR_SITEOK); break; - case 47: /* skills/spells */ + case 45: /* skills/spells */ { char local_buf[MAX_INPUT_LENGTH], *value_arg, *name_end; char skill_name[MAX_INPUT_LENGTH]; @@ -3701,7 +3690,7 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c } break; - case 48: /* str */ + case 46: /* str */ if (IS_NPC(vict) || GET_LEVEL(vict) >= LVL_GRGOD) RANGE(3, 25); else @@ -3710,16 +3699,16 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c vict->real_abils.str_add = 0; affect_total(vict); break; - case 49: /* stradd */ + case 47: /* stradd */ vict->real_abils.str_add = RANGE(0, 100); if (value > 0) vict->real_abils.str = 18; affect_total(vict); break; - case 50: /* thief */ + case 48: /* thief */ SET_OR_REMOVE(PLR_FLAGS(vict), PLR_THIEF); break; - case 51: /* thirst */ + case 49: /* thirst */ if (!str_cmp(val_arg, "off")) { GET_COND(vict, THIRST) = -1; send_to_char(ch, "%s's thirst is now off.\r\n", GET_NAME(vict)); @@ -3733,17 +3722,17 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c return (0); } break; - case 52: /* title */ + case 50: /* title */ set_title(vict, val_arg); send_to_char(ch, "%s's title is now: %s\r\n", GET_NAME(vict), GET_TITLE(vict)); break; - case 53: /* variable */ + case 51: /* variable */ return perform_set_dg_var(ch, vict, val_arg); - case 54: /* weight */ + case 52: /* weight */ GET_WEIGHT(vict) = value; affect_total(vict); break; - case 55: /* wis */ + case 53: /* wis */ if (IS_NPC(vict) || GET_LEVEL(vict) >= LVL_GRGOD) RANGE(3, 25); else @@ -3751,10 +3740,10 @@ static int perform_set(struct char_data *ch, struct char_data *vict, int mode, c vict->real_abils.wis = value; affect_total(vict); break; - case 56: /* questpoints */ + case 54: /* questpoints */ GET_QUESTPOINTS(vict) = RANGE(0, 100000000); break; - case 57: /* questhistory */ + case 55: /* questhistory */ qvnum = atoi(val_arg); if (real_quest(qvnum) == NOTHING) { send_to_char(ch, "That quest doesn't exist.\r\n"); @@ -3956,9 +3945,6 @@ ACMD(do_links) /* Zone Checker Code below */ /*mob limits*/ -#define MAX_DAMROLL_ALLOWED MAX(GET_LEVEL(mob)/5, 1) -#define MAX_HITROLL_ALLOWED MAX(GET_LEVEL(mob)/3, 1) -#define MAX_MOB_GOLD_ALLOWED GET_LEVEL(mob)*3000 #define MAX_EXP_ALLOWED GET_LEVEL(mob)*GET_LEVEL(mob) * 120 #define MAX_LEVEL_ALLOWED LVL_IMPL #define GET_OBJ_AVG_DAM(obj) (((GET_OBJ_VAL(obj, 2) + 1) / 2.0) * GET_OBJ_VAL(obj, 1)) @@ -4021,8 +4007,6 @@ static struct zcheck_affs { {APPLY_GOLD, 0, 0, "gold"}, {APPLY_EXP, 0, 0, "experience"}, {APPLY_AC, -10, 10, "magical AC"}, - {APPLY_HITROLL, 0, -99, "hitroll"}, /* Handled seperately below */ - {APPLY_DAMROLL, 0, -99, "damroll"}, /* Handled seperately below */ {APPLY_SAVING_PARA, -2, 2, "saving throw (paralysis)"}, {APPLY_SAVING_ROD, -2, 2, "saving throw (rod)"}, {APPLY_SAVING_PETRI,-2, 2, "saving throw (death)"}, @@ -4030,10 +4014,6 @@ static struct zcheck_affs { {APPLY_SAVING_SPELL,-2, 2, "saving throw (spell)"} }; -/* These are ABS() values. */ -#define MAX_APPLY_HITROLL_TOTAL 5 -#define MAX_APPLY_DAMROLL_TOTAL 5 - /*room limits*/ /* Off limit zones are any zones a player should NOT be able to walk to (ex. Limbo) */ static const int offlimit_zones[] = {0,12,13,14,-1}; /*what zones can no room connect to (virtual num) */ @@ -4047,7 +4027,7 @@ ACMD (do_zcheck) struct char_data *mob = NULL; room_vnum exroom=0; int ac=0; - int affs=0, tohit, todam, value; + int affs=0, value; int i = 0, j = 0, k = 0, l = 0, m = 0, found = 0; /* found is used as a 'send now' flag*/ char buf[MAX_STRING_LENGTH]; float avg_dam; @@ -4099,18 +4079,8 @@ ACMD (do_zcheck) "- Is level %d (limit: 1-%d)\r\n", GET_LEVEL(mob), MAX_LEVEL_ALLOWED); - if (GET_DAMROLL(mob)>MAX_DAMROLL_ALLOWED && (found=1)) - len += snprintf(buf + len, sizeof(buf) - len, - "- Damroll of %d is too high (limit: %d)\r\n", - GET_DAMROLL(mob), MAX_DAMROLL_ALLOWED); - - if (GET_HITROLL(mob)>MAX_HITROLL_ALLOWED && (found=1)) - len += snprintf(buf + len, sizeof(buf) - len, - "- Hitroll of %d is too high (limit: %d)\r\n", - GET_HITROLL(mob), MAX_HITROLL_ALLOWED); - - /* avg. dam including damroll per round of combat */ - avg_dam = (((mob->mob_specials.damsizedice / 2.0) * mob->mob_specials.damnodice)+GET_DAMROLL(mob)); + /* avg. dam per round of combat */ + avg_dam = (((mob->mob_specials.damsizedice / 2.0))); if (avg_dam>MAX_MOB_DAM_ALLOWED && (found=1)) len += snprintf(buf + len, sizeof(buf) - len, "- average damage of %4.1f is too high (limit: %d)\r\n", @@ -4127,12 +4097,6 @@ ACMD (do_zcheck) len += snprintf(buf + len, sizeof(buf) - len, "- Both aggresive and agressive to align.\r\n"); - if ((GET_GOLD(mob) > MAX_MOB_GOLD_ALLOWED) && (found=1)) - len += snprintf(buf + len, sizeof(buf) - len, - "- Set to %d Gold (limit : %d).\r\n", - GET_GOLD(mob), - MAX_MOB_GOLD_ALLOWED); - if (GET_EXP(mob)>MAX_EXP_ALLOWED && (found=1)) len += snprintf(buf + len, sizeof(buf) - len, "- Has %d experience (limit: %d)\r\n", @@ -4265,22 +4229,6 @@ ACMD (do_zcheck) zaffs[(int)obj->affected[j].location].min_aff, zaffs[(int)obj->affected[j].location].max_aff); - /* special handling of +hit and +dam because of +hit_n_dam */ - for (todam=0, tohit=0, j=0;jaffected[j].location == APPLY_HITROLL) - tohit += obj->affected[j].modifier; - if (obj->affected[j].location == APPLY_DAMROLL) - todam += obj->affected[j].modifier; - } - if (abs(todam) > MAX_APPLY_DAMROLL_TOTAL && (found=1)) - len += snprintf(buf + len, sizeof(buf) - len, - "- total damroll %d out of range (limit +/-%d.\r\n", - todam, MAX_APPLY_DAMROLL_TOTAL); - if (abs(tohit) > MAX_APPLY_HITROLL_TOTAL && (found=1)) - len += snprintf(buf + len, sizeof(buf) - len, - "- total hitroll %d out of range (limit +/-%d).\r\n", - tohit, MAX_APPLY_HITROLL_TOTAL); - for (ext2 = NULL, ext = obj->ex_description; ext; ext = ext->next) if (strncmp(ext->description, " ", 3)) diff --git a/src/constants.c b/src/constants.c index 5439ac8..accafde 100644 --- a/src/constants.c +++ b/src/constants.c @@ -509,8 +509,6 @@ const char *apply_types[] = { "GOLD", "EXP", "ARMOR", - "HITROLL", - "DAMROLL", "SAVING_PARA", "SAVING_ROD", "SAVING_PETRI", diff --git a/src/db.c b/src/db.c index 30847d0..ce1b1a4 100644 --- a/src/db.c +++ b/src/db.c @@ -1552,44 +1552,26 @@ static void parse_simple_mob(FILE *mob_f, int i, int nr) exit(1); } - if (sscanf(line, " %d %d %d %dd%d+%d %dd%d+%d ", - t, t + 1, t + 2, t + 3, t + 4, t + 5, t + 6, t + 7, t + 8) != 9) { + if (sscanf(line, " %d %dd%d+%d %dd%d ", + t, t + 1, t + 2, t + 3, t + 4, t + 5) != 6) { log("SYSERR: Format error in mob #%d, first line after S flag\n" - "...expecting line of form '# # # #d#+# #d#+#'", nr); + "...expecting line of form '# #d#+# #d#'", nr); exit(1); } GET_LEVEL(mob_proto + i) = t[0]; - GET_HITROLL(mob_proto + i) = 20 - t[1]; - GET_AC(mob_proto + i) = 10 * t[2]; /* max hit = 0 is a flag that H, M, V is xdy+z */ GET_MAX_HIT(mob_proto + i) = 0; - GET_HIT(mob_proto + i) = t[3]; - GET_MANA(mob_proto + i) = t[4]; - GET_MOVE(mob_proto + i) = t[5]; + GET_HIT(mob_proto + i) = t[1]; + GET_MANA(mob_proto + i) = t[2]; + GET_MOVE(mob_proto + i) = t[3]; GET_MAX_MANA(mob_proto + i) = 10; GET_MAX_MOVE(mob_proto + i) = 50; - mob_proto[i].mob_specials.damnodice = t[6]; - mob_proto[i].mob_specials.damsizedice = t[7]; - GET_DAMROLL(mob_proto + i) = t[8]; - - if (!get_line(mob_f, line)) { - log("SYSERR: Format error in mob #%d, second line after S flag\n" - "...expecting line of form '# #', but file ended!", nr); - exit(1); - } - - if (sscanf(line, " %d %d ", t, t + 1) != 2) { - log("SYSERR: Format error in mob #%d, second line after S flag\n" - "...expecting line of form '# #'", nr); - exit(1); - } - - GET_GOLD(mob_proto + i) = t[0]; - GET_EXP(mob_proto + i) = t[1]; + mob_proto[i].mob_specials.damnodice = t[4]; + mob_proto[i].mob_specials.damsizedice = t[5]; if (!get_line(mob_f, line)) { log("SYSERR: Format error in last line of mob #%d\n" @@ -3610,6 +3592,7 @@ void clear_char(struct char_data *ch) GET_POS(ch) = POS_STANDING; ch->mob_specials.default_pos = POS_STANDING; ch->events = NULL; + ch->points.prof_mod = 0; GET_AC(ch) = 100; /* Basic Armor */ if (ch->points.max_mana < 100) diff --git a/src/dg_variables.c b/src/dg_variables.c index 260b15c..3aa1abd 100644 --- a/src/dg_variables.c +++ b/src/dg_variables.c @@ -654,13 +654,7 @@ void find_replacement(void *go, struct script_data *sc, trig_data *trig, } break; case 'd': - if (!str_cmp(field, "damroll")) { - if (subfield && *subfield) { - int addition = atoi(subfield); - GET_DAMROLL(c) = MAX(1, GET_DAMROLL(c) + addition); - } - snprintf(str, slen, "%d", GET_DAMROLL(c)); - } else if (!str_cmp(field, "dex")) { + if (!str_cmp(field, "dex")) { if (subfield && *subfield) { int addition = atoi(subfield); int max = (IS_NPC(c) || GET_LEVEL(c) >= LVL_GRGOD) ? 25 : 18; @@ -760,13 +754,6 @@ void find_replacement(void *go, struct script_data *sc, trig_data *trig, } snprintf(str, slen, "%d", GET_HIT(c)); } - else if (!str_cmp(field, "hitroll")) { - if (subfield && *subfield) { - int addition = atoi(subfield); - GET_HITROLL(c) = MAX(1, GET_HITROLL(c) + addition); - } - snprintf(str, slen, "%d", GET_HITROLL(c)); - } else if (!str_cmp(field, "hunger")) { if (subfield && *subfield) { int addition = atoi(subfield); diff --git a/src/genmob.c b/src/genmob.c index 73d410f..1b39132 100644 --- a/src/genmob.c +++ b/src/genmob.c @@ -384,19 +384,16 @@ int write_mobile_record(mob_vnum mvnum, struct char_data *mob, FILE *fd) fprintf(fd, "%s", convert_from_tabs(buf)); fprintf(fd, "%d %d %d %d %d %d %d %d %d E\n" - "%d %d %d %dd%d+%d %dd%d+%d\n", + "%d %dd%d+%d %dd%d\n", MOB_FLAGS(mob)[0], MOB_FLAGS(mob)[1], MOB_FLAGS(mob)[2], MOB_FLAGS(mob)[3], AFF_FLAGS(mob)[0], AFF_FLAGS(mob)[1], AFF_FLAGS(mob)[2], AFF_FLAGS(mob)[3], GET_ALIGNMENT(mob), - GET_LEVEL(mob), 20 - GET_HITROLL(mob), GET_AC(mob) / 10, GET_HIT(mob), - GET_MANA(mob), GET_MOVE(mob), GET_NDD(mob), GET_SDD(mob), - GET_DAMROLL(mob)); + GET_LEVEL(mob), GET_HIT(mob), + GET_MANA(mob), GET_MOVE(mob), GET_NDD(mob), GET_SDD(mob)); - fprintf(fd, "%d %d\n" - "%d %d %d\n", - GET_GOLD(mob), GET_EXP(mob), + fprintf(fd, "%d %d %d\n", GET_POS(mob), GET_DEFAULT_POS(mob), GET_SEX(mob) ); diff --git a/src/genolc.c b/src/genolc.c index 556bf03..65d195b 100644 --- a/src/genolc.c +++ b/src/genolc.c @@ -613,19 +613,16 @@ static int export_mobile_record(mob_vnum mvnum, struct char_data *mob, FILE *fd) ); fprintf(fd, "%d %d %d %d %d %d %d %d %d E\n" - "%d %d %d %dd%d+%d %dd%d+%d\n", + "%d %dd%d+%d %dd%d\n", MOB_FLAGS(mob)[0], MOB_FLAGS(mob)[1], MOB_FLAGS(mob)[2], MOB_FLAGS(mob)[3], AFF_FLAGS(mob)[0], AFF_FLAGS(mob)[1], AFF_FLAGS(mob)[2], AFF_FLAGS(mob)[3], GET_ALIGNMENT(mob), - GET_LEVEL(mob), 20 - GET_HITROLL(mob), GET_AC(mob) / 10, GET_HIT(mob), - GET_MANA(mob), GET_MOVE(mob), GET_NDD(mob), GET_SDD(mob), - GET_DAMROLL(mob)); + GET_LEVEL(mob), GET_HIT(mob), + GET_MANA(mob), GET_MOVE(mob), GET_NDD(mob), GET_SDD(mob)); - fprintf(fd, "%d %d\n" - "%d %d %d\n", - GET_GOLD(mob), GET_EXP(mob), + fprintf(fd, "%d %d %d\n", GET_POS(mob), GET_DEFAULT_POS(mob), GET_SEX(mob) ); diff --git a/src/handler.c b/src/handler.c index 1f4f53e..f82d949 100644 --- a/src/handler.c +++ b/src/handler.c @@ -171,12 +171,8 @@ static void aff_apply_modify(struct char_data *ch, byte loc, sbyte mod, char *ms GET_AC(ch) += mod; break; - case APPLY_HITROLL: - GET_HITROLL(ch) += mod; - break; - - case APPLY_DAMROLL: - GET_DAMROLL(ch) += mod; + case APPLY_PROFICIENCY: + GET_PROF_MOD(ch) += mod; break; case APPLY_SAVING_PARA: @@ -233,27 +229,37 @@ void affect_total(struct char_data *ch) struct affected_type *af; int i, j; + /* First, remove all object-based modifiers. */ for (i = 0; i < NUM_WEARS; i++) { if (GET_EQ(ch, i)) for (j = 0; j < MAX_OBJ_AFFECT; j++) - affect_modify_ar(ch, GET_EQ(ch, i)->affected[j].location, - GET_EQ(ch, i)->affected[j].modifier, - GET_OBJ_AFFECT(GET_EQ(ch, i)), FALSE); + affect_modify_ar(ch, + GET_EQ(ch, i)->affected[j].location, + GET_EQ(ch, i)->affected[j].modifier, + GET_OBJ_AFFECT(GET_EQ(ch, i)), FALSE); } + /* Then remove all spell/affect modifiers. */ for (af = ch->affected; af; af = af->next) affect_modify_ar(ch, af->location, af->modifier, af->bitvector, FALSE); + /* Reset derived abilities to real abilities. */ ch->aff_abils = ch->real_abils; + /* Reset transient modifiers that are re-applied below. */ + GET_PROF_MOD(ch) = 0; /* Proficiency delta (from APPLY_PROFICIENCY) */ + + /* Re-apply object-based modifiers. */ for (i = 0; i < NUM_WEARS; i++) { if (GET_EQ(ch, i)) for (j = 0; j < MAX_OBJ_AFFECT; j++) - affect_modify_ar(ch, GET_EQ(ch, i)->affected[j].location, - GET_EQ(ch, i)->affected[j].modifier, - GET_OBJ_AFFECT(GET_EQ(ch, i)), TRUE); + affect_modify_ar(ch, + GET_EQ(ch, i)->affected[j].location, + GET_EQ(ch, i)->affected[j].modifier, + GET_OBJ_AFFECT(GET_EQ(ch, i)), TRUE); } + /* Re-apply spell/affect modifiers. */ for (af = ch->affected; af; af = af->next) affect_modify_ar(ch, af->location, af->modifier, af->bitvector, TRUE); diff --git a/src/magic.c b/src/magic.c index 5882589..2b47e03 100644 --- a/src/magic.c +++ b/src/magic.c @@ -339,7 +339,7 @@ void mag_affects(int level, struct char_data *ch, struct char_data *victim, break; case SPELL_BLESS: - af[0].location = APPLY_HITROLL; + af[0].location = GET_SPELL_ABILITY_MOD(ch); af[0].modifier = 2; af[0].duration = 6; @@ -357,7 +357,7 @@ void mag_affects(int level, struct char_data *ch, struct char_data *victim, return; } - af[0].location = APPLY_HITROLL; + af[0].location = GET_SPELL_ABILITY_MOD(ch); af[0].modifier = -4; af[0].duration = 2; SET_BIT_AR(af[0].bitvector, AFF_BLIND); @@ -377,12 +377,12 @@ void mag_affects(int level, struct char_data *ch, struct char_data *victim, return; } - af[0].location = APPLY_HITROLL; + af[0].location = GET_SPELL_ABILITY_MOD(ch); af[0].duration = 1 + (GET_LEVEL(ch) / 2); af[0].modifier = -1; SET_BIT_AR(af[0].bitvector, AFF_CURSE); - af[1].location = APPLY_DAMROLL; + af[1].location = GET_SPELL_ABILITY_MOD(ch); af[1].duration = 1 + (GET_LEVEL(ch) / 2); af[1].modifier = -1; SET_BIT_AR(af[1].bitvector, AFF_CURSE); diff --git a/src/medit.c b/src/medit.c index 6a64239..dd54567 100644 --- a/src/medit.c +++ b/src/medit.c @@ -479,26 +479,13 @@ static void medit_disp_stats_menu(struct descriptor_data *d) "Hit Points (xdy+z): Bare Hand Damage (xdy+z): \r\n" "(%s3%s) HP NumDice: %s[%s%5d%s]%s (%s6%s) BHD NumDice: %s[%s%5d%s]%s\r\n" "(%s4%s) HP SizeDice: %s[%s%5d%s]%s (%s7%s) BHD SizeDice: %s[%s%5d%s]%s\r\n" - "(%s5%s) HP Addition: %s[%s%5d%s]%s (%s8%s) DamRoll: %s[%s%5d%s]%s\r\n" - "%-*s(range %s%d%s to %s%d%s)\r\n\r\n" - - "(%sA%s) Armor Class: %s[%s%4d%s]%s (%sD%s) Hitroll: %s[%s%5d%s]%s\r\n" - "(%sB%s) Exp Points: %s[%s%10d%s]%s (%sE%s) Alignment: %s[%s%5d%s]%s\r\n" - "(%sC%s) Gold: %s[%s%10d%s]%s\r\n\r\n", + "(%s5%s) HP Addition: %s[%s%5d%s]%s (%s8%s) Alignment: %s[%s%5d%s]%s\r\n\r\n", cyn, yel, OLC_NUM(d), cyn, nrm, cyn, nrm, cyn, yel, GET_LEVEL(mob), cyn, nrm, cyn, nrm, cyn, nrm, cyn, nrm, cyn, yel, GET_HIT(mob), cyn, nrm, cyn, nrm, cyn, yel, GET_NDD(mob), cyn, nrm, cyn, nrm, cyn, yel, GET_MANA(mob), cyn, nrm, cyn, nrm, cyn, yel, GET_SDD(mob), cyn, nrm, - cyn, nrm, cyn, yel, GET_MOVE(mob), cyn, nrm, cyn, nrm, cyn, yel, GET_DAMROLL(mob), cyn, nrm, - - count_color_chars(buf)+28, buf, - yel, GET_NDD(mob) + GET_DAMROLL(mob), nrm, - yel, (GET_NDD(mob) * GET_SDD(mob)) + GET_DAMROLL(mob), nrm, - - cyn, nrm, cyn, yel, GET_AC(mob), cyn, nrm, cyn, nrm, cyn, yel, GET_HITROLL(mob), cyn, nrm, - cyn, nrm, cyn, yel, GET_EXP(mob), cyn, nrm, cyn, nrm, cyn, yel, GET_ALIGNMENT(mob), cyn, nrm, - cyn, nrm, cyn, yel, GET_GOLD(mob), cyn, nrm + cyn, nrm, cyn, yel, GET_MOVE(mob), cyn, nrm, cyn, nrm, cyn, yel, GET_ALIGNMENT(mob), cyn, nrm ); if (CONFIG_MEDIT_ADVANCED) { @@ -701,31 +688,6 @@ void medit_parse(struct descriptor_data *d, char *arg) i++; break; case '8': - OLC_MODE(d) = MEDIT_DAMROLL; - i++; - break; - case 'a': - case 'A': - OLC_MODE(d) = MEDIT_AC; - i++; - break; - case 'b': - case 'B': - OLC_MODE(d) = MEDIT_EXP; - i++; - break; - case 'c': - case 'C': - OLC_MODE(d) = MEDIT_GOLD; - i++; - break; - case 'd': - case 'D': - OLC_MODE(d) = MEDIT_HITROLL; - i++; - break; - case 'e': - case 'E': OLC_MODE(d) = MEDIT_ALIGNMENT; i++; break; @@ -914,18 +876,6 @@ void medit_parse(struct descriptor_data *d, char *arg) GET_SEX(OLC_MOB(d)) = LIMIT(i - 1, 0, NUM_GENDERS - 1); break; - case MEDIT_HITROLL: - GET_HITROLL(OLC_MOB(d)) = LIMIT(i, 0, 50); - OLC_VAL(d) = TRUE; - medit_disp_stats_menu(d); - return; - - case MEDIT_DAMROLL: - GET_DAMROLL(OLC_MOB(d)) = LIMIT(i, 0, 50); - OLC_VAL(d) = TRUE; - medit_disp_stats_menu(d); - return; - case MEDIT_NDD: GET_NDD(OLC_MOB(d)) = LIMIT(i, 0, 30); OLC_VAL(d) = TRUE; @@ -956,24 +906,6 @@ void medit_parse(struct descriptor_data *d, char *arg) medit_disp_stats_menu(d); return; - case MEDIT_AC: - GET_AC(OLC_MOB(d)) = LIMIT(i, -200, 200); - OLC_VAL(d) = TRUE; - medit_disp_stats_menu(d); - return; - - case MEDIT_EXP: - GET_EXP(OLC_MOB(d)) = LIMIT(i, 0, MAX_MOB_EXP); - OLC_VAL(d) = TRUE; - medit_disp_stats_menu(d); - return; - - case MEDIT_GOLD: - GET_GOLD(OLC_MOB(d)) = LIMIT(i, 0, MAX_MOB_GOLD); - OLC_VAL(d) = TRUE; - medit_disp_stats_menu(d); - return; - case MEDIT_STR: GET_STR(OLC_MOB(d)) = LIMIT(i, 11, 25); OLC_VAL(d) = TRUE; @@ -1127,12 +1059,6 @@ void medit_autoroll_stats(struct descriptor_data *d) GET_NDD(OLC_MOB(d)) = MAX(1, mob_lev/6); /* number damage dice 1-5 */ GET_SDD(OLC_MOB(d)) = MAX(2, mob_lev/6); /* size of damage dice 2-5 */ - GET_DAMROLL(OLC_MOB(d)) = mob_lev/6; /* damroll (dam bonus) 0-5 */ - - GET_HITROLL(OLC_MOB(d)) = mob_lev/3; /* hitroll 0-10 */ - GET_EXP(OLC_MOB(d)) = (mob_lev*mob_lev*100); - GET_GOLD(OLC_MOB(d)) = (mob_lev*10); - GET_AC(OLC_MOB(d)) = (100-(mob_lev*6)); /* AC 94 to -80 */ /* 'Advanced' stats are only rolled if advanced options are enabled */ if (CONFIG_MEDIT_ADVANCED) { diff --git a/src/oasis.h b/src/oasis.h index 6d850a5..6889396 100644 --- a/src/oasis.h +++ b/src/oasis.h @@ -265,34 +265,29 @@ extern const char *nrm, *grn, *cyn, *yel; /* Numerical responses. */ #define MEDIT_NUMERICAL_RESPONSE 10 #define MEDIT_SEX 11 -#define MEDIT_HITROLL 12 -#define MEDIT_DAMROLL 13 -#define MEDIT_NDD 14 -#define MEDIT_SDD 15 -#define MEDIT_NUM_HP_DICE 16 -#define MEDIT_SIZE_HP_DICE 17 -#define MEDIT_ADD_HP 18 -#define MEDIT_AC 19 -#define MEDIT_EXP 20 -#define MEDIT_GOLD 21 -#define MEDIT_POS 22 -#define MEDIT_DEFAULT_POS 23 -#define MEDIT_ATTACK 24 -#define MEDIT_LEVEL 25 -#define MEDIT_ALIGNMENT 26 -#define MEDIT_DELETE 27 -#define MEDIT_COPY 28 -#define MEDIT_STR 29 -#define MEDIT_INT 30 -#define MEDIT_WIS 31 -#define MEDIT_DEX 32 -#define MEDIT_CON 33 -#define MEDIT_CHA 34 -#define MEDIT_PARA 35 -#define MEDIT_ROD 36 -#define MEDIT_PETRI 37 -#define MEDIT_BREATH 38 -#define MEDIT_SPELL 39 +#define MEDIT_NDD 12 +#define MEDIT_SDD 13 +#define MEDIT_NUM_HP_DICE 14 +#define MEDIT_SIZE_HP_DICE 15 +#define MEDIT_ADD_HP 16 +#define MEDIT_POS 17 +#define MEDIT_DEFAULT_POS 18 +#define MEDIT_ATTACK 19 +#define MEDIT_LEVEL 20 +#define MEDIT_ALIGNMENT 21 +#define MEDIT_DELETE 22 +#define MEDIT_COPY 23 +#define MEDIT_STR 24 +#define MEDIT_INT 25 +#define MEDIT_WIS 26 +#define MEDIT_DEX 27 +#define MEDIT_CON 28 +#define MEDIT_CHA 29 +#define MEDIT_PARA 30 +#define MEDIT_ROD 31 +#define MEDIT_PETRI 32 +#define MEDIT_BREATH 33 +#define MEDIT_SPELL 34 /* Submodes of SEDIT connectedness. */ #define SEDIT_MAIN_MENU 0 diff --git a/src/pfdefaults.h b/src/pfdefaults.h index c0eba7e..62b2863 100644 --- a/src/pfdefaults.h +++ b/src/pfdefaults.h @@ -33,8 +33,6 @@ #define PFDEF_GOLD 0 #define PFDEF_BANK 0 #define PFDEF_EXP 0 -#define PFDEF_HITROLL 0 -#define PFDEF_DAMROLL 0 #define PFDEF_AC 0 #define PFDEF_STR 0 #define PFDEF_STRADD 0 diff --git a/src/players.c b/src/players.c index 3b7d77b..cbbcdde 100644 --- a/src/players.c +++ b/src/players.c @@ -268,8 +268,6 @@ int load_char(const char *name, struct char_data *ch) GET_GOLD(ch) = PFDEF_GOLD; GET_BANK_GOLD(ch) = PFDEF_BANK; GET_EXP(ch) = PFDEF_EXP; - GET_HITROLL(ch) = PFDEF_HITROLL; - GET_DAMROLL(ch) = PFDEF_DAMROLL; GET_AC(ch) = PFDEF_AC; ch->real_abils.str = PFDEF_STR; ch->real_abils.str_add = PFDEF_STRADD; @@ -348,7 +346,6 @@ int load_char(const char *name, struct char_data *ch) if (!strcmp(tag, "Desc")) ch->player.description = fread_string(fl, buf2); else if (!strcmp(tag, "Dex ")) ch->real_abils.dex = atoi(line); else if (!strcmp(tag, "Drnk")) GET_COND(ch, DRUNK) = atoi(line); - else if (!strcmp(tag, "Drol")) GET_DAMROLL(ch) = atoi(line); break; case 'E': @@ -371,7 +368,6 @@ int load_char(const char *name, struct char_data *ch) free(GET_HOST(ch)); GET_HOST(ch) = strdup(line); } - else if (!strcmp(tag, "Hrol")) GET_HITROLL(ch) = atoi(line); else if (!strcmp(tag, "Hung")) GET_COND(ch, HUNGER) = atoi(line); break; @@ -651,8 +647,6 @@ void save_char(struct char_data * ch) if (GET_GOLD(ch) != PFDEF_GOLD) fprintf(fl, "Gold: %d\n", GET_GOLD(ch)); if (GET_BANK_GOLD(ch) != PFDEF_BANK) fprintf(fl, "Bank: %d\n", GET_BANK_GOLD(ch)); if (GET_EXP(ch) != PFDEF_EXP) fprintf(fl, "Exp : %d\n", GET_EXP(ch)); - if (GET_HITROLL(ch) != PFDEF_HITROLL) fprintf(fl, "Hrol: %d\n", GET_HITROLL(ch)); - if (GET_DAMROLL(ch) != PFDEF_DAMROLL) fprintf(fl, "Drol: %d\n", GET_DAMROLL(ch)); if (GET_OLC_ZONE(ch) != PFDEF_OLC) fprintf(fl, "Olc : %d\n", GET_OLC_ZONE(ch)); if (GET_PAGE_LENGTH(ch) != PFDEF_PAGELENGTH) fprintf(fl, "Page: %d\n", GET_PAGE_LENGTH(ch)); if (GET_SCREEN_WIDTH(ch) != PFDEF_SCREENWIDTH) fprintf(fl, "ScrW: %d\n", GET_SCREEN_WIDTH(ch)); diff --git a/src/protocol.c b/src/protocol.c index 78c8600..dadaea1 100644 --- a/src/protocol.c +++ b/src/protocol.c @@ -149,8 +149,6 @@ static variable_name_t VariableNameTable[eMSDP_MAX+1] = { eMSDP_MONEY, "MONEY", NUMBER_READ_ONLY }, { eMSDP_MOVEMENT, "MOVEMENT", NUMBER_READ_ONLY }, { eMSDP_MOVEMENT_MAX, "MOVEMENT_MAX", NUMBER_READ_ONLY }, - { eMSDP_HITROLL, "HITROLL", NUMBER_READ_ONLY }, - { eMSDP_DAMROLL, "DAMROLL", NUMBER_READ_ONLY }, { eMSDP_AC, "AC", NUMBER_READ_ONLY }, { eMSDP_STR, "STR", NUMBER_READ_ONLY }, { eMSDP_INT, "INT", NUMBER_READ_ONLY }, diff --git a/src/protocol.h b/src/protocol.h index 09200e7..7afdf51 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -113,8 +113,6 @@ typedef enum eMSDP_MONEY, eMSDP_MOVEMENT, eMSDP_MOVEMENT_MAX, - eMSDP_HITROLL, - eMSDP_DAMROLL, eMSDP_AC, eMSDP_STR, eMSDP_INT, diff --git a/src/spells.c b/src/spells.c index d9785b7..42763da 100644 --- a/src/spells.c +++ b/src/spells.c @@ -372,7 +372,7 @@ ASPELL(spell_identify) age(victim)->day, age(victim)->hours); send_to_char(ch, "Height %d cm, Weight %d pounds\r\n", GET_HEIGHT(victim), GET_WEIGHT(victim)); send_to_char(ch, "Level: %d, Hits: %d, Mana: %d\r\n", GET_LEVEL(victim), GET_HIT(victim), GET_MANA(victim)); - send_to_char(ch, "AC: %d, Hitroll: %d, Damroll: %d\r\n", compute_armor_class(victim), GET_HITROLL(victim), GET_DAMROLL(victim)); + send_to_char(ch, "AC: %d\r\n", compute_armor_class(victim)); send_to_char(ch, "Str: %d/%d, Int: %d, Wis: %d, Dex: %d, Con: %d, Cha: %d\r\n", GET_STR(victim), GET_ADD(victim), GET_INT(victim), GET_WIS(victim), GET_DEX(victim), GET_CON(victim), GET_CHA(victim)); @@ -399,10 +399,10 @@ ASPELL(spell_enchant_weapon) SET_BIT_AR(GET_OBJ_EXTRA(obj), ITEM_MAGIC); - obj->affected[0].location = APPLY_HITROLL; + obj->affected[0].location = APPLY_PROFICIENCY; obj->affected[0].modifier = 1 + (level >= 18); - obj->affected[1].location = APPLY_DAMROLL; + obj->affected[1].location = APPLY_PROFICIENCY; obj->affected[1].modifier = 1 + (level >= 20); if (IS_GOOD(ch)) { diff --git a/src/structs.h b/src/structs.h index 64b83fc..2ddccfe 100644 --- a/src/structs.h +++ b/src/structs.h @@ -463,15 +463,14 @@ #define APPLY_GOLD 15 /**< Reserved */ #define APPLY_EXP 16 /**< Reserved */ #define APPLY_AC 17 /**< Apply to Armor Class */ -#define APPLY_HITROLL 18 /**< Apply to hitroll */ -#define APPLY_DAMROLL 19 /**< Apply to damage roll */ -#define APPLY_SAVING_PARA 20 /**< Apply to save throw: paralysis */ -#define APPLY_SAVING_ROD 21 /**< Apply to save throw: rods */ -#define APPLY_SAVING_PETRI 22 /**< Apply to save throw: petrif */ -#define APPLY_SAVING_BREATH 23 /**< Apply to save throw: breath */ -#define APPLY_SAVING_SPELL 24 /**< Apply to save throw: spells */ +#define APPLY_PROFICIENCY 18 /**< Apply to Proficiency Bonus */ +#define APPLY_SAVING_PARA 19 /**< Apply to save throw: paralysis */ +#define APPLY_SAVING_ROD 20 /**< Apply to save throw: rods */ +#define APPLY_SAVING_PETRI 21 /**< Apply to save throw: petrif */ +#define APPLY_SAVING_BREATH 22 /**< Apply to save throw: breath */ +#define APPLY_SAVING_SPELL 23 /**< Apply to save throw: spells */ /** Total number of applies */ -#define NUM_APPLIES 25 +#define NUM_APPLIES 24 /* Equals the total number of SAVING_* defines in spells.h */ #define NUM_OF_SAVING_THROWS 5 @@ -917,12 +916,11 @@ struct char_point_data * Dungeons and Dragons method of dealing with character defense, or * Armor class. */ sh_int armor; + sh_int prof_mod; /**< Equipment/affect delta to proficiency bonus */ int gold; /**< Current gold carried on character */ int bank_gold; /**< Gold the char has in a bank account */ int exp; /**< The experience points, or value, of the character. */ - sbyte hitroll; /**< Any bonus or penalty to the hit roll */ - sbyte damroll; /**< Any bonus or penalty to the damage roll */ }; /** char_special_data_saved: specials which both a PC and an NPC have in diff --git a/src/util/plrtoascii.c b/src/util/plrtoascii.c index 8e6013c..2e07033 100755 --- a/src/util/plrtoascii.c +++ b/src/util/plrtoascii.c @@ -49,8 +49,6 @@ struct char_point_data_plrtoascii { int bank_gold; /* Gold the char has in a bank account */ int exp; /* The experience of the player */ - sbyte hitroll; /* Any bonus or penalty to the hit roll */ - sbyte damroll; /* Any bonus or penalty to the damage roll */ }; @@ -303,10 +301,6 @@ void convert(char *filename) fprintf(outfile, "Bank: %d\n", cpd->bank_gold); if (cpd->exp != PFDEF_EXP) fprintf(outfile, "Exp : %d\n", cpd->exp); - if (cpd->hitroll != PFDEF_HITROLL) - fprintf(outfile, "Hrol: %d\n", cpd->hitroll); - if (cpd->damroll != PFDEF_DAMROLL) - fprintf(outfile, "Drol: %d\n", cpd->damroll); /* affected_type */ fprintf(outfile, "Affs:\n"); diff --git a/src/utils.h b/src/utils.h index 5691256..fc48d21 100644 --- a/src/utils.h +++ b/src/utils.h @@ -550,6 +550,8 @@ do \ #define GET_EXP(ch) ((ch)->points.exp) /** Armor class of ch. */ #define GET_AC(ch) ((ch)->points.armor) +/** Proficiency bonus of ch. */ +#define GET_PROF_MOD(ch) ((ch)->points.prof_mod) /** Current hit points (health) of ch. */ #define GET_HIT(ch) ((ch)->points.hit) /** Maximum hit points of ch. */ @@ -566,10 +568,6 @@ do \ #define GET_GOLD(ch) ((ch)->points.gold) /** Gold in bank of ch. */ #define GET_BANK_GOLD(ch) ((ch)->points.bank_gold) -/** Current to-hit roll modifier for ch. */ -#define GET_HITROLL(ch) ((ch)->points.hitroll) -/** Current damage roll modifier for ch. */ -#define GET_DAMROLL(ch) ((ch)->points.damroll) /** Current position (standing, sitting) of ch. */ #define GET_POS(ch) ((ch)->char_specials.position)