Gift Anomaly Ratting salvAGE Bot with Sanderling - GARBAGE-2 and measuring his efficiency

script
sanderling
eve-online

#1

This bot, like a child of Sanderling–ratting-bot-anomaly-or-asteroids will take only anomalies, do his job, but will take the loot and do salvage at your choice. I have to mention here it uses salvage drones, and for this reason, all the drones are launched one by one, if you chose to salvage. Actually in a bigger picture, you could take the loot, and if you take the loot, then you could salvage or not. The drones are launched one by one only if you chose to salvage ( usesalvagedrones variable Hope I fix’s that soon).
** also it shows the isk incoming and the loot value. Both are measured into station :d
++ will create a file in the same flder with Sanderling executable with total amount of your wallet and incoming/session
STEPS:
Download the latest release of Sanderling, if you don’t have it

before you start the bot you have to prepare your game interface like that:

-create your combat tab in-game interface with rats+players+solid/large colidables objects+non-empty wrecks like here:


and here:

-create your salvage tab with : ALL wrecks( the empty ones visibles) +rats+players+colidables

-put their name in settings. I advice using simple words like loot/combat;

In rest, all settings are like for his parent. In the description, you have the fit used and the orbit range it was at 43km.
Don’t worry, if the rats are too far, he will switch to orbit them.
Attention, if the anomalies are not the haven, the first celestial object will be skipped, because is too close ( on forsaken, at 3-4km) and this could cause your death since you are not orbiting but you travel in a right line to take the position for orbit
Also, the stats host log, since it is too long, I split him into two rows.
Please, be adviced, this post will treat the subjects related only with this script
Well, here is the master branch of this bot:


Eve Online Anomaly Ratting Bot Release
Complete noob to coding. Trying to make a-bot work
2018 in Review
#2

update and fix’s:
add drones at healing conditions and fix’s the launching drones when inside cargo are mixed (for ratting and salvage)
Thx to DaddyCool from Semi-AFK Ratting/Mining Assistant


#3

last news: Tracking the incoming value for each char
now this bot will create a filename log with the total amount of your wallet, isk and loot value/ session, measured at each docking into the station; And also the name of your system.
the file is created on the same folder with the executable Sanderling
Now you can register and compare the efficacity of different systems and different characters.
Thanks to Viir for his Idea showed on How To Monitor Efficiency Of Your EVE Online Bot

the master branch is updated:


#4

Nice!

If anybody wants to have charts generated for the gained ISK or other logged metrics, let me know. The automatically generated charts look similar to this one:


Ratting bot: anomaly and/or asteroids with Sanderling
#5

a new version of GARBAGE: 2v3 with some improvements and news:

  • in main stats show I included char name ( so if you can identify fast your char, and script) version script, location and chars count in local.

  • now you can adjust from setting if you want to take only faction loot, or all loot, or not at all. Using salvaging drones is available only if you take the loot.

  • when local count is bigger than the limit you warp/dock, like for hostiles. that helps if you use a smaller window for chat local, in local come 50 ally and … one red is hidden behind, because your window is smaller. When they go, you launch again in ratting( if you say no, I always have the biggest window, pls look if you could see all 1500 in local without scrolling )

  • the HP of drones for now is parked, unused; it seems it give some errors when you are docking/undocking and /or if you start the bot outside of station ( I have a version , but is in tests)

  • when you take the anomaly: now the cargofill.used ( value directly from Sanderling) replace the offloadfillpercent. If you take only the salvage ( mainly, because the faction is rare) the volume is too small (1-2) m3 so by rounding the transformed value ( by calcs) Cargo fill is 0. The good news it is he doesn’t measure the dust on the screen and send you into station all time :))

  • focus, yes, focus on defence function. What that means? Well, when your selected target is further than drones range to attack , he change the selection on next target. More than that, if both targets are not available for attacking, he lock from overview. Still, I didnt make him to cycle all targeted rats, so if the last is further… you are screwed up :)) ( because I have to take measurements inside the loop, this is a litle more difficult)

  • now the biggest news: that’s all :)) ( except small improvement, I do not count them)

like usual, updated git:


Ratting bot: anomaly and/or asteroids with Sanderling
#6

Hellow, Can you help me? In the notification of the bot is written that it * monitors local and saves your ship when neutrals or hostiles show up.

but when neutrals or hostiles are coming , the bot moved cursor in left-up corner of screen and use right click mouse again and again and again… and do not warp out
I want to ask, what am i doing wrong?
Thank you.


#7

hello @Andrey and welcome.
Yes, when in your system hostiles ( other players except for your fleet+corp+ally) are shown in your system, they appear on Local chat.
in this moment, the bot align the sip, retreat the drones, and warp/dock to your citadel, saved with the “home” name( without " ) bookmark
The same principle is for friends; if in local chat are more than 15 , then he go home.

The key is this: save your citadel bookmark and name him home.
If you are in HS, then the script have to be modified to:
on the line 31 ( but you have to deactivate manually a lot of other features related at tethering)

var RetreatOnNeutralOrHostileInLocal =false; 

If you want to modify the numer of player in local chat (line 33)

var MaxInLocal = 15;

Or, if you want other name at citadel: (line 102)

string UnloadBookmark = "XXXX"; // your  home bookmark : change at your please

All settings are at the beginning of the script, and (almost) self explanatory
ex:

/// Ranges
var shipRangerMax = 63; // in km, you orbit arround them
var maxDistanceToRats = 120;// in km, you forget about them
var MaxDronesRange = 60000;// ( in metters)
// or 
string WarpToAnomalyDistance = "Within 50 km"; // variants(just copy paste) : "Within 10 km" "Within 20 km" "Within 30 km" 

shiprange max is in km, you can change at 50 or 100 km , how you want
maxdronesrange is use in meters because it need a fast calculation so i want to avoid transforming from meters to km, you can change at 50000 or 100000, again
for WarpToAnomalyDistance if you want to warp at 10km is easy to copy paste “Within 10 km” in the place of “Within 50 km”; and the script make himself all the rest
if you want a version only for HS, i can tell you exactly what to modify.


#8

thank you so much.

Can this bot activate acceleration gate in missions or any expeditions ?


#9

and i created bookmark with name “home” (without ") and nothing changed(


#10

it could, if you make him to activate them

then someting is wrong on your side, because even in this instant, my bot run from the last DT without any problems. The only difference between git version and mine is the name of char.


#11

One more question. Can this bot to use 2+ windows or only one?


#12

:)) it seems we became information’s bureau. Now, you you are way too lazy to read the forum or …way to lazy to try the framework and the scripts.

we (I) are ( am) not at helpdesk man. help yourself and read the forum, the topics, and the settings of scripts!
IF something doesn’t work for you, help again yourself and WORK to solve; IF then it doesn’t work, you came and ask. AND THEN, IF somebody want to help you, you have only a hand of help.
But there is a way, to avoid that, like when you don’t have/able to drive a car: you employ somebody: give him the car and the key’s at your car .
Thank you for attention and your interest


#13

i’m sorry if i caused inconvenience you , I didn’t mean to bother you, just i russian speaker and it hard to me read and translate all forum and topics that’s why i asked here . And i tryed to find answers to my questions, only then i asked here. Please in a nutshell, if it can to use 2+ window , write “yes it can, it
was been describen in the forum” and i’ll go to find it again. Sorry one more time


#14

by remote desktop ( rdp wrapper) yes.


(and I’m not English also, so being Russian is not an excuse)


#15

UPDATE 2v3:
To be honest there are some more changes, but since I’ve done them in time, I cannot track them exactly.
At the suggestion of @ Maniac in pm’s I’ve shorted the codelines, using Dictionary ( for warping to anomaly)
The second notable change is at the retreat level. I changed the “protocol” so now while the retreat string is not null, if the drones in space are 0, he warp directly, else he retreat the drones. This change, placed in the same loop, cut the time to reload the script and win couples seconds for retreat.
Bool Dronesaredamaged is working but since im not really sure I let at you choice to use this or not . You have to uncomment the lines inside of script for that.
Last thing, because the script is a copy-paste from my usage/testing script, you’ll have some annoying messages for debug. This version runned only with salvage and commander loot for almost 12h without any intreruption, into a good traffic system ( so reds passed). The loot is actually the salvage value

10/19/2018 19:14:39:  GARBAGE-2v3 # Sites : 0 Total: 371,831,466 ISK # Session: 0 ISK 0 LOOT .
****
10/20/2018 05:43:30:  GARBAGE-2v3 # Sites : 8 Total: 560,638,871 ISK # Session: 188,807,405 ISK 97,160,000 LOOT .

The master branch from my git is updated , so pay attention to update your own script
Later:
DOh, now I saw on git I offered you the support for Medium ‘Accommodation’ Vestment Reconstructer I , the hardeners, omni and sensor boosts are in the same box since they have to be perma activated. I have to say , that if you have a mixed omni+sensor boost modules, more than 6 , sometimes he activate only 5


InputSimulator in C# and eve online
#16

a new dawn :slight_smile:
first of all, i’ve done an fallback at origins for retreat; from 2 causes:
1 to reduce the dimension of file;
2 sometimes the retreat stay stuck in “while drones are in space” and actually you lose 2-3 sec.
– now the news:

The ideea of botting is using more chars in more regions. So that means, different chars with different drones or fittings.
So the idea is to take the region, to set the faction npc and the drones.
Attention here , because it take the last word from region. That’s why you have

Host.Log( "    - your current region is:");
 Host.Log( CurrentRegion);
 Host.Log( "   - Copy exactly and fill in at lines 54-58 ");

If you are in great wildlands, the region will be Wildlands.
If you have 3 chars, one in Wildlands, one in blind, one in delve, then you can fill the dictionnary with the region, the npcfaction and what type of drones.
So in the end you will have same script for more chars.

The name of drones is used for launch, if you have more that one type ( salvage ) , and to watch over their hp.
There is not an action, if your drones are damaged, if you like, you can put an “dock”. For now I want to see if is working and later, I will add this one at retreat( maybe)
The name char ( first one, this time) is taken and you will have a file to register the incoming.
Since is exactly my own copy of script, the path is
string path = “D:\ISKLOG”;

but you can save anywhere, or like it is already commented, string path = “.\”; in same folder like exec of Sanderling
Back on drones, you can change from autodetection npc at

string NpcFaction = AutoNpcFaction; // or if you want, put directly "serpentis" "blood"  "angel"

to

string NpcFaction = "serpentis";

Also I have added the use of painters

That’s for now, go on git and take the master branch :wink:


#17

