Request : Basic fighting info/jumping/strafing

Runes of Magic/Radiant Arcana (http://www.runesofmagic.com)
Message
Author
Boris-The-Blade
Posts: 40
Joined: Sun Mar 11, 2012 8:24 pm

Request : Basic fighting info/jumping/strafing

#1 Post by Boris-The-Blade » Wed Apr 18, 2012 7:34 pm

First off, great bot, it's been an awesome ride and I have no complaint's, hats off to a good job!

Here are a few thing's I've encountered while using the bot, simple things, that I'd like some info on if possible. Also, would it be possible to make a subforum for simple movement improvement scripts (or at least until they are incorporated into the main files)? Just to help narrow down improved profiles, upgraded movement scripts and functions.

1) One of the largest problems I've noticed, is that pretty often it's easy to get stuck with no line of sight to a enemy (they like to move around, despite perfect waypointing). This usually causes the bot to hang up, albeit shortly, until moving on to another mob. Curious if this can be avoided, or changed, maybe to including auto strafing while attempting instant cast abilities from profile, just to get a LOS and induce aggro so the mob comes to the bot. I've shortened combat distance vairables many times, and while helping, this is still a pretty occuring issue, although not large by any means. Also the strafing may come in handy when being observed as looking a little more human.

2) Just a aesthetic issue mainly here. While running way points in public (harvesting, ect), would it be possible to add a jump function that makes the bot randomly jump while running? While just for looks, to make it seem a little more human than a bot, may also help with getting stuck on slight hills and obstacles, altho I'm not sure how collision detection is written into the bot.

3) Here's a battle one. Inside the profile, you can manually set priority of spells, and add/delete them ass neccessary. I've tinkered with this a lot, and I had a couple questions about it. I've noticed for one, on abilities such as "Vampire Arrow", with long cooldowns, they seem to pull with it, however in combat for extended times, it doesn't like to recast it when the cooldown is over, instead it skips it entirely. Does priority serve any alterior function than simply an ordered list of casts on this? Also, for instance on mage, setting up electrocute spells to increase damage when cast on the mob in a specific order can work initially from the priority menu by putting them in order with lowering priority of casts in the order of spells needed to stack an effect, afterward it simply functions off the priority list, bu doesnt seem to pay any attention to CD's, and get's out of whack. Is there a way to set the profile to a certain set of attacks, that pays attention to the CD's and lasting time on mobs? In other words, a way to set the bot to do alternate abilities when CD's are down, then re-initiate the original order of attacks to stack a effect when CD's are back down? This may be in the skill database and need editing, but I thought I'd ask before taking a look at it.

4) On #2, when the bot encounters 2 close enemies, both stuck by LOS problems, it likes to alternate between the two indefinitely, which can easily be identified by anyone running by as a bot, and hang up progress until it relogs itself,ect. Just curious if a proximity can be set, when the first LOS problem arises in order to make the bot run so far away before attempting to attack anything else. Putting some space between LOS problems I think would fix the issue with getting stuck between two LOS problems (although smart waypointing helps a lot).


Anyway, just some ideas, which I'm sure in the thousands of lines of code here on the site has been answered before, however pretty difficult to find. I'd love some feedback on how to curb these issues, but they are by no means big problems, mostly tweaks I've noticed along the way ^^

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Request : Basic fighting info/jumping/strafing

#2 Post by lisa » Wed Apr 18, 2012 8:57 pm

1. randomly strafing will never work, the whole reason for waypoints is so the bot doesn't run into walls or cliffs and makes you look like a total bot. If you add in a strafe because you are attacking a mob it will increase the possibility of just strafing into a rock or log on the ground, do you strafe left or right?
I did do some searching in memory to find an indicator for when you get the obstruction issue when trying to attack but it is complicated and won't be introduced any time soon.

2. Same reason for not strafing, adding in random jumping will make you over run waypoint coords, it might inturupt casting, it might inturupt harvesting. How would it look if you are harvesting a node and then just jump and then harvest again? Adding in random events will just make you look more like a bot.

3. not sure there is an easy way to explain the skill que, basically the bot checks:-
cooldowns, resource(mana), priority, where it is in the profile list, if any requirements like buffs and half a dozen other things.

The bot isn't set up to perform skills in an exact order, like for instance it won't wait for a skill to be used before using another skill unless you specifically tell it to do that in your profile using the onskillcast or onpreskillcast event system.
So you can't really tell it to use skill1, skill2, skill3, wait for skill1 to be off CD and then start again, If skill1 is on CD then it will use skill2.

4. This has been discussed in depth before, a forum search will probably get the topic for it. Basically it is a lot easier for you to improve your WP then to add in ways for the bot to deal with this scenario, change waypoint type to run as an example, reduce the combat distance, add the mobs to friends list to ignore them. Things like that.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

Boris-The-Blade
Posts: 40
Joined: Sun Mar 11, 2012 8:24 pm

Re: Request : Basic fighting info/jumping/strafing

#3 Post by Boris-The-Blade » Wed Apr 18, 2012 9:08 pm

Thanks Lisa, that's illuminating. Bummer on the strafing, but I do see the point on it, guess the only way to avoid that is to add some random check to see if nearest monster is obstructed when targeted, which sounds hairy to do. Thanks btw for the onskillcast and other function's, I haven't tried those yet, but I'm going to experiment with them to set up some spell stacking. On the jump function, understandable, but was mainly curious if it could be added only when running between waypoints as the only time, however I do see your point on how it could overjump a waypoint, and would probably need another set of rules for stopping a jump mid air if it reaches a waypoint. I did do a search on most of this before posting, but it's pretty jagged or ancient across the site. Thanks for the help though, will just keep trucking as-is for the meantime and redo the skill casts on profile.

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Request : Basic fighting info/jumping/strafing

#4 Post by lisa » Wed Apr 18, 2012 9:33 pm

I had a look through my profiles to see if I had any old code in those events to show as an example but I didn't have any that dealt with skills lol
Basically arg1 is the skill table, so arg1.Name is the name of the skill.
If you look in rom/classes/skill.lua you will see all the info for the skill class system.
So in that file anything with self. would be checked in the onpreskillcast using arg1.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Request : Basic fighting info/jumping/strafing

#5 Post by rock5 » Wed Apr 18, 2012 11:33 pm

Regarding 3.

First about Vampire Arrows. The bot has a setting at which it wont cast dots if the mobs HP is below this value. It's called DOT_PERCENT. It's in the options section of your profile. The default profile has this at 90. So if the mobs HP is less than 90% it doesn't cast the skill.

As to cooldowns, the bot can do what you are asking but it doesn't do it very well. Lets look at the rogue Shadow Stab/Low Blow/Wound Attack combo. You can set a requirement that for SS that the mob not have Bleed already and for LB that the mob should have Bleed but not Grievous Wound and for WA that the mob should have Grievous Wound. It would look something like this.

Code: Select all

		<skill name="ROGUE_SHADOWSTAB"    hotkey="MACRO" priority="50" nobuffname="Bleed" nobufftarget="target"/>
		<skill name="ROGUE_LOW_BLOW"      hotkey="MACRO" priority="40" reqbuffname="Bleed" reqbufftarget="target" nobuffname="Grievous Wound" nobufftarget="target"/>
		<skill name="ROGUE_WOUND_ATTACK"  hotkey="MACRO" priority="30" reqbuffname="Grievous Wound" reqbufftarget="target"/>
This, in theory, would make sure it casts in order but what happens is it casts SS, it takes too long for the Bleed affect to appear on the mob so it casts SS again. Then it casts LB. Grievous Wound takes too long so it tries to use LW again.

You get the idea. In the end it actually works better if you don't use the buff checks. Which is probably why we never added those values to the skills database.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

