tobias89
Pikaz Liek Pikaz
- Joined
- Apr 24, 2010
- Messages
- 110
- Reaction score
- 0
I came across this script on the interwebs! but i can't get it fully to work.
It needs:
IT WONT ATTACK ON SPEC!! BIG PROBLEM!!
A better teleporter system. (Follow)
Make it so that its allways under you when you are PKing hunting.
Oh and when you log of, it should go to its NPC pos.
(Maybe add acc level 6 and /goto Character_name?
thats basicly what it needs.
It needs:
IT WONT ATTACK ON SPEC!! BIG PROBLEM!!
A better teleporter system. (Follow)
Make it so that its allways under you when you are PKing hunting.
Oh and when you log of, it should go to its NPC pos.
(Maybe add acc level 6 and /goto Character_name?
thats basicly what it needs.
PHP:
-- Load spell area's data.
dofile(getDataDir() .. "spells/lib/spells.lua")
-- Basic Config
local basic = {
ownerName = "OWNER_NAME_HERE"
}
-- Healer Config
local healer = {
enabled = TRUE,
sayWord = FALSE,
healthToHeal = 2000,
min = 70,
max = 111
}
-- Mana Restore Config
local manaRestore = {
enabled = TRUE,
manaToRestore = 1500,
min = 90,
max = 100
}
-- 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 = 300,
max = 400
}
-- 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 = FALSE
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 = TRUE
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
function onThink()
-- Try to find owner, if he's not already found.
if (owner == 0) then
findOwner()
return
end
-- Update following
selfFollow(owner)
-- On floor change
local myPos = getCreaturePosition(getNpcCid())
local ownerPos = getCreaturePosition(owner)
if (myPos.z ~= ownerPos.z) then
doSendMagicEffect(myPos, CONST_ME_POFF)
doTeleportThing(getNpcCid(), ownerPos)
doSendMagicEffect(ownerPos, CONST_ME_TELEPORT)
end
-- Healer
if (healer.enabled) then
doHealOwner()
end
-- Mana Restore
if (manaRestore.enabled) then
doRestoreMana()
end
-- Shoot Rune
if (rune.enabled and rune.lastShoot < os.clock()) then
rune.lastShoot = (os.clock()+rune.delay)
doUseRune()
end
-- Cast Spell
if (spell.enabled and target ~= FALSE and spell.lastCast < os.clock()) then
spell.lastCast = (os.clock()+spell.delay)
doCastSpell()
end
-- Anty Paralyze
if (antyPara.enabled) then
doRemovePara()
end
end