Ir para conteúdo
  • Cadastre-se

Derivado (Pedido) 2 Spells Especiais RPG


Posts Recomendados

- Bom dia TK, pequisei muitos spells no forúm para meu projeto rpg, portanto encontrei bons spels e modifiquei... Porém preciso de 2 spells diferenciados que tenho em mente e gostaria da ajuda de vcs.. Vamos la!

 

1º Spell;

 

Uma spell para paladin onde ele joga uma flecha na difereção de 6 sqm essa flecha vai e volta pra ele mesmo se ele sair do sqm que ele atirou a flecha, como se a flecha fosse um possivel bomerangue e que essa flecha dê hit em algun monstro ou player que estive no caminho dela tanto no caminho de ida como no dê volta e que para usar essa spell seja 20 segundos cooldown. "não é spell de target"

 

 

2º Spell; Uma spells para knight, onde ele dê target no alvo use a magia e em seguida ele pulê no target dando 3 hit e 1 paralize e volte para seu lugar, sendo que essa spell tenha cooldown de 20 segundos, " após usar essa spell ele fique com effect durante o uso da magia até bate e volta pro lugar, effect: 25.

 

Bom se puderem audar, são boas spells!

Link para o post
Compartilhar em outros sites

cara, essa primeira não acho q seja possível fazer não.. eu posso tentar mas com o efeito da flecha acho q vai ficar muito quebrado a animação na parte de voltar.

Quanto a segunda, isso daqui pode te ajudar pra base da spell:


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ASSASSIN)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_NONE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local function delayedTeleport(cid, position)
if(not isCreature(cid)) then return true end
doTeleportThing(cid, position)
return true
end

function onCastSpell(cid, var)
addEvent(delayedTeleport, 500, cid, getCreaturePosition(cid))
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
doTeleportThing(cid, getThingPos(variantToNumber(var)), true)
return doCombat(cid, combat, var)
end





e no spells.xml


<instant name="Boomerang Step" words="insinuendi" lvl="50" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" groups="1,2000" icon="88" needlearn="0" event="script" value="boomerangstep.lua">
<vocation id="3"/>
<vocation id="7"/>
</instant>

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Mesmo assim valeu mesmo mano, muito obrigado adimiro muito seu trabalho e sua humildade em sempre está disposto a ajudar. Obrigado mesmo. +rep. 

Link para o post
Compartilhar em outros sites
local config = {
    distance = 6,              --Distância do "bumerangue".
    distEffect = 3,            --Distance effect.
    minDamage = 500,           --Dano mínimo.
    maxDamage = 1000,          --Dano máximo.
    interval = 400             --Tempo para o bumerangue voltar, em milésimos de segundo.
}

function getPosisBetween(fromPos, toPos)
    local posis = {}
    for i = 1, getDistanceBetween(fromPos, toPos) do
        local choices = {fromPos.x, fromPos.x + 1, fromPos.x - 1}
        if fromPos.x ~= toPos.x then
            table.sort(choices, function(a, b) if fromPos.x - toPos.x < 0 then return a > b else return a < b end end)
            fromPos.x = choices[1]
        end
        if fromPos.y ~= toPos.y then
            choices = {fromPos.y, fromPos.y + 1, fromPos.y - 1}
            table.sort(choices, function(a, b) if fromPos.y - toPos.y < 0 then return a > b else return a < b end end)
            fromPos.y = choices[1]
        end
        table.insert(posis, {x = fromPos.x, y = fromPos.y, z = fromPos.z})
    end
    return posis
end

function onCastSpell(cid)
    local playerPos = getThingPos(cid)
    local toPos = {
        [0] = {x = playerPos.x, y = playerPos.y - config.distance, z = playerPos.z},
        [1] = {x = playerPos.x + config.distance, y = playerPos.y, z = playerPos.z},
        [2] = {x = playerPos.x, y = playerPos.y + config.distance, z = playerPos.z},
        [3] = {x = playerPos.x - config.distance, y = playerPos.y, z = playerPos.z}
    }
    local spellToPos = toPos[getCreatureLookDirection(cid)]
    local posis = getPosisBetween(getThingPos(cid), spellToPos)
    doSendDistanceShoot(getThingPos(cid), spellToPos, config.distEffect)
    for i = 1, #posis do
        if not getTileInfo(posis[i]).protection then
            local pid = getTopCreature(posis[i]).uid
            if isMonster(pid) or isPlayer(pid) then
                doTargetCombatHealth(cid, pid, COMBAT_HOLYDAMAGE, -config.minDamage, -config.maxDamage, -1)
            end
        end
    end
    addEvent(function()
        if not isPlayer(cid) then return true end
        doSendDistanceShoot(spellToPos, getThingPos(cid), config.distEffect)
        posis = getPosisBetween(spellToPos, getThingPos(cid))
        for i = 1, #posis do
            if not getTileInfo(posis[i]).protection then
                local pid = getTopCreature(posis[i]).uid
                if isMonster(pid) or isPlayer(pid) then
                    doTargetCombatHealth(cid, pid, COMBAT_HOLYDAMAGE, -config.minDamage, -config.maxDamage, -1)
                end
            end
        end
    end, config.interval)
    return true
end
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Zipter98, outro grande membro que ja me ajudou a um ano atrás mais ou menos, obrigado vou testar e volto para te avisar! ;)


Error na linha 27 e 30 como não manjo quase nada de script sou meio leigo.

 

data/spells/scripts/bumerangue.lua30 attempt to perform arithmetic on global 'distance' < a nil value >

data/spells/scripts/bumerangue.lua27 attempt to perform arithmetic on global 'distance' < a nil value >

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo