Ir para conteúdo

Como Eu Faço Para Clika No Item E Tranformar


elitevini

Posts Recomendados

Queria um script q assim quando você clika no certo item ele muda de itens e o atributo EXEMPLO :

 

Tem uma Arrow normal e você usa um item especifico nela e ele vira multi elemental ai você da um simples click e ela muda os atributos e a imagem

 

Queria muito esse script se tiver como me passarem, Já vi em um otserv e achei essa ideia muito legal

 

Ids das arrows :

Normal :2544

De Fogo :7840

De Shock :7874

De Earth :7850

De Gelo :7839

 

Versão :8.60

Config :allisow

 

OBS :Os Spr das imagens ja existem então não precisaria mudar nada no Spr e no dat.

 

Vlw muito grato !

Link para o comentário
Compartilhar em outros sites

Primeiro de tudo vá para a pasta actions dentro da pasta do seu server:

 

Ex: C:\Documents and Settings\Ronaldo\Desktop\Meu Server\data\actions

 

Agora dentro da pasta actions há uma pasta chamada scripts. Abra ela e e copie e cole um arquivo.lua,renomeie-o para itentransf.lua

Apague tudo que tem dentro e cole esse code.

 

function onUse(cid, item, frompos, item2, topos)

           doPlayerAddItem(cid,id da flecha que irá ganhar aqui,1) <- Item que será adicionado ao player
           doRemoveItem(item.uid,2544) <- Item que será Removido (arrow)
           doSendMagicEffect(topos,12) <- Efeito que aparecerá quando o player clicar no item, este efeito é igual o da Uh (Ultimate Healing)    
           doPlayerSendTextMessage(cid,22,"Voce ganhou um (nomedoitem) ") <- Mensagem que aparecerá quando o player clicar no item
   end

 

Agora volte para a pasta actions e abra o arquivo actions.xml.

Aberto o arquivo actions.xml adicione em qualquer lugar do arquivo mas nao dentro de um otro código.

 

*Ex: Vá no final e ponha antes da tag </actions> o exemplo a seguir :

   <action itemid="2544" script="itentransf.lua" />

 

 

 

"2544" será o id da arrow normal "itentransf.lua" será o nome do script que você fez.

 

7840- 7874 - 7850 - 7839

Escolha um id e coloque no script lá em cima ;D

 

Segue as cores dos id: flecha de fogo- flecha de shock - flecha de earth - gelo

Editado por iNoox
Link para o comentário
Compartilhar em outros sites

kra num era isso q eu queria seria assim oq eu queria q quando o player clika na arrow ela muda de elemento e de imagen

e ele vai clikando e vai mudando de elemento tipow

 

ele tem uma arrow normal ai ele usa uma red gen (2456) na arrow normal e a arrow pode ser tranformada em arrow de fogo e se ele usa violet gen (2153) ele tera mais um elemento novo na arrow q seria a flash arrow e se ele usa todas as gen (red, violet, green, blue)ele tera todos os elementos liberado q sera as arrows :

 

arrow normal :2544

Arrow de fogo :7840

Arrow de shock :7838

Arrow de terra :7850

Arrow de gelo :7839

 

E sera aleatorio se ele tem todos os elementos ele vai clickando nas arrow e vai mudando de elemento aleatorio e se ele não tem todos tmb ele vai clickando e vai mudando o elemento.

 

eu estava tantando muda o changegold do meu ot pra ser usado na arrow mais só consgui faze ele muda até a arrow de shock e só da pra muda ela quando ta com 100 arrow, mais eu queria q seja cpm qualquer arrow. Vo passa oq eu mudei aqui pra facilitar (se facilitar) se consiguirem muda o script me passem q num vo usa só na arrow e sim em varios itens de elemento :P::thumbsupsmiley:

 

kra olha q eu consigui faze sem da erros no console

 

 

local coins = {

[2544] = {

to = 7840 },

 

[7840] = {

from = 7838 },

 

[7838] = {

from = 7850 },

[7850] = {

from = 7839 },

[7839] = {

from = 2544 }}

 

 

 

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

 

if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then

 

return false

 

end

 

 

local coin = coins[item.itemid]

if(not coin) then

 

return false

 

end

 

 

if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then

 

doChangeTypeItem(item.uid, item.type - item.type)

 

doPlayerAddItem(cid, coin.to, 1)

 

doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect)

elseif(coin.from ~= nil) then

 

doChangeTypeItem(item.uid, item.type - 1)

 

doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX)

 

doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect)

 

end

 

 

return true

 

end

 

 

mais tipow quando eu cliko na se ela tem 1 arrow ela não transforma mais se eu tenho 100 sim

e tmb eu cliko com ela se tem 100 e ela transforma na arrow de fogo como eu quero só q transforma em 1 só

e se eu continua clikando ela num vai trnaformando ela vai criando novas arrow \o/

 

se vc consiguir edita pra faze pega direitinho ia ajuda muuuuto :thumbsupsmiley2:

Editado por ManoPergunta
Link para o comentário
Compartilhar em outros sites

Bom não sei se entendi mais se for oque eestou pensando faça assim :

 

vá na pasta action : crie um novo arquivo *.lua e de o nome de red gem e nele coloque :

local arrow = {2544}

function onUse(cid, item, fromPosition, itemEx, toPosition)
if(isInArray(arrow, itemEx.itemid) == TRUE) then
	local newId = itemEx.itemid + 1
	if(itemEx.itemid == 2544) then
		newId = 2546
	end

	doTransformItem(itemEx.uid, newId)
	doDecayItem(itemEx.uid)

	doSendMagicEffect(toPosition, CONST_ME_POFF)
end

return TRUE
end

 

agora vá no actions.xml e coloque

	<action itemid="2156" script="/red gem.lua"/>

 

Pronto , acho que está funcionando ... não tenho certeza pois nao testei mais para fazer os outros é só repetir mais voce troca o newid pelo id do arrow que vocÊ quer e no action itemid="" você coloca o id da gem ex:

	<action itemid="2155" script="/green gem.lua"/>

Editado por galaverna
Link para o comentário
Compartilhar em outros sites

Bom não sei se entendi mais se for oque eestou pensando faça assim :

 

vá na pasta action : crie um novo arquivo *.lua e de o nome de red gem e nele coloque :

local arrow = {2544}

function onUse(cid, item, fromPosition, itemEx, toPosition)
if(isInArray(arrow, itemEx.itemid) == TRUE) then
	local newId = itemEx.itemid + 1
	if(itemEx.itemid == 2544) then
		newId = 2546
	end

	doTransformItem(itemEx.uid, newId)
	doDecayItem(itemEx.uid)

	doSendMagicEffect(toPosition, CONST_ME_POFF)
end

return TRUE
end

 

agora vá no actions.xml e coloque

	<action itemid="2156" script="/red gem.lua"/>

 

Pronto , acho que está funcionando ... não tenho certeza pois nao testei mais para fazer os outros é só repetir mais voce troca o newid pelo id do arrow que vocÊ quer e no action itemid="" você coloca o id da gem ex:

	<action itemid="2155" script="/green gem.lua"/>

 

sim funfo mais num era esatamente isso era sim tipow vc usa esse iten e ele se tranforma q ja ta ai mais tmb ele possa muda de elemento quando clika

 

eu achei um script aqui só q ele num da pra usa o iten e tmb num remove as arrows vo passa se tiver como junta ese seu e oq eu tenho acho q daria certo

 

O q eu tenho :

function onUse(cid, item, frompos, item2, topos)

 

doPlayerAddItem(cid, 10219)

doRemoveItem(item.uid, 10221)

doSendMagicEffect(topos,54)

doPlayerSendTextMessage(cid,22,"Voce mudou o elemento do seu amulet para Terra")

 

end

 

agora o seu :

local arrow = {2544}

 

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

if(isInArray(arrow, itemEx.itemid) == TRUE) then

local newId = itemEx.itemid + 1

if(itemEx.itemid == 2544) then

newId = 2546

end

 

doTransformItem(itemEx.uid, newId)

doDecayItem(itemEx.uid)

 

doSendMagicEffect(toPosition, CONST_ME_POFF)

end

 

return TRUE

end

 

se vc consigui +rep

Link para o comentário
Compartilhar em outros sites

Em actions.xml coloque isso:

	<action itemid="7365;7839;7840;7838" script="changearrow.lua"/>

Na pasta scripts crie um arquivo com extensão .lua chamado changearrow e coloque isso dentro:

-- blazingfire --
local elementos = {
terra = 7850, -- earth arrow id
gelo = 7839, -- shiver arrow id
fogo = 7840, -- flaming arrow id
raio = 7838 -- flash arrow id
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
if(itemEx.itemid == elementos.terra) then
novoelemento = elementos.gelo
elseif(itemEx.itemid == elementos.gelo) then
novoelemento = elementos.fogo
elseif(itemEx.itemid == elementos.fogo) then
novoelemento = elementos.raio
elseif(itemEx.itemid == elementos.raio) then
novoelemento = elementos.terra
end
doTransformItem(itemEx.uid, novoelemento)
doDecayItem(itemEx.uid)
doSendMagicEffect(toPosition, CONST_ME_POFF)
end
return TRUE
-- blazingfire --

Pronto, agora, quando você encantar a arrow, cada vez que você clicar nela ela se transformará em um elemento diferente.

 

Se por acaso você clicar na Earth Arrow e não funcionar, deve escolher outra arrow no lugar dela, a não ser que você baixe um Item Editor e deixe ela como usable.

Editado por Blazingfire
Link para o comentário
Compartilhar em outros sites

ai está o downlaod do ot item editor

http://gamesnetwork.forumais.com/t14-download-itemeditor-860

 

e não ia mudar nada no client só no items.otb

 

Dica: antes de salvar o arquivo do items.otb pelo item editor

faz beckup da sua pasta items boa sorte

 

PS:ajudei??please rep+

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...