Ir para conteúdo

Featured Replies

Postado

@Aldimun Para configurar é bem simples, segue como está no script e gg. Entre os colchetes [...] vai o id do barril.

 

local config = {

	[1445] = {

		str = 5050512, -- Storage
		uses = 2, -- Quantas vezes pode usar o barril
		flask = 7636, -- ID flask
		potion = 7618 -- ID potion
	},
	[3365] = {

		str = 50505326, -- Storage
		uses = 2, -- Quantas vezes pode usar o barril
		flask = 7636, -- ID flask
		potion = 7620 -- ID potion
	}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)

local barrel = config[item.itemid]
	if barrel then
		if getPlayerStorageValue(cid, barrel.str) < barrel.uses then
			local flasks = getPlayerItemCount(cid, barrel.flask)
			if flasks > 0 then
				doPlayerRemoveItem(cid, barrel.flask, flasks)
				doPlayerAddItem(cid, barrel.potion, flasks)
				setPlayerStorageValue(cid, barrel.str, (getPlayerStorageValue(cid, barrel.str) + 1))
			else
				doPlayerSendTextMessage(cid, 27, "You don't have empty potion flasks.")
			end
		else
			doPlayerSendTextMessage(cid, 23, "It is empty.")
		end
	end
	return true
end

No login.lua adicione isso:

local barrelStr = {11231231, 123123123, 1231231} -- Todas as storages dos barris
for i,_ in ipairs(barrelStr) do
	if getPlayerStorageValue(cid, barrelStr[i]) < 0 then
		setPlayerStorageValue(cid, barrelStr[i], 1)
	end
end

O código acima vai fazer com que todos os player, ao logar, recebam a storage 1, assim não ocorrerá erro no contador de usos lá no barril.

OBS: Lembre-se de não deixar as storages iguais.

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

  • Respostas 16
  • Visualizações 2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Em data/actions/scripts, crie um arquivo .lua, nomeie-o e cole o código dentro.   Em data/actions, abra o arquivo actions.xml e adicione esta tag: <action itemid="1445;3365" event="

  • @Aldimun Para configurar é bem simples, segue como está no script e gg. Entre os colchetes [...] vai o id do barril.   local config = { [1445] = { str = 5050512, -- Storage uses = 2, -

  • No tibia RL, o barriu some após a carga acabar. https://www.tibiawiki.com.br/wiki/Mana_Cask   Uma dica: Para fazer funcionar na house, basta adicionar o barril em um constructionki

Postado
  • Autor
1 hora atrás, JoviM disse:

@Aldimun Para configurar é bem simples, segue como está no script e gg. Entre os colchetes [...] vai o id do barril.

 


local config = {

	[1445] = {

		str = 5050512, -- Storage
		uses = 2, -- Quantas vezes pode usar o barril
		flask = 7636, -- ID flask
		potion = 7618 -- ID potion
	},
	[3365] = {

		str = 50505326, -- Storage
		uses = 2, -- Quantas vezes pode usar o barril
		flask = 7636, -- ID flask
		potion = 7620 -- ID potion
	}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)

local barrel = config[item.itemid]
	if barrel then
		if getPlayerStorageValue(cid, barrel.str) < barrel.uses then
			local flasks = getPlayerItemCount(cid, barrel.flask)
			if flasks > 0 then
				doPlayerRemoveItem(cid, barrel.flask, flasks)
				doPlayerAddItem(cid, barrel.potion, flasks)
				setPlayerStorageValue(cid, barrel.str, (getPlayerStorageValue(cid, barrel.str) + 1))
			else
				doPlayerSendTextMessage(cid, 27, "You don't have empty potion flasks.")
			end
		else
			doPlayerSendTextMessage(cid, 23, "It is empty.")
		end
	end
	return true
end

No login.lua adicione isso:


local barrelStr = {11231231, 123123123, 1231231} -- Todas as storages dos barris
for i,_ in ipairs(barrelStr) do
	if getPlayerStorageValue(cid, barrelStr[i]) < 0 then
		setPlayerStorageValue(cid, barrelStr[i], 1)
	end
end

O código acima vai fazer com que todos os player, ao logar, recebam a storage 1, assim não ocorrerá erro no contador de usos lá no barril.

OBS: Lembre-se de não deixar as storages iguais.

 

Dúvida de leigo...

Adiciono o script como actions?

Postado

Em data/actions/scripts, crie um arquivo .lua, nomeie-o e cole o código dentro.

Spoiler

local config = {

	[1445] = {

		str = 264017, -- Storage
		uses = 2, -- Quantas vezes pode usar o barril
		flask = 7636, -- ID flask
		potion = 7618 -- ID potion
	},
	[3365] = {

		str = 264028, -- Storage
		uses = 2, -- Quantas vezes pode usar o barril
		flask = 7636, -- ID flask
		potion = 7620 -- ID potion
	}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)

local barrel = config[item.itemid]
	if barrel then
		if getPlayerStorageValue(cid, barrel.str) < barrel.uses then
			local flasks = getPlayerItemCount(cid, barrel.flask)
			if flasks > 0 then
				doPlayerRemoveItem(cid, barrel.flask, flasks)
				doPlayerAddItem(cid, barrel.potion, flasks)
				setPlayerStorageValue(cid, barrel.str, (getPlayerStorageValue(cid, barrel.str) + 1))
			else
				doPlayerSendTextMessage(cid, 27, "You don't have empty potion flasks.")
			end
		else
			doPlayerSendTextMessage(cid, 23, "It is empty.")
		end
	end
	return true
end

 

 

Em data/actions, abra o arquivo actions.xml e adicione esta tag:

<action itemid="1445;3365" event="script" value="SEU ARQUIVO.lua"/>

Em itemid você passa o id dos barris e separa eles por vírgulas, assim você não precisa criar 1 tag para cada barril.

 

Em data/creaturescripts/scripts, abra o login.lua e procure pela função onLogin(cid). Abaixo dela adicione:

local barrelStr = {264017, 264028} -- Coloque aqui as storages de cada barril
	for i,_ in ipairs(barrelStr) do
		if getPlayerStorageValue(cid, barrelStr[i]) < 0 then
			setPlayerStorageValue(cid, barrelStr[i], 0)
		end
	end

OBS: As storages de cada barril precisam ser diferentes uma da outra.

Esse script que você vai adicionar em creaturescripts é pra que quando o player logue ele já receba a storage 0 e a contagem de usos (quantas vezes ele poderá usar o barril) ocorra sem erros.

Postado
  • Autor
5 horas atrás, JoviM disse:

Em data/actions/scripts, crie um arquivo .lua, nomeie-o e cole o código dentro.

  Mostrar conteúdo oculto


local config = {

	[1445] = {

		str = 264017, -- Storage
		uses = 2, -- Quantas vezes pode usar o barril
		flask = 7636, -- ID flask
		potion = 7618 -- ID potion
	},
	[3365] = {

		str = 264028, -- Storage
		uses = 2, -- Quantas vezes pode usar o barril
		flask = 7636, -- ID flask
		potion = 7620 -- ID potion
	}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)

local barrel = config[item.itemid]
	if barrel then
		if getPlayerStorageValue(cid, barrel.str) < barrel.uses then
			local flasks = getPlayerItemCount(cid, barrel.flask)
			if flasks > 0 then
				doPlayerRemoveItem(cid, barrel.flask, flasks)
				doPlayerAddItem(cid, barrel.potion, flasks)
				setPlayerStorageValue(cid, barrel.str, (getPlayerStorageValue(cid, barrel.str) + 1))
			else
				doPlayerSendTextMessage(cid, 27, "You don't have empty potion flasks.")
			end
		else
			doPlayerSendTextMessage(cid, 23, "It is empty.")
		end
	end
	return true
end

 

 

Em data/actions, abra o arquivo actions.xml e adicione esta tag:


<action itemid="1445;3365" event="script" value="SEU ARQUIVO.lua"/>

Em itemid você passa o id dos barris e separa eles por vírgulas, assim você não precisa criar 1 tag para cada barril.

 

Em data/creaturescripts/scripts, abra o login.lua e procure pela função onLogin(cid). Abaixo dela adicione:


local barrelStr = {264017, 264028} -- Coloque aqui as storages de cada barril
	for i,_ in ipairs(barrelStr) do
		if getPlayerStorageValue(cid, barrelStr[i]) < 0 then
			setPlayerStorageValue(cid, barrelStr[i], 0)
		end
	end

OBS: As storages de cada barril precisam ser diferentes uma da outra.

Esse script que você vai adicionar em creaturescripts é pra que quando o player logue ele já receba a storage 0 e a contagem de usos (quantas vezes ele poderá usar o barril) ocorra sem erros.

 

 

obrigado @JoviM pelo tutorial rsrs

 

Ao iniciar o server, recebi o seguinte erro;

error.png

Consegue me ajudar?

 

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.6k

Informação Importante

Confirmação de Termo