Introduction ============ When I first heard of the Great Net Books, I was thrilled. What a great idea to collect AD&D spells from all over the globe! What wasn't so great, was the fact that the Great Net Books are pretty immense. Guessing that several people out there must think the same, I decided to do something about it. So, here it is: THE GREAT NET BOOKS SPELL SEARCHER V6 Contents ======== Here is an alphabetical ordered list of the files in the SS6b package: COMMON.C The ANSI C source code shared by SS.C and SSI.C. FILE_ID.DIZ Description file for BBSs. You can safely delete this file. SCHOOLS.BAT Creates an index by school from SPELLS.WIZ. For use with DOS. SPELLS.PRI The Great Net Prayerbook v6. Minor changes made (see below). SPELLS.WIZ The Great Net Spell Book v6. Minor changes made (see below). SPHERES.BAT Creates an index by sphere from SPELLS.PRI. For use with DOS. SS.C The ANSI C source code for the Spell Searcher. SS.DOC You are currently reading it. SS.EXE The Spell Searcher for use with DOS. SSI.C The ANSI C source code for the Spell Searcher Interface. SSI.EXE The Spell Searcher Interface for use with DOS. Hardware requirements ===================== Hmmm, I can't imagine any ;-) Notice however, that the current *.EXE files are for use with DOS and compiled using the 386 Intel instruction set. But: if you have an ANSI C compiler (and knows how to use it!) for your system, you shouldn't get any problems with the SS6. Changes to the Net Books ======================== To make the Spell Searcher work with the Net Books some changes were neccesary. In both the GNPB and GNSB a search marker 'SS6!' was inserted to inform the SS6 of where to begin searching. Also, a printer page feed was inserted prior to all spell level changes. Some minor spelling errors and format problems were detected (and corrected) as follows: Prayerbook (GNPB): 1 Baltasar's Impediment ('Necromancy' => 'Necromantic') 2 Make Flammable (Area of Effect exceeds one line) 3 Nilrem's Incredible Uncontrollable Itch (Name/School exceeds one line) 4 Area Effect Withdraw (Area of Effect exceeds one line) 4 Moonlight (Area of Effect exceeds one line) 7 Death Wail ('Necromancy' => 'Necromantic') Spell book (GNSB): 1 Alpha's Sparkle Beam (Area of Effect exceeds one line) 1 Animate Mist (Area of Effect exceeds one line) 1 History (Area of Effect exceeds one line) 1 Lesser Invisible Object (Area of Effect exceeds one line) 1 Seduce Undead (Area of Effect exceeds one line) 2 Alpha's Spark Shower (Area of Effect exceeds one line) 2 Improved Audible Glamour (Area of Effect exceeds one line) 3 Astral Wall (Area of Effect exceeds one line) 3 Charm Undead (Area of Effect exceeds one line) 3 Kiri's Guardian Sigil (Area of Effect exceeds one line) 3 Protection from Stoning (Area of Effect exceeds one line) 3 Sarius' Golden Circles of Protection (Area of Effect exceeds one line) 3 Timespeed (Area of Effect exceeds one line) 4 Alpha's Rainbow Blast (Area of Effect exceeds one line) 4 Fire Breath (Area of Effect exceeds one line) 4 Sarius' Golden Triangles of Protection (Area of Effect exceeds one line) 4 Winthrop's Undead Self Transmogrifier ('Necromantic' => 'Necromancy') 4 Winthrop's Undead Summoning III (Name/School exceeds one line) 6 Jadwin's Illusion Enhancer (Area of Effect exceeds one line) 7 Prismatic Beam (Area of Effect exceeds one line) 7 Protect Atmosphere (Area of Effect exceeds one line) 8 Create Temple or Cathedral (Area of Effect exceeds one line) 9 Create Battlement (Area of Effect exceeds one line) How to use the Spell Searcher (SS) ================================== Examples should be enough to give you a rough idea of how the SS works. Calling the SS without any parameters gives you an overview of the SS's functions. If you have any problems, see the Trouble Shooting section below. ?- Create an index of the spells in the spell file. -> SS spells.pri -ss >result or -> SS spells.wiz -ss >result ?- What spells are available for my 9th level necromancer specialist? -> SS spells.wiz -l=0..5 -xs=Illusion -xs=Enchantment -xs=Charm |more or -> SS spells.wiz -l=0..5 -xs=Illusion+Enchantment+Charm |more or -> SS spells.wiz -l=0..5 -xs=Il+En+Ch |more ?- Show the spell description of all Magic Missile spells. -> SS spells.wiz "-n=Magic Missile" -sd >result ?- Show all priest spells made by authors with an internet address :) -> SS spells.pri -a=@ |more ?- Show all priest spells within the Animal or Charm spheres. -> SS spells.pri -op=Animal+Charm |more How to use the Spell Searcher Interface (SSI) ============================================= This program should, as any interface, be easy to use. There are three things, however, worth pointing out: (1) To clear a search condition line, select it and then press return. (2) You can specify an editor as a parameter. Try 'SSI /?' for an example. (3) Boolean algebra operators are concatenated with a plus '+'. Known schools and spheres ========================= Schools : Abjuration, Alteration, Charm, Conjuration, Divination, Enchantment, Evocation, Illusion, Invocation, Necromancy, Phantasm, Summoning, Wild Magic. Spheres : All, Animal, Astral, Chaos, Charm, Combat, Cosmos, Creation, Divination, Elemental (All/Air/Earth/Fire/Water), Guardian, Healing, Law, Necromantic, Numbers, Paraelemental (All/Ice/Silt/Sun), Plant, Protection, Summoning, Sun, Time, Thought, Travellers, Vengeance, War, Wards, Weather. Trouble shooting ================ Following are some frequently asked questions (FAQs), and my answer. ?- What a great tool! How much do you charge for its use? -> $0. Yes, I am an idealist; I believe making tools and programs free of charge, will encourage others to do the same. ?- Some of my searches yield no results, though I know some spells satisfy the search conditions. Why? -> The Spell Searcher is case sensitive, meaning a search like SS spells.wiz -s=alteration yields no results. Instead, the query should be SS spells.wiz -s=Alteration ?- Why do my searches include both War and Wards spheres, when I search by the War sphere alone? -> Because the Spell Searcher searches for substrings meaning a search for "War" also includes "Wards" because "War" is a substring of "Wards". The same applies for "All" and "Elemental (All)". To tackle the problem, write the query as follows: SS spells.pri -p=War -xp=Wards or SS spells.pri -p=All -xp=(All) Flexibility of the Spell Searcher (You can safely skip this bragging section) ============================================================================= As it is, the Spell Searcher is rather flexible. That is ... (1) Since the source code is included, you can make your own adjustments to the program, and then compile it. (2) The program is written entirely in ANSI C, which means that it compiles on any platform (OS) using an ANSI C compiler. (3) Multiple queries at the same time on the spell headers (such as "name", "school", "sphere" etc). Boolean algebra operators AND, NOT and OR are available. But: between different options there is always an "invisibile" AND query; you cannot fx. query for l=1..4 OR -c=V+M. (I deemed this acceptable, but finger me if I'm wrong). (4) Two interface types: A command-line interface and a Parameter Query Inter- face (PQI). The PQI is nothing but an interface "smashed" on top of the command-line interface. The following model illustrates: *************************** *Parameter Query Interface* *Creates query for the SS6* *************************** | | | ------- Run Query | | View | | V | **************** V *Spell Searcher* --produce--> Result **************** (5) You can easily make your own adjustments to the spell files. (6) Output is in ASCII format (much like the input) and thereby printable. (7) You can ... Arrgghh! Enough, get on with it! And don't forget... =================== If you decide to use my program, please email any comments to: dragon@diku.dk Thank you for taking the time to read this file. September, 1995.