Coder Social home page Coder Social logo

eldenparry's Introduction

Elden Parry

A mod that adds parrying to Skyrim.



Button Nexus    Button FAQ







The Problem

Skyrim's bash is overpowered and boring.

Every single bash staggers the enemy,
this turns the late game combat into:

  Bash    🠖    Some Swings    🠖    Repeat  

This will happen despite all the combat
overhaul mods you may have installed.



This Mod

Light bashes no longer have a hit frame.
This means doing a light bash alone will
not hit and stagger an enemy.


No Light Bash Spamming


Light bash is now turned into 'parry'.

When you bash while getting hit, you parry
the incoming attack and stagger the attacker.

Successful parries do not cost stamina.


Parry Precision


Parrying an incoming projectile
deflects it back at the enemy.


Magic Projectiles


Works for magic projectiles like fireballs, ice spikes, etc. as well.

Projectile parrying is done by hooking the projectile collision
function, not with workarounds like spawning a new projectile
to shoot back / giving a perk to negate projectile damage.

The projectile that you deflect back is the original projectile.

With the above changes, bashing / parrying is now much
more interesting and dynamic, its no longer a 'no brainer'
but rather a skill you need to practice on and harness.

This won't fundamentally change Skyrim's combat feel,
but it will spice things up a lot, and it feels great in both
1st and 3rd person.




Everything is done through a lightweight SKSE Plugin
paired with a ESL to store some sound records.



Settings

The mod comes with an .ini file in which you can tweak
some settings for this mod to better suit your loadout.

You can disable weapon / shield parry or projectile parry,
as well as tweak the visual feedback parrying does,
including a God-Of-War like slow time effect.

By default, successful parrying won't cost you any stamina.

If you use mods that speed up stamina recovery however,
you will want to disable this option for a balanced experience.

If you feel parrying is too easy, you can also tweak
the start and ending time of your parrying window.



Compatibility

  • Usable with every single combat mods / behavior mods.

  • Incompatible with Better God Modes.

  • If you use Ersh's Precision Beta, make sure you update the
    mod to 0.4+, otherwise you will have problems parrying.

  • There will be an update on Valhalla Combat Beta soon
    that allows Elden Parry to do extra stun damage to NPCs.



Credits

  • Gigabrain clib people

  • Ersh for helping me with a lot of Havok stuff
    (without which projectile deflection won't be
    possible) and precision API

  • Fenix for helping me RE the playsound function

  • MaxSu for his Simple Block Sparks source code

  • Elden Ring for the inspiration to turn bash into parry

  • 绝伦少年 for the cover image


eldenparry's People

Contributors

d7ry avatar electronicsarchiver avatar peterpanning avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

eldenparry's Issues

Can't compile source

Hi--

OOTB, this project does not find any SOURCE_FILES when calling add_library in CMakeLists.txt. Any chance you could take a look at this? I'm hoping to develop a patch for this and Ordinator but am having some trouble getting off the ground.

D:\Users\peter\Code\C++\Ordinator - Elden Parry Patch\skse64_2_00_20\src\skse64\EldenParry-main>cmake --preset=vs2022-windows
Preset CMake variables:

  CMAKE_BUILD_TYPE:STRING="Debug"
  CMAKE_CXX_FLAGS="/EHsc /MP /W4 /WX"
  CMAKE_MSVC_RUNTIME_LIBRARY:STRING="MultiThreaded$<$<CONFIG:Debug>:Debug>DLL"
  CMAKE_TOOLCHAIN_FILE:STRING="D:\Users\peter\Code\vcpkg/scripts/buildsystems/vcpkg.cmake"
  VCPKG_TARGET_TRIPLET:STRING="x64-windows-static-md"

-- Running vcpkg install
Detecting compiler hash for triplet x64-windows-static-md...
Detecting compiler hash for triplet x64-windows...
All requested packages are currently installed.
Restored 0 package(s) from C:\Users\peter\AppData\Local\vcpkg\archives in 128.3 us. Use --debug to see more details.

Total elapsed time: 8.403 s

The package boost is compatible with built-in CMake targets:

    find_package(Boost REQUIRED [COMPONENTS <libs>...])
    target_link_libraries(main PRIVATE Boost::boost Boost::<lib1> Boost::<lib2> ...)

rsm-binary-io provides CMake targets:
    # this is heuristically generated, and may not be correct
    find_package(binary_io CONFIG REQUIRED)
    target_link_libraries(main PRIVATE binary_io::binary_io)

simpleini is header-only and can be used from CMake via:

    find_path(SIMPLEINI_INCLUDE_DIRS "ConvertUTF.c")
    target_include_directories(main PRIVATE ${SIMPLEINI_INCLUDE_DIRS})

spdlog provides CMake targets:
    # this is heuristically generated, and may not be correct
    find_package(spdlog CONFIG REQUIRED)
    target_link_libraries(main PRIVATE spdlog::spdlog spdlog::spdlog_header_only)

xbyak provides CMake targets:
    # this is heuristically generated, and may not be correct
    find_package(xbyak CONFIG REQUIRED)
    target_link_libraries(main PRIVATE xbyak::xbyak)

-- Running vcpkg install - done
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044.
-- Found Boost: D:/Users/peter/Code/C++/Ordinator - Elden Parry Patch/skse64_2_00_20/src/skse64/EldenParry-main/build/vcpkg_installed/x64-windows-static-md/include (found version "1.78.0")
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - not found
-- Found Threads: TRUE  
-- Configuring done
CMake Error at D:/Users/peter/Code/vcpkg/scripts/buildsystems/vcpkg.cmake:613 (_add_library):
  Cannot find source file:

    D:/Users/peter/Code/C++/Ordinator - Elden Parry Patch/skse64_2_00_20/src/skse64/EldenParry-main/.clang-format
Call Stack (most recent call first):
  src/CMakeLists.txt:35 (add_library)


CMake Error at D:/Users/peter/Code/vcpkg/scripts/buildsystems/vcpkg.cmake:613 (_add_library):
  No SOURCES given to target: EldenParry
Call Stack (most recent call first):
  src/CMakeLists.txt:35 (add_library)


CMake Generate step failed.  Build files cannot be regenerated correctly.

D:\Users\peter\Code\C++\Ordinator - Elden Parry Patch\skse64_2_00_20\src\skse64\EldenParry-main>

Can't find `setCurrentGlobalTimeMult`

When compiling this source, I get

EldenParry-main\src\Utils.hpp(339,16): error C2039: 'setCurrentGlobalTimeMult': is not a member of  
'RE::BSTimer' (compiling source file EldenParry-main\src\EldenParry.cpp) [EldenParry-main\build\src\EldenParry.vcxproj]

Looks like BSTimer should have a new set method in addition to its get method. Would you happen to know where I could find this?

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.