Compare commits

..

No commits in common. "39f94eb89b7b9dd40c7b8527cde4b81ebacdb971" and "46cf68008bee96ba940e7a5af6f20d254f1057d7" have entirely different histories.

22 changed files with 453 additions and 555 deletions

View File

@ -31,7 +31,6 @@ To download you can play this game with the following minetest engines:
* https://codeberg.org/minenux/minetest-engine-minetest/src/branch/stable-4.1
* https://codeberg.org/minenux/minetest-engine-minetest/src/branch/stable-4.0
* https://codeberg.org/minenux/minetest-engine-minetest/src/branch/stable-5.X
* Final minetest from https://minetest.io/downloads/ or https://minetest.org
#### Mods
@ -46,13 +45,10 @@ To download you can play this game with the following minetest engines:
* so then default flowers as `flowers` are need. Later this will need ethereal modifications.
* minetest Random Spawn as `rspawn` [mods/rspawn](mods/rspawn) from https://codeberg.org/minenux/minetest-mod-rspawn
* so then default beds as `beds` [mods/beds](mods/beds) from default 0.4
* tenplus1 petty mods but higly customized
* mobs_redo as `mobs` [mods/mobs](mods/mobs) from https://codeberg.org/minenux/minetest-mod-mobs_redo
* tenplus1 customized mods
* simple_skins as `skins` [mods/skins](mods/skins) from https://codeberg.org/minenux/minetest-mod-simple_skins
* regrow as `regrow` [mods/regrow](mods/regrow) from https://codeberg.org/minenux/minetest-mod-regrow
* ethereal as `ethereal` [mods/ethereal](mods/ethereal) from https://codeberg.org/minenux/minetest-mod-ethereal
* PilzAdam mobs mods and D00Med mobs
* dmobs+animal+monsters as `mobs_jam` [mods/mobs_jam](mods/mobs_jam) from https://codeberg.org/minenux/minetest-mod-mobs_jam
* player stuffs:
* minenux bags as `backpacks` [mods/backpacks](mods/backpacks)
* NPXcoot

View File

@ -1,4 +1,4 @@
local MP = minetest.get_modpath("mobs")
local MP = minetest.get_modpath(minetest.get_current_modname())
-- Check for translation method
local S
@ -21,29 +21,22 @@ else
end
end
end
local FS = function(...) return minetest.formspec_escape(S(...)) end
-- CMI support check
local use_cmi = minetest.global_exists("cmi")
-- MineClone2 check
local use_mc2 = minetest.get_modpath("mcl_core")
-- Global
mobs = {
mod = "redo",
version = "20231105",
translate = S, intllib = S,
version = "20230805",
intllib = S,
invis = minetest.global_exists("invisibility") and invisibility or {},
node_ice = "default:ice",
node_snow = minetest.registered_aliases["mapgen_snow"]
or (use_mc2 and "mcl_core:snow") or "default:snow",
node_dirt = minetest.registered_aliases["mapgen_dirt"]
or (use_mc2 and "mcl_core:dirt") or "default:dirt"
node_snow = minetest.registered_aliases["mapgen_snow"] or "default:snow" or "mcl_core:snow",
node_dirt = minetest.registered_aliases["mapgen_dirt"] or "default:dirt" or "mcl_core:dirt"
}
mobs.fallback_node = mobs.node_dirt
-- localize common functions
local pi = math.pi
local square = math.sqrt
@ -114,8 +107,7 @@ local pathfinder_enable = settings:get_bool("mob_pathfinder_enable") or true
local pathfinding_stuck_timeout = tonumber(
settings:get("mob_pathfinding_stuck_timeout")) or 3.0
-- how long will mob follow path before giving up
local pathfinding_stuck_path_timeout = tonumber(
settings:get("mob_pathfinding_stuck_path_timeout")) or 5.0
local pathfinding_stuck_path_timeout = tonumber(settings:get("mob_pathfinding_stuck_path_timeout")) or 5.0
-- which algorithm to use, Dijkstra(default) or A*_noprefetch or A*
-- fix settings not allowing "*"
local pathfinding_algorithm = settings:get("mob_pathfinding_algorithm") or "Dijkstra"
@ -218,7 +210,6 @@ mobs.mob_class = {
friendly_fire = true,
facing_fence = false,
_breed_countdown = nil,
_tame_countdown = nil,
_cmi_is_mob = true
}
@ -229,20 +220,21 @@ local mob_class_meta = {__index = mob_class}
-- play sound
function mob_class:mob_sound(sound)
if not sound then return end
if sound then
-- higher pitch for a child
local pitch = self.child and 1.5 or 1.0
-- higher pitch for a child
local pitch = self.child and 1.5 or 1.0
-- a little random pitch to be different
pitch = pitch + random(-10, 10) * 0.005
-- a little random pitch to be different
pitch = pitch + random(-10, 10) * 0.005
minetest.sound_play(sound, {
object = self.object,
gain = 1.0,
max_hear_distance = (self.sounds and self.sounds.distance) or 10,
pitch = pitch
}, true)
minetest.sound_play(sound, {
object = self.object,
gain = 1.0,
max_hear_distance = self.sounds.distance,
pitch = pitch
}, true)
end
end
@ -833,8 +825,6 @@ function mob_class:update_tag()
text = "\nLoving: " .. (self.hornytimer - (HORNY_TIME + HORNY_AGAIN_TIME))
elseif self.child == true then
text = "\nGrowing: " .. (self.hornytimer - CHILD_GROW_TIME)
elseif self._tame_countdown then
text = "\nTaming: " .. self._tame_countdown
elseif self._breed_countdown then
text = "\nBreeding: " .. self._breed_countdown
end
@ -1590,8 +1580,6 @@ function mob_class:breed()
-- make sure baby is actually there
if ent2 then
textures = self.base_texture
-- using specific child texture (if found)
if self.child_texture then
textures = self.child_texture[1]
@ -2003,7 +1991,8 @@ local function is_peaceful_player(player)
local player_name = player:get_player_name()
-- player priv enabled
if player_name and minetest.check_player_privs(player_name, "peaceful_player") then
if player_name
and minetest.check_player_privs(player_name, "peaceful_player") then
return true
end
end
@ -2339,21 +2328,6 @@ function mob_class:dogswitch(dtime)
end
-- stop attack
function mob_class:stop_attack()
self.attack = nil
self.following = nil
self.v_start = false
self.timer = 0
self.blinktimer = 0
self.path.way = nil
self:set_velocity(0)
self.state = "stand"
self:set_animation("stand", true)
end
-- execute current state (stand, walk, run, attacks)
function mob_class:do_states(dtime)
@ -2504,11 +2478,6 @@ function mob_class:do_states(dtime)
self:set_velocity(0)
self.state = "stand"
self:set_animation("stand")
-- try to turn so we are not stuck
yaw = yaw + random(-1, 1) * 1.5
yaw = self:set_yaw(yaw, 4)
else
self:set_velocity(self.run_velocity)
self:set_animation("walk")
@ -2532,28 +2501,19 @@ function mob_class:do_states(dtime)
--print(" ** stop attacking **", self.name, self.health, dist, self.view_range)
self:stop_attack()
self.attack = nil
self.following = nil
self.v_start = false
self.timer = 0
self.blinktimer = 0
self.path.way = nil
self:set_velocity(0)
self.state = "stand"
self:set_animation("stand", true)
return
end
-- check enemy is in sight
local in_sight = self:line_of_sight(
{x = s.x, y = s.y + 0.5, z = s.z},
{x = p.x, y = p.y + 0.5, z = p.z})
-- stop attacking when enemy not seen for 11 seconds
if not in_sight then
self.target_time_lost = (self.target_time_lost or 0) + dtime
if self.target_time_lost > self.attack_patience then
self:stop_attack()
end
else
self.target_time_lost = 0
end
if self.attack_type == "explode" then
yaw_to_pos(self, p)
@ -2568,7 +2528,7 @@ function mob_class:do_states(dtime)
-- start timer when in reach and line of sight
if not self.v_start
and dist <= self.reach
and in_sight then
and self:line_of_sight(s, p, 2) then
self.v_start = true
self.timer = 0
@ -2580,7 +2540,7 @@ function mob_class:do_states(dtime)
-- stop timer if out of reach or direct line of sight
elseif self.allow_fuse_reset
and self.v_start
and (dist > self.reach or not in_sight) then
and (dist > self.reach or not self:line_of_sight(s, p, 2)) then
--print("=== explosion timer stopped")
@ -2614,8 +2574,10 @@ function mob_class:do_states(dtime)
self.blinktimer = 0
if self.blinkstatus then
self.object:set_texture_mod(self.texture_mods)
else
self.object:set_texture_mod(self.texture_mods .. "^[brighten")
end
@ -2628,9 +2590,10 @@ function mob_class:do_states(dtime)
local pos = self.object:get_pos()
-- dont damage anything if area protected or next to water
-- dont damage anything if area protected or next to waterpathfinding_max_jump
if minetest.find_node_near(pos, 1, {"group:water"})
or minetest.is_protected(pos, "") then
node_break_radius = 1
end
@ -3154,16 +3117,15 @@ function mob_class:on_punch(hitter, tflp, tool_capabilities, dir, damage)
self.following = nil
end
local hitter_name = ""
if hitter then if is_player(hitter) then hitter_name = hitter:get_player_name() end end
local name = hitter:get_player_name() or ""
-- attack puncher and call other mobs for help
if self.passive == false
and self.state ~= "flop"
and self.child == false
and self.attack_players == true
and not (is_player(hitter) and hitter_name == self.owner)
and not is_invisible(self, hitter_name)
and hitter:get_player_name() ~= self.owner
and not is_invisible(self, name)
and self.object ~= hitter then
-- attack whoever punched mob
@ -3172,25 +3134,25 @@ function mob_class:on_punch(hitter, tflp, tool_capabilities, dir, damage)
-- alert others to the attack
local objs = minetest.get_objects_inside_radius(hitter:get_pos(), self.view_range)
local ent
local obj
for n = 1, #objs do
ent = objs[n] and objs[n]:get_luaentity()
obj = objs[n]:get_luaentity()
if ent and ent._cmi_is_mob then
if obj and obj._cmi_is_mob then
-- only alert members of same mob and assigned helper
if ent.group_attack == true
and ent.state ~= "attack"
and not (is_player(hitter) and ent.owner == hitter_name)
and (ent.name == self.name or ent.name == self.group_helper) then
ent:do_attack(hitter)
if obj.group_attack == true
and obj.state ~= "attack"
and obj.owner ~= name
and (obj.name == self.name or obj.name == self.group_helper) then
obj:do_attack(hitter)
end
-- have owned mobs attack player threat
if is_player(hitter) and ent.owner == hitter_name and ent.owner_loyal then
ent:do_attack(self.object)
if obj.owner == name and obj.owner_loyal then
obj:do_attack(self.object)
end
end
end
@ -3261,28 +3223,6 @@ function mob_class:mob_staticdata()
self.serialized_cmi_components = cmi.serialize_components(self._cmi_components)
end
-- move existing variables to new table for future compatibility
-- using self.initial_properties lost some variables when backing up?!?
if not self.backup_properties then
self.backup_properties = {
hp_max = self.hp_max,
physical = self.physical,
collisionbox = self.collisionbox,
selectionbox = self.selectionbox,
visual = self.visual,
visual_size = self.visual_size,
mesh = self.mesh,
textures = self.textures,
make_footstep_sound = self.make_footstep_sound,
stepheight = self.stepheight,
glow = self.glow,
nametag = self.nametag,
damage_texture_modifier = self.damage_texture_modifier,
infotext = self.infotext
}
end
return minetest.serialize(clean_staticdata(self))
end
@ -3486,7 +3426,7 @@ function mob_class:mob_expire(pos, dtime)
end
end
-- minetest.log("action", "lifetimer expired, removed " .. self.name)
-- minetest.log("action", S("lifetimer expired, removed @1", self.name))
effect(pos, 15, "tnt_smoke.png", 2, 4, 2, 0)
@ -3570,7 +3510,7 @@ function mob_class:on_step(dtime, moveresult)
-- check and stop if standing at cliff and fear of heights
self.at_cliff = self:is_at_cliff()
if self.pause_timer < 0 and self.at_cliff then
if self.pause_timer <= 0 and self.at_cliff then
self:set_velocity(0)
end
@ -3727,8 +3667,8 @@ function mobs:register_mob(name, def)
minetest.register_entity(name, setmetatable({
stepheight = def.stepheight or 1.1,
name = (name:find(":") and name or ":"..name),
stepheight = def.stepheight,
name = name,
type = def.type,
attack_type = def.attack_type,
fly = def.fly,
@ -3981,8 +3921,6 @@ function mobs:add_mob(pos, def)
if not ent then
--print("[mobs] entity not found " .. def.name)
return false
else
effect(pos, 15, "tnt_smoke.png", 1, 2, 2, 15, 5)
end
if def.child then
@ -4217,16 +4155,14 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, inter
local mob = minetest.add_entity(pos, name)
-- print("[mobs] Spawned " .. name .. " at "
-- .. minetest.pos_to_string(pos) .. " on "
-- .. node.name .. " near " .. neighbors[1])
if mob_log_spawn then
local pos_string = pos and minetest.pos_to_string(pos) or ""
minetest.log(
"[MOBS] Spawned "
.. (name or "")
.. " at "
.. pos_string
)
minetest.log("[MOBS] Spawned " .. name .. " at "
.. minetest.pos_to_string(pos))
end
if on_spawn and mob then
@ -4302,7 +4238,7 @@ function mobs:register_arrow(name, def)
if not name or not def then return end -- errorcheck
minetest.register_entity( (name:find(":") and name or ":"..name) , {
minetest.register_entity(name, {
physical = def.physical or false,
collide_with_objects = def.collide_with_objects or false,
@ -4473,6 +4409,7 @@ end
-- Register spawn eggs
-- Note: This also introduces the “spawn_egg” group:
-- * spawn_egg=1: Spawn egg (generic mob, no metadata)
-- * spawn_egg=2: Spawn egg (captured/tamed mob, metadata)
@ -4815,7 +4752,11 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
-- increase health
self.health = self.health + 4
if self.health >= self.hp_max then self.health = self.hp_max end
if self.health >= self.hp_max then
self.health = self.hp_max
end
self.object:set_hp(self.health)
@ -4823,7 +4764,7 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
if self.child == true then
-- deduct 10% of the time to adulthood
self.hornytimer = floor(self.hornytimer + (
self.hornytimer = math.floor(self.hornytimer + (
(CHILD_GROW_TIME - self.hornytimer) * 0.1))
--print ("====", self.hornytimer)
return true
@ -4831,8 +4772,7 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
-- feed and tame
self.food = (self.food or 0) + 1
self._breed_countdown = breed and (feed_count - self.food)
self._tame_countdown = not self.tamed and tame and (feed_count - self.food)
self._breed_countdown = feed_count - self.food
if self.food >= feed_count then
@ -4873,7 +4813,8 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
-- if mob has been tamed you can name it with a nametag
if item:get_name() == "mobs:nametag"
and (name == self.owner or minetest.check_player_privs(name, "protection_bypass")) then
and (name == self.owner
or minetest.check_player_privs(name, "protection_bypass")) then
-- store mob and nametag stack in external variables
mob_obj[name] = self
@ -4882,9 +4823,13 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
local tag = self.nametag or ""
local esc = minetest.formspec_escape
minetest.show_formspec(name, "mobs_nametag", "size[8,4]"
.. "field[0.5,1;7.5,0;name;" .. esc(FS("Enter name:")) .. ";" .. tag .. "]"
.. "button_exit[2.5,3.5;3,1;mob_rename;" .. esc(FS("Rename")) .. "]")
minetest.show_formspec(name, "mobs_nametag",
"size[8,4]" ..
"field[0.5,1;7.5,0;name;" ..
esc(S("Enter name:")) ..
";" .. tag .. "]" ..
"button_exit[2.5,3.5;3,1;mob_rename;" ..
esc(S("Rename")) .. "]")
return true
end
@ -4899,9 +4844,9 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
end
minetest.chat_send_player(clicker:get_player_name(),
S("@1 follows:",
self.name:split(":")[2]) .. "\n" ..
table.concat(self.follow, "\n- "))
S("@1 follows:\n- @2",
self.name:split(":")[2],
table.concat(self.follow, "\n- ")))
end
end
@ -4962,10 +4907,10 @@ function mobs:alias_mob(old_name, new_name)
end
-- spawn egg
minetest.register_alias( (old_name:find(":") and old_name or ":"..old_name), new_name)
minetest.register_alias(old_name, new_name)
-- entity
minetest.register_entity( ":"..old_name , {
minetest.register_entity(":" .. old_name, {
physical = false, static_save = false,

View File

@ -387,15 +387,6 @@ for each mob.
in it's name.
Internal Functions
------------------
Each mob contains a set of functions that can be called for use internally or from
another mod entirely, replace mob_class with the mob entity variable:
mob_class:stop_attack() -- stops mob attacking
Adding Mobs in World
--------------------

View File

@ -1,6 +1,5 @@
local S = mobs.translate
local FS = function(...) return minetest.formspec_escape(S(...)) end
local S = mobs.intllib
local mc2 = minetest.get_modpath("mcl_core")
-- recipe items
@ -335,9 +334,9 @@ minetest.register_tool(":mobs:mob_reset_stick", {
minetest.show_formspec(name, "mobs_texture", "size[8,4]"
.. "field[0.5,1;7.5,0;name;"
.. FS("Enter texture:") .. ";" .. bt .. "]"
.. minetest.formspec_escape(S("Enter texture:")) .. ";" .. bt .. "]"
.. "button_exit[2.5,3.5;3,1;mob_texture_change;"
.. FS("Change") .. "]")
.. minetest.formspec_escape(S("Change")) .. "]")
end
end
})

View File

@ -21,9 +21,6 @@ dofile(path .. "/crafts.lua")
dofile(path .. "/spawner.lua")
-- Lucky Blocks
if minetest.get_modpath("lucky_block") then
dofile(path .. "/lucky_block.lua")
end
dofile(path .. "/lucky_block.lua")
print("[MOD] Mobs Redo loaded")

View File

@ -1,38 +1,34 @@
# textdomain: mobs
** Peaceful Mode Active - No Monsters Will Spawn=** Friedlicher Modus aktiv - Es werden keine Monster spawnen
Active Mob Limit Reached!=Aktives Mob-Limit erreicht!
Mob has been protected!=Kreatur wurde geschützt!
# textdomain:mobs
#** Peaceful Mode Active - No Monsters Will Spawn=
@1 (Tamed)=@1 (Gezähmt)
Not tamed!=Nicht gezähmt!
@1 is owner!=@1 ist der Besitzer!
Missed!=Daneben!
Already protected!=Bereits geschützt!
@1 at full health (@2)=@1 bei voller Gesundheit (@2)
@1 has been tamed!=@1 wurde gezähmt!
@1 follows:=@1 folgt:
@1 mobs removed.=@1 Mobs entfernt.
@1 is owner!=@1 ist der Besitzer!
#Active Mob Limit Reached!=
Already protected!=Bereits geschützt!
#Change=
#Command:=
Enter name:=Namen eingeben:
Rename=Umbenennen
Name Tag=Namensschild
Leather=Leder
Raw Meat=Rohes Fleisch
Meat=Fleisch
#Enter texture:=
Lasso (right-click animal to put in inventory)=Lasso (Rechtsklick auf Tier, um es zu nehmen)
Net (right-click animal to put in inventory)=Netz (Rechtsklick auf Tier, um es zu nehmen)
Steel Shears (right-click to shear)=Stahlschere (Rechtsklick zum Scheren)
Mob Protection Rune=Kreaturschutzrune
Mob Protection Rune (Level 2)=Kreaturschutzrune (Level 2)
Saddle=Sattel
Leather=Leder
Meat=Fleisch
Missed!=Daneben!
Mob Fence=Kreaturen Zaun
Mob Fence Top=Kreaturen Zaun Oberteil
Mob Reset Stick=Kreatur reset Stock
Meat Block=Fleischblock
Raw Meat Block=Rohfleisch Blokc
Enter texture:=Textur eingeben:
Change=Ändern
Mob Spawner=Kreaturenspawner
(mob name) (min light) (max light) (amount) (player distance) (Y offset)=(Kreaturenname) (Min. Licht) (Max. Licht) (Anzahl) (Spielerabstand) (Y-Offset)
Command:=Befehl:
Spawner Not Active (enter settings)=Nicht aktiv (Einstellungen eingeben)
Spawner Active (@1)=Spawner aktiv (@1)
#Mob Fence Top=
Mob Protection Rune=Kreaturschutzrune
#Mob Reset Stick=
#Mob Spawner=
Mob Spawner settings failed!=Kreaturenspawner-Einstellungen gescheitert!
Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
Mob has been protected!=Kreatur wurde geschützt!
Name Tag=Namensschild
Net (right-click animal to put in inventory)=Netz (Rechtsklick auf Tier, um es zu nehmen)
Not tamed!=Nicht gezähmt!
Raw Meat=Rohes Fleisch
Rename=Umbenennen
Saddle=Sattel
Spawner Active (@1)=Spawner aktiv (@1)
Spawner Not Active (enter settings)=Nicht aktiv (Einstellungen eingeben)
Steel Shears (right-click to shear)=Stahlschere (Rechtsklick zum Scheren)
#Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#lifetimer expired, removed @1=

View File

@ -1,38 +1,34 @@
# textdomain: mobs
** Peaceful Mode Active - No Monsters Will Spawn=
Active Mob Limit Reached!=
Mob has been protected!=
@1 (Tamed)=
Not tamed!=
@1 is owner!=
Missed!=
Already protected!=
@1 has been tamed!=
@1 follows:=
@1 mobs removed.=
Enter name:=
Rename=
Name Tag=
Leather=
Raw Meat=
Meat=
Lasso (right-click animal to put in inventory)=
Net (right-click animal to put in inventory)=
Steel Shears (right-click to shear)=
Mob Protection Rune=
Mob Protection Rune (Level 2)=
Saddle=
Mob Fence=
Mob Fence Top=
Mob Reset Stick=
Meat Block=
Raw Meat Block=
Enter texture:=
Change=
Mob Spawner=
(mob name) (min light) (max light) (amount) (player distance) (Y offset)=
Command:=
Spawner Not Active (enter settings)=
Spawner Active (@1)=
Mob Spawner settings failed!=
Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
# textdomain:mobs
#** Peaceful Mode Active - No Monsters Will Spawn=
#@1 (Tamed)=
#@1 at full health (@2)=
#@1 has been tamed!=
#@1 is owner!=
#Active Mob Limit Reached!=
#Already protected!=
#Change=
#Command:=
#Enter name:=
#Enter texture:=
#Lasso (right-click animal to put in inventory)=
#Leather=
#Meat=
#Missed!=
#Mob Fence=
#Mob Fence Top=
#Mob Protection Rune=
#Mob Reset Stick=
#Mob Spawner=
#Mob Spawner settings failed!=
#Mob has been protected!=
#Name Tag=
#Net (right-click animal to put in inventory)=
#Not tamed!=
#Raw Meat=
#Rename=
#Saddle=
#Spawner Active (@1)=
#Spawner Not Active (enter settings)=
#Steel Shears (right-click to shear)=
#Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#lifetimer expired, removed @1=

View File

@ -1,38 +1,34 @@
# textdomain: mobs
** Peaceful Mode Active - No Monsters Will Spawn=
Active Mob Limit Reached!=
Mob has been protected!=El mob ha sido protegido!
# textdomain:mobs
#** Peaceful Mode Active - No Monsters Will Spawn=
@1 (Tamed)=@1 (Domesticado)
Not tamed!=No domesticado!
@1 is owner!=@1 es el dueño!
Missed!=Perdido!
Already protected!=Ya está protegido!
@1 at full health (@2)=@1 con salud llena (@2)
@1 has been tamed!=@1 ha sido domesticado!
@1 follows:=
@1 mobs removed.=
@1 is owner!=@1 es el dueño!
#Active Mob Limit Reached!=
Already protected!=Ya está protegido!
#Change=
#Command:=
Enter name:=Ingrese nombre:
Rename=Renombrar
Name Tag=Nombrar etiqueta
Leather=Cuero
Raw Meat=Carne cruda
Meat=Carne
#Enter texture:=
Lasso (right-click animal to put in inventory)=Lazo (click derecho en animal para colocar en inventario)
Net (right-click animal to put in inventory)=Red (click derecho en animal para colocar en inventario)
Steel Shears (right-click to shear)=Tijera de acero (click derecho para esquilar)
Leather=Cuero
Meat=Carne
Missed!=Perdido!
#Mob Fence=
#Mob Fence Top=
Mob Protection Rune=Runa de protección de Mob
Mob Protection Rune (Level 2)=
Saddle=Montura
Mob Fence=
Mob Fence Top=
Mob Reset Stick=
Meat Block=
Raw Meat Block=
Enter texture:=
Change=
Mob Spawner=
(mob name) (min light) (max light) (amount) (player distance) (Y offset)=
Command:=
Spawner Not Active (enter settings)=Generador no activo (ingrese config)
Spawner Active (@1)=Generador activo (@1)
#Mob Reset Stick=
#Mob Spawner=
Mob Spawner settings failed!=Configuracion de generador de Mob falló!
Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
Mob has been protected!=El mob ha sido protegido!
Name Tag=Nombrar etiqueta
Net (right-click animal to put in inventory)=Red (click derecho en animal para colocar en inventario)
Not tamed!=No domesticado!
Raw Meat=Carne cruda
Rename=Renombrar
Saddle=Montura
Spawner Active (@1)=Generador activo (@1)
Spawner Not Active (enter settings)=Generador no activo (ingrese config)
Steel Shears (right-click to shear)=Tijera de acero (click derecho para esquilar)
#Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#lifetimer expired, removed @1=

View File

@ -1,38 +1,34 @@
# textdomain: mobs
# textdomain:mobs
** Peaceful Mode Active - No Monsters Will Spawn=** Mode pacifique activé - aucun monstre ne sera généré
Active Mob Limit Reached!=Limite atteinte du nombre des êtres vivants actifs !
Mob has been protected!=L'animal a été protégé !
@1 (Tamed)=@1 (apprivoisé)
Not tamed!=Non-apprivoisé !
@1 is owner!=Appartient à @1 !
Missed!=Raté !
Already protected!=Déjà protégé !
@1 at full health (@2)=@1 est en pleine forme (@2)
@1 has been tamed!=@1 a été apprivoisé !
@1 follows:=
@1 mobs removed.=
@1 is owner!=Appartient à @1 !
Active Mob Limit Reached!=Limite atteinte du nombre des êtres vivants actifs !
Already protected!=Déjà protégé !
Change=Changer
Command:=Commande :
Enter name:=Saisissez un nom :
Rename=Renommer
Name Tag=Étiquette de collier
Leather=Cuir
Raw Meat=Viande crue
Meat=Viande
Enter texture:=Saisissez une texture :
Lasso (right-click animal to put in inventory)=Lasso (clic droit sur l'animal pour le mettre dans l'inventaire)
Net (right-click animal to put in inventory)=Filet (clic droit sur l'animal pour le mettre dans l'inventaire)
Steel Shears (right-click to shear)=Ciseaux à laine (clic droit pour tondre)
Mob Protection Rune=Rune de protection des animaux
Mob Protection Rune (Level 2)=
Saddle=Selle
Leather=Cuir
Meat=Viande
Missed!=Raté !
Mob Fence= Clôture à animaux
Mob Fence Top=Haut de clôture à animaux
Mob Protection Rune=Rune de protection des animaux
Mob Reset Stick=Baguette de réinitialisation des êtres vivants
Meat Block=
Raw Meat Block=
Enter texture:=Saisissez une texture :
Change=Changer
Mob Spawner=Créateur d'êtres vivants
(mob name) (min light) (max light) (amount) (player distance) (Y offset)=
Command:=Commande :
Spawner Not Active (enter settings)=Créateur non actif (entrez les paramètres)
Spawner Active (@1)=Créateur actif (@1)
Mob Spawner settings failed!=Échec des paramètres du créateur d'être vivants !
Mob has been protected!=L'animal a été protégé !
Name Tag=Étiquette de collier
Net (right-click animal to put in inventory)=Filet (clic droit sur l'animal pour le mettre dans l'inventaire)
Not tamed!=Non-apprivoisé !
Raw Meat=Viande crue
Rename=Renommer
Saddle=Selle
Spawner Active (@1)=Créateur actif (@1)
Spawner Not Active (enter settings)=Créateur non actif (entrez les paramètres)
Steel Shears (right-click to shear)=Ciseaux à laine (clic droit pour tondre)
Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=Syntaxe : «name min_lumière[0-14] max_lumière[0-14] max_être_vivant_dans_région[0 pour désactiver] distance_joueur[1-20] décalage_y[-10 to 10]»
lifetimer expired, removed @1=Être immortel expiré ; @1 retiré

View File

@ -1,38 +1,34 @@
# textdomain: mobs
# textdomain:mobs
** Peaceful Mode Active - No Monsters Will Spawn=** Modalità pacifica attiva - non comparirà nessun mostro
Active Mob Limit Reached!=
Mob has been protected!=Il mob è stato protetto!
@1 (Tamed)=@1 (Addomesticato)
Not tamed!=Non addomesticato!
@1 is owner!=Il padrone è @1!
Missed!=Mancato!
Already protected!=Già protetto!
@1 at full health (@2)=@1 in piena salute (@2)
@1 has been tamed!=@1 è stato addomesticato!
@1 follows:=
@1 mobs removed.=
@1 is owner!=Il padrone è @1!
#Active Mob Limit Reached!=
Already protected!=Già protetto!
#Change=
#Command:=
Enter name:=Inserire il nome:
Rename=Rinomina
Name Tag=Targhetta
Leather=Pelle
Raw Meat=Carne cruda
Meat=Carne
#Enter texture:=
Lasso (right-click animal to put in inventory)=Lazo (click di destro per mettere l'animale nell'inventario)
Net (right-click animal to put in inventory)=Rete (click destro per mettere l'animale nell'inventario)
Steel Shears (right-click to shear)=Cesoie d'acciaio (click destro per tosare)
Mob Protection Rune=Runa di protezione per mob
Mob Protection Rune (Level 2)=
Saddle=Sella
Leather=Pelle
Meat=Carne
Missed!=Mancato!
Mob Fence=Recinzione per mob
Mob Fence Top=
Mob Reset Stick=
Meat Block=
Raw Meat Block=
Enter texture:=
Change=
Mob Spawner=
(mob name) (min light) (max light) (amount) (player distance) (Y offset)=
Command:=
Spawner Not Active (enter settings)=Generatore inattivo (inserire le impostazioni)
Spawner Active (@1)=Generatore attivo (@1)
#Mob Fence Top=
Mob Protection Rune=Runa di protezione per mob
#Mob Reset Stick=
#Mob Spawner=
Mob Spawner settings failed!=Impostazioni del generatore di mob fallite!
Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
Mob has been protected!=Il mob è stato protetto!
Name Tag=Targhetta
Net (right-click animal to put in inventory)=Rete (click destro per mettere l'animale nell'inventario)
Not tamed!=Non addomesticato!
Raw Meat=Carne cruda
Rename=Rinomina
Saddle=Sella
Spawner Active (@1)=Generatore attivo (@1)
Spawner Not Active (enter settings)=Generatore inattivo (inserire le impostazioni)
Steel Shears (right-click to shear)=Cesoie d'acciaio (click destro per tosare)
#Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#lifetimer expired, removed @1=

View File

@ -1,38 +1,34 @@
# textdomain: mobs
# textdomain:mobs
** Peaceful Mode Active - No Monsters Will Spawn=** Mod Aman Diaktifkan - Tiada Raksasa Akan Muncul
Active Mob Limit Reached!=
Mob has been protected!=Mob telah pun dilindungi!
@1 (Tamed)=@1 (Jinak)
Not tamed!=Belum dijinakkan!
@1 is owner!=Ini hak milik @1!
Missed!=Terlepas!
Already protected!=Telah dilindungi!
@1 at full health (@2)=Mata kesihatan @1 telah penuh (@2)
@1 has been tamed!=@1 telah dijinakkan!
@1 follows:=
@1 mobs removed.=
@1 is owner!=Ini hak milik @1!
#Active Mob Limit Reached!=
Already protected!=Telah dilindungi!
#Change=
#Command:=
Enter name:=Masukkan nama:
Rename=Namakan semula
Name Tag=Tanda Nama
Leather=Kulit
Raw Meat=Daging Mentah
Meat=Daging Bakar
#Enter texture:=
Lasso (right-click animal to put in inventory)=Tanjul (klik-kanan haiwan untuk masukkan ke inventori)
Net (right-click animal to put in inventory)=Jaring (klik-kanan haiwan untuk masukkan ke inventori)
Steel Shears (right-click to shear)=Ketam Keluli (klik-kanan untuk mengetam bulu biri-biri)
Mob Protection Rune=Rune Perlindungan Mob
Mob Protection Rune (Level 2)=
Saddle=Pelana
Leather=Kulit
Meat=Daging Bakar
Missed!=Terlepas!
Mob Fence=Pagar Mob
Mob Fence Top=
Mob Reset Stick=
Meat Block=
Raw Meat Block=
Enter texture:=
Change=
Mob Spawner=
(mob name) (min light) (max light) (amount) (player distance) (Y offset)=
Command:=
Spawner Not Active (enter settings)=Pewujud Mob Tidak Aktif (masukkan tetapan)
Spawner Active (@1)=Pewujud Mob Aktif (@1)
#Mob Fence Top=
Mob Protection Rune=Rune Perlindungan Mob
#Mob Reset Stick=
#Mob Spawner=
Mob Spawner settings failed!=Penetapan Pewujud Mob gagal!
Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
Mob has been protected!=Mob telah pun dilindungi!
Name Tag=Tanda Nama
Net (right-click animal to put in inventory)=Jaring (klik-kanan haiwan untuk masukkan ke inventori)
Not tamed!=Belum dijinakkan!
Raw Meat=Daging Mentah
Rename=Namakan semula
Saddle=Pelana
Spawner Active (@1)=Pewujud Mob Aktif (@1)
Spawner Not Active (enter settings)=Pewujud Mob Tidak Aktif (masukkan tetapan)
Steel Shears (right-click to shear)=Ketam Keluli (klik-kanan untuk mengetam bulu biri-biri)
#Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#lifetimer expired, removed @1=

View File

@ -1,38 +1,34 @@
# textdomain: mobs
** Peaceful Mode Active - No Monsters Will Spawn=
Active Mob Limit Reached!=
Mob has been protected!=
@1 (Tamed)=
Not tamed!=Indomesticado!
@1 is owner!=Dono @1!
Missed!=Faltou!
Already protected!=
# textdomain:mobs
#** Peaceful Mode Active - No Monsters Will Spawn=
#@1 (Tamed)=
@1 at full health (@2)=@1 em plena saude (@2)
@1 has been tamed!=@1 foi domesticado!
@1 follows:=
@1 mobs removed.=
@1 is owner!=Dono @1!
#Active Mob Limit Reached!=
#Already protected!=
#Change=
#Command:=
Enter name:=Insira um nome:
Rename=Renomear
Name Tag=Etiqueta
Leather=Couro
Raw Meat=Carne crua
Meat=Carne
#Enter texture:=
Lasso (right-click animal to put in inventory)=Laço (clique-direito no animal para por no inventario)
Net (right-click animal to put in inventory)=Net (clique-direito no animal para por no inventario)
Steel Shears (right-click to shear)=Tesoura de Aço (clique-direito para tosquiar)
Mob Protection Rune=
Mob Protection Rune (Level 2)=
Saddle=
Mob Fence=
Mob Fence Top=
Mob Reset Stick=
Meat Block=
Raw Meat Block=
Enter texture:=
Change=
Mob Spawner=
(mob name) (min light) (max light) (amount) (player distance) (Y offset)=
Command:=
Spawner Not Active (enter settings)=Spawnador Inativo (configurar)
Spawner Active (@1)=Spawnador Ativo (@1)
Leather=Couro
Meat=Carne
Missed!=Faltou!
#Mob Fence=
#Mob Fence Top=
#Mob Protection Rune=
#Mob Reset Stick=
#Mob Spawner=
Mob Spawner settings failed!=Configuraçao de Spawnador do Mob falhou!
Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#Mob has been protected!=
Name Tag=Etiqueta
Net (right-click animal to put in inventory)=Net (clique-direito no animal para por no inventario)
Not tamed!=Indomesticado!
Raw Meat=Carne crua
Rename=Renomear
#Saddle=
Spawner Active (@1)=Spawnador Ativo (@1)
Spawner Not Active (enter settings)=Spawnador Inativo (configurar)
Steel Shears (right-click to shear)=Tesoura de Aço (clique-direito para tosquiar)
#Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#lifetimer expired, removed @1=

View File

@ -1,38 +1,34 @@
# textdomain: mobs
# textdomain:mobs
** Peaceful Mode Active - No Monsters Will Spawn=** Мирный модус активирован - монстры не спаунятся
Active Mob Limit Reached!=
Mob has been protected!=Моб защищен!
@1 (Tamed)=@1 (Прирученный)
Not tamed!=Не прирученный
@1 is owner!=@1 владелец
Missed!=Промазал!
Already protected!=Уже защищен!
@1 at full health (@2)=@1 при полном здоровье (@2)
@1 has been tamed!=@1 приручен
@1 follows:=
@1 mobs removed.=
@1 is owner!=@1 владелец
#Active Mob Limit Reached!=
Already protected!=Уже защищен!
#Change=
#Command:=
Enter name:=Введите имя:
Rename=Переименовать
Name Tag=Новый тэг
Leather=Кожа
Raw Meat=Сырое мясо
Meat=Мясо
#Enter texture:=
Lasso (right-click animal to put in inventory)=Лассо (Правый клик - положить животное в инвентарь)
Net (right-click animal to put in inventory)=Сеть (Правый клик - положить животное в инвентарь)
Steel Shears (right-click to shear)=Ножницы (Правый клик - подстричь)
Mob Protection Rune=Защитная руна мобов
Mob Protection Rune (Level 2)=
Saddle=Седло
Leather=Кожа
Meat=Мясо
Missed!=Промазал!
Mob Fence=Забор от мобов
Mob Fence Top=
Mob Reset Stick=
Meat Block=
Raw Meat Block=
Enter texture:=
Change=
Mob Spawner=
(mob name) (min light) (max light) (amount) (player distance) (Y offset)=
Command:=
Spawner Not Active (enter settings)=Спаунер не активен (введите настройки)
Spawner Active (@1)=Активные спаунер (@1)
#Mob Fence Top=
Mob Protection Rune=Защитная руна мобов
#Mob Reset Stick=
#Mob Spawner=
Mob Spawner settings failed!=Настройки спаунера моба провалились
Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
Mob has been protected!=Моб защищен!
Name Tag=Новый тэг
Net (right-click animal to put in inventory)=Сеть (Правый клик - положить животное в инвентарь)
Not tamed!=Не прирученный
Raw Meat=Сырое мясо
Rename=Переименовать
Saddle=Седло
Spawner Active (@1)=Активные спаунер (@1)
Spawner Not Active (enter settings)=Спаунер не активен (введите настройки)
Steel Shears (right-click to shear)=Ножницы (Правый клик - подстричь)
#Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#lifetimer expired, removed @1=

View File

@ -1,38 +1,34 @@
# textdomain: mobs
** Peaceful Mode Active - No Monsters Will Spawn=
Active Mob Limit Reached!=
Mob has been protected!=
@1 (Tamed)=
Not tamed!=Evcil değil!
@1 is owner!=Sahibi @1!
Missed!=Kaçırdın!
Already protected!=
# textdomain:mobs
#** Peaceful Mode Active - No Monsters Will Spawn=
#@1 (Tamed)=
@1 at full health (@2)=@1 tam canında (@2)
@1 has been tamed!=@1 tamamen evcilleştirilmiştir!
@1 follows:=
@1 mobs removed.=
@1 is owner!=Sahibi @1!
#Active Mob Limit Reached!=
#Already protected!=
#Change=
#Command:=
Enter name:=İsim gir:
Rename=Yeniden adlandır
Name Tag=İsim etiketi
Leather=Deri
Raw Meat=Çiğ et
Meat=Et
#Enter texture:=
Lasso (right-click animal to put in inventory)=Kement (hayvana sağ tıklayarak envantere koy)
Net (right-click animal to put in inventory)=Ağ (hayvana sağ tıklayarak envantere koy)
Steel Shears (right-click to shear)=Çelik makas (sağ tıklayarak kes)
Mob Protection Rune=
Mob Protection Rune (Level 2)=
Saddle=
Leather=Deri
Meat=Et
Missed!=Kaçırdın!
Mob Fence=Canavar Yaratıcı
Mob Fence Top=
Mob Reset Stick=
Meat Block=
Raw Meat Block=
Enter texture:=
Change=
Mob Spawner=
(mob name) (min light) (max light) (amount) (player distance) (Y offset)=
Command:=
Spawner Not Active (enter settings)=Yaratıcı aktif değil (ayarlara gir)
Spawner Active (@1)=Yaratıcı aktif (@1)
#Mob Fence Top=
#Mob Protection Rune=
#Mob Reset Stick=
#Mob Spawner=
Mob Spawner settings failed!=Yaratıcı ayarları uygulanamadı.
Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#Mob has been protected!=
Name Tag=İsim etiketi
Net (right-click animal to put in inventory)=Ağ (hayvana sağ tıklayarak envantere koy)
Not tamed!=Evcil değil!
Raw Meat=Çiğ et
Rename=Yeniden adlandır
#Saddle=
Spawner Active (@1)=Yaratıcı aktif (@1)
Spawner Not Active (enter settings)=Yaratıcı aktif değil (ayarlara gir)
Steel Shears (right-click to shear)=Çelik makas (sağ tıklayarak kes)
#Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#lifetimer expired, removed @1=

View File

@ -1,38 +1,34 @@
# textdomain: mobs
# textdomain:mobs
** Peaceful Mode Active - No Monsters Will Spawn=** 和平模式已激活——没有怪物会产生
Active Mob Limit Reached!=
Mob has been protected!=Mob 已经被保护了!
@1 (Tamed)=@1已驯服
Not tamed!=没有驯服!
@1 is owner!=@1 是主人
Missed!=没抓住!
Already protected!=已经被保护!
@1 at full health (@2)=@1已经满血@2
@1 has been tamed!=@1已经被驯服
@1 follows:=
@1 mobs removed.=
@1 is owner!=@1 是主人
#Active Mob Limit Reached!=
Already protected!=已经被保护!
#Change=
#Command:=
Enter name:=输入名称:
Rename=重新命名
Name Tag=名称标签
Leather=皮革
Raw Meat=生肉
Meat=肉
#Enter texture:=
Lasso (right-click animal to put in inventory)=套索(右键单击动物以放入物品栏)
Net (right-click animal to put in inventory)=网(右键单击动物以放入物品栏)
Steel Shears (right-click to shear)=钢剪(右键单击以剪切)
Mob Protection Rune=Mob 保护符文
Mob Protection Rune (Level 2)=
Saddle=鞍
Leather=皮革
Meat=肉
Missed!=没抓住!
Mob Fence=Mob 栅栏
Mob Fence Top=
Mob Reset Stick=
Meat Block=
Raw Meat Block=
Enter texture:=
Change=
Mob Spawner=
(mob name) (min light) (max light) (amount) (player distance) (Y offset)=
Command:=
Spawner Not Active (enter settings)=孵化器未使用(输入设置)
Spawner Active (@1)=孵化器正在运转(@1
#Mob Fence Top=
Mob Protection Rune=Mob 保护符文
#Mob Reset Stick=
#Mob Spawner=
Mob Spawner settings failed!=Mob 孵化器设置失败!
Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
Mob has been protected!=Mob 已经被保护了!
Name Tag=名称标签
Net (right-click animal to put in inventory)=网(右键单击动物以放入物品栏)
Not tamed!=没有驯服!
Raw Meat=生肉
Rename=重新命名
Saddle=鞍
Spawner Active (@1)=孵化器正在运转(@1
Spawner Not Active (enter settings)=孵化器未使用(输入设置)
Steel Shears (right-click to shear)=钢剪(右键单击以剪切)
#Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#lifetimer expired, removed @1=

View File

@ -1,38 +1,34 @@
# textdomain: mobs
# textdomain:mobs
** Peaceful Mode Active - No Monsters Will Spawn=** 和平模式已激活——沒有怪物會產生
Active Mob Limit Reached!=
Mob has been protected!=Mob 已經被保護了!
@1 (Tamed)=@1已馴服
Not tamed!=沒有馴服!
@1 is owner!=@1 是主人
Missed!=沒抓住!
Already protected!=已經被保護!
@1 at full health (@2)=@1已經滿血@2
@1 has been tamed!=@1已經被馴服
@1 follows:=
@1 mobs removed.=
@1 is owner!=@1 是主人
#Active Mob Limit Reached!=
Already protected!=已經被保護!
#Change=
#Command:=
Enter name:=輸入名稱:
Rename=重新命名
Name Tag=名稱標籤
Leather=皮革
Raw Meat=生肉
Meat=肉
#Enter texture:=
Lasso (right-click animal to put in inventory)=套索(右鍵單擊動物以放入物品欄)
Net (right-click animal to put in inventory)=網(右鍵單擊動物以放入物品欄)
Steel Shears (right-click to shear)=鋼剪(右鍵單擊以剪切)
Mob Protection Rune=Mob 保護符文
Mob Protection Rune (Level 2)=
Saddle=鞍
Leather=皮革
Meat=肉
Missed!=沒抓住!
Mob Fence=Mob 柵欄
Mob Fence Top=
Mob Reset Stick=
Meat Block=
Raw Meat Block=
Enter texture:=
Change=
Mob Spawner=
(mob name) (min light) (max light) (amount) (player distance) (Y offset)=
Command:=
Spawner Not Active (enter settings)=孵化器未使用(輸入設置)
Spawner Active (@1)=孵化器正在運轉(@1
#Mob Fence Top=
Mob Protection Rune=Mob 保護符文
#Mob Reset Stick=
#Mob Spawner=
Mob Spawner settings failed!=Mob 孵化器設置失敗!
Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
Mob has been protected!=Mob 已經被保護了!
Name Tag=名稱標籤
Net (right-click animal to put in inventory)=網(右鍵單擊動物以放入物品欄)
Not tamed!=沒有馴服!
Raw Meat=生肉
Rename=重新命名
Saddle=鞍
Spawner Active (@1)=孵化器正在運轉(@1
Spawner Not Active (enter settings)=孵化器未使用(輸入設置)
Steel Shears (right-click to shear)=鋼剪(右鍵單擊以剪切)
#Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] player_distance[1-20] y_offset[-10 to 10]”=
#lifetimer expired, removed @1=

View File

@ -1,15 +1,18 @@
lucky_block:add_blocks({
{"dro", {"mobs:meat_raw"}, 5},
{"dro", {"mobs:meat"}, 5},
{"dro", {"mobs:nametag"}, 1},
{"dro", {"mobs:leather"}, 5},
{"dro", {"default:stick"}, 10},
{"dro", {"mobs:net"}, 1},
{"dro", {"mobs:lasso"}, 1},
{"dro", {"mobs:shears"}, 1},
{"dro", {"mobs:protector"}, 1},
{"dro", {"mobs:fence_wood"}, 10},
{"dro", {"mobs:fence_top"}, 12},
{"lig"}
})
if minetest.get_modpath("lucky_block") then
lucky_block:add_blocks({
{"dro", {"mobs:meat_raw"}, 5},
{"dro", {"mobs:meat"}, 5},
{"dro", {"mobs:nametag"}, 1},
{"dro", {"mobs:leather"}, 5},
{"dro", {"default:stick"}, 10},
{"dro", {"mobs:net"}, 1},
{"dro", {"mobs:lasso"}, 1},
{"dro", {"mobs:shears"}, 1},
{"dro", {"mobs:protector"}, 1},
{"dro", {"mobs:fence_wood"}, 10},
{"dro", {"mobs:fence_top"}, 12},
{"lig"}
})
end

View File

@ -1,5 +1,4 @@
name = mobs
depends =default
optional_depends = tnt, player_api, dye, farming, invisibility, intllib, lucky_block, cmi, toolranks, pathfinder, mtobjid
description = MOBS api for mobs to add animals or monsters etc
optional_depends = tnt, player_api, invisibility, intllib, lucky_block, cmi, toolranks, pathfinder, mtobjid
min_minetest_version = 5.0

View File

@ -1,10 +1,8 @@
-- lib_mount by Blert2112 (edited by TenPlus1)
local is_pa = minetest.get_modpath("player_api") -- 5.x compatibility
local is_mc2 = minetest.get_modpath("mcl_mobs") -- MineClone2 check
-- one of these is needed to ride mobs, otherwise no riding for you
if not minetest.get_modpath("default") and not is_pa and not is_mc2 then
--[[ one of these is needed (for now) to ride mobs, otherwise no riding for you
if not minetest.get_modpath("default")
or not minetest.get_modpath("player_api") then
function mobs.attach() end
function mobs.detach() end
@ -13,6 +11,10 @@ if not minetest.get_modpath("default") and not is_pa and not is_mc2 then
return
end
]]
local is_pa = minetest.get_modpath("player_api") -- 5.x compatibility
local is_mc2 = minetest.get_modpath("mcl_mobs") -- MineClone2 compatibility
-- are we a real player ?
local function is_player(player)
@ -23,7 +25,7 @@ local function is_player(player)
return false
end
-- Localise some functions
local abs, cos, floor, sin, sqrt, pi =
math.abs, math.cos, math.floor, math.sin, math.sqrt, math.pi
@ -115,17 +117,15 @@ local function force_detach(player)
local name = player:get_player_name()
if is_mc2 then
if is_pa then
player_api.player_attached[name] = false
player_api.set_animation(player, "stand", 30)
elseif is_mc2 then
mcl_player.player_attached[player:get_player_name()] = false
mcl_player.player_set_animation(player, "stand", 30)
else
if is_pa then
player_api.player_attached[name] = false
player_api.set_animation(player, "stand", 30)
else
default.player_attached[name] = false
default.player_set_animation(player, "stand", 30)
end
end
player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0})
@ -209,14 +209,12 @@ function mobs.attach(entity, player)
force_detach(player)
if is_mc2 then
if is_pa then
player_api.player_attached[player:get_player_name()] = true
elseif is_mc2 then
mcl_player.player_attached[player:get_player_name()] = true
else
if is_pa then
player_api.player_attached[player:get_player_name()] = true
else
default.player_attached[player:get_player_name()] = true
end
end
player:set_attach(entity.object, "", attach_at, entity.player_rotation)
@ -233,14 +231,12 @@ function mobs.attach(entity, player)
if is_player(player) then
if is_mc2 then
if is_pa then
player_api.set_animation(player, "sit", 30)
elseif is_mc2 then
mcl_player.player_set_animation(player, "sit_mount" , 30)
else
if is_pa then
player_api.set_animation(player, "sit", 30)
else
default.player_set_animation(player, "sit", 30)
end
end
end
end)

View File

@ -4,7 +4,7 @@ MOBS REDO for MINETEST
This mod contains the API only for adding your own mobs into the world, so
please use the additional modpacks to add animals, monsters, and npcs.
https://codeberg.org/minenux/minetest-mod-mobs_redo
https://forum.minetest.net/viewtopic.php?f=11&t=9917
Information
-----------
@ -12,10 +12,6 @@ Information
Built from PilzAdam's original Simple Mobs with additional mobs by KrupnoPavel,
Zeg9, ExeterDad and AspireMint.
This mod is special one already compatible with older engines.. with backported
patches to work both in multicraft, minetest, mineclone and finetest, becouse
the tenplus1 only works in last minetest, admins will not wants to constant upgrades!
## Crafts
- **Nametag**. Can be crafted by paper, black dye, and string. Can be used

View File

@ -1,5 +1,5 @@
local S = mobs.translate
local S = mobs.intllib
-- are we a real player ?
@ -31,7 +31,8 @@ minetest.register_node("mobs:spawner", {
.. " (player distance) (Y offset)")
-- text entry formspec
meta:set_string("formspec", "size[10,3.5]"
meta:set_string("formspec",
"size[10,3.5]"
.. "label[0.15,0.5;" .. minetest.formspec_escape(head) .. "]"
.. "field[1,2.5;8.5,0.8;text;" .. S("Command:")
.. ";${command}]")

19
mods/mobs/textures/00.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/sh
set -eu
FIXED=0
for f in ./*.png; do
WARN="$(pngcrush -n -warn "$f" 2>&1)"
printf %s\\n "file = $f" "warn = $WARN"
case "$WARN" in
*'PCS illuminant is not D50'*|*'known incorrect sRGB profile'* )
pngcrush -s -ow -rem allb -reduce "$f"
FIXED=$((FIXED + 1))
;;
esac
pngquant -v -f --ext .png --quality 0-50 --speed 1 "$f"
done
printf %s\\n "$FIXED errors fixed"