-
-
Notifications
You must be signed in to change notification settings - Fork 4
Features and Configuration
Gothic Free Aim is highly configurable. This wiki page gives an outline of all configurable sub-features.
These sub-features can be individually enabled or disabled by selective initialization or extensively configured. At the bottom of this page, there is a list of configuration examples to give you some ideas of what is possible.
Gothic Free Aim will initialize Ikarus and LeGo with the required packages automatically, if they are not already initialized.
Alternatively, if you initialize LeGo beforehand, append the initialization with GFA_LEGO_FLAGS
, like so:
LeGo_Init(/* your desired packages */ | GFA_LEGO_FLAGS);
Gothic Free Aim comes with various features (besides free aiming itself). These features can be used completely independently, even without using free aiming itself. To use GFA with a selected set of features only, GFA can be initialized with different flags.
Flag | Feature |
---|---|
GFA_RANGED |
Free aiming for ranged combat |
GFA_SPELLS |
Free aiming for spells |
GFA_REUSE_PROJECTILES |
Shot projectiles are collectable |
GFA_CUSTOM_COLLISIONS |
Manipulate collision behaviors |
GFA_CRITICALHITS |
Critical hits for ranged combat |
GFA_ALL |
Use all features |
These flags can be combined to initialize GFA selectively:
GFA_Init(GFA_ALL); // Initialize all features
GFA_Init(GFA_ALL & ~GFA_REUSE_PROJECTILES & ~GFA_SPELLS); // Initialize all but re-using of projectiles and free aiming for spells
GFA_Init(GFA_RANGED | GFA_CRITICALHITS); // Initialize free aiming for ranged combat and critical hits only
If you have features in your mod that require GFA to be properly initialized, you can check if GFA_Init
was successful with GFA_INITIALIZED
(true/false).
If you want to implement GFA into your modification without any additional work, it is recommended to initialize it without re-usable projectiles. This feature would require additional tweaking, because you would need to reduce the numbers of arrows and bolts in the world. Otherwise there would be too many (since the player can pick them up again). For more information about the problem and tips and tricks on how to easily re-balance your mod-project including a provided script to use, read on here.
GFA_Init(GFA_ALL & ~GFA_REUSE_PROJECTILES);
Aside from that feature, GFA is well-balanced and does not require any changes on the rest of your mod-project.
If you are only interested in free aiming and want no extra features, the recommended initialization is
GFA_Init(GFA_ALL & ~GFA_REUSE_PROJECTILES);
GFA is compartmentalized into internal mechanics and configuration. These are cleanly separated into two directories (GFA/_intern/ and GFA/config/). This was done to allow high customizability for mod-teams, while at the same time ensuring stability of the core mechanics.
The way the configuration is incorporated is by designing it as "config functions". These config functions are called from the internal mechanics to apply the configuration. The content of these config functions and what they return to the internal mechanics can be freely adjusted. The only restrictions are the function signature and the type of return value. What happens inside the functions is fully up to you and makes up the "configuration".
Other settings are offered as constants that can simply be changed.
To understand more about the internal mechanics of GFA, all functions and their relation to each other have been visualized in a project architecture diagram.
The configuration is grouped by features.
Here are a few examples/ideas of what is possible with the configuration.
- Implementing ranged weapons that do one-shot kills or one-shot knockouts
- Changing the trajectory of projectiles based on weapon stats, skill level, ...
- Implementing a learn-able "quick-draw" talent
- Changing the accuracy based on weapon stats, skill level, draw force, ...
- Changing the base damage based on accuracy, draw force, skill level, ...
- Changing the reticle based on draw force, accuracy, aiming distance, opponent, ...
- Defining individual critical hit zones (body parts) based on opponent
- Changing the damage multiplicator for critical hits based on opponent, weapon, ...
- Defining events for critical hits, like sound jingles, screen print, hit marker, ...
- Implementing a head shot counter that gives XP after a certain number of hits
- Manipulation of friendly-fire for quest party members
- Defining rules to render certain ranged weapons ineffective for some opponents
- Defining rules of collision behavior with surface materials
- Removing or replacing of shot projectiles (to pick up used/broken projectiles)
- Implementing the need to learn how to regain projectiles from shot NPCs
- And much more...
Furthermore, GFA can also be used as basis for new features. An example is the spell blink that demonstrates that quite nicely.
Table of Contents
Features
Youtube Trailer
Demo Modifications
Installation & Requirements
Gothic 1
Gothic 2
Features & Configuration
Free Aiming
Ranged Combat
Spells
Re-usable Projectiles
Custom Collisions
Critical Hits
Hit Probability NEW
Creating a Mod File
Project Architecture
Debugging & Console Commands
Download
Free Aiming Patch
Settings for Players
Changelog
FAQ
Support this project
Acknowledgements
Contact & Discussion