2009scape-website/updates/_posts/2022-07-09-More-changes-in-Gielinor.html

175 lines
11 KiB
HTML

---
title: More changes in Gielinor
tags: news
layout: newspost
collection: Game Updates
date: 2022-07-09 00:00:00 +0000
authors: ryannathans
excerpt: "Achievement diary rework, many bug and stability fixes, slayer expansion, optimisations and more."
modtype: "Lead Developer"
---
<p>Greetings Explorers</p>
<p>Highlights of this release include achievement diary reworks, many bug and stability fixes, slayer expansion, optimisations and more.</p>
<p>Full list of changes in Gielinor:</p>
<ul>
<li>Part 1 of achievement diary rewrite, the following diaries have been partially or totally rewritten<br />
<br />
Lumbridge Beginner<br />
Lumbridge Easy<br />
Lumbridge Medium<br />
Falador Easy<br />
Falador Hard<br />
Fremennik Easy<br />
Fremennik Medium<br />
Karamja Easy<br />
Karamja Medium<br />
Karamja Hard<br />
Seers' Village Easy<br />
Seers' Village Medium<br />
Varrock Easy<br />
Varrock Medium</li>
<li>Items with destroy option can no longer be sold to stores<br />
Items that cannot be traded can no longer be sold to stores</li>
<li>Results of ::ge command now sorted by item name</li>
<li>Converted clue scroll rewards to JSON weighted tables</li>
<li>Fixed the duplicated sound effects when cutting trees</li>
<li>Improved POH lecterns<br />
<br />
More authentic animations<br />
More authentic tick timing<br />
Fixed off-by-one that resulted in spurious full inventory errors<br />
Made lecterns take rune-providing staves into account<br />
Made the buttons light up based on the lectern tier<br />
Converted TeleTabInterface from a Plugin to a Listener</li>
<li>Build process now fetches latest const lib when required</li>
<li>Changed guard NPCs in Yanille watchtower to the authentic watchmen NPCs</li>
<li>Refactored mining<br />
<br />
Converted to content API<br />
Corrected the prospecting text of gem rocks<br />
Corrected the full-inventory text when mining gem rocks</li>
<li>Converted SummoningTabPlugin to SummoningTabListener<br />
Implemented "Dismiss now" for familiars</li>
<li>Equipping an item into an occupied equipment slot now places the swapped item into the inventory slot of the item being equipped</li>
<li>Added ability to define custom varbits via JSON<br />
Fixed the bank note/unnote and insert/swap toggle buttons not persisting between logins</li>
<li>Fixed hardcoded database credentials in unit tests</li>
<li>Reworked commands<br />
<br />
::commands now very pretty, paged and documents each command user has access to including privilege required<br />
Command definitions now support adding documentation in-place.<br />
Adds new command to hot-reload JSON while server is running (::reloadjson)</li>
<li>Added additional safety when cleaning up cutscene attributes</li>
<li>Moved demon slayer cutscene trigger to its own MapArea</li>
<li>Fixed bug that could cause bank to throw index out of bounds and vanish items when rearranging tabs with completely full bank</li>
<li>Fixed seemingly random server crashes caused by ArrayIndexOutOfBoundsException on unsafe type during threaded operations by synchronizing add/remove logic for PulseRunner.TASKS</li>
<li>Added the missing sound effect for when a tree is felled after a successful woodcutting attempt<br />
<br />
Sound can be heard by other players nearby</li>
<li>Fixed the long missing Lumbridge Achivement Diary store-browsing task</li>
<li>Fixed an exception thrown by the equipment interface</li>
<li>Converted EnchantedGemPlugin to Listener<br />
Converted EnchantedGemDialogue to DialogueFile</li>
<li>Reworked grand exchange offer processing<br />
<br />
Now much more efficient<br />
Offers will appear to complete almost instantaneously<br />
Players can no longer hoard bot offers as they will only be allocated at time of offer placement</li>
<li>Fixed incorrect banker NPC look-up behavior for bank booths<br />
Banker interactions are now properly restricted for Ultimate Ironmen<br />
Added theme-appropriate banker NPCs to booths at Void Knights' Outpost Island<br />
Added missing Canifis banker NPCs<br />
Fixed incorrect handling of Arnold Lydspor banking-related logic<br />
Added Arnold Lydspor dialogue<br />
Consolidated banker NPC listener logic into BankerNPC class itself<br />
Added ContentAPI call to check if a node offers an interaction option</li>
<li>Fixed exception thrown by an interaction with Ahab's beer</li>
<li>Fixed exception occurring when an NPC has no jobs that can be assigned to the player<br />
Fixed an issue that caused killing jobs not to work without relogging first</li>
<li>Fixed a bug where an NPC could not attack an entity that was already set as their target<br />
Fixed a regression that prevents some NPCs from walking back to their spawn point<br />
Fixed a longstanding issue that didn't properly reset NPCs who wandered too far out of their natural movement radius (now disables combat + walks them back to their spawn point + fully heals them)</li>
<li>Fixed bug where trying to buy-x too many items from a shop would not fill available inventory slots</li>
<li>Rewrote animal magnetism cutscene in the new cutscene system<br />
<br />
Fixes bug where the player could not progress</li>
<li>Fixed Rock Golem random event not spawning for low level players</li>
<li>Fixed an issue where lighting a lantern (or other light source) inside a dark area wouldn't be recognised</li>
<li>Rewrote enchanted jewellery<br />
<br />
Fixes the funny bug that gets you stuck as a tiny person when teleporting sometimes</li>
<li>Fixed exception thrown when invalid fairy ring codes are entered<br />
Fixed unhandled hairdresser button that lead to OOB exception<br />
Fixed oversight in ::loc that causes exceptions to be thrown in headless environments</li>
<li>Increased server stability<br />
Fixed NPE in IoEventHandler<br />
Fixed NPEs in PacketWriteQueue<br />
Reworked PacketWriteQueue slightly so that instead of breaking at first null packet we continue past it and pop the whole queue along the way</li>
<li>Refactored item note/unnote on bank booth handling<br />
QoL - only applies to bank booth, not banker NPCs<br />
Added server config world.bank_booth_note_enabled (enabled by default) to toggle the QoL globally<br />
Added server config world.bank_booth_note_uim (enabled by default) to toggle the QoL on ultimate ironmen only</li>
<li>ContentAPI methods now all take 2nd bank into account</li>
<li>Fixed a bug where NPCs couldn't be attacked against walls</li>
<li>Made wilderness NPCs immune to aggression tolerance<br />
Unified wilderness and standard death code, wilderness death code now only rolls the extra loot drops<br />
Fixed a bug that would cause revenant/player combat levels to sometimes be calculated incorrectly</li>
<li>Set user join date in database again on account creation</li>
<li>Fixed shield of arrav progression getting stuck, can now talk to tramp if you haven't joined a gang</li>
<li>Fremennik Easy Diary is now completable and Fremennik sea boots 1 can now be obtained<br />
PickUpEvent Event Hook created, for events that need to fire when player picks up a specific item<br />
All currently implemented Diary tasks where the player must pick up items have been converted to use the new PickUpEvent event hook<br />
New zone created for the windswept tree (highest tree in the Fremennik area task) for its diary task<br />
Rough dialogue created for obtaining your completed diary reward from Council Worker</li>
<li>Slayer expansion<br />
Sumona (NPC ID 7880) now implemented as a Slayer Master<br />
Sumona slayer task pool created, 1:1 with the task weights on the RSWiki<br />
Sumona NPC spawn added<br />
All slayer master task pools have been re-ordered alphabetically to match both live game wiki's task ordering<br />
Slayer task pools have been audited to ensure weights are correct<br />
Unimplemented tasks added to task tables but disabled<br />
Elves now added as a Slayer task, players can find them at Elf Camp and Lletya<br />
Elf slayer task added to task pool of Chaeldar and Duradel (as well as the new Sumona pool)<br />
Added Fremennik easy diary NPCs</li>
<li>Disabled aggression tolerance for GWD minion NPCs</li>
<li>New server config option to preload the world map on boot, removes lag caused by lazy loading (server.preload_map = true)<br />
Cached region clipping flags for faster lookups<br />
Minor optimizations to setAttribute codepath which avoids unnecessary checks<br />
Fixed a bug that would allow entities to attack through walls<br />
Fixed two separate bugs that would cause odd behavior attacking large entities from certain angles<br />
Removed unnecessary schema from global.sql<br />
Ensured that all but the `members` and `worlds` tables could be safely dropped out of the DB<br />
Better automatic handling for creating the default server account and creating the default server clan<br />
Fixed bugs related to interfaces flagged as uncloseable that would cause stack overflows<br />
Fixed premature home teleport while in tutorial<br />
Fixed getting stuck by going back up ladder in tutorial<br />
Fixed bug that prevented bots from taking damage<br />
Fixed a bug where players would not be in the default clan after completion of the tutorial<br />
Green Dragon bots reintroduced, no longer buy any items (these bots sell loot from green dragons in the wilderness on the GE)</li>
<li>Teleblock now persists across login sessions</li>
<li>Added support for many common variations of the jagex coordinate format for admin command ::tele, including:<br />
regionX_regionY<br />
plane_regionX_regionY<br />
regionX_regionY_localX_localY<br />
plane_regionX_regionY_localX_localY</li>
<li>Fixed tree spirit random event not spawning for some players</li>
<li>::rolldrops admin/testing command now clears container between invocations</li>
<li>Implemented pelting of rotten tomatoes<br />
Added ability to define listeners for Player interactions and usewith interactions<br />
Added ability to flag listeners instant (no path walking) execution</li>
<li>Add slayer task content API functions in preparation for coming work</li>
<li>Rewrote entire banking system (aside from dialogue), converted to listener system</li>
<li>Fixed many issues with login<br />
Reconnecting to an existing session can no longer cause an account wipe<br />
Player saves can no longer be saved unless they've already been parsed<br />
Sessions now have their most recent ping properly set<br />
Sessions can now recover from a hypothetical scenario where the session's player reference becomes null but the player is still in-game<br />
Players now disconnected properly if no packets have been received from the client in the last 20 seconds</li>
<li>Reduced revenant spawn burst size to stop them getting stuck<br />
Fixed unit test NPE<br />
New admin command clearrevs to clear revenants</li>
<li>GE offer notification system now supports opt-in privacy to remove username from messages<br />
Opt-in to GE privacy with new in-game command ::geprivacy on<br />
Removed discord GE offer update notifications (only new buy/sell offers shown)<br />
Limited in-game GE notifications to player offers only</li>
</ul>