]> git.lizzy.rs Git - dragonfireclient.git/commitdiff
Added Speed/Jump/Gravity Override
authorElias Fleckenstein <eliasfleckenstein@web.de>
Tue, 24 Nov 2020 12:20:30 +0000 (13:20 +0100)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Tue, 24 Nov 2020 12:20:30 +0000 (13:20 +0100)
builtin/client/cheats/init.lua
builtin/client/cheats/movement.lua
builtin/settingtypes.txt
src/defaultsettings.cpp

index 2307c7aec901b884c7d42dbd5fe8c4767f408ca2..69dbac02ad0d302f41cff2d76a9c1aac851b925f 100644 (file)
@@ -19,6 +19,9 @@ core.cheats = {
                ["NoSlow"] = "no_slow",
                ["AutoSneak"] = "autosneak",
                ["AutoSprint"] = "autosprint",
+               ["SpeedOverride"] = "override_speed",
+               ["JumpOverride"] = "override_jump",
+               ["GravityOverride"] = "override_gravity",
        },
        ["Render"] = {
                ["Xray"] = "xray",
index 907990cceabfd8b0dbaed0ee46b4b18c11a77705..33a46fca09e5461dc82e129b8c82c65eedbdecc5 100644 (file)
@@ -1,14 +1,13 @@
 local function register_keypress_cheat(cheat, keyname, condition)
-       local was_enabled = false
+       local was_active = false
        core.register_globalstep(function()
-               local is_active = core.settings:get_bool(cheat)
-               local condition_true = (not condition or condition())
-               if is_active and condition_true then
+               local is_active = core.settings:get_bool(cheat) and (not condition or condition())
+               if is_active then
                        core.set_keypress(keyname, true)
-               elseif was_enabled then
+               elseif was_active then
                        core.set_keypress(keyname, false)
                end
-               was_enabled = is_active and condition_true
+               was_active = is_active
        end)
 end
 
@@ -16,3 +15,27 @@ register_keypress_cheat("autosneak", "sneak", function()
        return core.localplayer:is_touching_ground()
 end)
 register_keypress_cheat("autosprint", "special1")
+
+local legit_override
+
+local function get_override_factor(name)
+       if core.settings:get_bool("override_" .. name) then
+               return tonumber(core.settings:get("override_" .. name .. "_factor")) or 1
+       else
+               return 1.0
+       end
+end
+
+core.register_globalstep(function()
+       if not legit_override then return end
+       local override = table.copy(legit_override)
+       override.speed = override.speed * get_override_factor("speed")
+       override.jump = override.jump * get_override_factor("jump")
+       override.gravity = override.gravity * get_override_factor("gravity")
+       core.localplayer:set_physics_override(override)
+end)
+
+core.register_on_recieve_physics_override(function(override)
+       legit_override = override
+    return true
+end) 
index 6e683c025f2f3343c3dd8feaebed3d87803fe7a8..f91603ff4429f2c3d09e985b2d6ff306a2117808 100644 (file)
@@ -2355,3 +2355,15 @@ node_esp_nodes (NodeESP Nodes) string
 only_trace_players (OnlyTracePlayers) bool false
 
 autosprint (AutoSprint) bool false
+
+override_speed (SpeedOverride) bool false
+
+override_jump (JumpOverride) bool false
+
+override_gravity (GravityOverride) bool false
+
+override_speed_factor (SpeedOverride Factor) float 1.2
+
+override_jump_factor (JumpOverride Factor) float 2.0
+
+override_gravity_factor (GravityOverride) float 0.8
index 6775fdcd417249a3c754d2963f571847d31ef61c..bb9c47dc82f665813f8a0746a9f7fa361b1429f6 100644 (file)
@@ -136,6 +136,12 @@ void set_default_settings(Settings *settings)
        settings->setDefault("node_esp_nodes", "");
        settings->setDefault("only_trace_players", "false");
        settings->setDefault("autosprint", "false");
+       settings->setDefault("override_speed", "false");
+       settings->setDefault("override_jump", "false");
+       settings->setDefault("override_gravity", "false");
+       settings->setDefault("override_speed_factor", "1.2");
+       settings->setDefault("override_jump_factor", "2.0");
+       settings->setDefault("override_gravity_factor", "0.9");
 
        // Keymap
        settings->setDefault("remote_port", "30000");