Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

Link para o post
Compartilhar em outros sites
17 horas atrás, lordzetros disse:

   Olá pessoal da comunidade de Tibia!
   Bom, hoje trouxe um pequeno e simples script, mas que pode ajudar muita gente. Vi alguns posts referindo aos NPCs que trocam determinados itens por outros, então tive a ideia de fazer algo que possa ter uma função semelhante e que funcione de uma maneira rápida. Fique à vontade em utilizá-la da maneira que quiser.

Como funciona?

    O usuário vai usar a alavanca e irá adicionar um item em troca de outra item que você configurou no script. Em outras palavras, o usuário irá ganhar uma determinada quantidade de um item em troca de outra quantidade de um item diferente. (Tudo configurável)

VERSÃO TESTADA: 8.60

-->  Começando...

Crie um arquivo com nome de changeItem.lua no diretório data/actions/scripts/

   Logo após, adicione esse código dentro do arquivo criado:


-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNec = 2160, -- ID do item que necessita para efetuar a troca
qtNec = 50, -- Quantidade do item que necessita para efetuar a troca
itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
stor = 25869, -- Storage, ou seja, a numeracao que identificara se o usuario fez ou nao fez a quest ainda
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if getPlayerStorageValue(cid,config.stor) ~= -1 then
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"So eh permitido fazer a troca de itens apenas uma vez!")
	doSendMagicEffect(pos, CONST_ME_POFF)
elseif getPlayerStorageValue(cid,config.stor) == -1 then
	if item.itemid == 1945 then
		if getPlayerItemCount(cid,config.itemNec) >= config.qtNec then
				doPlayerAddItem(cid, config.itemNovo,config.qtNova)
				doPlayerRemoveItem(cid,config.itemNec,config.qtNec)
				doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de trocar "..config.qtNec.." "..getItemNameById(config.itemNec).." por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
				doSendMagicEffect(pos, CONST_ME_HOLYAREA)
				setPlayerStorageValue(cid, config.stor, 1)				
		else
			doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Voce nao tem "..config.qtNec.." "..getItemNameById(config.itemNec).." para trocar por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
			doSendMagicEffect(pos, CONST_ME_POFF)
end
end
end	
end

Em seguida, abra o arquivo com nome actions.xml que está localizada em data/actions/

    E adicione essa linha de código no mesmo:


<action actionid="9139" event="script" value="changeItem.lua"/>

   Preste atenção, pois o actionid será o número que irá colocar na alavanca em seu editor de mapa, ou seja, no caso acima está como 9139, logo, na alavanca terá que está como a seguinte imagem:

ttIfaqN.png

Obs1.: Reparem que na imagem tem outro número destacado, que é o ID 1945, CERTIFIQUE-SE que a alavanca que irá utilizar no seu OT tenha esse mesmo ID, caso não tenha, basta mudar o número no código do script para o que irá utilizar no seu servidor.

Obs2.: O código está configurado para que o usuário efetue a troca APENAS 1 VEZ, caso queira que ele troque quantas vezes quiser, apenas remova o seguinte comando do código:
 


setPlayerStorageValue(cid, config.stor, 1)	

Obs3.: O resto que tinha que explicar está no próprio código, apenas faça um esforço de ler, agradeço.

 

 

  É isso, pessoal, espero que goste e aproveite. Como falei antes, é um código simples, pois comecei agora com Script, pretendo avançar no nível e funções que os mesmos desempenham, isso é só o começo, leve isso como uma prática de uma atividade para iniciante em scripts. :)  

Olá amigo, eu realmente gosto de seu script, eu só quero saber se você pode removê-lo do storage, assim você sempre pode fazer.
Não se você me entende.
obrigado

Link para o post
Compartilhar em outros sites
Agora, cimmeria disse:

Olá amigo, eu realmente gosto de seu script, eu só quero saber se você pode removê-lo do storage, assim você sempre pode fazer.
Não se você me entende.
obrigado

Então, cimmeria, tudo bem? Está no tópico como remover o storage, assim o player poderá fazer mais de uma vez, certo? Basta apenas você remover do código o seguinte comando:
 

