Page 1 of 1

using not using pullonly skills when mop starts to fight you

Posted: Tue Sep 03, 2013 2:30 am
by amalia
Hey out there

There is already implemented the elite factor where you can make a difference between mop and a big mob :-)
Furthermore you have the skills labeled with "pullonly"
But if you get into fight because mob is aggroing you, there is no time to bore yourself with long lasting openers, but instead with a stunskill

Is the pullonly-option a "use as a first skill" or is it "only use as first skill as long as you have no aggro"?

I´m a bit confused with that. I use a mage and the option is described only for melee classes. Means I cannot use it that way? Sorry I tried to figure it out myself by trying, but am still not clear why bot chooses the one or the other skill. Espacially because I use the pullonly-option with the "wrong" class.

Re: using not using pullonly skills when mop starts to fight

Posted: Tue Sep 03, 2013 3:08 am
by rock5
Normally, if you are a ranged class, you stop at a certain distance and then start using all your skills. If you're a melee class, you run up close to the mob and start using all your skills.

But if you are a melee class and you have some ranged skills you might want to stop at a distance and cast the ranged skills to draw the mob to you, especially to draw 1 mob from a group of mobs.

That's where the ranged pull option comes in. If it's enabled then melee classes will try to use ranged skills at a distance at the start if a fight. The ranged pull part of the fight will end when the mob comes into melee range or 3 seconds have passed. When ranged pull has ended it goes into normal melee mode. To stop it using the ranged skills during the normal melee part of the fight you add pullonly="true" to the skill.
amalia wrote:still not clear why bot chooses the one or the other skill
It casts the skills in order of priority. It checks each skill and if it can be used then it uses it, if it can't use the skill then it moves onto the next one. You can change this behavior by using

Code: Select all

		<option name="PRIORITY_CASTING"		value="true" />		<!-- If you want to cast attack skills by 'priority' or 'sequencially' -->
With priority casting enabled it always casts the highest available attack skill. So as it is going though the skills and finds an attack skill it can use, it casts it and then goes back to the start of the list again. This does not include buffs and heals which always get checked.

Re: using not using pullonly skills when mop starts to fight

Posted: Tue Sep 03, 2013 7:31 pm
by amalia
I think I get closer.

Then the pullonly argument ist not suitable for my needs.

So I decide to use the Flame (as a Mage) as an opener.
During fight the flame has a lower priority than weakness or discharge.
To do that I put a second skill into the skillbase called MAGE_FLAME_OPEN (with same ID than the origin Flame)

Code: Select all

<skill name="MAGE_FLAME_OPEN"						id="491150" range="225" type="damage"		casttime="3"	cooldown="0"	target="enemy" />
For that I can see which Flame is used by the bot in debug mode.

In the profile I put the Flame_open with highest priority and maxuse="1"

Code: Select all

	<skill name="MAGE_FLAME_OPEN"                hotkey="MACRO" priority="100" maxuse="1"/>
...
<skill name="MAGE_FLAME"                hotkey="MACRO" priority="68" />
and the normal Flame with lower priority.
With that I have my opener working.

In the special case a mob is aggroing me unplanned (e.g I don´t need it for quest but i got too close) The mob would make damage on me while I´m casting my long lasting opener. Instead I want to stun it in this special case. If I open the fight the mob is not aggroing me while initial cast, if I get accidently into fight - it is.

So I put this on the onSkillCast section:

Code: Select all

if arg1.Name == "MAGE_FLAME_OPEN" then
			if 0 < CountMobs(true,150) then
				 player:cast("MAGE_LIGHTNING");
			end;
		end
I thought this was a good idea. But it does not work.
The bot casts (and succeeds) alwas the flame opener before casting the Lightning. Even with a significant long yrest(1000) after the Mage_Lightning (Just in case of overlapping) the Flame is cast as the first spell.
The Lightning does normally dismiss.


Do I use it wrong? Is the oncast section performed before the origin skill is casted or while it is casted? In this case I should interrupt the origin spell somehow.

Re: using not using pullonly skills when mop starts to fight

Posted: Tue Sep 03, 2013 10:42 pm
by rock5
onSkillCast is done after the skill. Try onPreSkillCast. That is done before the skill. And if you want to stop the skill you 'return false'.

Re: using not using pullonly skills when mop starts to fight

Posted: Wed Sep 04, 2013 4:05 am
by amalia
This explains much more behaviour also. I guess the priest spells from the code samples (holy aura, soul source depending on HP) are also well placed in onPreSkillCast section.
Thank you. Now I have situation depending different openers. could also be used for scout and snipe-shot.

To be exact and complete:
The onPreSkill code in my sample does not replace the first opener but put something before it. Because the counter does not count the opener and in the second round the former opener is still on highest priority. because maxuse="1" is not done yet. But anyway its exactly what I was looking for.