[Modpack] 3D Armor [0.4.13] [minetest-3d_armor]

User avatar
stu
Member
 
Posts: 923
Joined: Sat Feb 02, 2013 02:51
Location: United Kingdom
GitHub: stujones11

by stu » Mon Apr 14, 2014 19:49

Achilles wrote:Nice update... but why are there now 6 boxes when there are only 5 types of armor???

It no longer matters where you put armor so there is nothing to stop you equipping more than one of a given type.
Only the highest priority slot for that type will be used and this is shown in the armor preview.

Also, I may eventually add support for capes, six slots would be necessary in that case.

btw, I just pushed some small fixes.
Last edited by stu on Mon Apr 14, 2014 19:57, edited 1 time in total.
 

User avatar
JPRuehmann
Member
 
Posts: 334
Joined: Fri Mar 21, 2014 21:40
Location: Germany

by JPRuehmann » Mon Apr 14, 2014 21:30

Hello
Incredible, You are great.
Thats Perfect onto a teeny weeny thing.
Is it normal that I can,t delete or move the Armor Pieces in my Inventory afterwards?
Thanks,
JPR
 

User avatar
stu
Member
 
Posts: 923
Joined: Sat Feb 02, 2013 02:51
Location: United Kingdom
GitHub: stujones11

by stu » Mon Apr 14, 2014 21:36

JPRuehmann wrote:Hello
Incredible, You are great.
Thats Perfect onto a teeny weeny thing.
Is it normal that I can,t delete or move the Armor Pieces in my Inventory afterwards?
Thanks,
JPR


Sorry I am not sure what you are trying to say but it sounds like that is not normal,
what version of minetest are you using and which inventory mod (if any)?
Last edited by stu on Mon Apr 14, 2014 21:45, edited 1 time in total.
 

User avatar
JPRuehmann
Member
 
Posts: 334
Joined: Fri Mar 21, 2014 21:40
Location: Germany

by JPRuehmann » Mon Apr 14, 2014 21:48

Yes the trash Field onthe right downward edge of the Craft Field.
I can put all the other stuff in the trash if I wont Spce by symply drag and drop them to the Trash bin.
only with the armor pieces I can´t do that.
I can rearange the Armor by dragging abd dropping the Items from one Slot to the other but with the Armor Icons they simply occupy one more slot in which way I get under some circumstances an Inventory that is full of Armor and can´t get any stuff further.
the only resolution then is to delete all items by clicking the trash Bin in the tool Bar.
Thanks,
 

User avatar
JPRuehmann
Member
 
Posts: 334
Joined: Fri Mar 21, 2014 21:40
Location: Germany

by JPRuehmann » Mon Apr 14, 2014 21:50

Huuu
I schoud get some Sleep.
Thanks,
 

User avatar
stu
Member
 
Posts: 923
Joined: Sat Feb 02, 2013 02:51
Location: United Kingdom
GitHub: stujones11

by stu » Mon Apr 14, 2014 22:15

Sorry, I am not able to reproduce this so I can only assume a version conflict somewhere.

Test setup:
minetest 0.4.9-stable (client & server)
latest unified inventory (git-master)

Anyone else experiencing this?
 

User avatar
JPRuehmann
Member
 
Posts: 334
Joined: Fri Mar 21, 2014 21:40
Location: Germany

by JPRuehmann » Tue Apr 15, 2014 09:06

I´now tested it with the minimal configuration
- 3d_armor
- shields
- wieldview
- unified_inventory
now the preview works as expected I didn´t realize that yesterday.
but if i add an Armor Item in creative mode I can´t throw it to the Trash.
In survival Mode it works as suspected. If I change then back to Creative I it works for the pld Armor Items, but if I add new then they got this problem to until I end the Game change to Survival start the Game end the Game set to Creative and start the Game.
With the rearangement of the Items it is the same.

Then I activate
- u_skins
Now the prview only shows the U_skins avatar but not the armor preview everything else is as described above.
Thanks,
JPR
 

User avatar
JPRuehmann
Member
 
Posts: 334
Joined: Fri Mar 21, 2014 21:40
Location: Germany

by JPRuehmann » Tue Apr 15, 2014 09:07

Oops.
Everything is the newest Version.
And I´ve created a new World for testing.
Thanks,
JPR
 

User avatar
Achilles
Member
 
Posts: 247
Joined: Sun Dec 15, 2013 11:55
Location: Excuse Me???? -_-
In-game: Achilles

by Achilles » Tue Apr 15, 2014 14:05

stu wrote:
Achilles wrote:Nice update... but why are there now 6 boxes when there are only 5 types of armor???

It no longer matters where you put armor so there is nothing to stop you equipping more than one of a given type.
Only the highest priority slot for that type will be used and this is shown in the armor preview.

Also, I may eventually add support for capes, six slots would be necessary in that case.

btw, I just pushed some small fixes.


Oh OK, thanks. What are the highest priority slots?
The Ironic Thing About Common Sense Is That It Isn't Very Common
 

User avatar
JPRuehmann
Member
 
Posts: 334
Joined: Fri Mar 21, 2014 21:40
Location: Germany
 

User avatar
stu
Member
 
Posts: 923
Joined: Sat Feb 02, 2013 02:51
Location: United Kingdom
GitHub: stujones11

by stu » Tue Apr 15, 2014 18:39

JPRuehmann wrote:Oops.
Everything is the newest Version.
And I´ve created a new World for testing.
Thanks,
JPR


I am still unable to reproduce this with either 0.4.9-stable or current dev, I even tried a build I have from about 2 months ago.
Looking around the boards I see you have had issues with quite a few mods, maybe there is something broken or non-standard in your installation. Sorry that I am unable to help you more at this stage.

On the other hand armor has no place in a creative game anyway, just my opinion, there is no reason why it should not work.

Achilles wrote:Oh OK, thanks. What are the highest priority slots?

Code: Select all
+---+---+
| 1 | 2 |
+---+---+
| 3 | 4 |
+---+---+
| 5 | 6 |
+---+---+

Position 1 is the highest prioriy
Last edited by stu on Tue Apr 15, 2014 21:26, edited 1 time in total.
 

User avatar
JPRuehmann
Member
 
Posts: 334
Joined: Fri Mar 21, 2014 21:40
Location: Germany

by JPRuehmann » Wed Apr 16, 2014 08:25

OK
Everything else works fine,
so i can live with it.
Thanks for your work.
 

User avatar
Achilles
Member
 
Posts: 247
Joined: Sun Dec 15, 2013 11:55
Location: Excuse Me???? -_-
In-game: Achilles

by Achilles » Thu Apr 17, 2014 08:17

stu wrote:
Achilles wrote:Oh OK, thanks. What are the highest priority slots?

Code: Select all
+---+---+
| 1 | 2 |
+---+---+
| 3 | 4 |
+---+---+
| 5 | 6 |
+---+---+

Position 1 is the highest prioriy


Thanks
Last edited by Achilles on Thu Apr 17, 2014 08:18, edited 1 time in total.
The Ironic Thing About Common Sense Is That It Isn't Very Common
 

NyankoSensei
Member
 
Posts: 14
Joined: Fri Feb 28, 2014 11:29

by NyankoSensei » Thu Apr 17, 2014 19:24

Game crash if i die and i'm without armor with armordrop active, idk if is only my issue
 

User avatar
stu
Member
 
Posts: 923
Joined: Sat Feb 02, 2013 02:51
Location: United Kingdom
GitHub: stujones11

by stu » Thu Apr 17, 2014 19:38

NyankoSensei wrote:Game crash if i die and i'm without armor with armordrop active, idk if is only my issue

What version of minetest are you using and what error message are you getting? (look near the end of debug.txt)
Last edited by stu on Thu Apr 17, 2014 19:39, edited 1 time in total.
 

NyankoSensei
Member
 
Posts: 14
Joined: Fri Feb 28, 2014 11:29

by NyankoSensei » Thu Apr 17, 2014 21:12

Error is this one

Code: Select all
20:28:39: ERROR[main]: ServerError: ...luca/.minetest/mods/minetest-3d_armor/3d_armor/armor.lua:388: attempt to call field 'get_formspec' (a nil value)
20:28:39: ERROR[main]: stack traceback:
20:28:39: ERROR[main]:     ...luca/.minetest/mods/minetest-3d_armor/3d_armor/armor.lua:388: in function <...luca/.minetest/mods/minetest-3d_armor/3d_armor/armor.lua:368>
20:28:39: ERROR[main]:     /opt/minetest/share/minetest/builtin/misc_register.lua:348: in function </opt/minetest/share/minetest/builtin/misc_register.lua:336>


Minetest last git
 

User avatar
stu
Member
 
Posts: 923
Joined: Sat Feb 02, 2013 02:51
Location: United Kingdom
GitHub: stujones11

by stu » Thu Apr 17, 2014 23:17

NyankoSensei wrote:Error is this one

Code: Select all
20:28:39: ERROR[main]: ServerError: ...luca/.minetest/mods/minetest-3d_armor/3d_armor/armor.lua:388: attempt to call field 'get_formspec' (a nil value)
20:28:39: ERROR[main]: stack traceback:
20:28:39: ERROR[main]:     ...luca/.minetest/mods/minetest-3d_armor/3d_armor/armor.lua:388: in function <...luca/.minetest/mods/minetest-3d_armor/3d_armor/armor.lua:368>
20:28:39: ERROR[main]:     /opt/minetest/share/minetest/builtin/misc_register.lua:348: in function </opt/minetest/share/minetest/builtin/misc_register.lua:336>


Minetest last git


I have just pushed a change that should hopefully fix this, I am just guessing here so please let me know the outcome if you try it.

Thank you for reporting this.
 

NyankoSensei
Member
 
Posts: 14
Joined: Fri Feb 28, 2014 11:29

by NyankoSensei » Sat Apr 19, 2014 08:04

Probably the problem is not related to your mod but to craftingpack, i have try it with only invetory-plus enabled and work fine.

Sorry for the mistake and tanks for the fast reply
 

User avatar
JPRuehmann
Member
 
Posts: 334
Joined: Fri Mar 21, 2014 21:40
Location: Germany

Re: [Modpack] minetest-3d_armor [0.4.1] [minetest-3d_armor]

by JPRuehmann » Mon Apr 21, 2014 06:47

Hello

I had the following Problem.
I use unified_inventory and modmenu with inventory_plus (compatibility mod)
3d_armor then thinks inventory_plus is installed an disables the Button in unified_inventory.
I made it work by adding a new setting to the armor.conf named INVENTORY and changed the if and elseif lines in the armor.lua.

-- You can use this to change the used Inventory.
-- INVENTORY = "unified_inventory" will use the unified Inventory.
INVENTORY = "unified_inventory"

changed armor.lua
Code: Select all
ARMOR_INIT_DELAY = 1
ARMOR_INIT_TIMES = 1
ARMOR_BONES_DELAY = 1
ARMOR_UPDATE_TIME = 1
ARMOR_DROP = true
ARMOR_DESTROY = false
ARMOR_LEVEL_MULTIPLIER = 1
ARMOR_HEAL_MULTIPLIER = 1
INVENTORY = "unified_inventory"

local modpath = minetest.get_modpath(ARMOR_MOD_NAME)
local input = io.open(modpath.."/armor.conf", "r")
if input then
   dofile(modpath.."/armor.conf")
   input:close()
   input = nil
end
local time = 0

armor = {
   player_hp = {},
   elements = {"head", "torso", "legs", "feet"},
   physics = {"jump","speed","gravity"},
   formspec = "size[8,8.5]list[detached:player_name_armor;armor;0,1;2,3;]"
      .."image[2,0.75;2,4;armor_preview]"
       .."list[current_player;main;0,4.5;8,4;]"
       .."list[current_player;craft;4,1;3,3;]"
       .."list[current_player;craftpreview;7,2;1,1;]",
   textures = {},
   default_skin = "character",
}

if  INVENTORY == "inventory_plus" then
   armor.formspec = "size[8,8.5]button[0,0;2,0.5;main;Back]"
      .."list[detached:player_name_armor;armor;0,1;2,3;]"
      .."image[2.5,0.75;2,4;armor_preview]"
      .."label[5,1;Level: armor_level]"
      .."label[5,1.5;Heal:  armor_heal]"
      .."list[current_player;main;0,4.5;8,4;]"
elseif    INVENTORY == "unified_inventory" then
   unified_inventory.register_button("armor", {
      type = "image",
      image = "inventory_plus_armor.png",
   })
      unified_inventory.register_page("armor", {
      get_formspec = function(player)
         local name = player:get_player_name()
         local formspec = "background[0.06,0.99;7.92,7.52;3d_armor_ui_form.png]"
            .."label[0,0;Armor]"
            .."list[detached:"..name.."_armor;armor;0,1;2,3;]"
            .."image[2.5,0.75;2,4;"..armor.textures[name].preview.."]"
            .."label[5,1;Level: "..armor.def[name].level.."]"
            .."label[5,1.5;Heal:  "..armor.def[name].heal.."]"
         return {formspec=formspec}
      end,
   })   
end

armor.def = {
   state = 0,
   count = 0,
}

armor.update_player_visuals = function(self, player)
   if not player then
      return
   end
   local name = player:get_player_name()
   if self.textures[name] then
      default.player_set_textures(player, {
         self.textures[name].skin,
         self.textures[name].armor,
         self.textures[name].wielditem,
      })
   end
end

armor.set_player_armor = function(self, player)
   if not player then
      return
   end
   local name = player:get_player_name()
   local player_inv = player:get_inventory()
   local armor_texture = "3d_armor_trans.png"
   local armor_level = 0
   local armor_heal = 0
   local state = 0
   local items = 0
   local elements = {}
   local textures = {}
   local physics_o = {speed=1,gravity=1,jump=1}
   local material = {type=nil, count=1}
   local preview = armor:get_player_skin(name).."_preview.png"
   for _,v in ipairs(self.elements) do
      elements[v] = false
   end
   for i=1, 6 do
      local stack = player_inv:get_stack("armor", i)
      local item = stack:get_name()
      if stack:get_count() == 1 then
         local def = stack:get_definition()
         for k, v in pairs(elements) do
            if v == false then
               local level = def.groups["armor_"..k]
               if level then
                  local texture = item:gsub("%:", "_")
                  table.insert(textures, texture..".png")
                  preview = preview.."^"..texture.."_preview.png"
                  armor_level = armor_level + level
                  state = state + stack:get_wear()
                  items = items + 1
                  local heal = def.groups["armor_heal"] or 0
                  armor_heal = armor_heal + heal
                  for kk,vv in ipairs(self.physics) do                     
                     local o_value = def.groups["physics_"..vv]
                     if o_value then
                        physics_o[vv] = physics_o[vv] + o_value
                     end
                  end
                  local mat = string.match(item, "%:.+_(.+)$")
                  if material.type then
                     if material.type == mat then
                        material.count = material.count + 1
                     end
                  else
                     material.type = mat
                  end
                  elements[k] = true
               end
            end
         end
      end
   end
   if minetest.get_modpath("shields") then
      armor_level = armor_level * 0.9
   end
   if material.type and material.count == #self.elements then
      armor_level = armor_level * 1.1
   end
   armor_level = armor_level * ARMOR_LEVEL_MULTIPLIER
   armor_heal = armor_heal * ARMOR_HEAL_MULTIPLIER
   if #textures > 0 then
      armor_texture = table.concat(textures, "^")
   end
   local armor_groups = {fleshy=100}
   if armor_level > 0 then
      armor_groups.level = math.floor(armor_level / 20)
      armor_groups.fleshy = 100 - armor_level
   end
   player:set_armor_groups(armor_groups)
   player:set_physics_override(physics_o)
   self.textures[name].armor = armor_texture
   self.textures[name].preview = preview
   self.def[name].state = state
   self.def[name].count = items
   self.def[name].level = armor_level
   self.def[name].heal = armor_heal
   self:update_player_visuals(player)
end

