kamikaze: cleanup

master
cora 2021-02-13 04:00:34 +01:00
parent a9f264c718
commit 63710a57c6
1 changed files with 43 additions and 41 deletions

View File

@ -3,8 +3,7 @@ local cpos={x=0,y=0,z=0}
local crange=500
local hud_wp=nil
local zz={x=0,y=64,z=0}
local badnodes={'mcl_tnt:tnt','mcl_fire:basic_flame','mcl_fire:eternal_fire','mcl_fire:fire','mcl_fire:fire_charge'}
--'mcl_sponges:sponge','mcl_sponges:sponge_wet'
local badnodes={'mcl_tnt:tnt','mcl_fire:basic_flame','mcl_fire:eternal_fire','mcl_fire:fire','mcl_fire:fire_charge','mcl_sponges:sponge','mcl_sponges:sponge_wet'}
local searchheight=64
local function set_kwp(name,pos)
@ -31,34 +30,40 @@ local function randomzz()
nextzz=os.clock()+ 15
end
local function find_bad_things()
if fnd then return true end
local obs=minetest.localplayer.get_nearby_objects(crange)
local lp=minetest.localplayer:get_pos()
local odst=500;
for k, v in ipairs(obs) do -- look for crystals first
if ( v:get_item_textures():find("mcl_end_crystal") ) then
cpos=v:get_pos()
set_kwp(v:get_item_textures(),v:get_pos())
fnd=true
return true
local npos=v:get_pos()
local dst=vector.distance(npos,minetest.localplayer:get_pos())
if odst > dst then cpos=npos
set_kwp(v:get_item_textures(),v:get_pos())
fnd=true
return true
end
end
end
odst=500
for k, v in ipairs(obs) do
if ( v:get_item_textures():find("arrow_box") ) then
cpos=v:get_pos()
set_kwp(v:get_item_textures(),v:get_pos())
fnd=true
return true
local npos=v:get_pos()
local dst=vector.distance(npos,minetest.localplayer:get_pos())
if odst > dst then cpos=npos
set_kwp(v:get_item_textures(),v:get_pos())
fnd=true
return true
end
end
end
odst=500
local epos=minetest.find_nodes_in_area(vector.add(lp,{x=79,y=79,z=79}), vector.add(lp,{x=-79,y=-79,z=-79}), badnodes, true)
local odst=500
if epos then
for k,v in pairs(epos) do for kk,vv in pairs(v) do
lp=minetest.localplayer:get_pos()
local lp=minetest.localplayer:get_pos()
local dst=vector.distance(lp,vv)
if odst > dst then odst=dst cpos=vv fnd=true end
end end
@ -74,38 +79,24 @@ end
local function flythere()
minetest.settings:set_bool('noclip',true)
minetest.settings:set_bool("pitch_move",true)
minetest.settings:set_bool("continuous_forward",true)
autofly.aim(cpos)
core.set_keypress("special1", true)
end
local function stopflight()
minetest.settings:set_bool("continuous_forward",false)
minetest.settings:set_bool("noclip",false)
minetest.settings:set_bool("pitch_move",false)
core.set_keypress("special1", false)
minetest.after("0",function()
minetest.interact("start_digging")
minetest.dig_node(cpos)
fnd=false
end)
minetest.settings:set_bool("continuous_forward",false)
minetest.after("0",function()
minetest.interact("start_digging")
minetest.dig_node(cpos)
fnd=false
end)
end
minetest.register_globalstep(function()
if not minetest.settings:get_bool("kamikaze") and not(minetest.localplayer and minetest.localplayer:get_name():find("kamikaze")) then
if hud_wp then
minetest.localplayer:hud_remove(hud_wp) hud_wp=nil
minetest.settings:set_bool("continuous_forward",false)
minetest.settings:set_bool("noclip",false)
minetest.settings:set_bool("pitch_move",false)
core.set_keypress("special1", false)
fnd=false
end
return
end
ws.rg('Kamikaze','Bots','kamikaze', function()
local lp = minetest.localplayer:get_pos()
if not find_bad_things() then
if vector.distance(lp,zz) < 1 then
@ -119,11 +110,22 @@ minetest.register_globalstep(function()
return
end
flythere()
end)
end,function()
core.set_keypress("special1", true)
end, function()
core.set_keypress("special1", false)
fnd=false
if hud_wp then
minetest.localplayer:hud_remove(hud_wp)
end
end,{"noclip","pitch_move"})
minetest.register_on_death(function()
if not minetest.settings:get_bool("kamikaze") then return end
fnd=false
minetest.after("5.0",function()
fnd=false
end)
end)
minetest.register_cheat("Kamikaze", "Combat", "kamikaze")