Ir para conteúdo

Alavanca Para Remover Pilar


JNLPB

Posts Recomendados

eae pessoal,blz? Bem, eu até tentei criar uma action assim me baseando em outra action (completamente diferente) mais não deu certo. O que eu quero é o seguinte: Tem uma alavanca, uma altar stone e o pilar que impede a passagem pro teleport.Dae queria que quando fossem colocadas 100 demonic essences na stone e a alavanca puxada o pilar sumisse. Vou colocar o script que eu "fiz", acho que facilita tudo se o script tiver concerto -ou não...-

 

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

 

item1pos = {x=422, y=25, z=10, stackpos=255} --item1pos

item2pos = {x=422, y=25, z=10, stackpos=255} --item2pos

item1 = getThingfromPos(item1pos)

item2 = getThingfromPos(item2pos)

 

 

if item.itemid == 9825 and item1.itemid == 6500 and item2.itemid == 8538 then

doRemoveItem(item1.uid,100)

doSendMagicEffect(item1pos,13)

doRemoveItem(item2.cid,1)

doPlayerSendTextMessage(cid,22,'Você pode passar.')

 

elseif item.uid == 9068 and item.itemid == 1946 then

else

return 0

end

 

return 1

 

end

Link para o comentário
Compartilhar em outros sites

STACKPOS_GROUND = 0
STACKPOS_TOP_CREATURE = 253
STACKPOS_TOP_FIELD = 254
STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE = 255

 

stackpos=255 seria para remover qualquer coisa que estiver porcima item ou creature, pode deixar assim mesmo no seu caso irá funcionar.

 

Att,

Paulo

Link para o comentário
Compartilhar em outros sites

STACKPOS_GROUND = 0
STACKPOS_TOP_CREATURE = 253
STACKPOS_TOP_FIELD = 254
STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE = 255

 

stackpos=255 seria para remover qualquer coisa que estiver porcima item ou creature, pode deixar assim mesmo no seu caso irá funcionar.

 

Att,

Paulo

 

Entendi. Mais no caso o stone pillar não teria que ter uma unique id?

Link para o comentário
Compartilhar em outros sites

Tenta assim

 

item1pos = {x=422, y=25, z=10, stackpos=255} -- demonic essence pos

item2pos = {x=422, y=25, z=10, stackpos=255} -- pilar pos

item1 = getThingfromPos(item1pos)

item2 = getThingfromPos(item2pos)

parameters = {cid = cid, pillarpos = {x=422, y=25, z=10, pillarid = PILLAR ID} -- troke aki o id do pilar

 

function criar(parameters)

doCreateItem(parameters.pillarid, 1, parameters.pillarpos)

end

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

 

if item.itemid == 1945 then

if doRemoveItem(item1, 100) == TRUE then

doRemoveItem(item2, 1)

doPlayerSendTextMessage(cid, 25, "Você pode passar. A passagem se fechará em 30 segundos.")

doTransformItem(item.uid, item.uid+1)

addEvent(criar, 30000, parameters)

else

doPlayerSendTextMessage(cid, 25, "Você precisa colocar 100 demonic essence no altar.")

end

else

doTransformItem(item.uid, item.uid-1)

end

return TRUE

end

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

Pra que isso?

parameters = {cid = cid, pillarpos = {x=422, y=25, z=10, pillarid = PILLAR ID} 

Porque simplesmente nao coloca os parametros na funcao addEvent?

 

E pra que a função criar()? Porque nao colocou doCreateItem direto no callback do addEvent?

Link para o comentário
Compartilhar em outros sites

Tenta assim

 

item1pos = {x=422, y=25, z=10, stackpos=255} -- demonic essence pos

item2pos = {x=422, y=25, z=10, stackpos=255} -- pilar pos

item1 = getThingfromPos(item1pos)

item2 = getThingfromPos(item2pos)

parameters = {cid = cid, pillarpos = {x=422, y=25, z=10, pillarid = PILLAR ID} -- troke aki o id do pilar

 

function criar(parameters)

doCreateItem(parameters.pillarid, 1, parameters.pillarpos)

end

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

 

if item.itemid == 1945 then

if doRemoveItem(item1, 100) == TRUE then

doRemoveItem(item2, 1)

doPlayerSendTextMessage(cid, 25, "Você pode passar. A passagem se fechará em 30 segundos.")

doTransformItem(item.uid, item.uid+1)

addEvent(criar, 30000, parameters)

else

doPlayerSendTextMessage(cid, 25, "Você precisa colocar 100 demonic essence no altar.")

end

else

doTransformItem(item.uid, item.uid-1)

end

return TRUE

end

 

vixe, tmbm não funcionou. Não tem unique id em lugar nenhum não será por isso?

 

 

seria melhor usar variaveis locais do que globais.

 

existe um pequeno conflito entre o escopo da função e a variavel externa item2.

Wiltry Ícone

 

Poderia me explicar melhor? hehe

Link para o comentário
Compartilhar em outros sites

Troca pra isso agora entao:

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

local item1pos = {x=422, y=25, z=10, stackpos=255} -- demonic essence pos
local item2pos = {x=422, y=25, z=10, stackpos=255} -- pilar pos
local item1 = getThingfromPos(item1pos)
local item2 = getThingfromPos(item2pos)
local pillarid = ID DO PILLAR

if item.itemid == 1945 then
if doRemoveItem(item1.uid, 100) == TRUE then
doRemoveItem(item2.uid, 1)
doPlayerSendTextMessage(cid, 25, "Você pode passar. A passagem se fechará em 30 segundos.")
doTransformItem(item.uid, item.uid+1)
addEvent(doCreateItem, 30000, pillarid, 1, item2pos)
else
doPlayerSendTextMessage(cid, 25, "Você precisa colocar 100 demonic essence no altar.")
end
else
doTransformItem(item.uid, item.uid-1)
end
return TRUE
end

 

no xml:

<action actionid="ACTION ID DA ALAVANCA" event="script" value="other/NOMEDOSCRIPT.lua"/>

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...