Ir para conteúdo

[Movements] Item Com Efeito!


Newtonnotwen

Posts Recomendados

Tava fuçando aqui a pasta de meu ot e achei um script massa, então decidi postar.

 

Quando você coloca o item ele fica soltando um efeito a cada certo tempo, definido por você.

 

Créditos:

 

Vodkart, pelo script inicial

Newtonnotwen, por retirar alguns bugs e adicionar algumas funções

 

Em data/movements/scripts adicione um arquivo equip1.lua e adicione:

local ret = {}

function SairEfeito(cid)

if not isCreature(cid) then return LUA_ERROR end

local pos = getCreaturePosition(cid)

doSendAnimatedText(pos, "Sky Ring!", 255)

doSendMagicEffect(pos, 40)

ret[getPlayerGUID(cid)] = addEvent(SairEfeito, 5000, cid)

end

function onEquip(cid, item, slot)

if (getPlayerStorageValue(cid, 78975) == -1) then

SairEfeito(cid)

setPlayerStorageValue(cid, 78975, 1)

end

return true

end

function onDeEquip(cid, item, slot)

stopEvent(ret[getPlayerGUID(cid)])

ret[getPlayerGUID(cid)] = nil

setPlayerStorageValue(cid, 78975, -1)

return true

end

Editando:

 

-Vermelho: Mensagem que irá aparecer

-Verde: Cor da mensagem (/y para saber as cores)

-Marrom: Efeito (/z para saber os efeitos)

-Azul claro: Tempo do efeito e da mensagem (1000 = 1seg)

 

Em movements.xml adicione:

<movevent type="Equip" itemid="2123" slot="ring" event="script" value="equip1.lua"/>

<movevent type="DeEquip" itemid="2123" slot="ring" event="script" value="equip1.lua"/>

Editando:

 

-Vermelho: Id do item

-Laranja: Slot

 

Obs: Slots possiveis:

Shield

Legs

Armor

Head

Ring

Necklace

Feet

 

 

Gostou? REP+ no Vodkart! down.png

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

  • 3 weeks later...

tipo eu queria saber como por para sair ums efeitos ao redor do char eu tentei mas n deu ...

meu script ...

 

local ret = {}
function SairEfeito(cid)
if not isCreature(cid) then return LUA_ERROR end
local pos = getPlayerPosition(cid)
local effectPositions = {
{x = pos.x - 2, y = pos.y - 2, z = pos.z},
{x = pos.x + 2, y = pos.y - 2, z = pos.z},
}
doSendDistanceShoot(pos, ePos, 30)
doSendMagicEffect(ePos, 39)
ret[getPlayerGUID(cid)] = addEvent(SairEfeito, 5000, cid)
end
function onEquip(cid, item, slot)
if (getPlayerStorageValue(cid, 78975) == -1) then
SairEfeito(cid)
setPlayerStorageValue(cid, 78975, 1)
end
return true
end
function onDeEquip(cid, item, slot)
stopEvent(ret[getPlayerGUID(cid)])
ret[getPlayerGUID(cid)] = nil
setPlayerStorageValue(cid, 78975, -1)
return true
end

 

ajuda ai vlw

Link para o comentário
Compartilhar em outros sites

  • 5 weeks later...

Cara Isso Ae Ta Totalmente Errado Pq Esse Script è Do Vodkart E O Script Foi De 1 Pedido Meu Na Sessão De Pedidos De Scripts E O Vodkart Fez Pra Min Então Como Você Pega O Script E Posta?

 

back.pngAqui A Prova : http://www.xtibia.com/forum/topic/188923-ring-que-fala/

 

Feixem O Topico Pq O Script Foi Feito Pra Uso Pessoal Meu E Pra Outras Pessoas Que Visualizou O Topico E Não Pra Ser Postado No Forum !

 

Se Eu Tiver Errado Desculpas beurk.gif

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Sim usa

getPlayerSlotItem(cid, slot)

.

 

Para sair em roda os efeitos:

 

 

local ret = {}
function sairEfeito(cid)

local p = getPlayerPosition(cid)
local T = {
{32, {x = p.x - 1, y = p.y, z = p.z}},
{32, {x = p.x, y = p.y - 1, z = p.z}},
{32, {x = p.x + 1, y = p.y, z = p.z}},
{32, {x = p.x, y = p.y + 1, z = p.z}},
{32, {x = p.x - 1, y = p.y - 1, z = p.z}},
{32, {x = p.x + 1, y = p.y + 1, z = p.z}},
{32, {x = p.x - 1, y = p.y + 1, z = p.z}},
{32, {x = p.x + 1, y = p.y - 1, z = p.z}}
}

if not isCreature(cid) then return LUA_ERROR end

for i = 1, #T do
ret[getPlayerGUID(cid)] = addEvent(doSendMagicEffect, 1 * 1000, T[i][2], T[i][1])
end
end

function onEquip(cid, item, slot)

if getPlayerStorageValue(cid, 32178) == -1 then

sairEfeito(cid)
setPlayerStorageValue(cid, 32178, 1)

end
return true
end

function onDeEquip(cid, item, slot)
stopEvent(ret[getPlayerGUID(cid)]
ret[getPlayerGUID(cid)] = nil
setPlayerStorageValue(cid, 32178, -1)
return true
end

 

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

Postado: 23/October/2012 - 12:52

Tem como fazer aparecer o efeito só se o cara tiver usando um set completo?

 

Sim usa

getPlayerSlotItem(cid, slot)

.

 

Para sair em roda os efeitos:

 

 

local ret = {}
function sairEfeito(cid)

local p = getPlayerPosition(cid)
local T = {
{32, {x = p.x - 1, y = p.y, z = p.z}},
{32, {x = p.x, y = p.y - 1, z = p.z}},
{32, {x = p.x + 1, y = p.y, z = p.z}},
{32, {x = p.x, y = p.y + 1, z = p.z}},
{32, {x = p.x - 1, y = p.y - 1, z = p.z}},
{32, {x = p.x + 1, y = p.y + 1, z = p.z}},
{32, {x = p.x - 1, y = p.y + 1, z = p.z}},
{32, {x = p.x + 1, y = p.y - 1, z = p.z}}
}

if not isCreature(cid) then return LUA_ERROR end

for i = 1, #T do
ret[getPlayerGUID(cid)] = addEvent(doSendMagicEffect, 1 * 1000, T[i][2], T[i][1])
end
end

function onEquip(cid, item, slot)

if getPlayerStorageValue(cid, 32178) == -1 then

sairEfeito(cid)
setPlayerStorageValue(cid, 32178, 1)

end
return true
end

function onDeEquip(cid, item, slot)
stopEvent(ret[getPlayerGUID(cid)]
ret[getPlayerGUID(cid)] = nil
setPlayerStorageValue(cid, 32178, -1)
return true
end

 

 

 

Manda o script de só aparecer o efeito em roda caso o player tiver usando SET FULL. plx, ty

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

×
×
  • Criar Novo...