Ir para conteúdo

meubk

Posts Recomendados

- versão sem bugs e você pode configurar do teu jeito :D

local configSpell = {
		exaust = 40, -- tempo de exaustão
		st = 19020, -- não mexe
		level = 150, -- level para usar
		min = 1000, -- ataque minimo
		max = 2000, -- ataque maximo
		voc = {1, 5}, -- vocações
		mana = 800, -- mana
	}
	
-- SPELL EVIL SPIRIT BY: XOTSERVX --

function isWalkable(pos, creature, proj, pz)-- by Nord
	if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
	if getTopCreature(pos).uid > 0 and creature then return false end
	if getTileInfo(pos).protection and pz then return false, true end
	local n = not proj and 3 or 2
	for i = 0, 255 do
		pos.stackpos = i
		local tile = getTileThingByPos(pos)
		if tile.itemid ~= 0 and not isCreature(tile.uid) then
			if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
				return false
			end
		end
	end
	return true
end

function getPosDirs(p, dir)
	return dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir == 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y, z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x, y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z}
end

function posIgual(pos1, pos2)
	return pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z and true or false
end

effect = 34
distance = 31
damage = COMBAT_DEATHDAMAGE

evilspirit = {
			walk = function (cid, min, max, pos, rounds, ultimapos)
						if rounds == 0 then return true end
						if not isCreature(cid) then return true end
						posdisp = {}
						for _, dir in pairs({1, 5, 7, 3}) do
							if isWalkable(getPosDirs(pos, dir)) and not posIgual(getPosDirs(pos, dir), getThingPos(cid)) and not posIgual(getPosDirs(pos, dir), ultimapos) then
								table.insert(posdisp, getPosDirs(pos, dir))
							end
						end
						if #posdisp < 1 then return true end
							posesc = posdisp[math.random(1, #posdisp)]
							ultimapos = pos
							doSendDistanceShoot(pos, posesc, distance)
							if min > 0 then
								min = -min
								max = -max
							end
							doAreaCombatHealth(cid, damage, posesc, 0, min, max, effect)
							addEvent(evilspirit.walk, 140, cid, min, max, posesc, rounds - 1, ultimapos)
					end
			}

function onSay(cid, word)

	if getPlayerAccess(cid) < 3 then


	if getPlayerLevel(cid) < configSpell.level then
		return doPlayerSendCancel(cid, "You need level " .. configSpell.level .. " to use this spell.")
	end

	if not isInArray(configSpell.voc, getPlayerVocation(cid)) then
		return doPlayerSendCancel(cid, "Your vocation dont use this spell.")
	end

	if exhaustion.check(cid, configSpell.st) then
		return doPlayerSendCancel(cid, "You is exhausted.")
	end

	if getCreatureMana(cid) < configSpell.mana then
		return doPlayerSendCancel(cid, "You dont have mana.")
	end


	doCreatureAddMana(cid, -configSpell.mana)
	exhaustion.set(cid, configSpell.st, configSpell.exaust)
	end

	evilspirit.walk(cid, configSpell.min, configSpell.max, getThingPos(cid), 40, {x=1, y=1, z=1})

	for i = 1, 13 do
		addEvent(evilspirit.walk, i * math.random(300, 500), cid, configSpell.min, configSpell.max, getThingPos(cid), 40, {x=1, y=1, z=1})
	end

	return true
end

talkaction:

<talkaction words="evil spirit" filter="word-spaced" event="script" value="evilspirit.lua"/>
Link para o comentário
Compartilhar em outros sites

se for isso, a pessoa tem que criar a sprite do fantasma indo de todos os lados.

também, será que essa spell ordena o efeito em ficar indo em cada lugar?

Ex: de cima para baixo, de baixo para o lado esquerdo, do lado esquerdo para cima, etc...

é assim que funciona a Evil Spirit do Mu Online.

 

 

@edit

pode se até usar um efeito que se parece mt com a Evil Spirit é o efeito de distancia da Sudden Death Rune!

Editado por markindoot
Link para o comentário
Compartilhar em outros sites

se for isso, a pessoa tem que criar a sprite do fantasma indo de todos os lados.

também, será que essa spell ordena o efeito em ficar indo em cada lugar?

Ex: de cima para baixo, de baixo para o lado esquerdo, do lado esquerdo para cima, etc...

é assim que funciona a Evil Spirit do Mu Online.

 

 

@edit

pode se até usar um efeito que se parece mt com a Evil Spirit é o efeito de distancia da Sudden Death Rune!

Sim, este se parece mesmo.

Deve-se testá-lo e talvez até fazer um vídeo pra gente saber como realmente é.

 

Seria interessante.

Estou sem tempo agora, se não fazia.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...