CL
action

item que aparece e desaparece aleatorio no mapa

Por clebao666, 01 de jul. de 2015 em Scripts

script
resolvido
11
3.4k
clebao666C
01 de julho de 2015 às 10:57

ola!

 

gostaria de uma script de action para um item, no caso e um espelho que aparece e desaparece no mapa a cada 30 min vai estar em um lugar diferente, ele fica no lugar por 5 min e some denovo.

 

o mesmo esquema pra um buraco no chao em 5 areas diferentes,.

 

e o mesmo pra um poke que aparece no mapa em 5 lugares diferentes por 5 mine reaparece no mapa a cada 2 hr. ou entao um esquema dele dar resp de algum poke mais muitooooooooooooooo raramente.bem raramente,

 

desde ja agradeço quem puder ajudar ae e isso vai com certesa ajuda muita gente. vlw

RigByR
01 de julho de 2015 às 13:37

Items, faça com que ele não possa ser movido pq caso seja criado é movam de lugar vai da erro no distro na hora de remove ele.

é um globalevent

local item = 2467 -- item que sera criado
local tempo = 5 -- quanto tempo o item vai fica até desaparecer
local positions = { -- posições que sera criado
    {x = 1017, y = 1030, z = 7},
    {x = 1018, y = 1030, z = 7},
    {x = 1019, y = 1030, z = 7},
}
 
function onThink(interval)
    local pos = positions[math.random(1, #positions)]
    doCreateItem(item, 1, pos)
    addEvent(function()
        doRemoveItem(getItemStack(pos, item).uid, 1)
    end, tempo*100000)
return true
end
 
function getItemStack(pos, iid)
    for i = 1, 255 do
        posa = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i})
        if posa.itemid == iid then
        return posa
        end
    end
return nil
end
.xml, tag.
<globalevent name="Teleports" interval="300000" script="nomedoscript.lua" />

 

clebao666C
03 de julho de 2015 às 15:28

Items, faça com que ele não possa ser movido pq caso seja criado é movam de lugar vai da erro no distro na hora de remove ele.

é um globalevent

local item = 2467 -- item que sera criado
local tempo = 5 -- quanto tempo o item vai fica até desaparecer
local positions = { -- posições que sera criado
    {x = 1017, y = 1030, z = 7},
    {x = 1018, y = 1030, z = 7},
    {x = 1019, y = 1030, z = 7},
}
 
function onThink(interval)
    local pos = positions[math.random(1, #positions)]
    doCreateItem(item, 1, pos)
    addEvent(function()
        doRemoveItem(getItemStack(pos, item).uid, 1)
    end, tempo*100000)
return true
end
 
function getItemStack(pos, iid)
    for i = 1, 255 do
        posa = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i})
        if posa.itemid == iid then
        return posa
        end
    end
return nil
end
.xml, tag.
<globalevent name="Teleports" interval="300000" script="nomedoscript.lua" />

 

 

ae manin blz vc e o cara ajudando a gente. sem pedir demais tem como vc fazer o mesmo script mais com um pokemon ao inves de um item.

esse pokemon ira aparecer pelo mapa aleatorio e fica por la por digamos 5 min e troca de area e fica mias 5 min e troca denovo.

 

desde ja agradeço man.

 

 

 

a e tbm acho que vc vai manjar. tipo to tentando fazer uma arvore aq que quando o player clicar pega os frutos e fica uma arvore sem frutos no lugar. serao as pink fruit. e as arvores voltem a ter frutos depois de 20 min. agradeço qquer ajuda desde ja. vlw se precisar de amis dados meu skype é.. clebermoreno1

 

Items, faça com que ele não possa ser movido pq caso seja criado é movam de lugar vai da erro no distro na hora de remove ele.

é um globalevent

local item = 2467 -- item que sera criado
local tempo = 5 -- quanto tempo o item vai fica até desaparecer
local positions = { -- posições que sera criado
    {x = 1017, y = 1030, z = 7},
    {x = 1018, y = 1030, z = 7},
    {x = 1019, y = 1030, z = 7},
}
 
function onThink(interval)
    local pos = positions[math.random(1, #positions)]
    doCreateItem(item, 1, pos)
    addEvent(function()
        doRemoveItem(getItemStack(pos, item).uid, 1)
    end, tempo*100000)
return true
end
 
function getItemStack(pos, iid)
    for i = 1, 255 do
        posa = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i})
        if posa.itemid == iid then
        return posa
        end
    end
return nil
end
.xml, tag.
<globalevent name="Teleports" interval="300000" script="nomedoscript.lua" />

 

ae man e como faço pra esse item server como um tp clicando nele e teleportado pra outro lugar o item e um espelho. pode ser passando por ele ou clicando nele desde ja agradeço a ajuda.

RigByR
03 de julho de 2015 às 15:50

mano faça um pedido por tópico.

Não fique fazendo vários pedidos no mesmo tópico.

Se o tópico tiver mas de um pedido, ajudarei apenas em 1.

isso facilita quem ta procurando pela mesma coisa.

seja direto no pedido e coloque até o mínimos detalhe.

Se esse tópico já foi resolvido marque como melhor resposta para que fechem e crie um tópico para cada pedido.

 

PS. tô no celular então desculpa por qualquer erro de português

clebao666C
03 de julho de 2015 às 19:49

ola amigo. mau ae por fica te enchendo mais aq nao deu certo o item nao quer aparecer no local que eu coloquei e pra testar so coloquei 2 lugares pertinho um do outro e baixei pra 200 o tempo de intervalo.

e nao aparece ja deixei o serve ligado a 30 min e nada. e tbm quanto a action do item como crio ela pra adiciona nessa.

 

ta dando um erro agora me passa certinho o tuto ae como add um item que aparece e desaparece aleatorio pelo mapa a cada 30 min e some em 5 min. e o mesmo item tera uma action nele de teleportar o player que der use nele pra xyz posiçao,

 

id do item 14708

id da action 5555

Editado Julho 3 por clebao666

RigByR
03 de julho de 2015 às 20:14

testei aqui e ta funcionando perfeitamente.

qual a versão do seu servidor?

Acho que seu distro não tem suporte para milesegundos, so basta altera isso

no caso ficara 60s*30m = 1800segundos == 30minutos.

.xml, tag

<globalevent name="Teleports" interval="1800" script="nomedoscript.lua" />

e troca o script por esse, ja configurei do jeito que você pediu pelo PV, vai criar um item com o actionid 5555

local item = 14708 -- item que sera criado
local tempo = 5 -- quanto tempo o item vai fica até desaparecer
local positions = { -- posições que sera criado
    {x = 1017, y = 1030, z = 7},
    {x = 1018, y = 1030, z = 7},
    {x = 1019, y = 1030, z = 7},
}
 
function onThink(interval)
    local pos = positions[math.random(1, #positions)]
    local teleport = doCreateItem(item, 1, pos)
    doItemSetAttribute(teleport, "aid", 5555) -- actionid
    addEvent(function()
        doRemoveItem(getItemStack(pos, item).uid, 1)
    end, tempo*60)
    return true
end
 
function getItemStack(pos, iid)
    for i = 1, 255 do
        posa = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i})
        if posa.itemid == iid then
        return posa
        end
    end
    return nil
end



 

Editado Julho 3 por RigBy

clebao666C
03 de julho de 2015 às 21:31

uso pda pokecyan aq

 

e ta dando esse erro.

 

[03/07/2015 21:27:05] [Warning - Event::loadScript] Event onThink not found (data/globalevents/scripts/espelho.lua)

 

se nao tem a action ae tbm pra me passar pro item teleportar lembrando que e um espelho que nao pode ser movido e ao clicar nele eele some e teleporta o player pra xyz posiçao.

 

 

a action que coloquei aq e esta.

 

local position = {x = 1049, y = 1043, z = 7} --posición al que quieres que lleve

 

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

if (getCreatureCondition(cid, CONDITION_INFIGHT) == FALSE) then

doTeleportThing(cid, position)

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)

 

else

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)

doCreatureSay(cid, "Espere o Battle sair para poder usar isso!", TALKTYPE_ORANGE_1)

end

return true

end

 

RigByR
03 de julho de 2015 às 21:47

Desculpa foi burrice minha usar esse com aquela tag de la de cima

 

 

local item = 14708 -- item que sera criadolocal tempo = 5 -- quanto tempo o item vai fica até desaparecer
local positions = { -- posições que sera criado
    {x = 1017, y = 1030, z = 7},
    {x = 1018, y = 1030, z = 7},
    {x = 1019, y = 1030, z = 7},
}
 
function onThink(interval)
    local pos = positions[math.random(1, #positions)]
    local teleport = doCreateItem(item, 1, pos)
    doItemSetAttribute(teleport, "aid", 5555) -- actionid
    addEvent(function()
        doRemoveItem(getItemStack(pos, item).uid, 1)
    end, tempo*60)
    return true
end
 
function getItemStack(pos, iid)
    for i = 1, 255 do
        posa = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i})
        if posa.itemid == iid then
        return posa
        end
    end
    return nil
end

Editado Julho 3 por RigBy

clebao666C
03 de julho de 2015 às 21:54

e nao precisa da action pro item????

RigByR
03 de julho de 2015 às 22:02
Melhor resposta

-.-" min add no skype vá para eu resolve logo tudo de vez.

jv.alves97

 

ele ja vai cria o item com o actionid 5555, você falo que ja tem a script de clicar no action.

2 semanas depois...
BrunoB
14 de julho de 2015 às 17:33

Tópico movido para dúvidas / pedidos resolvidos.