• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Aura effect with item

Grading

New Member
Joined
Apr 27, 2014
Messages
7
Reaction score
0
Hello friends, would you please help me with a script that I need. It is about the aura effect, the one that gives you life, skills and the effect surrounds the player. I would like to see if the effect can be made to be obtained when using an item and that the aura effect does not disappear when logging. Thank you very much for your time.

aura10.png
 
TFS version? Try this one
 
Create new action script and add this to it.
Lua:
function onUse(cid, item, fromPosition, itemEX, toPosition)
       if not getPlayerStorageValue(cid, 13540) == 1 then
       doPlayerSetStorageValue(cid, 13540, 1)
       doRemoveItem(item.uid, 1)
    else
        doPlayerSendCancel(cid, "You may not use this.")
    end
    return TRUE
end
XML:
<action itemid="YOURITEMID" event="script" value="YOURSCRIPTNAME.lua"/>
Then create creaturescripts script and add this to it.
Lua:
-- CONFIGURAÇÕES
    porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem
    quantheal = 10 -- 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 = 3 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocura = 49 -- 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) then
            i = i+1
            tm = tempo/8
            return addEvent(efeitosAura,tm,i,tm,cid)
        else
            return efeitosAura(1,0,cid)
        end
    else
        return TRUE
    end
end

--Função principal
function onLogin(cid)
if getPlayerStorageValue(cid, 13540) == 1 then
    return efeitosAura(1,tempo/8,cid)
end
XML:
<event type="login" name="YOURSCRIPTNAME" event="script" value="YOURSCRIPTNAME.lua"/>
and register it to your login.lua
Lua:
registerCreatureEvent(cid, "YOURSCRIPTNAME")
Supposed to work although its on different language, I tested long time ago when I was helping Madra_
 
Change the storage value to another unused number instead of 13540
If it still doesn't work then change
Lua:
doPlayerSetStorageValue(cid, 13540, 1)
getPlayerStorageValue(cid, 13540) == 1
Lua:
setCreatureStorage(cid, 13540, 1)
getCreatureStorage(cid, 13540) == 1
 
Change the storage value to another unused number instead of 13540
If it still doesn't work then change
Lua:
doPlayerSetStorageValue(cid, 13540, 1)
getPlayerStorageValue(cid, 13540) == 1
Lua:
setCreatureStorage(cid, 13540, 1)
getCreatureStorage(cid, 13540) == 1
Still not working = (. But thank you very much
 
ACTION:
<action itemid="18113" script="Auras.lua" />





ACTION LUA:



-- CONFIGURAÇÕES
aurastr = 25950 -- storage da aura
estr = 25951 -- storage para o exhaust
porcentagem = 300 -- chance de curar em cada volta da aura, em porcentagem
quantheal = 65 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura)
tempo = 6000 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
tipoaura = 990 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
efeitocura = 485 -- 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 = {x = getPlayerPosition(cid).x + 1, y = getPlayerPosition(cid).y + 0, z = getPlayerPosition(cid).z}
local atual2 = {x = getPlayerPosition(cid).x + 0, y = getPlayerPosition(cid).y + 0, z = getPlayerPosition(cid).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
doSendMagicEffect(atual, tipoaura)
else
doSendMagicEffect(atual, tipoaura)
end
doSendMagicEffect(atual2, efeitocura)
end
if(i==8) then
doSendMagicEffect(atual, tipoaura)
elseif(i<8) then
doSendMagicEffect(atual, 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

function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerStorageValue(cid, 13501) < 1 then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'STORAGE PRA PODER USAR A AURA') and true
end
if(getPlayerStorageValue(cid, aurastr)==2) then
setPlayerStorageValue(cid, estr, os.time()+2)
setPlayerStorageValue(cid, aurastr, -1)
doPlayerSendCancel(cid,"Aura desligada!")
else
doPlayerSendCancel(cid,"Aura ligada!")
setPlayerStorageValue(cid, aurastr, 2)
efeitosAura(1,tempo/8,cid)
end
return TRUE
end
 
Tried this one, but after monster attacking me it turns off

Lua:
    aurastr = 25950 -- storage da aura
    estr = 25951 -- storage para o exhaust
    porcentagem = 5 -- chance de curar em cada volta da aura, em porcentagem
    quantheal = 5 -- 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 = 28 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocura = 24 -- 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 getCreatureMana(cid)<getCreatureMaxMana(cid)) then
            player:addMana(cid, getCreatureMaxMana(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

aura1equip:type("equip")
aura1equip:id(39830)
aura1equip: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
aura1dequip:type("deequip")
aura1dequip:id(39830)
aura1dequip:register()
 
Tried this one, but after monster attacking me it turns off

Lua:
    aurastr = 25950 -- storage da aura
    estr = 25951 -- storage para o exhaust
    porcentagem = 5 -- chance de curar em cada volta da aura, em porcentagem
    quantheal = 5 -- 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 = 28 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocura = 24 -- 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 getCreatureMana(cid)<getCreatureMaxMana(cid)) then
            player:addMana(cid, getCreatureMaxMana(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

aura1equip:type("equip")
aura1equip:id(39830)
aura1equip: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
aura1dequip:type("deequip")
aura1dequip:id(39830)
aura1dequip:register()
Make a new post, post ur tfs version, paste the script you are using, tell us what you expect it to do, what it does now & how you tried to solve it yourself.
 
Back
Top