TA

[Encerrado] [Ajuda] Aprendendo

Por tataboy67, 19 de jul. de 2018 em Tópicos Sem Resposta

10
1.5k
tataboy67T
19 de julho de 2018 às 16:25

Opa galera beleza? Eu ando estudando um pouco de script e eu estava montando 1 script e me deparei com 1 problema...
Não to conseguindo printar os itens da bag do jogador

Eu estava tentando da seguinte forma:

print(player:getSlotItem(3):getItem():getId()) -- retorna o ID apenas do primeiro item

Porque retorna o ID apenas do primeiro item?
Dai eu tentei fazer assim:

print(player:getSlotItem(3):getItem()) -- printa uma userdata

Tentei de tantas formas mas não estou obtendo sucesso :( 


Dai eu fiquei me perguntando 2 coisas... 
Como que eu printo os TODOS os itens do jogador e como que eu sei o que é  uma >> userdata <<

 

Se alguém puder me ajudar, ficarei grato d++

CrypterC
19 de julho de 2018 às 17:06
local bag = player:getSlotItem(3):getItem()
if bag and bag:isContainer() then
	for i = bag:getSize() - 1, 0, -1 do
		local id = bag:getItem(i):getId()
        local count = bag:getItem(i):getCount()
        local name = bag:getItem(i):getName()
	    if itemid ~= 0 then
		    print("{Name: "..name..", ".."Id:"..id..", Count: "..count.."}")
		end
	end
end

 

Editado Julho 19 por Crypter

tataboy67T
19 de julho de 2018 às 17:18
				for i=CONST_SLOT_BACKPACK,3 do
				    local item_id = player:getSlotItem(i):getItem():getId()
				    if item_id == 0 then
				    	print("Slot "..i.." está vazio!")
				    else
				    	print("Slot "..i.." equipado com:"..item_id)
				    end
				end

Opa tudo bem? mas isso não verifica o Slot apenas?
Eu acabei de testar aqui ele está retornando exatamente o primeiro item dentro da bag... Porem eu queria que ele retornasse TODOS os itens dentro da bag :( 
1739013428_Semttulo.png.6321e211872ccbfbaba10c8c75e0c1e5.png

Olha o que fiz aqui:

for i=CONST_SLOT_BACKPACK,3 do
    local item_id = player:getSlotItem(i):getItem():getId()
    if item_id == 0 then
    	print("Slot "..i.." está vazio!")
    else
    	print("Slot "..i.." equipado com:"..item_id)
    end
end

 

Queria que retornasse Todos os itens da bag, mais ou menos assim:
ID do Money (2160),
ID do Boots of Haste (2195),
ID do Solar Axe (8925),
ID do SKULL Remover (11144),
ID do Flask Void (7253).

CrypterC
19 de julho de 2018 às 17:25

Atualizei a script, pensei que era pra verificar os slots do player, da uma testada agora.

tataboy67T
19 de julho de 2018 às 17:33
6 minutos atrás, Crypter disse:

Atualizei a script, pensei que era pra verificar os slots do player, da uma testada agora.

Está retornando erro na linha 35, creio que seja a função:

Citar

getItemHoldingCount()

Pesquisei em minha compat.lua e não possui essa função.
O erro que aparece:
981782412_Semttulo.png.e1bbc32e75cbc14fde69289085281d2a.png

CrypterC
19 de julho de 2018 às 17:59

Atualizei novamente

tataboy67T
19 de julho de 2018 às 18:22

1483054166_Semttulo.png.d711214629a79b974e0ced8236dfe8da.png

23 minutos atrás, Crypter disse:

Atualizei novamente

Continua com o erro :( 

CrypterC
19 de julho de 2018 às 19:32

testa dnv

tataboy67T
19 de julho de 2018 às 19:40
40 minutos atrás, Crypter disse:

testa dnv

105092034_Semttulo.png.586dee3446d743192e271f4f730b33a4.png
Está dando esse erro com a primeira linha do Bag ali.
se eu uso a segunda linha ele funciona, mas não printa nada :(

Edit*
@Crypter Muito obrigado ! A partir do que você fez eu consegui arrumar aqui...
Acabei fazendo isso:

local bag = player:getSlotItem(3)
for i = bag:getSize() - 1, 0, -1 do
	local itemid = bag:getItem(i):getId()
    if containerItem ~= 0 then
	    print(itemid)
	end
end

 

-------------------------------------------------------
Edit*2
2130760326_Semttulo.png.4eb4f34583032c55dc550fee864dd161.png Tai se for ajudar alguém que precisar né :P, agradeço novamente ao amigo ai de cima !

local bag = player:getSlotItem(3)
for i = player:getSlotItem(3):getSize() - 1, 0, -1 do
    local itemid = player:getSlotItem(3):getItem(i):getId()
    local count = player:getSlotItem(3):getItem(i):getCount()
    local name = player:getSlotItem(3):getItem(i):getName()
    if containerItem ~= 0 then
        print("{"..name.."} \n{ID: "..itemid..", Count: "..count.."};\n")
    end
end

 

Editado Julho 19 por tataboy67

7 meses depois...
MarshmelloM
20 de fevereiro de 2019 às 16:28
A questão neste 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.