Untitled

 avatar
unknown
plain_text
a month ago
2.6 kB
2
Indexable
-- Konfiguracja
local manaPotionID = 268 -- ID mana potiona

-- Definicja czarów i opcji
local spells = {
    {name = "utito tempo", mana = 50, cooldown = 20000, range = 7, count = 1, padding = 2}, -- Buff czar, rzucany rzadziej
    {name = "exori gran", mana = 90, cooldown = 1000, range = 1, count = 1, padding = 2}, 
    {name = "exori", mana = 80, cooldown = 1000, range = 1, count = 1, padding = 2},
    {name = "exori amp kor", mana = 120, cooldown = 1000, range = 1, count = 1, padding = 2},
    {name = "exori min", mana = 60, cooldown = 500, range = 1, count = 1, padding = 2}  -- Dodany Exori Min
}

-- Zmienna przechowująca czas ostatniego rzucenia dla każdego czaru
local lastCasts = {}
for _, spell in ipairs(spells) do
    lastCasts[spell.name] = 0
end

-- Funkcja do obliczania kierunku do celu
local function GetDirectionToTarget(target)
    local playerPos = Self.Position()
    local targetPos = target:GetPosition()

    if targetPos.x > playerPos.x then
        return "EAST"
    elseif targetPos.x < playerPos.x then
        return "WEST"
    elseif targetPos.y > playerPos.y then
        return "SOUTH"
    elseif targetPos.y < playerPos.y then
        return "NORTH"
    end
    return nil
end

-- Funkcja główna
Module.New("Cast Spell Combo", function(module)
    -- Sprawdź, czy istnieje cel
    local targetID = Self.TargetID()
    if targetID == 0 then
        return -- Brak celu, zakończ wykonanie tej iteracji
    end

    -- Utwórz obiekt celu
    local target = Creature.New(targetID)

    -- Obróć postać w stronę celu przed rzutem czaru
    local direction = GetDirectionToTarget(target)
    if direction then
        Self.Turn(direction)  -- Obróć w odpowiednią stronę
    end

    -- Iteruj przez listę czarów
    for _, spell in ipairs(spells) do
        local currentTime = os.clock() * 1000

        -- Sprawdź warunki: mana, odległość, liczba celów, brak cooldownu
        if Self.Mana() >= spell.mana and 
           target:DistanceFromSelf() <= spell.range and
           Self.CanCastSpell(spell.name) then

            -- Rzuć czar
            Self.Say(spell.name)
            lastCasts[spell.name] = currentTime

            -- Użyj mana potiona po rzuceniu "exori gran"
            if spell.name == "exori gran" then
                Self.UseItemWithMe(manaPotionID)
            end

            -- Przerywamy po rzuceniu czaru, przechodzimy do następnego czaru w następnej iteracji
            break
        end
    end
end)
Leave a Comment