Jump to content
  • 0
Phineasz

Scripting Magias Que Podem Paralisar o Jogador

Question

Phineasz    0
Phineasz

Alguém por favor, poderia adicionar uma função nessas magias que quando a pessoa tivesse x addon a magia pudesse paralisar o jogador? E outra que quando não tivesse o x addon full saia um efeito e quando tivesse trocasse o efeito da magia? Lembrando que não precisa estar usando o addon, só de ter ele full, a pessoa já obteria essa função na magia. Também que não iria paralisar toda hora que usar a magia, seria randômico. Obrigado desde já, rep+ para quem ajudar. Eu uso OTX versão do servidor 8.60

Link da Distro: 

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Link do Servidor: 

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Exori Mas Frigo -> Paralisa o jogador. Addon Druid.

Spoiler

local combat = createCombatObject()

local meteor = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 43)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 6, 12)

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

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

local function meteorCast(p)
    doCombat(p.cid, p.combat, positionToVariant(p.pos))
end
local function stunEffect(cid)
    doSendMagicEffect(getThingPos(cid), CONST_ME_STUN)
end


function onTargetTile(cid, pos)
            local newpos = {x = pos.x + 7, y = pos.y - 6, z = pos.z}
            doSendDistanceShoot(newpos, pos, CONST_ANI_ICE)
            addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor})
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
local storage = 15234
if getPlayerStorageValue(cid, storage) == -1 then
doPlayerSendTextMessage(cid,22, "Voce precisa concluir a quest para usar a magia")
doSendMagicEffect(getCreaturePosition(cid), 4)         
return true
end
return doCombat(cid, combat, var)
end

Exori Mas Tera -> Paralisa o jogador. Addon Druid.

Spoiler

local combat = createCombatObject()

local meteor = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 45)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 6, 12)

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

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

local function meteorCast(p)
    doCombat(p.cid, p.combat, positionToVariant(p.pos))
end
local function stunEffect(cid)
    doSendMagicEffect(getThingPos(cid), CONST_ME_STUN)
end


function onTargetTile(cid, pos)
            local newpos = {x = pos.x + 7, y = pos.y - 6, z = pos.z}
            doSendDistanceShoot(newpos, pos, CONST_ANI_EARTH)
            addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor})
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
local storage = 15234
if getPlayerStorageValue(cid, storage) == -1 then
doPlayerSendTextMessage(cid,22, "Voce precisa concluir a quest para usar a magia")
doSendMagicEffect(getCreaturePosition(cid), 4)         
return true
end
return doCombat(cid, combat, var)
end

Exori Mas Flam -> Paralisa o jogador. Addon Sorc.

Spoiler

local combat = createCombatObject()

local meteor = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 6)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 6, 12)

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

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

local function meteorCast(p)
    doCombat(p.cid, p.combat, positionToVariant(p.pos))
end
local function stunEffect(cid)
    doSendMagicEffect(getThingPos(cid), CONST_ME_STUN)
end


function onTargetTile(cid, pos)
            local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z}
            doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE)
            addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor})
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
local storage = 15234
if getPlayerStorageValue(cid, storage) == -1 then
doPlayerSendTextMessage(cid,22, "Voce precisa concluir a quest para usar a magia")
doSendMagicEffect(getCreaturePosition(cid), 4)         
return true
end
return doCombat(cid, combat, var)
end

Exori Mais Vis -> Paralisa o jogador. Addon Sorc.

Spoiler

local combat = createCombatObject()

local meteor = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 40)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 6, 12)

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

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

local function meteorCast(p)
    doCombat(p.cid, p.combat, positionToVariant(p.pos))
end
local function stunEffect(cid)
    doSendMagicEffect(getThingPos(cid), CONST_ME_STUN)
end


function onTargetTile(cid, pos)
            local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z}
            doSendDistanceShoot(newpos, pos, CONST_ANI_ENERGY)
            addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor})
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
local storage = 15234
if getPlayerStorageValue(cid, storage) == -1 then
doPlayerSendTextMessage(cid,22,"Voce precisa concluir a quest para usar a magia")
doSendMagicEffect(getCreaturePosition(cid), 4)         
return true
end
return doCombat(cid, combat, var)
end

Exori Mas San -> Muda o efeito. Addon Assassin.

Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_HOLY)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 15, 18, 21, 25)

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

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

function onCastSpell(cid, var)
local storage = 15234
if getPlayerStorageValue(cid, storage) == -1 then
doPlayerSendTextMessage(cid,22, "Voce precisa concluir a quest para usar a magia")
doSendMagicEffect(getCreaturePosition(cid), 4)         
return true
end
return doCombat(cid, combat, var)
end

Edited by Phineasz

Share this post


Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 1
TheRatazana    8
TheRatazana

Bom, ela não está da maneira como mandei. Porém não faz sentido não estar dando damage se o doCombat está ok. Tente comparar com alguns spells da sua distro, se estiver realmente tudo bem parecido, então é algum outro fator atrapalhando. Tente também fazer o doCombat direto, sem agendar um evento, pra ver se seria esse o problema

Share this post


Link to post
Share on other sites
  • 0
TheRatazana    8
TheRatazana

Não sei se vai funcionar certinho, porque eu usei a source do chaitosoft global 8.60 pra me basear. Mas acho que seria isso:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Seria só mudar o outfitId e os efeitos do setCombatParam pra cada spell que você quer.

 

Ps: Quando for perguntar seja objetivo e poste sempre detalhes da distro que você usa, e se possível um link pra source dela.

Edited by TheRatazana
Colocando checagem por outfit do sexo oposto

Share this post


Link to post
Share on other sites
  • 0
Phineasz    0
Phineasz

@TheRatazana Editei o Tópico

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Share this post


Link to post
Share on other sites
  • 0
TheRatazana    8
TheRatazana

Realmente esqueci que não podia isso. No caso então você vai ter que fazer dois combates iguais, mas com efeitos diferentes (COMBAT_PARAM_EFFECT)

 

Em todo caso, remova ambos setCombatParam(combat, COMBAT_PARAM_EFFECT da função meteorCast e veja como funciona e o que falta. Pra saber se estamos com o mesmo pensamento em como deveria funcionar

Share this post


Link to post
Share on other sites
  • 0
Phineasz    0
Phineasz

@TheRatazana Funcionou não, mesmo erro

Share this post


Link to post
Share on other sites
  • 0
TheRatazana    8
TheRatazana

Seja mais específico. Diga qual é o erro. Se for sobre o setCombatParam então não tirou os que eu disse, pois são os únicos que estão dentro de uma função, o que realmente não é permitido.

Share this post


Link to post
Share on other sites
  • 0
Phineasz    0
Phineasz

@TheRatazana Eu esqueci de tirar um, desculpa, o erro sumiu, porém quando usa a magia ela não hita

Share this post


Link to post
Share on other sites
  • 0
TheRatazana    8
TheRatazana

Não faz muito sentido isso, porque sempre que a meteorCast for chamada irá fazer o doCombat. Poderia postar só a sua meteorCast?

Share this post


Link to post
Share on other sites
  • 0
Phineasz    0
Phineasz

@TheRatazana Creio que seja isso né?

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×