PDA

View Full Version : Exori x player safe



Mesk
02-21-2013, 02:37 PM
The attack spells can be used agaist you, as you all know someone can stand infront of you and give you a redskull from exori vis, flam, frigo ~

How about, make an option, just attack with wand or rune when players are close?

Stusse
02-21-2013, 02:38 PM
You could always turn your targeting to 0-10% only wand when player on screen

Mesk
02-22-2013, 03:14 PM
So how do I turn of spells and just use wand when players on screen?

Irax
02-22-2013, 05:55 PM
--[[
Instructions:
Attacks are prioritized least to greatest.

Required parameters:
words = spell words or rune id
min = minimum monster amount to trigger spell/rune
distance = the max range of the attack

Optional parameters:
max = the max monsters the spell will attack
mana = the minimum mana you want to have before casting
padding = the extra sqm's to check for players PAST the attack distance (default is 0)
needsTarget = the attack needs a target (exori hur, etc)
needsDirection = spells most effective when facing target (exori min)
multiFloor = check for players above/below (stairhop skulling)
ignoreParty = ignore player checks for party members
whiteList = table of players to ignore
targetList = table of monsters to attack, to attack all do not specify this option

]]


attack = {}
attack[1] = {words="exori flam", mana=35, needsTarget=true, distance=3, padding=2, multiFloor=true, targetList={"Mutated Rat"}}

function getTargetCount(distance, padding, multiFloor, ignoreParty, whiteList, targetList)
local n = 0
padding = padding or 0
whiteList = whiteList or {}
targetList = targetList or {}
for i = CREATURES_LOW, CREATURES_HIGH do
local cid = Creature.GetFromIndex(i)
local checkPad = cid:isPlayer() and padding or 0
if(cid:isValid() and cid:isVisible() and cid:isAlive() and cid:DistanceFromSelf() <= (distance + checkPad) and not cid:isSelf())then
if(getSelfPosition().z == cid:Position().z or (multiFloor and cid:isPlayer()))then
if(cid:isPlayer() and (not cid:isPartyMember() or not ignoreParty) and not table.find(whiteList, cid:Name(), false))then
return 0
elseif(cid:isMonster() and (table.find(targetList, cid:Name(), false) or #targetList<1))then
n = n + 1
end
end
end
end
return n
end

function main()
for i = 1, #attack do
local atk = attack[i]
local count = getTargetCount(atk.distance, atk.padding, atk.multiFloor, atk.ignoreParty, atk.whiteList, atk.targetList)
if(count > 0)then
if(count >= atk.min and count <= ((atk.max == nil) and count or atk.max))then
if(type(atk.words) == 'number')then
Self.UseItemWithMe(atk.words)
wait(900, 1200)
elseif(Self.CanCastSpell(atk.words) and (not atk.mana or Self.Mana() >= atk.mana))then
local target = Creature.GetByID(Self.TargetID())
if(atk.needsTarget or atk.needsDirection)then
if(target:isOnScreen() and target:isVisible() and target:isAlive())then
if(target:DistanceFromSelf() <= atk.distance)then
if(atk.needsDirection)then
local pos, toPos = getSelfPosition(), target:Position()
local dir = pos.x > toPos.x and WEST or pos.x < toPos.x and EAST or pos.y > toPos.y and NORTH or SOUTH
Self.Turn(dir)
wait(100, 200)
else
Self.Say(atk.words)
end
end
end
end
if(not atk.needsTarget)then
Self.Say(atk.words)
end
wait(600, 1000)
end
end
end
end
end

print([[
Name: Auto Area Attack
Description: Shoots area spells/rune on certain conditions
Author: Cavitt Glover (Syntax)
Version: 5.0.00 (updated 11.26.2012)]])
wait(2000)

registerEventListener(TIMER_TICK, "main")

renegmon
04-01-2014, 05:24 AM
I need a .lua for a pally that for example: if player is >= 2 sqms, use ''exori san'', but if is < 2 sqms use ''exori con'', i used the one posted here but even when there is a player on screen, it stopped to use any of those spells...

any help? thanks