first commit
This commit is contained in:
commit
87d8f6295b
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
## Generic ignorable patterns and files
|
||||
*~
|
||||
.*.swp
|
||||
*bak*
|
||||
tags
|
||||
*.vim
|
||||
|
||||
## Files related to minetest development cycle
|
||||
*.patch
|
79
README.txt
Normal file
79
README.txt
Normal file
@ -0,0 +1,79 @@
|
||||
This gamemode is created for fun to have fun, if you don't want your mod in this game mode feel free to message me on the forum (jordan4ibanez) and I will promptly remove your mod from this game mode.
|
||||
|
||||
Each mod is licensed under whatever license it is distributed as.
|
||||
|
||||
The modpack itself is WTFPL.
|
||||
|
||||
That is,
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
|
||||
|
||||
The rest of default minetest_game:
|
||||
|
||||
|
||||
Minetest Game [minetest_game]
|
||||
=============================
|
||||
The main subgame for the Minetest engine
|
||||
========================================
|
||||
|
||||
To use this subgame with the Minetest engine, insert this repository as
|
||||
/games/minetest_game
|
||||
|
||||
The Minetest engine can be found in:
|
||||
https://github.com/minetest/minetest/
|
||||
|
||||
Compatibility
|
||||
--------------
|
||||
The Minetest Game github master HEAD is generally compatible with the github
|
||||
master HEAD of the Minetest engine.
|
||||
|
||||
Additionally, when the Minetest engine is tagged to be a certain version (eg.
|
||||
0.4.10), Minetest Game is tagged with the version too.
|
||||
|
||||
When stable releases are made, Minetest Game is packaged and made available in
|
||||
http://minetest.net/download
|
||||
and in case the repository has grown too much, it may be reset. In that sense,
|
||||
this is not a "real" git repository. (Package maintainers please note!)
|
||||
|
||||
License of source code
|
||||
----------------------
|
||||
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
See README.txt in each mod directory for information about other authors.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
License of media (textures and sounds)
|
||||
--------------------------------------
|
||||
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
See README.txt in each mod directory for information about other authors.
|
||||
|
||||
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||
http://creativecommons.org/licenses/by-sa/3.0/
|
||||
|
||||
License of menu/header.png
|
||||
Copyright (C) 2015 paramat CC BY-SA 3.0
|
427
game_api.txt
Normal file
427
game_api.txt
Normal file
@ -0,0 +1,427 @@
|
||||
Minetest Game API
|
||||
=================
|
||||
GitHub Repo: https://github.com/minetest/minetest_game
|
||||
|
||||
Introduction
|
||||
------------
|
||||
The Minetest Game subgame offers multiple new possibilities in addition to the Minetest engine's built-in API,
|
||||
allowing you to add new plants to farming mod, buckets for new liquids, new stairs and custom panes.
|
||||
For information on the Minetest API, visit https://github.com/minetest/minetest/blob/master/doc/lua_api.txt
|
||||
Please note:
|
||||
[XYZ] refers to a section the Minetest API
|
||||
[#ABC] refers to a section in this document
|
||||
^ Explanation for line above
|
||||
|
||||
Bucket API
|
||||
----------
|
||||
The bucket API allows registering new types of buckets for non-default liquids.
|
||||
|
||||
bucket.register_liquid(
|
||||
"default:lava_source", -- name of the source node
|
||||
"default:lava_flowing", -- name of the flowing node
|
||||
"bucket:bucket_lava", -- name of the new bucket item (or nil if liquid is not takeable)
|
||||
"bucket_lava.png", -- texture of the new bucket item (ignored if itemname == nil)
|
||||
"Lava Bucket", -- text description of the bucket item
|
||||
{lava_bucket = 1} -- groups of the bucket item, OPTIONAL
|
||||
)
|
||||
|
||||
Beds API
|
||||
--------
|
||||
beds.register_bed(
|
||||
"beds:bed", -- Bed name
|
||||
def: See [#Bed definition] -- Bed definition
|
||||
)
|
||||
|
||||
beds.read_spawns() -- returns a table containing players respawn positions
|
||||
beds.kick_players() -- forces all players to leave bed
|
||||
beds.skip_night() -- sets world time to morning and saves respawn position of all players currently sleeping
|
||||
|
||||
#Bed definition
|
||||
---------------
|
||||
{
|
||||
description = "Simple Bed",
|
||||
inventory_image = "beds_bed.png",
|
||||
wield_image = "beds_bed.png",
|
||||
tiles = {
|
||||
bottom = {[Tile definition],
|
||||
^ the tiles of the bottom part of the bed
|
||||
},
|
||||
top = {[Tile definition],
|
||||
^ the tiles of the bottom part of the bed
|
||||
}
|
||||
},
|
||||
nodebox = {
|
||||
bottom = regular nodebox, see [Node boxes], -- bottm part of bed
|
||||
top = regular nodebox, see [Node boxes], -- top part of bed
|
||||
},
|
||||
selectionbox = regular nodebox, see [Node boxes], -- for both nodeboxes
|
||||
recipe = { -- Craft recipe
|
||||
{"group:wool", "group:wool", "group:wool"},
|
||||
{"group:wood", "group:wood", "group:wood"}
|
||||
}
|
||||
}
|
||||
|
||||
Doors API
|
||||
---------
|
||||
The doors mod allows modders to register custom doors and trapdoors.
|
||||
|
||||
doors.register_door(name, def)
|
||||
^ name: "Door name"
|
||||
^ def: See [#Door definition]
|
||||
-> Registers new door
|
||||
|
||||
doors.register_trapdoor(name, def)
|
||||
^ name: "mod_door"
|
||||
^ def: See [#Trapdoor definition]
|
||||
-> Registers new trapdoor
|
||||
|
||||
doors.get(pos)
|
||||
^ pos = { x = .., y = .., z = ..}
|
||||
-> Returns an ObjecRef to a door, or nil if the pos did not contain a door
|
||||
|
||||
Methods:
|
||||
:open(player) -- Open the door object, returns if door was opened
|
||||
:close(player) -- Close the door object, returns if door was closed
|
||||
:toggle(player) -- Toggle the door state, returns if state was toggled
|
||||
:state() -- returns the door state, true = open, false = closed
|
||||
|
||||
the "player" parameter can be omitted in all methods. If passed then
|
||||
the usual permission checks will be performed to make sure the player
|
||||
has the permissions needed to open this door. If omitted then no
|
||||
permission checks are performed.
|
||||
|
||||
#Door definition
|
||||
----------------
|
||||
{
|
||||
description = "Door description",
|
||||
inventory_image = "mod_door_inv.png",
|
||||
groups = {choppy = 1},
|
||||
tiles = { "mod_door.png" },
|
||||
material = "default:wood", -- used to make a craft recipe
|
||||
sounds = default.node_sound_wood_defaults(), -- optional
|
||||
sound_open = sound play for open door, -- optional
|
||||
sound_close = sound play for close door, -- optional
|
||||
protected = false,
|
||||
^ If true, only placer can open the door (locked for others)
|
||||
}
|
||||
|
||||
#Trapdoor definition
|
||||
----------------
|
||||
{
|
||||
description = "Trapdoor description",
|
||||
inventory_image = "mod_trapdoor_inv.png",
|
||||
groups = {choppy = 1},
|
||||
tile_front = "doors_trapdoor.png",
|
||||
^ the texture for the front and back of the trapdoor
|
||||
tile_side: "doors_trapdoor_side.png",
|
||||
^ the tiles of the four side parts of the trapdoor
|
||||
sounds = default.node_sound_wood_defaults(), -- optional
|
||||
sound_open = sound play for open door, -- optional
|
||||
sound_close = sound play for close door, -- optional
|
||||
protected = false,
|
||||
^ If true, only placer can open the door (locked for others)
|
||||
}
|
||||
|
||||
Fence API
|
||||
---------
|
||||
Allows creation of new fences with "fencelike" drawtype.
|
||||
|
||||
default.register_fence(name, item definition)
|
||||
^ Registers a new fence. Custom fields texture and material are required, as
|
||||
^ are name and description. The rest is optional. You can pass most normal
|
||||
^ nodedef fields here except drawtype. The fence group will always be added
|
||||
^ for this node.
|
||||
|
||||
#fence definition
|
||||
name = "default:fence_wood",
|
||||
description = "Wooden Fence",
|
||||
texture = "default_wood.png",
|
||||
material = "default:wood",
|
||||
groups = {choppy=2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
|
||||
Farming API
|
||||
-----------
|
||||
The farming API allows you to easily register plants and hoes.
|
||||
|
||||
farming.register_hoe(name, hoe definition)
|
||||
-> Register a new hoe, see [#hoe definition]
|
||||
|
||||
farming.register_plant(name, Plant definition)
|
||||
-> Register a new growing plant, see [#Plant definition]
|
||||
|
||||
#Hoe Definition
|
||||
---------------
|
||||
{
|
||||
description = "", -- Description for tooltip
|
||||
inventory_image = "unknown_item.png", -- Image to be used as wield- and inventory image
|
||||
max_uses = 30, -- Uses until destroyed
|
||||
material = "", -- Material for recipes
|
||||
recipe = { -- Craft recipe, if material isn't used
|
||||
{"air", "air", "air"},
|
||||
{"", "group:stick"},
|
||||
{"", "group:stick"},
|
||||
}
|
||||
}
|
||||
|
||||
#Plant definition
|
||||
-----------------
|
||||
{
|
||||
description = "", -- Description of seed item
|
||||
inventory_image = "unknown_item.png", -- Image to be used as seed's wield- and inventory image
|
||||
steps = 8, -- How many steps the plant has to grow, until it can be harvested
|
||||
^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber)
|
||||
minlight = 13, -- Minimum light to grow
|
||||
maxlight = default.LIGHT_MAX -- Maximum light to grow
|
||||
}
|
||||
|
||||
Screwdriver API
|
||||
---------------
|
||||
The screwdriver API allows you to control a node's behaviour when a screwdriver is used on it.
|
||||
To use it, add the on_screwdriver function to the node definition.
|
||||
on_rotate(pos, node, user, mode, new_param2)
|
||||
^ pos: position of the node that the screwdriver is being used on
|
||||
^ node: that node
|
||||
^ user: the player who used the screwdriver
|
||||
^ mode: screwdriver.ROTATE_FACE or screwdriver.ROTATE_AXIS
|
||||
^ new_param2: the new value of param2 that would have been set if on_rotate wasn't there
|
||||
^ return value: false to disallow rotation, nil to keep default behaviour, true to allow
|
||||
it but to indicate that changed have already been made (so the screwdriver will wear out)
|
||||
^ use on_rotate = screwdriver.disallow to always disallow rotation
|
||||
^ use on_rotate = screwdriver.rotate_simple to allow only face rotation
|
||||
|
||||
Stairs API
|
||||
----------
|
||||
The stairs API lets you register stairs and slabs and ensures that they are registered the same way as those
|
||||
delivered with Minetest Game, to keep them compatible with other mods.
|
||||
|
||||
stairs.register_stair(subname, recipeitem, groups, images, description, sounds)
|
||||
-> Registers a stair.
|
||||
-> subname: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname"
|
||||
-> recipeitem: Item used in the craft recipe, e.g. "default:cobble"
|
||||
-> groups: see [Known damage and digging time defining groups]
|
||||
-> images: see [Tile definition]
|
||||
-> description: used for the description field in the stair's definition
|
||||
-> sounds: see [#Default sounds]
|
||||
|
||||
stairs.register_slab(subname, recipeitem, groups, images, description, sounds)
|
||||
-> Registers a slabs
|
||||
-> subname: Basically the material name (e.g. cobble) used for the stair name. Nodename pattern: "stairs:stair_subname"
|
||||
-> recipeitem: Item used in the craft recipe, e.g. "default:cobble"
|
||||
-> groups: see [Known damage and digging time defining groups]
|
||||
-> images: see [Tile definition]
|
||||
-> description: used for the description field in the stair's definition
|
||||
-> sounds: see [#Default sounds]
|
||||
|
||||
stairs.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds)
|
||||
-> A wrapper for stairs.register_stair and stairs.register_slab
|
||||
-> Uses almost the same arguments as stairs.register_stair
|
||||
-> desc_stair: Description for stair node
|
||||
-> desc_slab: Description for slab node
|
||||
|
||||
Xpanes API
|
||||
----------
|
||||
Creates panes that automatically connect to each other
|
||||
|
||||
xpanes.register_pane(subname, def)
|
||||
-> subname: used for nodename. Result: "xpanes:subname" and "xpanes:subname_{2..15}"
|
||||
-> def: See [#Pane definition]
|
||||
|
||||
#Pane definition
|
||||
----------------
|
||||
{
|
||||
textures = {"texture_Bottom_top", "texture_left_right", "texture_front_back"},
|
||||
^ More tiles aren't supported
|
||||
groups = {group = rating},
|
||||
^ Uses the known node groups, see [Known damage and digging time defining groups]
|
||||
sounds = SoundSpec,
|
||||
^ See [#Default sounds]
|
||||
recipe = {{"","","","","","","","",""}},
|
||||
^ Recipe field only
|
||||
}
|
||||
|
||||
Raillike definitions
|
||||
--------------------
|
||||
The following nodes use the group `connect_to_raillike` and will only connect to
|
||||
raillike nodes within this group and the same group value.
|
||||
Use `minetest.raillike_group(<Name>)` to get the group value.
|
||||
|
||||
| Node type | Raillike group name
|
||||
+-----------------------+--------------------
|
||||
| default:rail | "rail"
|
||||
| tnt:gunpowder | "gunpowder"
|
||||
| tnt:gunpowder_burning | "gunpowder"
|
||||
|
||||
Example:
|
||||
If you want to add a new rail type and want it to connect with default:rail,
|
||||
add `connect_to_raillike=minetest.raillike_group("rail")` into the `groups` table
|
||||
of your node.
|
||||
|
||||
|
||||
Default sounds
|
||||
--------------
|
||||
Sounds inside the default table can be used within the sounds field of node definitions.
|
||||
|
||||
default.node_sound_defaults()
|
||||
default.node_sound_stone_defaults()
|
||||
default.node_sound_dirt_defaults()
|
||||
default.node_sound_sand_defaults()
|
||||
default.node_sound_wood_defaults()
|
||||
default.node_sound_leaves_defaults()
|
||||
default.node_sound_glass_defaults()
|
||||
|
||||
Default constants
|
||||
-----------------
|
||||
default.LIGHT_MAX
|
||||
^ The maximum light level (see [Node definition] light_source)
|
||||
|
||||
Player API
|
||||
----------
|
||||
The player API can register player models and update the player's appearence
|
||||
|
||||
default.player_register_model(name, def)
|
||||
^ Register a new model to be used by players.
|
||||
-> name: model filename such as "character.x", "foo.b3d", etc.
|
||||
-> def: See [#Model definition]
|
||||
|
||||
default.registered_player_models[name]
|
||||
^ Get a model's definition
|
||||
-> see [#Model definition]
|
||||
|
||||
default.player_set_model(player, model_name)
|
||||
^ Change a player's model
|
||||
-> player: PlayerRef
|
||||
-> model_name: model registered with player_register_model()
|
||||
|
||||
default.player_set_animation(player, anim_name [, speed])
|
||||
^ Applies an animation to a player
|
||||
-> anim_name: name of the animation.
|
||||
-> speed: frames per second. If nil, default from the model is used
|
||||
|
||||
default.player_set_textures(player, textures)
|
||||
^ Sets player textures
|
||||
-> player: PlayerRef
|
||||
-> textures: array of textures
|
||||
^ If <textures> is nil, the default textures from the model def are used
|
||||
|
||||
default.player_get_animation(player)
|
||||
^ Returns a table containing fields "model", "textures" and "animation".
|
||||
^ Any of the fields of the returned table may be nil.
|
||||
-> player: PlayerRef
|
||||
|
||||
Model Definition
|
||||
----------------
|
||||
{
|
||||
animation_speed = 30, -- Default animation speed, in FPS.
|
||||
textures = {"character.png", }, -- Default array of textures.
|
||||
visual_size = {x = 1, y = 1}, -- Used to scale the model.
|
||||
animations = {
|
||||
-- <anim_name> = {x = <start_frame>, y = <end_frame>},
|
||||
foo = {x = 0, y = 19},
|
||||
bar = {x = 20, y = 39},
|
||||
-- ...
|
||||
},
|
||||
}
|
||||
|
||||
Leafdecay
|
||||
---------
|
||||
To enable leaf decay for a node, add it to the "leafdecay" group.
|
||||
|
||||
The rating of the group determines how far from a node in the group "tree"
|
||||
the node can be without decaying.
|
||||
|
||||
If param2 of the node is ~= 0, the node will always be preserved. Thus, if
|
||||
the player places a node of that kind, you will want to set param2=1 or so.
|
||||
|
||||
The function default.after_place_leaves can be set as after_place_node of a node
|
||||
to set param2 to 1 if the player places the node (should not be used for nodes
|
||||
that use param2 otherwise (e.g. facedir)).
|
||||
|
||||
If the node is in the leafdecay_drop group then it will always be dropped as an
|
||||
item.
|
||||
|
||||
Dyes
|
||||
----
|
||||
To make recipes that will work with any dye ever made by anybody, define
|
||||
them based on groups. You can select any group of groups, based on your need for
|
||||
amount of colors.
|
||||
|
||||
#Color groups
|
||||
-------------
|
||||
Base color groups:
|
||||
- basecolor_white
|
||||
- basecolor_grey
|
||||
- basecolor_black
|
||||
- basecolor_red
|
||||
- basecolor_yellow
|
||||
- basecolor_green
|
||||
- basecolor_cyan
|
||||
- basecolor_blue
|
||||
- basecolor_magenta
|
||||
|
||||
Extended color groups (* = equal to a base color):
|
||||
* excolor_white
|
||||
- excolor_lightgrey
|
||||
* excolor_grey
|
||||
- excolor_darkgrey
|
||||
* excolor_black
|
||||
* excolor_red
|
||||
- excolor_orange
|
||||
* excolor_yellow
|
||||
- excolor_lime
|
||||
* excolor_green
|
||||
- excolor_aqua
|
||||
* excolor_cyan
|
||||
- excolor_sky_blue
|
||||
* excolor_blue
|
||||
- excolor_violet
|
||||
* excolor_magenta
|
||||
- excolor_red_violet
|
||||
|
||||
The whole unifieddyes palette as groups:
|
||||
- unicolor_<excolor>
|
||||
For the following, no white/grey/black is allowed:
|
||||
- unicolor_medium_<excolor>
|
||||
- unicolor_dark_<excolor>
|
||||
- unicolor_light_<excolor>
|
||||
- unicolor_<excolor>_s50
|
||||
- unicolor_medium_<excolor>_s50
|
||||
- unicolor_dark_<excolor>_s50
|
||||
|
||||
Example of one shapeless recipe using a color group:
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = '<mod>:item_yellow',
|
||||
recipe = {'<mod>:item_no_color', 'group:basecolor_yellow'},
|
||||
})
|
||||
|
||||
#Color lists
|
||||
------------
|
||||
dye.basecolors
|
||||
^ Array containing the names of available base colors
|
||||
|
||||
dye.excolors
|
||||
^ Array containing the names of the available extended colors
|
||||
|
||||
Trees
|
||||
-----
|
||||
default.grow_tree(pos, is_apple_tree)
|
||||
^ Grows a mgv6 tree or apple tree at pos
|
||||
|
||||
default.grow_jungle_tree(pos)
|
||||
^ Grows a mgv6 jungletree at pos
|
||||
|
||||
default.grow_pine_tree(pos)
|
||||
^ Grows a mgv6 pinetree at pos
|
||||
|
||||
default.grow_new_apple_tree(pos)
|
||||
^ Grows a new design apple tree at pos
|
||||
|
||||
default.grow_new_jungle_tree(pos)
|
||||
^ Grows a new design jungle tree at pos
|
||||
|
||||
default.grow_new_pine_tree(pos)
|
||||
^ Grows a new design pine tree at pos
|
||||
|
||||
default.grow_new_acacia_tree(pos)
|
||||
^ Grows a new design acacia tree at pos
|
33
goals.txt
Normal file
33
goals.txt
Normal file
@ -0,0 +1,33 @@
|
||||
--[[
|
||||
|
||||
INTRO:
|
||||
Welcome to the code of the mystic gamemode. This gamemode adds in a bunch of things to make the game more fun.
|
||||
|
||||
GOALS:
|
||||
# Writeable books/paper, realistic bookshelves, book entities, randomly generating bookshelves/books
|
||||
|
||||
# Fish, water creatures, underwater plantlife
|
||||
|
||||
# Fishing, lures, bait, worm/frog/fly/gnat entities to catch, spawn worm entity when a dirt/grass node is dug
|
||||
|
||||
# 3d ladders (That can't be placed on the ground), torches,
|
||||
|
||||
# Minecraft like crafting (to add artificial difficulty)
|
||||
|
||||
# Better boat physics, mesh, different types of boats
|
||||
|
||||
# 3d Chest mesh
|
||||
|
||||
# 3d Cactus
|
||||
|
||||
# Better TNT (dynamite)
|
||||
|
||||
# Add in upgrades to all inventory bars through achievements
|
||||
|
||||
# Make ladders like minecraft ladders
|
||||
|
||||
# Make jungle plants drop green dye as well as cotton seed
|
||||
|
||||
# Make drinking drinks replenish stamina
|
||||
|
||||
]]--
|
BIN
menu/header.png
Normal file
BIN
menu/header.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 669 KiB |
BIN
menu/icon.png
Normal file
BIN
menu/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 257 KiB |
0
minetest.conf
Normal file
0
minetest.conf
Normal file
35
minetest.conf.example
Normal file
35
minetest.conf.example
Normal file
@ -0,0 +1,35 @@
|
||||
# This file contains settings of Minetest Game that can be changed in minetest.conf
|
||||
# By default, all the settings are commented and not functional.
|
||||
# Uncomment settings by removing the preceding #.
|
||||
|
||||
# Whether creative mode (fast digging of all blocks, unlimited resources) should be enabled
|
||||
#creative_mode = false
|
||||
|
||||
# The time in seconds after which the bones of a dead player can be looted by everyone
|
||||
# 0 to disable
|
||||
#share_bones_time = 1200
|
||||
|
||||
# Whether standard fire should be disabled ('basic flame' nodes will disappear)
|
||||
# 'permanent flame' nodes will remain with either setting
|
||||
#disable_fire = false
|
||||
|
||||
# Whether steel tools, torches and cobblestone should be given to new players
|
||||
#give_initial_stuff = false
|
||||
|
||||
# Whether the TNT mod should be enabled
|
||||
#enable_tnt = <true in singleplayer, false in multiplayer>
|
||||
|
||||
# The radius of a TNT explosion
|
||||
#tnt_radius = 3
|
||||
|
||||
# Enable the stairs mod ABM that replaces the old 'upside down'
|
||||
# stair and slab nodes in old maps with the new param2 versions.
|
||||
#enable_stairs_replace_abm = false
|
||||
|
||||
# Whether you allow respawning in beds
|
||||
# Default value is true
|
||||
#enable_bed_respawn = true
|
||||
|
||||
# Whether players can skip night by sleeping
|
||||
# Default value is true
|
||||
#enable_bed_night_skip = true
|
13
mod_jail/nssm/README.txt
Normal file
13
mod_jail/nssm/README.txt
Normal file
@ -0,0 +1,13 @@
|
||||
Not so simple mobs by NPX team
|
||||
|
||||
We would like to thank:
|
||||
- PilzAdam, for his wonderful simple-mobs mod;
|
||||
- Tenplus1, for his hard work in making mobs_redo;
|
||||
- Echoes91, for Spears: simple but amazing;
|
||||
- and obviously Celeron-55 and all the people who contributed to Minetest and its community;
|
||||
- Denise and Ponzi_Duro for the revision of the guide
|
||||
- Double P and Ponzi_Duro for the beta testing
|
||||
|
||||
License GPL v3
|
||||
|
||||
The mod makes the game really hard, please read the Guide, available on the thread of the mod, before playing!
|
63
mod_jail/nssm/ant_queen.lua
Normal file
63
mod_jail/nssm/ant_queen.lua
Normal file
@ -0,0 +1,63 @@
|
||||
nssm:spawn_specific("nssm:ant_queen", {"nssm:ant_dirt"}, {"air"}, 0, 20, 60, 200, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:ant_queen", {
|
||||
type = "monster",
|
||||
hp_max = 120,
|
||||
hp_min = 120,
|
||||
collisionbox = {-1, 0.00, -1, 1, 1, 1},
|
||||
visual = "mesh",
|
||||
mesh = "ant_queen.x",
|
||||
textures = {{"ant_queen.png"}},
|
||||
visual_size = {x=6, y=6},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 30,
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 2,
|
||||
lifetimer = 300,
|
||||
mamma = true,
|
||||
rotate = 270,
|
||||
sounds = {
|
||||
random = "ant",
|
||||
attack = "ant",
|
||||
},
|
||||
damage = 4,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 5,
|
||||
max = 7,},
|
||||
{name = "nssm:ant_queen_abdomen",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
{name = "nssm:ant_leg",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 6,},
|
||||
{name = "nssm:ant_mandible",
|
||||
chance = 3,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
},
|
||||
reach = 4,
|
||||
armor = 70,
|
||||
drawtype = "front",
|
||||
water_damage = 2,
|
||||
lava_damage = 7,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 50,
|
||||
walk_start = 120,
|
||||
walk_end = 160,
|
||||
run_start = 120,
|
||||
run_end = 160,
|
||||
punch_start = 170,
|
||||
punch_end = 190,
|
||||
}
|
||||
|
||||
})
|
55
mod_jail/nssm/ant_soldier.lua
Normal file
55
mod_jail/nssm/ant_soldier.lua
Normal file
@ -0,0 +1,55 @@
|
||||
nssm:spawn_specific("nssm:ant_soldier", {"nssm:ant_dirt"}, {"air"}, 0, 20, 7, 30, 4, -31000, 31000)
|
||||
nssm:register_mob("nssm:ant_soldier", {
|
||||
type = "monster",
|
||||
hp_max = 20,
|
||||
hp_min = 20,
|
||||
collisionbox = {-0.49, 0.00, -0.49, 0.49, 0.9, 0.49},
|
||||
visual = "mesh",
|
||||
mesh = "ant_soldier.x",
|
||||
textures = {{"ant_soldier.png"}},
|
||||
visual_size = {x=3, y=3},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 20,
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 3,
|
||||
rotate = 270,
|
||||
sounds = {
|
||||
random = "ant",
|
||||
},
|
||||
damage = 4,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
{name = "nssm:ant_leg",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 6,},
|
||||
{name = "nssm:ant_mandible",
|
||||
chance = 3,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
},
|
||||
reach = 2,
|
||||
armor = 90,
|
||||
drawtype = "front",
|
||||
water_damage = 2,
|
||||
lava_damage = 7,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 35,
|
||||
stand_start = 1,
|
||||
stand_end = 60,
|
||||
walk_start = 90,
|
||||
walk_end = 130,
|
||||
run_start = 90,
|
||||
run_end = 130,
|
||||
punch_start = 60,
|
||||
punch_end = 80,
|
||||
}
|
||||
})
|
55
mod_jail/nssm/ant_worker.lua
Normal file
55
mod_jail/nssm/ant_worker.lua
Normal file
@ -0,0 +1,55 @@
|
||||
nssm:spawn_specific("nssm:ant_worker", {"nssm:ant_dirt"}, {"air"}, 0, 20, 5, 10, 5, -31000, 31000)
|
||||
nssm:register_mob("nssm:ant_worker", {
|
||||
type = "animal",
|
||||
hp_max = 13,
|
||||
hp_min = 13,
|
||||
collisionbox = {-0.4, 0.00, -0.4, 0.4, 0.5, 0.4},
|
||||
visual = "mesh",
|
||||
mesh = "ant_worker.x",
|
||||
textures = {{"ant_worker.png"}},
|
||||
visual_size = {x=2, y=2},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 20,
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 2,
|
||||
rotate = 270,
|
||||
sounds = {
|
||||
random = "ant",
|
||||
},
|
||||
damage = 2,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
{name = "nssm:ant_leg",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 6,},
|
||||
{name = "nssm:ant_mandible",
|
||||
chance = 3,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
|
||||
},
|
||||
armor = 90,
|
||||
drawtype = "front",
|
||||
water_damage = 2,
|
||||
lava_damage = 7,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 50,
|
||||
walk_start = 120,
|
||||
walk_end = 160,
|
||||
run_start = 120,
|
||||
run_end = 160,
|
||||
punch_start = 50,
|
||||
punch_end = 70,
|
||||
}
|
||||
})
|
2233
mod_jail/nssm/api.lua
Normal file
2233
mod_jail/nssm/api.lua
Normal file
File diff suppressed because it is too large
Load Diff
55
mod_jail/nssm/black_widow.lua
Normal file
55
mod_jail/nssm/black_widow.lua
Normal file
@ -0,0 +1,55 @@
|
||||
nssm:spawn_specific("nssm:black_widow", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 20, 20, 1000, 2, -31000, 31000)
|
||||
nssm:register_mob("nssm:black_widow", {
|
||||
type = "monster",
|
||||
hp_max = 20,
|
||||
hp_min = 19,
|
||||
collisionbox = {-0.4, 0.00, -0.4, 0.4, 0.8, 0.4},
|
||||
visual = "mesh",
|
||||
mesh = "black_widow.x",
|
||||
textures = {{"black_widow.png"}},
|
||||
visual_size = {x=2, y=2},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 15,
|
||||
walk_velocity = 1,
|
||||
run_velocity = 2.5,
|
||||
rotate = 270,
|
||||
sounds = {
|
||||
random = "black_widow",
|
||||
},
|
||||
damage = 3,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
{name = "nssm:spider_leg",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 8,},
|
||||
{name = "nssm:web",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 1,
|
||||
webber = true,
|
||||
lava_damage = 7,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 70,
|
||||
walk_start = 80,
|
||||
walk_end = 120,
|
||||
run_start = 120,
|
||||
run_end = 140,
|
||||
punch_start = 150,
|
||||
punch_end = 160,
|
||||
}
|
||||
})
|
50
mod_jail/nssm/bloco.lua
Normal file
50
mod_jail/nssm/bloco.lua
Normal file
@ -0,0 +1,50 @@
|
||||
nssm:spawn_specific("nssm:bloco", {"default:stone"}, {"default:stone"}, 0, 20, 30, 500, 3, -31000, -20)
|
||||
nssm:register_mob("nssm:bloco", {
|
||||
type = "monster",
|
||||
hp_max = 15,
|
||||
hp_min = 14,
|
||||
collisionbox = {-0.56, -0.2, -0.56, 0.56, 1.2, 0.56},
|
||||
visual = "mesh",
|
||||
mesh = "bloco.x",
|
||||
textures = {{"bloco.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 8,
|
||||
walk_velocity = 1,
|
||||
run_velocity = 2.5,
|
||||
rotate = 270,
|
||||
sounds = {
|
||||
random = "bloco",
|
||||
},
|
||||
damage = 2,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
{name = "default:stone",
|
||||
chance = 1,
|
||||
min = 2,
|
||||
max = 3,},
|
||||
},
|
||||
armor = 60,
|
||||
drawtype = "front",
|
||||
water_damage = 3,
|
||||
lava_damage = 1,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 20,
|
||||
stand_start = 90,
|
||||
stand_end = 110,
|
||||
walk_start = 1,
|
||||
walk_end = 80,
|
||||
run_start = 120,
|
||||
run_end = 160,
|
||||
punch_start = 170,
|
||||
punch_end = 190,
|
||||
}
|
||||
})
|
55
mod_jail/nssm/crab.lua
Normal file
55
mod_jail/nssm/crab.lua
Normal file
@ -0,0 +1,55 @@
|
||||
nssm:spawn_specific("nssm:crab", {"default:sand"}, {"default:water_source"}, 0, 20, 20, 3000, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:crab", {
|
||||
type = "monster",
|
||||
hp_max = 17,
|
||||
hp_min = 15,
|
||||
collisionbox = {-0.5, 0, -0.5, 0.5, 0.55, 0.5},
|
||||
visual = "mesh",
|
||||
mesh = "crab.x",
|
||||
textures = {{"crab1.png"},{"crab2.png"}},
|
||||
sounds = {
|
||||
random = "crab",
|
||||
},
|
||||
visual_size = {x=3, y=3},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 7,
|
||||
rotate = 270,
|
||||
walk_velocity = 1,
|
||||
run_velocity = 2,
|
||||
damage = 3,
|
||||
floats = 0,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
{name = "nssm:surimi",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
{name = "nssm:crab_chela",
|
||||
chance = 4,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
},
|
||||
armor = 60,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 10,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 35,
|
||||
stand_start = 10,
|
||||
stand_end = 80,
|
||||
walk_start = 120,
|
||||
walk_end = 140,
|
||||
run_start = 120,
|
||||
run_end = 140,
|
||||
punch_start = 90,
|
||||
punch_end = 110,
|
||||
}
|
||||
})
|
53
mod_jail/nssm/crocodile.lua
Normal file
53
mod_jail/nssm/crocodile.lua
Normal file
@ -0,0 +1,53 @@
|
||||
nssm:spawn_specific("nssm:crocodile", {"default:sand","default:water_source"}, {"default:water_source"}, 0, 20, 60, 35000, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:crocodile", {
|
||||
type = "monster",
|
||||
hp_max = 20,
|
||||
hp_min = 15,
|
||||
collisionbox = {-0.45, -0.30, -0.45, 0.45, 0.3, 0.45},
|
||||
visual = "mesh",
|
||||
mesh = "crocodile.x",
|
||||
textures = {{"croco.png"}},
|
||||
sounds = {
|
||||
random = "crocod",
|
||||
},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 15,
|
||||
walk_velocity = 1,
|
||||
run_velocity = 1,
|
||||
damage = 3,
|
||||
floats = 1,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
{name = "nssm:croco_tail",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
},
|
||||
armor = 90,
|
||||
drawtype = "front",
|
||||
reach = 2,
|
||||
water_damage = 0,
|
||||
lava_damage = 10,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 80,
|
||||
walk_start = 230,
|
||||
walk_end = 270,
|
||||
run_start = 230,
|
||||
run_end = 270,
|
||||
punch_start = 205,
|
||||
punch_end = 220,
|
||||
--swim_start = 100,
|
||||
--swim_end = 140,
|
||||
}
|
||||
})
|
50
mod_jail/nssm/daddy_long_legs.lua
Normal file
50
mod_jail/nssm/daddy_long_legs.lua
Normal file
@ -0,0 +1,50 @@
|
||||
nssm:spawn_specific("nssm:daddy_long_legs", {"default:jungle_grass", "default:jungletree", "nssm:web" }, {"air"}, 0, 20, 10, 1000, 2, -31000, 31000)
|
||||
nssm:register_mob("nssm:daddy_long_legs", {
|
||||
type = "monster",
|
||||
hp_max = 19,
|
||||
hp_min = 16,
|
||||
collisionbox = {-0.4, 0.00, -0.4, 0.4, 0.6, 0.4},
|
||||
visual = "mesh",
|
||||
mesh = "daddy_long_legs.x",
|
||||
textures = {{"daddy_long_legs.png"}},
|
||||
visual_size = {x=8, y=8},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 12,
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 3.3,
|
||||
rotate = 90,
|
||||
sounds = {
|
||||
random = "daddy",
|
||||
},
|
||||
damage = 3,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
{name = "nssm:spider_leg",
|
||||
chance = 3,
|
||||
min = 1,
|
||||
max = 8,},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 1,
|
||||
lava_damage = 7,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 60,
|
||||
walk_start = 80,
|
||||
walk_end = 120,
|
||||
run_start = 80,
|
||||
run_end = 120,
|
||||
punch_start = 140,
|
||||
punch_end = 165,
|
||||
}
|
||||
})
|
57
mod_jail/nssm/dahaka.lua
Normal file
57
mod_jail/nssm/dahaka.lua
Normal file
@ -0,0 +1,57 @@
|
||||
nssm:spawn_specific("nssm:dahaka", {"default:desert_sand", "default:desert_stone"}, {"air"}, 0, 20, 1200, 20000, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:dahaka", {
|
||||
type = "monster",
|
||||
hp_max = 80,
|
||||
hp_min = 80,
|
||||
collisionbox = {-0.85, -0.30, -0.85, 0.85, 4.50, 0.85},
|
||||
visual = "mesh",
|
||||
digger = true,
|
||||
mesh = "dahaka.x",
|
||||
textures = {{"dahaka.png", "dahaka_sand.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
lifetimer=500,
|
||||
makes_footstep_sound = true,
|
||||
view_range = 30,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 2,
|
||||
damage = 8,
|
||||
reach = 3,
|
||||
jump = false,
|
||||
jump_chance = 0,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 7,
|
||||
max = 9,},
|
||||
{name = "nssm:black_sand",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
},
|
||||
armor = 40,
|
||||
drawtype = "front",
|
||||
sounds = {
|
||||
random = "dakaka",
|
||||
},
|
||||
water_damage = 20,
|
||||
lava_damage = 0,
|
||||
light_damage = 0,
|
||||
rotate = 270,
|
||||
on_rightclick = nil,
|
||||
mele_number =2,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 40,
|
||||
stand_start = 230,
|
||||
stand_end = 290,
|
||||
walk_start = 0,
|
||||
walk_end = 40,
|
||||
run_start = 0,
|
||||
run_end = 40,
|
||||
punch_start = 300,
|
||||
punch_end = 330,
|
||||
punch1_start = 120,
|
||||
punch1_end = 155,
|
||||
}
|
||||
})
|
317
mod_jail/nssm/darts.lua
Normal file
317
mod_jail/nssm/darts.lua
Normal file
@ -0,0 +1,317 @@
|
||||
-- lava_arrow
|
||||
nssm:register_arrow("nssm:lava_arrow", {
|
||||
visual = "sprite",
|
||||
visual_size = {x = 1, y = 1},
|
||||
textures = {"transparent.png"},
|
||||
velocity = 15,
|
||||
-- direct hit
|
||||
hit_player = function(self, player)
|
||||
nssm:lava_explosion(pos, player)
|
||||
end,
|
||||
|
||||
hit_mob = function(self, player)
|
||||
nssm:lava_explosion(pos, player)
|
||||
end,
|
||||
|
||||
})
|
||||
|
||||
function nssm:lava_explosion(pos, player)
|
||||
-- for i=pos.x-1, pos.x+1, 1 do
|
||||
pos = player:getpos()
|
||||
for j=pos.y-1, pos.y+6, 1 do
|
||||
minetest.set_node({x=pos.x+1, y=j, z=pos.z+1}, {name="default:lava_flowing"})
|
||||
minetest.set_node({x=pos.x+1, y=j, z=pos.z-1}, {name="default:lava_flowing"})
|
||||
minetest.set_node({x=pos.x-1, y=j, z=pos.z+1}, {name="default:lava_flowing"})
|
||||
minetest.set_node({x=pos.x-1, y=j, z=pos.z-1}, {name="default:lava_flowing"})
|
||||
end
|
||||
end
|
||||
|
||||
-- arrow (duck_arrow)
|
||||
nssm:register_arrow("nssm:duck_father", {
|
||||
visual = "sprite",
|
||||
visual_size = {x = 1, y = 1},
|
||||
textures = {"duck_egg.png"},
|
||||
velocity = 8,
|
||||
-- direct hit
|
||||
hit_player = function(self, player)
|
||||
nssm:duck_explosion_direct(pos, player)
|
||||
end,
|
||||
|
||||
hit_mob = function(self, player)
|
||||
nssm:duck_explosion_direct(pos, player)
|
||||
end,
|
||||
|
||||
hit_node = function(self, pos, node)
|
||||
nssm:duck_explosion(pos)
|
||||
end,
|
||||
|
||||
})
|
||||
|
||||
function nssm:duck_explosion_direct(pos, player)
|
||||
pos = player:getpos()
|
||||
pos.y = pos.y+1;
|
||||
minetest.add_particlespawner({
|
||||
amount = 10,
|
||||
time = 0.2,
|
||||
minpos = {x=pos.x-1, y=pos.y-1, z=pos.z-1},
|
||||
maxpos = {x=pos.x+1, y=pos.y+4, z=pos.z+1},
|
||||
minvel = {x=0, y=0, z=0},
|
||||
maxvel = {x=1, y=1, z=1},
|
||||
minacc = {x=-0.5,y=5,z=-0.5},
|
||||
maxacc = {x=0.5,y=5,z=0.5},
|
||||
minexptime = 1,
|
||||
maxexptime = 3,
|
||||
minsize = 4,
|
||||
maxsize = 6,
|
||||
collisiondetection = false,
|
||||
vertical = false,
|
||||
texture = "duck_egg_fragments.png",
|
||||
})
|
||||
core.after(0.4, function()
|
||||
for dx = -2,2 do
|
||||
pos = {x = pos.x+dx, y=pos.y; z=pos.z+dx}
|
||||
minetest.add_particlespawner({
|
||||
amount = 100,
|
||||
time = 0.2,
|
||||
minpos = {x=pos.x-1, y=pos.y-1, z=pos.z-1},
|
||||
maxpos = {x=pos.x+1, y=pos.y+4, z=pos.z+1},
|
||||
minvel = {x=0, y=0, z=0},
|
||||
maxvel = {x=1, y=5, z=1},
|
||||
minacc = {x=-0.5,y=5,z=-0.5},
|
||||
maxacc = {x=0.5,y=5,z=0.5},
|
||||
minexptime = 1,
|
||||
maxexptime = 3,
|
||||
minsize = 2,
|
||||
maxsize = 4,
|
||||
collisiondetection = false,
|
||||
vertical = false,
|
||||
texture = "tnt_smoke.png",
|
||||
})
|
||||
minetest.add_entity(pos, "nssm:duck")
|
||||
end
|
||||
end)
|
||||
end
|
||||
function nssm:duck_explosion(pos)
|
||||
pos.y = pos.y+1;
|
||||
minetest.add_particlespawner({
|
||||
amount = 10,
|
||||
time = 0.2,
|
||||
minpos = {x=pos.x-1, y=pos.y-1, z=pos.z-1},
|
||||
maxpos = {x=pos.x+1, y=pos.y+4, z=pos.z+1},
|
||||
minvel = {x=0, y=0, z=0},
|
||||
maxvel = {x=1, y=1, z=1},
|
||||
minacc = {x=-0.5,y=5,z=-0.5},
|
||||
maxacc = {x=0.5,y=5,z=0.5},
|
||||
minexptime = 1,
|
||||
maxexptime = 3,
|
||||
minsize = 4,
|
||||
maxsize = 6,
|
||||
collisiondetection = false,
|
||||
vertical = false,
|
||||
texture = "duck_egg_fragments.png",
|
||||
})
|
||||
core.after(0.4, function()
|
||||
for dx = -2,2 do
|
||||
pos = {x = pos.x+dx, y=pos.y; z=pos.z+dx}
|
||||
minetest.add_particlespawner({
|
||||
amount = 100,
|
||||
time = 0.2,
|
||||
minpos = {x=pos.x-1, y=pos.y-1, z=pos.z-1},
|
||||
maxpos = {x=pos.x+1, y=pos.y+4, z=pos.z+1},
|
||||
minvel = {x=0, y=0, z=0},
|
||||
maxvel = {x=1, y=5, z=1},
|
||||
minacc = {x=-0.5,y=5,z=-0.5},
|
||||
maxacc = {x=0.5,y=5,z=0.5},
|
||||
minexptime = 1,
|
||||
maxexptime = 3,
|
||||
minsize = 2,
|
||||
maxsize = 4,
|
||||
collisiondetection = false,
|
||||
vertical = false,
|
||||
texture = "tnt_smoke.png",
|
||||
})
|
||||
minetest.add_entity(pos, "nssm:duck")
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
-- snow_arrow
|
||||
nssm:register_arrow("nssm:snow_arrow", {
|
||||
visual = "sprite",
|
||||
visual_size = {x = 1, y = 1},
|
||||
textures = {"transparent.png"},
|
||||
velocity =20,
|
||||
-- direct hit
|
||||
hit_player = function(self, player)
|
||||
nssm:ice_explosion1(pos, player)
|
||||
end,
|
||||
|
||||
hit_mob = function(self, player)
|
||||
nssm:ice_explosion1(pos, player)
|
||||
end,
|
||||
hit_node = function(self, pos, node)
|
||||
nssm:ice_explosion(pos)
|
||||
end,
|
||||
})
|
||||
|
||||
function nssm:ice_explosion(pos)
|
||||
--pos = player:getpos()
|
||||
for i=pos.x-math.random(0, 1), pos.x+math.random(0, 1), 1 do
|
||||
for j=pos.y-1, pos.y+4, 1 do
|
||||
for k=pos.z-math.random(0, 1), pos.z+math.random(0, 1), 1 do
|
||||
minetest.set_node({x=i, y=j, z=k}, {name="default:ice"})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function nssm:ice_explosion1(pos, player)
|
||||
pos = player:getpos()
|
||||
for i=pos.x-math.random(0, 1), pos.x+math.random(0, 1), 1 do
|
||||
for j=pos.y-1, pos.y+4, 1 do
|
||||
for k=pos.z-math.random(0, 1), pos.z+math.random(0, 1), 1 do
|
||||
minetest.set_node({x=i, y=j, z=k}, {name="default:ice"})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- arrow manticore
|
||||
nssm:register_arrow("nssm:spine", {
|
||||
visual = "sprite",
|
||||
visual_size = {x = 1, y = 1},
|
||||
textures = {"manticore_spine_flying.png"},
|
||||
velocity = 10,
|
||||
-- direct hit
|
||||
hit_player = function(self, player)
|
||||
player:punch(self.object, 1.0, {
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy = 2},
|
||||
}, nil)
|
||||
end,
|
||||
|
||||
hit_mob = function(self, player)
|
||||
player:punch(self.object, 1.0, {
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy = 2},
|
||||
}, nil)
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
-- web arrow
|
||||
nssm:register_arrow("nssm:webball", {
|
||||
visual = "sprite",
|
||||
visual_size = {x = 1, y = 1},
|
||||
textures = {"web_ball.png"},
|
||||
velocity = 8,
|
||||
-- direct hit
|
||||
hit_player = function(self, player)
|
||||
local p = player:getpos()
|
||||
nssm:explosion_web(p)
|
||||
end,
|
||||
|
||||
hit_mob = function(self, player)
|
||||
player:punch(self.object, 1.0, {
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy = 1},
|
||||
}, nil)
|
||||
end,
|
||||
|
||||
hit_node = function(self, pos, node)
|
||||
nssm:explosion_web(pos)
|
||||
end
|
||||
})
|
||||
|
||||
function nssm:explosion_web(pos)
|
||||
for i=pos.x-1, pos.x+1, 1 do
|
||||
for j=pos.y-1, pos.y+1, 1 do
|
||||
for k=pos.z-1, pos.z+1, 1 do
|
||||
local current = minetest.get_node({x=i,y=j,z=k})
|
||||
local ontop = minetest.get_node({x=i,y=j+1,z=k})
|
||||
if (current.name ~= "air") and
|
||||
(current.name ~= "nssm:web") and
|
||||
(ontop.name == "air") then
|
||||
minetest.set_node({x=i,y=j+1,z=k}, {name="nssm:web"})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- arrow=>phoenix arrow
|
||||
nssm:register_arrow("nssm:phoenix_arrow", {
|
||||
visual = "sprite",
|
||||
phoenix_fire = true,
|
||||
visual_size = {x = 1, y = 1},
|
||||
textures = {"transparent.png"},
|
||||
velocity = 8,
|
||||
-- direct hit
|
||||
hit_player = function(self, player)
|
||||
end,
|
||||
|
||||
hit_mob = function(self, player)
|
||||
end,
|
||||
|
||||
hit_node = function(self, pos, node)
|
||||
end
|
||||
})
|
||||
|
||||
nssm:register_arrow("nssm:super_gas", {
|
||||
visual = "sprite",
|
||||
visual_size = {x = 1, y = 1},
|
||||
textures = {"transparent.png"},
|
||||
velocity = 8,
|
||||
-- direct hit
|
||||
hit_player = function(self, player)
|
||||
local p = player:getpos()
|
||||
nssm:puzzetton_explosion(p)
|
||||
end,
|
||||
|
||||
hit_mob = function(self, player)
|
||||
end,
|
||||
|
||||
hit_node = function(self, pos, node)
|
||||
nssm:puzzetton_explosion(pos)
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
function nssm:puzzetton_explosion(pos)
|
||||
for dx=-2,2 do
|
||||
for dy=-1,4 do
|
||||
for dz=-2,2 do
|
||||
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
||||
local n = minetest.env:get_node(p).name
|
||||
if n== "air" then
|
||||
minetest.set_node(p, {name="nssm:venomous_gas"})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--
|
||||
nssm:register_arrow("nssm:roar_of_the_dragon", {
|
||||
visual = "sprite",
|
||||
visual_size = {x = 1, y = 1},
|
||||
textures = {"transparent.png"},
|
||||
velocity = 10,
|
||||
remover = true,
|
||||
-- direct hit
|
||||
hit_player = function(self, player)
|
||||
player:punch(self.object, 1.0, {
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy = 3},
|
||||
}, nil)
|
||||
end,
|
||||
|
||||
hit_mob = function(self, player)
|
||||
player:punch(self.object, 1.0, {
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy = 3},
|
||||
}, nil)
|
||||
end,
|
||||
})
|
1
mod_jail/nssm/depends.txt
Normal file
1
mod_jail/nssm/depends.txt
Normal file
@ -0,0 +1 @@
|
||||
default
|
51
mod_jail/nssm/dolidrosaurus.lua
Normal file
51
mod_jail/nssm/dolidrosaurus.lua
Normal file
@ -0,0 +1,51 @@
|
||||
nssm:spawn_specific("nssm:dolidrosaurus", {"default:water_source"}, {"default:water_source"}, 0, 20, 60, 35000, 1, -31000, -1)
|
||||
nssm:register_mob("nssm:dolidrosaurus", {
|
||||
type = "monster",
|
||||
hp_max = 26,
|
||||
hp_min = 23,
|
||||
collisionbox = {-0.5, 0, -0.5, 0.5, 0.52, 0.5},
|
||||
visual = "mesh",
|
||||
mesh = "dolidrosaurus.x",
|
||||
textures = {{"dolidrosaurus1.png"},{"dolidrosaurus2.png"},{"dolidrosaurus3.png"},{"dolidrosaurus4.png"},{"dolidrosaurus5.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 30,
|
||||
fly = true,
|
||||
fly_in = "default:water_source",
|
||||
fall_speed = -20,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 3,
|
||||
damage = 4,
|
||||
rotate = 270,
|
||||
jump = false,
|
||||
jump_chance = 0,
|
||||
jump_height = 0,
|
||||
sounds = {
|
||||
random = "quo",
|
||||
},
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 3,},
|
||||
},
|
||||
armor = 80,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 10,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 35,
|
||||
stand_start = 1,
|
||||
stand_end = 80,
|
||||
walk_start = 140,
|
||||
walk_end = 180,
|
||||
run_start = 140,
|
||||
run_end = 180,
|
||||
punch_start = 190,
|
||||
punch_end = 220,
|
||||
}
|
||||
})
|
55
mod_jail/nssm/duck.lua
Normal file
55
mod_jail/nssm/duck.lua
Normal file
@ -0,0 +1,55 @@
|
||||
nssm:spawn_specific("nssm:duck", {"default:dirt_with_grass"}, {"group:flora"}, 10, 20, 20, 200, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:duck", {
|
||||
type = "monster",
|
||||
hp_max = 10,
|
||||
hp_min = 7,
|
||||
collisionbox = {-0.3, 0.00, -0.3, 0.3, 0.95, 0.3},
|
||||
visual = "mesh",
|
||||
mesh = "duck.x",
|
||||
textures = {{"duck.png"}},
|
||||
visual_size = {x=2, y=2},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 13,
|
||||
walk_velocity = 1,
|
||||
reach =1.5,
|
||||
run_velocity = 2,
|
||||
damage = 1,
|
||||
jump = true,
|
||||
sounds = {
|
||||
random = "duck",
|
||||
},
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
{name = "nssm:duck_legs",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
{name = "nssm:duck_beak",
|
||||
chance = 5,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
floats = 1,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 20,
|
||||
walk_start = 20,
|
||||
walk_end = 40,
|
||||
run_start = 20,
|
||||
run_end = 40,
|
||||
punch_start = 40,
|
||||
punch_end = 60,
|
||||
}
|
||||
})
|
68
mod_jail/nssm/duckking.lua
Normal file
68
mod_jail/nssm/duckking.lua
Normal file
@ -0,0 +1,68 @@
|
||||
nssm:spawn_specific("nssm:duckking", {"default:dirt_with_grass"}, {"group:flora"}, 10, 20, 120, 3000, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:duckking", {
|
||||
type = "monster",
|
||||
hp_max = 80,
|
||||
hp_min = 77,
|
||||
collisionbox = {-1.5, -0.25, -1.5, 1.5, 4.95, 1.5},
|
||||
visual = "mesh",
|
||||
mesh = "king_duck.x",
|
||||
textures = {{"king_duck.png"}},
|
||||
visual_size = {x=10, y=10},
|
||||
lifetimer = 300,
|
||||
makes_footstep_sound = true,
|
||||
view_range = 30,
|
||||
rotate = 270,
|
||||
duck_father = true,
|
||||
walk_velocity = 1,
|
||||
run_velocity = 2,
|
||||
damage = 5,
|
||||
jump = true,
|
||||
sounds = {
|
||||
random = "duckking",
|
||||
attack = "duckking",
|
||||
},
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 7,
|
||||
max = 8,},
|
||||
{name = "nssm:duck_legs",
|
||||
chance = 1,
|
||||
min = 40,
|
||||
max = 50,},
|
||||
{name = "nssm:king_duck_crown",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
{name = "nssm:duck_beak",
|
||||
chance = 5,
|
||||
min = 10,
|
||||
max = 20,},
|
||||
},
|
||||
armor = 80,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
floats = 1,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogshoot",
|
||||
dogshoot_stop = true,
|
||||
arrow = "nssm:duck_father";
|
||||
reach = 3,
|
||||
shoot_interval=3,
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 25,
|
||||
stand_start = 60,
|
||||
stand_end = 140,
|
||||
walk_start = 0,
|
||||
walk_end = 40,
|
||||
run_start = 0,
|
||||
run_end = 40,
|
||||
punch_start = 190,
|
||||
punch_end = 220,
|
||||
dattack_start = 160,
|
||||
dattack_end = 180,
|
||||
}
|
||||
})
|
58
mod_jail/nssm/echidna.lua
Normal file
58
mod_jail/nssm/echidna.lua
Normal file
@ -0,0 +1,58 @@
|
||||
nssm:spawn_specific("nssm:echidna", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, 0, 20, 120, 45000, 1, 22, 31000)
|
||||
nssm:register_mob("nssm:echidna", {
|
||||
type = "monster",
|
||||
hp_max = 90,
|
||||
hp_min = 90,
|
||||
collisionbox = {-0.6, 0.00, -0.6, 0.6, 2, 0.6},
|
||||
visual = "mesh",
|
||||
mesh = "echidna.x",
|
||||
textures = {{"echidnapes.png"}},
|
||||
visual_size = {x=6, y=6},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 30,
|
||||
rotate = 270,
|
||||
lifetimer = 500,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 3.5,
|
||||
damage = 10,
|
||||
jump = true,
|
||||
sounds = {
|
||||
random = "echidna",
|
||||
},
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 6,
|
||||
max = 7,},
|
||||
{name = "nssm:snake_scute",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
},
|
||||
armor = 60,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
floats = 1,
|
||||
lava_damage = 0,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogshoot",
|
||||
dogshoot_stop = true,
|
||||
arrow = "nssm:super_gas";
|
||||
reach = 5,
|
||||
shoot_interval=3,
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 25,
|
||||
stand_start = 60,
|
||||
stand_end = 140,
|
||||
walk_start = 1,
|
||||
walk_end = 40,
|
||||
run_start = 1,
|
||||
run_end = 40,
|
||||
punch_start = 160,
|
||||
punch_end = 190,
|
||||
dattack_start = 200,
|
||||
dattack_end = 240,
|
||||
}
|
||||
})
|
55
mod_jail/nssm/enderduck.lua
Normal file
55
mod_jail/nssm/enderduck.lua
Normal file
@ -0,0 +1,55 @@
|
||||
nssm:spawn_specific("nssm:enderduck", {"default:dirt_with_grass"}, {"group:flora"}, 0, 10, 45, 900, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:enderduck", {
|
||||
type = "monster",
|
||||
hp_max = 20,
|
||||
hp_min = 18,
|
||||
collisionbox = {-0.28, 0.00, -0.28, 0.28, 1.8, 0.28},
|
||||
visual = "mesh",
|
||||
mesh = "enderduck.x",
|
||||
textures = {{"enderduck.png"}},
|
||||
visual_size = {x=2, y=2},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 25,
|
||||
walk_velocity = 3,
|
||||
run_velocity = 3.9,
|
||||
rotate = 270,
|
||||
sounds = {
|
||||
random = "duck",
|
||||
},
|
||||
damage = 3,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2},
|
||||
{name = "nssm:duck_legs",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2},
|
||||
{name = "nssm:duck_beak",
|
||||
chance = 5,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 1,
|
||||
floats=1,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 30,
|
||||
stand_start = 1,
|
||||
stand_end = 40,
|
||||
walk_start = 100,
|
||||
walk_end = 130,
|
||||
run_start = 100,
|
||||
run_end = 130,
|
||||
punch_start = 60,
|
||||
punch_end = 90,
|
||||
}
|
||||
})
|
55
mod_jail/nssm/flying_duck.lua
Normal file
55
mod_jail/nssm/flying_duck.lua
Normal file
@ -0,0 +1,55 @@
|
||||
nssm:spawn_specific("nssm:flying_duck", {"air"}, {"group:flora"}, 10, 20, 60, 550, 1, 1, 31000)
|
||||
nssm:register_mob("nssm:flying_duck", {
|
||||
type = "monster",
|
||||
hp_max = 15,
|
||||
hp_min = 14,
|
||||
collisionbox = {-0.3, -0.2, -0.3, 0.3, 0.2, 0.3},
|
||||
visual = "mesh",
|
||||
mesh = "nathan_petrelli.x",
|
||||
textures = {{"nathan_petrelli.png"}},
|
||||
visual_size = {x=1, y=1},
|
||||
view_range = 30,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 2.5,
|
||||
fall_speed = 0,
|
||||
stepheight = 3,
|
||||
sounds = {
|
||||
random = "duck",
|
||||
},
|
||||
damage = 2,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
{name = "nssm:duck_legs",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
{name = "nssm:duck_beak",
|
||||
chance = 5,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
fly = true,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 25,
|
||||
stand_start = 0,
|
||||
stand_end = 80,
|
||||
walk_start = 160,
|
||||
walk_end = 200,
|
||||
run_start = 160,
|
||||
run_end = 220,
|
||||
punch_start = 110,
|
||||
punch_end = 140,
|
||||
}
|
||||
})
|
65
mod_jail/nssm/icelamander.lua
Normal file
65
mod_jail/nssm/icelamander.lua
Normal file
@ -0,0 +1,65 @@
|
||||
nssm:spawn_specific("nssm:icelamander", {"default:snowblock", "default:ice"}, {"default:snowblock", "default:ice"}, 0, 20, 120, 10000, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:icelamander", {
|
||||
type = "monster",
|
||||
hp_max = 90,
|
||||
hp_min = 90,
|
||||
collisionbox = {-0.5, 0, -0.5, 0.5, 2.3, 0.5},
|
||||
visual = "mesh",
|
||||
mesh = "icelamander.x",
|
||||
textures = {{"icelamander.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 35,
|
||||
big_froster = true,
|
||||
lifetimer = 500,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 4,
|
||||
sounds = {
|
||||
random = "icelamander",
|
||||
},
|
||||
damage = 8,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 6,
|
||||
max = 8},
|
||||
{name = "nssm:frosted_amphibian_heart",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1},
|
||||
{name = "nssm:ice_tooth",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1},
|
||||
{name = "nssm:little_ice_tooth",
|
||||
chance = 1,
|
||||
min = 0,
|
||||
max = 20},
|
||||
},
|
||||
armor = 60,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 30,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
dogshoot_stop = true,
|
||||
attack_type = "dogshoot",
|
||||
arrow = "nssm:snow_arrow",
|
||||
reach = 3,
|
||||
shoot_interval = 2,
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 40,
|
||||
walk_start = 80,
|
||||
walk_end = 160,
|
||||
run_start = 40,
|
||||
run_end = 80,
|
||||
punch_start = 160,
|
||||
punch_end = 190,
|
||||
dattack_start = 190,
|
||||
dattack_end = 210,
|
||||
}
|
||||
})
|
55
mod_jail/nssm/icesnake.lua
Normal file
55
mod_jail/nssm/icesnake.lua
Normal file
@ -0,0 +1,55 @@
|
||||
nssm:spawn_specific("nssm:icesnake", {"default:snowblock", "default:ice", "default:dirt_with_snow"}, {"default:snowblock", "default:ice", "default:dirt_with_snow"}, 0, 20, 30, 5000, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:icesnake", {
|
||||
type = "monster",
|
||||
hp_max = 17,
|
||||
hp_min = 13,
|
||||
collisionbox = {-0.7, 0, -0.7, 0.7, 0.50, 0.7},
|
||||
visual = "mesh",
|
||||
mesh = "icesnake.x",
|
||||
textures = {{"icesnake.png"}},
|
||||
visual_size = {x=7, y=7},
|
||||
makes_footstep_sound = false,
|
||||
view_range = 10,
|
||||
rotate = 270,
|
||||
froster = true,
|
||||
walk_velocity = 1.2,
|
||||
run_velocity = 3,
|
||||
sounds = {
|
||||
random = "icesnake",
|
||||
},
|
||||
damage = 3,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2},
|
||||
{name = "nssm:frosted_amphibian_heart",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1},
|
||||
{name = "nssm:little_ice_tooth",
|
||||
chance = 2,
|
||||
min = 0,
|
||||
max = 4},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 20,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 25,
|
||||
stand_start = 170,
|
||||
stand_end = 220,
|
||||
walk_start = 1,
|
||||
walk_end = 60,
|
||||
run_start = 80,
|
||||
run_end = 120,
|
||||
punch_start = 130,
|
||||
punch_end = 160,
|
||||
}
|
||||
})
|
56
mod_jail/nssm/init.lua
Normal file
56
mod_jail/nssm/init.lua
Normal file
@ -0,0 +1,56 @@
|
||||
local path = minetest.get_modpath("nssm")
|
||||
dofile(path.."/api.lua")
|
||||
|
||||
--Mobs
|
||||
dofile(path.."/ant_queen.lua")
|
||||
dofile(path.."/ant_soldier.lua")
|
||||
dofile(path.."/ant_worker.lua")
|
||||
dofile(path.."/black_widow.lua")
|
||||
dofile(path.."/bloco.lua")
|
||||
dofile(path.."/crab.lua")
|
||||
dofile(path.."/crocodile.lua")
|
||||
dofile(path.."/daddy_long_legs.lua")
|
||||
dofile(path.."/dahaka.lua")
|
||||
dofile(path.."/dolidrosaurus.lua")
|
||||
dofile(path.."/duck.lua")
|
||||
dofile(path.."/duckking.lua")
|
||||
dofile(path.."/echidna.lua")
|
||||
dofile(path.."/enderduck.lua")
|
||||
dofile(path.."/flying_duck.lua")
|
||||
dofile(path.."/icelamander.lua")
|
||||
dofile(path.."/icesnake.lua")
|
||||
dofile(path.."/kraken.lua")
|
||||
dofile(path.."/larva.lua")
|
||||
dofile(path.."/lava_titan.lua")
|
||||
dofile(path.."/manticore.lua")
|
||||
dofile(path.."/mantis_beast.lua")
|
||||
dofile(path.."/mantis.lua")
|
||||
dofile(path.."/masticone.lua")
|
||||
dofile(path.."/moonheron.lua")
|
||||
dofile(path.."/night_master.lua")
|
||||
dofile(path.."/octopus.lua")
|
||||
dofile(path.."/phoenix.lua")
|
||||
dofile(path.."/pumpboom.lua")
|
||||
dofile(path.."/pumpking.lua")
|
||||
dofile(path.."/sandworm.lua")
|
||||
dofile(path.."/scrausics.lua")
|
||||
dofile(path.."/signosigno.lua")
|
||||
dofile(path.."/snow_biter.lua")
|
||||
dofile(path.."/spiderduck.lua")
|
||||
dofile(path.."/stone_eater.lua")
|
||||
dofile(path.."/swimming_duck.lua")
|
||||
dofile(path.."/tarantula.lua")
|
||||
dofile(path.."/uloboros.lua")
|
||||
dofile(path.."/werewolf.lua")
|
||||
dofile(path.."/white_werewolf.lua")
|
||||
|
||||
--Final Boss
|
||||
dofile(path.."/mese_dragon.lua")
|
||||
|
||||
--Others
|
||||
dofile(path.."/rainbow_staff.lua")
|
||||
dofile(path.."/darts.lua")
|
||||
dofile(path.."/nssm_materials.lua")
|
||||
dofile(path.."/kienzan.lua")
|
||||
dofile(path.."/kamehameha.lua")
|
||||
dofile(path.."/nssm_spears.lua")
|
120
mod_jail/nssm/kamehameha.lua
Normal file
120
mod_jail/nssm/kamehameha.lua
Normal file
@ -0,0 +1,120 @@
|
||||
--Kamehameha!
|
||||
minetest.register_entity("nssm:kamehameha", {
|
||||
textures = {"kamehameha.png"},
|
||||
velocity = 15,
|
||||
on_step = function (self, pos, node, dtime)
|
||||
local pos = self.object:getpos()
|
||||
local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
|
||||
for k, obj in pairs(objs) do
|
||||
if obj:is_player() then
|
||||
return
|
||||
else
|
||||
obj:set_hp(obj:get_hp()-20)
|
||||
if obj:get_entity_name() ~= "nssm:kamehameha" then
|
||||
if obj:get_hp()<=0 then
|
||||
obj:remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for dx=-1,1 do
|
||||
for dy=-1,1 do
|
||||
for dz=-1,1 do
|
||||
local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
|
||||
local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
||||
local n = minetest.env:get_node(p).name
|
||||
if n ~= "kamehameha:kame_entity" and n ~="default:stone" and n ~="default:desert_stone" then
|
||||
if minetest.registered_nodes[n].groups.flammable --[[or math.random(1, 100) <= 1]] then
|
||||
minetest.env:set_node(t, {name="fire:basic_flame"})
|
||||
else
|
||||
minetest.env:set_node(t, {name="air"})
|
||||
end
|
||||
elseif n == "default:stone" or n =="default:desert_stone" then
|
||||
self.hit_node(self, pos, node)
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
||||
|
||||
hit_node = function(self, pos, node)
|
||||
for dx=-4,4 do
|
||||
for dy=-4,4 do
|
||||
for dz=-4,4 do
|
||||
local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
||||
local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz}
|
||||
local n = minetest.env:get_node(pos).name
|
||||
if math.random(1, 50) <= 35 then
|
||||
minetest.env:remove_node(p)
|
||||
end
|
||||
if minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <=5 then
|
||||
minetest.env:set_node(t, {name="fire:basic_flame"})
|
||||
end
|
||||
local objects = minetest.env:get_objects_inside_radius(pos, 4)
|
||||
for _,obj in ipairs(objects) do
|
||||
if obj:is_player() or (obj:get_luaentity() and obj:get_luaentity().name ~= "__builtin:item") then
|
||||
local obj_p = obj:getpos()
|
||||
local vec = {x=obj_p.x-pos.x, y=obj_p.y-pos.y, z=obj_p.z-pos.z}
|
||||
local dist = (vec.x^2+vec.y^2+vec.z^2)^0.5
|
||||
local damage = (80*0.5^dist)*2
|
||||
obj:punch(obj, 1.0, {
|
||||
full_punch_interval=1.0,
|
||||
damage_groups={fleshy=damage},
|
||||
}, vec)
|
||||
end
|
||||
end
|
||||
minetest.sound_play("boom", {
|
||||
max_hear_distance = 100,
|
||||
})
|
||||
|
||||
--[[
|
||||
--This is the particle spawner, but it will slow your pc. If you have a powerful pc you can uncomment this section
|
||||
minetest.add_particlespawner(
|
||||
1, --amount
|
||||
0.1, --time
|
||||
{x=pos.x-3, y=pos.y-3, z=pos.z-3}, --minpos
|
||||
{x=pos.x+3, y=pos.y+3, z=pos.z+3}, --maxpos
|
||||
{x=-0, y=-0, z=-0}, --minvel
|
||||
{x=0, y=0, z=0}, --maxvel
|
||||
{x=-0.5,y=5,z=-0.5}, --minacc
|
||||
{x=0.5,y=5,z=0.5}, --maxacc
|
||||
0.1, --minexptime
|
||||
1, --maxexptime
|
||||
8, --minsize
|
||||
15, --maxsize
|
||||
false, --collisiondetection
|
||||
"tnt_smoke.png" --texture
|
||||
)
|
||||
]]--
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_tool("nssm:kamehameha_hand", {
|
||||
description = "Kamehameha",
|
||||
inventory_image = "kamehameha_hand.png",
|
||||
on_use = function(itemstack, placer, pointed_thing)
|
||||
local dir = placer:get_look_dir();
|
||||
local playerpos = placer:getpos();
|
||||
local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:kamehameha")
|
||||
local vec = {x=dir.x*6,y=dir.y*6,z=dir.z*6}
|
||||
obj:setvelocity(vec)
|
||||
return itemstack
|
||||
end,
|
||||
light_source = 12,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'nssm:kamehameha_hand',
|
||||
recipe = {
|
||||
{'nssm:great_energy_globe', 'nssm:great_energy_globe', 'nssm:great_energy_globe'},
|
||||
{'nssm:great_energy_globe', '', 'nssm:great_energy_globe'},
|
||||
{'nssm:great_energy_globe', 'nssm:great_energy_globe', 'nssm:great_energy_globe'},
|
||||
}
|
||||
})
|
72
mod_jail/nssm/kienzan.lua
Normal file
72
mod_jail/nssm/kienzan.lua
Normal file
@ -0,0 +1,72 @@
|
||||
disk_VELOCITY=20
|
||||
disk_shoot_disk=function (item, player, pointed_thing)
|
||||
if player:get_inventory():contains_item("main", "nssm:kienzan_hand") then
|
||||
local playerpos=player:getpos()
|
||||
local obj=minetest.env:add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, "nssm:kienzan_entity")
|
||||
local dir=player:get_look_dir()
|
||||
obj:setvelocity({x=dir.x*disk_VELOCITY, y=dir.y*disk_VELOCITY, z=dir.z*disk_VELOCITY})
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
minetest.register_tool("nssm:kienzan_hand", {
|
||||
description = "Kienzan",
|
||||
inventory_image = "kienzan_hand.png",
|
||||
stack_max = 1,
|
||||
-- not_in_creative_inventory=0,
|
||||
on_use = disk_shoot_disk,
|
||||
})
|
||||
|
||||
kienzan_ENTITY={
|
||||
physical = false,
|
||||
textures = {"kienzan.png"},
|
||||
lastpos={},
|
||||
collisionbox = {0,0,0,0,0,0},
|
||||
}
|
||||
|
||||
kienzan_ENTITY.on_step =function (self, pos, node, dtime)
|
||||
local timer = 0
|
||||
minetest.register_globalstep(function(dtime)
|
||||
timer = timer + dtime;
|
||||
if timer > 10 then
|
||||
self.object:remove()
|
||||
end
|
||||
end)
|
||||
local pos = self.object:getpos()
|
||||
local objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)
|
||||
for k, obj in pairs(objs) do
|
||||
if obj:is_player() then
|
||||
return
|
||||
else
|
||||
obj:set_hp(obj:get_hp()-20)
|
||||
if obj:get_entity_name() ~= "nssm:kienzan_entity" then
|
||||
if obj:get_hp()<=0 then
|
||||
obj:remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
for dx=-1,1 do
|
||||
-- for dy=-1,1 do
|
||||
for dz=-1,1 do
|
||||
local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
|
||||
local t = {x=pos.x+dx, y=pos.y, z=pos.z+dz}
|
||||
local n = minetest.env:get_node(p).name
|
||||
if n ~= "nssm:kienzan_entity" then
|
||||
minetest.env:set_node(t, {name="air"})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
minetest.register_entity("nssm:kienzan_entity", kienzan_ENTITY)
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'nssm:kienzan_hand',
|
||||
recipe = {
|
||||
{'', '', ''},
|
||||
{'nssm:great_energy_globe', 'nssm:great_energy_globe', 'nssm:great_energy_globe'},
|
||||
{'', '', ''},
|
||||
}
|
||||
})
|
61
mod_jail/nssm/kraken.lua
Normal file
61
mod_jail/nssm/kraken.lua
Normal file
@ -0,0 +1,61 @@
|
||||
nssm:spawn_specific("nssm:kraken", {"default:water_source"}, {"default:water_source"}, 0, 20, 120, 90000, 1, -31000, 0)
|
||||
nssm:register_mob("nssm:kraken", {
|
||||
type = "monster",
|
||||
hp_max = 150,
|
||||
hp_min = 150,
|
||||
collisionbox = {-2, 0, -2, 2, 4, 2},
|
||||
visual = "mesh",
|
||||
mesh = "kraken.x",
|
||||
textures = {{"kraken.png"}, {"kraken2.png"}},
|
||||
visual_size = {x=15, y=15},
|
||||
lifetimer=500,
|
||||
inker = false,
|
||||
view_range = 50,
|
||||
fly = true,
|
||||
fly_in = "default:water_source",
|
||||
fall_speed = -1,
|
||||
walk_velocity = 3.5,
|
||||
run_velocity = 4.5,
|
||||
damage = 8,
|
||||
rotate = 270,
|
||||
jump = false,
|
||||
jump_chance = 0,
|
||||
jump_height = 0,
|
||||
sounds = {
|
||||
random = "kraken",
|
||||
},
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 6,
|
||||
max = 7,},
|
||||
{name = "nssm:tentacle",
|
||||
chance = 1,
|
||||
min = 30,
|
||||
max = 40,},
|
||||
{name = "nssm:tentacle_curly",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
},
|
||||
armor = 70,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 10,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
reach=8,
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 30,
|
||||
stand_start = 1,
|
||||
stand_end = 40,
|
||||
walk_start = 60,
|
||||
walk_end = 100,
|
||||
run_start = 60,
|
||||
run_end = 100,
|
||||
punch_start = 120,
|
||||
punch_end = 150,
|
||||
}
|
||||
})
|
48
mod_jail/nssm/larva.lua
Normal file
48
mod_jail/nssm/larva.lua
Normal file
@ -0,0 +1,48 @@
|
||||
nssm:spawn_specific("nssm:larva", {"default:dirt_with_grass"}, {"default:tree"}, 0, 20, 40, 200, 1, -31000, 22)
|
||||
nssm:register_mob("nssm:larva", {
|
||||
type = "monster",
|
||||
hp_max = 10,
|
||||
hp_min = 8,
|
||||
collisionbox = {-0.3, 0, -0.3, 0.3, 0.41, 0.3},
|
||||
visual = "mesh",
|
||||
mesh = "larva.x",
|
||||
textures = {{"larva.png"}},
|
||||
visual_size = {x=3, y=3},
|
||||
makes_footstep_sound = false,
|
||||
view_range = 10,
|
||||
rotate = 90,
|
||||
jump = false,
|
||||
jump_height =0,
|
||||
walk_velocity = 0.4,
|
||||
run_velocity = 0.4,
|
||||
sounds = {
|
||||
random = "sand",
|
||||
},
|
||||
damage = 1,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 3,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
},
|
||||
metamorphosis = true,
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 1,
|
||||
lava_damage = 1,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 20,
|
||||
stand_start = 0,
|
||||
stand_end = 80,
|
||||
walk_start = 100,
|
||||
walk_end = 160,
|
||||
run_start = 100,
|
||||
run_end = 160,
|
||||
punch_start = 180,
|
||||
punch_end = 230,
|
||||
}
|
||||
})
|
67
mod_jail/nssm/lava_titan.lua
Normal file
67
mod_jail/nssm/lava_titan.lua
Normal file
@ -0,0 +1,67 @@
|
||||
nssm:spawn_specific("nssm:lava_titan", {"default:stone"}, {"air"}, 0, 120, 12, 2000, 1, -31000, -50)
|
||||
nssm:register_mob("nssm:lava_titan", {
|
||||
type = "monster",
|
||||
hp_max = 80,
|
||||
hp_min = 80,
|
||||
collisionbox = {-0.6, -0.05, -0.6, 0.6, 4.0, 0.6},
|
||||
visual = "mesh",
|
||||
mesh = "lava_titan.x",
|
||||
textures = {{"lava_titan.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 20,
|
||||
lifetimer = 500,
|
||||
walk_velocity = 1,
|
||||
run_velocity = 2,
|
||||
floats = 1,
|
||||
sounds = {
|
||||
random = "lava_titan",
|
||||
},
|
||||
damage = 7,
|
||||
jump = false,
|
||||
jump_height=0,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 7,
|
||||
max = 9,},
|
||||
{name = "nssm:lava_titan_eye",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
{name = "bucket:bucket_lava",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 3,},
|
||||
},
|
||||
armor = 40,
|
||||
drawtype = "front",
|
||||
water_damage = 4,
|
||||
rotate = 270,
|
||||
digger = true,
|
||||
--melter = true,
|
||||
light_damage = 0,
|
||||
lava_damage = 0,
|
||||
on_rightclick = nil,
|
||||
floats = 1,
|
||||
attack_type = "dogshoot",
|
||||
dogshoot_stop = true,
|
||||
arrow = "nssm:lava_arrow",
|
||||
reach = 3,
|
||||
shoot_interval = 2,
|
||||
shoot_offset = -1,
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 25,
|
||||
stand_start = 120,
|
||||
stand_end = 300,
|
||||
walk_start = 10,
|
||||
walk_end = 110,
|
||||
run_start = 120,
|
||||
run_end = 300,
|
||||
punch_start = 301,
|
||||
punch_end = 340,
|
||||
dattack_start =340,
|
||||
dattack_end=400,
|
||||
}
|
||||
})
|
57
mod_jail/nssm/manticore.lua
Normal file
57
mod_jail/nssm/manticore.lua
Normal file
@ -0,0 +1,57 @@
|
||||
nssm:spawn_specific("nssm:manticore", {"default:dirt_with_grass"}, {"default:dirt_with_grass"}, 10, 20, 30, 15000, 1, 20, 31000)
|
||||
nssm:register_mob("nssm:manticore", {
|
||||
type = "monster",
|
||||
hp_max = 25,
|
||||
hp_min = 24,
|
||||
collisionbox = {-0.8, -0.85, -0.8, 0.8, 1.9, 0.8},
|
||||
visual = "mesh",
|
||||
mesh = "manticore.x",
|
||||
textures = {{"manticore.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 25,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 4,
|
||||
sounds = {
|
||||
random = "manticore",
|
||||
},
|
||||
damage = 4,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 3,
|
||||
max = 4,},
|
||||
{name = "nssm:manticore_spine",
|
||||
chance = 3,
|
||||
min = 2,
|
||||
max = 5,},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 2,
|
||||
rotate = 270,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogshoot",
|
||||
dogshoot_stop = true,
|
||||
arrow = "nssm:spine",
|
||||
reach = 3,
|
||||
shoot_interval = 2,
|
||||
shoot_offset = 1,
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 40,
|
||||
walk_start = 240,
|
||||
walk_end = 280,
|
||||
run_start = 91,
|
||||
run_end = 108,
|
||||
punch_start = 110,
|
||||
punch_end = 143,
|
||||
dattack_start =180,
|
||||
dattack_end=230,
|
||||
}
|
||||
})
|
51
mod_jail/nssm/mantis.lua
Normal file
51
mod_jail/nssm/mantis.lua
Normal file
@ -0,0 +1,51 @@
|
||||
nssm:register_mob("nssm:mantis", {
|
||||
type = "monster",
|
||||
hp_max = 15,
|
||||
hp_min = 14,
|
||||
collisionbox = {-0.5, 0.00, -0.5, 0.5, 2.30, 0.5},
|
||||
visual = "mesh",
|
||||
mesh = "mantis.x",
|
||||
textures = {{"mantis.png"}, {"mantis2.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 20,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 2.5,
|
||||
sounds = {
|
||||
random = "manti",
|
||||
},
|
||||
damage = 2,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:mantis_claw",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 4,},
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 2,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
mele_number =2,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 20,
|
||||
walk_start = 20,
|
||||
walk_end = 60,
|
||||
run_start = 60,
|
||||
run_end = 80,
|
||||
punch_start = 120,
|
||||
punch_end = 140,
|
||||
punch1_start = 145,
|
||||
punch1_end = 165,
|
||||
}
|
||||
})
|
48
mod_jail/nssm/mantis_beast.lua
Normal file
48
mod_jail/nssm/mantis_beast.lua
Normal file
@ -0,0 +1,48 @@
|
||||
nssm:register_mob("nssm:mantis_beast", {
|
||||
type = "monster",
|
||||
hp_max = 20,
|
||||
hp_min = 17,
|
||||
collisionbox = {-0.65, 0.00, -0.65, 0.65, 1.50, 0.65},
|
||||
visual = "mesh",
|
||||
mesh = "mantis_beast.x",
|
||||
textures = {{"mantis_beast.png"}, {"mantis_beast2.png"}},
|
||||
visual_size = {x=6, y=6},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 25,
|
||||
walk_velocity = 2.5,
|
||||
run_velocity = 3.5,
|
||||
sounds = {
|
||||
random = "manti",
|
||||
},
|
||||
damage = 3,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:mantis_claw",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 6,},
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 2,
|
||||
max = 3,},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 2,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 20,
|
||||
stand_start = 0,
|
||||
stand_end = 60,
|
||||
walk_start = 70,
|
||||
walk_end = 110,
|
||||
run_start = 70,
|
||||
run_end = 110,
|
||||
punch_start = 140,
|
||||
punch_end = 165,
|
||||
}
|
||||
})
|
81
mod_jail/nssm/masticone.lua
Normal file
81
mod_jail/nssm/masticone.lua
Normal file
@ -0,0 +1,81 @@
|
||||
nssm:spawn_specific("nssm:masticone", {"default:dirt_with_grass"}, {"default:tree"}, 0, 20, 120, 4000, 2, -31000, 22)
|
||||
nssm:register_mob("nssm:masticone", {
|
||||
type = "monster",
|
||||
hp_max = 15,
|
||||
hp_min = 14,
|
||||
collisionbox = {-0.45, 0.00, -0.45, 0.45, 0.40, 0.45},
|
||||
visual = "mesh",
|
||||
mesh = "masticone.x",
|
||||
textures = {{"masticone.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 15,
|
||||
lifetimer = 500,
|
||||
rotate = 270,
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 2.5,
|
||||
sounds = {
|
||||
random = "masticone",
|
||||
},
|
||||
damage = 5,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 7,
|
||||
max = 8,},
|
||||
{name = "nssm:masticone_fang",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
{name = "nssm:masticone_skull_fragments",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
},
|
||||
armor = 60,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
hydra = true,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
reach =1.5,
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 30,
|
||||
stand_start = 80,
|
||||
stand_end = 140,
|
||||
walk_start = 20,
|
||||
walk_end = 40,
|
||||
run_start = 20,
|
||||
run_end = 40,
|
||||
punch_start = 50,
|
||||
punch_end = 75,
|
||||
},
|
||||
on_die = function(self, pos)
|
||||
core.after(2, function()
|
||||
minetest.add_particlespawner(
|
||||
200, --amount
|
||||
0.1, --time
|
||||
{x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos
|
||||
{x=pos.x+1, y=pos.y+1, z=pos.z+1}, --maxpos
|
||||
{x=-0, y=-0, z=-0}, --minvel
|
||||
{x=1, y=1, z=1}, --maxvel
|
||||
{x=-0.5,y=5,z=-0.5}, --minacc
|
||||
{x=0.5,y=5,z=0.5}, --maxacc
|
||||
0.1, --minexptime
|
||||
1, --maxexptime
|
||||
3, --minsize
|
||||
4, --maxsize
|
||||
false, --collisiondetection
|
||||
"tnt_smoke.png" --texture
|
||||
)
|
||||
local pos1 = {x=pos.x+math.random(-1,1), y=pos.y+0.5, z=pos.z+math.random(-1,1)}
|
||||
local pos2 = {x=pos.x+math.random(-1,1), y=pos.y+0.5, z=pos.z+math.random(-1,1)}
|
||||
minetest.add_entity(pos1, "nssm:masticone")
|
||||
minetest.add_entity(pos2, "nssm:masticone")
|
||||
end)
|
||||
end,
|
||||
})
|
63
mod_jail/nssm/mese_dragon.lua
Normal file
63
mod_jail/nssm/mese_dragon.lua
Normal file
@ -0,0 +1,63 @@
|
||||
nssm:register_mob("nssm:mese_dragon", {
|
||||
type = "monster",
|
||||
hp_max = 333,
|
||||
hp_min = 333,
|
||||
collisionbox = {-1, 0, -1, 1, 5, 1},
|
||||
visual = "mesh",
|
||||
mesh = "mese_dragon.x",
|
||||
textures = {{"mese_dragon.png"}},
|
||||
visual_size = {x=12, y=12},
|
||||
makes_footstep_sound = true,
|
||||
maxus = true,
|
||||
view_range = 45,
|
||||
rotate = 270,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 4,
|
||||
sounds = {
|
||||
shoot_attack = "mesed",
|
||||
attack = "mese_dragon",
|
||||
distance = 60,
|
||||
},
|
||||
damage = 16,
|
||||
jump = true,
|
||||
jump_height = 10,
|
||||
putter = true,
|
||||
drops = {
|
||||
{name = "nssm:rainbow_staff",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1},
|
||||
{name = "nssm:energy_globe",
|
||||
chance = 1,
|
||||
min = 99,
|
||||
max = 99},
|
||||
},
|
||||
armor = 60,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 0,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogshoot",
|
||||
dogshoot_stop = true,
|
||||
arrow = "nssm:roar_of_the_dragon",
|
||||
reach = 5,
|
||||
shoot_interval = 3,
|
||||
shoot_offset = -1,
|
||||
animation = {
|
||||
speed_normal = 15,
|
||||
speed_run = 25,
|
||||
stand_start = 60,
|
||||
stand_end = 120,
|
||||
walk_start = 161,
|
||||
walk_end = 205,
|
||||
run_start = 206,
|
||||
run_end = 242,
|
||||
punch_start = 242,
|
||||
punch_end = 275,
|
||||
punch1_start = 330,
|
||||
punch1_end = 370,
|
||||
dattack_start = 120,
|
||||
dattack_end = 160,
|
||||
}
|
||||
})
|
42969
mod_jail/nssm/models/ant_queen.x
Normal file
42969
mod_jail/nssm/models/ant_queen.x
Normal file
File diff suppressed because it is too large
Load Diff
38561
mod_jail/nssm/models/ant_soldier.x
Normal file
38561
mod_jail/nssm/models/ant_soldier.x
Normal file
File diff suppressed because it is too large
Load Diff
36771
mod_jail/nssm/models/ant_worker.x
Normal file
36771
mod_jail/nssm/models/ant_worker.x
Normal file
File diff suppressed because it is too large
Load Diff
37672
mod_jail/nssm/models/black_widow.x
Normal file
37672
mod_jail/nssm/models/black_widow.x
Normal file
File diff suppressed because it is too large
Load Diff
20168
mod_jail/nssm/models/bloco.x
Normal file
20168
mod_jail/nssm/models/bloco.x
Normal file
File diff suppressed because it is too large
Load Diff
47024
mod_jail/nssm/models/crab.x
Normal file
47024
mod_jail/nssm/models/crab.x
Normal file
File diff suppressed because it is too large
Load Diff
23586
mod_jail/nssm/models/crocodile.x
Normal file
23586
mod_jail/nssm/models/crocodile.x
Normal file
File diff suppressed because it is too large
Load Diff
36818
mod_jail/nssm/models/daddy_long_legs.x
Normal file
36818
mod_jail/nssm/models/daddy_long_legs.x
Normal file
File diff suppressed because it is too large
Load Diff
46487
mod_jail/nssm/models/dahaka.x
Normal file
46487
mod_jail/nssm/models/dahaka.x
Normal file
File diff suppressed because it is too large
Load Diff
20438
mod_jail/nssm/models/dolidrosaurus.x
Normal file
20438
mod_jail/nssm/models/dolidrosaurus.x
Normal file
File diff suppressed because it is too large
Load Diff
4693
mod_jail/nssm/models/duck.x
Normal file
4693
mod_jail/nssm/models/duck.x
Normal file
File diff suppressed because it is too large
Load Diff
47811
mod_jail/nssm/models/echidna.x
Normal file
47811
mod_jail/nssm/models/echidna.x
Normal file
File diff suppressed because it is too large
Load Diff
28930
mod_jail/nssm/models/enderduck.x
Normal file
28930
mod_jail/nssm/models/enderduck.x
Normal file
File diff suppressed because it is too large
Load Diff
61734
mod_jail/nssm/models/icelamander.x
Normal file
61734
mod_jail/nssm/models/icelamander.x
Normal file
File diff suppressed because it is too large
Load Diff
15449
mod_jail/nssm/models/icesnake.x
Normal file
15449
mod_jail/nssm/models/icesnake.x
Normal file
File diff suppressed because it is too large
Load Diff
31278
mod_jail/nssm/models/king_duck.x
Normal file
31278
mod_jail/nssm/models/king_duck.x
Normal file
File diff suppressed because it is too large
Load Diff
35203
mod_jail/nssm/models/kraken.x
Normal file
35203
mod_jail/nssm/models/kraken.x
Normal file
File diff suppressed because it is too large
Load Diff
16468
mod_jail/nssm/models/larva.x
Normal file
16468
mod_jail/nssm/models/larva.x
Normal file
File diff suppressed because it is too large
Load Diff
53459
mod_jail/nssm/models/lava_titan.x
Normal file
53459
mod_jail/nssm/models/lava_titan.x
Normal file
File diff suppressed because it is too large
Load Diff
49697
mod_jail/nssm/models/manticore.x
Normal file
49697
mod_jail/nssm/models/manticore.x
Normal file
File diff suppressed because it is too large
Load Diff
25478
mod_jail/nssm/models/mantis.x
Normal file
25478
mod_jail/nssm/models/mantis.x
Normal file
File diff suppressed because it is too large
Load Diff
22523
mod_jail/nssm/models/mantis_beast.x
Normal file
22523
mod_jail/nssm/models/mantis_beast.x
Normal file
File diff suppressed because it is too large
Load Diff
25433
mod_jail/nssm/models/masticone.x
Normal file
25433
mod_jail/nssm/models/masticone.x
Normal file
File diff suppressed because it is too large
Load Diff
84070
mod_jail/nssm/models/mese_dragon.x
Normal file
84070
mod_jail/nssm/models/mese_dragon.x
Normal file
File diff suppressed because it is too large
Load Diff
44778
mod_jail/nssm/models/moonheron.x
Normal file
44778
mod_jail/nssm/models/moonheron.x
Normal file
File diff suppressed because it is too large
Load Diff
61288
mod_jail/nssm/models/moonherontrio.x
Normal file
61288
mod_jail/nssm/models/moonherontrio.x
Normal file
File diff suppressed because it is too large
Load Diff
41587
mod_jail/nssm/models/nathan_petrelli.x
Normal file
41587
mod_jail/nssm/models/nathan_petrelli.x
Normal file
File diff suppressed because it is too large
Load Diff
46808
mod_jail/nssm/models/night_master_1.x
Normal file
46808
mod_jail/nssm/models/night_master_1.x
Normal file
File diff suppressed because it is too large
Load Diff
53048
mod_jail/nssm/models/night_master_2.x
Normal file
53048
mod_jail/nssm/models/night_master_2.x
Normal file
File diff suppressed because it is too large
Load Diff
35202
mod_jail/nssm/models/octopus.x
Normal file
35202
mod_jail/nssm/models/octopus.x
Normal file
File diff suppressed because it is too large
Load Diff
84888
mod_jail/nssm/models/phoenix.x
Normal file
84888
mod_jail/nssm/models/phoenix.x
Normal file
File diff suppressed because it is too large
Load Diff
14743
mod_jail/nssm/models/pumpboom.x
Normal file
14743
mod_jail/nssm/models/pumpboom.x
Normal file
File diff suppressed because it is too large
Load Diff
65402
mod_jail/nssm/models/pumpking.x
Normal file
65402
mod_jail/nssm/models/pumpking.x
Normal file
File diff suppressed because it is too large
Load Diff
30634
mod_jail/nssm/models/sandworm.x
Normal file
30634
mod_jail/nssm/models/sandworm.x
Normal file
File diff suppressed because it is too large
Load Diff
65798
mod_jail/nssm/models/scrausics.x
Normal file
65798
mod_jail/nssm/models/scrausics.x
Normal file
File diff suppressed because it is too large
Load Diff
25119
mod_jail/nssm/models/signosigno.x
Normal file
25119
mod_jail/nssm/models/signosigno.x
Normal file
File diff suppressed because it is too large
Load Diff
38662
mod_jail/nssm/models/snow_biter.x
Normal file
38662
mod_jail/nssm/models/snow_biter.x
Normal file
File diff suppressed because it is too large
Load Diff
36559
mod_jail/nssm/models/spiderduck.x
Normal file
36559
mod_jail/nssm/models/spiderduck.x
Normal file
File diff suppressed because it is too large
Load Diff
29749
mod_jail/nssm/models/stone_eater.back.x
Normal file
29749
mod_jail/nssm/models/stone_eater.back.x
Normal file
File diff suppressed because it is too large
Load Diff
29749
mod_jail/nssm/models/stone_eater.x
Normal file
29749
mod_jail/nssm/models/stone_eater.x
Normal file
File diff suppressed because it is too large
Load Diff
17563
mod_jail/nssm/models/swimming_duck.x
Normal file
17563
mod_jail/nssm/models/swimming_duck.x
Normal file
File diff suppressed because it is too large
Load Diff
37588
mod_jail/nssm/models/tarantula.x
Normal file
37588
mod_jail/nssm/models/tarantula.x
Normal file
File diff suppressed because it is too large
Load Diff
37588
mod_jail/nssm/models/tarantula_propower.x
Normal file
37588
mod_jail/nssm/models/tarantula_propower.x
Normal file
File diff suppressed because it is too large
Load Diff
37696
mod_jail/nssm/models/uloboros.x
Normal file
37696
mod_jail/nssm/models/uloboros.x
Normal file
File diff suppressed because it is too large
Load Diff
23397
mod_jail/nssm/models/werewolf.x
Normal file
23397
mod_jail/nssm/models/werewolf.x
Normal file
File diff suppressed because it is too large
Load Diff
23397
mod_jail/nssm/models/white_werewolf.x
Normal file
23397
mod_jail/nssm/models/white_werewolf.x
Normal file
File diff suppressed because it is too large
Load Diff
54
mod_jail/nssm/moonheron.lua
Normal file
54
mod_jail/nssm/moonheron.lua
Normal file
@ -0,0 +1,54 @@
|
||||
nssm:spawn_specific("nssm:moonheron", {"air"}, {"air"}, 0, 10, 100, 750000, 1, 10, 40)
|
||||
nssm:register_mob("nssm:moonheron", {
|
||||
type = "monster",
|
||||
hp_max = 23,
|
||||
hp_min = 22,
|
||||
collisionbox = {-0.45, -0.3, -0.45, 0.45, 0.3, 0.45},
|
||||
visual = "mesh",
|
||||
mesh = "moonheron.x",
|
||||
textures = {{"moonheron.png"}},
|
||||
visual_size = {x=10, y=10},
|
||||
view_range = 35,
|
||||
rotate = 270,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 3,
|
||||
fall_speed = 0,
|
||||
stepheight = 3,
|
||||
sounds = {
|
||||
random = "moonheron",
|
||||
distance =40,
|
||||
},
|
||||
damage = 3,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 2,
|
||||
max = 3,},
|
||||
{name = "nssm:heron_leg",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
},
|
||||
armor = 100,
|
||||
floats = 1,
|
||||
drawtype = "front",
|
||||
water_damage = 5,
|
||||
lava_damage = 5,
|
||||
light_damage = 5,
|
||||
on_rightclick = nil,
|
||||
fly = true,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 35,
|
||||
stand_start = 140,
|
||||
stand_end = 200,
|
||||
walk_start = 20,
|
||||
walk_end = 60,
|
||||
run_start = 20,
|
||||
run_end = 60,
|
||||
punch_start = 80,
|
||||
punch_end = 120,
|
||||
}
|
||||
})
|
190
mod_jail/nssm/night_master.lua
Normal file
190
mod_jail/nssm/night_master.lua
Normal file
@ -0,0 +1,190 @@
|
||||
nssm:spawn_specific("nssm:night_master", {"air"}, {"air"}, 0, 7, 120, 5200000, 2, 10, 40)
|
||||
nssm:register_mob("nssm:night_master", {
|
||||
type = "monster",
|
||||
hp_max = 30,
|
||||
hp_min = 30,
|
||||
collisionbox = {-0.65, -0.4, -0.65, 0.65, 0.4, 0.65},
|
||||
visual = "mesh",
|
||||
mesh = "moonherontrio.x",
|
||||
textures = {{"moonherontrio.png"}},
|
||||
visual_size = {x=18, y=18},
|
||||
view_range = 40,
|
||||
rotate = 270,
|
||||
lifetimer = 500,
|
||||
floats=1,
|
||||
walk_velocity = 3,
|
||||
run_velocity = 4,
|
||||
fall_speed = 0,
|
||||
stepheight = 3,
|
||||
sounds = {
|
||||
random = "night_master",
|
||||
distance = 45,
|
||||
},
|
||||
damage = 8,
|
||||
jump = false,
|
||||
armor = 70,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
fly = true,
|
||||
attack_type = "dogfight",
|
||||
reach = 3,
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 35,
|
||||
stand_start = 60,
|
||||
stand_end = 120,
|
||||
walk_start = 20,
|
||||
walk_end = 50,
|
||||
run_start = 20,
|
||||
run_end = 50,
|
||||
punch_start = 130,
|
||||
punch_end = 160,
|
||||
},
|
||||
on_die = function(self, pos)
|
||||
minetest.add_particlespawner(
|
||||
200, --amount
|
||||
0.1, --time
|
||||
{x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos
|
||||
{x=pos.x+1, y=pos.y+1, z=pos.z+1}, --maxpos
|
||||
{x=-0, y=-0, z=-0}, --minvel
|
||||
{x=1, y=1, z=1}, --maxvel
|
||||
{x=-0.5,y=5,z=-0.5}, --minacc
|
||||
{x=0.5,y=5,z=0.5}, --maxacc
|
||||
0.1, --minexptime
|
||||
1, --maxexptime
|
||||
3, --minsize
|
||||
4, --maxsize
|
||||
false, --collisiondetection
|
||||
"tnt_smoke.png" --texture
|
||||
)
|
||||
minetest.add_entity(pos, "nssm:night_master_2")
|
||||
end,
|
||||
})
|
||||
|
||||
nssm:register_mob("nssm:night_master_2", {
|
||||
type = "monster",
|
||||
hp_max = 30,
|
||||
hp_min = 30,
|
||||
collisionbox = {-0.65, -0.4, -0.65, 0.65, 0.4, 0.65},
|
||||
visual = "mesh",
|
||||
mesh = "night_master_2.x",
|
||||
textures = {{"moonherontrio.png"}},
|
||||
visual_size = {x=18, y=18},
|
||||
view_range = 40,
|
||||
rotate = 270,
|
||||
lifetimer = 500,
|
||||
floats=1,
|
||||
walk_velocity = 3,
|
||||
run_velocity = 4,
|
||||
fall_speed = 0,
|
||||
stepheight = 3,
|
||||
sounds = {
|
||||
random = "night_master",
|
||||
distance = 45,
|
||||
},
|
||||
damage = 8,
|
||||
jump = false,
|
||||
armor = 70,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
fly = true,
|
||||
attack_type = "dogfight",
|
||||
reach = 3,
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 35,
|
||||
stand_start = 60,
|
||||
stand_end = 120,
|
||||
walk_start = 20,
|
||||
walk_end = 50,
|
||||
run_start = 20,
|
||||
run_end = 50,
|
||||
punch_start = 130,
|
||||
punch_end = 160,
|
||||
},
|
||||
on_die = function(self, pos)
|
||||
minetest.add_particlespawner(
|
||||
200, --amount
|
||||
0.1, --time
|
||||
{x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos
|
||||
{x=pos.x+1, y=pos.y+1, z=pos.z+1}, --maxpos
|
||||
{x=-0, y=-0, z=-0}, --minvel
|
||||
{x=1, y=1, z=1}, --maxvel
|
||||
{x=-0.5,y=5,z=-0.5}, --minacc
|
||||
{x=0.5,y=5,z=0.5}, --maxacc
|
||||
0.1, --minexptime
|
||||
1, --maxexptime
|
||||
3, --minsize
|
||||
4, --maxsize
|
||||
false, --collisiondetection
|
||||
"tnt_smoke.png" --texture
|
||||
)
|
||||
minetest.add_entity(pos, "nssm:night_master_1")
|
||||
end,
|
||||
})
|
||||
|
||||
nssm:register_mob("nssm:night_master_1", {
|
||||
type = "monster",
|
||||
hp_max = 30,
|
||||
hp_min = 30,
|
||||
collisionbox = {-0.65, -0.4, -0.65, 0.65, 0.4, 0.65},
|
||||
visual = "mesh",
|
||||
mesh = "night_master_1.x",
|
||||
textures = {{"moonherontrio.png"}},
|
||||
visual_size = {x=18, y=18},
|
||||
view_range = 40,
|
||||
rotate = 270,
|
||||
lifetimer = 500,
|
||||
floats=1,
|
||||
walk_velocity = 3,
|
||||
run_velocity = 4,
|
||||
fall_speed = 0,
|
||||
stepheight = 3,
|
||||
sounds = {
|
||||
random = "night_master",
|
||||
distance = 45,
|
||||
},
|
||||
damage = 8,
|
||||
jump = false,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 6,
|
||||
max = 7,},
|
||||
{name = "nssm:heron_leg",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
{name = "nssm:moon_feather",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
},
|
||||
armor = 70,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
fly = true,
|
||||
attack_type = "dogfight",
|
||||
reach = 3,
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 35,
|
||||
stand_start = 60,
|
||||
stand_end = 120,
|
||||
walk_start = 20,
|
||||
walk_end = 50,
|
||||
run_start = 20,
|
||||
run_end = 50,
|
||||
punch_start = 130,
|
||||
punch_end = 160,
|
||||
}
|
||||
})
|
1642
mod_jail/nssm/nssm_materials.lua
Normal file
1642
mod_jail/nssm/nssm_materials.lua
Normal file
File diff suppressed because it is too large
Load Diff
144
mod_jail/nssm/nssm_spears.lua
Normal file
144
mod_jail/nssm/nssm_spears.lua
Normal file
@ -0,0 +1,144 @@
|
||||
|
||||
--function
|
||||
function spears_shot (itemstack, player)
|
||||
local spear = itemstack:get_name() .. '_entity'
|
||||
local playerpos = player:getpos()
|
||||
local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, spear)
|
||||
local dir = player:get_look_dir()
|
||||
local sp = 16
|
||||
local dr = .3
|
||||
local gravity = 9.8
|
||||
obj:setvelocity({x=dir.x*sp, y=dir.y*sp, z=dir.z*sp})
|
||||
obj:setacceleration({x=-dir.x*dr, y=-gravity, z=-dir.z*dr})
|
||||
obj:setyaw(player:get_look_yaw()+math.pi)
|
||||
minetest.sound_play("spears_sound", {pos=playerpos})
|
||||
obj:get_luaentity().wear = itemstack:get_wear()
|
||||
return true
|
||||
end
|
||||
|
||||
function spears_set_entity(kind, eq, toughness)
|
||||
local SPEAR_ENTITY={
|
||||
physical = false,
|
||||
timer=0,
|
||||
visual = "wielditem",
|
||||
visual_size = {x=0.15, y=0.1},
|
||||
textures = {"nssm:spear_" .. kind},
|
||||
lastpos={},
|
||||
collisionbox = {0,0,0,0,0,0},
|
||||
on_punch = function(self, puncher)
|
||||
if puncher then
|
||||
if puncher:is_player() then
|
||||
local stack = {name='nssm:spear_' .. kind, wear=self.wear+65535/toughness}
|
||||
local inv = puncher:get_inventory()
|
||||
if inv:room_for_item("main", stack) then
|
||||
inv:add_item("main", stack)
|
||||
self.object:remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
SPEAR_ENTITY.on_step = function(self, dtime)
|
||||
self.timer=self.timer+dtime
|
||||
local pos = self.object:getpos()
|
||||
local node = minetest.get_node(pos)
|
||||
if not self.wear then
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
if self.lastpos.x~=nil then
|
||||
if node.name ~= "air" and not (string.find(node.name, 'grass') and not string.find(node.name, 'dirt')) and not string.find(node.name, 'flowers:') and not string.find(node.name, 'farming:') then
|
||||
self.object:remove()
|
||||
if self.wear+65535/toughness < 65535 then
|
||||
minetest.add_item(self.lastpos, {name='nssm:spear_' .. kind, wear=self.wear+65535/toughness})
|
||||
end
|
||||
elseif self.timer>0.2 then
|
||||
local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 1)
|
||||
for k, obj in pairs(objs) do
|
||||
if obj:get_luaentity() ~= nil then
|
||||
if obj:get_luaentity().name ~= "nssm:spear_" .. kind .. "_entity" and obj:get_luaentity().name ~= "__builtin:item" then
|
||||
local speed = vector.length(self.object:getvelocity())
|
||||
local damage = (speed + eq)^1.12-20
|
||||
obj:punch(self.object, 1.0, {
|
||||
full_punch_interval=1.0,
|
||||
damage_groups={fleshy=damage},
|
||||
}, nil)
|
||||
self.object:remove()
|
||||
if self.wear+65535/toughness < 65535 then
|
||||
minetest.add_item(self.lastpos, {name='nssm:spear_' .. kind, wear=self.wear+65535/toughness})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
self.lastpos={x=pos.x, y=pos.y, z=pos.z}
|
||||
end
|
||||
return SPEAR_ENTITY
|
||||
end
|
||||
|
||||
--Tools
|
||||
|
||||
function spears_register_spear(kind, desc, eq, toughness, material)
|
||||
|
||||
minetest.register_tool("nssm:spear_" .. kind, {
|
||||
description = desc .. " spear",
|
||||
wield_image = "spear_" .. kind .. ".png",
|
||||
inventory_image = "spear_" .. kind .. ".png^[transform4",
|
||||
wield_scale= {x=2,y=1,z=1},
|
||||
on_drop = function(itemstack, user, pointed_thing)
|
||||
spears_shot(itemstack, user)
|
||||
if not minetest.setting_getbool("creative_mode") then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
minetest.add_item(pointed_thing.above, itemstack)
|
||||
if not minetest.setting_getbool("creative_mode") then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.3,
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
snappy = {times={[3]=0.2, [2]=0.2, [1]=0.2}, uses=toughness, maxlevel=1},
|
||||
},
|
||||
damage_groups = {fleshy=eq},
|
||||
}
|
||||
})
|
||||
|
||||
SPEAR_ENTITY=spears_set_entity(kind, eq, toughness)
|
||||
|
||||
minetest.register_entity("nssm:spear_" .. kind .. "_entity", SPEAR_ENTITY)
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'nssm:spear_' .. kind,
|
||||
recipe = {
|
||||
{'group:wood', 'group:wood', material},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'nssm:spear_' .. kind,
|
||||
recipe = {
|
||||
{material, 'group:wood', 'group:wood'},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
spears_register_spear('ant', 'Ant', 6, 25, 'nssm:ant_mandible')
|
||||
|
||||
spears_register_spear('mantis', 'Mantis', 6, 10, 'nssm:mantis_claw')
|
||||
|
||||
spears_register_spear('manticore', 'Manticore', 8, 8, 'nssm:manticore_spine')
|
||||
|
||||
spears_register_spear('ice_tooth', 'Ice Tooth', 16, 200, 'nssm:ice_tooth')
|
||||
|
||||
spears_register_spear('little_ice_tooth', 'Little Ice Tooth', 7, 10, 'nssm:little_ice_tooth')
|
||||
|
||||
spears_register_spear('duck_beak', 'Duck Beak', 5, 6, 'nssm:duck_beak')
|
54
mod_jail/nssm/octopus.lua
Normal file
54
mod_jail/nssm/octopus.lua
Normal file
@ -0,0 +1,54 @@
|
||||
nssm:spawn_specific("nssm:octopus", {"default:water_source"}, {"default:water_source"}, 0, 20, 60, 40000, 1, -31000, 0)
|
||||
nssm:register_mob("nssm:octopus", {
|
||||
type = "monster",
|
||||
hp_max = 22,
|
||||
hp_min = 15,
|
||||
collisionbox = {-0.9, -0.5, -0.9, 0.9, 0.92, 0.9},
|
||||
visual = "mesh",
|
||||
mesh = "octopus.x",
|
||||
textures = {{"octopus.png"}},
|
||||
visual_size = {x=4, y=4},
|
||||
view_range = 25,
|
||||
fly = true,
|
||||
fly_in = "default:water_source",
|
||||
fall_speed = -20,
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 3,
|
||||
damage = 3,
|
||||
rotate = 270,
|
||||
jump = false,
|
||||
jump_chance = 0,
|
||||
jump_height = 0,
|
||||
sounds = {
|
||||
random = "octopus",
|
||||
},
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 2,
|
||||
max = 3,},
|
||||
{name = "nssm:tentacle",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 8,},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 10,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 35,
|
||||
stand_start = 1,
|
||||
stand_end = 50,
|
||||
walk_start = 60,
|
||||
walk_end = 100,
|
||||
run_start = 60,
|
||||
run_end = 100,
|
||||
punch_start = 120,
|
||||
punch_end = 160,
|
||||
}
|
||||
})
|
68
mod_jail/nssm/phoenix.lua
Normal file
68
mod_jail/nssm/phoenix.lua
Normal file
@ -0,0 +1,68 @@
|
||||
nssm:spawn_specific("nssm:phoenix", {"air"}, {"air"}, 10, 20, 120, 5200000, 1, 10, 40)
|
||||
nssm:register_mob("nssm:phoenix", {
|
||||
type = "monster",
|
||||
hp_max = 60,
|
||||
hp_min = 60,
|
||||
collisionbox = {-0.65, -0.4, -0.65, 0.65, 0.4, 0.65},
|
||||
visual = "mesh",
|
||||
mesh = "phoenix.x",
|
||||
textures = {{"phoenix.png"}},
|
||||
visual_size = {x=18, y=18},
|
||||
view_range = 40,
|
||||
lifetimer = 500,
|
||||
floats=1,
|
||||
rotate = 270,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 2.5,
|
||||
fall_speed = 0,
|
||||
stepheight = 3,
|
||||
sounds = {
|
||||
random = "phoenix",
|
||||
distance = 45,
|
||||
},
|
||||
damage = 2,
|
||||
jump = false,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 7,
|
||||
max = 8,},
|
||||
{name = "nssm:sun_feather",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1,},
|
||||
{name = "nssm:phoenix_tear",
|
||||
chance = 1,
|
||||
min = 5,
|
||||
max = 6,},
|
||||
{name = "nssm:phoenix_nuggets",
|
||||
chance = 6,
|
||||
min = 10,
|
||||
max = 20,},
|
||||
},
|
||||
armor = 60,
|
||||
drawtype = "front",
|
||||
water_damage = 5,
|
||||
lava_damage = 0,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
fly = true,
|
||||
attack_type = "shoot",
|
||||
arrow = "nssm:phoenix_arrow",
|
||||
reach = 1,
|
||||
shoot_interval = 4,
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 25,
|
||||
stand_start = 220,
|
||||
stand_end = 280,
|
||||
walk_start = 140,
|
||||
walk_end = 180,
|
||||
run_start = 190,
|
||||
run_end = 210,
|
||||
punch_start = 80,
|
||||
punch_end = 110,
|
||||
dattack_start = 80,
|
||||
dattack_end = 110,
|
||||
}
|
||||
})
|
144
mod_jail/nssm/pumpboom.lua
Normal file
144
mod_jail/nssm/pumpboom.lua
Normal file
@ -0,0 +1,144 @@
|
||||
nssm:spawn_specific("nssm:pumpboom_small", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, 0, 20, 30, 300, 1, -31000, 31000)
|
||||
nssm:spawn_specific("nssm:pumpboom_medium", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, 0, 20, 30, 400, 1, -31000, 31000)
|
||||
nssm:spawn_specific("nssm:pumpboom_large", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_tree"}, 0, 20, 30, 500, 1, -31000, 31000)
|
||||
|
||||
nssm:register_mob("nssm:pumpboom_small", {
|
||||
type = "monster",
|
||||
hp_max = 15,
|
||||
hp_min = 14,
|
||||
collisionbox = {-0.80, -0.3, -0.80, 0.80, 0.80, 0.80},
|
||||
visual = "mesh",
|
||||
mesh = "pumpboom.x",
|
||||
rotate = 270,
|
||||
textures = {{"pumpboom.png"}},
|
||||
visual_size = {x=3, y=3},
|
||||
explosion_radius = 4,
|
||||
makes_footstep_sound = true,
|
||||
view_range = 20,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 2.5,
|
||||
sounds = {
|
||||
explode = "tnt_explode"
|
||||
},
|
||||
damage = 1.5,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,}
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 2,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "explode",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 30,
|
||||
walk_start = 81,
|
||||
walk_end = 97,
|
||||
run_start = 81,
|
||||
run_end = 97,
|
||||
punch_start = 70,
|
||||
punch_end = 80,
|
||||
}
|
||||
})
|
||||
|
||||
nssm:register_mob("nssm:pumpboom_medium", {
|
||||
type = "monster",
|
||||
hp_max = 18,
|
||||
hp_min = 17,
|
||||
collisionbox = {-0.80, -0.3, -0.80, 0.80, 0.80, 0.80},
|
||||
visual = "mesh",
|
||||
mesh = "pumpboom.x",
|
||||
rotate = 270,
|
||||
textures = {{"pumpboom.png"}},
|
||||
visual_size = {x=5, y=5},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 25,
|
||||
walk_velocity = 2,
|
||||
explosion_radius = 6,
|
||||
run_velocity = 2.5,
|
||||
sounds = {
|
||||
explode = "tnt_explode"
|
||||
},
|
||||
damage = 1.5,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 2,
|
||||
max = 3,}
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 2,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "explode",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 30,
|
||||
walk_start = 81,
|
||||
walk_end = 97,
|
||||
run_start = 81,
|
||||
run_end = 97,
|
||||
punch_start = 70,
|
||||
punch_end = 80,
|
||||
}
|
||||
})
|
||||
|
||||
nssm:register_mob("nssm:pumpboom_large", {
|
||||
type = "monster",
|
||||
hp_max = 20,
|
||||
hp_min = 19,
|
||||
collisionbox = {-0.80, -0.3, -0.80, 0.80, 0.80, 0.80},
|
||||
visual = "mesh",
|
||||
mesh = "pumpboom.x",
|
||||
rotate = 270,
|
||||
explosion_radius = 8,
|
||||
textures = {{"pumpboom.png"}},
|
||||
visual_size = {x=8, y=8},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 30,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 3,
|
||||
sounds = {
|
||||
explode = "tnt_explode"
|
||||
},
|
||||
damage = 1.5,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 3,
|
||||
max = 4,}
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 2,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "explode",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 25,
|
||||
stand_start = 1,
|
||||
stand_end = 30,
|
||||
walk_start = 81,
|
||||
walk_end = 97,
|
||||
run_start = 81,
|
||||
run_end = 97,
|
||||
punch_start = 70,
|
||||
punch_end = 80,
|
||||
}
|
||||
})
|
48
mod_jail/nssm/pumpking.lua
Normal file
48
mod_jail/nssm/pumpking.lua
Normal file
@ -0,0 +1,48 @@
|
||||
nssm:spawn_specific("nssm:pumpking", {"default:dirt_with_grass", "default:dirt_with_snow","default:snowblock"}, {"default:pine_needles", "default:pine_tree"}, 0, 12, 120, 10000, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:pumpking", {
|
||||
type = "monster",
|
||||
hp_max = 100,
|
||||
hp_min = 100,
|
||||
collisionbox = {-0.4, 0.00, -0.4, 0.4, 3.2, 0.4},
|
||||
visual = "mesh",
|
||||
mesh = "pumpking.x",
|
||||
textures = {{"pumpking.png"}},
|
||||
visual_size = {x=2.5, y=2.5},
|
||||
makes_footstep_sound = true,
|
||||
lifetimer=500,
|
||||
rotate=270,
|
||||
view_range = 35,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 4,
|
||||
sounds = {
|
||||
random = "king",
|
||||
explode = "tnt_explode",
|
||||
},
|
||||
damage = 9,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 7,
|
||||
max = 9,},
|
||||
},
|
||||
armor =50,
|
||||
drawtype = "front",
|
||||
water_damage = 2,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
pump_putter = true,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
stand_start = 165, stand_end = 210,
|
||||
walk_start = 220, walk_end = 260,
|
||||
run_start = 220, run_end = 260,
|
||||
punch_start = 1, punch_end = 30,
|
||||
punch1_start = 270, punch1_end = 295,
|
||||
speed_normal = 15, speed_run = 15,
|
||||
},
|
||||
on_die=function(self,pos)
|
||||
nssm:explosion(pos, 3, 0, 1, self.sounds.explode)
|
||||
end
|
||||
})
|
31
mod_jail/nssm/rainbow_staff.lua
Normal file
31
mod_jail/nssm/rainbow_staff.lua
Normal file
@ -0,0 +1,31 @@
|
||||
--rainbow!
|
||||
minetest.register_entity("nssm:rainbow", {
|
||||
textures = {"transparent.png"},
|
||||
velocity = 10,
|
||||
on_step = function (self, pos, node, dtime)
|
||||
local pos = self.object:getpos()
|
||||
local n = minetest.env:get_node(pos).name
|
||||
if n ~= "default:nyancat_rainbow" then
|
||||
if n=="air" then
|
||||
minetest.env:set_node(pos, {name="default:nyancat_rainbow"})
|
||||
else
|
||||
minetest.env:set_node(pos, {name="default:nyancat"})
|
||||
self.object:remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_tool("nssm:rainbow_staff", {
|
||||
description = "Rainbow Staff",
|
||||
inventory_image = "rainbow_staff.png",
|
||||
on_use = function(itemstack, placer, pointed_thing)
|
||||
local dir = placer:get_look_dir();
|
||||
local playerpos = placer:getpos();
|
||||
local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "nssm:rainbow")
|
||||
local vec = {x=dir.x*6,y=dir.y*6,z=dir.z*6}
|
||||
obj:setvelocity(vec)
|
||||
return itemstack
|
||||
end,
|
||||
groups = {not_in_creative_inventory=1,}
|
||||
})
|
48
mod_jail/nssm/sandworm.lua
Normal file
48
mod_jail/nssm/sandworm.lua
Normal file
@ -0,0 +1,48 @@
|
||||
nssm:spawn_specific("nssm:sandworm", {"default:desert_sand", "default:desert_stone"}, {"default:sand"}, 0, 20, 20, 5000, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:sandworm", {
|
||||
type = "monster",
|
||||
hp_max = 30,
|
||||
hp_min = 25,
|
||||
collisionbox = {-0.6, -0.2, -0.6, 0.6, 1.90, 0.6},
|
||||
visual = "mesh",
|
||||
mesh = "sandworm.x",
|
||||
textures = {{"sandworm.png"}},
|
||||
visual_size = {x=10, y=10},
|
||||
makes_footstep_sound = false,
|
||||
view_range = 17,
|
||||
rotate = 270,
|
||||
worm = true,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 2,
|
||||
damage = 4,
|
||||
jump = false,
|
||||
drops = {
|
||||
{name = "nssm:worm_flesh",
|
||||
chance = 2,
|
||||
min = 1,
|
||||
max = 3,},
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 2,
|
||||
max = 3,},
|
||||
},
|
||||
armor = 90,
|
||||
drawtype = "front",
|
||||
water_damage = 5,
|
||||
lava_damage = 10,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 40,
|
||||
stand_start = 1,
|
||||
stand_end = 30,
|
||||
walk_start = 30,
|
||||
walk_end = 70,
|
||||
run_start = 30,
|
||||
run_end = 70,
|
||||
punch_start = 70,
|
||||
punch_end = 90,
|
||||
}
|
||||
})
|
54
mod_jail/nssm/scrausics.lua
Normal file
54
mod_jail/nssm/scrausics.lua
Normal file
@ -0,0 +1,54 @@
|
||||
nssm:spawn_specific("nssm:scrausics", {"air"}, {"air"}, 10, 20, 100, 750000, 1, 10, 40)
|
||||
nssm:register_mob("nssm:scrausics", {
|
||||
type = "monster",
|
||||
hp_max = 23,
|
||||
hp_min = 22,
|
||||
collisionbox = {-0.4, -0.3, -0.4, 0.4, 0.3, 0.4},
|
||||
visual = "mesh",
|
||||
mesh = "scrausics.x",
|
||||
textures = {{"scrausics.png"}},
|
||||
visual_size = {x=10, y=10},
|
||||
view_range = 35,
|
||||
rotate = 270,
|
||||
walk_velocity = 2,
|
||||
run_velocity = 3,
|
||||
fall_speed = 0,
|
||||
stepheight = 3,
|
||||
floats=1,
|
||||
sounds = {
|
||||
random = "scrausic",
|
||||
distance = 40,
|
||||
},
|
||||
damage = 3,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 3,
|
||||
max = 4,},
|
||||
{name = "nssm:raw_scrausics_wing",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 5,
|
||||
lava_damage = 5,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
fly = true,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 25,
|
||||
speed_run = 25,
|
||||
stand_start = 220,
|
||||
stand_end = 280,
|
||||
walk_start = 140,
|
||||
walk_end = 180,
|
||||
run_start = 190,
|
||||
run_end = 210,
|
||||
punch_start = 20,
|
||||
punch_end = 50,
|
||||
}
|
||||
})
|
45
mod_jail/nssm/signosigno.lua
Normal file
45
mod_jail/nssm/signosigno.lua
Normal file
@ -0,0 +1,45 @@
|
||||
nssm:spawn_specific("nssm:signosigno", {"default:stone"}, {"default:stone"}, 0, 10, 20, 400, 2, -31000, -20)
|
||||
nssm:spawn_specific("nssm:signosigno", {"bones:bones"}, {"air"}, 0, 15, 3, 1, 5, -31000, 31000)
|
||||
nssm:register_mob("nssm:signosigno", {
|
||||
type = "monster",
|
||||
hp_max = 10,
|
||||
hp_min = 8,
|
||||
collisionbox = {-0.2, 0.00, -0.2, 0.2, 1.6, 0.2},
|
||||
visual = "mesh",
|
||||
mesh = "signosigno.x",
|
||||
textures = {{"signosigno.png"}, {"signosigno2.png"}},
|
||||
visual_size = {x=6, y=6},
|
||||
makes_footstep_sound = false,
|
||||
view_range = 15,
|
||||
walk_velocity = 1.5,
|
||||
run_velocity = 2.5,
|
||||
rotate = 270,
|
||||
damage = 3,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 2,},
|
||||
},
|
||||
armor = 70,
|
||||
drawtype = "front",
|
||||
water_damage = 1,
|
||||
lava_damage = 2,
|
||||
light_damage = 1,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 20,
|
||||
stand_start = 20,
|
||||
stand_end = 80,
|
||||
walk_start = 100,
|
||||
walk_end = 140,
|
||||
run_start = 200,
|
||||
run_end = 220,
|
||||
punch_start = 160,
|
||||
punch_end = 190,
|
||||
}
|
||||
|
||||
})
|
59
mod_jail/nssm/snow_biter.lua
Normal file
59
mod_jail/nssm/snow_biter.lua
Normal file
@ -0,0 +1,59 @@
|
||||
nssm:spawn_specific("nssm:snow_biter", {"default:snowblock", "default:ice", "default:dirt_with_snow"}, {"default:snowblock", "default:ice", "default:dirt_with_snow"}, 0, 20, 30, 5000, 1, -31000, 31000)
|
||||
nssm:register_mob("nssm:snow_biter", {
|
||||
type = "monster",
|
||||
hp_max = 20,
|
||||
hp_min = 15,
|
||||
collisionbox = {-0.5, 0, -0.5, 0.5, 0.60, 0.5},
|
||||
visual = "mesh",
|
||||
mesh = "snow_biter.x",
|
||||
textures = {{"snow_biter.png"}},
|
||||
visual_size = {x=6, y=6},
|
||||
makes_footstep_sound = true,
|
||||
view_range = 18,
|
||||
rotate = 270,
|
||||
froster = true,
|
||||
mele_number = 2,
|
||||
reach = 1.5,
|
||||
walk_velocity = 0.8,
|
||||
run_velocity = 3,
|
||||
sounds = {
|
||||
random = "snow_biter",
|
||||
},
|
||||
damage = 5,
|
||||
jump = true,
|
||||
drops = {
|
||||
{name = "nssm:life_energy",
|
||||
chance = 1,
|
||||
min = 2,
|
||||
max = 3},
|
||||
{name = "nssm:frosted_amphibian_heart",
|
||||
chance = 1,
|
||||
min = 1,
|
||||
max = 1},
|
||||
{name = "nssm:little_ice_tooth",
|
||||
chance = 2,
|
||||
min = 0,
|
||||
max = 4},
|
||||
},
|
||||
armor = 100,
|
||||
drawtype = "front",
|
||||
water_damage = 0,
|
||||
lava_damage = 30,
|
||||
light_damage = 0,
|
||||
on_rightclick = nil,
|
||||
attack_type = "dogfight",
|
||||
animation = {
|
||||
speed_normal = 20,
|
||||
speed_run = 25,
|
||||
stand_start = 0,
|
||||
stand_end = 80,
|
||||
walk_start = 110,
|
||||
walk_end = 150,
|
||||
run_start = 80,
|
||||
run_end = 100,
|
||||
punch_start = 175,
|
||||
punch_end = 190,
|
||||
punch1_start = 200,
|
||||
punch1_end = 215
|
||||
}
|
||||
})
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user