Ir para conteúdo
  • 0

[Super Action] Gelo Quebra Ao Pisar...


Newtonnotwen

Pergunta

Gostaria de uma action que funcionasse em área x área tipo um quadrado

 

x=1 y=1 z=1 ate x=5 y=5 z=5

 

onde ao player pisar em determinados tiles toda essa areá iria se transformar exemplo:

 

Player pisa em um tile de gelo ele vai la e se transforma em gelo quebrado

depois se ele voltar a pisar no gelo quebrado novamente o gelo vira água

como se o gelo quebrasse

 

e ao se quebrar e o player pisar na água ele perde life e muda o outfit para aquele nadando.

Caso não seja possivel em área pode ser um único tile.

 

Segunda opção: quero um tile que ao player pisar perca life e saia efeito.

 

@up

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Rapaz, eu não consegui fazer a primeira opção, mas vê se essa resolve:

 

Movements.xml:

 

<movevent type="StepIn" actionid="1233" event="script" value="ice.lua"/>
<movevent type="StepOut" actionid="1234" event="script" value="ice.lua"/>

 

ice.lua:

 

 

-- Script by LuckOake

function onStepIn(cid, item, pos)

outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

if item.actionid == 1233 then

water = doCreateItem(4616, 1, getCreaturePosition(cid))

doCreatureSay(cid, "*crack*", TALKTYPE_MONSTER)

doCreatureAddHealth(cid, -100)

doItemSetAttribute(water, "aid", 1234)

doSetCreatureOutfit(cid, outfit, -1)

end

return true

end

 

function onStepOut(cid, item, position, fromPosition)

icepos = {x = fromPosition.x, y = fromPosition.y, z = fromPosition.z}

if item.actionid == 1234 then

doRemoveCondition(cid, CONDITION_OUTFIT)

addEvent(iceBack, 20000)

end

return true

end

 

function iceBack()

ice = doCreateItem(671, 1, icepos)

doItemSetAttribute(ice, "aid", 1233)

return true

end

 

 

No gelo que você quer que quebre, basta colocar aid 1233.

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

  • 0

Vou testar.

 

-------------------------------Editado

 

Perfeito script.

 

Fico lhe devendo 2 REP+, pois já paguei um.

 

Obrigado novamente!

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

  • 0

Fiz na pressa, pois tenho que ir dormir. Se funcionar, funcionou. Se bugar, que provavelmente é o que vai acontecer, deixa aqui um aviso de como é o bug que amanhã eu arrumo.

 

 

function onStepIn(cid, item, pos)

outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

if item.actionid == 1233 then

water = doCreateItem(4616, 1, getCreaturePosition(cid))

doCreatureSay(cid, "*crack*", TALKTYPE_MONSTER)

doCreatureAddHealth(cid, -100)

doItemSetAttribute(water, "aid", 1234)

doSetCreatureOutfit(cid, outfit, -1)

end

return true

end

 

function onStepOut(cid, item, pos)

if item.actionid == 1234 then

doRemoveCondition(cid, CONDITION_OUTFIT)

addEvent(transformBack, 20000, {oldItemID = item.itemid, _position = position})

end

return true

end

 

function transformBack(parameters)

parameters._position.stackpos = 0

doTransformItem(getThingfromPos(parameters._position).uid, 671)

ice = getThingfromPos(getThingfromPos(parameters._position).uid)

doItemSetAttribute(ice, "aid", 1233)

return true

end

 

 

A água volta a ser gelo em 20 segundos.

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

  • 0

Como você já havia previsto:

[05/08/2012 23:18:19] [Error - MoveEvents Interface]

[05/08/2012 23:18:19] In a timer event called from:

[05/08/2012 23:18:19] data/movements/scripts/ice.lua:onStepOut

[05/08/2012 23:18:19] Description:

[05/08/2012 23:18:19] data/movements/scripts/ice.lua:22: attempt to index field '_position' (a nil value)

[05/08/2012 23:18:19] stack traceback:

[05/08/2012 23:18:19] data/movements/scripts/ice.lua:22: in function <data/movements/scripts/ice.lua:21>

 

Até amanhã!

Link para o comentário
Compartilhar em outros sites

  • 0

Tá aqui, 100% funcional.

 

movements.xml:

 

 

<movevent type="StepIn" actionid="1233" event="script" value="ice.lua"/>

<movevent type="StepOut" actionid="1234" event="script" value="ice.lua"/>

 

 

ice.lua:

 

-- Script by LuckOake

function onStepIn(cid, item, pos)

outfit = {lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

if item.actionid == 1233 then

water = doCreateItem(4616, 1, getCreaturePosition(cid))

doCreatureSay(cid, "*crack*", TALKTYPE_MONSTER)

doCreatureAddHealth(cid, -100)

doItemSetAttribute(water, "aid", 1234)

doSetCreatureOutfit(cid, outfit, -1)

end

return true

end

 

function onStepOut(cid, item, position, fromPosition)

icepos = {x = fromPosition.x, y = fromPosition.y, z = fromPosition.z}

if item.actionid == 1234 then

doRemoveCondition(cid, CONDITION_OUTFIT)

addEvent(iceBack, 20000)

end

return true

end

 

function iceBack()

ice = doCreateItem(671, 1, icepos)

doItemSetAttribute(ice, "aid", 1233)

return true

end

 

 

Só alterar as action ids onde está vermelho e o tempo pra voltar a ser gelo em azul.

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

  • 0

@LuckOake

 

Script perfeito.

 

Só achei um erro (nada de mais):

<movevent type="StepIn" actionid="1233" event="script" value="testarea.lua"/>

<movevent type="StepOut" actionid="1234" event="script" value="testarea.lua"/>

Verde: Antes você tinha perdido para nomear ice.lua

 

--------------------

 

Fico lhe devendo 1 REP+, já paguei os dois da:

 

 

[spell] Teleport Dimension And Return! [spell] Summon Diferente

 

 

Pedido atendido, podem mover o tópico.

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

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