Ir para conteúdo

Featured Replies

Postado

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

  • Respostas 6
  • Visualizações 1.3k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • 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 t

  • local config = { distance = 6, --Distância do "bumerangue". distEffect = 3, --Distance effect. minDamage = 500, --Dano mínimo. maxDamage = 1000,

Postado

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)

Postado
  • Autor

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

Postado
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

Postado
  • Autor

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 >

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo