Commit graph

51 commits

Author SHA1 Message Date
Lalyo Boyadzhiev
7d7dc9eef0 Revert unintended EventChip->GoldenArcher packet rename and formatting churn
The generic EventChipRegistrationRequest/EventChipExitDialog/EventChip
RegistrationResult packets predate this feature and are reused by other
NPCs; renaming them to GoldenArcher* broke the public packet API and
docs filenames for no benefit. Also reverts unrelated BOM removal,
blank-line and escaping churn (GameConfiguration.cs, Character.cs,
Directory.Packages.props, Startup.csproj) and ~3900 lines of
trailing-whitespace-only diff noise in ServerToClientPacketTests.cs,
keeping only the one genuinely new test for EventChipRegistrationResult.
2026-07-26 16:48:33 +02:00
Lalyo Boyadzhiev
9a131acaac Add Golden Archer item registration feature
Squashed from the feature/golden-archer branch history (62 iterative
commits) into a single commit for reviewability. Adds a generic
item-registration engine (IItemRegistrationStrategy + feature plug-in +
NPC-configurable rules) with a concrete Golden Archer / Rena strategy,
the EventChip* packets it uses, and supporting EF migrations.
2026-07-26 16:47:41 +02:00
sven-n
709ac8b564 Updated generated files 2026-07-26 09:42:54 +02:00
Rhefew
de6d0aa8c3 fix: correct QuestProgressExtended packet type from C1 to C2
The QuestProgressExtended packet (F6 0C) has a declared length of 272 bytes.
A C1 packet header only supports a 1-byte length field (max 255 bytes), so
the correct header type is C2, which uses a 2-byte length field.

- Rename C1-F6-0C-QuestProgressExtended_by-server.md to C2-F6-0C-...
- Fix the packet type byte (0xC1 -> 0xC2) and length field width (1 -> 2 bytes)
- Fix field offsets: C2 header is 4 bytes (not 3), shifting all fields by 1
- Update the link in ServerToClient.md
2026-07-12 06:50:04 +02:00
sven-n
411722f0e2 Alliance packets and join/leave logics corrected 2026-03-29 21:44:29 +02:00
sven-n
44bab6a204 Fixed build 2026-03-25 21:20:53 +01:00
sven-n
be2c5a78e2 Implemented loss of experience after player death 2025-05-18 14:32:50 +02:00
DavidTs93
dab82abca8
Add packet handling for base stat setting 2025-03-13 23:36:38 +02:00
sven-n
8c1a52dc1a Added extended message for mails
The old structure doesn't have enough space for the larger appearance data. I made it even larger than needed for future extensions.
2025-01-20 17:48:35 +01:00
sven-n
0039043a33 Fixed money drops in extended protocol 2024-12-23 17:15:59 +01:00
Benito Go III
01150d0747 Extend walk packets with source x,y 2024-11-23 03:08:36 +08:00
sven-n
7fb2294d9f Refactored stats updates and consolidated extended messages 2024-10-17 21:47:44 +02:00
sven-n
f7045083d5 Some adjustments and extensions for the network protocol 2024-10-05 17:30:07 +02:00
sven-n
5dae0876ce Implemented extended item serializer 2024-09-28 16:58:08 +02:00
sven-n
9a85e7fc69 Added extended appearance serializer 2024-09-28 16:39:49 +02:00
sven-n
50489a9f79 Extended protocol to solve some limitations
Now we can transmit values of Health, Shield, Mana, AG, Damage, Experience above 65k. I widened all to 32 bit.
Additionally, I added a message to add more than one statpoint at a time.

These changes will be added to my MuMain sources soon as well.
2024-09-24 19:51:47 +02:00
bernat
4f9c6f43eb change code from ServerToClientPackets.xml and other refs 2024-08-26 11:25:00 +02:00
sven-n
f27f82a724 Implemented Chain Lightning Skill for Summoner class 2024-07-15 20:12:11 +02:00
sven-n
24e99a3e51 Added missing packet definitions for duels 2024-07-07 09:52:45 +02:00
sven-n
57c22dc560 Current state of the chaos castle event
It kinda works now, but doesn't handle all edge cases yet.

TODO:
* before start:
  * Check if > 1 player
  * allow buff in safezone