abron1
Posts: 162
Joined: Wed Feb 22, 2012 12:43 am

Re: Request : Basic fighting info/jumping/strafing

#6 Post by abron1 » Fri Apr 20, 2012 12:58 am

i am a noob a coding but if you put the skill that need a buff to cast first in prioity then those skills will be skipped until the buff is there and then get cast... that works for me when i use to use uberflex addon so it won't cast the other skills as long as the buff is up and will cast the skill that need the buff first just my two cents...

Code: Select all

<skill name="ROGUE_WOUND_ATTACK"  hotkey="MACRO" priority="30" reqbuffname="Grievous Wound" reqbufftarget="target"/>
 <skill name="ROGUE_LOW_BLOW"      hotkey="MACRO" priority="40" reqbuffname="Bleed" reqbufftarget="target" nobuffname="Grievous Wound" nobufftarget="target"/>
<skill name="ROGUE_SHADOWSTAB"    hotkey="MACRO" priority="50" nobuffname="Bleed" nobufftarget="target"/>

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Request : Basic fighting info/jumping/strafing

#7 Post by rock5 » Fri Apr 20, 2012 3:15 am

That pretty much makes no difference. In that case it will still cast SS first but, because the bleed effect takes a moment to be applied, it will still skill the first 2 skills and cast SS again.

With all the buff requirements added like that, it doesn't really matter what order you put them.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

User avatar
grande
Posts: 261
Joined: Tue Jun 28, 2011 4:46 pm

Re: Request : Basic fighting info/jumping/strafing

#8 Post by grande » Fri Apr 20, 2012 9:40 am

There's some code in the profile files that allow you to introduce a random chance to pause/rest after a fight. Why couldn't the random generator be used at various times to do various things like press movement hotkeys or cast various spells? I know I put in various spell casts at specific WPs... just not with a code that specifies any random qualifier. Here's an ancient link (random code stuff about halfway down):

http://solarstrike.net/phpBB3/viewtopic ... 1103e#p596

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Request : Basic fighting info/jumping/strafing

#9 Post by rock5 » Fri Apr 20, 2012 10:42 am

grande wrote:There's some code in the profile files that allow you to introduce a random chance to pause/rest after a fight. Why couldn't the random generator be used at various times to do various things like press movement hotkeys or cast various spells?
I don't understand this. A real player doesn't run around jumping and casting random spells or doing random nonsensical actions. They have a purpose and their actions should reflect that purpose.

But if you want to do random actions after a fight like the random rest just use the onLeaveCombat section of your profile and the example in the link you provided.

Code: Select all

<onLeaveCombat>
    if( math.random(100) > 92 ) then
        8% chance random action1
    elseif( math.random(100) > 96 ) then
        4% random action 2
    end
</onLeaveCombat>
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

Boris-The-Blade
Posts: 40
Joined: Sun Mar 11, 2012 8:24 pm

Re: Request : Basic fighting info/jumping/strafing

#10 Post by Boris-The-Blade » Fri Apr 20, 2012 12:54 pm

Thanks Rock5,
I tested your theory out on stacking "electrified" state with a mage, and your absolutely right, it usually double casts a single skill before it every reliably casts sequential skills in order correctly. Who know's, could be the bot, could be latency issues, but it def doesn't like it much. Does help illuminate a lot i was curious about, and now thanks to your post I have a sequential way to build skill lists manually, appreciate that :). Works pretty great regardless, just noticed it one day after attempting to manually set priorities to sequential cast, and how it always acted up.

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Request : Basic fighting info/jumping/strafing

#11 Post by lisa » Fri Apr 20, 2012 11:11 pm

The skill que was created long before they implemented the global cooldown on skills and the bot hasn't been "updated" to deal with this global cooldown. So basically the bot decides to use a skill and executes the in game function to do the skill, if that exact moment is in global cooldown then obviously the skill isn't used but the bot itself thinks it used the skill and so also starts the timer for it's cooldown and won't try to use that skill again until the cooldown has ended.


I have been thinking lately that since we now get so much skill info from memory if we can determine if a skill has been used or not, basically checking if it is on cooldown or not. If we can do that then we can add that in to the code for skills with cooldowns and if skill wasn't used then don't start the cooldown timer.

Or better would be to not worry about a timer in bot but to use the cooldown from memory for the skills.

I have a feeling that this isn't posible though as I do recall doing lots of research into the skill cooldowns in memory and it was very complicated and a really stupid system they used for it.



I did manage to get the skill more reliable by altering the profile option for skill global cooldown

Code: Select all

<option name="SKILL_GLOBALCOOLDOWN" 		value="1600" />
<option name="SKILL_USE_PRIOR" 		value="0" />
This has been part of the bot for a very long time but the part that always confused me is this is done before the skill is cast, where I would think that since the global cooldown is initiated after a skill is used then it would be much better to have this SKILL_GLOBALCOOLDOWN occur after skills are used.

I should also point out that potions are also part of same global cooldown as skills in the game and the timer is also initiated when the bot thinks it uses a pot. So if bot says it uses a potion but is in global cooldown at the time and so the pot isn't actually used, it won't try to use the same pot again until the timer has finished.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Request : Basic fighting info/jumping/strafing

#12 Post by rock5 » Sat Apr 21, 2012 12:40 am

lisa wrote:the part that always confused me is this is done before the skill is cast, where I would think that since the global cooldown is initiated after a skill is used then it would be much better to have this SKILL_GLOBALCOOLDOWN occur after skills are used.
You might be talking about the changes I made awhile back to make it cast faster.

The theory is, if you cast a skill then wait the appropriate amount of time then, by the time it casts the next skill, all the code that happens between casts introduces an extra pause.

So what it does now is cast a skill and immediately continues with other code. When it comes around to casting the next skill it checks to see if enough time has past. If not if pauses then casts the skill. So effectively the pauses are done before the skill. Makes it a bit confusing, I know.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

Boris-The-Blade
Posts: 40
Joined: Sun Mar 11, 2012 8:24 pm

Re: Request : Basic fighting info/jumping/strafing

#13 Post by Boris-The-Blade » Sat Apr 21, 2012 2:30 am

Way off subject here, but just noticed this tonight and wanted to ask. I've been working on a functioning FA script to farm ancient fossils, alchemy recipes (high as **** on my server), and low level purples for making Dirty modded leveling sets. I was until recently, after a reformat using lootfilter (1.7? o.7?), which worked and would lookt very fast. Since reformatting I can't find it again, so i picked up loot-o-matic and it works fine. The problem I'm having now though is, I've created a custom filter in loot-o-matic, which causes delays in looting (2-4secs) if an item is present that is NOT to be looted on the body. The bot itself, works fine, however is attempting to loot it twice in a row (guessing due to the delay), then ignores nearby bodies to loot all-together. Probably a simple fix, but can't seem to locate and exact timer options for looting. Guessing the loot timer is conflicting the with loot-0-matic pause after. Any idea by chance? :).

Also, I've been tinkering around with what you said earlier lisa, about the database skills, and put that together with rocks sequential list. After some tweaking, I'm noticing the bot is actually starting to do sequential order a lot better. it's nowhere near 100%, but probably 60-70% of the time now :)

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Request : Basic fighting info/jumping/strafing

#14 Post by lisa » Sat Apr 21, 2012 3:04 am

I guess I have a different approach to looting then others. I loot it all and then discard unwanted items periodically in the WP. A lot less hassle and much more efficient.

I posted a WP called KSMagma somewhere, have a look at it as an example.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

Boris-The-Blade
Posts: 40
Joined: Sun Mar 11, 2012 8:24 pm

Re: Request : Basic fighting info/jumping/strafing

#15 Post by Boris-The-Blade » Sat Apr 21, 2012 3:23 am

That's a good idea too. Myself, I just use a addon if i can to filter unwanted items and never worry with having to throw anything out, although my biggest problem lately is it skips bodies with the new addon (cause loot delay, bot double loots body then skip's nearby bodies).

Going to try loot in combat just to see if that can counter it for the time being, and will take a look at your script here in a few too :)

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Request : Basic fighting info/jumping/strafing

#16 Post by lisa » Sat Apr 21, 2012 3:38 am

Boris-The-Blade wrote:Going to try loot in combat just to see if that can counter it for the time being
The way I see it you basically have 3 choices in order to not miss loot.

1. Pet perfume
2. loot in combat
3. loot all

1. The pet loots for you and will only miss things if you kill and move on to quickly
2. this loots each mob after it is killed regardless of if you are still in combat
3. this will loot any corpse on hte ground that your character has the ability to loot.

My personal choice is 1, if I don't do 1 then I do 2, very rare occasion I do 3.

If you don't do one of those 3 choices then you risk missing loot quite often.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

Boris-The-Blade
Posts: 40
Joined: Sun Mar 11, 2012 8:24 pm

Re: Request : Basic fighting info/jumping/strafing

#17 Post by Boris-The-Blade » Sat Apr 21, 2012 4:38 am

:), I usually do loot in combat for most things, but that's not my problem at the moment lisa. What's happening now, is due to the loot-o-matic addon, it's causing bodies that contain loot that the filter is set NOT to pick up, to keep the loot window open for 2-4 seconds on average. This in turn, is causing a error almost sure on the bot's end, probably due to a variable set to loot time (which i can't find, but will look again after this dry run), causing the bot to loot the same body two times in a row, and ignore the rest of the bodies laying around. My best guess is, when bodies drop the bot calculates it, and set's it in a queue to be looted. If the variable for the time span on looting is surpassed, it messes with that queue of loot order, causing what im experiencing now. Just a best guess, will keep working at it.

Also, combat loot does improve things quite a bit with this problem, as your not enountering near as many multiple bodies to loot at the same time, heads up for anyone going through this as well.

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Request : Basic fighting info/jumping/strafing

#18 Post by lisa » Sat Apr 21, 2012 5:32 am

I don't use any addons to deal with loot.

If you have "loot all" set to true then the bot will try to loot any corpse on the ground with loot for you. So if your loot filter leaves loot behind because of the filtering system and you use loot all then the bot will try to loot the same corpse again.
Boris-The-Blade wrote:it messes with that queue of loot order
If you don't have loot all then there is no loot que.
Basically if loot all and loot in combat are both false then it will ONLY loot the last mob killed before leaving combat. So if you attack a group of 4 mobs it will kill them and only loot 1 of them and not even attempt to loot the other 3.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

Boris-The-Blade
Posts: 40
Joined: Sun Mar 11, 2012 8:24 pm

Re: Request : Basic fighting info/jumping/strafing

#19 Post by Boris-The-Blade » Sat Apr 21, 2012 6:38 am

Thanks,
Never dawned on me the bot simply is trying to re-loot the corpse because the filter won't let it have the goodies. Is there a way to set the looting time, actual variable in time the loot window is displayed? I could live with the double looting corpses, as combat looting solves 70% or so of the problem, if only I could cut down on how long the window stays open. As of now, it's sticking open for 2-4 secs before the bot moves on, but it loots withing about .5 seconds. Anyway to shorten this time that you know of off hand?

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Request : Basic fighting info/jumping/strafing

#20 Post by rock5 » Sat Apr 21, 2012 9:23 am

In regards to looting twice, just loot everything and it wont loot twice. That's what I do, Never have a problem. The items you usually set to "Don't Loot" set them to "Drop". It will pick them up then drop them. Only thing you have to be careful of is any item that matches a "drop" filter will be dropped, not just the ones you loot. So if you have it set to drop Link Runes and you have a stack of them in your inventory for some reason then when you pick up something, it will drop the link runes.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 4 guests