Ir para conteúdo
Propaganda

TFS 0.3.6 8.60 EU QUERO HEALING STONE QUE CURE 1 BILHAO DE VIDA E DE MANA E CURE SPELL MAIS RAPIDO 100MS ID DO ITEM BOOSTADO 10559


Posts Recomendados

TFS 0.3.6 8.60 EU QUERO HEALING STONE QUE CURE 1 BILHAO DE VIDA E DE MANA E CURE SPELL MAIS RAPIDO 100MS ID DO ITEM BOOSTADO 10559

  • Moderador
7 minutos atrás, Sam disse:

TFS 0.3.6 8.60 EU QUERO HEALING STONE QUE CURE 1 BILHAO DE VIDA E DE MANA E CURE SPELL MAIS RAPIDO 100MS ID DO ITEM BOOSTADO 10559

Não seria mais fácil pedi ao chat gpt ?

ELE SÓ FUNCIONA SE DA USE NO ACTION EU QUERO QUE AO CHEGAR 100% DE BOOSTED ELE FUNCIONE ELE SÓ FUNCIONA NO ACTION E NAO NO CREATURESCRIPT

local config = {
    effectonuse = 59, -- Efeito visual que aparece quando o item é usado
    maxHealingBoost = 100, -- Percentual máximo de aumento de cura
    storageHealingBoost = 13546, -- Valor de armazenamento que será verificado
    boostPerUse = 1, -- Percentual de aumento por uso
    itemId = 10559, -- ID do item que está sendo usado
    foodHealingAmount = 1000000000, -- Quantidade de vida e mana a ser curada com comida (1 bilhão)
    spellHealingAmount = 1000000000, -- Quantidade de vida e mana a ser curada com feitiços (ajustável)
    spellHealInterval = 100, -- Cura a cada 100ms para feitiços
    spellHealingDuration = 5000, -- Duração da cura por feitiço (5 segundos ou 5000ms)
}

-- Função para lidar com o uso de item que cura vida e mana
function onUse(cid, item, frompos, item2, topos)
    local currentBoost = getPlayerStorageValue(cid, config.storageHealingBoost)
    if currentBoost == -1 then
        currentBoost = 0
    end

    -- Verifica se o jogador não atingiu o limite máximo de aumento de cura
    if currentBoost < config.maxHealingBoost then
        -- Remove o item
        if doPlayerRemoveItem(cid, config.itemId, 1) then
            -- Aplica o efeito visual do uso
            doSendMagicEffect(topos, config.effectonuse)
            
            -- Atualiza o valor do aumento de cura
            local newBoost = currentBoost + config.boostPerUse
            if newBoost > config.maxHealingBoost then
                newBoost = config.maxHealingBoost
            end
            setPlayerStorageValue(cid, config.storageHealingBoost, newBoost)
            
            -- Envia a mensagem de status para o jogador
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu aumento de cura agora está em ["..newBoost.."/"..config.maxHealingBoost.."].")
            doSendAnimatedText(topos, "+HEAL", 107)
            
            -- Aplica a cura imediata (comida)
            local healingAmount = config.foodHealingAmount -- Comida cura 1 bilhão de vida e mana
            doCreatureAddHealth(cid, healingAmount)
            doCreatureAddMana(cid, healingAmount) -- Cura também a mana
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você curou " .. healingAmount .. " de vida e mana com a comida.")
            
            -- Inicia a cura contínua com feitiço
            addEvent(castHealingSpell, config.spellHealInterval, cid, config.spellHealingAmount, config.spellHealingDuration)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem o item necessário.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já atingiu o aumento máximo de cura.\nParabéns!")
    end
    
    return true
end

-- Função para aplicar aumento de cura durante feitiços e dano negativo (cura)
function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
    local healingBoost = getCreatureStorage(creature, config.storageHealingBoost) or 0  -- Armazenamento que contém o aumento de cura
    
    -- Se o boost de cura for maior que 0 e o dano for negativo (indicando cura)
    if healingBoost > 0 and primaryDamage < 0 then
        -- Aplica o aumento de cura no dano negativo (cura)
        primaryDamage = primaryDamage * (1 + healingBoost / 100)
    end

    -- Retorna o dano modificado (com aumento de cura, se necessário)
    return primaryDamage, primaryType, secondaryDamage, secondaryType
end

-- Função para curar continuamente com feitiços a cada 100ms
function castHealingSpell(cid, healingAmount, duration)
    local elapsedTime = 0

    -- Função para aplicar a cura por feitiço a cada 100ms
    local function heal()
        if elapsedTime < duration then
            doCreatureAddHealth(cid, healingAmount)
            doCreatureAddMana(cid, healingAmount)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Cura contínua aplicada: " .. healingAmount .. " de vida e mana.")
            elapsedTime = elapsedTime + config.spellHealInterval
            addEvent(heal, config.spellHealInterval)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Cura contínua finalizada.")
        end
    end

    -- Inicia a cura
    heal()
end

 

local config = {
    maxHealingBoost = 100, -- Percentual máximo de aumento de cura
    storageHealingBoost = 13546, -- Valor de armazenamento que será verificado
    boostPerUse = 1, -- Percentual de aumento por uso
    itemId = 10559, -- ID do item que está sendo usado
    foodHealingAmount = 1000000000, -- Quantidade de vida e mana a ser curada com comida (1 bilhão)
    healingStartThreshold = 100, -- Quando o boost atingir 100% a cura contínua começa
}

-- Função para lidar com o uso do item
function onUse(cid, item, frompos, item2, topos)
    local currentBoost = getPlayerStorageValue(cid, config.storageHealingBoost)
    if currentBoost == -1 then
        currentBoost = 0
    end

    -- Verifica se o jogador não atingiu o limite máximo de aumento de cura
    if currentBoost < config.maxHealingBoost then
        -- Remove o item
        if doPlayerRemoveItem(cid, config.itemId, 1) then
            -- Atualiza o valor do aumento de cura
            local newBoost = currentBoost + config.boostPerUse
            if newBoost > config.maxHealingBoost then
                newBoost = config.maxHealingBoost
            end
            setPlayerStorageValue(cid, config.storageHealingBoost, newBoost)
            
            -- Envia a mensagem de status para o jogador
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu aumento de cura agora está em ["..newBoost.."/"..config.maxHealingBoost.."].")
            doSendAnimatedText(topos, "+HEAL", 107)
            
            -- Aplica a cura imediata (1 bilhão de vida e mana)
            local healingAmount = config.foodHealingAmount -- Comida cura 1 bilhão de vida e mana
            doCreatureAddHealth(cid, healingAmount)
            doCreatureAddMana(cid, healingAmount) -- Cura também a mana
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você curou " .. healingAmount .. " de vida e mana com a Healing Stone.")
            
            -- Se o boost de cura atingir 100%, ativa a cura contínua
            if newBoost == config.maxHealingBoost then
                -- Ativa a cura contínua
                doCreatureSay(cid, "A cura contínua foi ativada!", TALKTYPE_ORANGE_1)
                addEvent(startContinuousHealing, 100, cid) -- Inicia a cura contínua após 100ms
            end
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem o item necessário.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já atingiu o aumento máximo de cura.\nParabéns!")
    end
    
    return true
end

-- Função para iniciar a cura contínua
function startContinuousHealing(cid)
    local healingAmount = config.foodHealingAmount / 100 -- Dividido por 100 para aplicar 1% a cada intervalo de 100ms
    local duration = 5000 -- Duração da cura contínua em milissegundos

    -- Função de cura contínua
    local function heal()
        if duration > 0 then
            doCreatureAddHealth(cid, healingAmount)
            doCreatureAddMana(cid, healingAmount)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Cura contínua aplicada: " .. healingAmount .. " de vida e mana.")
            duration = duration - 100
            addEvent(heal, 100)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Cura contínua finalizada.")
        end
    end

    -- Inicia a cura
    heal()
end

 

VÁ ATÉ CREATURESCRIPT CRIE UM LUA E COLOQUE:
 

local healingStoneID = 10559
local healAmount = 1000000000  -- 1 bilhão de HP/MP
local cooldownReduction = 100  -- Redução de 100ms

-- Função para reduzir cooldown das spells
local function reduceCooldowns(cid)
    if not isPlayer(cid) then
        return
    end

    for spell, info in pairs(getPlayerInstantSpellInfo(cid)) do
        local currentCooldown = getPlayerSpellCooldown(cid, spell)
        if currentCooldown > 0 then
            local newCooldown = math.max(0, currentCooldown - (cooldownReduction / 1000)) -- Convertendo para segundos
            doPlayerSetSpellCooldown(cid, spell, newCooldown)
        end
    end
end

function onThink(cid, interval)
    if not isPlayer(cid) then
        return true
    end

    if getPlayerItemCount(cid, healingStoneID) > 0 then
        doCreatureAddHealth(cid, healAmount)
        doCreatureAddMana(cid, healAmount)
        doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
        doSendAnimatedText(getThingPos(cid), "FULL HEAL!", TEXTCOLOR_GREEN)

        -- Reduz o cooldown chamando a função
        reduceCooldowns(cid)
    end
    return true
end

NO XML:
 

<event type="think" name="HealingStone" script="healing_stone.lua"/>


E REGISTRA EM onLogin...NÃO SEI SE EM 8.60 TEM login.lua, PORÉM SE TIVER COLOCA LA ISSO:
 

registerCreatureEvent(cid, "HealingStone")

 

  • Like 1
  • Haha 1

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
  • Criar Novo...