So guys, I have come at max at max with this bot.
What means that? Well this was a child of Ratting bot: anomaly and/or asteroids with Sanderling
A child who bring the legacy of his parent further … " where no one was before"
This bot have come at maximum of general features in 98kb file dimension, and the last version 2.6 come with latest high tech innovations on Sanderling:

  • Using folders in drone window : you have 2 folders now, one for "heavy " drones and one for salvagers drones. So create this two folders inside your window drones (ingame) or any name and change in script
  • Using any station/citadel/indy name for warping faster. Not before you have the drones inside, not 200 -500 or 1 billion times faster, but in a matter of 300ms - 500 ms he enter in warp. So add your favorite name station in settings. It doesn’t have to be the same with home. You’ll warp at this station, and then, if the reds are still inside your system, you dock home. So add your citadel( or etc etc) in overview. And the name in settings could be just one word from his name
  • Set your max peoples in local chat . the script read how many they are at the begining and he add 10. if you want 1000 , then change from +10 to +1000. This feature is nice when couples biiiiig fleets enter in your local and with them, a red, hidden from any look.
  • Because like a pro botter, you have more than one char, in different regions, the same script is used for all: the script read the region, using dictionary you have the faction npc and, … what drones you want to watch . * The reading for health of drones is 100 % functionnal, implemented, used, but thats all. if you want to warp or dunno, dance, sing .; you have to add the action at the respective void
  • Did I say you now you know how many rats you kill? well, they are counted now. I just hope the counting is right :)). In fact for tests I used 2 methods, one with reading the hp of target, and one presented to you. The first method misses some frigates. The second could add 1-2 rats, depending if you retreat often . I have no prove the count is wrong, but I have a feeling in this direction :wink: because is hard to believe I kill so many rats
  • Did I mention now you can use 2 anomalies? … think not. Well, in setting you have the second anomaly to take. But to use that, you have to comment at the end of file the actual bool and uncomment the one who use both options. Is not a big deal, unless, if you bot in a populated area and you need to take the second option.
    whats next, let’s see… Oh yes:
  • Are you tired like me, to wait the drones hp to be at 100% on tethering zone? Well, now you repair them into station.
    Actually your ratting ship , entirely. the bot it clicks on repairshop into station ( so is usefull in HS also), it repair your ship and surprise… I have come to " where no one was before…"
    talking about surprises … we come at next point:
  • Our loved EWAR. I had to lose about 10 ships to test that snippets on real combat, in all regions, to make the code to work and to order them. That’s make about 2B isk. And surprise , I offer you the codes, free to use in personal use. So remember my sacrifices in isk, in time play and in RL next time when you discover something doesn’t work well on this or any of my bots, and be nice . I do not ask you for your money, isk, so let be nice everybody.
    In conclusion, now Ewar is solved, if you need to change the order ( if you want warp scrambler before web, just copy paste from down to above)
  • And since I’ve come to RL stuffs, I will tell you something. Do you know I had a dream? I dont love to have too many open programs, auto clikers, alarm intels etc. So my dream was to use the intel channels directly in Sanderling bot.
    Is coming now: you are alarmed if any of your nearby systems connected through stargates is visited by reds and their presence is pointed in your intel channels. You will have a beep beep. So if you want to warp … you just have to change a little the script , by adding the void instantwarp in the void for reading the nearbysystems. Still, the respective window have to be single and not in tab with another one.

So because I have come at maximum space allowed with maximum features possibles, this version need tweaked by you, so be patient, because I had to delete the green text (commented) from the beginning, read carefully the script and fill in the “xxx”
So, on

Dictionary<string,string> region=new Dictionary<string,string>();
region.Add("xxx", "blood");

xxx is the region, blood is the faction npc
on

Dictionary<string,string> IntelFor=new Dictionary<string,string>();
IntelFor.Add("xxx", "your intel channel");

xxx is again, the region;
on

string ShowSystemsList = String.Join(" ; ", MenuStations);
Host.Log("                >>> First " +ShowSystemsList+ " ");
//MenuStations.Add(""); // add other systems

MenuStations.Add(" ADD HERE OTHEr SYSTEM NAME ")
do not ask me why I named him MenuStations … I dont know :d :))

And since the bot is at his maturity, I will post the master link to git:


