Releases: Zezombye/overpy
Releases · Zezombye/overpy
v8.1.0 - Season 13
v8.0.4
What's Changed
- Add missing secondary fire custom game settings for Julia by @netux in #379
- Added throne of anubis by @DragonEngineer in #380
- fix: remove unneeded game mode settings check by @CactusPuppy in #383
New Contributors
- @DragonEngineer made their first contribution in #380
Full Changelog: v8.0.2...v8.0.4
v8.0.2 - Support Juno
What's Changed
- tidying up by @CactusPuppy in #375
- Support Juno by @netux in #377
Full Changelog: v8.0.1...v8.0.2
v8.0.1
What's Changed
- fix(js macros): do not overwrite global
console
in local scope by @netux in #369 - fix(custom game settings): add
ultDuration%
to Mauga by @netux in #370 - fix: prevent state from previous compile from being retained by @CactusPuppy in #371
- fix: custom game settings parsing and missing Roadhog setting by @CactusPuppy in #372
Full Changelog: v8.0.0...v8.0.1
v8.0.0
What's Changed
- BREAKING: Obfuscation directives are no longer supported.
- Since obfuscation no longer works with the new Overwatch 2 Workshop editor, and since it is also a pain to maintain, support is being dropped for this feature.
- BREAKING: All features reliant on JavaScript execution (namely JavaScript macros and custom game settings templating) no longer support the full ES6+ scope, though most ES6+ syntax can be used. Other types of macros are unaffected.
- This change was made to patch a sandbox escape vulnerability present in versions of OverPy before 7.3.0. See GHSA-j79q-p74q-7328 for more information.
- For a full list of features which can no longer be used, please refer to this README.md and look for all features listed under ES versions higher than ES5.
- Added all Season 11 changes, including Runasapi and Flashbang.
Bugs Fixed
- Added Fourth and Fifth to
Limit Valid Control Points
(available, but seemingly unused values) - Added Pharah Hover Jets Maximum Time setting
v7.2.0
What's Changed
- fix 348 again by @CactusPuppy in #361
- vm2 fix by @CactusPuppy in #362
- season 10 by @CactusPuppy in #363
Full Changelog: v7.0.1...v7.2.0
5.0.0
Breaking stuff
The 5.0.0 release is not backwards-compatible and will break all existing overpy scripts. However, you can easily convert the bulk of it with a few regexes.
In VS Code, do Ctrl+F, make sure to check the regex button, then apply the following replacements on every .opy file:
@Rule (.*)
rule $1:
^(@.*)
\t$1
The following replacement is aimed at replacing rule conditions. As such, you should not do "replace all", but check for every occurrence if it is indeed a rule condition.
^if (.*):
\t@Condition $1
The rest of the conversion should be performed manually.
The following breaking syntax changes have been made in 5.0.0:
- The
@Rule
annotation is now a block, with its ownrule
keyword. - As rules are now a block, all actions must be indented.
- Annotations are below the
rule
block, and indented. - Rule conditions are now defined by a special
@Condition
annotation. You can have several@Condition
annotations in the same rule. - Subroutine rule names are now set with the
@Name
annotation. It can be omitted; the rule will be generated with a predefined name. - The
debug
function has been renamed to theprint
function. - The
Last Of(Array)
workshop function is nowArray.last()
instead of the misleadingArray[-1]
. - The
raycast(start, end, los=BarrierLos.BLOCKED_BY_ALL_BARRIERS)
function is nowisInLoS(start, end, BarrierLos.BLOCKED_BY_ALL_BARRIERS)
. - Localized strings must now follow the exact in-game format. This means things such as
l"Round {}: {}".format(A,B)
are no longer supported. - Triple-quoted strings no longer exist and are instead treated as normal strings. To do a multiline comment, you can use the C-like /* */ multiline comment.
- The
math.pi
andmath.e
constants have been replaced byMath.PI
andMath.E
. - The
#!noEdit
directive has been removed. Obfuscation will now always use noEdit.
Improvements
- The new PTR functions have been added. Newlines are now supported.
- The backend was changed to use an AST, which will enable better optimizations (such as optimizing
vect(1,1,1)+vect(2,3,4)
intovect(3,4,5)
, as well as the backend being cleaner. - The
continue
andbreak
keywords were added and support the do/while loop, as well as theswitch
statement forbreak
. - Line comments are now compiled as well to take advantage of the new comment feature that allows commenting an action/condition.
- Documentation for constants has been added (where Overwatch has documentation).
- Added types for functions. Type checking will come soon.
Bug fixes
- Fixed some custom game settings not being able to be decompiled (thanks matemato/effyn)
- Fixed the negative operator not working on vectors (thanks terrorwolf)
- Fixed the
else
statement not being properly parsed on certain cases (thanks doomfist00)
Notes
- Decompilation currently doesn't work (it is neither updated for the new overpy format, nor for the new workshop text format). However, you can still use it for decompiling custom game settings.
- There is very probably some bugs left, this is basically a complete rewrite of overpy. Please report any bug that you find.
- This release is for the 1.48 version of overwatch, which is currently on PTR. If you wish to code for live (1.47), use the latest 4.x version.