Ir para conteúdo

Featured Replies

Postado

muita coisa, se liga:
 

 

 

local combat = createCombatObject() -- combat nao usado

local meteor = createCombatObject()
setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(meteor, COMBAT_PARAM_EFFECT, 36)
setCombatParam(meteor, COMBAT_PARAM_HITCOLOR, COLOR_ORANGE)
setCombatFormula(meteor, COMBAT_FORMULA_SKILL, 0.8, -220, 1.2, -200)

local meteor2 = createCombatObject() -- nao existe nenhuma utilização pra meteor2, só pra meteor_water.
setCombatParam(meteor2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

local stun = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(stun, CONDITION_PARAM_DELAYED, 25)
addDamageCondition(stun, 500, 5, -2000)
setCombatCondition(meteor, stun)

combat_arr= {
{1, 1, 1},
{1, 2, 1},
{1, 1, 1}
}

local combat_area = createCombatArea(combat_arr) -- aqui vc tá setando a area no combat pra dps vincular o combat com o meteor, era mt mais facil vincular com o meteor direto.
setCombatArea(combat, 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)
if (math.random(0, 0) == 0) then
local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0})
if (isInArray(water, ground.itemid) == TRUE) then
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_water}) --- nao existe meteor_water
else
local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z}
doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE)
addEvent(meteorCast, 100, {cid = cid,pos = pos, combat = meteor})
end
end
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

local cooldown = 5

function onCastSpell(cid, var)
function exoribleed(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "CD: Exori Bleed.")
end
if getPlayerStorageValue(cid, 10569) == 1 then
doSendAnimatedText((getCreaturePosition(cid)), "Socorro!", 255)
doSendMagicEffect(getCreaturePosition(cid), 19)
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return false
end

if exhaustion.check(cid, 23006) == false then
exhaustion.set(cid, 23006, cooldown)
addEvent(exoribleed, cooldown*1000, cid)
return doCombat(cid, combat, var)

else
doSendMagicEffect(getCreaturePosition(cid), 2)
doPlayerSendCancel(cid, "Golpe em cooldown por " ..exhaustion.get(cid, 23006).." segundos")
return false
end
    return doCombat(cid, combat, var)
end

 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

  • Respostas 6
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • magias baseadas no level são bem tranquilas de fazer, olha só um exemplo: não passa de uma magia repleta de checagens num valor de storage que é responsável por dizer qual dos combats será env

Postado
  • Autor

[14/01/2015 21:24:12] [Error - Spell Interface]
[14/01/2015 21:24:12] data/spells/scripts/attack/Exori Bleed.lua
[14/01/2015 21:24:12] Description:
[14/01/2015 21:24:12] (luaGetCreatureStorage) Creature not found

[14/01/2015 21:24:12] [Error - Spell Interface]
[14/01/2015 21:24:12] data/spells/scripts/attack/Exori Bleed.lua
[14/01/2015 21:24:13] Description:
[14/01/2015 21:24:13] data/spells/scripts/attack/Exori Bleed.lua:95: attempt to compare boolean with number
[14/01/2015 21:24:13] [Warning - Event::loadScript] Cannot load script (data/spells/scripts/attack/Exori Bleed.lua)


