Ir para conteúdo
  • 0

Magia Muito Difícil.


PeidoDivino

Pergunta

Queria uma magia no estilo do buraco negro (http://www.xtibia.co...a-buraco-negro/), mas o buraco negro puxa ate ficar perto, e a que eu estou é tipo assim, ex:

 

 

1=player que usou a magia.

2= player que esta recebendo a magia.

0= tile que não tem player. (vazio)

 

 

Quando usa a magia:

 

01000020

 

Apos a magia:

 

01020000

 

 

Lembrando que a magia é em linha reta de acordo com a posição em que o jogador se encontra virado,com um raio de alcance de 6 sqm.

 

Eu tentei modificar por varias horas a magia buraco negro de acordo as condições, só que sempre dava bug, e quando não deu bug, e ao invés de puxar 3sqm, puxava todos,ate ficar colado, como a buraco negro original, mudando somente a área.

 

 

Tipo, se o player que fosse atingido pela a magia não estivesse em condição de andar 3 Sqm ficaria assim, Ex:

 

Quando usa a magia:

 

01020000

 

Apos a magia:

 

01200000

 

 

e a magia tira dano assim, a cada casa que o player for puxado 100 de dano, ex: se o player for puxado por 3 sqm tira 300, se for puxado por 1 sqm tira 100, se for puxado 2 tira 200.

 

 

Obrigado pela atenção.

 

 

 

o Brun123 fez um script da magia, só que deu erro, ela simplesmente não funcionava que é esta aqui:

 

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)

 

local arr = {{1}, {1}, {1}, {1}, {1}, {1}, {2}}

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

function onTarget(cid, target)

local distance = getDistanceBetween(getThingPos(cid), getThingPos(target))

distance = math.max(1, distance - 3)

local min = distance * 300 - math.random(50)

local max = min + math.random(getPlayerLevel(cid))

local teleportpos = getPosByDir(getThingPos(cid), getCreatureLookDir(cid), distance)

doTeleportThing(target, teleportpos, false)

doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -min, -max, 255)

end

 

setCombatCallBack(combat, CALLBACK_PARAM_TARGETCREATURE, "onTarget")

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

 

end

 

 

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

posta o erro então ué

é provável que por incompatibilidade de versões, essa script realmente não funcione no seu server

 

vou testar ela aqui num servidor que ela deveria funcionar e já volto

 

aí, arrumei a spell:

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)

local arr = {{1}, {1}, {1}, {1}, {1}, {1}, {3}}

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

function onTarget(cid, target)
local distance = getDistanceBetween(getThingPos(cid), getThingPos(target))
distance = math.max(1, distance - 3)
local min = distance * 300 - math.random(50)
local max = min + math.random(getPlayerLevel(cid))
local teleportpos = getPosByDir(getThingPos(cid), getCreatureLookDir(cid), distance)
doTeleportThing(target, teleportpos, false)
doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -min, -max, 255)
end	

setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTarget")

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

end

 

tinha uma letra maiúscula que era pra ser minúscula... por isso o erro

testado e funcionou certinho, só ajustar a fórmula como você quiser

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...