Ir para conteúdo
  • Cadastre-se

(Resolvido)Teleport que requer 2 items


Ir para solução Resolvido por Roy,

Posts Recomendados

Estou procurando um script que teleporte o player ao usar um item X em um determinado item Y, sem que o item X desapareça.

Pensei em usar o script do tumulo de sangue da poi mas não o encontrei.


 

Editado por muriloxfx (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Em 24/11/2018 em 14:02, muriloxfx disse:

Estou procurando um script que teleporte o player ao usar um item X em um determinado item Y, sem que o item X desapareça.

Pensei em usar o script do tumulo de sangue da poi mas não o encontrei.


 

 

Tipo usar uma espada e uma pedra e essa espada não irá desaparecer e você irá ser teleportado para determinado local?

Link para o post
Compartilhar em outros sites

@Roy

É seu primeiro post, mas seria bom postar qual distro você usa, os scripts podem ser diferentes entre as distros.

Mas algo assim deve funcionar, ou pelo menos ser o caminho:

 

<action itemid="XXXX" event="script" value="teleportitem.lua"/>
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(item.itemid == XXXX and itemEx.itemid == YYYY) then
		doRemoveItem(itemEx.uid, 1)
		doTeleportThing(cid, {x = POSX, y = POSY, z = POSZ}) 
	else
		doPlayerSendCancel(cid, "You need to use it on XXX.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	end
	
	return true
end

 

asdukeeh.jpg

Link para o post
Compartilhar em outros sites
Em 25 de novembro de 2018 em 18:43, Roy disse:

Tipo usar uma espada e uma pedra e essa espada não irá desaparecer e você irá ser teleportado para determinado local?

 

Isso

Em 25 de novembro de 2018 em 22:55, DukeeH disse:

@Roy

É seu primeiro post, mas seria bom postar qual distro você usa, os scripts podem ser diferentes entre as distros.

Mas algo assim deve funcionar, ou pelo menos ser o caminho:

 


<action itemid="XXXX" event="script" value="teleportitem.lua"/>

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(item.itemid == XXXX and itemEx.itemid == YYYY) then
		doRemoveItem(itemEx.uid, 1)
		doTeleportThing(cid, {x = POSX, y = POSY, z = POSZ}) 
	else
		doPlayerSendCancel(cid, "You need to use it on XXX.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	end
	
	return true
end

 

 

Nao tenho certeza da versão mas no tfs aparece otx server 3.1

usei esse codigo e ele retornou unespected "=", na linha 4.

nao seria preciso criar um aid para o item? Acredito que dessa forma que esta todos os items de id y teleportariam o player para o local ao usar o item x nele

Link para o post
Compartilhar em outros sites
  • Solução
4 horas atrás, muriloxfx disse:

Isso

 

Nao tenho certeza da versão mas no tfs aparece otx server 3.1

usei esse codigo e ele retornou unespected "=", na linha 4.

nao seria preciso criar um aid para o item? Acredito que dessa forma que esta todos os items de id y teleportariam o player para o local ao usar o item x nele

 

Spoiler

<action itemid="2412" script="nome.lua"/>

 

local config = {
item = 2412, -- ItemID que vai usar na pedra
actionid = 2413, -- ActionID que deve ter na pedra e no item

pedra = 3900 -- Id da Pedra
}
function onUse(cid, item, frompos, item2, topos)

    if item2.actionid == config.actionid and item2.itemid == config.pedra and item.actionid == config.actionid then
    doTeleportThing(cid,{x=439, y=238, z=15})
    doPlayerSay(cid, "UnderWolrd", TALKTYPE_ORANGE_1)
    doSendMagicEffect(topos,10)
    doSendMagicEffect(getCreaturePosition(cid),10)
    else
    doPlayerSendTextMessage(cid, 21, "Essa Espada não se encaixa na pedra, procure a verdadeira espada!")
    end
    return TRUE
end

Veja ai se funciona, não testei. Caso queira que não tenha ActionID é só remover

Editado por Roy (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
5 horas atrás, muriloxfx disse:

Isso

Nao tenho certeza da versão mas no tfs aparece otx server 3.1

usei esse codigo e ele retornou unespected "=", na linha 4.

nao seria preciso criar um aid para o item? Acredito que dessa forma que esta todos os items de id y teleportariam o player para o local ao usar o item x nele

 

Por isso você tem que ser claro no pedido.

Você não falou a versão do server e nem como quer o uso.

Você falou um item que usa no outro, foi o que eu fiz.

Se for um item com actionid, é só alterar uma palavra.

asdukeeh.jpg

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

Por isso você tem que ser claro no pedido.

Você não falou a versão do server e nem como quer o uso.

Você falou um item que usa no outro, foi o que eu fiz.

Se for um item com actionid, é só alterar uma palavra.

 

Não pô eu fiz daquele jeito caso ele quisesse com ActionID no item, caso tivesse outro item no ot ou ele fosse dropavel mas que só pudesse usar aquele.

 Mas não tiro sua razão deve especificar a versão da distro.

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

Por isso você tem que ser claro no pedido.

Você não falou a versão do server e nem como quer o uso.

Você falou um item que usa no outro, foi o que eu fiz.

Se for um item com actionid, é só alterar uma palavra.

 

É verdade, não me atentei em especificar bem meu objetivo, mas acredito que o erro valeu a pena já que os dois scripts estão certos sendo um de forma mais generalizada e outro mais específico. Na próxima melhorarei o tópico, Reputação para os dois.

7 horas atrás, Roy disse:
  Ocultar conteúdo

<action itemid="2412" script="nome.lua"/>

 

local config = {
item = 2412, -- ItemID que vai usar na pedra
actionid = 2413, -- ActionID que deve ter na pedra e no item

pedra = 3900 -- Id da Pedra
}
function onUse(cid, item, frompos, item2, topos)

    if item2.actionid == config.actionid and item2.itemid == config.pedra and item.actionid == config.actionid then
    doTeleportThing(cid,{x=439, y=238, z=15})
    doPlayerSay(cid, "UnderWolrd", TALKTYPE_ORANGE_1)
    doSendMagicEffect(topos,10)
    doSendMagicEffect(getCreaturePosition(cid),10)
    else
    doPlayerSendTextMessage(cid, 21, "Essa Espada não se encaixa na pedra, procure a verdadeira espada!")
    end
    return TRUE
end

Veja ai se funciona, não testei. Caso queira que não tenha ActionID é só remover

 

Funcionou, teria alguma pista de porque o MagicEffect nem o TALKTYPE estão aparecendo? desde já agradeço.

Link para o post
Compartilhar em outros sites

os dois, a escrita tbm n sai quando teleporta

Lua script error: [action interface]

data/actions/scripts/other/nome.lua:onUse
data/actions/scripts/other/nome.lua:10: attempt to call global 'doPlayerSay' <a nil value>
stack feedback:

[C]: in function 'doPlayerSay'
data/actions/scripts/other/nome.lua:10: in function <data/actions/scripts/other/nome.lua:6>

Link para o post
Compartilhar em outros sites
4 horas atrás, muriloxfx disse:

os dois, a escrita tbm n sai quando teleporta

Lua script error: [action interface]

data/actions/scripts/other/nome.lua:onUse
data/actions/scripts/other/nome.lua:10: attempt to call global 'doPlayerSay' <a nil value>
stack feedback:

[C]: in function 'doPlayerSay'
data/actions/scripts/other/nome.lua:10: in function <data/actions/scripts/other/nome.lua:6>

 

doCreatureSay(cid, "UnderWolrd",TALKTYPE_ORANGE_1)

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo