From d13e26f113756fe2766d3293f294716f5b56556b Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Fri, 11 Dec 2020 17:22:00 +0100 Subject: [PATCH] Initial Commit --- README | 2 ++ init.lua | 39 +++++++++++++++++++++++++++++++++++++++ mod.conf | 3 +++ settingtypes.txt | 1 + 4 files changed, 45 insertions(+) create mode 100644 README create mode 100644 init.lua create mode 100644 mod.conf create mode 100644 settingtypes.txt diff --git a/README b/README new file mode 100644 index 0000000..07ec83a --- /dev/null +++ b/README @@ -0,0 +1,2 @@ +# bowaimbot +A dragonfire CSM to automatically aim at players (calculates gravity in) diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..604a664 --- /dev/null +++ b/init.lua @@ -0,0 +1,39 @@ +local atan, pi, pow, sqrt = math.atan, math.pi, math.pow, math.sqrt +local aim_name + +minetest.register_globalstep(function() + if not minetest.settings:get_bool("bowaimbot") or not aim_name then return end + local player = minetest.localplayer + if not player then return end + if player:get_wielded_item():get_name():sub(1, 12) ~= "mcl_bows:bow" then return end + local ppos = player:get_pos() + local objects = minetest.get_objects_inside_radius(ppos, 80) + for _, obj in ipairs(objects) do + if obj:get_name() == aim_name then + local opos = obj:get_pos() + local vec = vector.subtract(ppos, opos) + + local yaw = atan(vec.z / vec.x) - pi/2 + yaw = yaw + (opos.x >= ppos.x and pi or 0) + player:set_yaw((yaw + pi) / pi * 180) + + local v = 40 + local g = -9.81 + local y = vec.y + vec.y = 0 + local x = vector.length(vec) + + local pitch = atan(pow(v, 2) / (g * x) + sqrt(pow(v, 4)/(pow(g, 2) * pow(x, 2)) - 2 * pow(v, 2) * y/(g * pow(x, 2)) - 1)) + player:set_pitch(pitch / pi * 180) + break + end + end +end) + +minetest.register_chatcommand("aim", { + func = function(param) + aim_name = param + end +}) + +minetest.register_cheat("BowAimbot", "Combat", "bowaimbot") diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..4b7a28d --- /dev/null +++ b/mod.conf @@ -0,0 +1,3 @@ +name = bowaimbot +author = Fleckenstein +description = A dragonfire CSM to automatically aim at players (calculates gravity in) diff --git a/settingtypes.txt b/settingtypes.txt new file mode 100644 index 0000000..ed2fa85 --- /dev/null +++ b/settingtypes.txt @@ -0,0 +1 @@ +bowaimbot (BowAimbot) bool false -- 2.44.0