March 2015 Changelog

EmpireMUD 2.0 alpha Change Log

March 31, 2015

  • Item scaling: Fixed a bug where low-level items could scale to zero points.
  • Mount: You can now mount indoors, even if you couldn’t ride into the location, in order to allow players to pick up or swap mounts in places they otherwise couldn’t.
  • Death: Players will now automatically dismount when they die.
  • Slay: The immortal slay command will now tag the mob before killing it.
  • Death: Fixed bad “reverts” message on death — this was showing on all player deaths.
  • Auto-kill: Added more code to avoid being able to keep hitting an incapacitated victim when auto-kill is off, which has been exploited to level combat abilities.
  • Block: Fixed a color leak.
  • Slay: Added level restriction.
  • Wizutil: Added stricter level restriction.
  • Set: Applied level check to players who are online (previously it only checked on offline players for some reason).
  • Whois: Fixed a bug where offline players were not showing lore.
  • Ancient Blood: Vampires with this ability now get twice as much blood per tick while biting, and twice as much total blood from each victim.
  • Improved Identify: Removed this ability; all players can now get full identify information on items.
  • Slash-channels: Muted slash channel join messages when a player uses “alternate”.
  • Stunned: This AFF flag no longer prevents commands whose minimum position is less than “sleeping”.
  • Staked: Now allows commands whose minimum position is less than “sleeping”, and immortals are also not prevented from acting.
  • Death tracking: Added death time/count tracker ahead of adding death penalties.

March 30, 2015

  • Map: Fixed the graphical map output data for the partially-loaded world system. Also combined the loops for the regular map and political map to avoid a second whole-world iteration.
  • Crops: Check for missing crop type on load, and assign a crop if so.
  • Mapout: Changed the old “mapout icon” system to a color selector chosen on sector/crop, and changed which icons are used in the mapout files.

March 29, 2015

  • RAM: Empty ocean tiles are no longer kept in memory or saved to file. They are loaded as they are requested and extra ones are deleted randomly over time. The biggest consequence is that the instancing code won’t be able to spawn instances on ocean tiles. Initial RAM reduction on the 800×600 40% ocean world is 55MB at startup.
  • Room deletion: Added a room deletion mode that doesn’t iterate over exits until after several rooms are deleted, to speed up things like zone instance cleanup and ocean deletion.
  • Mob flags: Renamed the HARDER flag to GROUP since it’s meant to indicate the mob requires a group.
  • Command: No longer works on mobs flagged HARD or GROUP.
  • Claws: This ability now gains experience when used in combat, not just on activation.
  • Flee: This command can no longer be abbreviated, so “fl” isn’t ambiguously fly or flee depending on whether you have Fly.
  • Item scaling: The ARMOR item type now affects scale points, since it requires special abilities to use.
  • Combat: The heal, vigor, foresight, cleanse, purify, rejuvenate, and hasten abilities will now draw the user into combat if the target is in combat. Having any player who is affecting the fight be in-combat helps scripts determine who is on which side.
  • Debuffs: Changed the !BASH mob flag to !BATTLE; it now affects all debuffs from Battle. Added !HIGH-SORCERY, !NATURAL-MAGIC, !STEALTH, and !VAMPIRE flags for debuffs from other skill trees. In some cases, such as Bash, the ability will go through and deal any damage, but the debuff won’t apply.

March 26, 2015

  • Bind-on-Pickup: Fixed a bug where BoP items weren’t reducing the number of people they are bound to upon equipping.
  • Summon: Fixed a bug where summon costs were charged and cooldowns set before validation was complete. Also moved summon from act.vampire.c to act.other.c.

March 25, 2015

  • Item scaling: Added scaling-by-flag and gave more flags scaling effects; removed the diminishing returns after 100.
  • Movement: Fixed a bug where people already inside a building that they don’t have permission to enter, could not proceed further into the building.

March 24, 2015

  • Resurrect: Added a new class ability that raises the dead, to 6 Natural Magic classes.
  • Moonrise: Added a new class ability that raises the dead even in combat, to Shadow Wolf.
  • Last name: Added an explicit note to the last name confirmation step when the first letter of the last name is lowercase.
  • Scripting: Added weather info to scripts.

March 23, 2015

  • Mobs: Fixed a bug where mobs could be added to the mob hash table without a readable vnum, in several places. It was also possible for a new mob to not load correctly after a reboot if it was the only mob in its 100-vnum block.
  • Nearby: Now shows adventures of all levels, and indicates level range.
  • Screen-reader map: Added tile stacking when not in political or informative mode, so identical map tiles show as “4x Forest” instead of “Forest, Forest, Forest, Forest”.

March 22, 2015

  • Alternate: Fixed a bug where the original character wasn’t able to be saved during the alternate process.
  • Where: This command no longer finds mobs in adventures if the player is not in the same adventure.

March 21, 2015

  • Sated/Unnatural Thirst: Added a short-circuit in gain_condition() for people who can’t get hungrier or more thirsty, to prevent them from accidentally getting hungrier or more thirsty.
  • Alacrity: Added missing command interpreter data.
  • can_use_room: Added explicit difference between MEMBERS_ONLY and new MEMBERS_AND_ALLIES; previously the former included allies.

March 19, 2015

  • Plains: Renamed “fields”, which has always been a misnomer. This also avoids confusion with “seeded fields”.
  • Idle-out: Added an imm toggle that prevents idle-out.
  • Command: Added a level check to this vampire ability to prevent vampires from using it to kill adventure mobs.

March 18, 2015

  • Identify: Now shows where items can be stored.
  • can_afford_coins: Fixed a crash bug that occurred when a player needed to use certain coins to afford a price.
  • Release: Now removing the “release” cooldown when a player respawns.
  • Alt: Added a new command for rapid-switching between alts.

March 17, 2015

  • New: Typing “new” at the player login screen now triggers a “Enter new name” instead of trying to log in a character named “new”.
  • selfdelete: Added a new in-game command for deleting your character.
  • Character deletion: New function centralizes character deletion, called by the selfdelete command and “set <name> deleted”.
  • changepass: Added an in-game command for changing your password.
  • Background: Removed the “Hear the tale” / “background” menu option and related data.
  • Main menu: Removed the menu entirely. Pressing “enter” at the MOTD now sends the player straight into the game.
  • Empire storage: Fixed a recent bug where new empires weren’t able to save their storage.
  • Affects and DoTs: Added bounds checking to saving and loading affects and dots after seeing a crash caused by a player with bad dot data.

March 16, 2015

  • Death: Changed what happens when players die. They now lie on the ground dead up to 5 minutes, or until they type “release”, and then they respawn directly with no menu step in-between. Dead players cannot be attacked, healed, damaged, or otherwise affected by anything useful. Dead players may not be targeted by scripts.
  • Extraction: Renamed the flags and macro used by the extraction system from NOTDEADYET/DEAD, to avoid confusion with dead players.
  • Commands: Updated the position requirements on some commands based on POS_DEAD players still being in-game now.
  • Messaging: Dead players can now receive messages normally reserved for “awake” players.
  • Release: New command respawns a dead player.
  • Quit: Quitting no longer returns you to the main menu. It disconnects now you entirely.

March 15, 2015

  • Inventory flags: Changed how object flags are displayed on inventory items, and added flags for object binding.
  • Object binding: Completed work on object binding; added a help file to explain it to players. Binding information shows up on identify. Applied bind flags to many many existing items.
  • Unbind: New immortal command clears bindings on an item.

March 14, 2015

  • Identify: This command can now be used un-skilled. It now shows some object flags, but not all of them.
  • Improved Identify: This ability gives full stats on an item via identify. Players without it can get some of the stats.
  • Scripting: Fixed a bug in script skill checks, which was preventing the stealth trainer from working correctly.
  • Object binding: Added partial support for object binding.
  • Mob tagging: Added a system where a player and their group tag a mob during combat, and tags are expanded when the mob dies to ensure all group members are included. This will be used for loot binding in the future. Mob tags are cleared if the mob is out of combat.
  • OLC list: Added full-buffer early loop exits to the olc list function, plus raised the maximum string length on it.
  • Empire storage: Prevent saving of empire storage before it has been loaded. This is the suspected cause of recent einv losses.

March 13, 2015

  • Groups: Ported the Vatiken group system from CircleMUD 3.1 as a full replacement for EmpireMUD 2.0’s party system.
  • Code cleanup: Applied format-checking attributes to va-arg functions.

March 12, 2015

  • Config system: Converted most of config.c to the new in-game config system.
  • Generic mob names: Moved generic mob names to text files and added a name-list option for mobs, allowing different sets of names for different mobs.
  • Mob files: Updated the mob file format to remove stats that are now always scaled, and to store the new name set data.

March 10, 2015

  • Tips of the Day: Moved the tips from an array in the code to a text file in the library.
  • Config: Added a new in-game config system and several data type processors for it, and began converting systems to use it.

March 8, 2015

  • DoTs: Overhauled the damage-over-time system entirely to use its own affect structure with damage type, stack limits, etc. Converted all existing DoT effects to use it. Added additional damage messages for these. Skybrand, Cut Deep, Jab, poison, and anything else doing damage-over-time got small upgrades, including stackability in some cases, but may have lost per-stack damage in exchange for higher overall damage when stacked. Poison resistance/immunity will now work on DoTs from poison.
  • Cleanse: Now removes DoT effects that are magical- or poison-type.
  • Firstaid: Now removes physical DoT effects, but can’t be used on someone who is still in combat.
  • Import/Export: You can now use the import/export “list” function on any empire, even one you aren’t currently trading with.
  • Trading Post: The global trading post building is in. This lets players buy and sell unique items on the global market.
  • Mob Scaling: Changed the meanings and scale values of the HARD and HARDER mob flags; updated many mobs that had both to only have HARDER.

March 7, 2015

  • Storage: Changed how empire storage is saved to allow correct loading of warehouse items. Storage is now stored in a separate file and loaded later than the rest of empire data.
  • Toggle: Added support for “toggle notifiers” and added a notifier for when you toggle AFK.
  • Obj saving: In inventories, unique storage, and on the ground, objects now ALWAYS save their values, flags, and applies (rather than only when different from the prototype).
  • Trade Routes / Commerce: Move Trade Routes to 50 and gated Commerce behind it (still at 65), rather than vice versa.

March 6, 2015

  • Unique item storage: Added the “warehouse” command. It can be used in warehouses and vaults in order to list, retrieve, and store unique (scaled, enchanted, etc) items safely. It works similar to normal storage.

March 5, 2015

  • Grants: Added a grant system wherein the minimum-level on commands can be overridden with special grant flags.
  • Empire commands: The commands that allow immortals to target other empires now require either co-implementor level or the “empires” grant flag.
  • Immortal commands: Raised the level on many immortal commands that now have grants available. Also changed the level on most of the “set” options.
  • Input queue: Added + and – commands for queue manipulation.
  • Command Lag: Reduced universal wait time from 1.5 to 1.1 seconds.
  • Stat character: Fixed a bug where the immortal using stat saw his own speed instead of the target’s.
  • Extraction: Clear the NOTDEADYET player flag on login, in case it’s erroneously set. Players who have been extracted but not finalized will no longer receive a prompt. Added a backup extraction system when the number extracted is unexpectedly wrong.
  • Paging: Override the “scrolling” preference for very long strings.
  • Disrepair: Added a check for bad “complex data” on rooms, which has variously caused all Jungles, and all Desert Groves, to accrue disrepair.
  • Gear rating: Adjusted rating numbers, accounted for more stats, and now do ratings as a float to allow fractional values.

March 3, 2015

  • Item scaling: Fixed a bug that was not scaling items correctly. Also adjusted some scaling values.

March 1, 2015

  • Crafts: Allowed all crafts to require an object in order to get the craft in the list (buildings already supported this).
  • Craftables: Updated many craftable items to use item scaling. These can no longer be stored because the current storage system doesn’t support non-identical objects.
  • Armory: Disabled the armory building and designate-able room both because very little was still storable in them under the craftables change.
  • Scripting: Added can-teleport-room and can-use-room checks to scripting.
  • Hestian Trinket: Replaced hard-coded Hestian Trinket features with a script.
  • Trinket of Conveyance: New trinket teleports you to a random start locations; new players now start with 2 of these for free. It is otherwise made by simple Pottery.
  • Ocean: Quitting in the ocean no longer recalls you to a start location.
  • Soak: Changed the gear value of soak bonuses on gear from 1 to 1.5 (which also lowers the amount of soak on scalable gear).