setPlayerStorageValue(cid, config.stor, 1)

Espero ter ajudado, :).

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites
58 minutos atrás, lordzetros disse:

Então, cimmeria, tudo bem? Está no tópico como remover o storage, assim o player poderá fazer mais de uma vez, certo? Basta apenas você remover do código o seguinte comando:
 


setPlayerStorageValue(cid, config.stor, 1)

Espero ter ajudado, :).

amigo script funciona, o que acontece é que o console sai nesta:

 

Lua Script Error: [Action Interface]
data/actions/scripts/Edited/Changeitem.lua:onUse
data/actions/scripts/Edited/Changeitem.lua:21: attempt to call global 'getItemNa
meById' (a nil value)
stack traceback:
        [C]: in function 'getItemNameById'
        data/actions/scripts/Edited/Changeitem.lua:21: in function <data/actions
/scripts/Edited/Changeitem.lua:11>

eo script vai apagar o que você me disse que e foi a seguinte:

 

-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNec = 2160, -- ID do item que necessita para efetuar a troca
qtNec = 50, -- Quantidade do item que necessita para efetuar a troca
itemNovo = 16101, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
-- stor = 25869, -- Storage, ou seja, a numeracao que identificara se o usuario fez ou nao fez a quest ainda  esto lo puse de comentario
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if getPlayerStorageValue(cid,config.stor) ~= -1 then
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Solo estan permitidas cristal coins")
	doSendMagicEffect(pos, CONST_ME_POFF)
elseif getPlayerStorageValue(cid,config.stor) == -1 then
	if item.itemid == 1945 then
		if getPlayerItemCount(cid,config.itemNec) >= config.qtNec then
				doPlayerAddItem(cid, config.itemNovo,config.qtNova)
				doPlayerRemoveItem(cid,config.itemNec,config.qtNec)
				doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de trocar "..config.qtNec.." "..getItemNameById(config.itemNec).." por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
				doSendMagicEffect(pos, CONST_ME_HOLYAREA)			
		else
			doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Voce nao tem "..config.qtNec.." "..getItemNameById(config.itemNec).." para trocar por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
			doSendMagicEffect(pos, CONST_ME_POFF)
end
end
end	
end

se Você pode ser arranjado?

obrigado

 

PD: uso tfs 1.2

Editado por cimmeria
añadir tfs versao (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
1 hora atrás, cimmeria disse:

amigo script funciona, o que acontece é que o console sai nesta:

 


Lua Script Error: [Action Interface]
data/actions/scripts/Edited/Changeitem.lua:onUse
data/actions/scripts/Edited/Changeitem.lua:21: attempt to call global 'getItemNa
meById' (a nil value)
stack traceback:
        [C]: in function 'getItemNameById'
        data/actions/scripts/Edited/Changeitem.lua:21: in function <data/actions
/scripts/Edited/Changeitem.lua:11>

eo script vai apagar o que você me disse que e foi a seguinte:

 


-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNec = 2160, -- ID do item que necessita para efetuar a troca
qtNec = 50, -- Quantidade do item que necessita para efetuar a troca
itemNovo = 16101, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
-- stor = 25869, -- Storage, ou seja, a numeracao que identificara se o usuario fez ou nao fez a quest ainda  esto lo puse de comentario
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if getPlayerStorageValue(cid,config.stor) ~= -1 then
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Solo estan permitidas cristal coins")
	doSendMagicEffect(pos, CONST_ME_POFF)
elseif getPlayerStorageValue(cid,config.stor) == -1 then
	if item.itemid == 1945 then
		if getPlayerItemCount(cid,config.itemNec) >= config.qtNec then
				doPlayerAddItem(cid, config.itemNovo,config.qtNova)
				doPlayerRemoveItem(cid,config.itemNec,config.qtNec)
				doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de trocar "..config.qtNec.." "..getItemNameById(config.itemNec).." por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
				doSendMagicEffect(pos, CONST_ME_HOLYAREA)			
		else
			doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Voce nao tem "..config.qtNec.." "..getItemNameById(config.itemNec).." para trocar por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
			doSendMagicEffect(pos, CONST_ME_POFF)
end
end
end	
end

se Você pode ser arranjado?

obrigado

 

PD: uso tfs 1.2

-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNec = 2160, -- ID do item que necessita para efetuar a troca
qtNec = 50, -- Quantidade do item que necessita para efetuar a troca
itemNovo = 16101, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
-- stor = 25869, -- Storage, ou seja, a numeracao que identificara se o usuario fez ou nao fez a quest ainda  esto lo puse de comentario
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if getPlayerStorageValue(cid,config.stor) ~= -1 then
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Solo estan permitidas cristal coins")
	doSendMagicEffect(pos, CONST_ME_POFF)
elseif getPlayerStorageValue(cid,config.stor) == -1 then
	if item.itemid == 1945 then
		if getPlayerItemCount(cid,config.itemNec) >= config.qtNec then
				doPlayerAddItem(cid, config.itemNovo,config.qtNova)
				doPlayerRemoveItem(cid,config.itemNec,config.qtNec)
				doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de trocar "..config.qtNec.." "..getItemName(config.itemNec).." por "..config.qtNova.." "..getItemName(config.itemNovo)..".")
				doSendMagicEffect(pos, CONST_ME_HOLYAREA)			
		else
			doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Voce nao tem "..config.qtNec.." "..getItemName(config.itemNec).." para trocar por "..config.qtNova.." "..getItemName(config.itemNovo)..".")
			doSendMagicEffect(pos, CONST_ME_POFF)
end
end
end	
end

Teste com esse, ^^.

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites
7 minutos atrás, lordzetros disse:

-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNec = 2160, -- ID do item que necessita para efetuar a troca
qtNec = 50, -- Quantidade do item que necessita para efetuar a troca
itemNovo = 16101, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
-- stor = 25869, -- Storage, ou seja, a numeracao que identificara se o usuario fez ou nao fez a quest ainda  esto lo puse de comentario
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if getPlayerStorageValue(cid,config.stor) ~= -1 then
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Solo estan permitidas cristal coins")
	doSendMagicEffect(pos, CONST_ME_POFF)
elseif getPlayerStorageValue(cid,config.stor) == -1 then
	if item.itemid == 1945 then
		if getPlayerItemCount(cid,config.itemNec) >= config.qtNec then
				doPlayerAddItem(cid, config.itemNovo,config.qtNova)
				doPlayerRemoveItem(cid,config.itemNec,config.qtNec)
				doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de trocar "..config.qtNec.." "..getItemName(config.itemNec).." por "..config.qtNova.." "..getItemName(config.itemNovo)..".")
				doSendMagicEffect(pos, CONST_ME_HOLYAREA)			
		else
			doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Voce nao tem "..config.qtNec.." "..getItemName(config.itemNec).." para trocar por "..config.qtNova.." "..getItemName(config.itemNovo)..".")
			doSendMagicEffect(pos, CONST_ME_POFF)
end
end
end	
end

Teste com esse, ^^.

Obrigado, pouco dizer, você é uma máquina de roteiros

rep++

Link para o post
Compartilhar em outros sites
1 minuto atrás, cimmeria disse:

Obrigado, pouco dizer, você é uma máquina de roteiros

rep++

Eu quem agradeço, cimmeria. Fico feliz que tenha dado tudo certo!

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites
  • 7 months later...
Em 17/06/2017 em 19:23, lordzetros disse:

-- Script por Lordzetros para o forum Tibia King. local config = { itemNec = 2160, -- ID do item que necessita para efetuar a troca qtNec = 50, -- Quantidade do item que necessita para efetuar a troca itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca stor = 25869, -- Storage, ou seja, a numeracao que identificara se o usuario fez ou nao fez a quest ainda } function onUse(cid, item, fromPosition, itemEx, toPosition) pos = getPlayerPosition(cid) if getPlayerStorageValue(cid,config.stor) ~= -1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"So eh permitido fazer a troca de itens apenas uma vez!") doSendMagicEffect(pos, CONST_ME_POFF) elseif getPlayerStorageValue(cid,config.stor) == -1 then if item.itemid == 1945 then if getPlayerItemCount(cid,config.itemNec) >= config.qtNec then doPlayerAddItem(cid, config.itemNovo,config.qtNova) doPlayerRemoveItem(cid,config.itemNec,config.qtNec) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de trocar "..config.qtNec.." "..getItemNameById(config.itemNec).." por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".") doSendMagicEffect(pos, CONST_ME_HOLYAREA) setPlayerStorageValue(cid, config.stor, 1) else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Voce nao tem "..config.qtNec.." "..getItemNameById(config.itemNec).." para trocar por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".") doSendMagicEffect(pos, CONST_ME_POFF) end end end end

descupa reviver o topico mas vcs poderiao me ajudar.... 

vamos la

eu presciso que ao clicar na alavancanca remova 2 items tipo primeiro item 10 vip coins segundo item 1 staff e add outra staff ao player..... tipo um upgrade eu clico na alavanca para fazer o upgrade da minha staff por outra staff custando 10 vip coins com o id 11192 

+rep que ajudar aeee

Link para o post
Compartilhar em outros sites
  • 4 weeks later...
Em 03/02/2018 em 16:40, mullino disse:

descupa reviver o topico mas vcs poderiao me ajudar.... 

vamos la

eu presciso que ao clicar na alavancanca remova 2 items tipo primeiro item 10 vip coins segundo item 1 staff e add outra staff ao player..... tipo um upgrade eu clico na alavanca para fazer o upgrade da minha staff por outra staff custando 10 vip coins com o id 11192 

+rep que ajudar aeee

Estou de volta, colega, e aí, resolveu?

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites
Em 17/06/2017 em 19:23, lordzetros disse:

   Olá pessoal da comunidade de Tibia!
   Bom, hoje trouxe um pequeno e simples script, mas que pode ajudar muita gente. Vi alguns posts referindo aos NPCs que trocam determinados itens por outros, então tive a ideia de fazer algo que possa ter uma função semelhante e que funcione de uma maneira rápida. Fique à vontade em utilizá-la da maneira que quiser.

Como funciona?

    O usuário vai usar a alavanca e irá adicionar um item em troca de outra item que você configurou no script. Em outras palavras, o usuário irá ganhar uma determinada quantidade de um item em troca de outra quantidade de um item diferente. (Tudo configurável)

VERSÃO TESTADA: 8.60 - OTX

-->  Começando...

Crie um arquivo com nome de changeItem.lua no diretório data/actions/scripts/

   Logo após, adicione esse código dentro do arquivo criado:


-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNec = 2160, -- ID do item que necessita para efetuar a troca
qtNec = 50, -- Quantidade do item que necessita para efetuar a troca
itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
stor = 25869, -- Storage, ou seja, a numeracao que identificara se o usuario fez ou nao fez a quest ainda
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if getPlayerStorageValue(cid,config.stor) ~= -1 then
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"So eh permitido fazer a troca de itens apenas uma vez!")
	doSendMagicEffect(pos, CONST_ME_POFF)
elseif getPlayerStorageValue(cid,config.stor) == -1 then
	if item.itemid == 1945 then
		if getPlayerItemCount(cid,config.itemNec) >= config.qtNec then
				doPlayerAddItem(cid, config.itemNovo,config.qtNova)
				doPlayerRemoveItem(cid,config.itemNec,config.qtNec)
				doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de trocar "..config.qtNec.." "..getItemNameById(config.itemNec).." por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
				doSendMagicEffect(pos, CONST_ME_HOLYAREA)
				setPlayerStorageValue(cid, config.stor, 1)				
		else
			doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Voce nao tem "..config.qtNec.." "..getItemNameById(config.itemNec).." para trocar por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
			doSendMagicEffect(pos, CONST_ME_POFF)
end
end
end	
end

Em seguida, abra o arquivo com nome actions.xml que está localizada em data/actions/

    E adicione essa linha de código no mesmo:


<action actionid="9139" event="script" value="changeItem.lua"/>

   Preste atenção, pois o actionid será o número que irá colocar na alavanca em seu editor de mapa, ou seja, no caso acima está como 9139, logo, na alavanca terá que está como a seguinte imagem:

ttIfaqN.png

Obs1.: Reparem que na imagem tem outro número destacado, que é o ID 1945, CERTIFIQUE-SE que a alavanca que irá utilizar no seu OT tenha esse mesmo ID, caso não tenha, basta mudar o número no código do script para o que irá utilizar no seu servidor.

Obs2.: O código está configurado para que o usuário efetue a troca APENAS 1 VEZ, caso queira que ele troque quantas vezes quiser, apenas remova o seguinte comando do código:
 


setPlayerStorageValue(cid, config.stor, 1)	

Obs3.: O resto que tinha que explicar está no próprio código, apenas faça um esforço de ler, agradeço.

 

 

  É isso, pessoal, espero que goste e aproveite. Como falei antes, é um código simples, pois comecei agora com Script, pretendo avançar no nível e funções que os mesmos desempenham, isso é só o começo, leve isso como uma prática de uma atividade para iniciante em scripts. :)  

 

Como eu faço pra essa alavanca fica dando item toda vez que clica e sem precisa de storage. Ex sempre que clica ganha um item aleatório sem precisa de tempo e nem de moeda. Clico ganho. 

Jamais se desespere em meio as sombrias afeiçoes da sua vida, pois das nuvens mais negras cai água límpida e fecunda

Link para o post
Compartilhar em outros sites
-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if item.itemid == 1945 then -- id da alavanca
	doPlayerAddItem(cid, config.itemNovo,config.qtNova)
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de ganhar "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
	doSendMagicEffect(pos, CONST_ME_HOLYAREA)			
end
end	

 

@louco3626 acredito que isso resolva o que deseja, :D.

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

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites
6 horas atrás, lordzetros disse:

-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if item.itemid == 1945 then -- id da alavanca
	doPlayerAddItem(cid, config.itemNovo,config.qtNova)
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de ganhar "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
	doSendMagicEffect(pos, CONST_ME_HOLYAREA)			
end
end	

 

@louco3626 acredito que isso resolva o que deseja, :D.

 

Obrigado man! nem coloquei la mais ja agradeço, sao poucos que ajuda com as coisa aqui vlw. <3

8 horas atrás, lordzetros disse:

-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if item.itemid == 1945 then -- id da alavanca
	doPlayerAddItem(cid, config.itemNovo,config.qtNova)
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de ganhar "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
	doSendMagicEffect(pos, CONST_ME_HOLYAREA)			
end
end	

 

@louco3626 acredito que isso resolva o que deseja, :D.

 

@lordzetros E se nao for incomoda muito tem como add uma funçao de teleporte assim que clica ser teleportado. 

Jamais se desespere em meio as sombrias afeiçoes da sua vida, pois das nuvens mais negras cai água límpida e fecunda

Link para o post
Compartilhar em outros sites

@louco3626 por nada!
Claro que tem, aqui o código:
 

-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
telePosicao = {x=155, y=54, z=7}, -- Local que o player ira se teleportar ao usar a alavanca
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if item.itemid == 1945 then -- id da alavanca
	doPlayerAddItem(cid, config.itemNovo,config.qtNova)
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de ganhar "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
	doTeleportThing(cid,config.telePosicao)
	doSendMagicEffect(pos, CONST_ME_HOLYAREA)			
end
end

Onde tem telePosicao, você irá colocar as coordenadas de onde o player irá se teletransportar. ^^ 

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

Feliz daquele que ensina o que sabe, e aprende o que ensina.

 

               

star-wars-animated-gif-23.gif

Link para o post
Compartilhar em outros sites
1 hora atrás, lordzetros disse:

@louco3626 por nada!
Claro que tem, aqui o código:
 


-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
telePosicao = {x=155, y=54, z=7}, -- Local que o player ira se teleportar ao usar a alavanca
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if item.itemid == 1945 then -- id da alavanca
	doPlayerAddItem(cid, config.itemNovo,config.qtNova)
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de ganhar "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
	doTeleportThing(cid,config.telePosicao)
	doSendMagicEffect(pos, CONST_ME_HOLYAREA)			
end
end

Onde tem telePosicao, você irá colocar as coordenadas de onde o player irá se teletransportar. ^^ 

 

Obg. <3

Jamais se desespere em meio as sombrias afeiçoes da sua vida, pois das nuvens mais negras cai água límpida e fecunda

Link para o post
Compartilhar em outros sites
  • 3 weeks later...
  • 4 weeks later...
Em 17/06/2017 em 17:23, lordzetros disse:

   Olá pessoal da comunidade de Tibia!
   Bom, hoje trouxe um pequeno e simples script, mas que pode ajudar muita gente. Vi alguns posts referindo aos NPCs que trocam determinados itens por outros, então tive a ideia de fazer algo que possa ter uma função semelhante e que funcione de uma maneira rápida. Fique à vontade em utilizá-la da maneira que quiser.

Como funciona?

    O usuário vai usar a alavanca e irá adicionar um item em troca de outra item que você configurou no script. Em outras palavras, o usuário irá ganhar uma determinada quantidade de um item em troca de outra quantidade de um item diferente. (Tudo configurável)

VERSÃO TESTADA: 8.60 - OTX

-->  Começando...

Crie um arquivo com nome de changeItem.lua no diretório data/actions/scripts/

   Logo após, adicione esse código dentro do arquivo criado:


-- Script por Lordzetros para o forum Tibia King. 

local config = {
itemNec = 2160, -- ID do item que necessita para efetuar a troca
qtNec = 50, -- Quantidade do item que necessita para efetuar a troca
itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca
qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca
stor = 25869, -- Storage, ou seja, a numeracao que identificara se o usuario fez ou nao fez a quest ainda
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
pos = getPlayerPosition(cid)
if getPlayerStorageValue(cid,config.stor) ~= -1 then
	doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"So eh permitido fazer a troca de itens apenas uma vez!")
	doSendMagicEffect(pos, CONST_ME_POFF)
elseif getPlayerStorageValue(cid,config.stor) == -1 then
	if item.itemid == 1945 then
		if getPlayerItemCount(cid,config.itemNec) >= config.qtNec then
				doPlayerAddItem(cid, config.itemNovo,config.qtNova)
				doPlayerRemoveItem(cid,config.itemNec,config.qtNec)
				doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de trocar "..config.qtNec.." "..getItemNameById(config.itemNec).." por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
				doSendMagicEffect(pos, CONST_ME_HOLYAREA)
				setPlayerStorageValue(cid, config.stor, 1)				
		else
			doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Voce nao tem "..config.qtNec.." "..getItemNameById(config.itemNec).." para trocar por "..config.qtNova.." "..getItemNameById(config.itemNovo)..".")
			doSendMagicEffect(pos, CONST_ME_POFF)
end
end
end	
end

Em seguida, abra o arquivo com nome actions.xml que está localizada em data/actions/

    E adicione essa linha de código no mesmo:


<action actionid="9139" event="script" value="changeItem.lua"/>

   Preste atenção, pois o actionid será o número que irá colocar na alavanca em seu editor de mapa, ou seja, no caso acima está como 9139, logo, na alavanca terá que está como a seguinte imagem:

ttIfaqN.png

Obs1.: Reparem que na imagem tem outro número destacado, que é o ID 1945, CERTIFIQUE-SE que a alavanca que irá utilizar no seu OT tenha esse mesmo ID, caso não tenha, basta mudar o número no código do script para o que irá utilizar no seu servidor.

Obs2.: O código está configurado para que o usuário efetue a troca APENAS 1 VEZ, caso queira que ele troque quantas vezes quiser, apenas remova o seguinte comando do código:
 


setPlayerStorageValue(cid, config.stor, 1)	

Obs3.: O resto que tinha que explicar está no próprio código, apenas faça um esforço de ler, agradeço.

 

 

  É isso, pessoal, espero que goste e aproveite. Como falei antes, é um código simples, pois comecei agora com Script, pretendo avançar no nível e funções que os mesmos desempenham, isso é só o começo, leve isso como uma prática de uma atividade para iniciante em scripts. :)  

 

como pego pra pegar muitas veses..

 

qero qe pege infinito nao troca apenas 1 ves nao..

 

qe troqe infinito

 

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Mathwsz
      Bom galera, estou trazendo um script de fusão que funciona assim:
      Explicação: É necessário de 7 itens, na qual você coloca em tal coordenada e aperte a alavanca, sendo assim formando um item na qual você deseja em tal lugar configurado.
      Exemplo: Você pode fazer 7 bosses na qual dropa tals itens "Parecidos" e formando um item raro de sua escolha, ou como preferir.. Vamos ao script!
       
      Em Data/Actions/Scripts crie um arquivo chamado fusaoitens.lua e adicione isto dentro:
       
       
      Agora, em Data/Actions.xml adicione o seguinte:
       
      <action uniqueid="9900" script="fusaoitens.lua" /> E no seu RemeresMapEditor , pegue sua alavanca, vai em Propriedades e adicione o UniqueID 9900 nele! 
      PRONTO! Agora configure e divirta-se! Obs: Caso lhe ajudei, da um REP+ Aí !
    • Por Imperius
      Olá, pessoal! Acabei encontrando um script que tinha feito a um tempo atrás. Estou compartilhando aqui para quem quiser usar ou melhorar.
       
      É bem parecido com os outros sistemas de roleta, igual deste tópico: https://tibiaking.com/forums/topic/101557-action-cassino-roleta-de-items/
       
      Como funciona?
       
      O "Treasure Chest" é um item custom, onde o jogador têm a possibilidade de ganhar itens raros ou bem meia boca. Tudo dependerá da sorte.
       
      O jogador precisa tacar o treasure chest na bancada e acionar a alavanca. O treasure chest irá se transformar em vários itens de forma randômica no qual o jogador poderá ou não ganhar. No final, apenas um item é entregue ao jogador.
       
      Para entender melhor o seu funcionamento, segue o GIF abaixo:
       

       
       
      em data > actions > actions.xml
       
       
      em data > actions > scripts > crie um arquivo chamado leverTreasureChest.lua
       
       
      no banco de dados do servidor, adicione o seguinte código em "SQL":
       
       
       

      Também estou disponibilizando uma página PHP, para quem quiser usar no site do servidor. Na página tem informações sobre o funcionamento, quais são os possíveis prêmios e a lista de jogadores que ganharam os itens raros.
       

       
       
      Espero ter ajudado de alguma forma! : )
       
      treasure_chest.php
    • Por amoxicilina
      Action: Remover skull
       
       
    • Por Dono do WNA
      Andei procurando aqui pelo TK inteiro e não acho um script funcional para um boss room onde o player clica com direito num altar (parecido com uma alavanca) podendo ir sozinho ou com até 10 jogadores ele é teleportado para uma sala com o boss, podendo desafiar ele a cada 20 horas, toda vez que um jogador puxa a alavanca ele checa se tem player na sala e caso tenha, precisa esperar todos os jogadores sairem. Caso o boss esteja vivo sem players dentro da sala ele remove e adiciona um novo assim que puxam a alavanca.

      Achei scripts parecidos no forum porém são todos para TFS 1.x+ e eu uso o 0.4 e nenhum compatível que achei esta funcionando

      TFS 0.4 REV 3996
    • Por Gandh
      boa galera , gostaria de pedir uma ajuda, atualmente estou mechendo com poketibia e faltou algumas sprites de paredes relacionadas a poketibia no meu server, entao adicionei as sprites no OB, e Item editor, e passei o items para o RME , para ser usado no mapa, e aparece tudo correto no RME, porem quando salvo e entro ingame, no local aonde coloquei essas paredes/Portas etc, o local fica todo bugado, e me crasha de vez em qndo, poderiam me ajudar? deixarei algumas imgs..

      Itens no RME que coloquei.


      Quando salvo e entro ingame , dá isso:

      primeiro quadrado vermelho => Onde coloquei a wall (Ela ficou invisivel) e buga o mapa.
      Segundo quadrado => Consequencia de ter a wall naquele local , pq no RME tá consertadinho a ground .. (bug)
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo