Skip to content

Backport the event rotation branch to dev#133

Merged
sepalani merged 4 commits intodevfrom
event-rotation
Jul 25, 2025
Merged

Backport the event rotation branch to dev#133
sepalani merged 4 commits intodevfrom
event-rotation

Conversation

@sepalani
Copy link
Copy Markdown
Owner

@sepalani sepalani commented Jul 8, 2025

This PR backports code from the branches used by the open beta (i.e. event-quest-rotation/event-quest-rotation-full).

It should also fix:

  • Starting standalone (OPN, LMP, FMP) server
  • Python2/3 compatibility

Regarding some of the modification done to the original commits:

  • Load mh.quest_utils.QuestLoader("event/quest_rotation.json") from the FMP server directly (i.e. remove parameter pollution)
  • Skip .bat scripts, *.ini, remote/alternative config
  • Skip central/cache/session code and its whitelist code
  • Skip the MySQL code
  • Skip code reverted to a previous state without reason, I assume they're probably from merge conflicts (e.g. comments removal, code de-linted, log messages removed, etc.)
  • Specialise sendReqConnection rather than creating patchCheck functions

Otherwise, I do plan follow-up PRs to address the TODO/backport comments. I think I'll prioritise the MySQL part first, then implement the rest.

…ates and .json files for each quest

Removed unneeded default parameter

Finalized Jump Four Jaggi, added tentative Rage Match, and added more to the quest formatting system.

Added "Flooded Forest Free-For-All" and fixed bug

Changed quest rotation system to a .json-based system that's refreshable via the interactive (-i) menu

Added bytes for small monster wave transition criteria

Added ability to programatically add small monsters

Added more programatically-added small monster information

Addressed Sepalani comments
Updated Mercy Mission to have corrected small monsters

Removed need for .dat small monster files

New event quest
@sepalani sepalani marked this pull request as ready for review July 8, 2025 14:27
Copy link
Copy Markdown
Collaborator

@InusualZ InusualZ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Porting seem to be pretty straightforward. Most of the additions come from the json (events).

self.sendReqMemoryCheck(0x806311a8, 56)
else:
PatRequestHandler.sendReqConnection(self)
elif address in [0x806308e8, 0x806311a8]:
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I saw this while reviewing the other PR. I think this can be converted into a general purpose check. Since if you are hosting a private server, you may want to check that all the player can play with each other. So maybe adding a NATNEG domain field in the config file and checking that it match it wouldn't bad

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I agree and do plan to add that in a follow-up PR. It'd be especially useful since the Japanese version used a different one (IIRC) and that the domain can also be changed using a (Riivolution) patch.

@sepalani sepalani merged commit 09d294e into dev Jul 25, 2025
13 checks passed
@sepalani sepalani deleted the event-rotation branch July 25, 2025 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants