Love Thy Drones 2.0 now less suck

NovemberZerg

Active Member
in this patch i have made a change in the obj_Combat.iss in Fight() that now checks the number of things targeting you and the number of things your targeting for a quick and dirty check to see if its safe to have drones out.

if the number of things targeting you is greater then or equal the number of things your targeting
then drones attack

if the number of things targeting you is less then the number of things your targeting
then return drones


also included in the patch is a change to the obj_Drones.iss for another layer of drone protection

drones now return when under 80% shields not 50%
 

Attachments

CyberTech

Second-in-Command
Staff member
in this patch i have made a change in the obj_Combat.iss in Fight() that now checks the number of things targeting you and the number of things your targeting for a quick and dirty check to see if its safe to have drones out.

if the number of things targeting you is greater then or equal the number of things your targeting
then drones attack

if the number of things targeting you is less then the number of things your targeting
then return drones


also included in the patch is a change to the obj_Drones.iss for another layer of drone protection

drones now return when under 80% shields not 50%
Applied. Note that the return you added breaks in the event there are more things attacking us than we can target.
 

NovemberZerg

Active Member
Applied. Note that the return you added breaks in the event there are more things attacking us than we can target.

i prefer to think it gracefully fails ^.^because in the event that you cant target all the targets you will still deploy drones and attack.
 

Taro

Member
Nice patch. Thanks a bunch.

Feedback:
Drones will still be shot when you are chaining belts. I will only lock the battleships, and they will usually attack me at which point i have the same amount of ships attacking me as i have locked, but the frigs that arent locked will target the drones.

Is it possible to tell how many ships are on your overview, then deploy drones only if that many are attacking you?

Thanks
 

Shrike

Member
Is it possible to tell how many ships are on your overview, then deploy drones only if that many are attacking you?

Thanks
The problem is haulers, they are red NPC's but won't target you so using the above logic, your drones will never deploy.
 

maires

Member
Hey guys ever since inferno drones have been horribly broken. I have been updating from SVN daily... well mostly weekly now... but no updates have seem to fix what seems to be a super simple problem. (Ive mentioned it like... 20 times in IRC chat to the point where I am pretty sure you guys got tired of me doing it.)

Heres the problem...

When your done killing NPCs in a belt... you WARP to the next belt instead of ALIGN and wait for drones before warping.

I am not sure why that changed... Anyway drones can get some more love. In anomolies I have seen them just deploy and come back in an endless
loop. Not even sure what causes that.
 

CyberTech

Second-in-Command
Staff member
When your done killing NPCs in a belt... you WARP to the next belt instead of ALIGN and wait for drones before warping.
.
EVEBot has never alligned and waited. It's always had a delay before initializing warp, of up to a few seconds, to wait for drones to return.

What type of drones are these? How long do they take to return?
 

CyberTech

Second-in-Command
Staff member
I am not sure why that changed... Anyway drones can get some more love. In anomolies I have seen them just deploy and come back in an endless
loop. Not even sure what causes that.
This is generally caused by them having damage. They get sent out, noticed that they're damaged over the threshold, and returned. You can change the threshold in obj_drones
 

maires

Member
EVEBot has never alligned and waited. It's always had a delay before initializing warp, of up to a few seconds, to wait for drones to return.

What type of drones are these? How long do they take to return?
Um... yea it has :) It was the default way it handled drones returning to your ship in belts since i started using it ISXEVE / EVEBOT. I know this because it would say "Aligning to Belt" and it would maintain an aligned vector at top speed until the last drone returned to the ship and then would initiate a warp. I have an entire fleet of dominixes using wasp II's that I have had to slowly over the last several months change over to tengus. I still have one character that cannot rat because of this. The behavior it does now... randomly waits and then warps off. I was losing flight upon flight of drones until I figured out something had changed. The previous behavior allowed HEAVY drones to return from 70km away before warping out of the belt.. and then would warp... EXACTLY once the last drone was collected.

My previous comment about the endless loop was inaccurate they just deploy and then return until every ship has locked you. It would be preferable if they just waited to deploy until every ship had locked you instead of spassing out in a clearly botlike and detectable behavior by spitting out and collecting your drones faster then is humanly possible.

Honestly just role back the previous "drone patch" its the worst thing to happen to evebot since I started paying for the service. Also you should be able to check out a revision from SVN with the drone align code. I wish i paid more attention to this stuff as I would have given you an exact revision number.

The only thing I would have fixed from the way drones previously worked would be to have them return to the ship when they started taking damage instead of at near 50% or whatever it was.
 

maires

Member
This is generally caused by them having damage. They get sent out, noticed that they're damaged over the threshold, and returned. You can change the threshold in obj_drones
You need to look at the drone code you've allowed to get into evebot.

As stated in previous reply. This is due to the way it pulls drones back now until every enemy has locked you (which is super $%(*@&$# annoying) It would be fine if it just waited and then deployed. (would still be alot of wasted DPS... drones are cheap i dont mind them getting a bit of shield damage) Right now anyone trying to use drones is literally advertising HEY IM USING A BOT as Evebot will deploying and recalling drones faster then is humanly possible.

ROLLBACK DRONES 2.0
there is way to much suck in it.
~
 

CyberTech

Second-in-Command
Staff member
Um... yea it has :) It was the default way it handled drones returning to your ship in belts since i started using it ISXEVE / EVEBOT. I know this because it would say "Aligning to Belt" and it would maintain an aligned vector at top speed until the last drone returned to the ship and then would initiate a warp.
If it was doing it for you, it must have been a patch you added. I just checked the code for the last 2 years and at no time did it either log that, or wait until ALL drones returned. It's always had a short wait before warping.

One change that did occur at some point is the align command is now wrapped in a check for # of drones in space > 0. This check may be failing, and regardless doesn't need to wrap the align, so I've just moved that out. It still doesn't wait until all drones return, it just gives them time to do so.

My previous comment about the endless loop was inaccurate they just deploy and then return until every ship has locked you. It would be preferable if they just waited to deploy until every ship had locked you instead of spassing out in a clearly botlike and detectable behavior by spitting out and collecting your drones faster then is humanly possible.
I'll take a look at this. I never liked the idea of waiting for all ships to lock you, however, the majority of folks with an opinion said they wanted that.

Honestly just role back the previous "drone patch" its the worst thing to happen to evebot since I started paying for the service.
Just a reminder, EVEBot is 100% free. It is not a part of ISXEVE subscription, nor is it maintained by Amadeus.
 

maires

Member
If it was doing it for you, it must have been a patch you added. I just checked the code for the last 2 years and at no time did it either log that, or wait until ALL drones returned. It's always had a short wait before warping.

One change that did occur at some point is the align command is now wrapped in a check for # of drones in space > 0. This check may be failing, and regardless doesn't need to wrap the align, so I've just moved that out. It still doesn't wait until all drones return, it just gives them time to do so.



I'll take a look at this. I never liked the idea of waiting for all ships to lock you, however, the majority of folks with an opinion said they wanted that.



Just a reminder, EVEBot is 100% free. It is not a part of ISXEVE subscription, nor is it maintained by Amadeus.
- I think im being confusing. The bot itself did not say Aligning to belt. It was the eve client that said it was aligning to a belt just like if you were to click on align to any object right now in game. I am a bit confused at one the second paragraph means. I read this to say it was aligning until all drones were out of space. Which is kinda what im talking about.

Can we put code back in to make the bot wait for drones in space = 0 before warping and do an align to the next belt in the iterator immediatly after killing the last npc target. This would be perfect.

Sorry about the last statement. Just frustrated about drones. They used to work so well. I mean I cannot tell you how LONG and how OFTEN my dominixes worked flawlessly in belts. 8 hours of ratting and not a single missing drone most nites. Now they drop all drones at the first belt unless they were sentries or warriors lol. I probably should have posted immediately but the change was made about the same time as the inventory changes and I knew you guys were busy with that and the drones seemed so broken that they just had to be on the list of things to fix. Who wants someone repeatedly telling them about something they already know.

~
 

frbyles

Well-Known Member
I'll take a look at this. I never liked the idea of waiting for all ships to lock you said:
Im new to evebot and i f*ing love it . yea the drones are messed up but since this is a free script you should all be thankfull that he even takes your suggestions in consideration when patching the code !! On that note the drones are flipping out but ill sit my happy ass right here and tinker with my free .iss file until i figure it out or until a patch is released whichever happens first :)

NOTE: The drones work alot better in the pillboxing version but it dosent have manage fleet and whitelist options
 
Last edited:

Taro

Member
Thanks for bringing this to the devs attention maires.

Ive had a computer running evebot for about a year now and its been working fine. This machine works great and does align until all drones are collected. I dont know when I last updated evebot because I havent had to (maybe 6 months).

I setup a second machine with evebot yesterday and within 2 hours all of my drones were lost (Hammerheads). This machine is using an up to date version of evebot and my ship initiates the recall drones command, then immediately initiates the warp command, sometimes leaving the drones behind. I have the two machines running side by side and I can assure you that the old evebot always aligns until all drones are collected before warping.

If I would be helpful I can try to figure out which version of evebot is still working correctly. Im considering copying that version onto my other machine because I cant use the new version of evebot. I end up losing all my drones then get stuck in a belt for hours trying to shoot a frig that i cant track.

Update:
Working EVBot version: 2244
Current Non-working version: 2809
 
Last edited:

Shrike

Member
The following is a quick hack which kicks in before any of the normal evebot drone recall code :

Replace the first section of the "function Move()" in obj_Ratter.iss with -

Code:
	function Move()
	{
	variable iterator DroneIterator
	variable index:activedrone ActiveDroneList

		if ${Social.IsSafe}
		{
			Ship:Deactivate_Weapons
			Ship:Deactivate_Tracking_Computer
			Ship:Deactivate_ECCM
			if !${Config.Combat.AnomalyAssistMode}
			{
				Me:GetActiveDrones[ActiveDroneList]
				if ${ActiveDroneList.Used} > 0
				{
					UI:UpdateConsole["Recalling ${ActiveDroneList.Used} drones."]
				}
				while ${ActiveDroneList.Used} > 0
				{
					EVE:Execute[CmdDronesReturnToBay]
					wait 30
					Me:GetActiveDrones[ActiveDroneList]
				}

				call Belts.WarpToNextBelt ${Config.Combat.WarpRange}
				if !${Social.IsSafe}
                                ..............
                                ..............

All it does in pull in drones, and wait until they are all in, before it starts to align.
 

Taro

Member
Shrike, your code works, but its not the real fix. Thanks for pointing me in the right direction though.
After trying your code, I decided to dig around through the scripts and figure out what was really causing the problem. Turns out in obj_Ship.iss there is a function WarpPrepare that does attempt to wait for your drones to return before warping (and after aligning ;) ). It uses a config setting "MaxDroneReturnWaitTime" to determine how long it should wait.

Code:
; *2 because we're only waiting half a second.
while (${This.Drones.DronesInSpace[FALSE]} > 1 && ${Counter:Inc} < (${Config.Combat.MaxDroneReturnWaitTime}*2))
{
    wait 5
}
Turns out this setting is 3 seconds by default. Problem is, this setting isnt exposed in the EVEBot UI. To change the setting you will need to manually modify your config xml file (\InnerSpace\Scripts\EVEBot\Branches\Stable\config\[XXXXX]Config.xml).

<Setting Name="MaxDroneReturnWaitTime">3</Setting>

Im my config I changed the 3 to 20. With heavy drones you may want to make this a much larger number. Keep in mind that this will also affect when you are warping to flee (if someone comes into local), so change this at your own risk.

Hope this helps. :halo:
 
Last edited:

Shrike

Member
Nice find Taro however I can't see why it's implemented via the config file.

All it needs is a loop to check if you have drones in space (and that social is still safe).

Lets hope a more elegant fix gets into the code.

:)
 
Top Bottom