Ir para conteúdo
  • Cadastre-se

Derivado Script (spell) que cria item paralize


Posts Recomendados

ai tem no forum kkkkkkkkkk já ajudei um cara nisso, mas to sem tempo(e preguiça) pra procura o tópico 
se nao em engano alguns ot tem uma magia "magic prison" talvez te ajude caso queira fazer sozinho

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites
10 minutos atrás, pablobion disse:

ai tem no forum kkkkkkkkkk já ajudei um cara nisso, mas to sem tempo(e preguiça) pra procura o tópico 
se nao em engano alguns ot tem uma magia "magic prison" talvez te ajude caso queira fazer sozinho

nao tem a script nao,tem como criar ? procurando ja faz bastante tempo

Link para o post
Compartilhar em outros sites

Qual versão do TFS???

 

 

 

Pro 0.4 (não testei, testa e me avisa se der algum erro)

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, -30, -0.5, 0)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(combat, area)

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
 

 

Editado por tetheuscunha (veja o histórico de edições)

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Link para o post
Compartilhar em outros sites
14 horas atrás, tetheuscunha disse:

Qual versão do TFS???

 

 

 

Pro 0.4 (não testei, testa e me avisa se der algum erro)

  Ocultar conteúdo

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, -30, -0.5, 0)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(combat, area)

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
 

 

amigo ta faltando uma area que vai cair o effect,a area 4x4 e naonde vai criar o item,dai vou colocar um efeito de meteoros caindo tendeu?

 

 

Erro:

 

Spoiler

[13:42:37.588] [Error - Spell Interface]
[13:42:37.591] data/spells/scripts/bijuu/yonbi/yonbi.lua
[13:42:37.594] Description:
[13:42:37.598] (luaSetCombatArea) Area not found

 

 

Exemplo 

 

{

[0,0,0,0,]

[0,0,0,0,]

[0,0,0,0,]

 

/\ ai seria naonde o item sera criado

 

[1,0,1,0,]

[0,1,0,1,]

[1,0,1,0,]

 

/\ aqui naonde o effeito ira cair

 

o item vai durar 5 segundos no chao apos isso ira sumir

 

Editado por Nto Advance (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Desculpe a demora. Arrumei aqui, o erro estava dando porque dentro da sua lib não tinha a área SQUARE1x1 já determinada. Mudei o jeito de colocar a area.

 

O ARR1 e do TRAP, ARR2 e do attack.

 



local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 52)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatParam(combat1, COMBAT_PARAM_CREATEITEM, 1497)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 43)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -40, -4, -15, -5)


arr1 = {
{1, 1, 1},
{1, 2, 1},
{1, 1, 1}
}

arr2 = {
{1, 1, 1},
{1, 3, 1},
{1, 1, 1}
}

local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)


local function onCastSpell1(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
    doCombat(parameters.cid, combat2, parameters.var)
end
 
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 500, parameters)

return TRUE

end 

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Link para o post
Compartilhar em outros sites
2 horas atrás, tetheuscunha disse:

Desculpe a demora. Arrumei aqui, o erro estava dando porque dentro da sua lib não tinha a área SQUARE1x1 já determinada. Mudei o jeito de colocar a area.

 

O ARR1 e do TRAP, ARR2 e do attack.

 

 

  Ocultar conteúdo

 

 


local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 52)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatParam(combat1, COMBAT_PARAM_CREATEITEM, 1497)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 43)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -40, -4, -15, -5)


arr1 = {
{1, 1, 1},
{1, 2, 1},
{1, 1, 1}
}

arr2 = {
{1, 1, 1},
{1, 3, 1},
{1, 1, 1}
}

local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)


local function onCastSpell1(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
    doCombat(parameters.cid, combat2, parameters.var)
end
 
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 500, parameters)

return TRUE

end 
 

 

 

script foda cara parabens,soque nao tira a lava ´;/ a lava fica la

2 horas atrás, tetheuscunha disse:

Desculpe a demora. Arrumei aqui, o erro estava dando porque dentro da sua lib não tinha a área SQUARE1x1 já determinada. Mudei o jeito de colocar a area.

 

O ARR1 e do TRAP, ARR2 e do attack.

 

 

  Mostrar conteúdo oculto

 

 


local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 52)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatParam(combat1, COMBAT_PARAM_CREATEITEM, 1497)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 43)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -40, -4, -15, -5)


arr1 = {
{1, 1, 1},
{1, 2, 1},
{1, 1, 1}
}

arr2 = {
{1, 1, 1},
{1, 3, 1},
{1, 1, 1}
}

local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)


local function onCastSpell1(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
    doCombat(parameters.cid, combat2, parameters.var)
end
 
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 500, parameters)

return TRUE

end 
 

 

 

1pscnq.gif.7f54df0387f21891854c65d1e7882682.gif

 

a spell e igual o gif acima,sao os meteoros e a lava que te falei

Link para o post
Compartilhar em outros sites
5 horas atrás, Nto Advance disse:

script foda cara parabens,soque nao tira a lava ´;/ a lava fica la

1pscnq.gif.7f54df0387f21891854c65d1e7882682.gif

 

a spell e igual o gif acima,sao os meteoros e a lava que te falei

O negocio da larva é no items.xml

 

Procura o id da larva que voce quer e coloca essas linhas

       

<attribute key="decayTo" value="0" />
        <attribute key="duration" value="20" />

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Link para o post
Compartilhar em outros sites

@Nto Advance

Spoiler

local remove_time = 5 -- tempo em segundos para remover as magic wall
local item_id = 5750 -- id da magic wall

function isWalkable(pos, creature, pz, proj)
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
	local creature = getTopCreature(pos)
    if creature.type > 0 then	return false end
	if getTilePzInfo(pos) and not pz then return false 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 removeItem(posAll)
	for i=1, #posAll do
		for j=0, 255 do
			pos_stack = {x=posAll[i].x,y=posAll[i].y,z=posAll[i].z,stackpos=j}
			removeTile = getThingfromPos(pos_stack)
			if removeTile.itemid == item_id then
				doRemoveItem(removeTile.uid)
			end
		end
	end
end

function onCastSpell(cid, var)



local waittime = 3 -- Tempo de exhaustion em segundos
local storage = 5853 -- Storage de Spell, nunca usar a mesma em outra spell, a menos que não queira usar duas spell juntas!

if exhaustion.check(cid, storage) then
doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end

local pos = getThingPos(getCreatureTarget(cid))
posTile1 = {x=pos.x+1,y=pos.y+1,z=pos.z,stackpos=1}
posTile2 = {x=pos.x+1,y=pos.y,z=pos.z,stackpos=1}
posTile3 = {x=pos.x+1,y=pos.y-1,z=pos.z,stackpos=1}
posTile4 = {x=pos.x,y=pos.y-1,z=pos.z,stackpos=1}
posTile5 = {x=pos.x-1,y=pos.y-1,z=pos.z,stackpos=1}
posTile6 = {x=pos.x-1,y=pos.y,z=pos.z,stackpos=1}
posTile7 = {x=pos.x-1,y=pos.y+1,z=pos.z,stackpos=1}
posTile8 = {x=pos.x,y=pos.y+1,z=pos.z,stackpos=1}
posAll = {posTile1,posTile2,posTile3,posTile4,posTile5,posTile6,posTile7,posTile8}

for i=1, #posAll do
	if isWalkable(posAll[i]) then
		doCreateItem(item_id, 1, posAll[i])
	end
end 
addEvent(removeItem, remove_time*1000, posAll)
exhaustion.set(cid, storage, waittime)

return true
end

 

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
5 minutos atrás, KotZletY disse:

@Nto Advance

  Ocultar conteúdo


local remove_time = 5 -- tempo em segundos para remover as magic wall
local item_id = 5750 -- id da magic wall

function isWalkable(pos, creature, pz, proj)
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
	local creature = getTopCreature(pos)
    if creature.type > 0 then	return false end
	if getTilePzInfo(pos) and not pz then return false 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 removeItem(posAll)
	for i=1, #posAll do
		for j=0, 255 do
			pos_stack = {x=posAll[i].x,y=posAll[i].y,z=posAll[i].z,stackpos=j}
			removeTile = getThingfromPos(pos_stack)
			if removeTile.itemid == item_id then
				doRemoveItem(removeTile.uid)
			end
		end
	end
end

function onCastSpell(cid, var)



local waittime = 3 -- Tempo de exhaustion em segundos
local storage = 5853 -- Storage de Spell, nunca usar a mesma em outra spell, a menos que não queira usar duas spell juntas!

if exhaustion.check(cid, storage) then
doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end

local pos = getThingPos(getCreatureTarget(cid))
posTile1 = {x=pos.x+1,y=pos.y+1,z=pos.z,stackpos=1}
posTile2 = {x=pos.x+1,y=pos.y,z=pos.z,stackpos=1}
posTile3 = {x=pos.x+1,y=pos.y-1,z=pos.z,stackpos=1}
posTile4 = {x=pos.x,y=pos.y-1,z=pos.z,stackpos=1}
posTile5 = {x=pos.x-1,y=pos.y-1,z=pos.z,stackpos=1}
posTile6 = {x=pos.x-1,y=pos.y,z=pos.z,stackpos=1}
posTile7 = {x=pos.x-1,y=pos.y+1,z=pos.z,stackpos=1}
posTile8 = {x=pos.x,y=pos.y+1,z=pos.z,stackpos=1}
posAll = {posTile1,posTile2,posTile3,posTile4,posTile5,posTile6,posTile7,posTile8}

for i=1, #posAll do
	if isWalkable(posAll[i]) then
		doCreateItem(item_id, 1, posAll[i])
	end
end 
addEvent(removeItem, remove_time*1000, posAll)
exhaustion.set(cid, storage, waittime)

return true
end

 

 

Amigo o script e Perfeito,so que esta com 1 erro e nao esta completo.

 

[18:29:14.957] [Error - Spell Interface]
[18:29:14.959] data/spells/scripts/bijuu/yonbi/yonbi.lua:onCastSpell
[18:29:14.962] Description:
[18:29:14.962] data/spells/scripts/bijuu/yonbi/yonbi.lua:47: attempt to index local 'pos' (a boolean value)
[18:29:14.962] stack traceback:
[18:29:14.977]  data/spells/scripts/bijuu/yonbi/yonbi.lua:47: in function <data/spells/scripts/bijuu/yonbi/yonbi.lua:34>

 

 

e nao esta caindo os meteoros

Link para o post
Compartilhar em outros sites

@Nto Advance o script acima, é uma prision, a ideia dela é simples, cria básicamente paredes em volta do target, impedindo que ele se mova, de forma resumida é um trap. 

Não é de minha autoria o script, apenas uso ele com fim do que falei acima, em todo caso, uso ele como doton prision e mokuton prision. Hahahaha!

 

Me explique melhor o que você quer, em detalhes, não entendi o do tópico e também não li os comentários anteriores.

To com sono e meio lerdo. Huashuahs!! 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
2 minutos atrás, KotZletY disse:

@Nto Advance o script acima, é uma prision, a ideia dela é simples, cria básicamente paredes em volta do target, impedindo que ele se mova, de forma resumida é um trap. 

Não é de minha autoria o script, apenas uso ele com fim do que falei acima, em todo caso, uso ele como doton prision e mokuton prision. Hahahaha!

 

Me explique melhor o que você quer, em detalhes, não entendi o do tópico e também não li os comentários anteriores.

To com sono e meio lerdo. Huashuahs!! 

ira formar um item ao redor do player ou melhor embaixo do player,logo apos ira cair uns meteoros esses meteoros sao separados entao tera que usar arr1 tipo

 

{

[0,0,0,0,0]

[0,0,0,0,0]

[0,0,0,0,0]

[0,0,0,0,0]

 

/\ ai caira os meteoros

 

[0,0,0,0,0]

[0,0,0,0,0]

[0,0,0,0,0]

[0,0,0,0,0]

 

/\ ai vai criar o item embaixo do player

 

quando o item aparecer os players serao paralizados,e o item some dps de 4 segundos

11 minutos atrás, KotZletY disse:

@Nto Advance o script acima, é uma prision, a ideia dela é simples, cria básicamente paredes em volta do target, impedindo que ele se mova, de forma resumida é um trap. 

Não é de minha autoria o script, apenas uso ele com fim do que falei acima, em todo caso, uso ele como doton prision e mokuton prision. Hahahaha!

 

Me explique melhor o que você quer, em detalhes, não entendi o do tópico e também não li os comentários anteriores.

To com sono e meio lerdo. Huashuahs!! 

exemplo melhor

5929f5962a147_Semttulo.thumb.png.64f9eab71234c7816c9a47e6230acaea.png

Link para o post
Compartilhar em outros sites

@Nto Advance lamento a demora, estava busy hard. Hahaha

 

script:

Spoiler

local t = { 
remove_time = 5, -- tempo em segundos para remover as magic wall
item_id = 5750, -- id da lavar que vai ficar ao redor
effe =  99 -- efeito da lava(fogo- sla)
}

function isWalkable(pos, creature, pz, proj)
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
	local creature = getTopCreature(pos)
    if creature.type > 0 then	return false end
	if getTilePzInfo(pos) and not pz then return false 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 removeItem(posAll)
	for i=1, #posAll do
		for j=0, 255 do
			pos_stack = {x=posAll[i].x,y=posAll[i].y,z=posAll[i].z,stackpos=j}
			removeTile = getThingfromPos(pos_stack)
			if removeTile.itemid == t.item_id then
				doRemoveItem(removeTile.uid)
			end
		end
	end
end

function onCastSpell(cid, var)



local waittime = 3 -- Tempo de exhaustion em segundos
local storage = 5853 -- Storage de Spell, nunca usar a mesma em outra spell, a menos que não queira usar duas spell juntas!

if exhaustion.check(cid, storage) then
doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end

local pos = getPlayerPosition(getCreatureTarget(cid))
posTile1 = {x=pos.x+1,y=pos.y+1,z=pos.z,stackpos=1}
posTile2 = {x=pos.x+1,y=pos.y,z=pos.z,stackpos=1}
posTile3 = {x=pos.x+1,y=pos.y-1,z=pos.z,stackpos=1}
posTile4 = {x=pos.x,y=pos.y-1,z=pos.z,stackpos=1}
posTile5 = {x=pos.x-1,y=pos.y-1,z=pos.z,stackpos=1}
posTile6 = {x=pos.x-1,y=pos.y,z=pos.z,stackpos=1}
posTile7 = {x=pos.x-1,y=pos.y+1,z=pos.z,stackpos=1}
posTile8 = {x=pos.x,y=pos.y+1,z=pos.z,stackpos=1}
posAll = {posTile1,posTile2,posTile3,posTile4,posTile5,posTile6,posTile7,posTile8}


---- aqui \/ você configura de acordo com a posição do seu efeito, para centralizar ele
local pose = getPlayerPosition(getCreatureTarget(cid))
posTe1 = {x=pose.x+1,y=pose.y+1,z=pose.z}
posTe2 = {x=pose.x+1,y=pose.y,z=pose.z}
posTe3 = {x=pose.x+1,y=pose.y-1,z=pose.z}
posTe4 = {x=pose.x,y=pose.y-1,z=pose.z}
posTe5 = {x=pose.x-1,y=pose.y-1,z=pose.z}
posTe6 = {x=pose.x-1,y=pose.y,z=pose.z}
posTe7 = {x=pose.x-1,y=pose.y+1,z=pose.z}
posTe8 = {x=pose.x,y=pose.y+1,z=pose.z}
posTall = {posTe1,posTe2,posTe3,posTe4,posTe5,posTe6,posTe7,posTe8}
--- fim /\ da configuração

for a= 1, #posTall do
doSendMagicEffect(posTall[a], t.effe)
end

addEvent(function()
for i=1, #posAll do
	if isWalkable(posAll[i]) then
		doCreateItem(t.item_id, 1, posAll[i])
	end
end
end, 500)

addEvent(removeItem, t.remove_time*1000, posAll)
exhaustion.set(cid, storage, waittime)

return true
end

 

Onde eu coloquei configuração, é pra você poder centralizar o efeito caso ele seja meio torto, onde tem 500 é o tempo que vai demorar para criar as lavas depois de soltar o effect do fogo, sla. Haushuahs

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
19 horas atrás, KotZletY disse:

@Nto Advance lamento a demora, estava busy hard. Hahaha

 

script:

  Ocultar conteúdo


local t = { 
remove_time = 5, -- tempo em segundos para remover as magic wall
item_id = 5750, -- id da lavar que vai ficar ao redor
effe =  99 -- efeito da lava(fogo- sla)
}

function isWalkable(pos, creature, pz, proj)
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
	local creature = getTopCreature(pos)
    if creature.type > 0 then	return false end
	if getTilePzInfo(pos) and not pz then return false 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 removeItem(posAll)
	for i=1, #posAll do
		for j=0, 255 do
			pos_stack = {x=posAll[i].x,y=posAll[i].y,z=posAll[i].z,stackpos=j}
			removeTile = getThingfromPos(pos_stack)
			if removeTile.itemid == t.item_id then
				doRemoveItem(removeTile.uid)
			end
		end
	end
end

function onCastSpell(cid, var)



local waittime = 3 -- Tempo de exhaustion em segundos
local storage = 5853 -- Storage de Spell, nunca usar a mesma em outra spell, a menos que não queira usar duas spell juntas!

if exhaustion.check(cid, storage) then
doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end

local pos = getPlayerPosition(getCreatureTarget(cid))
posTile1 = {x=pos.x+1,y=pos.y+1,z=pos.z,stackpos=1}
posTile2 = {x=pos.x+1,y=pos.y,z=pos.z,stackpos=1}
posTile3 = {x=pos.x+1,y=pos.y-1,z=pos.z,stackpos=1}
posTile4 = {x=pos.x,y=pos.y-1,z=pos.z,stackpos=1}
posTile5 = {x=pos.x-1,y=pos.y-1,z=pos.z,stackpos=1}
posTile6 = {x=pos.x-1,y=pos.y,z=pos.z,stackpos=1}
posTile7 = {x=pos.x-1,y=pos.y+1,z=pos.z,stackpos=1}
posTile8 = {x=pos.x,y=pos.y+1,z=pos.z,stackpos=1}
posAll = {posTile1,posTile2,posTile3,posTile4,posTile5,posTile6,posTile7,posTile8}


---- aqui \/ você configura de acordo com a posição do seu efeito, para centralizar ele
local pose = getPlayerPosition(getCreatureTarget(cid))
posTe1 = {x=pose.x+1,y=pose.y+1,z=pose.z}
posTe2 = {x=pose.x+1,y=pose.y,z=pose.z}
posTe3 = {x=pose.x+1,y=pose.y-1,z=pose.z}
posTe4 = {x=pose.x,y=pose.y-1,z=pose.z}
posTe5 = {x=pose.x-1,y=pose.y-1,z=pose.z}
posTe6 = {x=pose.x-1,y=pose.y,z=pose.z}
posTe7 = {x=pose.x-1,y=pose.y+1,z=pose.z}
posTe8 = {x=pose.x,y=pose.y+1,z=pose.z}
posTall = {posTe1,posTe2,posTe3,posTe4,posTe5,posTe6,posTe7,posTe8}
--- fim /\ da configuração

for a= 1, #posTall do
doSendMagicEffect(posTall[a], t.effe)
end

addEvent(function()
for i=1, #posAll do
	if isWalkable(posAll[i]) then
		doCreateItem(t.item_id, 1, posAll[i])
	end
end
end, 500)

addEvent(removeItem, t.remove_time*1000, posAll)
exhaustion.set(cid, storage, waittime)

return true
end

 

Onde eu coloquei configuração, é pra você poder centralizar o efeito caso ele seja meio torto, onde tem 500 é o tempo que vai demorar para criar as lavas depois de soltar o effect do fogo, sla. Haushuahs

vlw Mano Script Perfect !

21 horas atrás, KotZletY disse:

@Nto Advance lamento a demora, estava busy hard. Hahaha

 

script:

  Mostrar conteúdo oculto


local t = { 
remove_time = 5, -- tempo em segundos para remover as magic wall
item_id = 5750, -- id da lavar que vai ficar ao redor
effe =  99 -- efeito da lava(fogo- sla)
}

function isWalkable(pos, creature, pz, proj)
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
	local creature = getTopCreature(pos)
    if creature.type > 0 then	return false end
	if getTilePzInfo(pos) and not pz then return false 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 removeItem(posAll)
	for i=1, #posAll do
		for j=0, 255 do
			pos_stack = {x=posAll[i].x,y=posAll[i].y,z=posAll[i].z,stackpos=j}
			removeTile = getThingfromPos(pos_stack)
			if removeTile.itemid == t.item_id then
				doRemoveItem(removeTile.uid)
			end
		end
	end
end

function onCastSpell(cid, var)



local waittime = 3 -- Tempo de exhaustion em segundos
local storage = 5853 -- Storage de Spell, nunca usar a mesma em outra spell, a menos que não queira usar duas spell juntas!

if exhaustion.check(cid, storage) then
doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.")
return false
end

local pos = getPlayerPosition(getCreatureTarget(cid))
posTile1 = {x=pos.x+1,y=pos.y+1,z=pos.z,stackpos=1}
posTile2 = {x=pos.x+1,y=pos.y,z=pos.z,stackpos=1}
posTile3 = {x=pos.x+1,y=pos.y-1,z=pos.z,stackpos=1}
posTile4 = {x=pos.x,y=pos.y-1,z=pos.z,stackpos=1}
posTile5 = {x=pos.x-1,y=pos.y-1,z=pos.z,stackpos=1}
posTile6 = {x=pos.x-1,y=pos.y,z=pos.z,stackpos=1}
posTile7 = {x=pos.x-1,y=pos.y+1,z=pos.z,stackpos=1}
posTile8 = {x=pos.x,y=pos.y+1,z=pos.z,stackpos=1}
posAll = {posTile1,posTile2,posTile3,posTile4,posTile5,posTile6,posTile7,posTile8}


---- aqui \/ você configura de acordo com a posição do seu efeito, para centralizar ele
local pose = getPlayerPosition(getCreatureTarget(cid))
posTe1 = {x=pose.x+1,y=pose.y+1,z=pose.z}
posTe2 = {x=pose.x+1,y=pose.y,z=pose.z}
posTe3 = {x=pose.x+1,y=pose.y-1,z=pose.z}
posTe4 = {x=pose.x,y=pose.y-1,z=pose.z}
posTe5 = {x=pose.x-1,y=pose.y-1,z=pose.z}
posTe6 = {x=pose.x-1,y=pose.y,z=pose.z}
posTe7 = {x=pose.x-1,y=pose.y+1,z=pose.z}
posTe8 = {x=pose.x,y=pose.y+1,z=pose.z}
posTall = {posTe1,posTe2,posTe3,posTe4,posTe5,posTe6,posTe7,posTe8}
--- fim /\ da configuração

for a= 1, #posTall do
doSendMagicEffect(posTall[a], t.effe)
end

addEvent(function()
for i=1, #posAll do
	if isWalkable(posAll[i]) then
		doCreateItem(t.item_id, 1, posAll[i])
	end
end
end, 500)

addEvent(removeItem, t.remove_time*1000, posAll)
exhaustion.set(cid, storage, waittime)

return true
end

 

Onde eu coloquei configuração, é pra você poder centralizar o efeito caso ele seja meio torto, onde tem 500 é o tempo que vai demorar para criar as lavas depois de soltar o effect do fogo, sla. Haushuahs

pequeno erro amigo

 

 

 

[19:12:11.835] [Error - Spell Interface]
[19:12:11.838] data/spells/scripts/Bijuu/yonbi/yonbi.lua:onCastSpell
[19:12:11.846] Description:
[19:12:11.848] (luaGetThingPosition) Thing not found

[19:12:11.851] [Error - Spell Interface]
[19:12:11.852] data/spells/scripts/Bijuu/yonbi/yonbi.lua:onCastSpell
[19:12:11.853] Description:
[19:12:11.854] data/spells/scripts/Bijuu/yonbi/yonbi.lua:50: attempt to index local 'pos' (a boolean value)
[19:12:11.857] stack traceback:
[19:12:11.858]  data/spells/scripts/Bijuu/yonbi/yonbi.lua:50: in function <data/spells/scripts/Bijuu/yonbi/yonbi.lua:37>

Link para o post
Compartilhar em outros sites

@Nto Advance mallz a demora, tava consultando um professor, huahsuas.

 

Na xml spells, na spell desse script, você marcou  needTarget para 1 ? Caso contrario, ta ae o motivo do erro! 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
17 horas atrás, KotZletY disse:

@Nto Advance mallz a demora, tava consultando um professor, huahsuas.

 

Na xml spells, na spell desse script, você marcou  needTarget para 1 ? Caso contrario, ta ae o motivo do erro! 

PFT!

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