Ir para conteúdo
  • 0

matheusmhpc

Pergunta

Posts Recomendados

  • 0

Não esta totalmente pronta mas... digamos que é essa!

local scom1 = createCombatObject()

 

 

 

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 35)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1500, -0, -2000, 0)

 

 

 

 

arr1 = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

}

 

 

 

 

 

 

 

local area1 = createCombatArea(arr1)

setCombatArea(scom1, area1)

 

 

 

 

function onTargetTile(cid, pos)

local p = getThingPos(cid)

local basep = {x = p.x + 5, y = p.y - 5, z = p.z}

doSendDistanceShoot(basep, pos, 30)

doCombat(cid,combat1,positionToVariant(pos))

end

 

 

 

 

setCombatCallback(scom1, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

 

 

 

 

local function onCastSpell1(parameters)

doCombat(parameters.cid, scom1, parameters.var)

end

 

 

 

 

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var}

addEvent(onCastSpell1, 50, parameters)

 

 

 

 

return TRUE

end

Link para o comentário
Compartilhar em outros sites

  • 0

No caso, assim:

 

 

local scom1 = createCombatObject()

local ring = 2168 -- ID DO RING

 

 

 

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 35)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1500, -0, -2000, 0)

 

 

 

 

arr1 = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

}

 

 

 

 

 

 

 

local area1 = createCombatArea(arr1)

setCombatArea(scom1, area1)

 

 

 

 

function onTargetTile(cid, pos)

local p = getThingPos(cid)

local basep = {x = p.x + 5, y = p.y - 5, z = p.z}

doSendDistanceShoot(basep, pos, 30)

doCombat(cid,combat1,positionToVariant(pos))

end

 

 

 

 

setCombatCallback(scom1, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

 

 

 

 

local function onCastSpell1(parameters)

doCombat(parameters.cid, scom1, parameters.var)

end

 

 

 

 

 

function onCastSpell(cid, var)

if (getPlayerSlotItem(cid, 9).itemid == ring) then

local parameters = { cid = cid, var = var}

addEvent(onCastSpell1, 50, parameters)

else

doPlayerSendCancel(cid,"You need will equiped with the special ring!")

end

return TRUE

end

 

 

Só no começo do script mudar o ID do ring :)

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta:

 

 

local scom1 = createCombatObject()

local ring = 2168 -- ID DO RING

 

 

 

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 35)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1500, -0, -2000, 0)

 

 

 

 

arr1 = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

}

 

 

 

 

 

 

 

local area1 = createCombatArea(arr1)

setCombatArea(scom1, area1)

 

 

 

 

function onTargetTile(cid, pos)

local p = getThingPos(cid)

local basep = {x = p.x + 5, y = p.y - 5, z = p.z}

doSendDistanceShoot(basep, pos, 30)

doCombat(cid,combat1,positionToVariant(pos))

end

 

 

 

 

setCombatCallback(scom1, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

 

 

 

 

local function onCastSpell1(parameters)

doCombat(parameters.cid, scom1, parameters.var)

end

 

 

 

 

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var}

if (getPlayerSlotItem(cid, 9).itemid == ring) then

addEvent(onCastSpell1, 50, parameters)

else

doPlayerSendCancel(cid,"You need will equiped with the special ring!")

return false

end

return true

end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Cara eu consegui com varias spells e tals mas teve uma q não deu =x

local scom1 = createCombatObject()
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, 10000)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 400)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, -10)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setCombatCondition(combat, condition)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, não deu pois apenas a que eu editei vai funcionar :)

Se quiser, poste todas que queira o sistema para eu implantá-lo. Use spoilers para melhor oganização!

 

Use essa assim:

 

 

local scom1 = createCombatObject()

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_ATTRIBUTES)

setConditionParam(condition, CONDITION_PARAM_TICKS, 10000)

setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 400)

setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, -10)

setConditionParam(condition, CONDITION_PARAM_BUFF, true)

setCombatCondition(combat, condition)

 

function onCastSpell(cid, var)

if (getPlayerSlotItem(cid, 9).itemid == ring) then

return doCombat(cid, combat, var)

else

doPlayerSendCancel(cid,"You need will equiped with the special ring!")

end

end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Muito obrigado! Eu estava conseguindo nas outras spells do tipo da primeira que tu botou, mas essa ai nem consegui!

Edit:

Não sei criar spoiler u.u

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

  • 0

Troca essa por:

 

 

local scom1 = createCombatObject()

local ring = 2127 -- ID DO RING

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)

setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_ATTRIBUTES)

setConditionParam(condition, CONDITION_PARAM_TICKS, 10000)

setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 400)

setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, -10)

setConditionParam(condition, CONDITION_PARAM_BUFF, true)

setCombatCondition(combat, condition)

 

function onCastSpell(cid, var)

if (getPlayerSlotItem(cid, 9).itemid == ring) then

doCombat(cid, combat, var)

else

doPlayerSendCancel(cid,"You need will equiped with the special ring!")

end

return doCombat(cid, combat, var)

end

 

 

No ínicio do código coloque o ID do ring!

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

  • 0

Sim , mas substitua o código. Eu havia editado mais coisas além disso :)

Veja se está funcionando! Qualquer erro distro poste por escrito/print

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...