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

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

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.

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

:)) 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

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

by remote desktop ( rdp wrapper) yes.

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

2 Likes

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

1 Like

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:

1 Like

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:

3 Likes

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

1 Like

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

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.

You keep accusing me of not reading enough but your broken English makes steps hard to follow, god forbid I ask for some clarification that your ego gets so wounded you gotta start being all defensive.

1 Like

no man I just answered in the midnight and that why I sent you at already posted news and added features.
I will extend my answer then, at each point with my broken english:

did you see there system name? no .
but you see the system at lines arround 241 :slight_smile:

currentLocationName = currentLocationName.Remove(currentLocationName.IndexOf(" "));
Host.Log("               System :  " +currentLocationName+ " ");

you can see the current system have another name.
More than that:

you see what I wrote? Is not clear enough? you can have station “alabala” from char1 in system x and station “galathea” in system y for char 2. Adding them both, you can use the same script without any changes in system x and in system y , for char 1 and for char 2 and you have:
string StationHomeName = “alabala|galathea”;
but that you could already understand if you used old versions or any other script and read the forum.

is the ship name . you prefer “shittyrattingship” or “£¤^$” or shipname=“shipname”?? Maybe this was more english… maybe. More than that, the script is made using vexor and for vexor. maybe is more understandable to put :slight_smile: this script is made for vexor BUT I name my ship ISHTAR. again, maybe this is more English and more understandable .
Again, if you read the forum, this misunderstanding was avoided.

answer:

This is not English??
ok, next:

answer:
is not clear that?

Also in the related version is stated clear:

Dictionary<string,string> region=new Dictionary<string,string>();
region.Add("Delve", "blood");
region.Add("Fountain", "serpentis");
region.Add("Blind", "guristas");

region.TryGetValue(CurrentRegion,out AutoNpcFaction);

I dont see anywhere

but I see the faction spawn here, at line 122:

string commanderNameWreck = "Commander|Dark Blood|true|Shadow Serpentis|Dread Gurista|Domination Saint|Gurista Distributor|Sentient|Overseer|Spearhead|Dread Guristas|Estamel|Vepas|Thon|Kaikka|True Sansha|Chelm|Vizan|Selynne|Brokara|Dark Blood|Draclira|Ahremen|Raysere|Tairei|Cormack|Setele|Tuvan|Brynn|Domination|Tobias|Gotan|Hakim|Mizuro";

How you can see , it is the name of commander name wreck. is not self explainatory? like ship name ? or menustations = stations from menu ( and add at that => menustation.add?)
So :

what it could be if I already have blood there? region … because I already have the npc faction “blood”

answer:
in Gift Anomaly Ratting salvAGE Bot with Sanderling - GARBAGE-2 and measuring his efficiency
right at the end , in the preview with the source is stated clear:

Warning!!: When the bot starts AND when the ship enter in station or it measure your wallet; DO NOT TOUCH THE MOUSE!! or you will take crash

hmmm… maybe I write in russian, or other language

Ok, sorry I sent you , in the midle of the night to read the forum, to read the script and older versions…
And sorry I didn’t create a script or bot completely automatic for lazy peoples.
About my broken english, next time I will ask you for an translator ( 500£ /min , promo for your majesty)

Because the limit file-size of a script I will add some usefull snipets here.
The snipets are based on Garbage script.
if you want to work in fleet, one char to rat, and the second one to do the salvage at the end, firstly create the fleet in-game.
to identify the chars, you have this snipet:

string FleetMate = "char1|char2|char3"; // only the first name of char
var MoiWarpToLeader = false;// if the char0( the actual one) will warp at  one of chars

//detecting the fleet chars (I use fleet with 2 members)
//Practically you look on local chat if there is a char with the fleet flag  and the same char have the name FleetMate
var FleetCharFlag = chatLocal?.ParticipantView?.Entry?.Where(fleetmember =>(fleetmember?.FlagIcon?.FirstOrDefault()?.HintText?.RegexMatchSuccessIgnoreCase("Pilot is in your fleet") ?? false) &&(fleetmember?.NameLabel?.Text?.RegexMatchSuccessIgnoreCase(FleetMate) ?? false));

//Create an array is you have at least one fleet mate; if you have an error on this line, simply replace ToArrayIfNotEmpty() with ToArray()
var FleetCharFlagList = FleetCharFlag.ToArrayIfNotEmpty();

//checking his name and log , to see if is ok
string fleetmember = FleetCharFlagList?.FirstOrDefault()?.NameLabel.Text;
if (!FleetCharFlagList.IsNullOrEmpty())
 Host.Log( "Fleet mate    :    "                                                                +fleetmember+ "");
//we create a void to take warp on him; there is no need for void, since the command to ake warp is only 2 lines, but is easier to add and identify into script 
void TakeWarpToFleetMate ()

{
    if (MoiWarpToLeader)

ClickMenuEntryOnPatternMenuRoot(FleetCharFlag?.FirstOrDefault(), "Fleet", "warp");

}

//On Garbagescript, where you take warp to anomalies or to return the old sites
you add( you have to adapt a little, on take anomaly you put on body, not inside of "if oldsiteexist ...")
 if (!FleetCharFlagList.IsNullOrEmpty()) 
    {
TakeWarpToFleetMate ();
    Host.Log("               warp to mate fleet");


    } 
    else
        ReturnToOldSite ();  

I am retarded when it comes to set overview columns and settings, could you go in further detail what should i be allowing in my combat and wreckage tab

I understand stuff like wrecks, but not collidables thats where i get confused are they planets only and stations?

Thank you in advance and amazing work

is simply:
go in capsule to an forsaken hub. ( so you are not targeted/killed by npc)
press your tab “combat” ( for example)
in the upper left corner where you have the 4 orizontal lines click righ, and click on " show all brackets"

after that look around your ship, you will see 3 rocks.
right click on one of them, select add to overview.

you can see them on overview now

right click on your tab, select save ( and he ask you if you ant to save, click ok)

2 Likes

Can do, another question i know c# can i help to improve the script if possible and to add options and stuff?

thanks for your amazing work, appreciated

1 Like

sure. also you can do on git an account and publish your work here

1 Like

Hey, just tried to start the bot and it says it failed to execute the next statement. line 121
string commanderNameWreck = “Commander|Dark Blood|true|Shadow Serpentis|Dread Gurista|Domination Saint|Gurista Distributor|Sentient|Overseer|Spearhead|Dread Guristas|Estamel|Vepas|Thon|Kaikka|True Sansha|Chelm|Vizan|Selynne|Brokara|Dark Blood|Draclira|Ahremen|Raysere|Tairei|Cormack|Setele|Tuvan|Brynn|Domination|Tobias|Gotan|Hakim|Mizuro”;
it says the name “commanderNameWreck” does not exist in the current context
what do i do? i have next to no coding knowldege