Bot DFADE32F - /*V 1.1.2 This bot ratting anomaly and/or asteroids;It use tethering zone, warp distance configurable from
#18

fix:
commented a line who give crash on tower presence ( the one on parse rats , the tower have speed “null” or is "empty " so he cannot transform in decimal)
now he avoid at ease again the haven gas ( so lovers of haven, you can bot again)

  • change on instant warp on gas haven

  • orbit/savelocation before rats are coming, on rock haven

  • one host.log is changed ( to sound more appropriate, it shows the name of npc and what ewar )

    log

**later : orbit fix for havens


Bot DFADE32F - /*V 1.1.2 This bot ratting anomaly and/or asteroids;It use tethering zone, warp distance configurable from
Bot DFADE32F - /*V 1.1.2 This bot ratting anomaly and/or asteroids;It use tethering zone, warp distance configurable from
#19

This script just does not work for me, I tried last version and it would error out on Line 114 saying there is duplicates. Now I try this script on the current version and it errors on line 50.

I just want to clarify the configuration to make sure it is not me stuffing it up.

Line 11 string StationHomeName = "xxx|xxxxx; I am not sure on the formatting, is it “System|StructureName”?

In line 13 string ShipName = “Vexor”; should I edit this to my actual ship name or ship type?

Line 44 MenuStations.Add(“xxx”); Do I add nearby/connecting systems in these xxx?

Line 62 region.Add(“xxx”, “blood”); Do I add what my NPC is (Guristas, Serpentis, Drones, etc?) or do I add what a faction spawn is, (Dark Blood, Shadow Serpentis, Dread Gurista)?

Also should I comment out lines that are unused like IntelFor.Add(“xxx”, “”); ?

Error in question:
indent [
{
“TimeDateTimeIntraDayCal”: “10-42-47”,
“TimeDateTimeIntraSecMilliString”: “019”,
“CaptionString”: “RuntimeException: System.AggregateException: One or more errors occurred. —> System.AggregateException: One or more errors occurred. —> System.ArgumentNullException: Value cannot be null.\r\nParameter name: values\r\n at System.String.Join(String separator, IEnumerable1 values)\r\n at Submission#0.<<Initialize>>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.CodeAnalysis.Scripting.ScriptExecutionState.<RunSubmissionsAsync>d__91.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.CodeAnalysis.Scripting.Script1.<RunSubmissionsAsync>d__21.MoveNext()\r\n --- End of inner exception stack trace ---\r\n at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification)\r\n at BotSharp.ScriptRun.ScriptRun.<>c__DisplayClass75_1.b__3()\r\n at System.Threading.Tasks.Task1.InnerInvoke()\r\n at System.Threading.Tasks.Task.Execute()\r\n --- End of inner exception stack trace ---\r\n at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)\r\n at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)\r\n at System.Threading.Tasks.Task.Wait()\r\n at BotSharp.ScriptRun.ScriptRun.<>c__DisplayClass75_0.<Start>b__4()\r\n---> (Inner Exception #0) System.AggregateException: One or more errors occurred. ---> System.ArgumentNullException: Value cannot be null.\r\nParameter name: values\r\n at System.String.Join(String separator, IEnumerable1 values)\r\n at Submission#0.<>d__0.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.CodeAnalysis.Scripting.ScriptExecutionState.d__91.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.CodeAnalysis.Scripting.Script1.d__21.MoveNext()\r\n — End of inner exception stack trace —\r\n at System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification)\r\n at BotSharp.ScriptRun.ScriptRun.<>c__DisplayClass75_1.<Start>b__3()\r\n at System.Threading.Tasks.Task1.InnerInvoke()\r\n at System.Threading.Tasks.Task.Execute()\r\n—> (Inner Exception #0) System.ArgumentNullException: Value cannot be null.\r\nParameter name: values\r\n at System.String.Join(String separator, IEnumerable1 values)\r\n at Submission#0.<<Initialize>>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.CodeAnalysis.Scripting.ScriptExecutionState.<RunSubmissionsAsync>d__91.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.CodeAnalysis.Scripting.Script`1.d__21.MoveNext()<—\r\n<—\r\n”,
“LineIndex”: 49,
“CharacterIndexInLine”: 0,
“LineIndexInAvalonEdit”: 50,
“CharacterIndexInLineInAvalonEdit”: 1
}
]

Thanks


#20

Stationnamenis what it say, the name of station, for details read above ( taping on phone, i cannot provide you perma link.
)
ShipName … it it what it says. Name not type, class etc
Menu addstations. If you maje some effort ro read above, you’ll see the script already read the direct connection with your system. You can add others, at 2jumps;3jumps etc
Iine 62. What you read at line68?? AutoNpcFaction . Need a dictionary?? Read above details why and what.
If you live only in 1 region -, why you need 3? Ofcourse you comment . Others could be interestes in 3regions and filling them the filesize is almost the same.

About the error: value cannot be null. Agaî if uou made a littlz efirt to read on forum, you could see a warning: do not move the mouse. Even so, you can have this error from time to time if you play with the script. Ir xhars or change the regions/systems . Typing at each kind of stuufs exceptions at triming the string and at regexreplace it take 1/2 in all of filesize. You can do that by yourself and also cut in half all features… fir exmole you can drop the takeanomaly or defensestep

If you made some effort to read you could understand that last version need tweaked by yiu cut what you dont need and rebuild the script to decrease his filesize. If yiu are not used with that. Use a early stableversion , simpler.
This last version is an compendium with all you need on this line target( rating anomalies) and to develop other types of bots specifically dev for different activities: pvp, missions, logi, spy cloaked, fleet, incursions , expeditions.