Ir para conteúdo
  • 0

Dúvida em getItemsInContainerById


rorix

Pergunta

Galera, estava estudando esta função "getItemsInContainerById" para usar no meu server que estou criando...

function onMoveItem(moveItem, frompos, position, cid, toPosition)

if(isContainer(moveItem.uid)) then
doBroadcastMessage("reconheceu container!")
if #getItemsInContainerById(moveItem.uid, 1212) > 0 then
doBroadcastMessage("reconheceu item dentro!")
end

nesse script acima, se eu mover um item contaier (bag,backpack,bau), vai receber a mensagem reconheceu container.

Se eu mover um container (bag,backpack,bau), com o item 1212 dentro, vai aparecer "reconheceu item dentro"

 

o que eu quero fazer é adicionar mais items na lista de items (dentro do container), por exemplo:

local items = {1212, 1215, 1218, 1239}

function onMoveItem(moveItem, frompos, position, cid, toPosition)

if(isContainer(moveItem.uid)) then
doBroadcastMessage("reconheceu container!")
if #getItemsInContainerById(moveItem.uid, ITEMS) > 0 then
doBroadcastMessage("reconheceu item dentro!")
end

>>tentei fazer dessa maneira, mas está dando errado. Como eu faço para a parte ITEMS verificar toda a tabela de items?

>>quero fazer com que se o container tenha algum item da lista dentro dele, o container nao possa ser jogado no chao, jogado em house, possa apenas ser colocado no depot e ser movido na propria backpack do personagem

 

edit: tentei fazer por isInArray(iitems, moveItem.itemid), mas não obtive sucesso, não sei mexer muito com essa função

Editado por rorix
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
local items = {1212, 1215, 1218, 1239}


function onMoveItem(moveItem, frompos, position, cid, toPosition)


if(isContainer(moveItem.uid)) then

doBroadcastMessage("reconheceu container!")

if #getItemsInContainerById(moveItem.uid, #ITEMS) > 0 then

doBroadcastMessage("reconheceu item dentro!")

end

end


tenta isto kkk

Link para o comentário
Compartilhar em outros sites

  • 0

A correção do seu código seria a seguinte:

local items = {1212, 1215, 1218, 1239}

function onMoveItem(moveItem, frompos, position, cid, toPosition)

    if isContainer(moveItem.uid) then
        doBroadcastMessage("reconheceu container!")
        
        for i = 1, #items do
            if #getItemsInContainerById(moveItem.uid, items[i]) > 0 then
                doBroadcastMessage("reconheceu um dos itens dentro!")
                break
            end
        end

Para fazer o que você quer, ajudaria se este callback tivesse mais parâmetros. Caso contrário, recomendaria usar um outro onMoveItem. Mesma funcionalidade, porém parâmetros diferentes e mais abrangentes.

Link para o comentário
Compartilhar em outros sites

  • 0

A correção do seu código seria a seguinte:

Para fazer o que você quer, ajudaria se este callback tivesse mais parâmetros. Caso contrário, recomendaria usar um outro onMoveItem. Mesma funcionalidade, porém parâmetros diferentes e mais abrangentes.

 

Então no caso com esse callback apenas que eu tenho, seria Impssivel impedir que o player jogue um container backpack,bag, bau (com os items da lista dentro dele), no chao?

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...