Ir para conteúdo
  • Cadastre-se

[Resolvido] [Pedido] Item usado em uma ActionID


Posts Recomendados

Bom dia.

Gostaria de uma ajudinha, pois estou apanhando pra fazer este script tão simples.

Gostaria que o Item¹ de ID 10091, precisasse ser usado exatamente no Item² (ID: 10092 com ActionID: 12129, adicionado pelo MapEditor) para executar uma ação.

No entanto seria a de salvar o player, (doPlayerSave(cid)) que após usar, remova o item do player (doPlayerRemoveItem(cid....) e também com o exhaust de 5 minutos para poder usar novamente.

Desde já, muito grato.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Amigo, eu não entendi muito bem, você quer "salvar" o player ao usar um item nele? explica melhor...

Dar save no player quando o mesmo usar o ITEM1 no Item2 que estará no MAPA com ActionID pré-definida.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Tem skype?

Tenho, mas agora irei estudar...

Pra falar por microfone vai ser meio ruim até porque minha esposa está dormindo ainda.

:T

Enfim...

Você sabe fazer?

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Sim, eu queria te passar pelo skype porque você poderia ficar com algum dúvida, mas enfim.

Fica assim:

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

if item2.itemid ~= 2400 then -- Muda aquele 2400 pelo ID do item2

return false

end

doPlayerSave(cid, true)

doPlayerSendTextMessage(cid, 10, "Seu personagem foi salvo!")

return true

end

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

A5RzdP.png

Link para o post
Compartilhar em outros sites

Vou te dar REP+ pelo esforço, porém, fiz um script provisório aqui até aparecer uma solução viável.

Obrigado man'

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Fiz um script aqui, não sei se é isso que você quer e se vai funcionar, mas se der erro é mais fácil arrumar :P

vá em data/action/script e crie um arquivo saver.lua e coloque o codigo abaixo

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


local config = {

	 exhaustionInSeconds = 300,

	 storage = 10091

}


item1pos = {x=470, y=347, z=7, stackpos=255} -- Aqui a posição do item1

item1 = getThingfromPos(item1pos)


if item.itemid == 10091 and item1.itemid == 10092 then

doRemoveItem(item.uid,1)

doPlayerSave(cid)

exhaustion.set(cid, config.storage, config.exhaustionInSeconds)

doPlayerSendCancel(cid, "Você foi salvo com sucesso!")

else

doPlayerSendCancel(cid, "Você não tem o item saver")

return TRUE

end

if(exhaustion.check(cid, config.storage) == TRUE) then

doPlayerSendCancel(cid, "Você só pode usar esse item a cada " .. config.exhaustionInSeconds .. " segundos.")

return TRUE

end

end

e agora em action.xml

adicione:

<action itemid="10091" script="saver.lua"/>

<action uniqueid="12129" script="saver.lua"/>

OBS: estou começando no mundo de script, então pode haver erros :X

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

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

Sim, eu queria te passar pelo skype porque você poderia ficar com algum dúvida, mas enfim.

Fica assim:



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

   if item2.actionid ~= 2400  then -- Muda aquele 2400 pelo ID do item2

      return false

   end


   doPlayerSave(cid, true)

   doPlayerSendTextMessage(cid, 10, "Seu personagem foi salvo!")

   return true

end

O Script do Smadok está perfeito, foi só uma falta de atenção dele, reputado {:

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

Desculpa @AdrianoSwaTT , você pediu pra usar um item tal , em outro item com ActionID tal, então ficaria dessa forma.

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

if item2.actionid ~= 2400 then -- Muda aquele 2400 pela actionID do item2

return false

end

doPlayerSave(cid, true)

doPlayerSendTextMessage(cid, 10, "Seu personagem foi salvo!")

return true

end

Você pode colocar o exhaust a parte, mas é isso ai...

A5RzdP.png

Link para o post
Compartilhar em outros sites

Fiz um script aqui, não sei se é isso que você quer e se vai funcionar, mas se der erro é mais fácil arrumar :P

vá em data/action/script e crie um arquivo saver.lua e coloque o codigo abaixo

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


local config = {

	 exhaustionInSeconds = 300,

	 storage = 10091

}


item1pos = {x=470, y=347, z=7, stackpos=255} -- Aqui a posição do item1

item1 = getThingfromPos(item1pos)


if item.itemid == 10091 and item1.itemid == 10092 then

doRemoveItem(item.uid,1)

doPlayerSave(cid)

exhaustion.set(cid, config.storage, config.exhaustionInSeconds)

doPlayerSendCancel(cid, "Você foi salvo com sucesso!")

else

doPlayerSendCancel(cid, "Você não tem o item saver")

return TRUE

end

if(exhaustion.check(cid, config.storage) == TRUE) then

doPlayerSendCancel(cid, "Você só pode usar esse item a cada " .. config.exhaustionInSeconds .. " segundos.")

return TRUE

end

end

e agora em action.xml

adicione:

<action itemid="10091" script="saver.lua"/>

<action uniqueid="12129" script="saver.lua"/>

OBS: estou começando no mundo de script, então pode haver erros :X

Obrigado pela vontade, porém, não funcionou ainda...

Me esclarece umas coisinhas, por que precisamos das coordenadas? E do item1? Pois o mesmo estará na backpack do player.

@TOPICO'

Cara, vocês vão achar que eu estou de sacanagem ou estou até moscando, mas por incrível que pareça não está funcionando ainda.

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

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

o item2 está no chão o.O

devo ter errado :(

mas use o que Smadok postou, está sem erros :D

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

o item2 está no chão o.O

devo ter errado :(

mas use o que Smadok postou, está sem erros :D

Yeah, é um item add pelo MapEditor.

Mas obrigado mesmo assim.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

    <action itemid="10091" event="script" value="SCRIPT_PATH.lua"/>

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

    local config = {

        itemid = 10092,

        actionid = 12129,

}


    if not(itemEx.itemid == config.itemid and itemEx.actionid == config.actionid) then

        return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, "You cannot use this object.")

    end


    doPlayerSave(cid)

    doRemoveItem(item.uid)

return true

end

Link para o post
Compartilhar em outros sites

local config = {

   itemid = 10092,

   actionid = 12129,

}


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

   if not(itemEx.itemid == config.itemid and itemEx.actionid == config.actionid) then

      return doPlayerSendTextMessage(cid, MESSAGE_STATUS_SMALL, "You cannot use this object.")

   end


   doPlayerSave(cid)

   doRemoveItem(item.uid)

   return true

end

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

Valeu pela força aí pessoal, consegui fazer o script.

Peguei um como base e editei, deu certo, só não precisei usar actionID, porém, está com exhaust e tudo certinho.

Obrigado ae.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo