Ir para conteúdo

Pergunta

Iae smile.png

 

Bom, vim pedir alguns scripts para TFS 0.3.6... Vou explica-los.

 

1º- Atributos por storages:

 

  Citar

 

Funcionaria da seguinte maneira: Existem 4 storages no meu servidor (21201) (21202) (21203) (21204), cada storage corresponde a uma quest de cada vocação de Sorcerer(01) até knight (04). O pedido é se alguém conseguiria fazer um script onde cada storage adicionaria um atributo ao jogador (obs: esses storages são para sempre).

Atributos:

21201: Adicionaria uma porcentagem de regeneração de mana. (Se a porcentagem for 50%, o jogador tem 50% de chance de curar 20% de sua mana).

21202: Adicionaria uma porcentagem de absorver sangue de jogadores ou monstros em sua volta (3x3). (Se a porcentagem for 50%, o jogador tem 50% de chance de sugar 20% de life e mana de seus inimigos). obs: não sei e a absorção de mana funcionaria em monstros.

2103: A​diciona uma quantidade de velocidade ao jogador e aumenta uma porcentagem em sua precisão com armas de distancia. (Aumenta 20% em acertar ataques a longa distância). sabe quando o paladino erra o ataque? Então, essa porcentagem diminuiria a chance desses erros acontecerem.

2104: Aumenta uma porcentagem em refletir uma porcentagem do dano recebido dos inimigos. (Se a porcentagem for 50%, o jogador tem 50% de chance de refletir 20% do dano recebido).​

obs: Esses valores são exemplos, eles podem ser mudados*

 

2º- Magias passivas:

 

  Citar

 

Funcionaria da seguinte maneira: O jogador iria receber uma storage já configurada no meu servidor, essa storage desbloquearia uma magia passiva. Após conseguir esse storage o jogador ficaria com um efeito nele mesmo eternamente. A magia teria uma porcentagem para lançar por exemplo: Se configurar 50% na magia, ela teria 50% de chance de se enfurecer e atacar quem está te atacando. Vou dar alguns exemplos de magias que se parecem com isso:

soul system/ - Esse sistema contém 3 scripts, o que se parece com meu pedido é o sistema de auras, onde o jogador fica com uma aura o rondando e ela tem uma chance de atacar quem o ataca. Mas eu não quero que ela fique em volta do jogador.

O estilo do ataque seria assim: Um efeito cairia do céu e atingira o alvo(ou os alvos) que a magia quer atingir, tenho esse script:

 

 

  Mostrar conteúdo oculto

 

 

Ele foi modificado na gambiarra kkk, Mas é essa noção.

 

 

3º - Magia que absorve. Resolvido por Zipter98 ​

 

  Citar

 

F​uncionaria da seguinte forma: Já viram o movimento "Lech Seed" nos poketibias? Então é o mesmo conceito. O jogador mandaria a magia no inimigo e a magia absorveria uma quantidade de sangue a cada 1 segundo por 10 segundos. Cada vez que a magia absorveria o sangue aparece um efeito no inimigo, mesma coisa que o lech seed.

 

 

Bom, não sei se isso é possível, mas eu tive essas ideias só que não sei fazer os scripts. Espero que alguém me ajude, se eu tiver mais ideias eu posto aqui. Bjs :*​

Editado por Clarym
Link para o comentário
https://xtibia.com/forum/topic/236830-alguns-scripts/
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

3º pedido:

 

local config = {
    distance_effect = xxx,        --Distance effect. Se não quiser, basta colocar false.
    effect = xxx,                 --Efeito que aparecerá no alvo.
    times = 10,                   --Quantos hits, no total.
    interval = 1000               --Intervalo de tempo entre as absorções.
}
 
function leech_seed(cid, target, times)
    local damage_formula = {min = getPlayerLevel(cid) * 3, max = getPlayerLevel(cid) * 6}            --Fórmula de dano.
    
    if not isCreature(cid) or not isCreature(target) or times <= 0 then return true end
    local damage = math.random(damage_formula.min, damage_formula.max)
    
    doSendMagicEffect(getThingPos(target), config.effect)
    doSendAnimatedText(getThingPos(target), "-"..damage, 144)
    doCreatureAddHealth(target, -damage)
    doCreatureAddHealth(cid, damage)
    addEvent(leech_seed, config.interval, cid, target, times - 1)
end
 
function onCastSpell(cid, var)
    local target = variantToNumber(var)
    
    if not isCreature(target) then
        return doPlayerSendCancel(cid, "You need a target to cast this spell.")
    end
    if config.distance_effect then
        doSendDistanceShoot(getThingPos(cid), getThingPos(target), config.distance_effect)
    end
    leech_seed(cid, target, config.times)
    return true
end
Link para o comentário
https://xtibia.com/forum/topic/236830-alguns-scripts/#findComment-1669345
Compartilhar em outros sites

  • 0
  Em 19/09/2015 em 18:34, zipter98 disse:

 

3º pedido:

local config = {
    distance_effect = xxx,        --Distance effect. Se não quiser, basta colocar false.
    effect = xxx,                 --Efeito que aparecerá no alvo.
    times = 10,                   --Quantos hits, no total.
    interval = 1000               --Intervalo de tempo entre as absorções.
}
 
function leech_seed(cid, target, times)
    local damage_formula = {min = getPlayerLevel(cid) * 3, max = getPlayerLevel(cid) * 6}            --Fórmula de dano.
    
    if not isCreature(cid) or not isCreature(target) or times <= 0 then return true end
    local damage = math.random(damage_formula.min, damage_formula.max)
    
    doSendMagicEffect(getThingPos(target), config.effect)
    doSendAnimatedText(getThingPos(target), "-"..damage, 144)
    doCreatureAddHealth(target, -damage)
    doCreatureAddHealth(cid, damage)
    addEvent(leech_seed, config.interval, cid, target, times - 1)
end
 
function onCastSpell(cid, var)
    local target = variantToNumber(var)
    
    if not isCreature(target) then
        return doPlayerSendCancel(cid, "You need a target to cast this spell.")
    end
    if config.distance_effect then
        doSendDistanceShoot(getThingPos(cid), getThingPos(target), config.distance_effect)
    end
    leech_seed(cid, target, config.times)
    return true
end

 

Perfeito! wub.png

 

Você poderia fazer uma parecida com essa? Só que em vez de tirar vida, deixaria o jogador sem se mexer e sem poder curar por X segundos? E durante esses X segundos o jogador viraria um item (id 7171)

Link para o comentário
https://xtibia.com/forum/topic/236830-alguns-scripts/#findComment-1669540
Compartilhar em outros sites

  • 0

Spell:

local config = {
    itemId = 7171,                 --Outfit (item) que o target irá assumir.
    time = 10,                     --Duração do debuff.
    distance_effect = xxx          --Distance effect. Se não quiser, basta colocar false.
}
 
function onCastSpell(cid, var)
    local target = variantToNumber(var)
    
    if not isCreature(target) then
        return doPlayerSendCancel(cid, "You need a target to cast this spell.")
    end
    if config.distance_effect then
        doSendDistanceShoot(getThingPos(cid), getThingPos(target), config.distance_effect)
    end
    doSetCreatureOutfit(cid, {lookTypeEx = config.itemId}, config.time * 1000)
    setPlayerStorageValue(cid, 9182, os.time() + config.time)
    doCreatureSetNoMove(cid, true)
    addEvent(function()
        if not isPlayer(cid) then return true end
        doCreatureSetNoMove(cid, false)
    end, config.time * 1000)
    return true
end
Creatureevent (não se esqueça de registrá-lo em login.lua):
function onStatsChange(cid, attacker, type, combat, value)
    if type == STATSCHANGE_HEALTHGAIN and isPlayer(cid) and getPlayerStorageValue(cid, 9182) > os.time() then
        return false
    end
    return true
end
Editado por zipter98
Link para o comentário
https://xtibia.com/forum/topic/236830-alguns-scripts/#findComment-1669676
Compartilhar em outros sites

  • 0
  Em 21/09/2015 em 22:01, zipter98 disse:

 

Spell:

local config = {
    itemId = 7171,                 --Outfit (item) que o target irá assumir.
    time = 10,                     --Duração do debuff.
    distance_effect = xxx          --Distance effect. Se não quiser, basta colocar false.
}
 
function onCastSpell(cid, var)
    local target = variantToNumber(var)
    
    if not isCreature(target) then
        return doPlayerSendCancel(cid, "You need a target to cast this spell.")
    end
    if config.distance_effect then
        doSendDistanceShoot(getThingPos(cid), getThingPos(target), config.distance_effect)
    end
    doSetCreatureOutfit(cid, {lookTypeEx = config.itemId}, config.time * 1000)
    setPlayerStorageValue(cid, 9182, os.time() + config.time)
    doCreatureSetNoMove(cid, true)
    addEvent(function()
        if not isPlayer(cid) then return true end
        doCreatureSetNoMove(cid, false)
    end, config.time * 1000)
    return true
end
Creatureevent (não se esqueça de registrá-lo em login.lua):
function onStatsChange(cid, attacker, type, combat, value)
    if type == STATSCHANGE_HEALTHGAIN and isPlayer(cid) and getPlayerStorageValue(cid, 9182) > os.time() then
        return false
    end
    return true
end

 

 

A tag pro creatureevent seria "combat"?

Link para o comentário
https://xtibia.com/forum/topic/236830-alguns-scripts/#findComment-1669801
Compartilhar em outros sites

  • 0

Tópico Movido
Este tópico foi movido de "OTServSuporte OTServSuporte Scripting"
para "OTServSuporte OTServSuporte ScriptingPedidos e dúvidas resolvidos - Scripting".

 

 

Link para o comentário
https://xtibia.com/forum/topic/236830-alguns-scripts/#findComment-1674104
Compartilhar em outros sites

×
×
  • Criar Novo...