Skip to content

Releases: hybrasyl/server

Hybrasyl Server 0.9.4 ("Grinneal")

21 Jul 20:59
6d582aa
Compare
Choose a tag to compare

0.9.4 implements fear/charm/disarm statuses, adds cone-shaped spell intent, an absorb / shield mechanic, expands the functionality of traps, and adds a ton of features to the Lua API. We have also squashed a number of longstanding bugs and added a lot of new unit testing to help prevent new bugs from cropping up.

Features

  • [HS-1024] Add ability to use caster stats in trap / reactor formulae, fix traps not expiring
  • [HS-1280] Implement fear, disarm and charm conditions
  • [HS-1293] Implement cone shape for spell intent / targeting (distinct shaped cone in specific direction from caster)
  • [HS-1316] Allow creatures to be immune from statuses, specific spells and skills, elements
  • [HS-1334] Implement absorb shield mechanic - castables can now grant shielding from all damage for a specific time
  • [HS-1337] Allow <Remove> in xml to remove either a category of statuses or a specific named status
  • [HS-1341] Migrate constants from hardcoded server values to xml configuration
  • [HS-1342] Allow castables to remove multiple quantities of statuses (eg remove all poison vs remove a poison)
  • [HS-1346] Allow spawned monsters to define and be spawned with specific stats
  • [HS-1439] Allow statuses to deal elemental damage (whether DoT or immediate)
  • [HS-1451] Spells can now set whether they are visible at trainers, and whether they are learnable based on player cookie (a script-set value) along with a message if they cannot be learned
  • [HS-1450] Add item tags
  • Fully implement monsters killing each other

Lua API / Formula Support

  • Fix timezone bug in HasKilled / HasKilledSince
  • Access last thing said by a player or creature using LastHeard
  • Implement IsPrivileged (whether a player is admin)
  • Add ability to set a reactor as invisible or visible to a cookie
  • Add Direction , GetTileInDirection, GetMonstersInDirection, GetUserInDirection
  • Support updating / retrieving all player attributes & stats
  • Allow reactors to use caster stats in formulas
  • [HS-1430] Scripting needs ability to teleport creatures
  • [HS-1438] Allow scripts to add / remove statuses on creatures
  • [HS-1460] Reactor scripts should be able to play sfx / gfx
  • [HS-1461] Creature scripts should be able to play sfx / gfx
  • [HS-1462] Add ability for reactors to conditionally display themselves or change their sprites
  • [HS-1463] Allow scripts to trigger / change spell / skill cooldowns
  • [HS-1464] Expose item stackable max to API

Bugfixes

  • Remove multiple statuses / allow multiple statuses of the same category to be applied
  • [HS-1364] Fix longstanding bug where logout results in failure to reconnect
  • [HS-1427] Fix a number of bugs in asynchronous dialogs (used for mentoring et al)
  • [HS-1444] Bugreport / Feedback cease to function after one use

Miscellaneous

  • Upgrade to .NET 8.0
  • Introduce IClient / socket / packet abstractions which are used to implement packet-level tests
  • Implement a number of new unit tests for a variety of server functionality
  • Upgrade to Hybrasyl XML Library 0.9.4
  • Massive cleanup / reorganization of files to make things clearer / more obvious / easier to work on

Hybrasyl Server 0.9.3.1

26 Jul 21:14
Compare
Choose a tag to compare

Server 0.9.3.1 is a point release in the Glioca series to address a few bugs that arose in testing.

Bugs

[HS-1359] Creatures are not always hostile
[HS-1356] Metafile handling of legacy stats is incorrect in item descriptions at vendors
[HS-1358] Creatures spawning with 1HP
Creation of new characters results in black forever screen

Hybrasyl Server 0.9.3 ("Glioca")

16 Jul 22:20
Compare
Choose a tag to compare

0.9.3 is jam packed full of bug fixes and features (item procs, combat log, religious faith, elemental resistances & augments, new Lua scripting hooks, and more).

New Features

  • Combat log - This can be enabled or disabled using /combatlog and is displayed as a guild/party equivalent message
  • Localizations can now define locales and the server can define a locale at startup which is recognized by world
  • Add proc support (either castables or scripted events) for items and equipment, initially supporting on use, on hit, and on cast events
  • The $ whisper target (which can be used to run arbitrary scripting commands) now supports the execution of multiline adhoc scripts using begin and end
  • [HS-1130] Implement bind on pickup and handle many edge cases related to weight / etc as a result
  • [HS-1246] Allow vendors to run checks to determine whether they provide training / vendor / mail / repair / bank services to a player
  • [HS-1250] Implement merchant voice triggers for repair, deposit, withdraw, selling, and asking how much gold or items are on deposit
  • [HS-1253] Lua scripts can now spawn monsters
  • [HS-1261] Lua scripts can register custom death handlers for monsters
  • [HS-1269] Enable formulas for reactor calculations
  • [HS-1270] Add scaling support to GiveExperience() in scripting
  • [HS-1271] Give scripts enhanced ability to access item properties
  • [HS-1275] Signs can display effects when they enter a user's field of view
  • [HS-1276] Enable resistances & augments (elemental buff/debuff for both attackers and defenders)
  • [HS-1277] Support religious faith fully as an attribute (stat, formulas, etc)
  • [HS-1288] Scripts can now register quest metadata (client quest display support)
  • [HS-1290] Reactor number of uses can be a formula
  • [HS-1291] Weapons and creatures can override default assail sounds
  • [HS-1297] Castables can inherit element from equipment or buff/debuffs
  • [HS-1298] Monsters can declare immunities to spells in XML

Bugs / Tickets Addressed

  • Correct issues where mail flag (flashing icon on client) was not always correctly set
  • Formulas for statuses were not evaluated if a castable was not responsible for applying the status
  • Correct error in OnHear where scripted events were no longer receiving SpokenEvent events
  • Item names were not always accessible via scripting
  • Ensure procs run when castables are used for all cases
  • Update MR/Damage/Regen/Hit to be percentages with appropriate display on client side
  • [HS-758] Fix certain edge cases with slot restrictions for items
  • [HS-802] Training dummy issues
  • [HS-847] /group command now uses popup similar to group invites
  • [HS-1024] Fixes to traps & trap abilities
  • [HS-1051] Caoin Cath doesn't stun nearby monsters
  • [HS-1130] Fix force drop exploit for certain edge cases
  • [HS-1224] Monks can learn and see multiple forms
  • [HS-1230] Fix various errors with spell dialogs
  • [HS-1247] SetNPCDisplaySprite() in scripting not functioning correctly
  • [HS-1248] Implement HasKilled support in Lua scripts for quests to use
  • [HS-1256] Logging into a map with a non-existent NPC results in infinite loading screen
  • [HS-1265] Regeneration not really working at all even remotely like expected
  • [HS-1266] Selling items via chat gives different gold than selling directly to merchant
  • [HS-1267] Improve implementation of regen / mr / hit / damage and client display of such
  • [HS-1272] Creatures do not respect hostility settings
  • [HS-1273] Selling stacked items doesn't remove them from inventory
  • [HS-1282] Dropped items no longer appearing on ground
  • [HS-1283] Fix unevaluated $TOKENS used by $NPCs
  • [HS-1285] Spawngroups with coordinate spawns defined should use the number of coordinate pairs defined as a maximum
  • [HS-1286] Bonus experience is overly generous & also doesn't display penalty / bonus exp
  • [HS-1287] RemoveSpell() in scripts does not remove spells correctly
  • [HS-1294] Handle removal of invisibility correctly
  • [HS-1305] Random strings appear in chat window
  • [HS-1307] Castables should prefer closest targets first
  • [HS-1308] Fix log filtering & add admin command to allow logging levels to be changed
  • [HS-1309] Reloading a map results in it not being able to be loaded again by a player
  • [HS-1311] Expose element in damage to scripting
  • [HS-1317] Fix certain rubberbanding effects on transitions
  • [HS-1318] Combat log cannot be disabled
  • [HS-1324] Reactor sprites do not disappear when reactor expires

Code Improvements & Refactoring

  • [HS-1315] Simplify variant expressions in XML and unify handling of itemvariants
  • [HS-1331] Simplify heal expressions in XML
  • [HS-1332] Simplify damage expression in XML
  • Upgrade to .NET 7
  • Upgrade to latest version of xsd2code
  • Unit tests can now test and use packet handlers
  • Enforce separation between WorldState / WorldData using new IStatestorable interface
  • Separate out all XML entity access to XmlManager (using Hybrasyl.Xml library)
  • Rename WorldDataStore -> WorldStateStore & remove XML entity support from it
  • Update code as needed to match new IWorldDataManager API
  • Fix failing tests here and there
  • Remove Hybrasyl WorldMap object, as it is no longer needed
  • Rename Hybrasyl Map object to MapObject (similar to ItemObject) and update to use new patterns
  • Disable XML reloading for now (to be reimplemented before 1.0)
  • Update world constructor to allow IWorldDataManager to be injected into it at runtime
  • Remove LoadData / etc from Hybrasyl as it is now handled by the data manager
  • Update Hybrasyl to support setting data dir / log dir / world data dir from command line or env variables
  • Clean up Map.cs and move classes to where they belong
  • Remove ResolveVariant as it is now handled by the data manager
  • Remove path helpers as they are now obsolete

Hybrasyl Server 0.9.2

02 Oct 20:31
e1ed845
Compare
Choose a tag to compare

0.9.2 ships a significant overhaul & simplification of Hybrasyl scripting, implements item and spell dialogs, and fixes bugs.

  • Tickets
    • [HS-1230] Add scripting support for spell casts (spell dialogs)
    • [HS-1262] Add support for sending parcels and mail from scripts (eg NPCs can now send mail/parcels)
    • [HS-1264] Item variants do not apply elements correctly
    • [HS-1265]: Regen bonuses are not resulting in correct hp/mp regeneration calculations
    • [HS-1266]: selling items gives different gold in chat vs menu
    • [HS-1270]: add scaling to GiveExperience scripting function
    • [HS-1271]: Allow scripting to set / read item flags
  • New features
    • Evaluate item formulas when they are added to inventory
    • Significant refactoring of scripting - more efficient and performant, add interfaces, simplify usage, standardize usages
    • Support complex item scripting (multiple dialogs, callbacks, functions)
  • Bug fixes (thanks @kylespeck)
    • PutGround packet fixes
    • Default AoiDeparture should not have a transmit delay
    • 0 second cooldowns interrupt consecutive spell casts
    • Ensure targeted spells must have a valid target
    • Viewport calculations should include tile player is currently standing on

Hybrasyl Server 0.9.1

24 Apr 21:31
bd00850
Compare
Choose a tag to compare

Hybrasyl Server 0.9.1

