Code Monkey home page Code Monkey logo

gothicfreeaim's Introduction

Gothic Free Aim

Syntax Documentation Support on Ko-fi Combined downloads
World of Gothic Spine Steam Gothic 1 Steam Gothic 2

Script package for the Gothic video game series that enables free aiming for ranged weapons and spells.
Gothic Gothic Sequel Gothic II Gothic II: Night of the Raven


Trailer on Youtube

Features

  • Free aiming for ranged weapons (bows, crossbows) and spells
  • Critical hit detection by body parts (e.g. head shots)
  • Customizable collision and damage behaviors (e.g. instant knockout/kill)
  • Shot projectiles (arrows, bolts) can be picked up and may be re-used
  • True shooting accuracy by scattering
  • Movement while aiming (animations are provided)
  • Adjustable projectile trajectory, gravity and damage, as well as weapon recoil
  • High customizability with easy to use configuration

Wiki

Visit the wiki for all information on this script package, including requirements and installation steps, a complete list of features and elaborate information on configuration.

Usage in a Git repository

If you intend to use (portions of) GFA in your git repository, it is recommended to incorporate it using a git-submodule. This not only helps to maintain your scripts at the latest version, but also ensures proper licensing and directs users to the original source.

Since submodules do not allow directly referring to sub-directories of the target repository, implement the following procedure.

First add GFA as a submodule into a suitable sub-directory off to the side in your repository. Then refer to the relevant sub-directories using relative symlinks. Symlinks are supported in git (also in Windows) and will resolve the file paths as desired.

Tip

Have a look at the repository szapp/FreeAiming for an example of using submodules.

This can be achieved by entering the following code into the Windows Command Prompt with administrative privileges (for creating symlinks). Mind the use of forward slashes.

mkdir .github\submodules
git submodule add --name GothicFreeAim https://github.com/szapp/GothicFreeAim.git .github/submodules/GothicFreeAim
git config core.symlinks true

The file .gitmodules should now look like this (compare the use of forward slashes):

[submodule "GothicFreeAim"]
    path = .github/submodules/GothicFreeAim
    url = https://github.com/szapp/GothicFreeAim.git

Now, you can add relevant symlinks to desired sub-directories within the GFA scripts.

For example, the internal content scripts (Content/GFA/_intern) should never be modified and can be linked to the submodule.

cd path\to\Scripts\Content\GFA
mklink /d _intern ..\..\..\..\..\.github\submodules\GothicFreeAim\_work\data\Scripts\Content\GFA\_intern

The configuration (Content/GFA/config), on the other hand, will not be linked to be modified by you. Likewise, most of the system scripts do not need adjustment and can be linked as well.

cd path\to\Scripts\System
mklink /d GFA ..\..\..\..\.github\submodules\GothicFreeAim\_work\data\Scripts\System\GFA

The menu scripts, however, can be copied and placed in a separate file to adjust the menu positioning and language following the documentation.

The directory tree would like something like this:

.
├── .gitmodules
├── .github/
│   └── submodules/
│       └── GothicFreeAim/
│           └── ..
└── path/
    └── to/
        └── Scripts/
            ├── Content/
            │   └── GFA/
            │       ├── [_intern/]     <- symlink
            │       ├── config/
            │       │   └── ...
            │       └── GFA_*.src
            └── System/
                ├── [GFA/]             <- symlink
                └── Menu_Opt_GFA.d

When following these steps, this setup

  • prevents you from accidentally modifying the internal scripts which should never be altered

  • allows you to easily update the GFA core scripts in the event of an update with

    git submodule update --remote
    git add .github\submodules\GothicFreeAim
    git commit -m "Update GFA core"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.