|
You last visited: Today at 19:53
Advertisement
[Release] Eve Online Botting Framework
Discussion on [Release] Eve Online Botting Framework within the Eve Online forum part of the MMORPGs category.
03/03/2016, 13:29
|
#16
|
elite*gold: 585
Join Date: Jul 2011
Posts: 268
Received Thanks: 104
|
Quote:
Originally Posted by Vyndariel
Zum Testzeitpunkt war ich immer von Station abgedockt, hatte keine überlappenden Fenster und Button zum Inventory ist auch so alles dort wie gefordert eingestellt.
|
Ok, dann habe ich noch ein paar fragen zu dem Test:
Hat der Bot das Sonnensystemmenü geöffnet?
->Wenn ja, war dort der Bookmark '00 - Station' sichtbar?
War im ShipUI der readout aktiv?
Was wird im API Explorer unter MemoryMeasurementParsed?.Value?.ShipUi?.HitpointsA ndEnergy angezeigt? (Dort sollten die Hitpoints angezeigt werden)
|
|
|
03/03/2016, 13:43
|
#17
|
elite*gold: 585
Join Date: Jul 2011
Posts: 268
Received Thanks: 104
|
Mining script expansion to warp out depending on local.
Quote:
Originally Posted by supersonic666
EDIT:
nvm, went to your forum, found everything. thank you very much!
-----------------------------------------------------------------------
Hello Optimist, how would i go about adding code to the mining script, so it docks to the station if neutral or enemy pilots are present in local, then waits for local to be clear before going out again. it should be part of defense check part of the script.
if you could give me some ideas how to start i would appriciate that.
so far everything works great.
|
Just for the record, here is the implementation I would test next decide whether to warp out because of the looks of local:
Code:
using Parse = Sanderling.Parse;
bool IsNeutralOrEnemy(IChatParticipantEntry participantEntry) =>
!(participantEntry?.FlagIcon?.Any(flagIcon =>
new[] { "good standing", "excellent standing" }
.Any(goodStandingText =>
flagIcon?.HintText?.RegexMatchSuccessIgnoreCase(goodStandingText) ?? false)) ?? false);
WindowChatChannel chatLocal =>
Sanderling.MemoryMeasurementParsed?.Value?.WindowChatChannel
?.FirstOrDefault(windowChat => windowChat?.Caption?.RegexMatchSuccessIgnoreCase("local") ?? false);
// assuming that own character is always visible in local
bool Retreat => 1 != chatLocal?.ParticipantView?.Entry?.Count(IsNeutralOrEnemy);
As you can see, it uses a whitelist of harmless standings and counts the chat participants which have any other flag.
If this works, I will add it to the included mining script.
|
|
|
03/03/2016, 23:33
|
#18
|
elite*gold: 0
Join Date: Mar 2008
Posts: 67
Received Thanks: 5
|
Quote:
Originally Posted by 0ptimist
Just for the record, here is the implementation I would test next decide whether to warp out because of the looks of local:
Code:
using Parse = Sanderling.Parse;
bool IsNeutralOrEnemy(IChatParticipantEntry participantEntry) =>
!(participantEntry?.FlagIcon?.Any(flagIcon =>
new[] { "good standing", "excellent standing" }
.Any(goodStandingText =>
flagIcon?.HintText?.RegexMatchSuccessIgnoreCase(goodStandingText) ?? false)) ?? false);
WindowChatChannel chatLocal =>
Sanderling.MemoryMeasurementParsed?.Value?.WindowChatChannel
?.FirstOrDefault(windowChat => windowChat?.Caption?.RegexMatchSuccessIgnoreCase("local") ?? false);
// assuming that own character is always visible in local
bool Retreat => 1 != chatLocal?.ParticipantView?.Entry?.Count(IsNeutralOrEnemy);
As you can see, it uses a whitelist of harmless standings and counts the chat participants which have any other flag.
If this works, I will add it to the included mining script.
|
works perfectly, thanks alot.
|
|
|
03/05/2016, 14:49
|
#19
|
elite*gold: 585
Join Date: Jul 2011
Posts: 268
Received Thanks: 104
|
Sanderling Release v16.02.04
|
|
|
03/06/2016, 01:03
|
#20
|
elite*gold: 20
Join Date: Feb 2006
Posts: 1,935
Received Thanks: 1,859
|
Ore-Script mit veränderten Bookmark-Namen und Rats auf true
Code:
01.02.13 status transition from Pausing to Running.01.02.14 Microsoft.CodeAnalysis.Scripting.CompilationErrorException: (368,15): error CS1061: 'string' does not contain a definition for 'ValueFromRegexMatchGroupAtIndex' and no extension method 'ValueFromRegexMatchGroupAtIndex' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?)
bei Microsoft.CodeAnalysis.Scripting.ScriptBuilder.ThrowIfAnyCompilationErrors(DiagnosticBag diagnostics, DiagnosticFormatter formatter)
bei Microsoft.CodeAnalysis.Scripting.ScriptBuilder.CreateExecutor[T](ScriptCompiler compiler, Compilation compilation, CancellationToken cancellationToken)
bei Microsoft.CodeAnalysis.Scripting.Script`1.GetExecutor(CancellationToken cancellationToken)
bei Microsoft.CodeAnalysis.Scripting.Script`1.RunAsync(Object globals, CancellationToken cancellationToken)
bei BotSharp.ScriptRun.<>c__DisplayClass58_0.<Start>b__0()01.02.14 status = Failed.
|
|
|
03/06/2016, 09:54
|
#21
|
elite*gold: 585
Join Date: Jul 2011
Posts: 268
Received Thanks: 104
|
compilation error mining script
Quote:
Originally Posted by Vyndariel
Ore-Script mit veränderten Bookmark-Namen und Rats auf true
Code:
01.02.13 status transition from Pausing to Running.01.02.14 Microsoft.CodeAnalysis.Scripting.CompilationErrorException: (368,15): error CS1061: 'string' does not contain a definition for 'ValueFromRegexMatchGroupAtIndex' and no extension method 'ValueFromRegexMatchGroupAtIndex' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?)
bei Microsoft.CodeAnalysis.Scripting.ScriptBuilder.ThrowIfAnyCompilationErrors(DiagnosticBag diagnostics, DiagnosticFormatter formatter)
bei Microsoft.CodeAnalysis.Scripting.ScriptBuilder.CreateExecutor[T](ScriptCompiler compiler, Compilation compilation, CancellationToken cancellationToken)
bei Microsoft.CodeAnalysis.Scripting.Script`1.GetExecutor(CancellationToken cancellationToken)
bei Microsoft.CodeAnalysis.Scripting.Script`1.RunAsync(Object globals, CancellationToken cancellationToken)
bei BotSharp.ScriptRun.<>c__DisplayClass58_0.<Start>b__0()01.02.14 status = Failed.
|
Das kommt daher das die genannte methode aufgrund einer kollision in einen anderen Namensraum verschoben wurde.
Das Problem kann behoben werden durch das hinzufügen der folgenden using directive am Anfang des Scripts:
Code:
using BotSharp.ToScript.Extension;
Übrigens kann man in der "static diagnostics" sektion alle compilerfehler sehen, der log den du kopiert hast zeigt im falle von fehlern beim kompilieren nur den ersten.
So kann das in der UI aussehen:
|
|
|
03/07/2016, 12:19
|
#22
|
elite*gold: 20
Join Date: Feb 2006
Posts: 1,935
Received Thanks: 1,859
|
Hey,
thanks a lot for your advice! With that iniatial line of code it's working
I was wondering if you consider adding Mining Drone, as well as multiple bookmark-support?
Cheers
|
|
|
03/07/2016, 22:08
|
#23
|
elite*gold: 585
Join Date: Jul 2011
Posts: 268
Received Thanks: 104
|
Sanderling memory reading features.
Quote:
Originally Posted by Vyndariel
Hey,
thanks a lot for your advice! With that iniatial line of code it's working
I was wondering if you consider adding Mining Drone, as well as multiple bookmark-support?
Cheers
|
Drones and multiple bookmarks are already supported.
The Drone Window is at
Code:
MemoryMeasurementParsed?.Value?.WindowDroneView?[0]
|
|
|
03/07/2016, 23:01
|
#24
|
elite*gold: 20
Join Date: Feb 2006
Posts: 1,935
Received Thanks: 1,859
|
could you give us newbs working examples with existing code like the ore-script, especially multiple bookmarks are very interesting, especially in combination with mining crystals and filters?
This would boost that script massively
Cheers
|
|
|
03/07/2016, 23:27
|
#25
|
elite*gold: 585
Join Date: Jul 2011
Posts: 268
Received Thanks: 104
|
improved sample mining script to use different mining site bookmarks
Quote:
Originally Posted by Vyndariel
could you give us newbs working examples with existing code like the ore-script, especially multiple bookmarks are very interesting, especially in combination with mining crystals and filters?
This would boost that script massively
Cheers
|
Sure, I just changed the sample ore mining script to use multiple bookmarks for mining sites.
You can see the commit with the differences highlighted at
As you can see, it picks a random mining site from the configured set.
|
|
|
03/10/2016, 19:12
|
#26
|
elite*gold: 20
Join Date: Feb 2006
Posts: 1,935
Received Thanks: 1,859
|
also I would like to know how I could change the script to target 2 roids instead of 1
|
|
|
03/11/2016, 13:01
|
#27
|
elite*gold: 585
Join Date: Jul 2011
Posts: 268
Received Thanks: 104
|
script to lock 2 roids.
Quote:
Originally Posted by Vyndariel
also I would like to know how I could change the script to target 2 roids instead of 1
|
for each roid you want to target do this: - choose the entry in the overview which represents the roid.
- leftclick on that overview entry.
- simulate keypress of the 'lock' keyboard shortcut. (You could also lock via the context menu but as long you can rely on knowing the configured keyboard shortcut that is more efficient)
I wrote a complete script which should implement the described approach and lock a configurable number of roids for you to test:
Code:
using BotSharp.ToScript.Extension;
using Parse = Sanderling.Parse;
var numberOfRoidsToLock = 2;
var LockTargetKeyboardShortcut = new[]{ VirtualKeyCode.LCONTROL}; // default of CTRL
Sanderling.Parse.IMemoryMeasurement Measurement =>
Sanderling?.MemoryMeasurementParsed?.Value;
// extract the ore type from the name as seen in overview. "Asteroid (Plagioclase)"
string OreTypeFromAsteroidName(string AsteroidName) =>
AsteroidName.ValueFromRegexMatchGroupAtIndex(@"Asteroid \(([^\)]+)", 0);
Sanderling.Parse.IWindowOverview WindowOverview =>
Measurement?.WindowOverview?.FirstOrDefault();
Parse.IOverviewEntry[] ListAsteroidOverviewEntry =>
WindowOverview?.ListView?.Entry
?.Where(entry => null != OreTypeFromAsteroidName(entry?.Name))
?.OrderBy(entry => entry.DistanceMax ?? int.MaxValue)
?.ToArray();
Parse.IOverviewEntry[] ListAsteroidOverviewEntryLockingOrLocked =>
ListAsteroidOverviewEntry
?.Where(entry => (entry.MeTargeted ?? false) || (entry.MeTargeting ?? false))
?.ToArray();
while(!(numberOfRoidsToLock <= ListAsteroidOverviewEntryLockingOrLocked?.Length))
{
var nextToLock = ListAsteroidOverviewEntry?.Except(ListAsteroidOverviewEntryLockingOrLocked)?.FirstOrDefault();
Host.Log("Lock another one: " + nextToLock?.Name);
Sanderling.MouseClickLeft(nextToLock);
Sanderling.KeyboardPressCombined(LockTargetKeyboardShortcut);
}
|
|
|
03/12/2016, 10:48
|
#28
|
elite*gold: 20
Join Date: Feb 2006
Posts: 1,935
Received Thanks: 1,859
|
I really feel kinda dumb O.o I actually have no idea how to include this into the mining script O.o
|
|
|
03/12/2016, 17:51
|
#29
|
elite*gold: 585
Join Date: Jul 2011
Posts: 268
Received Thanks: 104
|
Quote:
Originally Posted by Vyndariel
I really feel kinda dumb O.o I actually have no idea how to include this into the mining script O.o
|
I have no idea what your situation is since I don't know what you tried so far and how that failed.
|
|
|
03/12/2016, 23:43
|
#30
|
elite*gold: 20
Join Date: Feb 2006
Posts: 1,935
Received Thanks: 1,859
|
I just use the default ore mining script, as we edited some things in already - but I assume I need to change the whole target routine or something in that existing script or do I just create a new void somewhere?
sry 4 derping
|
|
|
|
|
Similar Threads
|
[RELEASE] Alexya Framework - Lightweigh PHP Framework
07/13/2015 - Coding Releases - 2 Replies
Hi!
I've just finished a framework I was working on and decided to release it.
I'll put the github link over here: https://github.com/manulaiko/alexya and you'll check it, once I get back home I'll post a tutorial.
See you!
|
Botting framework/code
08/06/2014 - DarkOrbit - 73 Replies
** THIS IS A NEW THREAD, ALL UPDATES WILL NOW BE HERE **
WORKS IN WINDOWS, MAC AND LINUX
I've looked around the forums, it looks like dark orbit bots are dead or dying (Correct me if I'm wrong). With this I plan to get bots reintroduced into dark orbit.
It can detect anything in any game as long as you have the right settings
This is programmed in python. Python is VERY EASY TO CODE in. If you know c++ or c you will find python even easier.
|
Need help making a botting framework
07/10/2014 - DarkOrbit - 17 Replies
Hello guys, Im working on a bot framework (for windows, mac, and linux :) ) that you can easily use to detect complex objects in darkorbit and any other game. It also has some anti cheat functions that you can tweak. This is where my question arises.
I know that darkorbit detects the pattern between clicks to find bots, is there any other ways that DO detects cheats? I need to implement this into my framework and I could find almost nothing online about this.
EDIT:
Here is my work so...
|
All times are GMT +1. The time now is 19:53.
|
|