local meteor_lv1 = createCombatObject()
setCombatParam(meteor_lv1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(meteor_lv1, COMBAT_PARAM_EFFECT, 36)
setCombatParam(meteor_lv1, COMBAT_PARAM_HITCOLOR, COLOR_ORANGE)
setCombatFormula(meteor_lv1, COMBAT_FORMULA_SKILL, 0.8, -220, 1.2, -200)

local stun_lv1 = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(stun_lv1, CONDITION_PARAM_DELAYED, 25)
addDamageCondition(stun_lv1, 500, 5, -2000)
setCombatCondition(meteor_lv1, stun_lv1)

local meteor_lv2 = createCombatObject()
setCombatParam(meteor_lv2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(meteor_lv2, COMBAT_PARAM_EFFECT, 36)
setCombatParam(meteor_lv2, COMBAT_PARAM_HITCOLOR, COLOR_ORANGE)
setCombatFormula(meteor_lv2, COMBAT_FORMULA_SKILL, 1.3, -270, 1.8, -240)

local stun_lv2 = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(stun_lv2, CONDITION_PARAM_DELAYED, 25)
addDamageCondition(stun_lv2, 600, 6, -2300)
setCombatCondition(meteor_lv2, stun_lv2)

local meteor_lv3 = createCombatObject()
setCombatParam(meteor_lv3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(meteor_lv3, COMBAT_PARAM_EFFECT, 36)
setCombatParam(meteor_lv3, COMBAT_PARAM_HITCOLOR, COLOR_ORANGE)
setCombatFormula(meteor_lv3, COMBAT_FORMULA_SKILL, 1.8, -320, 2.4, -280)

local stun_lv3 = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(stun_lv3, CONDITION_PARAM_DELAYED, 25)
addDamageCondition(stun_lv3, 800, 8, -2500)
setCombatCondition(meteor_lv3, stun_lv3)

local area_lv1 = createCombatArea({
{1, 1, 1},
{1, 2, 1},
{1, 1, 1}
})

local area_lv2 = createCombatArea({
{1, 1, 1},
{1, 2, 1},
{1, 1, 1}
})

local area_lv3 = createCombatArea({
{1, 1, 1},
{1, 2, 1},
{1, 1, 1}
})

setCombatArea(meteor_lv1, area_lv1)
setCombatArea(meteor_lv2, area_lv2)
setCombatArea(meteor_lv3, area_lv3)

local function onCastSpell1(parameters)
doCombat(parameters.cid, meteor_lv1, parameters.var)
end

local function onCastSpell2(parameters)
doCombat(parameters.cid, meteor_lv2, parameters.var)
end

local function onCastSpell3(parameters)
doCombat(parameters.cid, meteor_lv3, parameters.var)
end
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)
if (math.random(0, 0) == 0) then
local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0})
if (isInArray(water, ground.itemid) == TRUE) then
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_lv1})
else
local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z}
doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE)
addEvent(meteorCast, 100, {cid = cid,pos = pos, combat = meteor_lv1})
end
end
end

setCombatCallback(meteor_lv1, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

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

if getPlayerStorageValue(cid, 48502) <= 49 then
addEvent(onCastSpell1, 0, parameters)
setPlayerStorageValue(cid, 48502, getPlayerStorageValue(cid, 48502)+1)
elseif getPlayerStorageValue(cid, 48502) == 50 then
addEvent(onCastSpell2, 0, parameters)
setPlayerStorageValue(cid, 48502, getPlayerStorageValue(cid, 48502)+1)
doPlayerSendTextMessage(cid, 22, "Its barrier kindling progressed to level 2")
doSendMagicEffect(getCreaturePosition(cid),28)
doSendAnimatedText(getCreaturePosition(cid), 'Spell UP', 210)
elseif getPlayerStorageValue(cid, 48502) > 50 and getPlayerStorageValue(cid, 48502) < 100 then
addEvent(onCastSpell2, 0, parameters)
setPlayerStorageValue(cid, 48502, getPlayerStorageValue(cid, 48502)+1)
elseif getPlayerStorageValue(cid, 48502) == 100 then
addEvent(onCastSpell3, 0, parameters)
setPlayerStorageValue(cid, 48502, getPlayerStorageValue(cid, 48502)+1)
doPlayerSendTextMessage(cid, 22, "Its barrier kindling progressed to level 3")
doSendMagicEffect(getCreaturePosition(cid),28)
doSendAnimatedText(getCreaturePosition(cid), 'Spell UP', 210)
elseif getPlayerStorageValue(cid, 48502) > 100 then
addEvent(onCastSpell3, 0, parameters)
setPlayerStorageValue(cid, 48502, getPlayerStorageValue(cid, 48502)+1)
end

local cooldown = 5

function onCastSpell(cid, var)
function exoribleed(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "CD: Exori Bleed.")
end
if getPlayerStorageValue(cid, 10569) == 1 then
doSendAnimatedText((getCreaturePosition(cid)), "Socorro!", 255)
doSendMagicEffect(getCreaturePosition(cid), 19)
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return false
end

if exhaustion.check(cid, 23006) == false then
exhaustion.set(cid, 23006, cooldown)
addEvent(exoribleed, cooldown*1000, cid)
return doCombat(cid, combat, var)

else
doSendMagicEffect(getCreaturePosition(cid), 2)
doPlayerSendCancel(cid, "Golpe em cooldown por " ..exhaustion.get(cid, 23006).." segundos")
return false
end
return doCombat(cid, combat, var)
end

 

Alguem ?

Editado por azzouks (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.6k

Informação Importante

Confirmação de Termo