(Semmett9, eythen, and addi)
if you have some muni and some gunpowder in the cannon
you can shot the cannon if you punch it with a torch.
the cannonball will damage the other players.
if it wears armor the damage will be calculated.
at the moment there are 5 diffrent types of cannonballs
- wooden ball: small range, less damage
- stone ball: more range, less damage
- iron ball:huge range, huge damage
- exploding ball: this destroyes all nodes in a radius of 1 (can be dissabled by setting the cannons.enable_explosion = false)
- fire ball: if it hits a node wich is able to burn it set it burn. (can be dissabled by setting the cannons.enable_fire = false)
create a file caled cannons.conf in your world dir.
add the folowing lines to it:
Code: Select all
enable_explosion = "true"
enable_fire = "true"
thats all :-)
Dependencies
- default
- bucket
- fire(optional)
NEW FEATURES FOR VERSION 2.1
- changed craft reziep for steel ball, because it conflicted with another mod
- the config can made now in world dir (cannons.conf)
- real 3d sound effect
- added new sounds
- particles (thanks to hybrid dog)
- mesecons support(optional)
- locks mod support (optional)
- moreores support (optional)
optional features:
Spoiler
to get this feature install Sokomines locks mod
Spoiler
to set this position punch it with a torch and it will shot to the same position.
to get this feature install the mesecons mod
Spoiler
to get this feature install the moreores mod
relases are in the Downloads tab)
its also aviable as a git repo:
Code: Select all
$ git clone https://bitbucket.org/kingarthursteam/cannons.git
Craft Rezieps
Bucket with salt:
Salt (shapeless):
Gunpowder (schapeless):
cannon & bronce cannon:
Wooden stand:
Stone Stand:
## Screenshots
Create your own Cannonball!
Code: Select all
local ball_wood={
physical = false,
timer=0,
textures = {"cannons_wood_bullet.png"},
lastpos={},
damage=20,
range=1,
gravity=10,
velocity=40,
name="cannons:wood_bullet",
collisionbox = {-0.25,-0.25,-0.25, 0.25,0.25,0.25},
on_player_hit = function(self,pos,player)
local playername = player:get_player_name()
player:punch(self.object, 1.0, {
full_punch_interval=1.0,
damage_groups={fleshy=self.damage},
}, nil)
self.object:remove()
minetest.chat_send_all(playername .." tried to catch a cannonball")
end,
on_mob_hit = function(self,pos,mob)
mob:punch(self.object, 1.0, {
full_punch_interval=1.0,
damage_groups={fleshy=self.damage},
}, nil)
self.object:remove()
end,
on_node_hit = function(self,pos,node)
if node.name == "default:dirt_with_grass" then
minetest.env:set_node({x=pos.x, y=pos.y, z=pos.z},{name="default:dirt"})
minetest.sound_play("cannons_hit",
{pos = pos, gain = 1.0, max_hear_distance = 32,})
self.object:remove()
elseif node.name == "default:water_source" then
minetest.sound_play("cannons_splash",
{pos = pos, gain = 1.0, max_hear_distance = 32,})
self.object:remove()
else
minetest.sound_play("cannons_hit",
{pos = pos, gain = 1.0, max_hear_distance = 32,})
self.object:remove()
end
end,
}
cannons.register_muni("cannons:ball_wood",ball_wood)
License:
LGPLv3
Credits:
Evergreen for the Salt texture
Semmett9 for realy much
eythen for some more or less stupid ideas
and to me ;-P for writing the whole topic