armor.update_armor = function(self, player)
   if not player then
      return
   end
   local name = player:get_player_name()
   local hp = player:get_hp() or 0
   if hp == 0 or hp == self.player_hp[name] then
      return
   end
   if self.player_hp[name] > hp then
      local player_inv = player:get_inventory()
      local armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"})
      if not armor_inv then
         return
      end
      local heal_max = 0
      local state = 0
      local items = 0
      for i=1, 6 do
         local stack = player_inv:get_stack("armor", i)
         if stack:get_count() > 0 then
            local use = stack:get_definition().groups["armor_use"] or 0
            local heal = stack:get_definition().groups["armor_heal"] or 0
            local item = stack:get_name()
            stack:add_wear(use)
            armor_inv:set_stack("armor", i, stack)
            player_inv:set_stack("armor", i, stack)
            state = state + stack:get_wear()
            items = items + 1
            if stack:get_count() == 0 then
               local desc = minetest.registered_items[item].description
               if desc then
                  minetest.chat_send_player(name, "Your "..desc.." got destroyed!")
               end
               self:set_player_armor(player)
               armor:update_inventory(player)
            end
            heal_max = heal_max + heal
         end
      end
      self.def[name].state = state
      self.def[name].count = items
      heal_max = heal_max * ARMOR_HEAL_MULTIPLIER
      if heal_max > math.random(100) then
         player:set_hp(self.player_hp[name])
         return
      end
   end
   self.player_hp[name] = hp
end

armor.get_player_skin = function(self, name)
   local skin = nil
   if skins then
      skin = skins.skins[name]
   elseif u_skins then
      skin = u_skins.u_skins[name]
   end
   return skin or armor.default_skin
end

armor.get_armor_formspec = function(self, name)
   local formspec = armor.formspec:gsub("player_name", name)
   formspec = formspec:gsub("armor_preview", armor.textures[name].preview)
   formspec = formspec:gsub("armor_level", armor.def[name].level)
   return formspec:gsub("armor_heal", armor.def[name].heal)
end

armor.update_inventory = function(self, player)
   local name = player:get_player_name()
   if INVENTORY == "unified_inventory" then
      if unified_inventory.current_page[name] == "armor" then
         unified_inventory.set_inventory_formspec(player, "armor")
      end
   else
      local formspec = armor:get_armor_formspec(name)
      if INVENTORY == "inventory_plus" then
         local page = player:get_inventory_formspec()
         if page:find("detached:"..name.."_armor") then
            inventory_plus.set_inventory_formspec(player, formspec)
         end
      else
         player:set_inventory_formspec(formspec)
      end
   end
end

-- Register Player Model

default.player_register_model("3d_armor_character.x", {
   animation_speed = 30,
   textures = {
      armor.default_skin..".png",
      "3d_armor_trans.png",
      "3d_armor_trans.png",
   },
   animations = {
      stand = {x=0, y=79},
      lay = {x=162, y=166},
      walk = {x=168, y=187},
      mine = {x=189, y=198},
      walk_mine = {x=200, y=219},
      sit = {x=81, y=160},
   },
})

-- Register Callbacks

minetest.register_on_player_receive_fields(function(player, formname, fields)
   local name = player:get_player_name()
   if INVENTORY == "inventory_plus" and fields.armor then
      local formspec = armor:get_armor_formspec(name)
      inventory_plus.set_inventory_formspec(player, formspec)
      return
   end
   for field, _ in pairs(fields) do
      if string.find(field, "skins_set_") then
         minetest.after(0, function(player)
            local skin = armor:get_player_skin(name)
            armor.textures[name].skin = skin..".png"
            armor:set_player_armor(player)
         end, player)
      end
   end
end)

