wopss / red4ext.sdk Goto Github PK
View Code? Open in Web Editor NEWA library to create mods for REDengine 4 (Cyberpunk 2077), independently of RED4ext.
License: MIT License
A library to create mods for REDengine 4 (Cyberpunk 2077), independently of RED4ext.
License: MIT License
Is your feature request related to a problem? Please describe.
The current pattern finding script only support patterns for function prologues or pointers.
Describe the solution you'd like
An improved version of the pattern finding should support the following additional features:
Is your feature request related to a problem? Please describe.
Currently the methods are missing from the auto generated classes. The only way to call those methods currently are using ExecuteFunction.
Describe the solution you'd like
See https://gist.github.com/martonp96/bf93a51d07da27caf065cc5ea2e1a853 or the discussion on discord https://discord.com/channels/717692382849663036/839400251680227339/1033367170979217438
Describe alternatives you've considered
I'm using manually created wrapper classes.
Description
entEntityID.hpp doesn't implement the order operator and as such it can't be used as a key in (hash) maps.
Since the intention is clear in every other overload that just delegates to this.hash
, this should probably be reflected in this operator, too.
Steps to reproduce
if (entityId1 < entityId2) {}
Expected behavior
Delegating to the contained hash
Examples
diff --git a/include/RED4ext/Scripting/Natives/entEntityID.hpp b/include/RED4ext/Scripting/Natives/entEntityID.hpp
index ff9f0728..63a11b37 100644
--- a/include/RED4ext/Scripting/Natives/entEntityID.hpp
+++ b/include/RED4ext/Scripting/Natives/entEntityID.hpp
@@ -38,6 +38,11 @@ struct EntityID
return hash == aRhs.hash;
}
+ constexpr bool operator<(const EntityID& rhs) const noexcept
+ {
+ return hash < rhs.hash;
+ }
+
[[nodiscard]] constexpr bool IsDefined() const noexcept
{
return hash;
Description
I build my mod with the latest sdk, but at runtime I get an error.
[2023-07-02 19:04:33.824] [RED4ext] [warning] Cyberpunk 2077 Furigana (version: 1.2.6) is incompatible with the current patch (1.63 Hotfix 1). This version of the plugin was compiled for patch 1.63
Steps to reproduce
Build your mod for the latest SDK:
RED4EXT_C_EXPORT void RED4EXT_CALL Query(RED4ext::PluginInfo* aInfo)
{
aInfo->name = L"Cyberpunk 2077 Furigana";
aInfo->author = L"Daniel Kollmann";
aInfo->version = RED4EXT_SEMVER(1, 2, 6);
aInfo->runtime = RED4EXT_RUNTIME_LATEST;
aInfo->sdk = RED4EXT_SDK_LATEST;
}
RED4EXT_C_EXPORT uint32_t RED4EXT_CALL Supports()
{
return RED4EXT_API_VERSION_LATEST;
}
Expected behavior
Building with the latest version tags should create a compatible plugin file.
Examples
Game details (please complete the following information):
GOG v1.63 hotfix 1
Additional context
Is your feature request related to a problem? Please describe.
Currently there is no method to hook game event's gamePuppet::OnDamageReceived
, gamePuppet::OnHit
, etc..
Describe the solution you'd like
The best solution would be to reverse and hook into events natively, without additional dependencies, allowing modders to hook these function from C++.
Describe alternatives you've considered
An alternative to this would be to do like yamashi did it for Cyber Engine Tweaks, but that would require to have additional libraries added as dependencies for the SDK which I would not like to. If there is no other solution than this, a plugin API can be added so that the main loader can take care of hooking.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.