* on enter:
  * leave party
  * remove buffs of skills
  * remove fenrir, horse(?), raven
* on end:
  * Ranking
* Other:
  * Handle relogin when player was in CC before
2023-02-03 20:50:38 +01:00
sven-n
3c7edf8520 Implemented MU Helper
Inspired by PR #200.
2022-12-18 21:00:09 +01:00
afrokick
a10bd85fa6 add MapStateChange packet 2022-11-29 22:35:08 +03:00
sven-n
0282c30677 Implemented Nova Skill 2022-10-23 17:14:29 +02:00
sven-n
b4a571ded0 Current state of ragefighter skills
to-do:
- Dark Side hits targets, but without the right visual effect on the client
- solve to-dos in the committed code
2022-09-22 18:51:35 +02:00
sven-n
eefab4af98 Added sending of unlocked character classes 2022-07-06 21:58:19 +02:00
Trung Hoàng
3e8e20ed98 Added network packet for the blood castle state 2022-06-03 22:06:27 +07:00
Trung Hoàng
aefc1d5708 Improvements for the blood castle packets 2022-06-02 01:43:24 +07:00
sven-n
bf801ce871 Added network packet for the blood castle score 2022-05-31 20:47:23 +02:00
sven-n
f5b8ad6764 Added packet definition for terrain changes 2022-05-24 17:15:40 +02:00
sven-n
87d7888dcb
Implemented effects by consuming items (#237)
* Implemented effects applied by consuming items

* Cleanup magic effects after disconnecting

* Minor improvements
2021-12-19 13:27:59 +01:00
sven-n
c13c4a6b67
Box of luck mechanism (See #231) (#236)
* Fixed an issue in the model generator code

When an inherited base class has a collection with a standalone type which would cause the generation of a join-class for a many-to-many-relationship, it didn't create the required join class. It created the join class for the inherited class twice. Instead of taking names from the declared type (the base class), we must use the reflected type (the actual, inheriting class).

* Extension of the data model

* Extension of the drop logic

* Allow more than one ItemDropItemGroup per item and money drops

* Extended packet definitions by some item drop effects

* Added view plugins to show effects

* Added chat commands to test effects

* Added data initialization for box of luck and similar

* Adapted logic to consider effects

* fixed data initialization

* Fixed duplicate drops at 'Blue Ribbon Box'
* Sorted items to spot duplicates easier

* removed some empty lines

* Added Rings of Warrior to new characters

* Removed unused parameter
2021-12-18 15:35:03 +01:00
sven-n
d013ff31ad
Implemented master experience gains (#235)
* Added packet definitions

* Added plugin to show level up effects to other players

* Added Stats.MasterPointsPerLevelUp

* Extended the GameConfiguration

* Adapted the experience gain logic

* Adapted the view plugin

* Fixed experience calculation

It's now more closer to the original server.
2021-12-07 20:28:27 +01:00
sven-n
05507d733d
Support for client version 0.95d (#227)
* current state of 0.95d integration

notes:
* initialization data is not complete - it was just copied from 0.75 by now
* there is some kind of bug, so that the client doesn't show the character when entering the game. couldn't find out what's wrong yet

* added missing packet changes

* fixed invisible character

thanks @fos83 for the hints

* Fixed hit messages which were sent with false header code

The character moved on the map instead

* Fixed skill animations

* Fixed skill usage

* Fixed consumption of items

* fixed guild creation

* fixed gate entering and teleport skill

* fixed adding/removing skills

* fixed closing chaos machine dialog

* Adapted data initialization to actual 0.95d config

* Devil Square - current state

My current state of implementing the devil square event.
Still some things to do - i didn't do any tests yet, too.

* Fixed missing ticket removing when entering event

* Fixed entering devil square event

* the result message had the wrong size
* fixed intepreting the level of the devil square and the inventory slot index

* Fixed selecting the correct map definition

* fixed att files for devil square

* Added missing player limit

* Added missing max item level for event tickets

* Set Noria as safe zone for devil square

* Use DevilSquareInitializer of Season 6 for Season 6

* Improvements for Devil Square (etc.)

* fixed state change notifications, as they're sent 30 seconds in advance
* changed locking to use a SemaphoreSlim to prevent locking threads of the thread pool

* Current state of the devil square development

New stuff:
* Rewards
* Ranking

Changes:
* Cleaned up the item drop generator a bit
* Optimized money distribution within a party

What's missing:
* Different monsters should spawn at different times. The monsters get harder over time. At the end, there is a one-time spawn of 5 boss monsters.
* I'm also not sure, if the packet for the result is correct, because in my tests, the client showed nothing.
* Another thing is, that when a client leaves the game while in devil square, he will respawn there, too. Instead, he has to be moved back to the noria map when he leaves the game.

* Fixed that a player respawns at event maps after reconnection

Also fixed, that the player kept getting logged in the game even if it already disconnected. Exceptions happened when the server was trying to send some packets after it was disconnected.

* Update ConnectionExtensions.cs

* Implemented wave based spawns for mini games

* fixed namespace

* fixed regex replacement for resistancies

* updated todos

* Fixed item extension method CanHaveSkill

When an item can not be equipped, it can't have skill. Because of this bug, scrolls and orbs dropped with skill, because they have a skill defined in the ItemDefinition. But this skill is meant to be learned, not meant to be equipped.

* added missing comment

* Fixed versioning of the packet handler for normal hits

* Fixed sending of MiniGameScoreTable

When not using the constructor, the header code is not set.

* Fixed item serialization

* Added check for the ticket item level

* Some code fixes according to codacy

* Event ticket ingredients should drop

* added missing ConfigureAwait(false)

* more missing ConfigureAwait(false) ...
2021-11-05 22:06:33 +01:00
sven-n
4723dd41aa Implemented skin chat command
Available for game masters.
Contains required code for the 'Transformation Ring' feature.
2021-07-20 21:29:18 +02:00
sven-n
ff5678b3c4 Implemented poison damage effect 2021-07-13 21:49:24 +02:00
sven-n
2f9ab62809 Adaptions for teleport skill in version 0.75
now it's finally working correctly
2021-06-27 16:45:19 +02:00
sven-n
87b7f6dc3b Added some packet definitions
* Pet commands (dark raven)
* Summoned monsters
* Guild war/soccer
2021-05-17 21:28:40 +02:00
sven-n
6c09aa1a1a Implemented respawn packet (F3 04)
It's used in older versions - not sure until which... I estimate until Season 2 to 4.
2021-05-16 18:14:23 +02:00
sven-n
50c4ab953b Added PoisonDamage packet 2021-05-16 17:08:42 +02:00
sven-n
f744cea931 Corrected packet header of GuildInformations075
Also added unused, but available packet with code 0x5C (SingleGuildInformation075).
2021-05-16 15:59:25 +02:00
sven-n
f6ee2cf007 Added some guild packets for version 0.75 2021-05-16 15:45:47 +02:00
sven-n
d0156259d5 Party Fixes for Version 0.75 2021-05-14 20:25:30 +02:00
sven-n
bb1a71cff5 Fixed some issues for version 0.75
* Closing the chaos machine
* Adding/removing skills
* Appearance of elf armor
2021-05-13 18:14:10 +02:00
sven-n
c8426c2a12 Fixed some features for version 0.75
* Area skills
* Item consumption
2021-05-12 20:40:18 +02:00
sven-n
c0bd689b3a Gameplay improvements for Version 0.75
* Character is not moving back to its spawn point after attacking a target. Reason was the attack animation packet, which should not be sent back to the attacking player.
* Character walking packets
* Money drops
* Quest packets should not be sent, because this version doesn't have quests
* Map change packet was corrected
2021-05-08 18:33:32 +02:00
sven-n
db288be438 Fixed packet OpenNpcDialog 2021-04-10 12:22:09 +02:00
sven-n
df898d4283 Updated packet docs 2020-12-04 16:09:21 +01:00
sven-n
53b70447ea Separated designation from fileName 2020-03-01 20:32:31 +01:00
sven-n
aea17c02f3 Fixed naming scheme to fix links in GitHub Pages
Jekyll (more precisely: jekyll-relative-links) has problems when there are any escaped characters or unescaped brackets in the links.
As I don't expect any improvements in this direction, I change the naming scheme in my project.
2020-03-01 20:20:35 +01:00
sven-n
4ac635009d Changed link rendering
Instead of using < ... >, we use escaping.
2020-02-29 00:21:30 +01:00