Ir para conteúdo

Pergunta

Posts Recomendados

  • 0

@zipter98 paresce q agora configurei certo mas por algum erro ele ta falando q nao achou os items

 

[05/12/2016 20:20:00] [Error - Action Interface] 
[05/12/2016 20:20:00] In a timer event called from: 
[05/12/2016 20:20:00] data/actions/scripts/ProfessionAction.lua:onUse
[05/12/2016 20:20:00] Description: 
[05/12/2016 20:20:00] (luaDoTransformItem) Item not found

 

7b1eb62f5fe3f90a7fca24485d482bbd.png

 

 

  Mostrar conteúdo oculto

 

  Mostrar conteúdo oculto

 

Link para o comentário
https://xtibia.com/forum/topic/242896-resolvido-pedido-bau/page/2/#findComment-1708436
Compartilhar em outros sites

  • 0
  Em 06/12/2016 em 00:03, zipter98 disse:

Como não programo há tempos, foi mesmo bom eu ter resolvido testar o código. 

Primeiramente, aqui está o código corrigido do wougoplex:

local ids = {19225, 19226, 19227, 19228, 19229, 19230, 19231, 19232}function onUse(cid, item, fromPosition, itemEx, toPosition)    local old_id = item.itemid        for i = 1, #ids do        addEvent(function()            local _item = getTileItemById(toPosition, old_id).uid            if _item > 0 then                doTransformItem(_item, ids[i])                old_id = ids[i]            end        end, i * 100)                     --Aqui você ajusta o intervalo de tempo entre as transformações. A unidade de tempo é milissegundos.    end    return trueend

 

Josegvb, você errou na configuração da tabela.

Troque:

targetItem = {target = 2711, newid = 17207, 17208, 17209, 17210, 17211,17212}

por:

targetItem = {target = 2711, newid = {17207, 17208, 17209, 17210, 17211, 17212}}

Troque, também:

addEvent(doTransformItem, i * 100, getThingFromPos(toPos).uid, ids)

por:

addEvent(doTransformItem, i * 100, getThingFromPos(toPos).uid, ids[i])

 

Para que as transformações ocorram durante a ação, transfira essas linhas:

local ids = ProfessionId[getPlayerProfessionId(cid)].targetItem.newidfor i = 1, #ids do    addEvent(doTransformItem, i * 100, getThingFromPos(toPos).uid, ids[i])end

para antes do:

addEvent(function()

 

Expand  

Agora o 1 codigo foi :D

 

Link para o comentário
https://xtibia.com/forum/topic/242896-resolvido-pedido-bau/page/2/#findComment-1708437
Compartilhar em outros sites

  • 0

@Josegvb

Ah sim, não reparei que o mesmo erro do código do wougoplex estava no seu. Escrever vários códigos quase simultaneamente acaba me distraindo um pouco, desculpe.

Troque:

local ids = ProfessionId[getPlayerProfessionId(cid)].targetItem.newid
for i = 1, #ids do
	addEvent(doTransformItem, i * 100, getThingFromPos(toPos).uid, ids[i])
end            

por:

local ids = ProfessionId[getPlayerProfessionId(cid)].targetItem.newid

for i = 1, #ids do
    addEvent(function()
        doTransformItem(getThingFromPos(toPos).uid, ids[i])
    end, i * 100)
end

 

E, pensando melhor, dá pra simplificar o script que escrevi para o wougoplex, ficando praticamente igual ao bloco de código acima (a funcionalidade é a mesma, no entanto).

local ids = {19225, 19226, 19227, 19228, 19229, 19230, 19231, 19232}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    for i = 1, #ids do
        addEvent(function()
            doTransformItem(getThingFromPos(toPosition).uid, ids[i])
        end, i * 100)                     --Aqui você ajusta o intervalo de tempo entre as transformações. A unidade de tempo é milissegundos.
    end
    return true
end

 

Editado por zipter98
Link para o comentário
https://xtibia.com/forum/topic/242896-resolvido-pedido-bau/page/2/#findComment-1708441
Compartilhar em outros sites

  • 0

mt obg @zipter98 agora deu certo!

outra duvida: sabe q tem outra funçao

 

doReturnItemsWithDelay(toPos, ProfessionId[getPlayerProfessionId(cid)].targetItem.target, 15)

 

q faz o arvore voltar a aparescer logo, a duvida seria: tem como fazer ele crescer por etapas? igual como quando corta só que vai crescendo mais lento por ex se tornando novo item cada 20 segundos ate voltar a primeira etapa (antes de começar a cortar)

 

5b87182abf18a55e02a3ba323502b199.gif

Editado por Josegvb
Link para o comentário
https://xtibia.com/forum/topic/242896-resolvido-pedido-bau/page/2/#findComment-1708442
Compartilhar em outros sites

  • 0
  Em 06/12/2016 em 02:14, zipter98 disse:

Os itens que farão parte da etapa de crescimento da árvore são os mesmos da tabela newid, só que transformados de forma oposta?

Expand  

 

não, sao outros ^^ mas sao apenas 3 items diferentes

 

22280f0db275aad54b19452db7dbec85.pngb2c7fae633d328e98c37e8c01bd08afe.png

 

 

so 17207-17212 é a sprite de cortando ate cortado q seria 17212

ai começa a crescer 17212-17215 q seria QUASE a ultima etapa q ja esta qse no maximo

e voltaria dps da 17215 pra outra q seria a normal (lado dereito = id 2711)

 

Editado por Josegvb
Link para o comentário
https://xtibia.com/forum/topic/242896-resolvido-pedido-bau/page/2/#findComment-1708444
Compartilhar em outros sites

  • 1

Naquela parte da tabela, troque:

targetItem = {target = 2711, newid = {17207, 17208, 17209, 17210, 17211, 17212}}

por:

targetItem = {target = 2711, newid = {17207, 17208, 17209, 17210, 17211, 17212}, transformBack = {17213, 17214, 17215, 2711}}

Em transformBack, você configura, na ordem de transformação, o ID dos itens que fazem parte do crescimento da árvore.

 

Depois, troque:

doReturnItemsWithDelay(toPos, ProfessionId[getPlayerProfessionId(cid)].targetItem.target, 60)

por:

doReturnItemsWithDelay(toPos, ProfessionId[getPlayerProfessionId(cid)].targetItem.transformBack, 20, 1)

20 é o intervalo, em segundos, entre cada transformação.

 

Na lib, troque:

function doReturnItemsWithDelay(toPosition, itemid, times)    local function doReturnItem(itemposition,oldid)        local pos = getThingfromPos(itemposition)        doTransformItem(pos.uid,oldid)        doSetItemText(pos.uid, getItemNameById(oldid))        end    addEvent(doReturnItem, times * 1000,toPosition, itemid)end

por:

function doReturnItemsWithDelay(toPosition, ids, time_interval, i)    if i > #ids then return true end        addEvent(function()        local item = getThingfromPos(toPosition).uid                doTransformItem(item, ids[i])        addEvent(doReturnItemsWithDelay, time_interval * 1000, toPosition, ids, time_interval, i + 1)    end, time_interval * 1000)end

 

Link para o comentário
https://xtibia.com/forum/topic/242896-resolvido-pedido-bau/page/2/#findComment-1708445
Compartilhar em outros sites

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