From 8eb30084b0a54f624ededf31fa8477a0825ed0b2 Mon Sep 17 00:00:00 2001 From: kinther Date: Sat, 27 Dec 2025 15:28:42 -0800 Subject: [PATCH] Clean up legacy practice code --- doc/building.txt | 10 +- doc/coding.txt | 4 +- lib/misc/messages | 3 +- lib/text/help/help.hlp | 88 ++---- lib/text/info | 7 +- lib/world/trg/30.trg | 596 --------------------------------------- lib/world/trg/index | 1 - lib/world/trg/index.mini | 1 - src/class.c | 46 +-- src/class.h | 1 - src/pfdefaults.h | 1 - src/protocol.c | 9 +- src/protocol.h | 9 +- src/spec_procs.c | 20 +- src/spells.h | 2 +- src/util/plrtoascii.c | 6 +- 16 files changed, 59 insertions(+), 745 deletions(-) delete mode 100644 lib/world/trg/30.trg diff --git a/doc/building.txt b/doc/building.txt index 3a1b5a2..13001c7 100644 --- a/doc/building.txt +++ b/doc/building.txt @@ -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 diff --git a/doc/coding.txt b/doc/coding.txt index ccb3eda..6f4613b 100644 --- a/doc/coding.txt +++ b/doc/coding.txt @@ -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. diff --git a/lib/misc/messages b/lib/misc/messages index dacd493..1f4a4bb 100644 --- a/lib/misc/messages +++ b/lib/misc/messages @@ -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. - diff --git a/lib/text/help/help.hlp b/lib/text/help/help.hlp index 80f2657..c1a9f5b 100644 --- a/lib/text/help/help.hlp +++ b/lib/text/help/help.hlp @@ -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 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 [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 diff --git a/lib/text/info b/lib/text/info index 661518c..23dab0a 100644 --- a/lib/text/info +++ b/lib/text/info @@ -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: diff --git a/lib/world/trg/30.trg b/lib/world/trg/30.trg deleted file mode 100644 index 9d7d2a9..0000000 --- a/lib/world/trg/30.trg +++ /dev/null @@ -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=--, -~ -$~ diff --git a/lib/world/trg/index b/lib/world/trg/index index 30dfe62..695b3a8 100644 --- a/lib/world/trg/index +++ b/lib/world/trg/index @@ -1,5 +1,4 @@ 0.trg 1.trg 2.trg -30.trg $ diff --git a/lib/world/trg/index.mini b/lib/world/trg/index.mini index 81a6b8c..857f13a 100644 --- a/lib/world/trg/index.mini +++ b/lib/world/trg/index.mini @@ -1,2 +1 @@ -30.trg $ diff --git a/src/class.c b/src/class.c index a81c1cf..69da305 100644 --- a/src/class.c +++ b/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 }, diff --git a/src/class.h b/src/class.h index f409bb5..0502604 100644 --- a/src/class.h +++ b/src/class.h @@ -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_*/ diff --git a/src/pfdefaults.h b/src/pfdefaults.h index 2d51229..afd4ba9 100644 --- a/src/pfdefaults.h +++ b/src/pfdefaults.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 diff --git a/src/protocol.c b/src/protocol.c index dadaea1..e9ad34c 100644 --- a/src/protocol.c +++ b/src/protocol.c @@ -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 }, diff --git a/src/protocol.h b/src/protocol.h index a647a7c..c209fc2 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -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, diff --git a/src/spec_procs.c b/src/spec_procs.c index e700808..5b29ad1 100644 --- a/src/spec_procs.c +++ b/src/spec_procs.c @@ -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': diff --git a/src/spells.h b/src/spells.h index 67a9d4d..3405aa0 100644 --- a/src/spells.h +++ b/src/spells.h @@ -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 diff --git a/src/util/plrtoascii.c b/src/util/plrtoascii.c index 3c03739..8888a2f 100755 --- a/src/util/plrtoascii.c +++ b/src/util/plrtoascii.c @@ -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);