CL
dúvida

Bomb Spell Não Funciona Corretamente

Por clowdleo1, 22 de set. de 2012 em Scripts

bomb
script
4
1.1k
clowdleo1C
22 de setembro de 2012 às 13:26

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

LuckOakeL
22 de setembro de 2012 às 13:28

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 Setembro 22 por LuckOake

22 de setembro de 2012 às 15:27

luck tem como vc edita esse script pra quando usa a spell aparecer um corpo no local e explodir o corpo? qualquer duvida pergunte

clowdleo1C
22 de setembro de 2012 às 17:01

nao funcionou a bomba nao explode e o item nao sai do chão....