local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat0_Brush, COMBAT_PARAM_BLOCKARMOR, true)
setCombatParam(combat0_Brush, COMBAT_PARAM_BLOCKSHIELD, true)
setCombatArea(combat0_Brush,createCombatArea({{1, 0},
{0, 2}}))
setCombatFormula(combat0_Brush, COMBAT_FORMULA_LEVELMAGIC, -1, 30, -1, 40)local combat0_Brush_2 = createCombatObject()
setCombatParam(combat0_Brush_2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat0_Brush_2, COMBAT_PARAM_BLOCKARMOR, true)
setCombatParam(combat0_Brush_2, COMBAT_PARAM_BLOCKSHIELD, true)
setCombatArea(combat0_Brush_2,createCombatArea({{0, 1, 1},
{1, 3, 1},
{1, 1, 1}}))
setCombatFormula(combat0_Brush_2, COMBAT_FORMULA_LEVELMAGIC, -1, 30, -1, 40)
local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
if (isCreature(cid)) then
doCombat(cid, c, var)
if (dirList ~= nil) then -- Emit distance effects
local i = 2;
while (i < #dirList) do
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
i = i + 2
end
end
end
end
function onCastSpell(cid, var)
local startPos = getCreaturePosition(cid)
RunPart(combat0_Brush,cid,var)
RunPart(combat0_Brush_2,cid,var)
return true
end
Para o efeito sair correto, modifique apenas esta linha:
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
Te ajudei? REP+


info
Grupo: Campones
Registrado: 04/03/06
Posts: 17
Reputação: 0
estou com um problema grande aqui.
estou criando uma spell com target.. O problema é que o effect que estou usando no player alvo é um effect com tamanho 3x3...
e pra ele aparecer certinho em cima do player alvo, eu tenho que por ele em um sqm na diagonal de baixo do player, exemplo:
{0, 0, 0},
{0, 2, 0}, (o numero 2 representa onde o player alvo está)
{0, 0, 1} (o numero 1 representa onde o magic effect deve estar pra aparecer em cima do player)
(se a animação for onde o numero 1 esta, o efeito 3x3 vai cubrir toda essa area)
o problema é que nao consigo um jeito de fixar o magic effect sempre naquele local.
O local onde o magic effect aparece sempre varia dependendo do local de onde o player está atirando no target.
o script da minha spell está ae:
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 105) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 43) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, -30, 1, -40) setCombatArea(combat,createCombatArea({{0, 0, 0}, {0, 2, 0}, {0, 0, 1}})) local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_NONE) setCombatParam(combat1, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat1,createCombatArea({{1, 1, 1}, {1, 3, 1}, {1, 1, 1}})) setCombatFormula(combat1, COMBAT_FORMULA_SKILL, 1, -30, 1, -40) local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part if (isCreature(cid)) then doCombat(cid, c, var) if (dirList ~= nil) then -- Emit distance effects local i = 2; while (i < #dirList) do doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) i = i + 2 end end end end function onCastSpell(cid, var) local startPos = getCreaturePosition(cid) RunPart(combat,cid,var) RunPart(combat1,cid,var) return true endo combat 1 ali, é uma area sem nenhum magic effect para dar dano em volta do player, onde o efeito de tamanho 3x3 do combat 0 aparece.
alguem ae sabe algum jeito de resolver esse problema e poderia me ajudar?
OBS: estou usando TFS 0.3.6pl1 (8.54)
----------------------------------------------------------------- edit ---------------------------------
botei uma imagem abaixo pra vcs poderem entender melhor a situação, a primeira imagem seria o modo correto, mais a animação muda de lugar conforme a posição de quem usa a spell
Editado Outubro 6 por gcdmaster