Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base?  OTX 2.12 

 

Qual o motivo deste tópico? Como resolvo esse erro? ao usar a máquina da o seguinte erro abaixo.

 

Está surgindo algum erro? Se sim coloque-o aqui. 

[1:1:31.786] [Error - Action Interface]
[1:1:31.787] data/actions/scripts/heldFusion.lua:onUse
[1:1:31.788] Description:
[1:1:31.788] (LuaInterface::luaDoPlayerAddItem) Item not found

 

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

 -- Held Fusion 0.1 by Marcot
-- Se encontrou algum erro no script, favor enviar PM explicando os erros
-- http://www.tibiaking.com/forum/profile/120572-marcot/

-- Configuracoes necessarias para o script
local config = {
	quest = { -- Precisa fazer quest? (Nao mexa caso negativo)
		necessaria = false, -- Eh necessario fazer uma quest para liberar o sistema?
		storageID = 10001, -- Qual o storageID dessa quest? (caso true, anteriormente)
	},
	chestPos = {x = 107, y = 174, z = 5, stackpos = 1}, -- Posicao do Bau (certifique-se que nao tenha nada encima dele)
	-- Tenha atencao para que a soma das chances dos helds em cada tier seja igual a 100
    helds = { -- Item IDs e chance de vir o held
        [1] = { -- Array Tier 1
            {ID = 2143, chance = 100},
        },
        [2] = { -- Array Tier 2
			{ID = 2301, chance = 1}, -- Force Critic Chance
			{ID = 2302, chance = 2}, -- Force Critic Damage
			{ID = 2303, chance = 3}, -- Force Life Leech
			{ID = 2304, chance = 4}, -- Force Ki Leech
			{ID = 2305, chance = 5}, -- Force Damage
			{ID = 2306, chance = 6}, -- Force Skills
			{ID = 2307, chance = 7}, -- Force Magic
			{ID = 2308, chance = 8}, -- Force Protection All
			{ID = 2309, chance = 9}, -- Force Health
			{ID = 2310, chance = 10}, -- Force Ki
			{ID = 2311, chance = 11}, -- Force Health Regeneratio
			{ID = 2312, chance = 12}, -- Force Ki Regeneration
        },
        [3] = { -- Array Tier 3
		
        },
		[4] = { -- Array Tier 4

		},
		[5] = { -- Array Tier 5

		},
		[6] = { -- Array Tier 6

		},
		[7] = { -- Array Tier 7

		},
	},
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if config.quest.necessaria and getPlayerStorageValue (cid, config.quest.storageID) == 0 then
		-- Erro caso a pessoa use a maquina sem ter feito a quest
		-- Valido apenas quando a opcao esta ativada
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You don\'t have permission to use this machine.")
		return false
	end

	items = {nil, nil, nil}
	container = getThingFromPos(config.chestPos)

	for i = 0, 2 do
		items[i + 1] = getContainerItem (container.uid, i)
		if items [i + 1].itemid == 0 or items [i + 1].itemid == nil then
			-- Erro quando tem menos de 3 itens no bau
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de 3 card's vázios para fundir.")
			return false
		end
	end

	heldType = {nil, nil, nil}

	for j=1, 3 do
		for i=1, 7 do
			for k = 1, #config.helds[i] do
				if config.helds[i][k].ID == items[j].itemid then
					heldType[j] = i
				end
			end
		end
		if heldType [j] == nil then
			-- Erro a ser exibido caso o jogador coloque algum item que nao seja um held na maquina
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Esta máquina funciona apenas com card's vázios.")
			return false
		end

	end

	if heldType[1] ~= heldType[2] or heldType[2] ~= heldType[3] then
		-- Erro a ser exibido caso o jogador coloque helds de tiers diferentes
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de card's com os mesmos atributos.")
    	return false
    elseif heldType[1] == 3 or heldType[2] == 3 or heldType[3] == 3 then
    -- elseif heldType[1] == 7 or heldType[2] == 7 or heldType[3] == 7 then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não pode fundir esses cards.")
		return false
	end

	-- Sortear qual held vira
	for i = 1, 3 do
		doRemoveItem(items[i].uid, 1)
	end

	tierSorteado = heldType[1] + 1
	numeroSorte = math.random(1, 100)

	itemIDSorteado = sorteiaValor (tierSorteado, numeroSorte)

	doPlayerAddItem(cid, itemIDSorteado, 1)

	-- Mensagem exibida ao fundir com sucesso
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recebeu seu novo card.")
	return true
end

-- Função retirada de https://pt.stackoverflow.com/questions/147884/sorteio-aleat%C3%B3rio-mas-com-diferentes-probabilidades
function sorteiaValor (tierSorteado, numeroSorte)
	x = numeroSorte
	for i = 1, #config.helds[tierSorteado] do
		x = x - config.helds[tierSorteado][i].chance
		if x <= 0 then
			return config.helds[tierSorteado][i].ID
		end
	end
end

 

 

 

Postado

 

19 horas atrás, XGaduX disse:

helds em cada tier seja igual a 100

 

19 horas atrás, XGaduX disse:

[2] = { -- Array Tier 2


e me parece que seu array 2, não é igual a 100 a chance total, da igual a 78

19 horas atrás, XGaduX disse:

numeroSorte = math.random(1, 100)

logo se o numero for maior que 78, creio que não entra no script mesmo

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo