]> git.lizzy.rs Git - bowaimbot.git/commitdiff
Initial Commit
authorElias Fleckenstein <eliasfleckenstein@web.de>
Fri, 11 Dec 2020 16:22:00 +0000 (17:22 +0100)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Fri, 11 Dec 2020 16:22:00 +0000 (17:22 +0100)
README [new file with mode: 0644]
init.lua [new file with mode: 0644]
mod.conf [new file with mode: 0644]
settingtypes.txt [new file with mode: 0644]

diff --git a/README b/README
new file mode 100644 (file)
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 (file)
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 (file)
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 (file)
index 0000000..ed2fa85
--- /dev/null
@@ -0,0 +1 @@
+bowaimbot (BowAimbot) bool false