mirror of
https://github.com/tbamud/tbamud.git
synced 2026-03-21 19:56:33 +01:00
Clean up legacy practice code
This commit is contained in:
parent
e5515f4ca5
commit
8eb30084b0
16 changed files with 59 additions and 745 deletions
|
|
@ -226,7 +226,7 @@ sell objects to players.
|
|||
|
||||
A single zone typically contains up to than 100 rooms, 100 monster definitions
|
||||
and 100 object definitions, but a large region can be subdivided into several
|
||||
zones at the author’s discretion. For example, the City of Midgaard is divided
|
||||
zones at the author’s discretion. For example, a large city can be divided
|
||||
into two zones, one for the main city and one for the southern residential area.
|
||||
In addition to this, with the new zone system describing top and bottom rooms
|
||||
of a zone, zones can contain very few rooms and indeed can overlap with other
|
||||
|
|
@ -242,7 +242,7 @@ independent, so there can be both a room number 3001 and an object number
|
|||
refers to each entity by its Vnum and never by name. Vnums are normally not
|
||||
seen by players. Each zone itself also has a Vnum. A common convention is to
|
||||
number the zone with the Vnums of its component rooms, divided by 100. For
|
||||
example, Midgaard is zone 30, consisting of rooms 3000 to 3099. Mobile and
|
||||
example, the main city is zone 30, consisting of rooms 3000 to 3099. Mobile and
|
||||
object numbering follows the same convention.
|
||||
|
||||
The author of the zone can define aspects of each room such as the terrain type,
|
||||
|
|
@ -1311,7 +1311,7 @@ terminated by the literal letter S.
|
|||
|
||||
Virtual Number An arbitrary number used to identify the zone. Zone numbers are
|
||||
traditionally the room numbers of the zone divided by 100; for example,
|
||||
Midgaard, which consists of rooms 3000 through 3099, is zone 30.
|
||||
The main city, which consists of rooms 3000 through 3099, is zone 30.
|
||||
|
||||
Zone Name A label given to the zone so that it can be identified in system
|
||||
logs.
|
||||
|
|
@ -1444,7 +1444,7 @@ Zone File Example
|
|||
A sample zone file annotated with comments follows.
|
||||
|
||||
#30 * This is zone number 30
|
||||
Northern Midgaard Main City~ * The name of the zone
|
||||
Northern Main City~ * The name of the zone
|
||||
3099 15 2 * Top of zone is room #3099; it resets every 15 minutes.
|
||||
* * Resets regardless of people.
|
||||
*
|
||||
|
|
@ -1823,7 +1823,7 @@ interactions you want it to perform. See the help files in game for details.
|
|||
8.2 Trigger File Example
|
||||
|
||||
#100
|
||||
Obj Command 100 - portal to Midgaard~
|
||||
Obj Command 100 - portal to the capital~
|
||||
1 c 7
|
||||
en~
|
||||
if %cmd.mudcommand% == enter && %arg% /= portal
|
||||
|
|
|
|||
|
|
@ -1559,7 +1559,7 @@ foreground colors.
|
|||
Basic special procedures have largely been replaced by trigedit. Thus shifting the
|
||||
workload from the coder to the builder to add life and creativity into their zones.
|
||||
While it is easier, and less time consuming, to make triggers than special
|
||||
procedures they are still used for such functions as banks and guildmasters.
|
||||
procedures they are still used for such functions as banks.
|
||||
|
||||
Using special procedures, your virtual world is not just a bunch of monsters,
|
||||
objects and rooms, reduced to a number of statistics. Just like good descriptions
|
||||
|
|
@ -1570,7 +1570,7 @@ Several special procedures are provided with stock tbaMUD which you can use to
|
|||
create your own and get used to the mechanics of special procedures. These special
|
||||
procedures can be found in castle.c and spec_procs.c. They range from very simple
|
||||
procedures, like puff (pulsed special procedure) or bank (command-driven special
|
||||
procedure), to very complex procedures like the guild master.
|
||||
procedure), to very complex procedures.
|
||||
|
||||
In this chapter, FALSE refers to the value 0 and TRUE to any non-zero value.
|
||||
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ You receive a punch in your kidneys which ends your worldly misery -- R.I.P.!
|
|||
$n punches $N in the kidneys causing immediate death!
|
||||
You wildly punch at the air, missing $N.
|
||||
$n misses a wild punch at you.
|
||||
$n practices shadow-boxing while $N takes a break.
|
||||
$n shadow-boxes while $N takes a break.
|
||||
#
|
||||
#
|
||||
#
|
||||
|
|
@ -861,4 +861,3 @@ $N is hit by $n's lightning breath.
|
|||
$N is immortal and immune to lightning breath.
|
||||
$n tries to breath lightning upon you.
|
||||
$n tries to breath lightning upon $N.
|
||||
|
||||
|
|
|
|||
|
|
@ -930,9 +930,8 @@ Backstab is a way to sneak up on a person and attempt to place your dagger
|
|||
in his back, at exactly the point where it does most damage. A successful
|
||||
backstab gives a damage multiplier, depending on your level:
|
||||
|
||||
The chance of successfully backstabbing a person depends on how well you
|
||||
have practiced backstab at your guild. You can always backstab sleeping
|
||||
people.
|
||||
The chance of successfully backstabbing a person depends on your backstab
|
||||
skill. You can always backstab sleeping people.
|
||||
|
||||
#0
|
||||
BALANCE BALANCING
|
||||
|
|
@ -1007,7 +1006,7 @@ BASH
|
|||
|
||||
Fighters only.
|
||||
|
||||
The success of a bash depends upon how many times you have practiced. To bash
|
||||
The success of a bash depends on your bash skill. To bash
|
||||
someone is to attempt to 'knock' that person over. If you succeed, you will
|
||||
inflict minor damage, and cause the victim to fall on its rear. The victim
|
||||
will be unable to issue any commands for 2 rounds of violence. If you miss
|
||||
|
|
@ -1684,7 +1683,6 @@ next_in_room - The next mob/player in the room as a variable (id) nice to
|
|||
use for loops, or an empty return @RTSTAT 23@n
|
||||
pos() - %actor.pos% returns position. Subfield modifies. Sleeping,
|
||||
resting, sitting, fighting, standing. @RTSTAT 1399, 20997@n
|
||||
prac() - The actor's number of practices. Subfield adjusts.
|
||||
pref() - Checks if actor has PRF flag enabled. @RTSTAT 1210@n
|
||||
quest - Returns the current quest (or 0 if there's no current quest).
|
||||
questdone(#) - Returns TRUE (1) if the quest vnum (#) has been completed.
|
||||
|
|
@ -1697,8 +1695,6 @@ saving_breath() - The actors saving throw for breath weapons. Subfield adjusts.
|
|||
saving_spell() - The actors saving throw for spells. Subfield adjusts.
|
||||
sex - The actor's sex, as a string: MALE, FEMALE, or NEUTRAL.
|
||||
skill() - The percentage of learnedness in the skill subfield.
|
||||
skillset("" #) - Set the actors practiced level any skill or spell (1-100).
|
||||
%actor.skillset("magic missile" 95)%.
|
||||
thirst() - The actor's thirst. Subfield sets, -1 is off.
|
||||
title() - The actor's title. Subfield sets. Not used for mobs.
|
||||
varexists() - Returns 1 if global variable in subfield exists, 0 if not.
|
||||
|
|
@ -1749,7 +1745,7 @@ Checking load info for the beastly fido...
|
|||
[ 3012] Main Street (15 Max.)
|
||||
|
||||
> checkload t 100
|
||||
Checking load info for the object trigger 'Portal to Midgaard - 100':
|
||||
Checking load info for the object trigger 'Portal to the Capital - 100':
|
||||
(obj) [ 100] the portal
|
||||
|
||||
See also: LINKS, RLIST, OLIST, MLIST, SLIST
|
||||
|
|
@ -1845,11 +1841,11 @@ Clerics have an ancient belief in not carrying sharp weapons. Hence, they can
|
|||
only wield bludgeoning weapons. This class gives you the wisdom of peace,
|
||||
blessing and healing, though it is possible to learn more violent spells.
|
||||
|
||||
You can improve your spells by using the practice command.
|
||||
You can improve your spells by using them.
|
||||
|
||||
See @RHELP SPELLS@n for a list of spells available.
|
||||
|
||||
See also: PRACTICE, SPELLS
|
||||
See also: SPELLS
|
||||
#0
|
||||
CLSOLC
|
||||
|
||||
|
|
@ -4033,7 +4029,7 @@ INFORMATION
|
|||
The following commands deal with information - for more info, @RHELP KEYWORD@n
|
||||
|
||||
RULES POLICY - The rules of the game.
|
||||
SCORE AFFECTS COINS TOGGLE PRACTICE - Info about yourself and your settings.
|
||||
SCORE AFFECTS COINS TOGGLE - Info about yourself and your settings.
|
||||
HELP INFO NEWS MOTD IMOTD - Info about the game, recent changes.
|
||||
WHO WHERE CONSIDER FLAGS TITLE - Info on other players.
|
||||
TIME DATE - Info on time.
|
||||
|
|
@ -4773,11 +4769,11 @@ MAGIC-USER WIZARD MAGE
|
|||
This is the class of powerful and violent magic, but the magic user do not
|
||||
control the nature, and can therefore not bless and such.
|
||||
|
||||
You can improve your spells by using the practice command.
|
||||
You can improve your spells by using them.
|
||||
|
||||
See @RHELP SPELLS@n for a list of spells available.
|
||||
|
||||
See also: PRACTICE, SPELLS
|
||||
See also: SPELLS
|
||||
#0
|
||||
MAKEUID UID UNIQUE
|
||||
|
||||
|
|
@ -5451,7 +5447,7 @@ Usage: murder [target]
|
|||
|
||||
Kill command to hit another player. To avoid accidental flagging (i.e.
|
||||
trying to type kiss Nia but accidentally typing kill Nia).
|
||||
See also: FLAGS
|
||||
See also: SKILLS
|
||||
|
||||
#0
|
||||
MUTE SQUELCH
|
||||
|
|
@ -5461,7 +5457,7 @@ Usage: mute <player>
|
|||
MUTE is used to prevent a player from using global communication channels.
|
||||
It is a toggle that can be turned on and off by the same command.
|
||||
|
||||
See also: FLAGS
|
||||
See also: SKILLS
|
||||
#2
|
||||
MV MOVEPOINTS MOVE-POINTS MOVEMENTPOINTS MOVEMENT-POINTS
|
||||
|
||||
|
|
@ -6728,22 +6724,6 @@ game and will have to be redone. This is typical of people who are power
|
|||
hungry and are building for themselves and not for others. That is not a
|
||||
sign of a good builder (see @RHELP BUILDER@n).
|
||||
|
||||
#2
|
||||
PRACTICE PRACTISE TRAINING GUILDS GUILDMASTERS PRACTICING EXPERIENCES
|
||||
|
||||
Usage: practice [skill or spell name]
|
||||
|
||||
Practice is the way you improve your spells and skills. You can only do
|
||||
so in a guild, where a guildmaster can help you train. You learn new skills
|
||||
as you gain levels. A guildmaster can be found throughout the realms and will
|
||||
charge you for your training.
|
||||
|
||||
If you type practice anywhere other than with a guildmaster, you will get a
|
||||
list of all of the spells and skills you know and your level of proficiency at
|
||||
each.
|
||||
|
||||
See also: SPELLS, SKILLS, LEVELS
|
||||
#0
|
||||
PRAISE REVIEWS RATINGS
|
||||
|
||||
Review Submitted By: Detta
|
||||
|
|
@ -7186,7 +7166,7 @@ large dragon steak. These are normally acquired from the large green dragons
|
|||
up on Wyrm Mountain. My normal source got eaten last week, and I have a large
|
||||
order to fill. I need these within 24 hours
|
||||
|
||||
Thanks, Bob the Butcher, Midgaard
|
||||
Thanks, Bob the Butcher, the capital
|
||||
The questmaster sighs.
|
||||
The questmaster says "A tricky quest, but it'll cost you 5qp to back out now"
|
||||
#2
|
||||
|
|
@ -7929,7 +7909,7 @@ ever seen. I have never seen anyone put so much work into a zone. Kudos to Justo
|
|||
I am saving this because I would like everyone to use Justo's work as an
|
||||
outstanding example of how a builder should develop and plan a full zone.
|
||||
|
||||
* * * * Midgaard Mail System * * * *
|
||||
* * * * City Mail System * * * *
|
||||
Date: Sun Oct 13 10:33:59 2002
|
||||
To: rumble
|
||||
From: justo
|
||||
|
|
@ -8531,7 +8511,6 @@ olc GrGod PC MISC
|
|||
password GrGod PC MISC
|
||||
poofin Imm PC MISC
|
||||
poofout Imm PC MISC
|
||||
practices God PC NUMBER
|
||||
quest God PC BINARY
|
||||
questhistory God PC NUMBER
|
||||
questpoints God PC NUMBER
|
||||
|
|
@ -8952,7 +8931,7 @@ SPECIALS SPEC-PROC SPECIAL-PROCEDURES SPECPROC SPEC_PROC
|
|||
mobs, and objects. They are written by coders and are normally not created
|
||||
by builders. If you have something you wish to assign a special procedure to
|
||||
talk it over with a coder. The most common special procedures include:
|
||||
Postmasters, banks, guildmasters, pet shops, and boards. If your zone requires
|
||||
Postmasters, banks, pet shops, and boards. If your zone requires
|
||||
any of the above mudmail your coder after your zone is complete.
|
||||
Most of the things possible through special procedures can now be done
|
||||
through trigedit.
|
||||
|
|
@ -8961,12 +8940,6 @@ To create a postmaster make a mob, set one of the keywords as "postmaster," set
|
|||
the NPC flag SPEC, and load it to the room via zedit. Then have your coder add
|
||||
to spec_assign.c:110: ASSIGNMOB(#, postmaster); NOTE: # = the mob/obj vnum.
|
||||
|
||||
To create a guildmaster make a mob, set one of the keywords as "guildmaster,"
|
||||
set the NPC flag SPEC, and load it to the room via zedit. Then have your coder
|
||||
add to spec_assign.c:69: ASSIGNMOB(#, guild); A player can practice at any
|
||||
guildmaster, it is the guildguards that usually limit who can access what
|
||||
guildmaster. @RTSTAT 133@n
|
||||
|
||||
To create a bank make an object, set it to type OTHER, add keyword "bank" and
|
||||
load it to the room via zedit. Then have your coder add to spec_assign.c:
|
||||
138: ASSIGNOBJ(#, bank);
|
||||
|
|
@ -8981,7 +8954,7 @@ In all cases special procedures need to be added in by a coder. Once your zone
|
|||
is complete mudmail your coder for the additions you want including type and
|
||||
mob or object vnum.
|
||||
|
||||
See also: POSTMASTER, PETSHOPS, BANKS, GUILDMASTER, BOARDS
|
||||
See also: POSTMASTER, PETSHOPS, BANKS, BOARDS
|
||||
#2
|
||||
SPELLS
|
||||
|
||||
|
|
@ -9224,9 +9197,8 @@ Thief Only.
|
|||
|
||||
Usage: steal <item> [target]
|
||||
|
||||
Use steal to steal coins or items from people. The chance of not getting
|
||||
caught depends on how well you have practiced steal, and if the person
|
||||
is asleep.
|
||||
Use steal to steal coins or items from people. The chance of not getting
|
||||
caught depends on your steal skill and whether the person is asleep.
|
||||
|
||||
Examples:
|
||||
|
||||
|
|
@ -9281,11 +9253,11 @@ This is a listing of stock areas.
|
|||
186 Newbie Zone -- Maynard of StrangeMUD
|
||||
25 The High Tower of Magic -- Skylar of SillyMUD*
|
||||
26 The High Tower Of Magic -- Skylar of SillyMUD*
|
||||
30 Northern Midgaard Main City -- DikuMUD
|
||||
31 Southern Part of Midgaard -- DikuMUD
|
||||
30 Northern Main City -- DikuMUD
|
||||
31 Southern Main City -- DikuMUD
|
||||
33 The Three Of Swords -- C.A.W.
|
||||
35 Miden'Nir -- Copper II, modified by VampLestat of MercMUD*
|
||||
36 The Chessboard of Midgaard -- Exxon of SillyMUD
|
||||
36 The Chessboard of the City -- Exxon of SillyMUD
|
||||
40 Mines of Moria -- Redferne of DikuMUD*
|
||||
41 Mines of Moria -- Redferne of DikuMUD*
|
||||
50 The Great Eastern Desert -- Rorschach
|
||||
|
|
@ -10059,7 +10031,7 @@ The 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.
|
||||
The teleporter may also be used to recall back to the capital at any time.
|
||||
|
||||
Uncapitalized zones are linked through a capitalized zone.
|
||||
|
||||
|
|
@ -10254,13 +10226,13 @@ Thieves are known to have very special qualities, that no other class offers.
|
|||
Their specialty tends to be in the darker, sneakier art. Many of these
|
||||
qualities can come in handy in many situations, such as picking locks.
|
||||
|
||||
You can improve you skills by using the practice command.
|
||||
You can improve your skills by using them.
|
||||
|
||||
Skills available to thieves: sneak, hide, steal, backstab, pick lock, track
|
||||
|
||||
See the help on each skill for more information.
|
||||
|
||||
See also: PRACTICE, FLAGS
|
||||
See also: FLAGS
|
||||
#0
|
||||
TILDES ~
|
||||
|
||||
|
|
@ -12444,11 +12416,11 @@ them better at hand-to-hand-combat, as they possess skills of violence and
|
|||
fighting unequaled by the members of any other class. However, they lack the
|
||||
ability to use magic of any sort.
|
||||
|
||||
You can improve your skills by using the practice command.
|
||||
You can improve your skills by using them.
|
||||
|
||||
Skills available to warriors: kick, rescue, track, bash
|
||||
|
||||
See also: PRACTICE
|
||||
See also: FLAGS
|
||||
#0
|
||||
WATERWALK WATWALK
|
||||
|
||||
|
|
@ -13314,12 +13286,12 @@ rumble@*tbamud.com
|
|||
26 High Tower Of Magic II -- Skylar 1-30
|
||||
27 MEMLIN Caves -- Detta 17-25
|
||||
28 MUDSCHOOL -- Welcor 1- 3
|
||||
30 Northern MIDGAARD -- DikuMUD 1-33
|
||||
31 Southern MIDGAARD -- DikuMUD 1-33
|
||||
32 MIDGAARD -- DikuMUD 1-33
|
||||
30 Northern MAIN CITY -- DikuMUD 1-33
|
||||
31 Southern MAIN CITY -- DikuMUD 1-33
|
||||
32 MAIN CITY -- DikuMUD 1-33
|
||||
33 Three Of Swords -- C.A.W. 5-30
|
||||
35 Miden'Nir -- Copper II 4-10
|
||||
36 Chessboard of Midgaard -- Exxon 6-30
|
||||
36 Chessboard of the City -- Exxon 6-30
|
||||
37 CAPITAL Sewer System -- Welcor 3- 7
|
||||
38 CAPITAL Sewer System II -- Welcor 7-14
|
||||
39 HAVEN -- Nivan 3-14
|
||||
|
|
@ -13388,7 +13360,7 @@ rumble@*tbamud.com
|
|||
239 South PASS -- Crysanthia 16-21
|
||||
240 Dun MAURA -- Rumble 7-10
|
||||
241 Starship ENTERPRISE -- Crazyman 26-30
|
||||
242 NEW Midgaard -- Crazyman 3- 7
|
||||
242 NEW Main City -- Crazyman 3- 7
|
||||
243 Snowy VALLEY -- Crazyman 7-10
|
||||
244 Cooland PRISON -- Crazyman 30
|
||||
245 The NETHER -- Kaan 20
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[Note: Further information can be gained on the capitalized words by using the
|
||||
HELP-command]
|
||||
|
||||
Classes, skills, and guilds:
|
||||
Classes and skills:
|
||||
|
||||
When you enter the game the first time, you are asked to select a class; either
|
||||
THIEF, WARRIOR, CLERIC, or MAGIC user. Characters belonging to each of these
|
||||
|
|
@ -16,10 +16,7 @@ keys, creating food supplies out of nothing, and destroying an enemy in
|
|||
several different ways. It is not advisable for a new player to offend the
|
||||
members of such a group!
|
||||
|
||||
In order to learn the tricks of your specific trade, you need to find your
|
||||
GUILD, which may take a little exploring. However, you can usually find a
|
||||
guild in any reasonably populated city. Once you've found it, you need to
|
||||
look up your guildmaster and PRACTICE.
|
||||
You improve your skills by using them in play.
|
||||
|
||||
Equipment:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,596 +0,0 @@
|
|||
#3000
|
||||
Mage Guildguard - 3024~
|
||||
0 q 100
|
||||
~
|
||||
* Check the direction the player must go to enter the guild.
|
||||
if %direction% == south
|
||||
* Stop them if they are not the appropriate class.
|
||||
if %actor.class% != Magic User
|
||||
return 0
|
||||
%send% %actor% The guard humiliates you, and blocks your way.
|
||||
%echoaround% %actor% The guard humiliates %actor.name%, and blocks %actor.hisher% way.
|
||||
end
|
||||
end
|
||||
~
|
||||
#3001
|
||||
Cleric Guildguard - 3025~
|
||||
0 q 100
|
||||
~
|
||||
* Check the direction the player must go to enter the guild.
|
||||
if %direction% == north
|
||||
* Stop them if they are not the appropriate class.
|
||||
if %actor.class% != Cleric
|
||||
return 0
|
||||
%send% %actor% The guard humiliates you, and blocks your way.
|
||||
%echoaround% %actor% The guard humiliates %actor.name%, and blocks %actor.hisher% way.
|
||||
end
|
||||
end
|
||||
~
|
||||
#3002
|
||||
Thief Guildguard - 3026~
|
||||
0 q 100
|
||||
~
|
||||
* Check the direction the player must go to enter the guild.
|
||||
if %direction% == east
|
||||
* Stop them if they are not the appropriate class.
|
||||
if %actor.class% != Thief
|
||||
return 0
|
||||
%send% %actor% The guard humiliates you, and blocks your way.
|
||||
%echoaround% %actor% The guard humiliates %actor.name%, and blocks %actor.hisher% way.
|
||||
end
|
||||
end
|
||||
~
|
||||
#3003
|
||||
Warrior Guildguard - 3027~
|
||||
0 q 100
|
||||
~
|
||||
* Check the direction the player must go to enter the guild.
|
||||
if %direction% == east
|
||||
* Stop them if they are not the appropriate class.
|
||||
if %actor.class% != Warrior
|
||||
return 0
|
||||
%send% %actor% The guard humiliates you, and blocks your way.
|
||||
%echoaround% %actor% The guard humiliates %actor.name%, and blocks %actor.hisher% way.
|
||||
end
|
||||
end
|
||||
~
|
||||
#3004
|
||||
Dump - 3030~
|
||||
2 h 100
|
||||
~
|
||||
%send% %actor% You are awarded for outstanding performance.
|
||||
%echoaround% %actor% %actor.name% has been awarded for being a good citizen.
|
||||
eval value %object.cost% / 10
|
||||
if %value% > 50
|
||||
set value 50
|
||||
elseif %value% < 1
|
||||
set value 1
|
||||
end
|
||||
if %actor.level% < 3
|
||||
nop %actor.exp(%value%)%
|
||||
else
|
||||
nop %actor.coins(%value%)%
|
||||
end
|
||||
%purge% %object%
|
||||
~
|
||||
#3005
|
||||
Stock Thief~
|
||||
0 b 10
|
||||
~
|
||||
set actor %random.char%
|
||||
if %actor%
|
||||
if %actor.is_pc% && %actor.coins%
|
||||
%send% %actor% You discover that %self.name% has %self.hisher% hands in your wallet.
|
||||
%echoaround% %actor% %self.name% tries to steal coins from %actor.name%.
|
||||
eval coins %actor.coins% * %random.10% / 100
|
||||
nop %actor.coins(-%coins%)%
|
||||
nop %self.coins(%coins%)%
|
||||
end
|
||||
end
|
||||
~
|
||||
#3006
|
||||
Stock Snake~
|
||||
0 k 10
|
||||
~
|
||||
%send% %actor% %self.name% bites you!
|
||||
%echoaround% %actor% %self.name% bites %actor.name%.
|
||||
dg_cast 'poison' %actor%
|
||||
~
|
||||
#3007
|
||||
Stock Magic User~
|
||||
0 k 10
|
||||
~
|
||||
switch %actor.level%
|
||||
case 1
|
||||
case 2
|
||||
case 3
|
||||
break
|
||||
case 4
|
||||
dg_cast 'magic missile' %actor%
|
||||
break
|
||||
case 5
|
||||
dg_cast 'chill touch' %actor%
|
||||
break
|
||||
case 6
|
||||
dg_cast 'burning hands' %actor%
|
||||
break
|
||||
case 7
|
||||
case 8
|
||||
dg_cast 'shocking grasp' %actor%
|
||||
break
|
||||
case 9
|
||||
case 10
|
||||
case 11
|
||||
dg_cast 'lightning bolt' %actor%
|
||||
break
|
||||
case 12
|
||||
dg_cast 'color spray' %actor%
|
||||
break
|
||||
case 13
|
||||
dg_cast 'energy drain' %actor%
|
||||
break
|
||||
case 14
|
||||
dg_cast 'curse' %actor%
|
||||
break
|
||||
case 15
|
||||
dg_cast 'poison' %actor%
|
||||
break
|
||||
case 16
|
||||
if %actor.align% > 0
|
||||
dg_cast 'dispel good' %actor%
|
||||
else
|
||||
dg_cast 'dispel evil' %actor%
|
||||
end
|
||||
break
|
||||
case 17
|
||||
case 18
|
||||
dg_cast 'call lightning' %actor%
|
||||
break
|
||||
case 19
|
||||
case 20
|
||||
case 21
|
||||
case 22
|
||||
dg_cast 'harm' %actor%
|
||||
break
|
||||
default
|
||||
dg_cast 'fireball' %actor%
|
||||
break
|
||||
done
|
||||
~
|
||||
#3008
|
||||
Near Death Trap~
|
||||
2 g 100
|
||||
~
|
||||
* By Rumble of The Builder Academy tbamud.com 9091
|
||||
* Near Death Trap stuns actor
|
||||
set stunned %actor.hitp%
|
||||
%damage% %actor% %stunned%
|
||||
%send% %actor% You are on the brink of life and death.
|
||||
%send% %actor% The Gods must favor you this day.
|
||||
~
|
||||
#3009
|
||||
Stock Cityguard - 3059, 60, 67~
|
||||
0 b 50
|
||||
~
|
||||
if !%self.fighting%
|
||||
set actor %random.char%
|
||||
if %actor%
|
||||
if %actor.is_killer%
|
||||
emote screams 'HEY!!! You're one of those PLAYER KILLERS!!!!!!'
|
||||
kill %actor.name%
|
||||
elseif %actor.is_thief%
|
||||
emote screams 'HEY!!! You're one of those PLAYER THIEVES!!!!!!'
|
||||
kill %actor.name%
|
||||
elseif %actor.cha% < 6
|
||||
%send% %actor% %self.name% spits in your face.
|
||||
%echoaround% %actor% %self.name% spits in %actor.name%'s face.
|
||||
end
|
||||
if %actor.fighting%
|
||||
eval victim %actor.fighting%
|
||||
if %actor.align% < %victim.align% && %victim.align% >= 0
|
||||
emote screams 'PROTECT THE INNOCENT! BANZAI! CHARGE! ARARARAGGGHH!'
|
||||
kill %actor.name%
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
~
|
||||
#3010
|
||||
Stock Fido - 3062, 3066~
|
||||
0 b 100
|
||||
~
|
||||
set inroom %self.room%
|
||||
set item %inroom.contents%
|
||||
while %item%
|
||||
* Target the next item in room. In case it is devoured.
|
||||
set next_item %item.next_in_list%
|
||||
* Check for a corpse. Corpse on TBA is vnum 65535. Stock is -1.
|
||||
if %item.vnum(65535)%
|
||||
emote savagely devours a corpse.
|
||||
%purge% %item%
|
||||
halt
|
||||
end
|
||||
set item %next_item%
|
||||
* Loop back
|
||||
done
|
||||
~
|
||||
#3011
|
||||
Stock Janitor - 3061, 3068~
|
||||
0 b 100
|
||||
~
|
||||
eval inroom %self.room%
|
||||
eval item %inroom.contents%
|
||||
while %item%
|
||||
* Target the next item in room. In case it is picked up.
|
||||
set next_item %item.next_in_list%
|
||||
* TODO: if %item.wearflag(take)%
|
||||
* Check for fountains and expensive items.
|
||||
if %item.type% != FOUNTAIN && %item.cost% <= 15
|
||||
take %item.name%
|
||||
end
|
||||
set item %next_item%
|
||||
* Loop back
|
||||
done
|
||||
~
|
||||
#3012
|
||||
Newbie Tour Guide~
|
||||
0 e 0
|
||||
has entered the game.~
|
||||
%echo% This trigger commandlist is not complete!
|
||||
~
|
||||
#3013
|
||||
Newbie Tour Guide Loader~
|
||||
0 e 0
|
||||
has entered the game.~
|
||||
* By Rumble of The Builder Academy tbamud.com 9091
|
||||
* Num Arg 0 means the argument has to match exactly. So trig will only fire off:
|
||||
* "has entered game." and not "has" or "entered" etc. (that would be num arg 1).
|
||||
* Figure out what vnum the mob is in so we can use zoneecho.
|
||||
eval inroom %self.room%
|
||||
%zoneecho% %inroom.vnum% %self.name% shouts, 'Welcome, %actor.name%!'
|
||||
~
|
||||
#3014
|
||||
Teleporter~
|
||||
1 c 3
|
||||
teleport~
|
||||
* By Rumble and Jamie Nelson of The Builder Academy tbamud.com 9091
|
||||
%send% %actor% You attempt to manipulate space and time.
|
||||
%echoaround% %actor% %actor.name% attempts to manipulate space and time.
|
||||
wait 1 sec
|
||||
set sanctus 100
|
||||
set jade 400
|
||||
set newbie 500
|
||||
set sea 600
|
||||
set camelot 775
|
||||
set nuclear 1800
|
||||
set spider 1999
|
||||
set arena 2000
|
||||
set tower 2200
|
||||
set memlin 2798
|
||||
set mudschool 2800
|
||||
set midgaard 3001
|
||||
set capital 3702
|
||||
set haven 3998
|
||||
set chasm 4200
|
||||
set arctic 4396
|
||||
set Orc 4401
|
||||
set monastery 4512
|
||||
set ant 4600
|
||||
set zodiac 5701
|
||||
set grave 7401
|
||||
set zamba 7500
|
||||
set gidean 7801
|
||||
set glumcoins 8301
|
||||
set duke 8660
|
||||
set oasis 9000
|
||||
set domiae 9603
|
||||
set northern 10004
|
||||
set south 10101
|
||||
set dbz 10301
|
||||
set orchan 10401
|
||||
set elcardo 10604
|
||||
set iuel 10701
|
||||
set omega 11501
|
||||
set torres 11701
|
||||
set dollhouse 11899
|
||||
set hannah 12500
|
||||
set maze 13001
|
||||
set wyvern 14000
|
||||
set caves 16999
|
||||
set cardinal 17501
|
||||
set circus 18700
|
||||
set western 20001
|
||||
set sapphire 20101
|
||||
set kitchen 22001
|
||||
set terringham 23200
|
||||
set dragon 23300
|
||||
set school 23400
|
||||
set mines 23500
|
||||
set aldin 23601
|
||||
set crystal 23875
|
||||
set pass 23901
|
||||
set maura 24000
|
||||
set enterprise 24100
|
||||
set new 24200
|
||||
set valley 24300
|
||||
set prison 24457
|
||||
set nether 24500
|
||||
set yard 24700
|
||||
set elven 24801
|
||||
set jedi 24901
|
||||
set dragonspyre 25000
|
||||
set ape 25100
|
||||
set vampyre 25200
|
||||
set windmill 25300
|
||||
set village 25400
|
||||
set shipwreck 25516
|
||||
set keep 25645
|
||||
set jareth 25705
|
||||
set light 25800
|
||||
set mansion 25907
|
||||
set grasslands 26000
|
||||
set igor's 26100
|
||||
set forest 26201
|
||||
set farmlands 26300
|
||||
set banshide 26400
|
||||
set beach 26500
|
||||
set ankou 26600
|
||||
set vice 26728
|
||||
set desert 26900
|
||||
set wasteland 27001
|
||||
set sundhaven 27119
|
||||
set station 27300
|
||||
set smurfville 27400
|
||||
set sparta 27501
|
||||
set shire 27700
|
||||
set oceania 27800
|
||||
set notre 27900
|
||||
set motherboard 28000
|
||||
set khanjar 28100
|
||||
set kerjim 28200
|
||||
set haunted 28300
|
||||
set ghenna 28400
|
||||
set hell 28601
|
||||
set goblin 28700
|
||||
set galaxy 28801
|
||||
set werith's 28900
|
||||
set lizard 29000
|
||||
set black 29100
|
||||
set kerofk 29202
|
||||
set trade 29400
|
||||
set jungle 29500
|
||||
set froboz 29600
|
||||
set desire 29801
|
||||
set cathedral 29900
|
||||
set ancalador 30000
|
||||
set campus 30100
|
||||
set bull 30401
|
||||
set chessboard 30537
|
||||
set tree 30600
|
||||
set castle 30700
|
||||
set baron 30800
|
||||
set westlawn 30900
|
||||
set graye 31003
|
||||
set teeth 31100
|
||||
set leper 31200
|
||||
set altar 31400
|
||||
set mcgintey 31500
|
||||
set wharf 31700
|
||||
set dock 31801
|
||||
set yllnthad 31900
|
||||
set bay 32200
|
||||
set pale 32300
|
||||
set army 32400
|
||||
set revelry 32500
|
||||
set perimeter 32600
|
||||
set asylum 34501
|
||||
set ultima 55685
|
||||
set tarot 21101
|
||||
if !%arg%
|
||||
*they didnt type a location
|
||||
set fail 1
|
||||
else
|
||||
*take the first word they type after the teleport command
|
||||
*compare it to a variable above
|
||||
eval loc %%%arg.car%%%
|
||||
if !%loc%
|
||||
*they typed an invalid location
|
||||
set fail 1
|
||||
end
|
||||
end
|
||||
if %fail%
|
||||
%send% %actor% You fail.
|
||||
%echoaround% %actor% %actor.name% fails.
|
||||
halt
|
||||
end
|
||||
%echoaround% %actor% %actor.name% seems successful as %actor.heshe% steps into another realm.
|
||||
%teleport% %actor% %loc%
|
||||
%force% %actor% look
|
||||
%echoaround% %actor% %actor.name% steps out of space and time.
|
||||
~
|
||||
#3015
|
||||
Teleporter Recall and Return~
|
||||
1 c 7
|
||||
re~
|
||||
* By Rumble of The Builder Academy tbamud.com 9091
|
||||
if %cmd% == recall
|
||||
eval teleporter_return_room %actor.room.vnum%
|
||||
remote teleporter_return_room %actor.id%
|
||||
%send% %actor% You recall to safety.
|
||||
%echoaround% %actor% %actor.name% recalls.
|
||||
%teleport% %actor% 3001
|
||||
%force% %actor% look
|
||||
%echoaround% %actor% %actor.name% appears in the room.
|
||||
elseif %cmd% == return
|
||||
%send% %actor% You return to your previous location.
|
||||
%echoaround% %actor% %actor.name% teleports out of the room.
|
||||
%teleport% %actor% %actor.teleporter_return_room%
|
||||
%force% %actor% look
|
||||
%echoaround% %actor% %actor.name% appears in the room.
|
||||
else
|
||||
return 0
|
||||
end
|
||||
~
|
||||
#3016
|
||||
Kind Soul Gives Newbie Equipment~
|
||||
0 g 100
|
||||
~
|
||||
* By Rumble of The Builder Academy tbamud.com 9091
|
||||
* If a player is < level 5 and naked it fully equips them. If < 5 and missing
|
||||
* some equipment it will equip one spot.
|
||||
if %actor.is_pc% && %actor.level% < 5
|
||||
wait 2 sec
|
||||
if !%actor.eq(*)%
|
||||
say get some clothes on! Here, I will help.
|
||||
%load% obj 3037 %actor% light
|
||||
%load% obj 3083 %actor% rfinger
|
||||
%load% obj 3083 %actor% lfinger
|
||||
%load% obj 3082 %actor% neck1
|
||||
%load% obj 3082 %actor% neck2
|
||||
%load% obj 3040 %actor% body
|
||||
%load% obj 3076 %actor% head
|
||||
%load% obj 3080 %actor% legs
|
||||
%load% obj 3084 %actor% feet
|
||||
%load% obj 3071 %actor% hands
|
||||
%load% obj 3086 %actor% arms
|
||||
%load% obj 3042 %actor% shield
|
||||
%load% obj 3087 %actor% about
|
||||
%load% obj 3088 %actor% waist
|
||||
%load% obj 3089 %actor% rwrist
|
||||
%load% obj 3089 %actor% lwrist
|
||||
%load% obj 3021 %actor% wield
|
||||
%load% obj 3055 %actor% hold
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(light)%
|
||||
say you really shouldn't be wandering these parts without a light source %actor.name%.
|
||||
shake
|
||||
%load% obj 3037
|
||||
give candle %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(rfinger)% || !%actor.eq(lfinger)%
|
||||
say did you lose one of your rings?
|
||||
sigh
|
||||
%load% obj 3083
|
||||
give ring %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(neck1)% || !%actor.eq(neck2)%
|
||||
say you lose everything don't you?
|
||||
roll
|
||||
%load% obj 3082
|
||||
give neck %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(body)%
|
||||
say you won't get far without some body armor %actor.name%.
|
||||
%load% obj 3040
|
||||
give plate %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(head)%
|
||||
say protect that noggin of yours, %actor.name%.
|
||||
%load% obj 3076
|
||||
give cap %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(legs)%
|
||||
say why do you always lose your pants %actor.name%?
|
||||
%load% obj 3080
|
||||
give leggings %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(feet)%
|
||||
say you can't go around barefoot %actor.name%.
|
||||
%load% obj 3084
|
||||
give boots %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(hands)%
|
||||
say need some gloves %actor.name%?
|
||||
%load% obj 3071
|
||||
give gloves %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(arms)%
|
||||
say you must be freezing %actor.name%.
|
||||
%load% obj 3086
|
||||
give sleeve %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(shield)%
|
||||
say you need one of these to protect yourself %actor.name%.
|
||||
%load% obj 3042
|
||||
give shield %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(about)%
|
||||
say you are going to catch a cold %actor.name%.
|
||||
%load% obj 3087
|
||||
give cape %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(waist)%
|
||||
say better use this to hold your pants up %actor.name%.
|
||||
%load% obj 3088
|
||||
give belt %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(rwrist)% || !%actor.eq(lwrist)%
|
||||
say misplace something?
|
||||
smile
|
||||
%load% obj 3089
|
||||
give wristguard %actor.name%
|
||||
halt
|
||||
end
|
||||
if !%actor.eq(wield)%
|
||||
say without a weapon you will be Fido food %actor.name%.
|
||||
%load% obj 3021
|
||||
give sword %actor.name%
|
||||
halt
|
||||
end
|
||||
end
|
||||
~
|
||||
#3017
|
||||
Mortal Greet~
|
||||
2 s 100
|
||||
~
|
||||
* By Rumble of The Builder Academy tbamud.com 9091
|
||||
* TBA mortal greet and equip. New players start at level 0.
|
||||
wait 1 sec
|
||||
if %actor.level% == 0
|
||||
if !%actor.eq(*)%
|
||||
%load% obj 3037 %actor% light
|
||||
%load% obj 3083 %actor% rfinger
|
||||
%load% obj 3083 %actor% lfinger
|
||||
%load% obj 3082 %actor% neck1
|
||||
%load% obj 3082 %actor% neck2
|
||||
%load% obj 3040 %actor% body
|
||||
%load% obj 3076 %actor% head
|
||||
%load% obj 3080 %actor% legs
|
||||
%load% obj 3084 %actor% feet
|
||||
%load% obj 3071 %actor% hands
|
||||
%load% obj 3086 %actor% arms
|
||||
%load% obj 3042 %actor% shield
|
||||
%load% obj 3087 %actor% about
|
||||
%load% obj 3088 %actor% waist
|
||||
%load% obj 3089 %actor% rwrist
|
||||
%load% obj 3089 %actor% lwrist
|
||||
%load% obj 3021 %actor% wield
|
||||
%load% obj 3055 %actor% hold
|
||||
end
|
||||
if !%actor.has_item(3006)%
|
||||
%load% obj 3006 %actor% inv
|
||||
end
|
||||
end
|
||||
wait 3 sec
|
||||
%zoneecho% 3001 A booming voice announces, 'Welcome %actor.name% to the realm!'
|
||||
~
|
||||
#3099
|
||||
Test~
|
||||
2 b 1
|
||||
~
|
||||
%zoneecho% 3001 You hear a loud --=BOOM=--,
|
||||
~
|
||||
$~
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
0.trg
|
||||
1.trg
|
||||
2.trg
|
||||
30.trg
|
||||
$
|
||||
|
|
|
|||
|
|
@ -1,2 +1 @@
|
|||
30.trg
|
||||
$
|
||||
|
|
|
|||
46
src/class.c
46
src/class.c
|
|
@ -95,52 +95,18 @@ bitvector_t find_class_bitvector(const char *arg)
|
|||
return (ret);
|
||||
}
|
||||
|
||||
/* These are definitions which control the guildmasters for each class.
|
||||
* The first field (top line) controls the highest percentage skill level a
|
||||
* character of the class is allowed to attain in any skill. (After this
|
||||
* level, attempts to practice will say "You are already learned in this area."
|
||||
*
|
||||
* The second line controls the maximum percent gain in learnedness a character
|
||||
* is allowed per practice -- in other words, if the random die throw comes out
|
||||
* higher than this number, the gain will only be this number instead.
|
||||
*
|
||||
* The third line controls the minimu percent gain in learnedness a character
|
||||
* is allowed per practice -- in other words, if the random die throw comes
|
||||
* out below this number, the gain will be set up to this number.
|
||||
*
|
||||
* The fourth line simply sets whether the character knows 'spells' or 'skills'.
|
||||
* This does not affect anything except the message given to the character when
|
||||
* trying to practice (i.e. "You know of the following spells" vs. "You know of
|
||||
* the following skills" */
|
||||
|
||||
#define SPELL 0
|
||||
#define SKILL 1
|
||||
|
||||
/* #define LEARNED_LEVEL 0 % known which is considered "learned" */
|
||||
/* #define MAX_PER_PRAC 1 max percent gain in skill per practice */
|
||||
/* #define MIN_PER_PRAC 2 min percent gain in skill per practice */
|
||||
/* #define PRAC_TYPE 3 should it say 'spell' or 'skill'? */
|
||||
|
||||
int prac_params[4][NUM_CLASSES] = {
|
||||
/* SOR CLE THE FIG BAR RAN BARD DRU */
|
||||
{ 95, 95, 85, 80, 75, 85, 85, 95 }, /* learned level */
|
||||
{ 100, 100, 12, 12, 11, 12, 13, 90 }, /* max per practice */
|
||||
{ 25, 25, 0, 0, 0, 0, 25, 25 }, /* min per practice */
|
||||
{ SPELL, SPELL, SKILL, SKILL, SKILL, SKILL, SKILL, SKILL }, /* prac name */
|
||||
};
|
||||
|
||||
/* The appropriate rooms for each guildmaster/guildguard; controls which types
|
||||
* of people the various guildguards let through. i.e., the first line shows
|
||||
/* The appropriate rooms for each class gatekeeper; controls which types
|
||||
* of people the various guards let through. i.e., the first line shows
|
||||
* that from room 3017, only SORCERORS are allowed to go south. Don't forget
|
||||
* to visit spec_assign.c if you create any new mobiles that should be a guild
|
||||
* to visit spec_assign.c if you create any new mobiles that should be a
|
||||
* master or guard so they can act appropriately. If you "recycle" the
|
||||
* existing mobs that are used in other guilds for your new guild, then you
|
||||
* don't have to change that file, only here. Guildguards are now implemented
|
||||
* existing mobs that are used in other areas for your new one, then you
|
||||
* don't have to change that file, only here. Guards are now implemented
|
||||
* via triggers. This code remains as an example. */
|
||||
/* TO-DO: Is this necessary anymore now that there are no official guild rooms? */
|
||||
struct guild_info_type guild_info[] = {
|
||||
|
||||
/* Midgaard */
|
||||
/* Main City */
|
||||
{ CLASS_SORCEROR, 3017, SOUTH },
|
||||
{ CLASS_CLERIC, 3004, NORTH },
|
||||
{ CLASS_ROGUE, 3027, EAST },
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ void grant_class_skills(struct char_data *ch, bool reset);
|
|||
extern const char *class_abbrevs[];
|
||||
extern const char *pc_class_types[];
|
||||
extern const char *class_menu;
|
||||
extern int prac_params[][NUM_CLASSES];
|
||||
extern struct guild_info_type guild_info[];
|
||||
|
||||
#endif /* _CLASS_H_*/
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
#define PFDEF_CONDITION 0
|
||||
#define PFDEF_BADPWS 0
|
||||
#define PFDEF_PREFFLAGS 0
|
||||
#define PFDEF_PRACTICES 0
|
||||
#define PFDEF_COINS 0
|
||||
#define PFDEF_BANK_COINS 0
|
||||
#define PFDEF_EXP 0
|
||||
|
|
|
|||
|
|
@ -142,11 +142,10 @@ static variable_name_t VariableNameTable[eMSDP_MAX+1] =
|
|||
{ eMSDP_LEVEL, "LEVEL", NUMBER_READ_ONLY },
|
||||
{ eMSDP_RACE, "RACE", STRING_READ_ONLY },
|
||||
{ eMSDP_CLASS, "CLASS", STRING_READ_ONLY },
|
||||
{ eMSDP_MANA, "MANA", NUMBER_READ_ONLY },
|
||||
{ eMSDP_MANA_MAX, "MANA_MAX", NUMBER_READ_ONLY },
|
||||
{ eMSDP_WIMPY, "WIMPY", NUMBER_READ_ONLY },
|
||||
{ eMSDP_PRACTICE, "PRACTICE", NUMBER_READ_ONLY },
|
||||
{ eMSDP_MONEY, "MONEY", NUMBER_READ_ONLY },
|
||||
{ eMSDP_MANA, "MANA", NUMBER_READ_ONLY },
|
||||
{ eMSDP_MANA_MAX, "MANA_MAX", NUMBER_READ_ONLY },
|
||||
{ eMSDP_WIMPY, "WIMPY", NUMBER_READ_ONLY },
|
||||
{ eMSDP_MONEY, "MONEY", NUMBER_READ_ONLY },
|
||||
{ eMSDP_MOVEMENT, "MOVEMENT", NUMBER_READ_ONLY },
|
||||
{ eMSDP_MOVEMENT_MAX, "MOVEMENT_MAX", NUMBER_READ_ONLY },
|
||||
{ eMSDP_AC, "AC", NUMBER_READ_ONLY },
|
||||
|
|
|
|||
|
|
@ -106,11 +106,10 @@ typedef enum
|
|||
eMSDP_LEVEL,
|
||||
eMSDP_RACE,
|
||||
eMSDP_CLASS,
|
||||
eMSDP_MANA,
|
||||
eMSDP_MANA_MAX,
|
||||
eMSDP_WIMPY,
|
||||
eMSDP_PRACTICE,
|
||||
eMSDP_MONEY,
|
||||
eMSDP_MANA,
|
||||
eMSDP_MANA_MAX,
|
||||
eMSDP_WIMPY,
|
||||
eMSDP_MONEY,
|
||||
eMSDP_MOVEMENT,
|
||||
eMSDP_MOVEMENT_MAX,
|
||||
eMSDP_AC,
|
||||
|
|
|
|||
|
|
@ -81,22 +81,6 @@ static const char *how_good(int percent)
|
|||
return " (superb)";
|
||||
}
|
||||
|
||||
static const char *prac_types[] = {
|
||||
"spell",
|
||||
"skill"
|
||||
};
|
||||
|
||||
/* TO-DO: Dig deeper and figure out if the min/max practice defines can be removed */
|
||||
#define LEARNED_LEVEL 0 /* % known which is considered "learned" */
|
||||
#define MAX_PER_PRAC 1 /* max percent gain in skill per practice */
|
||||
#define MIN_PER_PRAC 2 /* min percent gain in skill per practice */
|
||||
#define PRAC_TYPE 3 /* should it say 'spell' or 'skill'? */
|
||||
|
||||
#define LEARNED(ch) (prac_params[LEARNED_LEVEL][(int)GET_CLASS(ch)])
|
||||
#define MINGAIN(ch) (prac_params[MIN_PER_PRAC][(int)GET_CLASS(ch)])
|
||||
#define MAXGAIN(ch) (prac_params[MAX_PER_PRAC][(int)GET_CLASS(ch)])
|
||||
#define SPLSKL(ch) (prac_types[prac_params[PRAC_TYPE][(int)GET_CLASS(ch)]])
|
||||
|
||||
void list_skills(struct char_data *ch)
|
||||
{
|
||||
const char *overflow = "\r\n**OVERFLOW**\r\n";
|
||||
|
|
@ -104,7 +88,7 @@ void list_skills(struct char_data *ch)
|
|||
size_t len = 0;
|
||||
char buf2[MAX_STRING_LENGTH];
|
||||
|
||||
len = snprintf(buf2, sizeof(buf2), "You know of the following %ss:\r\n", SPLSKL(ch));
|
||||
len = snprintf(buf2, sizeof(buf2), "You know of the following skills:\r\n");
|
||||
|
||||
if (IS_NPC(ch)) {
|
||||
/* NPCs: show only the skills actually assigned to them */
|
||||
|
|
@ -229,7 +213,7 @@ SPECIAL(mayor)
|
|||
break;
|
||||
|
||||
case 'E':
|
||||
act("$n says 'I hereby declare Midgaard closed!'", FALSE, ch, 0, 0, TO_ROOM);
|
||||
act("$n says 'I hereby declare the city closed!'", FALSE, ch, 0, 0, TO_ROOM);
|
||||
break;
|
||||
|
||||
case 'O':
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@
|
|||
|
||||
/* New skills may be added here up to MAX_SKILLS (200) */
|
||||
|
||||
/* NON-PLAYER AND OBJECT SPELLS AND SKILLS: The practice levels for the spells
|
||||
/* NON-PLAYER AND OBJECT SPELLS AND SKILLS: The skill levels for the spells
|
||||
* and skills below are _not_ recorded in the players file; therefore, the
|
||||
* intended use is for spells and skills associated with objects (such as
|
||||
* SPELL_IDENTIFY used with scrolls of identify) or non-players (such as NPC
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ struct char_special_data_saved_plrtoascii {
|
|||
|
||||
struct player_special_data_saved_plrtoascii {
|
||||
byte skills[MAX_SKILLS+1]; /* array of skills plus skill 0 */
|
||||
byte PADDING0; /* used to be spells_to_learn */
|
||||
byte legacy0; /* legacy unused byte */
|
||||
bool talks[MAX_TONGUE]; /* PC s Tongues 0 for NPC */
|
||||
int wimp_level; /* Below this # of hit points, flee! */
|
||||
byte freeze_level; /* Level of god who froze char, if any */
|
||||
|
|
@ -89,7 +89,7 @@ struct player_special_data_saved_plrtoascii {
|
|||
ubyte spare3;
|
||||
ubyte spare4;
|
||||
ubyte page_length;
|
||||
int spells_to_learn; /* How many can you learn yet this level*/
|
||||
int spare5;
|
||||
int olc_zone;
|
||||
int spare8;
|
||||
int spare9;
|
||||
|
|
@ -263,8 +263,6 @@ void convert(char *filename)
|
|||
if (psds->conditions[2] && player.level < LVL_IMMORT &&
|
||||
psds->conditions[DRUNK] != PFDEF_DRUNK)
|
||||
fprintf(outfile, "Drnk: %d\n", (int)psds->conditions[2]);
|
||||
if (psds->spells_to_learn != PFDEF_PRACTICES)
|
||||
fprintf(outfile, "Lern: %d\n", (int)psds->spells_to_learn);
|
||||
|
||||
/* char_ability_data */
|
||||
cad = &(player.abilities);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue