Code: Select all
if self._mo then
self._mo:invalidate()
game.level.map:updateMap(self.x, self.y)
end
Moderator: Moderator
Code: Select all
if self._mo then
self._mo:invalidate()
game.level.map:updateMap(self.x, self.y)
end
<DarkGod> lets say it's intended
Code: Select all
self.body = target.body
self.inven = target.inven
self.inven_def = target.inven_def
Code: Select all
Lua Error: /engine/dialogs/ShowEquipInven.lua:181: bad argument #1 to 'ipairs' (table expected, got nil)
At [C]:-1
At [C]:-1 ipairs
At /engine/dialogs/ShowEquipInven.lua:181 generateList
At /engine/dialogs/ShowEquipInven.lua:35 init
At /engine/class.lua:64 new
At /engine/interface/ActorInventory.lua:220 showEquipInven
At /mod/class/Game.lua:739 ?
At /engine/KeyBind.lua:202
Ignoring any nuances of if the body table are compatible between the two actors, you can achieve a swap with the following code:Graziel wrote: I need to move all equipment from 1 entity to other, i got already to :Code: Select all
self.body = target.body self.inven = target.inven self.inven_def = target.inven_def
Code: Select all
self.body, target.body = target.body, self.body
self.inven, target.inven = target.inven, self.inven
self.inven_def, target.inven_def = target.inven_def, self.inven_def
<DarkGod> lets say it's intended
Code: Select all
self.body = target.body
local to, from = self.inven, target.inven --self:getInven("INVEN"), target:getInven("INVEN")
for inven_id = 1, #target.inven_def do
for item, o in ipairs(target.inven[inven_id]) do
local o = target:removeObject(from, item)
self:addObject(to, o)
end
end
Code: Select all
/engine/interface/ActorInventory.lua:155: in function 'removeObject'
Code: Select all
/engine/interface/ActorInventory.lua:90: in function 'addObject'
Code: Select all
for inven_id, inven in pairs(src.inven) do
for i = #inven, 1, -1 do
local o = src:removeObject(inven, i, true)
dest:addObject(inven_id, o)
end
end
Code: Select all
/engine/interface/ActorInventory.lua:90: in function 'addObject'
Code: Select all
self.body = target.body
Code: Select all
dest.inven = {}
for inven_id, inven in pairs(src.inven) do
local tmp = {}
for i = #inven, 1, -1 do
local o = src:removeObject(inven, i, true)
tmp[#tmp+1] = o
end
dest.inven[inven_id] = table.copy(inven, true)
for i = 1, #tmp do dest:addObject(inven_id, tmp[i]) end
desc:sortInven(inven_id)
end
Code: Select all
self.inven = {}
for inven_id, inven in pairs(target.inven) do
local tmp = {}
for i = #inven, 1, -1 do
local o = target:removeObject(inven, i, true)
tmp[#tmp+1] = o
end
self.inven[inven_id] = table:copy(inven, true)
for i = 1, #tmp do
self:addObject(inven_id, tmp[i])
end
self:sortInven(inven_id)
end
Code: Select all
self.inven[inven_id] = table:copy(inven, true)
Code: Select all
attempt to call field 'copy' (a nil value)
Code: Select all
newEntity{ base = "BASE_RING",
name = "Titan powered ring",
power_source = {arcane=true},
unique = true,
color = colors.UMBER,
image="object/artifact/ring_vargh_redemption.png",
unided_name = "strange ring",
desc = [[uneasy feeling emanates from this ring.]],
level_range = {0, 90},
greater_ego = 1,
rarity = 220,
cost = 999990,
Code: Select all
resolvers.inventory{ id=true, {type="jewelry", subtype="ring", ingore_material_restriction=true, name="Titan powered ring", ego_chance=1000}, },