Skip to content

v4.0.0 -> Dev#119

Open
xx-shitai-xx wants to merge 461 commits intodevfrom
beta4
Open

v4.0.0 -> Dev#119
xx-shitai-xx wants to merge 461 commits intodevfrom
beta4

Conversation

@xx-shitai-xx
Copy link
Copy Markdown
Collaborator

No description provided.

LoneBoco and others added 22 commits July 13, 2025 20:27
Fixed a variety of shoot related bugs in the process.  Probably broke 5.007+ shoots.
Changes to NPC scripts cause the NPC to be "deleted" and the props to be re-sent to the clients.  The clients have some sort of security that only allows a script to be sent once.

Changes to weapon scripts cause the weapon to be deleted and re-added to the player.

Changes to a class script cause both NPCs and weapons that join to that class to update their scripts.

Clientside code in classes is now properly sent to players.  There is no need to the clientside join hack (in fact, the hack has been disabled for npc-server enabled servers).
xx-shitai-xx and others added 7 commits August 8, 2025 00:03
The code will now allow `if (created) join myClass;`.
It will also allow `if (created) { stuff; join myClass; }`.
The documentation for the clientside hack has also been improved to discuss how it works and how to avoid problems with it.
Improved internal gmap handling to better mimic a single large level.  Serverside scripts will now see all the entities on the whole gmap instead of the ones only in the current level, and those entities will have global tile positions for the whole gmap.  Additionally, level NPCs are able to cross the level boundary when on a gmap.

Implemented the syncdistancex, syncdistancey, and syncbydistanceinside server options.
Inverted:
- gr.removeguild
- gr.setguild
- gr.rcchat
- gr.npc.move
- gr.npc.setpos
@LoneBoco LoneBoco force-pushed the beta4 branch 2 times, most recently from eee3a08 to 5ba9dbf Compare March 31, 2026 23:36
The new settings system lets us easily cache settings values and uses an event system to make sure the cache is updated when the setting gets changed.
Added a new server option, unloadinactiveleveltime, that controls how often levels are unloaded.  Even if the time is set to 0 (never unload), group maps will still unload after 10 minutes of inactivity.
Identifiers containing periods (and even consisting entirely of periods) are valid variable names.  The identifier lexing and parsing has been changed to handle this.  Additionally, the storage types are no longer tokenized and are instead kept part of the variable name.  This was required to simplify the logic of handling periods.
Added the ability to compile strings and mathematical expressions on demand.
The command text will be passed through the translation engine before being reparsed and executed.
The #U message code will now translate the contained text before message codes are processed.
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.

2 participants