大炮 Cannons [cannons]

英文名称 Cannons
作者 addi - ContentDB
语言 英语
版本 Minetest Minetest Version: 5.5.1
依赖Mode或插件
Mode类型
开源协议
视频例子
原视频地址
原始地址 https://forum.minetest.net/viewtopic.php?f=11&t=7744
代码仓库 Bitbucket
下载地址 Cannons - ContentDB
简历
加农炮是Kingarthurs Team
(Semmett9,eythen和addi)编写的用于我的游戏的mod,

如果您在加农炮中有一些木乃伊和一些火药,则
可以用火炬将其打孔射击。

炮弹会伤害其他玩家。
如果它穿着盔甲,则将计算伤害。

目前有5种不同类型的炮弹

  • 木球:射程小,损坏少
  • 石球:射程更大,伤害更少
  • 铁球:射程大,伤害大

和2个可以在settings.txt中禁用的球(用于在服务器上运行以避免悲伤):

  • 爆炸球:这会破坏半径为1的所有节点(可以通过设置大炮来禁用。enable_explosion= false)
  • 火球:如果击中了一个节点,则该节点能够燃烧,则将其设置为燃烧。(可以通过设置cannons.enable_fire = false禁用)

配置大炮

在您的世界目录中创建一个文件名为cannons.conf的文件。

在其中添加以下几行:

代码: 全选

enable_explosion = "true"
enable_fire = "true"

现在您可以更改它。例如。如果您想禁用火灾,则可以使enable_fire =“ true” 到enable_fire =“ false”那

就是所有:-)
依赖关系

  • 默认
  • 火(可选)

最小minetest = 0.4.8
版本2.1的新功能

  • 更改了钢球的工艺reziep,因为它与另一个mod冲突
  • 现在可以在世界目录(cannons.conf)中进行配置

2.0版的新功能

  • 真正的3d音效
  • 增加了新的声音
  • 颗粒(多亏了杂种狗)
  • mesecons支持(可选)
  • 锁国防部支持(可选)
  • moreores支持(可选)

可选功能:

- 扰流板

这门大炮已锁定,可以与其他玩家共享。
安装此功能Sokomines锁 国防部

- 扰流板

在每个高(1 / on)信号上,加农炮都会发射火药(如果有火药和市政)到最后一个位置。
设置此位置时,用割炬将其打孔,它将射到相同的位置。
要获得此功能,请安装介词 国防部

- 扰流板

它只是增加了一个秘银大炮,而秘银大炮弹的伤害更大,但是射程远小于钢弹
,因此安装此功能莫雷洛斯 国防部

得到大炮的
relass在下载标签

Craft Rezieps

盐桶:

木架:

石架:

##屏幕截图



创建自己的炮弹!

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)