Ir para conteúdo

Featured Replies

Postado

 

Você tem o código disponível? Se tiver publique-o aqui: 

local onSell = function(cid, item, subType, amount, ignoreCap, inBackpacks)  
if items[item].sellPrice ~= 0 then  
doPlayerAddMoney(cid, items[item].sellPrice * amount)  
doPlayerRemoveItem(cid, items[item].item_id, amount)  
end 
end 

 

Quero que quando o player efetue uma venda, o item que vai server vendido seja os que estão na bag. Da maneira que está, faz a contagem de todos os items e se o player estiver usando o mesmo item em algum slot, o item está sendo vendido.

 

Editado por Rogeriok (veja o histórico de edições)

Assinatura retirada pela direção!

Resolvido por Shiuns

Ir para solução
Postado
  • Solução

adc na lib essas funções:

 

	function getContainerItems(container, array, haveCap)
		array = array or {}
		haveCap = haveCap or false
		if not isContainer(container.uid) or getContainerSize(container.uid) == 0 then
			array[#array +1] = container
		else
			local size = getContainerSize(container.uid)
			haveCap = (getContainerCap(container.uid) -size) > 0
			for slot = 0, (size -1) do
				local item = getContainerItem(container.uid, slot)
				if item.itemid > 1 then
					getContainerItems(item, array, haveCap)
				end
			end
		end
		return #array >= 1 and array, haveCap
	end
	function getContainerItemsById(container, itemid)
		local founds = {}
		local items = not container.uid and container or getContainerItems(container)
		for index, item in pairs(items) do
			if item.itemid == itemid then
				founds[#founds +1] = item
			end
		end
		return #founds >= 1 and founds
	end

 

 

e tenta usar a função do npc assim:

 

local onSell = function(cid, item, subType, amount, ignoreCap, inBackpacks)
	if getPlayerSlotItem(cid, CONST_SLOT_BACKPACK).itemid ~= 0 then
		local bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)
		local z = getContainerItemsById(bp, item)
		if #z >= amount and items[item].sellPrice ~= 0 then 
				doPlayerAddMoney(cid, items[item].sellPrice * amount) 
				for i = 1, amount do
					doRemoveItem(z[i].uid)
				end  
		end
	end
	return true
end

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo