Ir para conteúdo
  • 0

Bomb Spell Não Funciona Corretamente


clowdleo1

Pergunta

Galeria queria criar uma magia que plante uma bomba no chao(id 2510) após 4 segundos pois seria o tempo de "armar" a bomba

e depois de 3 segundos após a bomba plantada explodisse dando dano em area....

 

abaixo meu script ele esta plantando o item no chão certinho so que não estou conseguindo remover o item e a magia em area esta saindo apenas a animação,não esta tirando dano! podem me ajudar?

 

____________________________________________________________________________________________________

Spell:

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 2510)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, 51)

setAttackFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 1.2, 2)

 

local area = createCombatArea(AREA_ENVOLTA)

local area2 = createCombatArea(AREA_CROSS5X5)

setCombatArea(combat, area)

setCombatArea(combat2, area2)

 

 

 

function onCastSpell(cid, var)

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

if isExhausted(cid, "explosion bomb") == false and getPlayerStorageValue(cid,29999999999) < 1 then

mayNotMove(cid,1)

setPlayerStorageValue(cid,29999999999,1)

addEvent(setPlayerStorageValue,3200,cid,29999999999,nil)

doSendAnimatedText(getPlayerPosition(cid), "1...", TEXTCOLOR_BLUE)

addEvent(doSendAnimatedText, 1000, getPlayerPosition(cid), '2...', TEXTCOLOR_BLUE)

addEvent(doSendAnimatedText, 2000, getPlayerPosition(cid), '3...', TEXTCOLOR_BLUE)

addEvent(doSendAnimatedText, 3000, getPlayerPosition(cid), '4...', TEXTCOLOR_BLUE)

addEvent(doSendAnimatedText, 3200, getPlayerPosition(cid), 'Ok!!!', TEXTCOLOR_RED)

addEvent(onCastSpell901,3200,parameters)

addEvent(qualquer,3200,cid)

local positionn = addEvent(doCreateItem,3200,2510,1,getCreaturePosition(cid))

addEvent(doRemoveItem,6200,2510,1)

addEvent(onCastSpell902,6200,parameters,positionn)

 

 

setCooldown(cid, "explosion bomb", 10)

 

doPlayerSendCancel(cid, "You are in cooldown. Wait more " .. math.ceil(getCooldown(cid, "explosion bomb")) .. " seconds.")

 

end

doPlayerSendCancel(cid, "You are in cooldown. Wait more " .. math.ceil(getCooldown(cid, "explosion bomb")) .. " seconds.")

 

if getPlayerStorageValue(cid,29999999999) >= 1 then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Nao pode usar Jutsu.")

end

end

 

 

function onCastSpell901(parameters)

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

end

 

 

function onCastSpell902(parameters,position)

doCombat(positionn, combat2, parameters.var)

end

 

 

 

function qualquer(cid)

 

mayNotMove(cid,0)

 

return 0

 

end

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Fiz um via talkaction para você.

 

talkactions.xml:

 

<talkaction words="bomb" script="bomb.lua"/>

 

bomb.lua:

 

function onSay(cid, words)

local mana = 100 -- Mana necessária

local vocations = {"Elder Druid", "Sorcerer"} -- Vocations que podem usar

local waittime = 30 -- Exhaust em segundos

local storage = 1941

local armar = 4 -- Tempo para armar a bomba

local tempo = 3 -- Segundos até a bomba detonar

local area = { -- Área da explosão

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

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

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

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

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

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

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

}

 

if getPlayerMana(cid) < mana then

doPlayerSendCancel(cid, "Not enough mana.") return true

elseif exhaustion.check(cid, storage) then

doPlayerSendCancel(cid, "You are in cooldown. Wait more "..exhaustion.get(cid, storage).." seconds.") return true

elseif not isInArray(vocations, getPlayerVocationName(cid)) then

doPlayerSendCancel(cid, "Your vocation cannot use this spell.") return true

elseif getPlayerStorageValue(cid, 29999999999) >= 1 then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não pode usar Jutsu.") return true

end

 

mayNotMove(cid, true)

doCreatureSay(cid, "*planting bomb*", TALKTYPE_MONSTER)

addEvent(mayNotMove, armar*1000, cid, false)

addEvent(doCreatureSay, armar*1000, "*bomb planted*", TALKTYPE_MONSTER)

setPlayerStorageValue(cid, 29999999999, 1)

addEvent(setPlayerStorageValue, armar*1000, cid, 29999999999, nil)

bomb = doCreateItem(2510, 1, getCreaturePos(cid))

addEvent(doRemoveItem, (tempo+armar)*1000, bomb.itemid, 1)

addEvent(doAreaCombatHealth, (tempo+armar)*1000, 0, COMBAT_FIREDAMAGE, getCreaturePos(cid), area, -min, -max, 5)

doPlayerAddMana(cid, -mana)

exhaustion.set(cid, storage, waittime)

return true

end

 

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...