Skip to content

Commit

Permalink
Merge pull request #304 from hybrasyl/prep-0.8.0
Browse files Browse the repository at this point in the history
Hybrasyl 0.8.0 ("Saoirse")
  • Loading branch information
baughj authored Sep 25, 2021
2 parents 1234da4 + cbccc26 commit 96db1a9
Show file tree
Hide file tree
Showing 288 changed files with 8,951 additions and 5,433 deletions.
230 changes: 1 addition & 229 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,231 +1,3 @@
# Hybrasyl Server Changelog

*This is the changelog for the server project. Releases that have names
generally add fairly significant features, whereas ones without are primarily
for bugfixing and other updates.*

# Hybrasyl Server 0.7.0 ("Daithi")

*To Be Released: March 15, 2020*

### Bug Fixes

* Items that are generated by scripting or other events can now be picked up correctly.
* Coma handling in groups now works as you would expect.
* Creature death no longer results in 0-gold piles.
* EndDialog scripting function should not only end dialog, but also close open dialog windows
* Correct bug in spawn calculations where it would take longer for initial spawns to populate than usual
* Fix several bugs in grouping (player death would be immediate, etc)
* Fix a number of dialog and NPC bugs (sequences would terminate inappropriately; NPC would lose state)

### Features

* Reactors (map tiles that can react to nearby events, such as dropped
items or a player or monster moving into the tile) implemented.
* Full spawning implementation. SpawnGroups, Spawns now spawn and populate correctly with loot/xp/gold.
* Loot implemented (Loot tables, loot sets, etc). New `LootBox` class for handling loot calculations.
* Castables can now use and fire Lua scripts and start dialog sequences.
* JumpDialogs and FunctionDialogs added. Jump dialogs can be used in
an NPC dialog tree to start new sequences or jump to different
dialogs. Function dialogs can be used to run arbitrary Lua scripting
code in between two dialogs (potentially to take an action - such as
spawning a monster, dropping an item, starting a dialog, etc).
* Add two new dialog types for ease of scriptable dialog construction (TextAndJump, SimpleDialogSequence)
* Asynchronous dialog support (dialogs between two players, or a player and an NPC) implemented.
* Global dialog support implemented (reusable, scriptable dialogs)
* Scripting support improved and extended as was needed to support various beginning game NPCs.
* Hybrasyl time system reworked a bit (simplified). Legend marks
updated to support "timestamp" and "creation" date; timestamp being
what is displayed in the legend.
* Significant functionality improvements to scripting API. NPCs can now have temporary "memory" they can use to remember general information.
* Add support to transition between two active dialog sequences.
* Add support for dialog options to trigger new sequences.
* Implement TakeItem for scripts, so that NPCs can remove items from a player's inventory
* Add support for setting and clearing permanent and session cookies (arbitrary player information which can be used by scripts).
* XML/XSD overhaul. Duplicate types removed, many things cleaned up & fixed. XML objects and typing are in a much better, cleaner state than previously. No impact to end user XML besides some namespacing changes.

### Technology / System Improvements

* Hybrasyl upgraded to .NET Core. As a result, Hybrasyl Server can now run on GNU/Linux and OSX, among others.
* MoonScript now used for Lua runtime instead of nLua.
* Serilog now used for logging (log4net replaced). Logging is now much cleaner. Game activity / scripting / spawning now have separate logfiles.
* Upgrade to xsd2code 5.


# Hybrasyl Server 0.6.1

*Released: March 4, 2018* - [View this release on GitHub](https://github.com/hybrasyl/server/releases/tag/0.6.1)

### Bug Fixes

[Fixed] #129: Staves / rings displayed incorrectly after relogging
[Fixed] #130: Can't assail without casting a spell first
[Fixed] #138: Who list shows users who are not logged in
[Fixed] #140: Server start error due to incorrect port numbers for control service
[Fixed] #142: Minor bug fixes to casting
[Fixed] #143: Statuses not working under certain XML conditions / clean up XML definitions
[Fixed] #144: Status duration calculated incorrectly
[Fixed] #146: Statuses cannot be serialized
[Fixed] #147: Inappropriate sound effects played for statuses which have no sound effects

# Hybrasyl Server 0.6.0 ("Bruce")

*Released: January 25, 2018* - [View this release on GitHub](https://github.com/hybrasyl/server/releases/tag/0.6.0)

### Features

* Full status support (poison, sleep, buff/debuff, etc) added
* Castable support is now complete, with the notable exception of scripted castables
* Loot tables / loot sets implemented
* NPCs now support learning/forgetting skills/spells, selling/buying items, and sending/receiving parcels
* Support for elemental damage has been implemented
* Lua scripting is now supported (IronPython has been removed entirely)
* Cooldowns for castables have been implemented
* Many, many, many XSD/XML updates
* Fix packet throttling implementation
* Full support for monster spawning with variance (stronger or weaker monster) support
* Add support for heal/damage modifiers, reflect chance / intensity, element overrides (offensive/defensive)
* Monsters now support a rudimentary AI for moving and attacking
* Improved chat command support with a rudimentary plugin architecture. Also, `/help` now works!
* Begin to add support for multithreaded game logic / packet handling (controlmessages only, currently)
* Add a secondary HTTP listener for API calls for service requests (shutdown/restart server, etc)

### Bug Fixes

* All extant network bugs should be fixed - assail not working, desynched sounds, etc
* When a significant number of monsters die simultaneously (>15) on a crowded map, a burst of server-wide lag could occur

### Other

* For ease of maintenance and use, the XML/XSD code has been integrated back into the main solution
* Refactor how packet handling is done with flags and player conditions
* Hybrasyl now targets 64-bit .NET 4.7
* Death handling now uses XML config values as opposed to relying on any hardcoded configuration
* Added a lot more packets to the new packet structure


# Hybrasyl Server 0.5.5 ("Devlin")

*Released: December 20, 2016* - [View this release on GitHub](https://github.com/hybrasyl/server/releases/tag/0.5.5)

### Features

* Spell targeting implemented
* Cast lines for castables supported
* Creatures and players can now die and have OnDeath events
* Basic player status support (such as poison, sleep, etc) implemented
* Monster spawning support implemented (regularly spawning new creatures in an area, using spawngroups)
* Castable support is mostly implemented; 0.5.6 will complete the implementation (NPC learning / forgetting skills, proper directional usage, etc)
* Skills and spells are now movable on the client pane
* Use skill / use spell handlers implemented

### Bug Fixes

* National support for spawn locations fixed / updated
* Two-handed equipment should now properly prevent a shield from being equipped
* Two-handed flags on items should work as expected
* Items allowing negative stats / HP / MP now fixed
* Assail now properly uses the sound from the first assail in your list

### Known Issues

* Server socket state can sometimes get a little wonky which can require a restart. We're working on it.
* Client sometimes cannot login again after logging off.
* Packet throttling is disabled pending reimplementation. This means you can spam attack things at the moment, and also is related to the socket state issues.

Required SDK Version: at least 0.5.5.17

# Hybrasyl Server 0.5.2 ("Dar")

*Released: June 6, 2016* - [View this release on GitHub](https://github.com/hybrasyl/server/releases/tag/0.5.2)

### Features

* Implement usage support for items. Items now respect their XML definitions
for usage. For instance:

```xml
<item>
<use consumed="true">
<teleport x="3" y="3">Test Village</teleport>
<playereffect mp="50" hp="50" xp="50" gold="50"/>
<effect id="3" speed="1"/>
<soundeffect id="6"/>
<scriptname>mycoolitem.py</scriptname>
...
</item>
```

Any of these use cases can be combined with one another, opening up a lot of
possibilities for item scripting.

* General concept of healing (increasing player/creature HP) implemented.
* Python API scripting now supports damage/healing/etc.
* Legend marks implemented, along with Python scripting API that can be used by
in-game scripts to manage marks.
* Example NPC script added, to help users who wish to learn more about the
Python scripting API. Documentation is coming - we promise.

### Bugfixes

* Item quantities are now appropriately displayed in the exchange window.
* Level and experience overflows corrected, maximum level is now set as a
compile-time constant (`Constants.MAX_LEVEL`) and defaults to 99.
* Item bonuses (AC, magic resistance, etc) are now correctly recalculated at
login (thanks to @woghks123 for reporting this issue).
* `README` updated.

# Hybrasyl Server 0.5.1

*Released: May 30, 2016* - [View this release on GitHub](https://github.com/hybrasyl/server/releases/tag/0.5.1)


### Features

* Sample XML data updated.
* Documentation updates.
* Added support for server (Aisling) time.

### Bugfixes

* Bug fixed where the server would write out incorrect XML, causing the
login/world port to be the same.

# Hybrasyl Server 0.5.0 ("Riona")

*Released: May 23, 2016* - [View this release on GitHub](https://github.com/hybrasyl/server/releases/tag/0.5.0)


### Features

* Redis is now a requirement, and is used for storing state data such as users,
board posts, and mailboxes.
* All world data is now read in from XML files. A new integration library
(called, appropriately, SDK) has been created to manage the parsing,
validation and writing of XML files.
* As a result of the above, the server no longer uses MySQL, and all references
/ dependencies for it have been removed.
* Thanks to Michael Norris (@norrismiv), we now have a new launcher, which
displays news and should support a lot of new features in the future.
* Several item, item display and exchange bugs fixed.
* Experience implemented in a real way (with leveling support).
* Nation support (citizenship) implemented, along with logging in to expected
spawn locations (national spawnpoints).
* Character info panel now functions as expected.
* Mailbox / forums fully implemented.
* Grouping support implemented.
* Unique / unique equip item flags, negative weight, master restrictions
implemented.
* Networking stack completely reimplemented using async sockets with separate
send/receive threads.
* Beginning of skill/spell implementation - /skill <skillName> will give your
character a skill. Still a lot to be done here.
* Assail / spacebar support for assail implemented.
* The beginning of spawning support has been implemented. Unfortunately, at the
moment, this simply means that wolves and bees have infested Mileth.

### Bugfixes

* Poor, long-suffering Riona in Mileth, critically wounded in a prior release,
will now respond to Aislings again.
x
The release tracker (https://github.com/hybrasyl/server/releases) is much better at this. Go there.
103 changes: 0 additions & 103 deletions CONTRIBUTING.md

This file was deleted.

40 changes: 19 additions & 21 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,23 @@
This is a list of all the contributors who have given their time and effort to
develop code for the project.

## [Hybrasyl Server](https://github.com/hybrasyl/server)

* [Justin Baugh](https://github.com/baughj)
* [Pete Lukich](https://github.com/plukich)
* [Cameron Moseley](https://github.com/moseleyc)
* [Michael Norris](https://github.com/norrismiv)
* [Luke Segars](https://github.com/anyweez)
* [Kyle Speck](https://github.com/kojasou)

## [Hybrasyl Launcher](https://github.com/hybrasyl/launcher)

* [Justin Baugh](https://github.com/baughj)
* [Michael Norris](https://github.com/norrismiv)

## World Data & Content Engineering

* [Justin Baugh](https://github.com/baughj)
* [Thomas Cole](https://github.com/caeldeth)
* [Mark Nix](https://github.com/fluffguck)
* [Michael Norris](https://github.com/norrismiv)
* [Shadowoffice](https://github.com/shadowoffice)
* [Hybrasyl Server](https://github.com/hybrasyl/server)
- [Justin Baugh](https://github.com/baughj)
- [Pete Lukich](https://github.com/plukich)
- [Cameron Moseley](https://github.com/moseleyc)
- [Michael Norris](https://github.com/norrismiv)
- [Luke Segars](https://github.com/anyweez)
- [Kyle Speck](https://github.com/kojasou)

* [Hybrasyl Launcher](https://github.com/hybrasyl/launcher)
- [Justin Baugh](https://github.com/baughj)
- [Michael Norris](https://github.com/norrismiv)

* World Data & Content Engineering
- [Justin Baugh](https://github.com/baughj)
- [Thomas Cole](https://github.com/caeldeth)
- [Dalta](https://github.com/smashleymcnerdface)
- [Mark Nix](https://github.com/fluffguck)
- [Michael Norris](https://github.com/norrismiv)
- [Shadowoffice](https://github.com/shadowoffice)

4 changes: 4 additions & 0 deletions Hybrasyl.sln
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ Global
{0B5276B1-BE53-4CB2-9C68-5EBBB5624631}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0B5276B1-BE53-4CB2-9C68-5EBBB5624631}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0B5276B1-BE53-4CB2-9C68-5EBBB5624631}.Release|Any CPU.Build.0 = Release|Any CPU
{01271B5D-5777-4E3E-B054-0F064F71CE8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{01271B5D-5777-4E3E-B054-0F064F71CE8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{01271B5D-5777-4E3E-B054-0F064F71CE8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{01271B5D-5777-4E3E-B054-0F064F71CE8E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -242,5 +242,3 @@ Hybrasyl follows the standard Github fork model, so
Please note that in order to contribute to the project, you must agree to the
terms of
[our contributor agreement](https://github.com/hybrasyl/server/blob/master/CONTRIBUTING.md).


Loading

0 comments on commit 96db1a9

Please sign in to comment.