Shardak Guild Overview Part III

Changes made since I received the guild, and ongoing changes.

Written (verbosely) by Earwax 7/23/03

----------------------------------------------------------------------------

- Note: all paths, filenames are given from the root directory.
  /players/earwax/closed/shardak is the guild root dir. 

- No changes at all have been made to anything involving combat.  I have
  changed no numbers, changed no stats, made no changes whatsoever to the
  actual combat ability of the guild members, or changed player files at
  all in any regard other than renaming some (dazed), to affect combat.
  I've tested most of the spells to make sure everything was working 
  correctly, but have not changed anything to do with combat at all yet.
  Any changes I make having to do with combat in any way will be 
  specifically submitted for approval before going in. - Earwax

- Changed path names, some definitions, modified the guild object and the
  autoload object (loads the guild object to the player) in order to get 
  the guild working in my directory, and get the guild wizzes in as actual
  guild wizzes. - Earwax

- ANSI color codes added to the room files, objects, monsters, and a few
  other areas. - Linus.

- Disabled the 'ally' command. - Earwax

- Disabled the 'inactive' command. - Earwax

- Removed various code autopromoting players, demoting, etc.  Made Dazed and
  Worm banned members (despite their banishments).  Changed their .o files 
  so they can't be added with their old files, and put code in to prevent
  banned members from rejoining the guild. - Earwax

- Coded a hierarchy daemon.  This daemon tracks the guild members, and 
  automatically updates the guild hierarchy when changes are made.  The old
  one had to be manually updated.  Added 'hierarchy' command to view the
  hierarchy, and changed the 'servants' command to call the daemon.  This
  daemon is called by the joinroom, guild promote command, and in the guild
  object in it's init(), and in the leave-guild code, to make sure that it
  updates properly in all ways of having players added to the guild,
  (including if a guild object is simply cloned onto a player, as will be
  the case with reinstating former members).  Daemon saves the changes to
  a .o file in the daemons/save directory. - Earwax

- Moved the various includes (all 7 or so of the primary ones), to a new
  directory, include/  This is so there are fewer files in the root
  directory, and to make things a little simpler.  This way, all the 
  includes are in one directory, so they are simple to find.  Not a major
  change, just a personal quirk, I like everything in appropriate dirs, and
  to have as few files as possible cluttering up the root dir.  Just the
  guild object, autoloader for the guild object, and nothing else, 
  preferably.  I'll eventually go through and sort through the includes,
  change them to inherits where appropriate, and consolidate them into just
  one or two includes for definitions, and an ansi file. -Earwax

- Added an inheritable to the Shard include directory.  This inheritable
  mainly has ANSI formatting functions, and a few other things like line
  wrap.  Not much use them yet, but they'll eventually be part of a few
  of the daemons, commands, and the guildhall room inheritable I'm in the
  process of writing.  The file is include/waxfuns.c - Earwax

- Changed the command hook and the command include to both check for the
  player to have pk set to use any commands.  I'm going to redo the daemon
  that returns the mapping of commands and their locations so that Shards
  can still use the guild emotes and standard commands (hierarchy, guild
  who, so on and so forth), as well as to allow us to have the commands
  directory subdivided into emotes, standard commands, and powers, just to
  make navigating easier.  That's a work in progress, however. - Earwax

- Made miscellaneous changes to the guild object.  I'm changing the heart
  beat, because currently it checks for all kinds of things, and it 
  shouldn't be checking for the presence of 4 different things, on top of
  doing it every single heartbeat along with sacrifice code.  I'll be 
  changing how sacrifices are done, for more frequency, but daemonizing it
  so that there are minimal computations from the heartbeat function.
  - Earwax

- Added tracking on cloning of the guild object.  I want to be able to track
  who is cloning a guild object to who, since we'll be having reimbursements
  and I want to make sure that if players are added to the guild, they were
  members at the time of the guild closing, or they have to start from 
  scratch, as well as going through the joining sequence.  Also tracking and
  logging wizards who clone the object to themselves, I want to know who's
  checking on us, although I'll put a level check in for wizards >= level 
  1000 if you want.  Now that I'm happy that the guild object is stable, 
  there is no reason for a guild wiz to be cloning the object to themselves.
  - Earwax

- Various changes to daemons and commands for simplicity purposes.  I have a
  couple newbie wizards working with me on things, (not that I'm not a level
  21 as well, I just have a little coding knowledge) and while they are 
  mainly dealing with atmosphere and such right now, they'll probably have
  to work on things at some point.  Balowski, Dragnar, and Vertebraker are
  great coders, from everything I've seen, but it's not the easiest code for
  a newbie to navigate, so I'm documenting a lot of the code, and 
  simplifying some of the minor things.  The more complex code is fun to
  work with, actually, and they'll learn a ton from it :) - Earwax

- Recoded the portal room.  Removed the inheritable so I could get item
  descriptions to work, and made it so that Shards go to the intended room,
  but non-Shards get teleported to one of 10 random rooms.  All the rooms
  that can be portaled to are non-lethal rooms, just for the most part in
  annoying places.  The entrance to fiendsville is one, qurds is another, 
  rooms like that, where the player can get out, but some are pk rooms, 
  and none should have aggressives in them.  Just something annoying.  Also
  adding a 'hunt' portal that will save the last location a non-shard was
  randomly teleported to, so Shards can run through and attack the invader.
  - Earwax and Linus

- Added a room inheritable for the guildhall.  They were previously 
  inheriting room inheritables from Balowski and Dragnar, and there were
  minor problems with things like item descriptions (already existed before
  I had the guild), and a few other things, and there were enough traits
  for the rooms in general to make it worth doing an inheritable.  This
  inheritable is in /players/earwax/closed/shardak/include/ghall.c
  What it does is listed there, but in a nutshell:
  - Correct short shows for Shards, but shows 'The Grotto' for anyone else,
    with the exception of dark rooms, which I put the appropriate checks in
    for.
  - Exits only show in the long description for Shards.  You can still read
    the description and figure out where the exits are of course, but the
    nice condensed version only shows for Shards themselves.  This will not
    really affect the better pkers, they already know the guild inside and
    out.
  - Added room echoes for invaders.  Every few heartbeats they will get a
    taunting room echo.
  - Additional room echoes for non-pk invaders.  They will only be able to
    get in through a teleport device set to the one teleport room in the 
    guild hall, or by following someone and them running to that room, but
    it will happen, and it's just extra atmosphere :)
  - I'd LIKE to add a 1 hp damage other|evil every few heartbeats, or every
    heartbeat, if I can, to invaders, just to discourage sitting in the 
    logon room for an hour or more, as even my own non-shards have been wont
    to do.  Not enough damage to hurt, but after 50 heartbeats, that's a 
    heal charge worth of damage.  Just enough to discourage sitting there
    forever, plus I'm not willing to make the login room safe, like the
    cybers and knights have done, it's simply not original or thematic at
    this point in my eyes.
  - Added item descriptions to the rooms.  The wizard can use a function
    add_item("item","description") or add_item("item","functiontocall) in 
    order to set up an item description for things to look at in the rooms.
    This didn't work with the previous inheritables.
  - All setable traits of the rooms can be called as a function or passed a 
    string just like add_item.  It looks for the function to exist first,
    if so it uses it, if not, it slaps out the description.  Probably not
    necessary to go through all that, but better safe than sorry I've found
    working with this lib, I'm just not familiar enough with all the quirks
    yet.
  - All rooms by default are pk rooms, and non-teleport/non-follow.  The
    exception to the non-teleport/non-follow is the merchant.
  - The items and room exits run off mappings in the inheritable, not sure
    if it's an issue, but I have hunt code usable in my other inheritable
    for my area, and I can easily code up hunt code for the rooms that use
    the standard inheritables (verte's and /room/room.c) I imagine, as they
    run off arrays.  I imagine there may conceivably be such things out 
    there, and I'm protecting against them, not to mention that mappings are
    just really easy to work with for what I'm doing.
  - Still inherits /room/room.c so the standard enviromental checks (pk,
    non-teleport, etc) will still be the same, and I have the checks in my
    override for look, to check for light, and nightvision, etc, so it 
    should be completely compatible.
  - Sorry this is so long, but I wanted to be thorough :)  I'd rather you 
    not get pissed off because I didn't mention something accidentally.
  - Earwax

- Removed the senior room and class.  Not necessary anymore since we'll all
  be pk, at all times, but I may change that later on, and readd it for 
  players who are not only questing, but have shown at least a fair amount 
  of progress already. - Earwax

- Revamping of some of the help files.  There will be a new command for the
  help files, 'shardak' although we'll leave the old help files in for now.
  I personally hate how fragmented and unclear a lot of things are, and 
  we'll be putting in new files on theme, rules, etc, as well as changing
  sacrifice and a few other things, so we'll just phase the old help files
  out as we go.  - Earwax and Mosobp

- In the process of writing a new pk tracker, for use in Jareel's Legends
  area (for PK legends) with a hopefully more realistic points tracking 
  system than MK Scar and Shards use.  The current PK lists will be still
  viewable in the divine room, but new PKs will be tracked on the new 
  tracker only, to standardize things, as well as track a few other stats
  for a future PK Hall of Fame area either myself, Mosobp, Linus, or Jareel
  may do.  (Probably me, but if one of them wants to do it I'll help code 
  it).  When the object is ready for approval, either I'll submit it or
  Jareel will, as we'll both be using it, and it will be available to all
  players.  It's mostly done, I just need to FTP it up and run it through a
  lot of testing, and probably debugging/tweaking.  It's basically a small
  object with a heartbeat to check for PK death (like the MK Scar), ran off
  a daemon.  - Earwax

- Adding a second portal room (in from the current one), with guildhall
  locations for a few of the more commonly attacked guild halls, and just
  to add a bit of variety.  They'll be to the entrance rooms of Knights,
  Black Circle Mages, Necromancers, Dervish, CyberNinja, and whatever other
  common opponents we'll have.  None of them will be portals into the actual
  guildhalls, just to where the players can get on their own devices.  
  Mostly it's just a convenience thing, Black Circles are in a rather remote
  area, so it'd be a fast way to the ferrets, and such.

- Require players to be pk to enter the guildhall.  Right now, it just
  checks their alignment, but I'm also going to add a check for PK to be 
  set.  We're a purely PK guild, so it makes sense, not to mention the fact
  that players can still get in if they want, as there is a teleport/follow
  room within the guildhall that some players know about, and I have no 
  plans right now to change that.  If at some point I want to remove that
  teleport/follow trait, I'll seek specific approval for it, but I see no
  reason to discourage smart play in this instance.  This will be coded into
  the actual entrance to the guild, which will be in my castle.c when the
  guild is approved and ready to open. -Earwax
