DE
dúvida

[Encerrado] Droops monstros no chao

Por Dersinho, 06 de abr. de 2014 em Tópicos Sem Resposta

script
4
629
DersinhoD
06 de abril de 2014 às 17:47

bom tenho um monstro que dropava loot no chao envolta dele mais ele esta dando esse erro alguem pode ajuda ?

 

[06/04/2014 17:43:14] [Error - CreatureScript Interface]
[06/04/2014 17:43:14] In a timer event called from:
[06/04/2014 17:43:14] data/creaturescripts/scripts/bossloot.lua:onDeath
[06/04/2014 17:43:14] Description:
[06/04/2014 17:43:14] data/creaturescripts/scripts/bossloot.lua:38: attempt to call global 'HasItemProperty' (a nil value)
[06/04/2014 17:43:14] stack traceback:
[06/04/2014 17:43:14] data/creaturescripts/scripts/bossloot.lua:38: in function 'isWalkable'
[06/04/2014 17:43:14] data/creaturescripts/scripts/bossloot.lua:7: in function <data/creaturescripts/scripts/bossloot.lua:1>

 

o script

 

local function doMoveLoot(pos, corpseId)
local corpse = getTileItemById(pos, corpseId)
local directions = {NORTH, EAST, SOUTH, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST}
local true_pos = {}
for _, dir in pairs(directions) do
local posi = getPosByDir(pos, dir)
if isWalkable(posi) then
table.insert(true_pos, posi)
end
end
if #true_pos == 0 then
table.insert(pos, true_pos)
end
local remaining_pos = true_pos
local maxLoops = getContainerSize(corpse.uid) * 2
repeat
local lootItem = getContainerItem(corpse.uid, 0).uid
maxLoops = maxLoops - 1
if lootItem > 0 then
local random = math.random(#remaining_pos)
local random_pos = remaining_pos[random]
doTeleportThing(lootItem, random_pos)
table.remove(remaining_pos, random)
if #remaining_pos == 0 then
remaining_pos = true_pos
end
else
break
end
until maxLoops <= 0
end

function isWalkable(pos)-- by Nord / editado por Omega
if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then
return false
elseif getTileInfo(pos).protection then
return false
elseif HasItemProperty(getThingFromPos(pos).uid, 3) or HasItemProperty(getThingFromPos(pos).uid, 7) then
return false
end
return true
end

function onDeath(monster, corpse, killers)
if not isContainer(corpse.uid) then return true end
addEvent(doMoveLoot, 5, getThingPos(monster), corpse.itemid)
return true
end

 

 

 

 

 

GstvoLiberG
08 de abril de 2014 às 13:18

Funcionava normalmente ? Você deve ter mexido em algo e deu erro, tenta voltar o script como estava antes de vc modificar.

DersinhoD
08 de abril de 2014 às 17:40

entao cara eu tinha esse script antes mudei a base pq nao era stavel antes funcionava agora da esse erro ai o script era aki do xtibia mais nao sei oque ouve fexarao a parada nao da nem pra min ver nem tira duvida i eu nao manjo

 

http://www.xtibia.com/forum/topic/222351-drop-dos-monstros-cair-no-chao/

 

se puder me ajuda agradeço desde ja!

4 anos depois...
StigalS
21 de abril de 2018 às 03:26
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.