mirror of
https://github.com/tbamud/tbamud.git
synced 2026-03-21 11:46:33 +01:00
Remove hitroll/damroll
This commit is contained in:
parent
874422ac0b
commit
cb59bf0315
35 changed files with 133 additions and 3636 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
$
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
0.mob
|
||||
1.mob
|
||||
2.mob
|
||||
30.mob
|
||||
$
|
||||
|
|
|
|||
|
|
@ -1,2 +1 @@
|
|||
30.mob
|
||||
$
|
||||
|
|
|
|||
|
|
@ -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 <amount>', or 'DEPOSIT <amount>'.
|
||||
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 <amount>', or 'DEPOSIT <amount>'.
|
||||
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.
|
||||
~
|
||||
$~
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
0.obj
|
||||
1.obj
|
||||
2.obj
|
||||
30.obj
|
||||
$
|
||||
|
|
|
|||
|
|
@ -1,2 +1 @@
|
|||
30.obj
|
||||
$
|
||||
|
|
|
|||
|
|
@ -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
|
||||
$~
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
0.shp
|
||||
1.shp
|
||||
2.shp
|
||||
30.shp
|
||||
$
|
||||
|
|
|
|||
|
|
@ -1,2 +1 @@
|
|||
30.shp
|
||||
$
|
||||
|
|
|
|||
1430
lib/world/wld/30.wld
1430
lib/world/wld/30.wld
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +1,4 @@
|
|||
0.wld
|
||||
1.wld
|
||||
2.wld
|
||||
30.wld
|
||||
$
|
||||
|
|
|
|||
|
|
@ -1,2 +1 @@
|
|||
30.wld
|
||||
$
|
||||
|
|
|
|||
|
|
@ -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
|
||||
$
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
0.zon
|
||||
1.zon
|
||||
2.zon
|
||||
30.zon
|
||||
$
|
||||
|
|
|
|||
|
|
@ -1,2 +1 @@
|
|||
30.zon
|
||||
$
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
154
src/act.wizard.c
154
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;j<MAX_OBJ_AFFECT;j++) {
|
||||
if (obj->affected[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))
|
||||
|
|
|
|||
|
|
@ -509,8 +509,6 @@ const char *apply_types[] = {
|
|||
"GOLD",
|
||||
"EXP",
|
||||
"ARMOR",
|
||||
"HITROLL",
|
||||
"DAMROLL",
|
||||
"SAVING_PARA",
|
||||
"SAVING_ROD",
|
||||
"SAVING_PETRI",
|
||||
|
|
|
|||
35
src/db.c
35
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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
11
src/genmob.c
11
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)
|
||||
);
|
||||
|
||||
|
|
|
|||
11
src/genolc.c
11
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)
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
78
src/medit.c
78
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) {
|
||||
|
|
|
|||
51
src/oasis.h
51
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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
|
|
|
|||
|
|
@ -113,8 +113,6 @@ typedef enum
|
|||
eMSDP_MONEY,
|
||||
eMSDP_MOVEMENT,
|
||||
eMSDP_MOVEMENT_MAX,
|
||||
eMSDP_HITROLL,
|
||||
eMSDP_DAMROLL,
|
||||
eMSDP_AC,
|
||||
eMSDP_STR,
|
||||
eMSDP_INT,
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue