Ir para conteúdo

Featured Replies

Postado

Bom encontrei uma spell muito intereçante no forum um dia destes e estou a um bom tempo tentando desenrrolar um rpoblema que me surgiu.
A spell em si empurra o player que é atingido com ela 1sqm na direção ond o player está olhando. Ela funciona perfeitamente, mas eu gostaria de incrementar ela , fazendo o player qu conjurou ela se "auto empurrar". Alem disso se possivel eu gostaria de saber se tem como fazer com que a spell cause + de 1 hit. Obrigado pela atenção.

Aqui vai o script, pra qume puder me ajudar agradeço muito:

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_POFF)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, 0, -1, 0)



local area = createCombatArea({

        {1, 0, 1},

        {1, 0, 1},

        {1, 0, 1},

        {1, 2, 1},

})

setCombatArea(combat, area)



local function push(cid, target)

        local direction = getCreatureLookDirection(cid)

        local x = (direction == 1 and 1 or (direction == 3 and -1 or 0))

        local y = (direction == 0 and -1 or (direction == 2 and 1 or 0))



        local position = getCreaturePosition(target)

        position.x = position.x + x

        position.y = position.y + y

        if doTileQueryAdd(target, position) == RETURNVALUE_NOERROR then

            doTeleportThing(target, position, true)

        end

end



function onTargetCreature(cid, target)

        if not isNpc(target) then

                addEvent(push, 100, cid, target)

        end

end

setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")



function onCastSpell(cid, var)

        return doCombat(cid, combat, var)

end
  • 1 year later...
Postado

Alem disso se possivel eu gostaria de saber se tem como fazer com que a spell cause + de 1 hit. Obrigado pela atenção.

 

bem vou dar um exemplo ve se vc entende ok \/

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 177)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -20.3, 1, -25.5, 1)
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 177)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -20.3, 1, -25.5, 1)
 
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, 177)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -22.3, 1, -27.5, 1)
 
local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, 177)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -22.3, 1, -27.5, 1)
 
local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat5, COMBAT_PARAM_EFFECT, 177)
setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -22.3, 1, -27.5, 1)
 
local combat6 = createCombatObject()
setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat6, COMBAT_PARAM_EFFECT, 177)
setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, -22.3, 1, -27.5, 1)
 
 
arr1 = {
{3}
}
 
arr2 = {
{3}
}
 
arr3 = {
{3}
}
 
arr4 = {
{3}
}
 
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)
local area4 = createCombatArea(arr4)
local area5 = createCombatArea(arr5)
local area6 = createCombatArea(arr6)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)
setCombatArea(combat4, area4)
setCombatArea(combat5, area5)
setCombatArea(combat6, area6)
 
local function onCastSpell1(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat2, parameters.var)
end
 
local function onCastSpell3(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat3, parameters.var)
end
 
local function onCastSpell4(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat4, parameters.var)
end
 
local function onCastSpell5(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat5, parameters.var)
end
 
local function onCastSpell6(parameters)
    return isPlayer(parameters.cid) and doCombat(parameters.cid, combat6, parameters.var)
end
 
function onCastSpell(cid, var)
local position127 = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
local parameters = { cid = cid, var = var}
addEvent(onCastSpell2, 200, parameters)
addEvent(onCastSpell2, 500, parameters)
addEvent(onCastSpell2, 900, parameters)
addEvent(onCastSpell2, 1300, parameters)
addEvent(onCastSpell2, 1700, parameters)
addEvent(onCastSpell2, 2100, parameters)
    doSendMagicEffect(position127, 175)
return TRUE
end 
 
 
 
 
ai tipo se vc que mais de um hit repete o local combat e coloca o numero tipo (localcombat2 ate o numero de hits q vc quer repetidamente e a mesma coisa com os outros )  

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

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo