Ir para conteúdo
  • 0

Efeito dropStone PokeTibia (Pfield)


Taiger

Pergunta

Ola amigos, queria pedir uma ajudinha, estou usando a base Pfield de poketibia e testando o script do Zipter do efeito de drop stones, mas queria fazer umas modificações.

 

O script é esse, ele manda um efeito em cima do corpo do pokemon quando o mesmo dropa uma stone.

 

 

local effect = 173 --by brun123 --alterado v2.9 \/
local function func(cid, position, corpseid, effect)
if not isCreature(cid) then return true end
local corpse = getTileItemById(position, corpseid).uid
if corpse <= 1 then return end
if not isContainer(corpse) then return true end
for slot = 0, (getContainerSize(corpse)-1) do
local item = getContainerItem(corpse, slot)
if item.uid <= 1 then return end
if isStone(item.itemid) then
return doSendMagicEffect(position, effect) and doPlayerSendTextMessage(getCreatureMaster(cid), 27, "You found a "..getItemNameById(item.itemid).."!")
end
end
end
function onKill(cid, target, lastHit)
if not ehMonstro(target) then return true end
local corpse = getMonsterInfo(getCreatureName(target)).lookCorpse
addEvent(func, 5, getCreatureSummons(cid)[1], getThingPos(target), corpse, effect)
return true
end

Queria modificar esse script para deixar o efeito aparecendo por um tempo configurável em cima do corpo do pokemon, o script original só mostra o efeito uma vez, queria que ficasse aparecendo pelo tempo configurado no script.
Outra edição seria para cada stones dropada, alem do efeito encima do corpo, também aparecesse no topo da tela um efeito para cada stone igual pxg. EX:
Dropando fire stone aparecia o efeito em cima do corpo por um determinado tempo e o efeito da firestone no topo da tela uma vez só.
E para cada stones tivesse uma tabela com seus respectivos efeitos.
Tem como fazer isso?
Desde ja obrigado e rep+
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Tenta assim:

local effect = 173                                   --by brun123    --alterado v2.9 \/
local timeffect = 10
local function func(cid, position, corpseid, effect)
if not isCreature(cid) then return true end
local corpse = getTileItemById(position, corpseid).uid
if corpse <= 1 then return end
if not isContainer(corpse) then return true end
for slot = 0, (getContainerSize(corpse)-1) do
local item = getContainerItem(corpse, slot)
if item.uid <= 1 then return end
if isStone(item.itemid) then
for i = 1, timeffect do
addEvent(doSendMagicEffect, 500 * i, position, effect)
end
doPlayerSendTextMessage(getCreatureMaster(cid), 27, "You found a "..getItemNameById(item.itemid).."!")
end
end
end

function onKill(cid, target, lastHit)
if not ehMonstro(target) then return true end
local corpse = getMonsterInfo(getCreatureName(target)).lookCorpse
addEvent(func, 5, getCreatureSummons(cid)[1], getThingPos(target), corpse, effect)
return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

local effect = 222                                  
local arrow = {222, 20}               
local items = {2283, 2284, 2280, 2290, 2286, 2285, 2281, 2288, 2287, 2278, 2289, 2276, 2277, ...}     
function sendEffect(pos, time)
    if time < 0 then
        return true
    end
    doSendMagicEffect(pos, arrow[1])
    addEvent(sendEffect, 1000, pos, time - 1)
end
local function func(cid, position, corpseid, effect)
    if not isCreature(cid) then return true end
    local corpse = getTileItemById(position, corpseid).uid
    if corpse <= 1 then return end
    if not isContainer(corpse) then return true end
    for slot = 0, (getContainerSize(corpse)-1) do
        local item = getContainerItem(corpse, slot)
        if item.uid <= 1 then return end
        if isInArray(items, item.itemid) then
            return doSendMagicEffect(getThingPos(cid), effect) and sendEffect(position, arrow[2])
        end
    end
end
function onKill(cid, target, lastHit)
 
    if not isMonster(target) then return true end
    local corpse = getMonsterInfo(getCreatureName(target)).lookCorpse
 
    addEvent(func, 5, getCreatureSummons(cid)[1], getThingPos(target), corpse, effect)
    return true
end

creaturescripts.xml:

 <event type="kill" name="dropStone" script="NomeDoArquivo.lua"/>

login.lua:

 

registerCreatureEvent(cid, "dropStone")
Editado por Lordbaxx
Link para o comentário
Compartilhar em outros sites

  • 0

222 e o numero do efeito?

 

 

local effect = 222                                   --Efeito drop stone
local arrow = {222, 20}                    --Respectivamente, efeito e duração (segundos).
local items = {2283, 2284, 2280, 2290, 2286, 2285, 2281, 2288, 2287, 2278, 2289, 2276, 2277, ...}          --Tabela para configurar os items.  
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...