                    Firgo - A Greater Fire Elemental
 
                               3rd Edition
                                   by
                            Valcaran the Red
 
 
                            19. Dragon 259 AF  
                               Version 11
 
 
More: <cr> -- Stop: 'q' -- 
Contents.
---------
 
1. Foreword.
2. Description of Firgo.
3. How to give orders to Firgo.
   3.1. Call commands.
   3.2. Special commands.
4. The soul of Firgo.
   4.1. The memory.
        4.1.1. The activus database.
        4.1.2. The reaction database.
   4.2. The behaviour.
   4.3. Init souls.
   4.4. Call soul.
   4.5. Brain soul.
More: <cr> -- Stop: 'q' -- 
   4.6. Known bugs.
5. Compressed souls.
6. How to summon similar beings.
   6.1. First summoning.
   6.2. Daily summoning.
7. How to save the memory.
 
 
 
How to use this book:
 
- For apprentices and masters who just want to inform themselves about
  creatures in general and firgo in particular: read chapter 1, 2 and 3.
 
- For new greymages who never summoned a creature: read chapter 1, 2, 3
  and paragraph 4.6. Follow the steps in chapter 6 if you want to summon
More: <cr> -- Stop: 'q' -- 
  a similar creature.
 
- For greymages who already summoned a creature using the 2nd Edition of
  this report: read chapter 1, 2, 3 and paragraph 4.6. Follow the steps
  in chapter 7 if you want to upgrade your creature.
 
- For greymages who already used other souls and summoning formulas: read
  chapter 1, 2, 3 and paragraph 4.6. Follow the steps in chapter 6 if you
  want to summon a similar creature. Have a close look to the recommended
  steps which describe the individualising of your creature. Additionally
  you can add/change some rules in init soul 4 to ensure that the creature
  will behave similar to your old.
 
- For veteran greymages who want to develop the souls or planning some
  research on their own: read the whole book and feel free to ask me
  about additional help. Suggestions or ideas are also always welcome.
More: <cr> -- Stop: 'q' -- 
 
 
 
1. Foreword.
------------
 
Greetings Mages!
 
Here is the 3rd Edition of my Research Report on Firgo.
You may ask: "Wow, why a 3rd Edition?"
Here is the answer: "There are mayor changes in Firgo's soul and its worth a
new edition."
 
The new soul is no longer compatible with the soul I described in the last
version. This is mainly because Firgo's memory is a bit rearranged now.
 
More: <cr> -- Stop: 'q' -- 
But don't panic. If you summoned a similar being like firgo and already
taught him a lot, your work is not lost if you summon a new creature using
this new soul now. Chapter 7 describes a method to save the memory (adb and
rdb) of your creature before you use the new summoning formulas.
 
The mayor change in this version is Firgo's behaviour towards strangers. I
noticed that Firgo was very shy to strangers (people I don't remember),
sometimes doesn't reacting at all. This is no longer true.
Now Firgo does react to strangers too. For example: If I pass the guards
in padorn with Firgo now, he smiles shyly back if the guard looks at him :)
 
Another improvement concerns the special commands you can give to Firgo.
Before there were some special commands (output, if, ...) which could not
be given in a row. Firgo now understands such commands in a row.
 
There were also some problems with Firgo and using a stone which are now
More: <cr> -- Stop: 'q' -- 
solved.
 
Another important but more formal change is the format of the summoning
formulas. In this book I gave two versions: a documented version for
research and studying plus a more compact version which should be used
in your summoning rites.
 
 
 
2. Description of Firgo.
------------------------
 
Firgo's appearance did not changed. He still looks like this today:
 
  a ball-like flaming neuter creature
 
 
  You see a medium sized red-skinned creature.
  Its ball-like body is surrounded by red-blue dancing flames.
  It hovers in the height of about one half meter.
 
The flames that surround the creature are not hot to the touch. Only if the
creature is excited or angry the flames can hurt you.
 
Firgo is sometimes still a bit shy although he has found many friends
meanwhile. He is very peaceful, if not attacked by someone, and normally you
can even pat, hug or ruffle him without a problem.
 
If you want to become a friend of firgo its a good idea to ask him about help
he sometimes feels a bit lonely even if I am around.
 
 
 
More: <cr> -- Stop: 'q' -- 
3. How to give orders to Firgo.
-------------------------------
 
Firgo is ready to help all persons he trusts. Ask him about help to find
out if you are able to give orders to him or not. He obeys orders that
are given to him via "say firgo, <do something>".
Together with all regular commands and orders, he can even perform the
special commands (listed below) in a row now. For example: "say firgo,
smile;if xyz then say what a strange word AND scratch;rest;stand up". If
you want that Firgo does something to you try a phrase like this: "say
firgo, get all;give all to ME". ME will be replaced automatically by your
name then.
 
 
 
3.1. Call commands.
More: <cr> -- Stop: 'q' -- 
-------------------
 
There are some special commands that have to be "called" vial the "ccrcall"
spell. (OOC: Almost all of them could be technically normal commands but
because of the limited space of the brain soul I had to move some
administrative commands to the call soul).
 
 
ccrcall init
  called once for each init-soul (parameters are not used).
 
 
ccrcall adb <name-lowercase>/<groups>/<info>
  Add an entry to the activus database.
 
Example: ccrcall adb hawke/trust,satai/editor of padernews
More: <cr> -- Stop: 'q' -- 
 
 
ccrcall adb <name-lowercase>/.
  Delete an entry from the activus database.
 
Example: ccrcall adb valcaran/.
 
 
ccrcall rdb <group>:<pattern>=<commands>
  Add a reaction-pattern to the reaction database. The new 'oratio'
  formula is used, so only lowercase is used in the pattern-part. You
  may use uppercase letters in the <commands> part.
 
Examples:
  ccrcall rdb entire:what?=shrug;say I do not understand!
  ccrcall rdb default:asks you about: help.=say Sorry ME, but I
More: <cr> -- Stop: 'q' -- 
    cannot help you.
 
 
ccrcall rdb <group>:<pattern>=.
  Delete a reaction-pattern from the reaction database.
 
Example: ccrcall rdb entire:what?=.
 
 
ccrcall rdb <group>:.
  Delete an entire group from the reaction database (be careful,
  this will delete all reactions in this group!)
 
Example: ccrcall rdb necro:.
 
 
More: <cr> -- Stop: 'q' -- 
ccrcall if <pattern> then <action>
  Same function as the special command (see 3.2). Note that this command
  defines a 2nd conditional order. It will not remove a any order given
  by the special cmmand-if.
 
Example: ccrcall if sad then comfort ME
 
 
ccrcall spellend <first-two>
  Add/delete a spellend pattern to the patternlist. <first-two> are the
  first two words used in the return message of the spell. If <first-two>
  is found in the list, it will be removed, else it will be added.
 
Example: ccrcall spellend you feel
 
 
More: <cr> -- Stop: 'q' -- 
ccrcall spellabort <entire-pattern>
  Add/delete a spellabort pattern to the patternlist. <entire-pattern> is
  the whole oratio used to abort the spell. If <entire-pattern> is found
  in the list, it will be removed, else it will be added.
 
Example: ccrcall spellabort valcaran tickles you.
 
 
ccrcall list adb|rdb|memory|spellend|spellabort
  Lists the activus or the reaction database, the short-time memory or
  the spellend/spellabort patterns via standard-output.
 
Example: ccrcall list memory
 
 
ccrcall return
More: <cr> -- Stop: 'q' -- 
  Firgo waves goodbye and returns to me. (Improved ccrcall home)
 
 
ccrcall enemy <action>
  Determines how Firgo will react if an enemy does something. With
  this feature Firgo can be made auto-attack on specific persons.
  The <action> will be triggered each time the enemy does something
  while Firgo is around.
 
Example: ccrcall enemy advance;kill ME;cenergy ME
 
 
ccrcall whois <name-lowercase>
  Access to the activus-database.
 
Example: ccrcall whois valcaran
More: <cr> -- Stop: 'q' -- 
 
 
 
3.2. Special commands.
----------------------
 
These are some administrative commands that can be given to Firgo in normal
command mode. Note that these commands now can be given in a row too.
 
 
firgo, output: <output>
  <output> is used for standard-output. Examples are: say, shout,
  whisper <person>, stone, emote growls, ...
 
Example: say firgo, output: whisper valcaran
 
More: <cr> -- Stop: 'q' -- 
 
firgo, showall: on|off
  Put oratio at output?
 
Example: say firgo, showall: on
 
 
firgo, if <pattern> then <action>
  If Firgo find something like <pattern> in his oratio he will perform
  <action>. This feature is useful to determine combat actions.
  To determine which command is used in the if-row and what command is
  used in the command-row, all commands in the if-row have to be
  separated by ' AND ' not by ';'. If Firgo finds an ';' the following
  commands are executed immediately and are not used in the if-action.
 
Example: say firgo, if attack then assist valcaran AND shout Kill 'em!
More: <cr> -- Stop: 'q' -- 
 
 
firgo, follow: none|<leave string>
  The creature tries to follow someone.
 
Example: say firgo, follow: the fenris male wolf leaves 
 
Important: There must be one space at the end of the <leave string>. In the
upper example the correct <leave string> is: "the fenris male wolf leaves "
 
 
 
4. The soul of Firgo.
-----------------------
 
(OOC: most of this chapter is ooc-stuff, you can use the information
More: <cr> -- Stop: 'q' -- 
given here to better understand your creature and/or to improve the soul.
If you only want to adapt the soul for your own creature skip to chapter 6
and follow the instructions there. The souls in this chapter are of a more
descriptive kind. They cannot be used in the game. Have a look at chapter 5
for the ready to use souls, or if you are interested ask me about a
'gawk'-script to convert the descriptive souls into the compressed form.
With the script you are able to develop the soul using comments and alpha-
numerical variables. There is also a minimal syntax check build in, not
the complete soul-grammar, but its a start)
 
 
 
4.1. The memory.
----------------
 
This is a map of the brain-cells of Firgo. Here you can check how the
More: <cr> -- Stop: 'q' -- 
variables of the souls are used.
 
#{ vars.sd - f3v7                                                            }#
 
#{ I/O Variables                                                             }#
 
VAR _0 et _Replica          #{ Compose Answer                                }#
VAR _1 et _Output           #{ Command used for standard output              }#
VAR _2 et _EntirePattern    #{ Entire Oratio:          /<oratio>=            }#
VAR _3 et _ActivusPattern   #{ Activus of the action:  [<activus>/           }#
VAR _4 et _Activus          #{ The activus in lowercase                      }#
VAR _5 et _PostOratio       #{ All after the activus:  /<postoratio>=        }#
VAR _6 et _FirstTwo         #{ First two words:        /<firsttwo>/          }#
 
#{ Database                                                                  }#
 
More: <cr> -- Stop: 'q' -- 
VAR _7 et _adb              #{ The Activus Data Base                         }#
VAR _8 et _rdb              #{ The Reaction/Rule Data Base                   }#
VAR _9 et _ListOfSpells     #{ Spell-List                                    }#
 
#{ Patterns                                                                  }#
 
VAR _10 et _SurpressShowall #{ When to surpress showall                      }#
                            #{ /<firsttwo>/.../<firsttwo>/                   }#
VAR _11 et _RecastPatterns  #{ When to recast spells                         }#
                            #{ /<entirepattern>=/<entirepattern>=...         }#
VAR _12 et _SpellfailPatterns
                            #{ When a spell failed, firsttwo-list            }#
VAR _13 et _SpellendPatterns
                            #{ When a spell ended, firsttwo-list             }#
VAR _14 et _SpellabortPatterns
                            #{ When a spell is aborted, entire-list          }#
More: <cr> -- Stop: 'q' -- 
VAR _15 et _IfPattern1      #{ If Patterns and actions                       }#
VAR _16 et _IfAction1
VAR _17 et _IfPattern2
VAR _18 et _IfAction2
VAR _19 et _CommandPattern  #{ Indicates an command/order                    }#
 
#{ Flags/Booleans/Switches                                                   }#
#{ values: <boolean> ::= true|false                                          }#
#{         <switch>  ::= on|off                                              }#
 
VAR _20 et _IsCasting       #{ Boolean for spell-loop, values: <boolean>     }#
VAR _21 et _ShowallSwitch   #{ Switch for Showall mode, values: <switch>     }#
 
#{ Memory Log                                                                }#
 
VAR _22 et _Memory          #{ Logfile: oratio//...//oratio                  }#
More: <cr> -- Stop: 'q' -- 
 
#{ Outputstrings                                                             }#
 
#{ These strings are used to generate standard output. They should be        }#
#{ modified, to make your creature more unique.                              }#
 
VAR _23 et _IntroCmd        #{ Command used to introduce                     }#
VAR _24 et _RecastStr       #{ Used when a spell has to be recast. This      }#
                            #{ spell is concanated to this string.           }#
VAR _25 et _SpellfailStr    #{ Used when a spell failed due to lack of mana  }#
                            #{ or a missing target.                          }#
VAR _26 et _SpellendStr     #{ Used when a spell was successfully casted.    }#
VAR _27 et _SpellabortStr   #{ Used when a spell was aborted due to a        }#
                            #{ defined entire-oratio.                        }#
VAR _28 et _OutputStr       #{ Used when changing standard-output            }#
VAR _29 et _ShowallStr      #{ Used when changing showall mode               }#
More: <cr> -- Stop: 'q' -- 
VAR _30 et _IfStr           #{ Used when if-rules are changed                }#
VAR _31 et _NotknownStr     #{ Answer for: who is unknown person             }#
VAR _32 et _FollowaStr      #{ First Part of follow mode reply               }#
VAR _33 et _FollowbStr      #{ Last Part of the follow mode reply            }#
                            #{ ( middle part is the LeavePattern )           }#
 
#{ Variables to compose data in the call soul                                }#
 
VAR _34 et _PostEntry       #{ The following vars represent the different    }#
VAR _35 et _Rule            #{ parts of the adb and rdb-entries              }#
VAR _36 et _RuleList
VAR _37 et _RestRdb
VAR _38 et _Pattern
VAR _39 et _Command
 
#{ Others                                                                    }#
More: <cr> -- Stop: 'q' -- 
 
VAR _40 et _SpellToCast     #{ The spell in the current spell-loop           }#
VAR _41 et _ToDo            #{ List of Commands to do: <cmd>;...;<cmd>;      }#
                            #{ The separator ";" can be changed see below    }#
VAR _42 et _cmd             #{ Actual command                                }#
VAR _43 et _Separator       #{ This string is used to separate commands      }#
VAR _44 et _EnemyReaction   #{ How to react towards enemies                  }#
VAR _45 et _ActivusGroup    #{ The group of the activus                      }#
VAR _46 et _ReactionList    #{ Composing reaction rule list                  }#
VAR _47 et _LeavePattern    #{ Leave string for follow mode                  }#
VAR _48 et _IfSeparator     #{ Additional separator used in if clauses       }#
VAR _49 et _NameIf          #{ used to skip if-triggers                      }#
 
 
Two brain-cells (_7 and _8) have a special meaning:
 
More: <cr> -- Stop: 'q' -- 
 
 
4.1.1. The activus database.
----------------------------
 
In the activus database (cell _7) informations about the people, Firgo
knows, are stored. The groups a person belongs to determines the reaction
of Firgo, if this person does something (see 4.2. The behaviour). If no
group is defined for the person the group is set to default. It is possible
to define groups for persons who are not remembered by you. Just use the
description for <name-lowercase> then.
 
Example: ccrcall adb red-eyed ancient male drow/necro/this is cadderly!
 
Syntax of the activus database:
 
More: <cr> -- Stop: 'q' -- 
_adb        ::= <entrylist>
<entrylist> ::= <entry> | <entry><entrylist>
<entry>     ::= [<name-lowercase>/<groups>/<info>]
<groups>    ::= <emptystring> | <grouplist>
<grouplist> ::= <group> | <group>,<grouplist>
<group>     ::= entire | master | trust | mage | satai | priest | enemy ...
<info>      ::= <string>
 
Example:
 
[valcaran/master,mage/my creator]
[hawke/trust,satai/editor of padernews]
 
 
 
4.1.2. The reaction database.
More: <cr> -- Stop: 'q' -- 
-----------------------------
 
In the reaction database (cell _8) informations about Firgo's reactions,
are stored. Equal postoratio patterns can be present in different group
lists. So it is possible that Firgo reacts different to the same actions
of different people (see 4.2. The behaviour.)
 
(OOC: storing the reactions in this way saves a lot of the limited brain
soul space - the basic idea is taken from the book DE CREATURIBUS -
thanks nattfari!)
 
 
Syntax of reaction-database:
 
_rdb             ::= <reactionlist>
<reactionlist>   ::= <group-reaction> | <group-reaction><reactionlist>
More: <cr> -- Stop: 'q' -- 
<group-reaction> ::= [<group>:/<rolelist>/]
<rolelist>       ::= <role> | <role>/<rolelist>
<role>           ::= <pattern>=<command>
<pattern>        ::= <lowercase-string>
<command>        ::= <string>
 
Example:
 
[master:/introduces himself as:=introduce me/]
[default:/hugs you.=smile warm;hug ME/]
 
ME is a special keyword and will be replaced by the activus of the action.
 
Example:
 
Valcaran: hug firgo
More: <cr> -- Stop: 'q' -- 
Firgo: smile warm;hug valcaran
 
Remark: In order to save some soul space (SI numerus aequus 1; FINIS;) there
must be some groups present. These groups are: entire, master and default. The
corresponding group lists may be empty, but there must be group entries for
these three groups.
 
 
 
4.2. The behaviour.
-------------------
 
The reaction is determined by the following procedure:
 
1. The entire oratio is checked in the entire-reaction list.
2. If a reaction is found this action will be performed and the other steps
More: <cr> -- Stop: 'q' -- 
   below are skipped.
3. If the group is enemy the enemy reaction is added to the todo-list.
   Any other actions determined below are used too.
4. The pattern after the name (the postoratio) is checked in a reaction list
   which is composed in the following steps:
5. The reaction list is empty.
6. If the first group is "master" the master-reaction-list is added.
7. If the first group is "master" or "trust" the trust-reaction-list is added.
8. If the first group is not "master" or "trust" the group-reaction-list is
   added.
9. The default-reaction-list is added.
 
This means:
 
- All masters are trusted persons but master-reaction will override a
  trust-action with the same pattern.
More: <cr> -- Stop: 'q' -- 
- If the pattern does not match in the corresponding group-lists, the
  default-reaction-list is consulted.
- Only the first group in the adb is used now. Perhaps future souls will use
  the other groups too. This could be useful: You could make different
  greetings for trusted people this way, by not defining a greet action in
  the trust group, but in other groups and adding the 2nd group-reaction-list
  before the default list is added.
  
 
 
 
4.3. Init souls.
----------------
 
The init-souls are used to initialise the brain of the creature and are only
called once. Thereafter the original call-soul is added.
 
More: <cr> -- Stop: 'q' -- w Tethan studies the books.
(OOC: Note that the following souls are in the descriptive *.sd format and
cannot be used in the game)
 
#{ init1.sd - f3v7                                                           }#
 
INCLUDE vars.sd
 
#{ General inits and strings                                                 }#
 
PONERE _Replica et "";
PONERE _Output et "say";
PONERE _EntirePattern et "";
PONERE _ActivusPattern et "";
PONERE _Activus et "";
PONERE _PostOratio et "";
PONERE _FirstTwo et "";
More: <cr> -- Stop: 'q' -- 
PONERE _adb et "";
PONERE _rdb et "";
PONERE _ListOfSpells et "/";
PONERE _SurpressShowall et "/";
PONERE _RecastPatterns et "/";
PONERE _SpellfailPatterns et "/";
PONERE _SpellendPatterns et "/";
PONERE _SpellabortPatterns et "/";
PONERE _IfPattern1 et "sadly";
PONERE _IfAction1 et "comfort ME";
PONERE _IfPattern2 et "curses";
PONERE _IfAction2 et "tell ME don't be so unpolite.";
PONERE _CommandPattern et "firgo, ";
PONERE _IsCasting et "false";
PONERE _ShowallSwitch et "off";
PONERE _Memory et "";
More: <cr> -- Stop: 'q' -- 
PONERE _IntroCmd et "introduce as Firgo, Ally of Valcaran";
PONERE _RecastStr et "Sorry, have to recast: ";
PONERE _SpellfailStr et "spell failed...";
PONERE _SpellendStr et "spell finished...";
PONERE _SpellabortStr et "spell aborted...";
PONERE _OutputStr et " Standard output is now '";
PONERE _ShowallStr et " Showallmode is now: ";
PONERE _IfStr et " Sure, I will do as you ordered.";
PONERE _NotknownStr et " I am sorry, I don't know this person.";
PONERE _FollowaStr et " I will follow, if ";
PONERE _FollowbStr et "now.";
PONERE _PostEntry et "";
PONERE _Rule et "";
PONERE _RuleList et "";
PONERE _RestRdb et "";
PONERE _Pattern et "";
More: <cr> -- Stop: 'q' -- 
PONERE _Command et "";
PONERE _SpellToCast et "";
PONERE _ToDo et "";
PONERE _cmd et "";
PONERE _Separator et ";";
PONERE _IfSeparator et " AND ";
PONERE _NameIf et "firgo, if ";
PONERE _EnemyReaction et "growl ME";
PONERE _ActivusGroup et "";
PONERE _ReactionList et "";
PONERE _LeavePattern et "nobody leaves ";
IUBERE "save";
IUBERE "say Init 1.";
 
 
#{ init2.sd - f3v11                                                          }#
More: <cr> -- Stop: 'q' -- 
 
INCLUDE vars.sd
 
#{ Init Patterns                                                             }#
 
AFFERRE _ListOfSpells et "cast/caware/cward/";
AFFERRE _ListOfSpells et "cbarrier/cbind/cbreathe/";
AFFERRE _ListOfSpells et "cconstitution/ccreation/";
AFFERRE _ListOfSpells et "cdark/cdetect/cdmaster/cdisc/cdispel/";
AFFERRE _ListOfSpells et "cearthquake/cenchant/cenergy/";
AFFERRE _ListOfSpells et "cfarsee/cfear/cfeeblemind/cfire/cfireshape/";
AFFERRE _ListOfSpells et "cfirewall/cflood/cfog/cfood/";
AFFERRE _ListOfSpells et "cglobe/cheal/";
AFFERRE _ListOfSpells et "cidentify/cinferno/cinvisible/";
AFFERRE _ListOfSpells et "clight/clightning/";
AFFERRE _ListOfSpells et "coffview/coracle/";
More: <cr> -- Stop: 'q' -- 
AFFERRE _ListOfSpells et "cphoenix/cpreserve/";
AFFERRE _ListOfSpells et "crecharge/cresist/ctouch/";
AFFERRE _ListOfSpells et "csee/cselemental/csharpen/cshield/";
AFFERRE _ListOfSpells et "csilence/cspellbind/cstone/cstorm/";
AFFERRE _ListOfSpells et "cstrength/cstrengthen/cstrike/cswolf/";
AFFERRE _ListOfSpells et "ctelec/ctelepathy/cteleport/ctell/";
AFFERRE _ListOfSpells et "ctouch+/ctransfer/ctravel/cturn/";
AFFERRE _ListOfSpells et "cward+/cwater/cweaken/cweb/cwind/";
AFFERRE _SurpressShowall et "/firgo says:/ok./you think/";
AFFERRE _RecastPatterns et "you fail to keep your concentration.=/";
AFFERRE _RecastPatterns et "you lost your concentration.=/";
AFFERRE _RecastPatterns et "you fail to remember the convocation knowledge.=/";
AFFERRE _RecastPatterns et "you carry too much and feel uncomfortable.=/";
AFFERRE _RecastPatterns et "you fail to break the silence spell.=/";
AFFERRE _RecastPatterns et "oops, the spells shows no normal effect...";
AFFERRE _RecastPatterns et "fizzled!=/arg, you can't concentrate anymore.=/";
More: <cr> -- Stop: 'q' -- 
AFFERRE _SpellfailPatterns et "you can't/can't see/cannot see/";
AFFERRE _SpellfailPatterns et "you need/but here/";
AFFERRE _SpellendPatterns et "you create/you ward/you heal/with a/";
AFFERRE _SpellendPatterns et "you have/you refill/you surround/you touch/";
AFFERRE _SpellendPatterns et "you strengthened/there is/you make/you are/";
AFFERRE _SpellendPatterns et "you cast/a strong/you tell/you envoke/";
AFFERRE _SpellendPatterns et "you succeed/you feel/you lift/";
AFFERRE _SpellendPatterns et "your eyes/this is/you sent/";
AFFERRE _SpellabortPatterns et "valcaran tickles you.=/";
AFFERRE _Memory et "01//02//03//04//05//06//07//08//09//10//";
AFFERRE _Memory et "11//12//13//14//15//16//17//18//19//20//";
AFFERRE _Memory et "21//22//23//24//25//26//27//28//29//30//";
AFFERRE _Memory et "31//32//33//34//35//36//37//38//39//40//";
AFFERRE _Memory et "41//42//43//44//45//46//47//48//49//50//";
AFFERRE _Memory et "51//52//53//54//55//56//57//58//59//60//";
AFFERRE _Memory et "61//62//63//64//65//66//67//68//69//70//";
More: <cr> -- Stop: 'q' -- 
AFFERRE _Memory et "71//72//73//74//75//76//77//78//79//80//";
AFFERRE _Memory et "81//82//83//84//85//86//87//88//89//90";
IUBERE "save";
IUBERE "say Init 2.";
 
 
#{ init3.sd - f3v7                                                           }#
 
INCLUDE vars.sd
 
#{ Init activus data base                                                    }#
 
AFFERRE _adb et "[valcaran/master,mage/my creator]";
AFFERRE _adb et "[grandor/trust,mage/mage guildguard]";
IUBERE "save";
IUBERE "say Init 3.";
More: <cr> -- Stop: 'q' -- 
 
 
#{ init4.sd - f3v7                                                           }#
 
INCLUDE vars.sd
 
#{ Init reaction/rule data base                                              }#
 
AFFERRE _rdb et "[entire:/what?=shrug/now you'll only try ";
AFFERRE _rdb et "to stun your enemy.=say Ok, I switched to ";
AFFERRE _rdb et "stunmode!/now you'll try to kill your ";
AFFERRE _rdb et "enemy.=say Ok, switched to killmode!/";
AFFERRE _rdb et "grandor leaves in a puff of smoke.=block ";
AFFERRE _rdb et "east/grandor arrives in a puff of smoke.=";
AFFERRE _rdb et "block/you changed your fighting ";
AFFERRE _rdb et "mood.=say Mood changed./]";
More: <cr> -- Stop: 'q' -- 
AFFERRE _rdb et "[master:/introduces himself as:=introduce ";
AFFERRE _rdb et "me/]";
AFFERRE _rdb et "[trust:/smiles and greets you!=say Hi ME, ";
AFFERRE _rdb et "my friend!/invites you to join his team.=";
AFFERRE _rdb et "leave;join ME/invites you to join her ";
AFFERRE _rdb et "team.=leave;join ME/attacks you!=mood ";
AFFERRE _rdb et "defend;shout Stop! Why do you attack me, ";
AFFERRE _rdb et "ME?/waves happily in your direction.=wave ";
AFFERRE _rdb et "ME;say bye, my friend./]";
AFFERRE _rdb et "[default:/invites you to join his team.=";
AFFERRE _rdb et "say I am sorry Sir, but my master told me ";
AFFERRE _rdb et "not to join everyone./invites you to join ";
AFFERRE _rdb et "her team.=say I am sorry Mylady, but my ";
AFFERRE _rdb et "master told me not to join everyone./";
AFFERRE _rdb et "smiles and greets you!=greet ME/]";
IUBERE "save";
More: <cr> -- Stop: 'q' -- 
IUBERE "say Init 4.";
 
 
 
4.4. Call soul.
---------------
 
(OOC: Note that the following soul is in the descriptive *.sd format and
cannot be used in the game)
 
#{ call.sd - f3v11                                                           }#
 
INCLUDE vars.sd
 
IUBERE _IntroCmd;
PONERE _Replica et "";
More: <cr> -- Stop: 'q' -- 
 
#{ Advanced return-procedure                                                 }#
#{ Strings may be changed                                                    }#
 
SI onis aequus "return";
  IUBERE "say Sorry, my master is calling...";
  IUBERE "wave all hast";
  PONERE _Replica et "Here i am master!";
  IUBERE "home";
FINIS;
 
#{ Processing the activus data base                                          }#
 
SI onis aequus "adb";
  PONERE _ActivusPattern et "[";
  INVENIRE "/" et duo;
More: <cr> -- Stop: 'q' -- 
  SI numerus aequus 1;
    PONERE _Replica et "Entry [";
    AFFERRE _ActivusPattern et ante et "/";
    PONERE _PostEntry et post;
    INVENIRE _ActivusPattern et _adb;         #{ Search for existing activus }#
    SI numerus aequus 1;
      PONERE _adb et ante;
      INVENIRE "]" et post;
      SI _PostEntry aequus ".";
        AFFERRE _adb et post;
        AFFERRE _Replica et duo et "] deleted.";
      ALITER;
        AFFERRE _adb et "[" et duo et "]" et post;
        AFFERRE _Replica et duo et "] changed.";
      FINIS;
    ALITER;
More: <cr> -- Stop: 'q' -- 
      SI _PostEntry aequus ".";
        AFFERRE _Replica et duo et "] not found.";
      ALITER;
        AFFERRE _adb et "[" et duo et "]\n";
        AFFERRE _Replica et duo et "] added.";
      FINIS;
    FINIS;
  ALITER;
    AFFERRE _Replica et "'/' is missing!";
  FINIS;
FINIS;
 
#{ Processing the reaction/rule data base                                    }#
 
SI onis aequus "rdb";
  PONERE _ActivusGroup et "[";
More: <cr> -- Stop: 'q' -- 
  INVENIRE ":" et duo;
  SI numerus aequus 1;
    AFFERRE _Replica et "Entry [";
    AFFERRE _ActivusGroup et ante et ":";
    PONERE _Rule et post;
    INVENIRE _ActivusGroup et _rdb;             #{ Search for existing group }#
    SI numerus aequus 1;
      PONERE _rdb et ante;
      INVENIRE "]" et post;
      PONERE _RuleList et ante;
      PONERE _RestRdb et post;
      SI _Rule aequus ".";                                   #{ Delete group }#
        AFFERRE _rdb et post;
        AFFERRE _Replica et duo et "] deleted.";
      ALITER;
        INVENIRE "=" et _Rule;
More: <cr> -- Stop: 'q' -- 
        SI numerus aequus 1;
          PONERE _Pattern et "/";
          AFFERRE _Pattern et ante et "=";
          PONERE _Command et post;
          INVENIRE _Pattern et _RuleList;     #{ Search for existing pattern }#
          SI numerus aequus 1;
            PONERE _RuleList et ante;
            INVENIRE "/" et post;
            SI _Command aequus ".";                           #{ Delete rule }#
              AFFERRE _RuleList et "/" et post;
              AFFERRE _Replica et duo et "] deleted.";
            ALITER;
              AFFERRE _RuleList et "/" et _Rule et "/" et post;
              AFFERRE _Replica et duo et "] changed.";
            FINIS;
          ALITER;
More: <cr> -- Stop: 'q' -- 
            AFFERRE _RuleList et _Rule et "/";
            AFFERRE _Replica et duo et "] added.";
          FINIS;
        ALITER;
          PONERE _Replica et "'=' is missing!";
        FINIS;
        AFFERRE _rdb et _ActivusGroup et _RuleList et "]" et _RestRdb;
      FINIS;
    ALITER;                                               #{ Add a new group }#
      AFFERRE _rdb et _ActivusGroup et "/" et _Rule et "/" et "]";
      AFFERRE _Replica et duo et "] added.";
    FINIS;
  ALITER;
    AFFERRE _Replica et duo et "':' is missing!";
  FINIS;
FINIS;
More: <cr> -- Stop: 'q' -- 
 
#{ List data                                                                 }#
 
SI onis aequus "list";
  PONERE _Replica et "What shall I list?";
  SI duo aequus "adb";
    PONERE _Replica et _adb;
  FINIS;
  SI duo aequus "rdb";
    PONERE _Replica et _rdb;
  FINIS;
  SI duo aequus "todo";
    PONERE _Replica et _ToDo;
  FINIS;
  SI duo aequus "spells";
    PONERE _Replica et _ListOfSpells;
More: <cr> -- Stop: 'q' -- 
  FINIS;
  SI duo aequus "recast";
    PONERE _Replica et _RecastPatterns;
  FINIS;
  SI duo aequus "fail";
    PONERE _Replica et _SpellfailPatterns;
  FINIS;
  SI duo aequus "spellend";
    PONERE _Replica et _SpellendPatterns;
  FINIS;
  SI duo aequus "spellabort";
    PONERE _Replica et _SpellabortPatterns;
  FINIS;
  SI duo aequus "memory";
    PONERE _Replica et _Memory;
  FINIS;
More: <cr> -- Stop: 'q' -- 
FINIS;
 
#{ Change enemy reaction                                                     }#
 
SI onis aequus "enemy";
  PONERE _EnemyReaction et duo;
  PONERE _Replica et "Enemy action is now: ";
  AFFERRE _Replica et _EnemyReaction;
FINIS;
 
#{ call if                                                                   }#
 
SI onis aequus "if";
  INVENIRE " then " et duo;
  SI numerus aequus 1;
    AFFERRE _Replica et _IfStr;
More: <cr> -- Stop: 'q' -- 
    PONERE _IfPattern2 et ante;
    PONERE _IfAction2 et post;
  FINIS;
FINIS;
 
#{ who is                                                                    }#
 
SI onis aequus "whois";
  PONERE _ActivusPattern et "[";
  AFFERRE _ActivusPattern et duo et "/";
  INVENIRE _ActivusPattern et _adb;
  SI numerus aequus 1;
    INVENIRE "]" et post;
    AFFERRE _Replica et ante;
  ALITER;
    AFFERRE _Replica et _NotknownStr;
More: <cr> -- Stop: 'q' -- 
  FINIS;
FINIS;
 
#{ Memory reset                                                              }#
 
SI onis aequus "memreset";
  PONERE _Memory et "01//02//03//04//05//06//07//08//09//10//";
  AFFERRE _Memory et "11//12//13//14//15//16//17//18//19//20//";
  AFFERRE _Memory et "21//22//23//24//25//26//27//28//29//30//";
  AFFERRE _Memory et "31//32//33//34//35//36//37//38//39//40//";
  AFFERRE _Memory et "41//42//43//44//45//46//47//48//49//50//";
  AFFERRE _Memory et "51//52//53//54//55//56//57//58//59//60//";
  AFFERRE _Memory et "61//62//63//64//65//66//67//68//69//70//";
  AFFERRE _Memory et "71//72//73//74//75//76//77//78//79//80//";
  AFFERRE _Memory et "81//82//83//84//85//86//87//88//89//90";
  PONERE _Replica et "Memory reset...";
More: <cr> -- Stop: 'q' -- 
FINIS;
 
#{ modify spellend                                                           }#
 
SI onis aequus "spellend";
  PONERE _FirstTwo et "/";
  AFFERRE _FirstTwo et duo et "/";
  PONERE _Replica et duo;
  INVENIRE _FirstTwo et _SpellendPatterns;
  SI numerus aequus 1;
    PONERE _SpellendPatterns et ante;
    AFFERRE _SpellendPatterns et "/" et post;
    AFFERRE _Replica et " deleted.";
  ALITER;
    AFFERRE _SpellendPatterns et duo et "/";
    AFFERRE _Replica et " added.";
More: <cr> -- Stop: 'q' -- 
  FINIS;
FINIS;
 
#{ modify spellabort                                                         }#
 
SI onis aequus "spellabort";
  PONERE _EntirePattern et "/";
  AFFERRE _EntirePattern et duo et "=/";
  PONERE _Replica et duo;
  INVENIRE _EntirePattern et _SpellabortPatterns;
  SI numerus aequus 1;
    PONERE _SpellabortPatterns et ante;
    AFFERRE _SpellabortPatterns et "/" et post;
    AFFERRE _Replica et " deleted.";
  ALITER;
    AFFERRE _SpellabortPatterns et duo et "=/";
More: <cr> -- Stop: 'q' -- 
    AFFERRE _Replica et " added.";
  FINIS;
FINIS;
 
#{ Resolve replica                                                           }#
 
SI _Replica aequus "";
  IUBERE onis et duo;
ALITER;
  IUBERE _Output et _Replica;
  IUBERE "save";
FINIS;
 
#{ Reset casting and todo-list                                               }#
 
PONERE _IsCasting et "false";
More: <cr> -- Stop: 'q' -- 
PONERE _ToDo et "";
 
 
4.5. Brain soul.
----------------
 
(OOC: Note that the following soul is in the descriptive *.sd format and
cannot be used in the game)
 
#{ brain.sd - f3v7                                                           }#
 
INCLUDE vars.sd
 
#{ Initialisation of some Variables                                          }#
 
PONERE _EntirePattern et "/";
More: <cr> -- Stop: 'q' -- 
AFFERRE _EntirePattern et oratio et "=";
PONERE _FirstTwo et "/";
INVENIRE " " et oratio;
SI numerus aequus 1;
  AFFERRE _FirstTwo et ante;
  INVENIRE " " et post;
  SI numerus aequus 1;
    AFFERRE _FirstTwo et " " et ante et "/";
  ALITER;
    AFFERRE _FirstTwo et " " et post;
  FINIS;
ALITER;
  AFFERRE _FirstTwo et oratio;
FINIS;
 
#{ Showall and Memorylog                                                     }#
More: <cr> -- Stop: 'q' -- 
 
INVENIRE _FirstTwo et _SurpressShowall;
SI numerus aequus 0;
  INVENIRE "//" et _Memory;
  PONERE _Memory et post;
  AFFERRE _Memory et "//" et oratio;
  SI _ShowallSwitch aequus "on";
    IUBERE _Output et oratio;
  FINIS;
FINIS;
 
#{ Spellcasting/spell-loop                                                   }#
 
SI _IsCasting aequus "true";
  INVENIRE _EntirePattern et _RecastPatterns;
  SI numerus aequus 1;
More: <cr> -- Stop: 'q' -- 
    PONERE _Replica et _RecastStr;
    AFFERRE _Replica et _SpellToCast;
    IUBERE _Output et _Replica;
    IUBERE _SpellToCast;
  FINIS;
  INVENIRE _FirstTwo et _SpellfailPatterns;
  SI numerus aequus 1;
    PONERE _IsCasting et "false";
    IUBERE _Output et _SpellfailStr;
  FINIS;
  INVENIRE _FirstTwo et _SpellendPatterns;
  SI numerus aequus 1;
    PONERE _IsCasting et "false";
    IUBERE _Output et _SpellendStr;
  FINIS;
  INVENIRE _EntirePattern et _SpellabortPatterns;
More: <cr> -- Stop: 'q' -- 
  SI numerus aequus 1;
    PONERE _IsCasting et "false";
    IUBERE _Output et _SpellabortStr;
  FINIS;
 
#{ Non-Spellcasing/Normal command mode                                       }#
 
ALITER;
  SI _ToDo aequus "";           #{ Execute all commands before accepting new }#
 
#{ Determine activus and postoratio                                          }#
#{ Separating: <oratio> = <activus><postoratio>                              }#
#{             <oratio> = <firsttwo><rest>                                   }#
 
    PONERE _ActivusPattern et "[";
    PONERE _PostOratio et "/";
More: <cr> -- Stop: 'q' -- 
    SI activus aequus 0;
      INVENIRE " " et oratio;
      SI numerus aequus 1;
        AFFERRE _ActivusPattern et ante et "/";
        PONERE _Activus et ante;
      ALITER;
        AFFERRE _ActivusPattern et oratio et "/";
        PONERE _Activus et oratio;
      FINIS;
    ALITER;
      AFFERRE _ActivusPattern et activus et "/";
      PONERE _Activus et activus;
      INVENIRE activus et oratio;
      INVENIRE " " et post;
    FINIS;
    AFFERRE _PostOratio et post et "=";
More: <cr> -- Stop: 'q' -- 
 
    INVENIRE "[entire:" et _rdb;
    INVENIRE "]" et post;
 
    INVENIRE _EntirePattern et ante;              #{ Scan for entire pattern }#
    SI numerus aequus 1;
      INVENIRE "/" et post;
      AFFERRE _ToDo et ante et _Separator;
    ALITER;
    
      PONERE _ActivusGroup et "[";         #{ Determine group of the activus }#
      INVENIRE _ActivusPattern et _adb;
      SI numerus aequus 1;
        INVENIRE "/" et post;
        AFFERRE _ActivusGroup et ante;
        INVENIRE "," et _ActivusGroup;
More: <cr> -- Stop: 'q' -- 
        SI numerus aequus 1;
          PONERE _ActivusGroup et ante;
        FINIS;
      FINIS;
      AFFERRE _ActivusGroup et ":";
      
      SI _ActivusGroup aequus "[enemy:";                   #{ Enemy reaction }#
        AFFERRE _ToDo et _EnemyReaction et _Separator;
      FINIS;
      
      PONERE _ReactionList et "";                   #{ Compose reaction list }#
      SI _ActivusGroup aequus "[master:";
        INVENIRE _ActivusGroup et _rdb;
        INVENIRE "]" et post;
        AFFERRE _ReactionList et ante;
        PONERE _ActivusGroup et "[trust:";        #{ All masters are trusted }#
More: <cr> -- Stop: 'q' -- 
      FINIS;
      INVENIRE _ActivusGroup et _rdb;
      SI numerus aequus 1;
        INVENIRE "]" et post;
        AFFERRE _ReactionList et ante;
      FINIS;
      INVENIRE "[default:" et _rdb;                 #{ Add default reactions }#
      INVENIRE "]" et post;
      AFFERRE _ReactionList et ante;
 
      INVENIRE _PostOratio et _ReactionList;           #{ Determine reaction }#
      SI numerus aequus 1;
        INVENIRE "/" et post;
        AFFERRE _ToDo et ante et _Separator;
      ALITER;
        SI _ActivusGroup aequus "[trust:";     #{ Add cmd if activus trusted }#
More: <cr> -- Stop: 'q' -- 
          INVENIRE _CommandPattern et Oratio;
          SI numerus aequus 1;
            AFFERRE _ToDo et post et _Separator;
          FINIS;
        FINIS;
      FINIS;
 
    FINIS;
  FINIS;
 
  INVENIRE _LeavePattern et oratio;                           #{ Follow mode }#
  SI numerus aequus 1;
    SI ante aequus "";
      INVENIRE "." et post;
      AFFERRE _ToDo et ante et _Separator;
    FINIS;
More: <cr> -- Stop: 'q' -- 
  FINIS;
 
  INVENIRE _NameIf et oratio;
  SI numerus aequus 0;
    INVENIRE _IfPattern1 et oratio;                            #{ if actions }#
    SI numerus aequus 1;
      AFFERRE _ToDo et _IfAction1 et _Separator;
    FINIS;
    INVENIRE _IfPattern2 et oratio;
    SI numerus aequus 1;
      AFFERRE _ToDo et _IfAction2 et _Separator;
    FINIS;
  FINIS;
 
  INVENIRE _Separator et _ToDo;                      #{ Processing todo-list }#
  SI numerus aequus 1;
More: <cr> -- Stop: 'q' -- Tethan goes hmmmm.
 
    PONERE _ToDo et post;
    PONERE _cmd et ante;
 
    INVENIRE "if " et _cmd;
    SI numerus aequus 1;
      INVENIRE " then " et post;
      SI numerus aequus 1;
        PONERE _IfPattern1 et ante;
        PONERE _IfAction1 et post;
        IUBERE _Output et _IfStr;
        REDITUS;
      FINIS;
    FINIS;
 
    INVENIRE _IfSeparator et _cmd;
    SI numerus aequus 1;
More: <cr> -- Stop: 'q' -- 
      PONERE _cmd et post;
      AFFERRE _cmd et _Separator et _ToDo;
      PONERE _ToDo et _cmd;
      PONERE _cmd et ante;
    FINIS;      
    INVENIRE "ME" et _cmd;
    SI numerus aequus 1;
      PONERE _cmd et ante;
      AFFERRE _cmd et _Activus et post;
    FINIS;
    PONERE _SpellToCast et "/";
    INVENIRE " " et _cmd;
    SI numerus aequus 1;
      AFFERRE _SpellToCast et ante et "/";
    ALITER;
      AFFERRE _SpellToCast et _cmd et "/";
More: <cr> -- Stop: 'q' -- 
    FINIS;
    INVENIRE _SpellToCast et _ListOfSpells;
    SI numerus aequus 1;
      PONERE _SpellToCast et _cmd;
      PONERE _IsCasting et "true";
    FINIS;
        
    PONERE _Replica et "";                     #{ check for special commands }#
    INVENIRE "output: " et _cmd;
    SI numerus aequus 1;
      PONERE _Output et post;
      AFFERRE _Replica et _Output et _OutputStr et _Output et "'";
    FINIS;
    INVENIRE "showall: " et _cmd;
    SI numerus aequus 1;
      PONERE _ShowallSwitch et post;
More: <cr> -- Stop: 'q' -- 
      AFFERRE _Replica et _Output et _ShowallStr et _ShowallSwitch;
    FINIS;
    INVENIRE "follow: " et _cmd;
    SI numerus aequus 1;
      PONERE _LeavePattern et post;
      AFFERRE _Replica et _Output et _FollowaStr et _LeavePattern et _FollowbStr;
    FINIS;
    
    SI _Replica aequus "";
      PONERE _Replica et _cmd;
    FINIS;
    IUBERE _Replica;
    
  FINIS;
FINIS;
 
More: <cr> -- Stop: 'q' -- 
 
 
4.6. Known bugs.
----------------
 
1. "shrug bug": Firgo shrugs when called via ccrcall return or ccrcall
   home. Somehow he receives a "What?" after executing the "home".
 
   Possible solutions:
   - Turn off the "what?" reaction (quick and dirty :)
   - Somehow catch the "What?" after such a call
   
   Comment: I admit, I did not cared much about this bug since the last
   version and made no further investigation to solve it. I consider
   this a minor bug but if someone has an idea how to solve it I will
   be interested.
More: <cr> -- Stop: 'q' -- 
 
2. "activus bug" (fixed): Firgo only recognise an activus if he (you)
   remembered him. This is because he assumes the first word to be the
   activus. Thanks to Quo's changes with the oratio/Oratio there is no
   problem with the uppercase/lowercase names anymore (before these
   changes the main objective of the adb was to convert the names from
   uppercase to lowercase).
   
   Comment: This new soul first checks if the build-in activus variable
   is set. If this is true the oratio will be separated after the real
   activus not after the first word. This method should solve this
   problem. Note that some 'fake npcs' in padorn will not set the
   activus variable properly, so your creature might not react to them.
   If you find out any other actions which will not set the activus
   build-in variable properly report the bug to me or to the wizzies.
   Note that even in these rare cases the creature will still react to
More: <cr> -- Stop: 'q' -- Tethan studies the books.
 
   people you remember.
 
3. "spellend bug": Firgo "hangs" after a spell if he do not recognise
   that the spell ended. To recognise a spellend Firgo uses the first
   two words in the oratio and scans them in variable _SpellendPatterns.
 
   Possible solutions:
   - "say <name>, abort" will force the spell-loop to end. You can give
     other patterns in variable _SpellabortPatterns.
     (use the new command ccrcall spellabort !)
   - call the creature, this will break the spell-loop too.
   - add a new spell-end with ccrcall spellend <first-two>
 
   (A warning: adding "ok." (result of the tell-spell) to the
   _SpellendPatterns will cause problems if your creature whispers
   spellresults to you, because whisper returns a "ok." too :( )
More: <cr> -- Stop: 'q' -- 
 
4. "carry bug": If Firgo carries too much he hangs during a spell. Obviously
   He do not recognise 'you carry too much and feel uncomfortable.' I already
   tried to solve this prob, but did not found the bug.
 
   Possible solutions:
   - abort the spell as described above
   - avoid heavy loads for your creature, if you want it to cast a spell
     (its a bad idea to cast with such a load anyway)
 
5. "trust me bug": This is not really a bug, it is just a warning: It's
   possible to make your creature itself a trusted person. You might think
   this is obvious anyway, but there is an important difference: If your
   creature trust itself it can command itself. This might be very useful
   and I will give an example:
   
More: <cr> -- Stop: 'q' -- 
   ccrcall rdb trust:says: talk to me=nod ME;say firgo, output: whisper ME
   
   This rule will cause the creature to order itself to change the output.
   This is only possible if the creature trusts itself.
   
   So far all works very well. A problem occurs if you switch your creature
   to showall mode and the output is say for example. The creature will
   repeat all your orders then and will obey yours as well as itselfs.
   This way it will execute all commands twice, one time for you and one
   time for itself. Listing the rdb might result in even worse misunder-
   standings. The creature will scan the whole rdb for the commandstring
   (like "firgo, ") and will execute all commands after the first occurring
   of the string. Some commands might be nonsense (because they include /
   for example) but some are executed correctly and a single "cenergy ME"
   might be fatal!
   
More: <cr> -- Stop: 'q' -- 
   So I suggest to use whisper as output if your creature is trusted. It
   results only in "ok." and no commands will be triggered. You might even
   want to always whisper the output of the databases, not using the
   contents of _Output at all. Feel free to change this in the call soul
   or ask me if you have a problem with it.
 
 
 
5. Compressed souls.
--------------------
 
(OOC: The followings souls are compiled from the descriptive versions of
chapter 4. Only the souls in this chapter can be used in the game. The
Lines marked with (***) have to be changed. See chapter 6 for details.)
 
----- init 1
More: <cr> -- Stop: 'q' -- 
 
PONERE _0 et "";
PONERE _1 et "say";
PONERE _2 et "";
PONERE _3 et "";
PONERE _4 et "";
PONERE _5 et "";
PONERE _6 et "";
PONERE _7 et "";
PONERE _8 et "";
PONERE _9 et "/";
PONERE _10 et "/";
PONERE _11 et "/";
PONERE _12 et "/";
PONERE _13 et "/";
PONERE _14 et "/";
More: <cr> -- Stop: 'q' -- 
PONERE _15 et "sadly";
PONERE _16 et "comfort ME";
PONERE _17 et "curses";
PONERE _18 et "tell ME don't be so unpolite.";
(***) PONERE _19 et "firgo, ";
PONERE _20 et "false";
PONERE _21 et "off";
PONERE _22 et "";
(***) PONERE _23 et "introduce as Firgo, Ally of Valcaran";
PONERE _24 et "Sorry, have to recast: ";
PONERE _25 et "spell failed...";
PONERE _26 et "spell finished...";
PONERE _27 et "spell aborted...";
PONERE _28 et " Standard output is now '";
PONERE _29 et " Showallmode is now: ";
PONERE _30 et " Sure, I will do as you ordered.";
More: <cr> -- Stop: 'q' -- Tethan shrugs helplessly.
Tethan reads a book titled 'apprentice'.
 
PONERE _31 et " I am sorry, I don't know this person.";
PONERE _32 et " I will follow, if ";
PONERE _33 et "now.";
PONERE _34 et "";
PONERE _35 et "";
PONERE _36 et "";
PONERE _37 et "";
PONERE _38 et "";
PONERE _39 et "";
PONERE _40 et "";
PONERE _41 et "";
PONERE _42 et "";
PONERE _43 et ";";
PONERE _48 et " AND ";
(***) PONERE _49 et "firgo, if ";
PONERE _44 et "growl ME";
More: <cr> -- Stop: 'q' -- 
PONERE _45 et "";
PONERE _46 et "";
PONERE _47 et "nobody leaves ";
IUBERE "save";
IUBERE "say Init 1.";
 
----- init 2
 
AFFERRE _9 et "cast/caware/cward/";
AFFERRE _9 et "cbarrier/cbind/cbreathe/";
AFFERRE _9 et "cconstitution/ccreation/";
AFFERRE _9 et "cdark/cdetect/cdmaster/cdisc/cdispel/";
AFFERRE _9 et "cearthquake/cenchant/cenergy/";
AFFERRE _9 et "cfarsee/cfear/cfeeblemind/cfire/cfireshape/";
AFFERRE _9 et "cfirewall/cflood/cfog/cfood/";
AFFERRE _9 et "cglobe/cheal/";
More: <cr> -- Stop: 'q' -- 
AFFERRE _9 et "cidentify/cinferno/cinvisible/";
AFFERRE _9 et "clight/clightning/";
AFFERRE _9 et "coffview/coracle/";
AFFERRE _9 et "cphoenix/cpreserve/";
AFFERRE _9 et "crecharge/cresist/ctouch/";
AFFERRE _9 et "csee/cselemental/csharpen/cshield/";
AFFERRE _9 et "csilence/cspellbind/cstone/cstorm/";
AFFERRE _9 et "cstrength/cstrengthen/cstrike/cswolf/";
AFFERRE _9 et "ctelec/ctelepathy/cteleport/ctell/";
AFFERRE _9 et "ctouch+/ctransfer/ctravel/cturn/";
AFFERRE _9 et "cward+/cwater/cweaken/cweb/cwind/";
(***) AFFERRE _10 et "/firgo says:/ok./you think/";
AFFERRE _11 et "you fail to keep your concentration.=/";
AFFERRE _11 et "you lost your concentration.=/";
AFFERRE _11 et "you fail to remember the convocation knowledge.=/";
AFFERRE _11 et "you carry too much and feel uncomfortable.=/";
More: <cr> -- Stop: 'q' -- 
AFFERRE _11 et "you fail to break the silence spell.=/";
AFFERRE _11 et "oops, the spells shows no normal effect...";
AFFERRE _11 et "fizzled!=/arg, you can't concentrate anymore.=/";
AFFERRE _12 et "you can't/can't see/cannot see/";
AFFERRE _12 et "you need/but here/";
AFFERRE _13 et "you create/you ward/you heal/with a/";
AFFERRE _13 et "you have/you refill/you surround/you touch/";
AFFERRE _13 et "you strengthened/there is/you make/you are/";
AFFERRE _13 et "you cast/a strong/you tell/you envoke/";
AFFERRE _13 et "you succeed/you feel/you lift/";
AFFERRE _13 et "your eyes/this is/you sent/";
(***) AFFERRE _14 et "valcaran tickles you.=/";
AFFERRE _22 et "01//02//03//04//05//06//07//08//09//10//";
AFFERRE _22 et "11//12//13//14//15//16//17//18//19//20//";
AFFERRE _22 et "21//22//23//24//25//26//27//28//29//30//";
AFFERRE _22 et "31//32//33//34//35//36//37//38//39//40//";
More: <cr> -- Stop: 'q' -- 
AFFERRE _22 et "41//42//43//44//45//46//47//48//49//50//";
AFFERRE _22 et "51//52//53//54//55//56//57//58//59//60//";
AFFERRE _22 et "61//62//63//64//65//66//67//68//69//70//";
AFFERRE _22 et "71//72//73//74//75//76//77//78//79//80//";
AFFERRE _22 et "81//82//83//84//85//86//87//88//89//90";
IUBERE "save";
IUBERE "say Init 2.";
 
----- init 3
 
(***) AFFERRE _7 et "[valcaran/master,mage/my creator]";
AFFERRE _7 et "[grandor/trust,mage/mage guildguard]";
IUBERE "save";
IUBERE "say Init 3.";
 
----- init 4
More: <cr> -- Stop: 'q' -- 
 
AFFERRE _8 et "[entire:/what?=shrug/now you'll only try ";
AFFERRE _8 et "to stun your enemy.=say Ok, I switched to ";
AFFERRE _8 et "stunmode!/now you'll try to kill your ";
AFFERRE _8 et "enemy.=say Ok, switched to killmode!/";
AFFERRE _8 et "grandor leaves in a puff of smoke.=block ";
AFFERRE _8 et "east/grandor arrives in a puff of smoke.=";
AFFERRE _8 et "block/you changed your fighting ";
AFFERRE _8 et "mood.=say Mood changed./]";
AFFERRE _8 et "[master:/introduces himself as:=introduce ";
AFFERRE _8 et "me/]";
AFFERRE _8 et "[trust:/smiles and greets you!=say Hi ME, ";
AFFERRE _8 et "my friend!/invites you to join his team.=";
AFFERRE _8 et "leave;join ME/invites you to join her ";
AFFERRE _8 et "team.=leave;join ME/attacks you!=mood ";
AFFERRE _8 et "defend;shout Stop! Why do you attack me, ";
More: <cr> -- Stop: 'q' -- 
AFFERRE _8 et "ME?/waves happily in your direction.=wave ";
AFFERRE _8 et "ME;say bye, my friend./]";
AFFERRE _8 et "[default:/invites you to join his team.=";
AFFERRE _8 et "say I am sorry Sir, but my master told me ";
AFFERRE _8 et "not to join everyone./invites you to join ";
AFFERRE _8 et "her team.=say I am sorry Mylady, but my ";
AFFERRE _8 et "master told me not to join everyone./";
AFFERRE _8 et "smiles and greets you!=greet ME/]";
IUBERE "save";
IUBERE "say Init 4.";
 
----- call
 
IUBERE _23;
PONERE _0 et "";
SI onis aequus "return";
More: <cr> -- Stop: 'q' -- 
IUBERE "say Sorry, my master is calling...";
IUBERE "wave all hast";
PONERE _0 et "Here i am master!";
IUBERE "home";
FINIS;
SI onis aequus "adb";
PONERE _3 et "[";
INVENIRE "/" et duo;
SI numerus aequus 1;
PONERE _0 et "Entry [";
AFFERRE _3 et ante et "/";
PONERE _34 et post;
INVENIRE _3 et _7;
SI numerus aequus 1;
PONERE _7 et ante;
INVENIRE "]" et post;
More: <cr> -- Stop: 'q' -- 
SI _34 aequus ".";
AFFERRE _7 et post;
AFFERRE _0 et duo et "] deleted.";
ALITER;
AFFERRE _7 et "[" et duo et "]" et post;
AFFERRE _0 et duo et "] changed.";
FINIS;
ALITER;
SI _34 aequus ".";
AFFERRE _0 et duo et "] not found.";
ALITER;
AFFERRE _7 et "[" et duo et "]\n";
AFFERRE _0 et duo et "] added.";
FINIS;
FINIS;
ALITER;
More: <cr> -- Stop: 'q' -- 
AFFERRE _0 et "'/' is missing!";
FINIS;
FINIS;
SI onis aequus "rdb";
PONERE _45 et "[";
INVENIRE ":" et duo;
SI numerus aequus 1;
AFFERRE _0 et "Entry [";
AFFERRE _45 et ante et ":";
PONERE _35 et post;
INVENIRE _45 et _8;
SI numerus aequus 1;
PONERE _8 et ante;
INVENIRE "]" et post;
PONERE _36 et ante;
PONERE _37 et post;
More: <cr> -- Stop: 'q' -- 
SI _35 aequus ".";
AFFERRE _8 et post;
AFFERRE _0 et duo et "] deleted.";
ALITER;
INVENIRE "=" et _35;
SI numerus aequus 1;
PONERE _38 et "/";
AFFERRE _38 et ante et "=";
PONERE _39 et post;
INVENIRE _38 et _36;
SI numerus aequus 1;
PONERE _36 et ante;
INVENIRE "/" et post;
SI _39 aequus ".";
AFFERRE _36 et "/" et post;
AFFERRE _0 et duo et "] deleted.";
More: <cr> -- Stop: 'q' -- 
ALITER;
AFFERRE _36 et "/" et _35 et "/" et post;
AFFERRE _0 et duo et "] changed.";
FINIS;
ALITER;
AFFERRE _36 et _35 et "/";
AFFERRE _0 et duo et "] added.";
FINIS;
ALITER;
PONERE _0 et "'=' is missing!";
FINIS;
AFFERRE _8 et _45 et _36 et "]" et _37;
FINIS;
ALITER;
AFFERRE _8 et _45 et "/" et _35 et "/" et "]";
AFFERRE _0 et duo et "] added.";
More: <cr> -- Stop: 'q' -- 
FINIS;
ALITER;
AFFERRE _0 et duo et "':' is missing!";
FINIS;
FINIS;
SI onis aequus "list";
PONERE _0 et "What shall I list?";
SI duo aequus "adb";
PONERE _0 et _7;
FINIS;
SI duo aequus "rdb";
PONERE _0 et _8;
FINIS;
SI duo aequus "todo";
PONERE _0 et _41;
FINIS;
More: <cr> -- Stop: 'q' -- 
SI duo aequus "spells";
PONERE _0 et _9;
FINIS;
SI duo aequus "recast";
PONERE _0 et _11;
FINIS;
SI duo aequus "fail";
PONERE _0 et _12;
FINIS;
SI duo aequus "spellend";
PONERE _0 et _13;
FINIS;
SI duo aequus "spellabort";
PONERE _0 et _14;
FINIS;
SI duo aequus "memory";
More: <cr> -- Stop: 'q' -- 
PONERE _0 et _22;
FINIS;
FINIS;
SI onis aequus "enemy";
PONERE _44 et duo;
PONERE _0 et "Enemy action is now: ";
AFFERRE _0 et _44;
FINIS;
SI onis aequus "if";
INVENIRE " then " et duo;
SI numerus aequus 1;
AFFERRE _0 et _30;
PONERE _17 et ante;
PONERE _18 et post;
FINIS;
FINIS;
More: <cr> -- Stop: 'q' -- 
SI onis aequus "whois";
PONERE _3 et "[";
AFFERRE _3 et duo et "/";
INVENIRE _3 et _7;
SI numerus aequus 1;
INVENIRE "]" et post;
AFFERRE _0 et ante;
ALITER;
AFFERRE _0 et _31;
FINIS;
FINIS;
SI onis aequus "memreset";
PONERE _22 et "01//02//03//04//05//06//07//08//09//10//";
AFFERRE _22 et "11//12//13//14//15//16//17//18//19//20//";
AFFERRE _22 et "21//22//23//24//25//26//27//28//29//30//";
AFFERRE _22 et "31//32//33//34//35//36//37//38//39//40//";
More: <cr> -- Stop: 'q' -- 
AFFERRE _22 et "41//42//43//44//45//46//47//48//49//50//";
AFFERRE _22 et "51//52//53//54//55//56//57//58//59//60//";
AFFERRE _22 et "61//62//63//64//65//66//67//68//69//70//";
AFFERRE _22 et "71//72//73//74//75//76//77//78//79//80//";
AFFERRE _22 et "81//82//83//84//85//86//87//88//89//90";
PONERE _0 et "Memory reset...";
FINIS;
SI onis aequus "spellend";
PONERE _6 et "/";
AFFERRE _6 et duo et "/";
PONERE _0 et duo;
INVENIRE _6 et _13;
SI numerus aequus 1;
PONERE _13 et ante;
AFFERRE _13 et "/" et post;
AFFERRE _0 et " deleted.";
More: <cr> -- Stop: 'q' -- 
ALITER;
AFFERRE _13 et duo et "/";
AFFERRE _0 et " added.";
FINIS;
FINIS;
SI onis aequus "spellabort";
PONERE _2 et "/";
AFFERRE _2 et duo et "=/";
PONERE _0 et duo;
INVENIRE _2 et _14;
SI numerus aequus 1;
PONERE _14 et ante;
AFFERRE _14 et "/" et post;
AFFERRE _0 et " deleted.";
ALITER;
AFFERRE _14 et duo et "=/";
More: <cr> -- Stop: 'q' -- 
AFFERRE _0 et " added.";
FINIS;
FINIS;
SI _0 aequus "";
IUBERE onis et duo;
ALITER;
IUBERE _1 et _0;
IUBERE "save";
FINIS;
PONERE _20 et "false";
PONERE _41 et "";
 
----- brain
 
PONERE _2 et "/";
AFFERRE _2 et oratio et "=";
More: <cr> -- Stop: 'q' -- 
PONERE _6 et "/";
INVENIRE " " et oratio;
SI numerus aequus 1;
AFFERRE _6 et ante;
INVENIRE " " et post;
SI numerus aequus 1;
AFFERRE _6 et " " et ante et "/";
ALITER;
AFFERRE _6 et " " et post;
FINIS;
ALITER;
AFFERRE _6 et oratio;
FINIS;
INVENIRE _6 et _10;
SI numerus aequus 0;
INVENIRE "//" et _22;
More: <cr> -- Stop: 'q' -- 
Mystra whispers in ancient language: if you changed all firgo to star, then
your creature will respond to star, <command>
PONERE _22 et post;
AFFERRE _22 et "//" et oratio;
SI _21 aequus "on";
IUBERE _1 et oratio;
FINIS;
FINIS;
SI _20 aequus "true";
INVENIRE _2 et _11;
SI numerus aequus 1;
PONERE _0 et _24;
AFFERRE _0 et _40;
IUBERE _1 et _0;
IUBERE _40;
FINIS;
INVENIRE _6 et _12;
SI numerus aequus 1;
More: <cr> -- Stop: 'q' -- 
PONERE _20 et "false";
IUBERE _1 et _25;
FINIS;
INVENIRE _6 et _13;
SI numerus aequus 1;
PONERE _20 et "false";
IUBERE _1 et _26;
FINIS;
INVENIRE _2 et _14;
SI numerus aequus 1;
PONERE _20 et "false";
IUBERE _1 et _27;
FINIS;
ALITER;
SI _41 aequus "";
PONERE _3 et "[";
More: <cr> -- Stop: 'q' -- 
PONERE _5 et "/";
SI activus aequus 0;
INVENIRE " " et oratio;
SI numerus aequus 1;
AFFERRE _3 et ante et "/";
PONERE _4 et ante;
ALITER;
AFFERRE _3 et oratio et "/";
PONERE _4 et oratio;
FINIS;
ALITER;
AFFERRE _3 et activus et "/";
PONERE _4 et activus;
INVENIRE activus et oratio;
INVENIRE " " et post;
FINIS;
More: <cr> -- Stop: 'q' -- 
AFFERRE _5 et post et "=";
INVENIRE "[entire:" et _8;
INVENIRE "]" et post;
INVENIRE _2 et ante;
SI numerus aequus 1;
INVENIRE "/" et post;
AFFERRE _41 et ante et _43;
ALITER;
PONERE _45 et "[";
INVENIRE _3 et _7;
SI numerus aequus 1;
INVENIRE "/" et post;
AFFERRE _45 et ante;
INVENIRE "," et _45;
SI numerus aequus 1;
PONERE _45 et ante;
More: <cr> -- Stop: 'q' -- 
FINIS;
FINIS;
AFFERRE _45 et ":";
SI _45 aequus "[enemy:";
AFFERRE _41 et _44 et _43;
FINIS;
PONERE _46 et "";
SI _45 aequus "[master:";
INVENIRE _45 et _8;
INVENIRE "]" et post;
AFFERRE _46 et ante;
PONERE _45 et "[trust:";
FINIS;
INVENIRE _45 et _8;
SI numerus aequus 1;
INVENIRE "]" et post;
More: <cr> -- Stop: 'q' -- 
AFFERRE _46 et ante;
FINIS;
INVENIRE "[default:" et _8;
INVENIRE "]" et post;
AFFERRE _46 et ante;
INVENIRE _5 et _46;
SI numerus aequus 1;
INVENIRE "/" et post;
AFFERRE _41 et ante et _43;
ALITER;
SI _45 aequus "[trust:";
INVENIRE _19 et Oratio;
SI numerus aequus 1;
AFFERRE _41 et post et _43;
FINIS;
FINIS;
More: <cr> -- Stop: 'q' -- 
FINIS;
FINIS;
FINIS;
INVENIRE _47 et oratio;
SI numerus aequus 1;
SI ante aequus "";
INVENIRE "." et post;
AFFERRE _41 et ante et _43;
FINIS;
FINIS;
INVENIRE _49 et oratio;
SI numerus aequus 0;
INVENIRE _15 et oratio;
SI numerus aequus 1;
AFFERRE _41 et _16 et _43;
FINIS;
More: <cr> -- Stop: 'q' -- 
INVENIRE _17 et oratio;
SI numerus aequus 1;
AFFERRE _41 et _18 et _43;
FINIS;
FINIS;
INVENIRE _43 et _41;
SI numerus aequus 1;
PONERE _41 et post;
PONERE _42 et ante;
INVENIRE "if " et _42;
SI numerus aequus 1;
INVENIRE " then " et post;
SI numerus aequus 1;
PONERE _15 et ante;
PONERE _16 et post;
IUBERE _1 et _30;
More: <cr> -- Stop: 'q' -- 
REDITUS;
FINIS;
FINIS;
INVENIRE _48 et _42;
SI numerus aequus 1;
PONERE _42 et post;
AFFERRE _42 et _43 et _41;
PONERE _41 et _42;
PONERE _42 et ante;
FINIS;
INVENIRE "ME" et _42;
SI numerus aequus 1;
PONERE _42 et ante;
AFFERRE _42 et _4 et post;
FINIS;
PONERE _40 et "/";
More: <cr> -- Stop: 'q' -- Mystra whispers in ancient language: star, hop
 
INVENIRE " " et _42;
SI numerus aequus 1;
AFFERRE _40 et ante et "/";
ALITER;
AFFERRE _40 et _42 et "/";
FINIS;
INVENIRE _40 et _9;
SI numerus aequus 1;
PONERE _40 et _42;
PONERE _20 et "true";
FINIS;
PONERE _0 et "";
INVENIRE "output: " et _42;
SI numerus aequus 1;
PONERE _1 et post;
AFFERRE _0 et _1 et _28 et _1 et "'";
More: <cr> -- Stop: 'q' -- 
FINIS;
INVENIRE "showall: " et _42;
SI numerus aequus 1;
PONERE _21 et post;
AFFERRE _0 et _1 et _29 et _21;
FINIS;
INVENIRE "follow: " et _42;
SI numerus aequus 1;
PONERE _47 et post;
AFFERRE _0 et _1 et _32 et _47 et _33;
FINIS;
SI _0 aequus "";
PONERE _0 et _42;
FINIS;
IUBERE _0;
FINIS;
More: <cr> -- Stop: 'q' -- 
FINIS;
 
 
 
6. How to summon similar beings.
--------------------------------
 
This is a detailed step by step description of the summoning procedure. It
is divided into two parts. The first part is used only once. For the daily
summoning the second part is performed.
 
(OOC: Excuse the use of some ooc-expressions like 'editor' or 'file')
 
 
 
6.1. First summoning.
More: <cr> -- Stop: 'q' -- 
---------------------
 
Step 1.  (Required)
         Copy the contents of this book (or at least chapter 5) to a location
         where you have write access. A file in your homedirectory will work
         fine. Do the following changes with your favoured editor on this new
         file. You can also copy the souls to the xyllomer-editor (soul
         brain|call) and make the changes within. But this is not recommended.
         
       ! All changes are made in the compressed souls of chapter 5 and only
         these souls are copied to the xyllomer editor.
         
         Note: If you are told in one of the steps below to copy a soul to
         the xyllomer editor, you have to delete any existing soul in the
         editor first. Don't just add the soul to the existing one.
 
More: <cr> -- Stop: 'q' -- 
Step 2.  (Required)
         Change the lines marked with (***) and remove (***) thereafter:
 
         - Replace "firgo, " by a string of your choice. The pattern is
           used by the creature as an indicator to interpret all after it
           as a command. Typical examples for the pattern are: "<name>, ",
           "<name> please do " or just "please ".
         - Choose another intro-string in the line with 'introduce as'.
           The string in this variable is used by the creature to introduce
           itself. The string is executed each time the call soul is called.
           After each summoning the call soul has to be called once, because
           the intro information is not stored. (perhaps Quo can change this
           *smile hopefully*)
         - Replace "firgo, if " by the string you used to replace "firgo, "
           above plus "if ". For example if you used "please " above use
           "please if " here.
More: <cr> -- Stop: 'q' -- 
         - Replace "firgo says:" by "<name> says:" where <name> is the name
           of the creature (the name you will give after ccreature is relevant
           here, the creature may introduce itself as someone else).
         - Replace "valcaran says: firgo, abort" by a pattern of your choice.
           The pattern is used to break the spell-loop. You can also add
           more then one pattern here.
          
           Example: "valcaran says: firgo, STOP=/valcaran sighs helplessly=/"
 
           Always add "=/" after the pattern.
         - Replace "valcaran" by your name in lowercase here. The first group
           (string between "/" and "," after your name) must be "master" or
           "trust" or the creature won't obey you. There is no "ccrcall obey
           <name>". If you want that the creature shall obey someone else
           use "ccrcall adb <name>/trust/" (see 3.1. Call commands.) when
           the creature is fully configured.
More: <cr> -- Stop: 'q' -- 
 
Step 3.  (Optional)
         If you have problems to type commands including an ";" (zmud user) you
         can change variable _43 (init soul 1) to " and " to use commands in a
         row. Instead of "say creature, hop;smile ME;rest" you have to type
         "say creature, hop and smile ME and rest". Note that variable _43 and
         _48 must have different values. Variable _48 is used to separate
         commands in if-actions.
 
Step 4.  (Optional/Recommended)
         Checkout the other string variables in the init-soul 1 (variables _24
         to _33) and change them to individualise your creature. Important:
         Keep any preceding spaces.
 
Step 5.  (Required)
         Do a "soul brain" and copy the brain soul into the xyllomer editor.
More: <cr> -- Stop: 'q' -- 
         
Step 6.  (Required)
         Execute "compose brain".
         
Step 7.  (Required)
         Do a "ccreature" and answer with "n".
 
Step 8.  (Required)
         Give the name and description of the creature.
         - Note that the order of the attributes will be changed. If you want
           "a ball-like flaming neuter creature" type "flaming,ball-like".
         - Use "/n" as a new line in the long description. Don't forget one
           at the end of the description.
 
Step 9.  (Required)
         Remember the creature and execute "add <name>".
More: <cr> -- Stop: 'q' -- 
         
         Note: Do this fast, the creature cannot survive long without a soul.
         You can also use the description as the name or just do a "add
         creature" but don't use the last method if there are other creatures
         present, you might add the soul to a wrong creature.
         
         (It might be possible to control another creature this way but
         this is considered cheating, I bet - and should be changed by the
         wizards as soon as possible. I never tried to add the souls to
         other npcs or players, but I hope this is not possible ;) )
 
