v4.0.0 -> Dev#119
Open
xx-shitai-xx wants to merge 461 commits intodevfrom
Open
Conversation
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).
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
eee3a08 to
5ba9dbf
Compare
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.
Database NPCs that get saved will no longer create duplicates. Deleting NPC and weapon files will once again remove them from the server.
The groupmaps server option now supports glob pattern matching. Fixed a bug where the group triggerhacks could not clear the group identifier.
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.