We intend 0.9.x to be the last release series before 1.0; we will continue to make point releases, hopefully at least once a month, until we reach 1.0.

  • Tickets
    • HS-802: Address regression in 0.9.0 which made training dummies not work - they now work again
    • HS-924: A player who confirms an exchange could still add items to the exchange
    • HS-1113: Certain potions do not work if your max hp/mp is under the amount being given by the potion
    • HS-1123: When looting a pile, loot gold first as opposed to items
    • HS-1194: When a player's spellbook is full, they can continue to learn spells (and pay requirement costs) but nothing happens
    • HS-1247: SetNPCDisplaySprite in Lua not working
    • HS-1248: Add the ability to specify a number of recent kills to HasKilled in Lua
    • HS-1250: Implement all NPC voice commands (repair / deposit / withdraw / buy)
    • HS-1254: allow all cast costs to be specified as formulas
    • HS-1261: implement OnDeath as a scripting hook
  • Bug fixes
    • Add locking to quadtree to address certain edge cases where spawn thread was causing multiple enumeration errors
    • Fix various null reference edge cases in xml
    • Address monsters not turning correctly
    • Correctly address ability for lootsets to create an infinite roll scenario
  • Code improvements
    • Add unit tests for statuses, item slot requirements, merchant functions (deposit/withdraw/etc)
  • New features
    • Add lootset evaluator (whisper # as a privileged user), which allows you to evaluate multiple rolls on a loot set / table

Hybrasyl Server 0.9.0 ("Danaan")

26 Mar 03:30
7dc88c7
Compare
Choose a tag to compare

Hybrasyl Server 0.9.0 (”Danaan”)

Release notes for Danaan, the beginning of the “viable” releases for Hybrasyl Server.

  • Upgrade to .NET 6.0
    • Migrate to file-scoped namespaces
    • Use Random.Shared for randomness
  • Add new stats along with status support & general implementation:
    • reflect magical / physical damage
    • XP/Gold/Item find bonus
    • life/mana steal
    • dodge
    • inbound/outbound heal/damage modifiers
    • crit / magic crit
    • dodge / magic dodge
  • Remove intensity, as it was duplicative of above
  • Items
    • Allow items to have permanent stat effects
    • Add item metadata support for new stats
    • Add item support for formulas, which are now evaluated right before being equipped
  • Allow spells and skills to redirect damage to mana
  • Fully implement hit / dmg / MR
  • Implement damage flags (NoCrit / No Threat / No Resistance)
  • Implement regeneration bonus as a percentage, versus current implementation
  • Fix bug in TakeItem (wasn’t, uh, taking items)
  • Implement reloading of spawngroups
  • Expose Elements / elemental attributes easily in Lua for scripting
  • Implement randomness for spawns
  • Add category support for inventory (”junk”, “weapons”, etc) & add NPC support for buy all my junk
  • New implementation / features
    • New status support
      • Mute
      • Invulnerability
      • Invisibility
      • Sight
      • Item usage / equipment change prohibitions
    • Implement traps
    • Implement support for group recruiting
    • Implement support for basic manufacturing system
    • Creature behaviors
      • Implement monster castable rotations with new controller logic (CastableController, Rotation and RotationEntry). Monsters can now have spell rotations defined in XML, along with one-off casts (eg HP < 10%), which can also have a variety of targeting priorities (healer, direct attacker, etc).
    • Add XML call/response support for NPCs (eg What is your name / etc)
  • XML improvements
    • Unify stats for items and statuses
    • Clean up & remove old unused object files
    • Use existing StatInfo structure for items and statuses
    • Unification of C# / XML creature attributes
    • Update item durability / weight / value to be floats (to match variants)
    • Upgrade to xsd2code 6
  • Scalability / server architecture improvements
    • Remove Lockable usage in StatInfo and refactor
    • Add control message handler for updating stats (used to process reflect / steals)
    • Add locking to object caches in maps
    • Add WorldObject index to WorldDataStore
    • Add support for running Hybrasyl in Docker, including a Dockerfile
  • General refactoring
    • Move gold to StatInfo structure
    • Add support for OnInsert for world objects, which is run on an object’s insertion into the world
    • Remove hardcoded sell prompts
    • Add support for alternate Redis DB (used by testing)
    • Completely refactor inventory (remove 1 vs 0 index confusions)
  • Code improvements
    • Allow startup directory to be set in config.xml
    • Remove redis migrations entirely until rewritten in C# / needed again
    • Various updates to tuples in lots of places to take advantage of .NET 6
    • Add unit tests 🎉
      • Equipment & new stats, bonuses, consumable bonuses
      • Inventory
      • Variants (variant generation and equip)
      • Serializing / deserializing characters (verify that stats / etc are identical after deserialization)
      • Monster casting / rotations, threshold casts
      • Traps (reactors and castable reactors)
    • WorldObjects now keep track of their creation time and their “alive” time
  • Bug fixes
    • Ensure .ignore is ignored in xml directories
    • Never send system messages for assail skill use by monsters
    • Base damage modifiers for weak monsters were not being applied correctly
    • Ensure direct damage ignores ac/mr/crit/dodge/etc
  • Tickets
    • HS-734: profiles not working
    • HS-758: implement ability for items to require or prohibit other items from being equipped, along with generic slot restrictions (eg monk no boots case)
    • HS-765: /recentkills should display 25 most recent kills
    • HS-961: fix mana recovery issue with armor when total mana is reduced to 1
    • HS-1024: traps are not implemented
    • HS-1044: tab map zoom does not work for rogues
    • HS-1201: Can’t sell more than one of the same item to an NPC
    • HS-1208: NPCs will now respond to “buy my x” prompts
    • HS-1224: ensure spells are removed in client interface when removed by scripts
    • HS-1227: implement parcel send & fix duplicate usage messages
    • HS-1236: STR resets to 1 on login
    • HS-1237: reactors eat items
    • HS-1238: regression in hp/mp stats
    • HS-1114: castable cooldowns are triggered even if mana is too low

Hybrasyl Server 0.8.0 ("Saoirse")

25 Sep 04:52
96db1a9
Compare
Choose a tag to compare

Hybrasyl Server 0.8.0 ("Saoirse")

  • Complete refactoring of monster AI and pathfinding. Most AI can now be modeled entirely in XML without the usage of Lua scripting.
  • Monsters now have stats, allocation of which can be controlled by a new XML type called BehaviorSet and happens automatically on spawn.
  • Monsters now have spell/skillbooks, the ability to use real castables, the ability to have weapons, and the ability to learn castables automatically on spawn.
  • Monsters can now define base types and subtypes (for instance Kobold -> Kobold Sage, Kobold Wizard)
  • Deprecate most usages of spawngroups. There is quite a lot of documentation for this in docs.
  • Begin refactoring how XML loading and ingesting occurs in Hybrasyl
  • Break up XML extensions into separate files
  • Add generic XML support for formulas, which will be used to define a variety of game effects that were previously statically defined
  • Allow creatures to express a variety of attack priorities (low/high threat, attacking caster, healer, etc) in XML
  • Add GRPC support for various functionality to integrate with new .NET account manager
  • Add slash command support (currently privileged only) for mass & class casting
  • Add support for social events (used initially for above)
  • Update to .NET Core 5
  • Refactor monster spawning to support new XML structures & new approach to spawns
  • Allow maps to be muted (e.g. for class casting)
  • Monsters will now prefix themselves based on level ("Trifling Goblin, Difficult Goblin, Deadly Goblin")
  • XP allocation for groups refactored
  • XP allocation for individual players refactored to be more reasonable and less grindy
  • Allow all creatures to have cookies / session cookies set (was previously players only)
  • Break up several monolithic files into separate components
  • Add support for calculating difference between two timestamps easily in Lua scripting
  • Add support for ignoring paths starting with .ignore in world directory
  • Replace formula parser / evaluator with NCalc now that it's available for .NET Core
  • Fix status application bug that would result in black screen on login if statuses were applied
  • Monsters now correctly respect statuses (freeze/sleep/etc)

The following tickets were addressed in this release - thanks to our intrepid and extremely patient testers

  • HS-1209 Experience rewards are somewhat punitive & have low level ranges
    • Corrected as part of combat revamp
  • HS-1203 Dar's memory loss corrected (Dar has had his memory upgraded)
  • HS-1202 Skill learning would take items even if multiple requirements were not met
  • HS-1198 Music cuts out after casting certain skills
    • Music corrected! Enjoy the tunes
  • HS-1191 requirements for mor creag lamh too high
    • mor creag lamh now has stat requirements in line with other stats
  • HS-1180 Dar asking for things he does not actually want
    • See HS-1203; corrected behavior
  • HS-1177 Experience is not universally scaled
    • Corrected as part of combat revamp
  • HS-1175 Notify player when target is already buffed
    • Status effects now inform you when player already has a similar buff
  • HS-1127 Certain maps and spawning scenarios creating enormous message queue backlogs
    • Corrected creature behavior that caused this
  • HS-1124 Flame Breath missing sound effect
    • Now with 100% more woosh
  • HS-1141 Invincible monsters spawned & disconnects
    • Related: HS-1127, HS-1209; Corrected creature behavior that caused this
  • HS-1121 Add more ocean to Rucesion
    • Now with more ocean
  • HS-1115 broken mobs at zero HP but not dying
    • Corrected queue issues
  • HS-1112 Monsters cannot path to players correctly
    • Corrected as part of combat update
  • HS-1111 East Woodlands mobs not moving and not dying
    • Corrected underlying behavior causing queueing issues
  • HS-1107 Potions cannot be purchased (herbalism NYI)
    • Potions available in Atavism Convention Hall until herbalism implemented
  • HS-1094 Base weight of many items is ridiculous
    • All item weights have been rebaselined to be less idiotic
  • HS-823 Only title music plays
    • HS-1198; enjoy the tunes
  • HS-813 Replying to message board post crashes client
    • Corrected, you may now reply without dying
  • HS-1084 Occasionally receiving black screen on login
    • Corrected login issue
  • HS-1083 Mobs vanished and did not reappear until relogin
    • Corrected queue issues
  • HS-1133 Drop rate of finished coral increased
    • Finished coral now available in Atavism Convention Hall
  • HS-1100 Monsters not casting spells
    • Corrected as part of combat updates
  • HS-1059 Normalize level ranges in hunting areas
    • Corrected as part of combat updates
  • HS-1049 Items not appearing in sell list / not detectable by NPCs
    • Corrected; NPCs will now see all items
  • HS-733 Random massive experience in Crypt
    • Corrected loot issue
  • HS-965 Rubberbanding in certain areas of Mileth / Crypt
    • Corrected queue issues
  • HS-905 Rubberbanding in Farashyid Orchard
    • Corrected queue issues
  • HS-1189 kobald vs kobold
    • Kobolds now have hair / corrected spelling
  • HS-1187 ao ard cradh does not remove lower cradhs
    • ao ard cradh now removes all curses
  • HS-1182 intensity on some spells / skills is too high
    • Reviewed existing buffs to match new intensity calculations
  • HS-1122 Can't be born in Loures for mundane birth
    • People can now indeed be born in Loures
  • HS-1103 Riona's Greeting typo
    • Riona talks gooder and stuff
  • HS-1098 Hybrasyl armor is misgendered
    • Corrected bank tab this is stored in
  • HS-1085 Chants not displaying
    • Chants now work for skills

Hybrasyl Server 0.7.3 ("Blanchefleur")

25 Sep 15:41
Compare
Choose a tag to compare

Bug Fixes

(Check out our active Alpha bug list at https://www.hybrasyl.com/bugs)

  • HS-608/609: Skills can be spammed
  • HS-605/HS-606 Messageboards accessible but messages cannot be posted
  • HS-610 Assail hit rate is too high / can be spammed
  • HS-611 skulling does not work when grouped
  • HS-604 Boards not always responding to clicks
  • HS-640 Cannot delete mail from mailbox
  • HS-641 Incorrect rending of "special characters" in mail / board posts
  • HS-642: Client will hang sending message to self or sending messages over a certain size
  • HS-664 Exchange is not working
  • HS-677 fix all items not repairing on repair all. also add new durability chat command
  • HS-676 Don't allow users to buy items they can't carry (due to weight)
  • HS-728 equipping armor doesn't show you stat changes
  • HS-761 clarify why you can't equip certain heavy items
  • HS-764 allow other items/gold to be picked up under ones that cannot be picked up
  • HS-780 Opening mail / board menu while dead locks client
  • HS-782 Item icon still on ground after being picked up
  • HS-804 Spell lines not always displaying correctly / don't display at all
  • HS-805 Black screen errors (gracefully handle user deserialization errors, display client message saying an error occurred)
  • HS-817 Unable to move iventory items into empty spaces of inventory
  • HS-828 can't learn a spell with exactly the right amount of gold
  • HS-853 This fix also fixes spell prerequisites on paperdoll
  • HS-889 spell chants not being displayed correctly
  • HS-878 statuses do not appear to clear properly
  • HS-879 fix incorrect icons on paperdoll display
  • HS-855 fix withdrawing items when it would put you over weight limit.
  • HS-858 prevent selling that would put you over gold cap
  • HS-863 Prevent casting of spells while doing other actions.
  • HS-835/HS-846/HS-848/HS-868/HS-884 Fix multiple problems with spell mastery / use count. Individual spell use count now tracked correctly
  • HS-894 List required items for skills / spells in paperdoll
  • HS-903 show stack quantity when depositing
  • HS-916 default castable sound to 0xFF instead of 0x00
  • HS-917 Removed doubled effect from heal effect
  • HS-939/HS-941 if you somehow get a stack of 0 or negative, remove it on use.
  • HS-940 fix missing trailing parentheses. change to brackets to follow stackable item pattern.
  • HS-938 Update exchange to use newer item removal/add/update code.
  • HS-972 exchange must be toggled on/off for new characters
  • HS-973 Fix dragging items onto themselves.
  • HS-975 add check for 0 quantity stacks on deposit.
  • HS-1008 fix variants going over level 99.
  • HS-1009 hp penalty at level 99 is broken
  • HS-1019 fix user equipment check
  • HS-1020 npcs with errors should not break maps
  • HS-1021 Check for both skill/spell prerequisites
  • HS-1022 fix item variants with minimum levels over 99
  • HS-1026 enable negative mp/hp effects on items
  • HS-1037 fix additem on user to actually insert into the world.
  • HS-1038 adjust throttling
  • HS-1045 Adjust level up animation speed
  • HS-1050 Add casting checks for required costs to not throw on cooldown.
  • HS-1071 Displaying pursuits as if a user was an npc is a bad time.
  • HS-1091 handle blind
  • Ensure messageboards are always loaded
  • Don't require full map download on refresh
  • Correct shield display bug
  • Fix gold dupe / item dupe issues
  • Display colored items correctly on ground
  • Merchants now support having an inventory that replenishes on a timer
  • Support multiple stacks of items in inventory; allow stacks to be drug on top of one another to collapse stacks
  • Allow scripts to support changing and retrieving citizenship of a player
  • XP: correctly distribute to on-map group members only in range of player who killed mob
  • Correct invisible monster problem (occasionally invisible monsters would appear and savage players)
  • Overhaul intent for spells to be more in line with sane expectations
  • Add support for client settings (which are actually sent from server), implement exchange settings using this.
  • Add parcel support (sending items to players)
  • Various socket fixes and scaling fixes
  • user can login multiple times under certain conditions
  • socket exceptions / disconnects don't always result in user being removed / cleaned up from world
  • Fix: shutdown implementation refactored / improved
  • fix hashcode collision for worldmap points
  • Fix potential for uint overflow on damage
  • Don't allow nonexistent users to receive parcels
  • Ensure monster AI respects freeze/paralyze/sleep
  • Fix issue where hybrasyl could not be run behind NAT'ed networks
  • Fix bug where OnDeath could run twice
  • Fix duplicate assail sounds

New Features / Functionality

  • Implement spell mastery
  • Add Monster AI pathfinding & casting support
  • Appmetrics integration for reporting # of control messages / opcodes received to Grafana Cloud (supports other targets)
  • Add message plugin support for plugins which can do things with player or mail / board messages. Implement Feedback and Bugreport mail targets using this plugin support.
  • Add Sentry support for exception reporting
  • Support administrative users requesting system shutdown, delayed shutdown request with job support (Chaos is rising up in N minutes)
  • Add GRPC support for retrieving user count, requesting shutdown, checking if server shutdown is complete
  • Add Monster support for complex aggro tables, healing now generates threat
  • Add parcel support
  • Add scripting resources for forcing threat change (e.g. rescue script)
  • Add full support for durability for items
  • Add support for loading/reloading xml into world data at runtime.
  • Handle putground (0x0c) client packet
  • Correct bugs in targeting under certain conditions (targeting now fixed for all known types of spells)
  • Implement /forget and /clevel commands for testing spells (forget / change castable level)
  • Add generate command
  • Support limiting statuses applied by category (e.g. curses, armor buff, only one can be applied at a time)
  • Add privileged chat using @ as whisper target
  • Allow status intensity to affect stat bonuses
  • Add diminishing returns on monster experience based on level
  • Implement tick processing for monsters (statuses / etc)
  • Item / spell / skill metafile support completed (paperdoll / etc client text)
  • Add aggro table support to monsters
  • Allow monsters to have their own Lua scripts
  • Add OnHear, OnDamage, OnHeal to Lua scripting hooks

Hybrasyl Server 0.7.2

28 Aug 18:48
Compare
Choose a tag to compare

Hybrasyl Server 0.7.2

New / Improved Features

  • Implement equipment restrictions for spells (e.g. "wield staff" to use staffs)
  • Implement item requirements for spells (e.g. "Gramail Prayer Necklace" for Gramail prayer)
  • Complete refactoring of spell intent to greatly simplify and improve spells
  • Add support for map-wide spell effects
  • Add plugin architecture for message handling. Initial implementation is for BugReport and Feedback as mail targets. Arbitrary plugins can be defined to handle any type of message; currently, however, plugins are only evaluated for sent mail.
  • Add support for fixed coordinate spawns that don't move or react to spells (training dummies)
  • Add full support for monster / spawn castables. Monsters now have defensive & offensive castables as well as spells they can cast on or when approaching death
  • Full support for spell lines / staffs & equipment affecting lines
  • Add GRPC support for future account manager integrations
  • Add Sentry reporting support (sentry.io)
  • Add version check / out of date check
  • Default most slash commands to requiring privilege
  • Refactor targeting to greatly simplify it
  • Add OnHear handler for monsters (to react to player speech)
  • Add support for monsters to have scriptables attached to them
  • Add OnDamage / OnHeal handlers for monsters
  • Add aggro table support for monsters
  • Add support for tracking recent monster kills
  • Support items being undamageable
  • Add support for NPC repairs (all / specific items)
  • Add significantly more error reporting & logging for Lua scripts
  • Implement support for skill & spell metadata

Data / Schema Changes

  • Allow spells to have multiple categories
  • Document most usable dye colors
  • Consolidate equipment booleans like master only, unique equipped, undamageable, etc into item flags

Bug fixes

  • Fix packets being received out of order by the client
  • Global dialogs not displaying NPC portraits or sprites

The following server tickets were resolved as part of this release:

HYB-6: Click to walk continues after hitting reactor
HYB-10: Quests do not populate on paperdoll Event tab
HYB-11: Spells/Skills do not populate on paperdoll Skill tab
HYB-20: PVP intent target does not always account for PVP status
HYB-23: Implement $RAND support for formula parser
HYB-32: Intent refactoring
HYB-61: Spell line reduction not yet implemented
HYB-62: Elemental damage modifiers not yet implemented
HYB-65: Implement rudimentary concept of durability
HYB-82: /legend usage results in a character that cannot login again
HYB-90: Status declarations in a castable do not override actual status
HYB-91: Castable adds status to caster, not target
HYB-92: Fix monster speech support for statuses
HYB-93: Improve privilege checks
HYB-94: Heavy item pickup bug (out of order packet problem)
HYB-95/96: Add RemoveLegendMark, HasLegendMark, GetLegendMark to scripting API
HYB-102: Color Updates
HYB-105: Add master boolean requirement to flags
HYB-106: Track last N monsters killed, add HasKilled function to scripting API
HYB-108: Add Skill Check to XML for items
HYB-109: Elemental variant is not a valid item flag
HYB-110: Null reference calculating some variants
HYB-112: Add GetScopedEphemeral and SetScopedEphemeral to NPC scripting API (supports storing player-scoped short-lived values in NPC memory)

Hybrasyl Server 0.7.1

07 Jul 21:32
Compare
Choose a tag to compare

Hybrasyl 0.7.1 Release Notes

New Features / Enhancements

  • Make Elemental bonuses (e.g fire -> water, light -> dark) configurable entirely via XML

  • Add beginning concepts of spell mastery, which adds different buffs (Reduce failure rate / +Dmg / +Heal / etc) to a base spell.

  • Asynchronously process outbound packets. This resolves a number of problems around large numbers of mobs dying or being impacted at once.

  • Add a lot of documentation in various places and produce and update documentation for scripting API on the Hybrasyl website (https://www.hybrasyl.com/docs/api/)

  • Add initial support for guilds, guild banks, and guild charters.

  • Add full support for banking (storing and retrieving items and gold with an NPC).

  • Add support for REPL-style Lua evaluation of scripting by whispering $. Allow arbitrarily created scripts to be evaluated.

  • HYB-12: Add privileged command /title to set titles

  • HYB-13: Add privileged command /return (functions similarly to recall scroll)

  • HYB-14: Add privileged command /resurrect for testing / qa

  • HYB-23: Add $RAND_10, $RAND_100, $RAND_1000 support to formula parser

  • HYB-64: Add quantity support to scripting functions TakeItem, HasItem, GiveItem

  • HYB-65: Implement durability

  • Add /spawnx command to spawn any number of random mobs on your map (for load testing)

  • Add /itemlist command to search for items.

  • Add /version command to display current running version of the server (server builds now also have githash embedded into the assembly).

  • Implement full metafile support for banked / vendorable items.

  • Ensure targets are attackable before, you know, targeting them

  • Keep track of the map and exact position of player death.

  • Added SendHome function in scripting to send the player back to their national spawnpoint.

  • Add AddSpell / AddSkill to allow scripts to add skills and spells to be added to a player's spellbook.

  • Add IsInGuild to allow scripts to check if a player is in a guild.

Bugs Squashed

  • HYB-3: Nylarlathotep will resurrect the living

  • HYB-5: /basemp has typo in response

  • HYB-7: Shout did not correctly implement range checking

  • HYB-17: Fix Sgrios Scar formatting

  • HYB-19: Fix dupe bug for rings and gauntlets on certain death conditions

  • HYB-36: Utility skills and spells not displayed on correct pane

  • HYB-79: Formulas with WEAPONDMG / WEAPONSDMG / WEAPONLDMG create errors if a weapon is not equipped

  • HYB-81: Update CastCost to accept and process percentages

  • HYB-82: /legend usage results in a character that cannot login a second time

  • HYB-78: Solid tiles not actually solid (add privileged command /walls to turn off collision checking)

  • Fix occasional bug where encrypted packets were not processed correctly if received out of order.

  • NPC portraits now display correctly.