walkingdragon
Advanced OT User
- Joined
- Sep 9, 2008
- Messages
- 3,620
- Reaction score
- 190
I need this recoded so when a player attacks another player the monster also attacks the player.
Code:
-- Load spell area's data.
dofile(getDataDir() .. "spells/lib/spells.lua")
-- Basic Config
local basic = {
ownerName = "Test"
}
-- Healer Config
local healer = {
enabled = TRUE,
sayWord = FALSE,
healthToHeal = 2000,
min = 300,
max = 400
}
-- Mana Restore Config
local manaRestore = {
enabled = TRUE,
manaToRestore = 1500,
min = 150,
max = 300
}
-- Rune Config
local rune = {
enabled = TRUE,
lastShoot = os.clock(), -- Don't touch!
delay = 1,
effect = CONST_ME_MORTAREA,
shootEffect = CONST_ANI_SUDDENDEATH,
combat = COMBAT_DEATHDAMAGE,
min = 750,
max = 1100
}
-- Spell Config
local spell = {
enabled = FALSE,
sayWord = TRUE,
lastCast = os.clock(), -- Don't touch!
delay = 3,
combat = COMBAT_ICEDAMAGE,
area = createCombatArea(AREA_CROSS5X5),
word = "Exevo Gran Mas Frigo",
effect = CONST_ME_ICETORNADO,
min = 700,
max = 1000
}
-- Anty Paralyze
local antyPara = {
enabled = TRUE
}
-- Don't touch below!
local owner = 0
local target = TRUE
local function findOwner()
local list = getSpectators(getNpcPos(), 9, 9, false)
if (#list > 0) then
for i = 1, #list do
local _target = list[i]
if (_target ~= 0) then
if (getCreatureName(_target) == basic.ownerName) then
selfSay("Hi ".. basic.ownerName .."!")
selfFollow(_target)
owner = _target
end
end
end
end
end
local function doHealOwner()
if (getCreatureHealth(owner) < healer.healthToHeal) then
if (healer.sayWord) then
doCreatureSay(getNpcCid(), "Exura Sio ".. basic.ownerName.."", TALKTYPE_ORANGE_1)
end
doCreatureAddHealth(owner, math.random(healer.min, healer.max))
doSendMagicEffect(getCreaturePosition(getNpcCid()), CONST_ME_MAGIC_BLUE)
doSendMagicEffect(getCreaturePosition(owner), CONST_ME_MAGIC_GREEN)
end
end
local function doRestoreMana()
if (getPlayerMana(owner) < manaRestore.manaToRestore) then
doPlayerAddMana(owner, math.random(manaRestore.min, manaRestore.max))
doSendMagicEffect(getCreaturePosition(owner), CONST_ME_MAGIC_BLUE)
end
end
local function doUseRune()
target = TRUE
local shooted = FALSE
local r_list = getSpectators(getNpcPos(), 9, 9, false)
if (#r_list > 0) then
for i = 1, #r_list do
local r_target = r_list[i]
if (isPlayer(r_target) == FALSE and isNpc(r_target) == FALSE and getNpcCid() ~= r_target and shooted == FALSE) then
local tPos = getCreaturePosition(r_target)
doSendMagicEffect(tPos, rune.effect)
doSendDistanceShoot(getCreaturePosition(getNpcCid()), tPos, rune.shootEffect)
doTargetCombatHealth(getNpcCid(), r_target, rune.combat, -rune.min, -rune.max, rune.effect)
shooted = TRUE
target = TRUE
end
end
end
end
local function doCastSpell()
if (spell.sayWord) then
doCreatureSay(getNpcCid(), spell.word, TALKTYPE_ORANGE_1)
end
doAreaCombatHealth(getNpcCid(), spell.combat, getCreaturePosition(getNpcCid()), spell.area, -spell.min, -spell.max, spell.effect)
end
local function doRemovePara()
if (hasCondition(owner, CONDITION_PARALYZE)) then
doRemoveCondition(owner, CONDITION_PARALYZE)
doSendMagicEffect(getCreaturePosition(owner), CONST_ME_MAGIC_GREEN)
end
end
function onCreatureDisappear(cid)
if (cid == owner) then
owner = 0
end
end
function onCreatureSay(cid, type, msg)
if (cid == owner) then
if (msg == "disappear") then
selfSay("Good bye ;)")
doHealOwner()
doRestoreMana()
doRemoveCreature(getNpcCid())
end
end
end