minetest.register_on_joinplayer(function(player)
   default.player_set_model(player, "3d_armor_character.x")
   local name = player:get_player_name()
   local player_inv = player:get_inventory()
   local armor_inv = minetest.create_detached_inventory(name.."_armor",{
      on_put = function(inv, listname, index, stack, player)
         player:get_inventory():set_stack(listname, index, stack)
         armor:set_player_armor(player)
         armor:update_inventory(player)
      end,
      on_take = function(inv, listname, index, stack, player)
         player:get_inventory():set_stack(listname, index, nil)
         armor:set_player_armor(player)
         armor:update_inventory(player)
      end,
      on_move = function(inv, from_list, from_index, to_list, to_index, count, player)
         local plaver_inv = player:get_inventory()
         local stack = inv:get_stack(to_list, to_index)
         player_inv:set_stack(to_list, to_index, stack)
         player_inv:set_stack(from_list, from_index, nil)
         armor:set_player_armor(player)
         armor:update_inventory(player)
      end,
      allow_put = function(inv, listname, index, stack, player)
         return 1
      end,
      allow_take = function(inv, listname, index, stack, player)
         return stack:get_count()
      end,
      allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
         return count
      end,
   })
   if INVENTORY == "inventory_plus" then
      inventory_plus.register_button(player,"armor", "Armor")
   end
   armor_inv:set_size("armor", 6)
   player_inv:set_size("armor", 6)
   for i=1, 6 do
      local stack = player_inv:get_stack("armor", i)
      armor_inv:set_stack("armor", i, stack)
   end   

   -- Legacy support, import player's armor from old inventory format
   for _,v in pairs(armor.elements) do
      local list = "armor_"..v
      armor_inv:add_item("armor", player_inv:get_stack(list, 1))
      player_inv:set_stack(list, 1, nil)
   end

   armor.player_hp[name] = 0
   armor.def[name] = {
      state = 0,
      count = 0,
      level = 0,
      heal = 0,
   }
   armor.textures[name] = {
      skin = armor.default_skin..".png",
      armor = "3d_armor_trans.png",
      wielditem = "3d_armor_trans.png",
      preview = armor.default_skin.."_preview.png",
   }
   if minetest.get_modpath("skins") then
      local skin = skins.skins[name]
      if skin and skins.get_type(skin) == skins.type.MODEL then
         armor.textures[name].skin = skin..".png"
      end
   elseif minetest.get_modpath("u_skins") then
      local skin = u_skins.u_skins[name]
      if skin and u_skins.get_type(skin) == u_skins.type.MODEL then
         armor.textures[name].skin = skin..".png"
      end
   end
   if minetest.get_modpath("player_textures") then
      local filename = minetest.get_modpath("player_textures").."/textures/player_"..name
      local f = io.open(filename..".png")
      if f then
         f:close()
         armor.textures[name].skin = "player_"..name..".png"
      end
   end
   for i=1, ARMOR_INIT_TIMES do
      minetest.after(ARMOR_INIT_DELAY * i, function(player)
         armor:set_player_armor(player)
         if inventory_plus == nil and unified_inventory == nil then
            armor:update_inventory(player)
         end
      end, player)
   end
end)

if ARMOR_DROP == true or ARMOR_DESTROY == true then
   minetest.register_on_dieplayer(function(player)
      local name = player:get_player_name()
      local pos = player:getpos()
      if name and pos then
         local drop = {}
         local player_inv = player:get_inventory()
         local armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"})
         for i=1, player_inv:get_size("armor") do
            local stack = armor_inv:get_stack("armor", i)
            if stack:get_count() > 0 then
               table.insert(drop, stack)
               armor_inv:set_stack("armor", i, nil)
               player_inv:set_stack("armor", i, nil)
            end
         end
         armor:set_player_armor(player)
         if unified_inventory then
            unified_inventory.set_inventory_formspec(player, "craft")
         elseif inventory_plus then
            local formspec = inventory_plus.get_formspec(player,"main")
            inventory_plus.set_inventory_formspec(player, formspec)
         else
            armor:update_inventory(player)
         end
         if ARMOR_DESTROY == false then
            if minetest.get_modpath("bones") then
               minetest.after(ARMOR_BONES_DELAY, function()
                  pos = vector.round(pos)
                  local node = minetest.get_node(pos)
                  if node.name == "bones:bones" then
                     local meta = minetest.get_meta(pos)
                     local owner = meta:get_string("owner")
                     local inv = meta:get_inventory()
                     if name == owner then
                        for _,stack in ipairs(drop) do
                           if inv:room_for_item("main", stack) then
                              inv:add_item("main", stack)
                           end
                        end
                     end
                  end
               end)
            else
               for _,stack in ipairs(drop) do
                  local obj = minetest.add_item(pos, stack)
                  if obj then
                     local x = math.random(1, 5)
                     if math.random(1,2) == 1 then
                        x = -x
                     end
                     local z = math.random(1, 5)
                     if math.random(1,2) == 1 then
                        z = -z
                     end
                     obj:setvelocity({x=1/x, y=obj:getvelocity().y, z=1/z})
                  end
               end
            end
         end
      end
   end)
end

minetest.register_globalstep(function(dtime)
   time = time + dtime
   if time > ARMOR_UPDATE_TIME then
      for _,player in ipairs(minetest.get_connected_players()) do
         armor:update_armor(player)
      end
      time = 0
   end
end)



Thanks,
JPR
 

Iqualfragile
Member
 
Posts: 160
Joined: Tue Sep 18, 2012 22:11
 

User avatar
stu
Member
 
Posts: 923
Joined: Sat Feb 02, 2013 02:51
Location: United Kingdom
GitHub: stujones11

Re: [Modpack] minetest-3d_armor [0.4.1] [minetest-3d_armor]

by stu » Mon Apr 21, 2014 18:22

Iqualfragile wrote:I left you a bug report on github

I assume this is happening when a player joins the server? I have now added a check that should prevent the crash, however, the player's armor will not be set in such a case. You may also need to increase ARMOR_INIT_DELAY if you get initialization glitches (like armor not showing up on newly connected players)

Thank you for the bug report.

JPR: Thanks for letting me know, I may add something like this myself, it just never occurred to me that someone might use both inventory systems :-/
 

Amaz
Member
 
Posts: 348
Joined: Wed May 08, 2013 08:26
GitHub: Amaz1
IRC: Amaz
In-game: Amaz

Re: [Modpack] minetest-3d_armor [0.4.1] [minetest-3d_armor]

by Amaz » Mon May 05, 2014 21:43

There appears to be a bug with this and simple mobs. When I wear any armor, it instantly protects me against all mob attacks... It works fine in 0.4.9 stable, but in the dev build, this is a problem. And ideas on what may be causing it?
EDIT: Got it. I had put damage = 1 for a mob, and armor makes damage = 1 do nothing. Sorry.

And what does the armor_heal value do?
Anyway, this is a great mod!
 

User avatar
stu
Member
 
Posts: 923
Joined: Sat Feb 02, 2013 02:51
Location: United Kingdom
GitHub: stujones11

Re: [Modpack] minetest-3d_armor [0.4.1] [minetest-3d_armor]

by stu » Tue May 06, 2014 18:37

Amaz wrote:There appears to be a bug with this and simple mobs. When I wear any armor, it instantly protects me against all mob attacks... It works fine in 0.4.9 stable, but in the dev build, this is a problem. And ideas on what may be causing it?
EDIT: Got it. I had put damage = 1 for a mob, and armor makes damage = 1 do nothing. Sorry.

And what does the armor_heal value do?
Anyway, this is a great mod!


Thanks, armor_heal is a cumulative percentage chance the armor will restore some player health. I would really like to get rid of this but people tend to complain every time I try to remove something ;-)

Note that the current git master of 3d_armor provides config options to dumb down the armor level and/or disable the 'heal' feature.
 

Spartacuscat
New member
 
Posts: 9
Joined: Fri Nov 25, 2011 20:37

Re: [Modpack] minetest-3d_armor [0.4.1] [minetest-3d_armor]

by Spartacuscat » Sun May 11, 2014 00:53

Getting an error here, can't even load a new or old world when I have your mod turned on.

ERROR: ModError: Failed to load and run /home/My Name/.minetest/3d_armor/init.lua
 

User avatar
stu
Member
 
Posts: 923
Joined: Sat Feb 02, 2013 02:51
Location: United Kingdom
GitHub: stujones11

Re: [Modpack] minetest-3d_armor [0.4.1] [minetest-3d_armor]

by stu » Sun May 11, 2014 19:02

Spartacuscat wrote:Getting an error here, can't even load a new or old world when I have your mod turned on.

ERROR: ModError: Failed to load and run /home/My Name/.minetest/3d_armor/init.lua


You will need to provide a bit more information than that i'm afraid, pastebin the relevant section of your debug.txt file, also tell me what version of minetest and what version of this modpack you are using. It is important that you choose the correct one.
 

PreviousNext

Return to Mod Releases



Who is online

Users browsing this forum: No registered users and 21 guests