Fala pessoal. Eu peguei um script de magia que cria uma estatua que ataca e some. Ai eu pensei em modificar ela e fazer com que surja um tambor que fica por tempo limitado. E quando se da use nesse tambor ele continua tocando a musica dele, e tambem da uma cura em area. Toda vez que toca ele cura em area. Tinha que limitar pra nao poder da spam muito rapido na cura.
OBs: Esse scrip que eu postei não ta tirando dano dos bixos voces sabem o que pode ser? Tambem queria saber se é possivel essa estatua fazer uma area de poison.
Segue o script base:
local config = {
statue = 2367,
range = 5,
max_dmg = -150,
min_dmg = -50,
hit_delay = 1000,
statue_time = 10*1000,
cd = 20,
stg = 5570
}
local max_hits = config.statue_time/config.hit_delay
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat, COMBAT_FORMULA_DAMAGE, 0, config.min_dmg, 0, config.max_dmg)
local condition = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition, CONDITION_PARAM_TICKS, 10 * 1000)
function removeItem(pos)
doRemoveItem(getTileItemById(pos, config.statue).uid)
end
function attackSpecs(cid, pos, var, hits)
n = hits or 0
if n >= max_hits then return false end
local spec = getSpectators(pos, config.range, config.range)
i = spec[math.random(1, #spec)]
if #spec <= 1 then return false end
while(i == cid) do
i = spec[math.random(1, #spec)]
end
if isCreature(i) then
var.pos = getCreaturePosition(i)
doSendDistanceShoot(pos, var.pos, CONST_ANI_SUDDENDEATH)
doCombat(cid, combat, var)
end
addEvent(attackSpecs, config.hit_delay, cid, pos, var, n+1)
end
function itemInteraction(cid, pos, var)
attackSpecs(cid, pos, var)
addEvent(removeItem, config.statue_time, pos)
end
function onCastSpell(cid, var)
if not isPlayer(cid) then return false end
if getPlayerStorageValue(cid, config.stg) - os.time() <= 0 then
doAddCondition(cid, condition)
setPlayerStorageValue(cid, config.stg, os.time() + config.cd)
local pos = Position(getCreaturePosition(cid).x+1, getCreaturePosition(cid).y, getCreaturePosition(cid).z)
doCreateItem(config.statue, 1, pos)
itemInteraction(cid, pos, var)
else
doPlayerSendCancel(cid, "You're exhausted.")
end
return true
end
Pergunta
Vorkhon 0
Fala pessoal. Eu peguei um script de magia que cria uma estatua que ataca e some. Ai eu pensei em modificar ela e fazer com que surja um tambor que fica por tempo limitado. E quando se da use nesse tambor ele continua tocando a musica dele, e tambem da uma cura em area. Toda vez que toca ele cura em area. Tinha que limitar pra nao poder da spam muito rapido na cura.
OBs: Esse scrip que eu postei não ta tirando dano dos bixos voces sabem o que pode ser? Tambem queria saber se é possivel essa estatua fazer uma area de poison.
Segue o script base:
local config = { statue = 2367, range = 5, max_dmg = -150, min_dmg = -50, hit_delay = 1000, statue_time = 10*1000, cd = 20, stg = 5570 } local max_hits = config.statue_time/config.hit_delay local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_DAMAGE, 0, config.min_dmg, 0, config.max_dmg) local condition = createConditionObject(CONDITION_INFIGHT) setConditionParam(condition, CONDITION_PARAM_TICKS, 10 * 1000) function removeItem(pos) doRemoveItem(getTileItemById(pos, config.statue).uid) end function attackSpecs(cid, pos, var, hits) n = hits or 0 if n >= max_hits then return false end local spec = getSpectators(pos, config.range, config.range) i = spec[math.random(1, #spec)] if #spec <= 1 then return false end while(i == cid) do i = spec[math.random(1, #spec)] end if isCreature(i) then var.pos = getCreaturePosition(i) doSendDistanceShoot(pos, var.pos, CONST_ANI_SUDDENDEATH) doCombat(cid, combat, var) end addEvent(attackSpecs, config.hit_delay, cid, pos, var, n+1) end function itemInteraction(cid, pos, var) attackSpecs(cid, pos, var) addEvent(removeItem, config.statue_time, pos) end function onCastSpell(cid, var) if not isPlayer(cid) then return false end if getPlayerStorageValue(cid, config.stg) - os.time() <= 0 then doAddCondition(cid, condition) setPlayerStorageValue(cid, config.stg, os.time() + config.cd) local pos = Position(getCreaturePosition(cid).x+1, getCreaturePosition(cid).y, getCreaturePosition(cid).z) doCreateItem(config.statue, 1, pos) itemInteraction(cid, pos, var) else doPlayerSendCancel(cid, "You're exhausted.") end return true end
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados