Ir para conteúdo

Aura Sistem ( Tfs 1.x )


SrNaja

Posts Recomendados

Sistema funciona da seguinte forma, ao digitar : !aura on, a aura do player vai ligar, enquanto ela estiver ligada o player vai ficar regenerando a vida dele, ao digitar : !aura off, ela vai desligar e o player vai parar de regenerar a vida dele, vou estar deixando um video aqui em baixo 

 
Agora vamos colocar o codigo

Em data/talkactions/script/, crie um arquivo chamado aura.lua, e coloque isso dentro dele :
 

local config_aurea = {
    effect = 50; -- efeito que vai ficar girando no player
    effect_health = 162; -- efeito qnd curar o player
    level_use = { -- level que vai ser usado (min/max)
        min = 1,
        max = 600,
    } ;
    health = 10; -- tanto que vai curar por time configurado
    pos_aurea = { -- não mexa
        [1] = {x = 0, y = -1};
        [2] = {x = 1, y = -1};
        [3] = {x = 1, y = 0};
        [4] = {x = 1, y = 1};
        [5] = {x = 0, y = 1};
        [6] = {x = -1, y = 1};
        [7] = {x = -1, y = 0};
        [8] = {x = -1, y = -1};
    };
    storage_pos = 1547637649; -- não mexa e nem repita esse valor em outro script!!
    storage = 165477963; -- não mexa e nem repita esse valor em outro script!!
    tempo_aurea = 1; -- tempo da aurea para passar em cada posição
}

local function calculePosAurea(player_uid)
    local player = Player(player_uid)
    if not player then
        return
    end

    if player:getStorageValue(config_aurea.storage) <= 0 then
        return
    end

    if(player:getStorageValue(config_aurea.storage_pos) >= 8)then
        player:setStorageValue(config_aurea.storage_pos, 0)
    end

    local storage_ = player:getStorageValue(config_aurea.storage_pos)

    player:setStorageValue(config_aurea.storage_pos, storage_ + 1)

    local new_storage_ = player:getStorageValue(config_aurea.storage_pos)
    return new_storage_
end

local function posAurea(player_uid)
    local player = Player(player_uid)
    if not player then
        return 
    end

    if player:getStorageValue(config_aurea.storage) <= 0 then
        return
    end

    local pos_x = player:getPosition().x
    local pos_y = player:getPosition().y
    local pos_z = player:getPosition().z

    local aa = calculePosAurea(player_uid)

    local pos = Position(pos_x + config_aurea.pos_aurea[aa].x, pos_y + config_aurea.pos_aurea[aa].y, pos_z)
    if not pos then
        return
    end

   return pos
end

local function aurea(player_uid)
    local player = Player(player_uid)
    if not player then
        return
    end

    if player:getStorageValue(config_aurea.storage) <= 0 then
        return
    end

    local player_position = player:getPosition()
    player:addHealth(config_aurea.health)
    player_position:sendMagicEffect(config_aurea.effect_health)

    local position = posAurea(player_uid)
    local position_ = posAurea(player_uid)
    position:sendDistanceEffect(position_, config_aurea.effect)
    addEvent(aurea, config_aurea.tempo_aurea, player_uid)
end

function onSay(player, words, param)
    if words == "!aura on" then
        if player:getLevel() > config_aurea.level_use.max then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, player:getName() .. " seu level(" .. player:getLevel() .. ") precisa ser maior(" .. config_aurea.level_use.max)
            return false
        end
    
        if player:getLevel() < config_aurea.level_use.min then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, player:getName() .. " seu level(" .. player:getLevel() .. ") precisa ser menor(" .. config_aurea.level_use.max)
            return false
        end
    
        if player:getStorageValue(config_aurea.storage) >= 1 then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, player:getName() .. " Você ja esta com a aurea ligada")
            return false
        end
    
        player:setStorageValue(config_aurea.storage, 1)
        player:setStorageValue(config_aurea.storage_pos, 0)
        aurea(player.uid)
    elseif words == "!aura off" then
            player:setStorageValue(config_aurea.storage, 0)
        end
  return false 
end


 

Agora em data/talkactions/talkactions.xml, abra ele e coloque :

 

<talkaction words="!aura on;!aura off" script="aura.lua"/>


Agora em data/creaturescript/script/login.lua, abra ele e embaixo de :
 

player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)


Coloque
 

	player:setStorageValue(165477963, 0)
    player:setStorageValue(1547637649, 0)


 

Creditos : Sr. Naja

 

Editado por SrNaja
Atualização no sistema!
Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...