AL
pedido

Spell de travar

Por Allangod, 16 de out. de 2015 em Scripts

13
1.7k
AllangodA
16 de outubro de 2015 às 16:06

Gostaria de uma spell que ao usá-la sairia um ataque com area 5x5, e quem for atingido ficará com o efeito 51 em seu corpo durante 10 seg e durante esse tempo (10seg) ficasse impossibilitado de se mover. Essa spell teria um cooldown de 20segundos.

CaronteC
17 de outubro de 2015 às 23:50

Vou fazer, pera aí...


Fiz:

 

VQm5HQc.png

 

crie um arquivo.lua em (spells/scripts)

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)


local area1 = {
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
}

local area = createCombatArea(area1, AREADIAGONAL_SQUAREWAVE5)
setCombatArea(combat, area)

function onCastSpell(cid, var)

local time = 10
local ppos = getThingPos(cid)

for x = (ppos.x - 5), (ppos.x + 5) do
    for y = (ppos.y - 5), (ppos.y + 5) do 
        local pos = {x = x, y = y, z = ppos.z}
        if isPlayer(getTopCreature(pos).uid) and (getTopCreature(pos).uid ~= cid) and not getTileInfo(pos).protection then
            doCreatureSetNoMove(getTopCreature(pos).uid, true)
            doPlayerSendTextMessage(getTopCreature(pos).uid, MESSAGE_EVENT_ADVANCE, "Voce foi preso por uma magia, voce sera solto em " .. time .." segundos." )
            addEvent(doCreatureSetNoMove, 1000*time, getTopCreature(pos).uid, false)
            for t = 1, time do
                 addEvent(doSendMagicEffect,1000 * t,pos, 51)
            end
        end
    end
end
    return doCombat(cid, combat, var)        
end

 

 

Adicione essa tag em (spells.xml)

<instant name="travarr" words="trave" lvl="0" mana="0" prem="0" selftarget="1" exhaustion="20000" needlearn="0" script="arquivo.lua">
</instant>

Não se esqueça de alterar a tag, como você quiser, coloquei o tempo de exhaust de 20 segundos na tag.

 


Use com sabedoria.


AAAA, só adicionando, na minha sincera opinião, 5x5 é muito, uma magia potente dessa, deveria ser no máximo 2x2.

Editado Outubro 17 por Caronte

AllangodA
18 de outubro de 2015 às 12:11

Até funcionou mano, mas tem um problema

Se o player tiver de follow attack, ele não fica travado.

Editado Outubro 18 por Allangod

CaronteC
18 de outubro de 2015 às 15:55

Vou arrumar assim que pegar no pc.

AllangodA
19 de outubro de 2015 às 23:17

Estou no aguardo.

CaronteC
20 de outubro de 2015 às 00:42

Estou no aguardo.

 

Qual é o seu executável?

testei aqui, e tá funcionando.

AllangodA
20 de outubro de 2015 às 08:57

 

Qual é o seu executável?

testei aqui, e tá funcionando.

TFS 0.3.6

Que nem eu disse, ela funfa mas se o player estiver com follow attack, o follow não vai interromper (Ele não vai poder se mexer mas o follow attack não vai ser interrompido).

CaronteC
20 de outubro de 2015 às 09:28

Ué, mas isso não fazia parte da spell,

Quanto ao follow attack, ele não vai sair, a menos que crie uma função nas sources para tirar follow, pois só existe a de colocar follow.

AllangodA
20 de outubro de 2015 às 17:14

Então mano, se um knight tiver na minha cola no follow attack, a spell não vai servir de nada.

Pois ele continuará se "movimentando", legal seria se ele tivesse me batendo de perto e eu usa-se a spell pra fugir dele, entendeu?

CaronteC
20 de outubro de 2015 às 20:24

Então mano, se um knight tiver na minha cola no follow attack, a spell não vai servir de nada.

Pois ele continuará se "movimentando", legal seria se ele tivesse me batendo de perto e eu usa-se a spell pra fugir dele, entendeu?

 

 

ué, é só você andar para fora da tela, que ele não vai seguir mais...

AllangodA
22 de outubro de 2015 às 09:07

 

 

ué, é só você andar para fora da tela, que ele não vai seguir mais...

Você não entendeu, não tem como eu andar pra fora da tela, pois se ele tiver atrás de mim (com follow attack) e eu usar a spell, ele continuará atrás de mim (a spell só está travando quem não está com follow attack em alguém).

Exemplo: 1)Você está com follow attack em mim, daí quero usar a spell pra você ficar travado para que eu possa fugir. Ao usar a spell, ela não surgirá efeito em você pois está com follow attack em mim. 2) Agora se você NÃO estiver com follow attack em mim, e eu usar a spell, você não conseguirá usar o follow pois estará travado. Isso que estou querendo te explicar, eu gostaria de que arrumasse isso (o nº 1), gostaria de que ele ficasse paradinho (não precisa tirar o target, queria que simplesmente não conseguisse mais se mover) mas que ele não conseguisse mais ir atrás do player.

EDIT: Mas de qualquer forma, muito obrigado.

Editado Outubro 20 por Allangod

22 de outubro de 2015 às 10:03

No caso ele quer que desabilite o ataque do player.

meubkM
22 de outubro de 2015 às 14:16

qual a função que coloca o follow ? talvez colocando 0 no lugar ele perca o follow