Ir para conteúdo
Propaganda

Posts Recomendados

Salve rapaziada do TibiaDev. Por acaso alguma alma bondosa pode me ajudar criando uma spell de Clone das sombras pro TFS 1.4.2? no caso eu precisaria que o clone recebesse 10% da vida do player, a move speed dele também, e o mesmo nome. Claro também quantidade de clones que podem ser invocados. Tenho a source para caso precise adicionar algo nela. Desde já agradeço.

Link para o comentário
https://tibiadevs.com/forums/topic/820-pedido-de-spell-clone-tfs-142/
Compartilhar em outros sites

Spoiler

local config = {
    cloneHealthPercent = 10, -- Percentual da vida do player que o clone terá
    cloneMoveSpeed = true,   -- O clone terá a mesma velocidade do jogador
    maxClones = 2,           -- Quantidade máxima de clones
    duration = 15 * 1000     -- Duração dos clones em milissegundos (15 segundos)
}

function onCastSpell(creature, var)
    local player = creature:getPlayer()
    if not player then
        return false
    end

    -- Verificar se o jogador já tem clones ativos
    local summons = player:getSummons()
    if #summons >= config.maxClones then
        player:sendCancelMessage("Você já tem o máximo de clones invocados.")
        return false
    end

    -- Criar o clone
    for i = 1, (config.maxClones - #summons) do
        local clone = Game.createMonster(player:getName(), player:getPosition())
        if clone then
            -- Ajustar vida do clone
            local cloneHealth = math.max(1, math.floor(player:getMaxHealth() * config.cloneHealthPercent / 100))
            clone:setMaxHealth(cloneHealth)
            clone:addHealth(cloneHealth - clone:getHealth())

            -- Ajustar velocidade do clone
            if config.cloneMoveSpeed then
                clone:changeSpeed(player:getSpeed() - clone:getSpeed())
            end

            -- Tornar o clone um summon do jogador
            clone:setMaster(player)

            -- Remover o clone após a duração
            addEvent(function(cloneId)
                local clone = Creature(cloneId)
                if clone then
                    clone:remove()
                end
            end, config.duration, clone:getId())
        end
    end

    return true
end
 

 

  • Like 1
Link para o comentário
https://tibiadevs.com/forums/topic/820-pedido-de-spell-clone-tfs-142/#findComment-4269
Compartilhar em outros sites

8 horas atrás, yomee disse:
  Ocultar conteúdo

local config = {
    cloneHealthPercent = 10, -- Percentual da vida do player que o clone terá
    cloneMoveSpeed = true,   -- O clone terá a mesma velocidade do jogador
    maxClones = 2,           -- Quantidade máxima de clones
    duration = 15 * 1000     -- Duração dos clones em milissegundos (15 segundos)
}

function onCastSpell(creature, var)
    local player = creature:getPlayer()
    if not player then
        return false
    end

    -- Verificar se o jogador já tem clones ativos
    local summons = player:getSummons()
    if #summons >= config.maxClones then
        player:sendCancelMessage("Você já tem o máximo de clones invocados.")
        return false
    end

    -- Criar o clone
    for i = 1, (config.maxClones - #summons) do
        local clone = Game.createMonster(player:getName(), player:getPosition())
        if clone then
            -- Ajustar vida do clone
            local cloneHealth = math.max(1, math.floor(player:getMaxHealth() * config.cloneHealthPercent / 100))
            clone:setMaxHealth(cloneHealth)
            clone:addHealth(cloneHealth - clone:getHealth())

            -- Ajustar velocidade do clone
            if config.cloneMoveSpeed then
                clone:changeSpeed(player:getSpeed() - clone:getSpeed())
            end

            -- Tornar o clone um summon do jogador
            clone:setMaster(player)

            -- Remover o clone após a duração
            addEvent(function(cloneId)
                local clone = Creature(cloneId)
                if clone then
                    clone:remove()
                end
            end, config.duration, clone:getId())
        end
    end

    return true
end
 

 

Então meu mano, a spell não está criando o summon. Ele solta a magia, consome mana e não da nenhum erro. Porem o summon não aparece.

Link para o comentário
https://tibiadevs.com/forums/topic/820-pedido-de-spell-clone-tfs-142/#findComment-4270
Compartilhar em outros sites

Eu fiz este sistema há um ano para um amigo que está usando um servidor de Naruto. Então, basta adicionar ao seu OT em data/scripts/nome.lua. Este sistema utiliza RevScript.

 

Não é necessário editar na source. Caso apareçam erros no console, como a falta de alguma função, por exemplo, me reporte aqui que vou ajudar no que for preciso, ok?

local config = {
    maxClones = 3,          -- Número máximo de clones que podem ser criados
    healthPercent = 0.10,   -- Porcentagem da vida do jogador que o clone terá (10%)
    spellName = "Clone das Sombras", -- Nome fixo da magia (não altere esta linha)
    words = "utamo clone",  -- Nome da magia, pode ser alterado para o nome preferido (ex.: diga no jogo "utamo clone")
    cooldown = 30,          -- Tempo de espera em segundos para usar novamente
    manaCost = 500,         -- Quantidade de mana necessária para usar
    minLevel = 20,          -- Nível mínimo necessário para usar a magia
    monsterName = "clone",  -- Nome do monstro base que será usado como clone
    exhaustGroup = "support", -- Grupo de exaustão da magia
    -- Lista de vocações que podem usar a magia
    vocations = {
        "druid", "elder druid",
        "sorcerer", "master sorcerer",
        "paladin", "royal paladin",
        "knight", "elite knight"
    },
    needPremium = false     -- Define se precisa ser conta premium para usar
}

local spell = Spell("instant")

function spell.onCastSpell(creature, variant)
    local player = creature:getPlayer()
    if not player then
        return false
    end

    local summons = player:getSummons()
    if #summons >= config.maxClones then
        player:sendCancelMessage("Você já atingiu o número máximo de clones permitidos!")
        return false
    end

    local remainingClones = config.maxClones - #summons
    local playerHealth = player:getHealth()
    local playerOutfit = player:getOutfit()
    local playerSpeed = player:getSpeed()
    
    for i = 1, remainingClones do
        local clone = Game.createMonster(config.monsterName, player:getPosition())
        if clone then
            clone:setMaster(player)
            clone:rename(player:getName())
            
            player:addSummon(clone)
            
            local cloneHealth = math.ceil(playerHealth * config.healthPercent)
            clone:setMaxHealth(cloneHealth)
            clone:addHealth(cloneHealth)
            
            clone:setOutfit(playerOutfit)
            clone:changeSpeed(playerSpeed)
        end
    end
    
    return true
end

spell:name(config.spellName)
spell:words(config.words)
spell:group(config.exhaustGroup)
spell:vocation(unpack(config.vocations))
spell:id(24)
spell:cooldown(config.cooldown * 1000)
spell:groupCooldown(2 * 1000)
spell:level(config.minLevel)
spell:mana(config.manaCost)
spell:isSelfTarget(true)
spell:isAggressive(false)
spell:needLearn(false)
spell:isPremium(config.needPremium)
spell:register()

image.png.46fda7795dca12de9628f5dbaf586879.png

  • Like 3
  • Thanks 2
Link para o comentário
https://tibiadevs.com/forums/topic/820-pedido-de-spell-clone-tfs-142/#findComment-4271
Compartilhar em outros sites

12 minutos atrás, GM Vortex disse:

Eu fiz este sistema há um ano para um amigo que está usando um servidor de Naruto. Então, basta adicionar ao seu OT em data/scripts/nome.lua. Este sistema utiliza RevScript.

 

Não é necessário editar na source. Caso apareçam erros no console, como a falta de alguma função, por exemplo, me reporte aqui que vou ajudar no que for preciso, ok?

local config = {
    maxClones = 3,          -- Número máximo de clones que podem ser criados
    healthPercent = 0.10,   -- Porcentagem da vida do jogador que o clone terá (10%)
    spellName = "Clone das Sombras", -- Nome fixo da magia (não altere esta linha)
    words = "utamo clone",  -- Nome da magia, pode ser alterado para o nome preferido (ex.: diga no jogo "utamo clone")
    cooldown = 30,          -- Tempo de espera em segundos para usar novamente
    manaCost = 500,         -- Quantidade de mana necessária para usar
    minLevel = 20,          -- Nível mínimo necessário para usar a magia
    monsterName = "clone",  -- Nome do monstro base que será usado como clone
    exhaustGroup = "support", -- Grupo de exaustão da magia
    -- Lista de vocações que podem usar a magia
    vocations = {
        "druid", "elder druid",
        "sorcerer", "master sorcerer",
        "paladin", "royal paladin",
        "knight", "elite knight"
    },
    needPremium = false     -- Define se precisa ser conta premium para usar
}

local spell = Spell("instant")

function spell.onCastSpell(creature, variant)
    local player = creature:getPlayer()
    if not player then
        return false
    end

    local summons = player:getSummons()
    if #summons >= config.maxClones then
        player:sendCancelMessage("Você já atingiu o número máximo de clones permitidos!")
        return false
    end

    local remainingClones = config.maxClones - #summons
    local playerHealth = player:getHealth()
    local playerOutfit = player:getOutfit()
    local playerSpeed = player:getSpeed()
    
    for i = 1, remainingClones do
        local clone = Game.createMonster(config.monsterName, player:getPosition())
        if clone then
            clone:setMaster(player)
            clone:rename(player:getName())
            
            player:addSummon(clone)
            
            local cloneHealth = math.ceil(playerHealth * config.healthPercent)
            clone:setMaxHealth(cloneHealth)
            clone:addHealth(cloneHealth)
            
            clone:setOutfit(playerOutfit)
            clone:changeSpeed(playerSpeed)
        end
    end
    
    return true
end

spell:name(config.spellName)
spell:words(config.words)
spell:group(config.exhaustGroup)
spell:vocation(unpack(config.vocations))
spell:id(24)
spell:cooldown(config.cooldown * 1000)
spell:groupCooldown(2 * 1000)
spell:level(config.minLevel)
spell:mana(config.manaCost)
spell:isSelfTarget(true)
spell:isAggressive(false)
spell:needLearn(false)
spell:isPremium(config.needPremium)
spell:register()

image.png.46fda7795dca12de9628f5dbaf586879.png

Muito obrigado, funcionou direitinho essa, vlw mesmo!

  • Like 1
  • Haha 1
Link para o comentário
https://tibiadevs.com/forums/topic/820-pedido-de-spell-clone-tfs-142/#findComment-4272
Compartilhar em outros sites

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...