QuebradaZN
Member
- Joined
- May 5, 2019
- Messages
- 43
- Solutions
- 3
- Reaction score
- 6
Good night people
I was using a tfs 1.3 pack more, I decided to migrate to otservbr (revscript)
I have an aura system, on tfs 1.3 it works perfectly, on otservbr when equipped, it has a multiplied effect, you can equip more than 1x, I tried several modes ...
Maybe you could have expressed me badly
MoveMent
I was using a tfs 1.3 pack more, I decided to migrate to otservbr (revscript)
I have an aura system, on tfs 1.3 it works perfectly, on otservbr when equipped, it has a multiplied effect, you can equip more than 1x, I tried several modes ...
Maybe you could have expressed me badly
MoveMent
Lua:
-- CONFIGURAÇÕES
aurastr = 25950 -- storage da aura
estr = 25951 -- storage para o exhaust
porcentagem = 50 -- chance de curar em cada volta da aura, em porcentagem
quantheal = 20 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura)
tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
tipoaura = 31 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
efeitocura = 54 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)
-- Função que chama a aura
function efeitosAura(i,tm,cid)
if(isCreature(cid)) then
local atual = getCreaturePosition(cid)
local posaura = {
{x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
{x=atual.x, y=(atual.y)-1, z=atual.z},
{x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
{x=(atual.x)+1, y=atual.y, z=atual.z},
{x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
{x=atual.x, y=(atual.y)+1, z=atual.z},
{x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
{x=(atual.x)-1, y=atual.y, z=atual.z},
}
local chances = math.random(100)
if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then
doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
if(i<=8 and i>1) then
doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, atual, tipoaura)
else
doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura)
end
doSendMagicEffect(atual, efeitocura)
end
if(i==8) then
doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
elseif(i<8) then
doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura)
end
if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then
i = i+1
tm = tempo/8
return addEvent(efeitosAura,tm,i,tm,cid)
elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then
return efeitosAura(1,0,cid)
else
return TRUE
end
else
return TRUE
end
end
local auraequip = MoveEvent()
function auraequip.onEquip(player, item, slots_t, isCheck)
local slots_t = player:getSlotItem(CONST_SLOT_RING)
if slots_t and slots_t.itemid == item.itemid then
return false
end
doPlayerSendCancel(player,"Você Ativou a Aura!")
setPlayerStorageValue(player, aurastr, 2)
efeitosAura(1,tempo/8,player.uid)
return true
end
auraequip:type("equip")
auraequip:id(9003)
auraequip:register()
auradequip = MoveEvent()
function auradequip.onDeEquip(player, item, slots_t, isCheck)
if(getPlayerStorageValue(player, aurastr)==2) then
setPlayerStorageValue(player, estr, os.time()+2)
setPlayerStorageValue(player, aurastr, -1)
doPlayerSendCancel(player,"Você Desativou a Aura!")
return true
end
end
auradequip:type("deequip")
auradequip:id(9003)
auradequip:register()