Ir para conteúdo

Featured Replies

Postado

Bom galera queria sabe como faço pra quando o player pisa em um tile, vai aparece varias parede ao redor.

 

tentei cria o script, mas só funcionar o efeito. o item nao apareace:

 

local test = createCombatArea{
    {1, 1, 1},
    {1, 2, 1},
    {1, 1, 1}
}

function onStepIn(cid, item, pos, fromPos)
    doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getThingPos(cid), test, -0, -0, CONST_ME_MAGIC_BLUE)
	doCreateItem(9414,1,test)
    return true
end

 

Se alguem pode tambem coloca um tempo pra os item ao redor sumir, eu agradeço.

 

tfs 0.4 versao 8.60

Resolvido por Storm

Ir para solução
Postado
  • Solução
function onStepIn(cid, item, pos, fromPos)

local pid = getCreaturePosition(cid)

local itemid = 2768 -- id do item
local seg = 60 -- segundos para remover os itens

local position1 = {x = pid.x , y =  pid.y - 1 , z =  pid.z,  stackpos = 1}
local position2 = {x = pid.x , y =  pid.y + 1 , z =  pid.z,  stackpos = 1}
local position3 = {x = pid.x + 1 , y =  pid.y , z =  pid.z,  stackpos = 1}
local position4 = {x =  pid.x - 1,  y =  pid.y , z =  pid.z,  stackpos = 1}

local position5 = {x =  pid.x - 1 , y =  pid.y - 1  , z =  pid.z,  stackpos = 1}
local position6 = {x =  pid.x - 1 , y =  pid.y + 1 , z =  pid.z,  stackpos = 1}
local position7 = {x =  pid.x + 1 , y =  pid.y -1 , z =  pid.z,  stackpos = 1}
local position8 = {x =  pid.x +1 , y =  pid.y +1 , z =  pid.z,  stackpos = 1}

doCreateItem(itemid, 1, position1)
doCreateItem(itemid, 1, position2)
doCreateItem(itemid, 1, position3)
doCreateItem(itemid, 1, position4)
doCreateItem(itemid, 1, position5)
doCreateItem(itemid, 1, position6)
doCreateItem(itemid, 1, position7)
doCreateItem(itemid, 1, position8)

        addEvent(function()
        doRemoveItem(getThingFromPos(position1).uid, 1)
        doRemoveItem(getThingFromPos(position2).uid, 1)
        doRemoveItem(getThingFromPos(position3).uid, 1)
        doRemoveItem(getThingFromPos(position4).uid, 1)
        doRemoveItem(getThingFromPos(position5).uid, 1)
        doRemoveItem(getThingFromPos(position6).uid, 1)
        doRemoveItem(getThingFromPos(position7).uid, 1)
        doRemoveItem(getThingFromPos(position8).uid, 1)                                  
        end, seg * 1000)

return true
end

 

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

Postado
  • Autor
19 horas atrás, Sttorm disse:

function onStepIn(cid, item, pos, fromPos)

local pid = getCreaturePosition(cid)

local itemid = 2768 -- id do item
local seg = 60 -- segundos para remover os itens

local position1 = {x = pid.x , y =  pid.y - 1 , z =  pid.z,  stackpos = 1}
local position2 = {x = pid.x , y =  pid.y + 1 , z =  pid.z,  stackpos = 1}
local position3 = {x = pid.x + 1 , y =  pid.y , z =  pid.z,  stackpos = 1}
local position4 = {x =  pid.x - 1,  y =  pid.y , z =  pid.z,  stackpos = 1}

local position5 = {x =  pid.x - 1 , y =  pid.y - 1  , z =  pid.z,  stackpos = 1}
local position6 = {x =  pid.x - 1 , y =  pid.y + 1 , z =  pid.z,  stackpos = 1}
local position7 = {x =  pid.x + 1 , y =  pid.y -1 , z =  pid.z,  stackpos = 1}
local position8 = {x =  pid.x +1 , y =  pid.y +1 , z =  pid.z,  stackpos = 1}

doCreateItem(itemid, 1, position1)
doCreateItem(itemid, 1, position2)
doCreateItem(itemid, 1, position3)
doCreateItem(itemid, 1, position4)
doCreateItem(itemid, 1, position5)
doCreateItem(itemid, 1, position6)
doCreateItem(itemid, 1, position7)
doCreateItem(itemid, 1, position8)

        addEvent(function()
        doRemoveItem(getThingFromPos(position1).uid, 1)
        doRemoveItem(getThingFromPos(position2).uid, 1)
        doRemoveItem(getThingFromPos(position3).uid, 1)
        doRemoveItem(getThingFromPos(position4).uid, 1)
        doRemoveItem(getThingFromPos(position5).uid, 1)
        doRemoveItem(getThingFromPos(position6).uid, 1)
        doRemoveItem(getThingFromPos(position7).uid, 1)
        doRemoveItem(getThingFromPos(position8).uid, 1)                                  
        end, seg * 1000)

return true
end

 

 

Até funcionou amigo, só que quando na hora de remove. só remove alguns items, sempre fica algum item ao redor do player.

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

Postado

Acho que deu erro por conta do stackpos, por acaso os pisos em que não funcionou possuem alguma borda (algo abaixo que não seja o chão)?

E se não me engano, o doCreateItem não retorna o uid do que foi criado? Será que não daria pra utilizá-lo no Remove?

(Tive que formatar meu notebook pra linux, to me habituando ainda, amanhã devo voltar pra casa e aí eu tento mexer se não der nada até lá)

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

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo