Patch testing - 188.8.131.52
Run the command "send o 0 recreateall" to rebuild everything.
Update 27 (184.108.40.206) Patch Notes
- Add code to lower flags to half-mast for mourning.
- Re'xeochicatl now casts reflection instead of apparition.
- Zi'xeochitatl now has a permanent invisibility effect.
- Add a dm command 'dm turn off pk' to disable PvP on the current screen for an hour.
- Remove enfeeble and dement from thrashers.
- Thrashers will now drop slightly more shillings, and will also drop red mushrooms and emeralds.
- Line of sight code now checks several points of an object to give more accurate results.
- Lowered server-accepted field of view for player attacks/spells from 180 degrees to 100 degrees.
- Add two new masks: stone troll and dusk rat.
- Added golden and acid arrows (currently event drops only).
- Weight/bulk lowered for inkies, BDS, firesand, solagh, uncut seraphym and yrxl sap.
- Monsters in Castle Victoria can now use the doors to the mini-rooms again.
- Castle Victoria will now disallow attacks between different areas of rooms, i.e. between the separate upstairs sections and between the main room and the four mini-rooms.
- Character creation will now give the user an hour to create a character before timing out, up from 10 minutes.
- Flagpole troop generation improved - at least one soldier will now always be present when a player enters a screen.
- The temporary angel status will now change the player's own dot/line (in their minimap view) to light-blue.
- Soldier shield extra bonuses will now only apply when fighting monsters, or players of an opposing faction. Princess shield mana reduction and Duke spellpower bonus only apply to single-target spells cast on the above mentioned valid targets.
- Add 'delete post' button to newsglobes to allow users to delete their own posts (must be within 1 hour of posting). DMs can remove any post from any globe.
- Misc performance improvements.
- Lowered death rift reagent cost from 6 dark angel feathers to 4.
- Cast timers removed from detect invisible, free action and eagle eyes.
- Added a small vampiric drain effect to unholy touch. Undead monsters are immune to this effect.
- Room enchantments which cause damage (Heat Shal'illebane and Qorbane) will now display damage numbers.
- Heat can now be cast in towns.
- Added a setting to allow Death Rift to be cast by angeled players.
- Sporeburst hold time is now comparable to the hold spell itself, lasting for 3-6 seconds rather than 5-8.
- Sporeburst cloud hold chance is now dependent on spellpower, with a base chance of 40% plus half the spellpower it was cast at. The clouds attempt to hold a player multiple times as they walk through, so players may still be held most of the time.
- Spellbane now works the same way as a hinder spell, and lowers the success chance of any spell cast in its radius.
- Spellbane meditate ratio increased from 30 to 50.
- ETs and reflections now behave correctly if the victim or caster phases or logs out. If a victim logs out or phases while being chased by an ET, it will disappear or phase too but return when the victim does. If the caster logs or phases, their ETs will be dispelled.
- Disallow more rooms from being used in survival arena due to room issues.
- Cleaned up Tos Main Gate and Sandy Shores of the Great Ocean maps.
- Fix NewHold server-crashing issues when an object tries to hold itself.
- Fix monster reflection animations.
- Fix Set/Loadout handling of spell-items (potions, wands and scrolls). Loadout will now attempt to match the number of stacks and the number of charges in each stack when replenishing the user's inventory.
- Casting Shal'illebane will no longer automatically flag the caster as an outlaw.
- Deaths caused by room enchantment damage will be correctly attributed to the caster.
- Line of Sight issues preventing some guild hall chests from being accessed have been fixed.
- Feign Death will no longer occasionally drop items inside walls.
- Lighting effects will now be correctly removed when a light source switches off during the day (e.g. lamps in Tos streets.)
- Bow firing animation fixed on Evil Twins and reflections.
- Fixed some broken monster ET/reflection animations.
- Logging an enemy soldier will now correctly adjust the shield ranking of both combatants. Only the last player to attack the victim will gain rank.
- Fix NPC necromancer troops not displaying their soldier shield.
- Raza mausoleum will no longer spawn hundreds of mummies.
- Fixed the bug preventing some screens from spawning monsters.
- Fixed rare 'missing resource' box on room creation.
- Fixed LoS issues with Earthquake and other multiple target spells that were preventing them being cast on one target not visible to the caster.
- Using Death Rift and logging off/phasing before reaching a safe zone after leaving the Underworld will no longer result in the player being teleported back to UW.
- Fixed bug preventing evil twins from being attacked if the caster enters a safe zone. ETs will now be dispelled if the caster is no longer on a screen where they can be attacked.
- Fixed a bug that delayed players being logged off for a few seconds if too much data was being sent from the client during logoff.
Server infrastructure/For developers
- StoreValue now uses the num_props variable in the object_node struct when bounds checking data stored in properties, as opposed to finding the object's class and using the num_properties from the class_node struct.
- Refactor admin "show list" printing code. Added list length to the output from this command.
- "Show matches" admin command will now return the found objects in a list. List is bound to max 10000 entries, which can be set using the [Blakod] MatchesList config option. This admin command now also prints output to log via a buffer, calling aprintf only when the buffer is almost full.
- Add "create table" admin command, takes an integer parameter and returns a table of that size.
- Add "send list" admin command, takes a list, a message and parameters and sends that message to any object in the list.
- Increased string buffer size on log/interface printing functions (gprintf, eprintf etc.) to BUFFER_MAX (10000) to prevent any potential errors as BUFFER_MAX is used elsewhere for buffer size.
- Removed server calls to TermConvertBuffer(), which converts '\n' to '\r\n' as this is only required by the client's admin window. The client now has a function that performs this task.
- Refactored TraceInfo() to print output much faster (i.e. the results of a message called with 'trace on' activated).
- Refactored the 'scoreboard' code in util.kod, generalised to keep any list of the format [ [ object, value] ] sorted.
- Add abstract parent classes for Shirt (ShirtBase) and Robe (RobeBase), so all child classes can be differentiated (i.e. IsClass(what,&Robe) will no longer return true for both &Robe and &LightRobe).
- Improved error messages in ParseClientSendBlakod() and SynchedProtocolParse().
- Removed original install directory/script.
- Disallow long say/broadcast strings.
- DMs and admins can now offer items to monsters, which the monsters will drop upon death.
- Duplicate rooms no longer use the same room data due to issues arising from 'blocker' handling and BSP movement.
- Deleting rooms will now free the memory associated with that room.
- Added "show blockers roomdata_id" admin command to show all blockers associated with a roomdata ID.
- Added "show suspended" admin command to show all suspended accounts.
- Fixed an exploit allowing players to steal items carried by monsters by looking inside them.
- Improved blakod interpreter speed ~20% via more efficient opcode handling and data retrieval for operations.
- Added a bkod_type data type for use in the server code in place of 'int' when dealing with blakod data types. Will be used to make a future 64-bit transition easier.
- New C call (LineOfSightView) which calculates whether a player can see a target given their viewing angle.
- Increased packet throttle from 20 to 25 per second.