Step 10. (Required)
         For each of the init souls make the following steps: (exactly once!)
 
         Step 10a. do a "soul call" and copy the init soul into the xyllomer
                   editor.
More: <cr> -- Stop: 'q' -- 
         Step 10b. compose and add the call soul
         Step 10c. call your creature (any parameter is valid)
        
         If you call any init soul twice start with the first init soul again.
 
Step 11. (Required)
         Do a "soul call" and copy the call soul into the xyllomer editor.
 
Step 12. (Required)
         Execute "compose call" and "add <name>".
 
Step 13. (Optional/Recommended)
         Call your creature once ("ccrcall nod", for example) to execute the
         introduce command.
 
         (Optional/Not recommended)
More: <cr> -- Stop: 'q' -- 
         If you like you can order the introduce command explicitly. But it
         will be changed each time you call your creature, if you don't
         remove the first line of the call soul.
 
Step 14. (Optional/Recommended)
         Add some names and reactions to the database (see 3.1. Call commands.)
 
 
 
6.2. Daily summoning.
---------------------
 
Step 1. (Required)
        Do a "ccreature" and answer with anything but "n".
 
Step 2. (Required)
More: <cr> -- Stop: 'q' -- 
        Execute "add <name>".
 
Step 3. (Optional/Recommended)
        Call the creature (see Step 13 above).
 
 
 
7. How to save the memory.
--------------------------
 
Replace the call soul by the following soul and compose, add and call it.
 
PONERE _90 et _6;
PONERE _91 et _7;
IUBERE "save";
IUBERE "say adb and rdb saved...";
More: <cr> -- Stop: 'q' -- 
 
Do all steps described in 6.1. First summoning.
 
Replace the call soul by the following soul and compose, add and call it.
 
PONERE _7 et _90;
PONERE _8 et _91;
PONERE _90 et "";
PONERE _91 et "";
IUBERE "save";
IUBERE "say old adb and rdb restored...";
 
Restore the call soul (see 6.1. Step 11 & 12)
 
 
 
More: <cr> -- Stop: 'q' -- 
 
If you have any suggestions or problems with this soul (other bugs or even
other solutions), please mail me (valcaran) or send me a tell.
 
Have fun with your new creature!
> 
