Sammelalbum-Bot

In dieses Unterforum kommen alle Beiträge zu Feature-Requests, die bereits umgesetzt wurden.
Benutzeravatar
Robin
Administrator
Beiträge: 1723
Registriert: So 30. Jun 2013, 18:12
Wohnort: Rheinland-Pfalz
Hat sich bedankt: 303 Mal
Danksagung erhalten: 354 Mal

Re: Sammelalbum-Bot

Beitrag von Robin »

Hallo zusammen,

nein, ich habe meines Wissens nach (noch) keine Demenz ;D
Die Sache mit dem SA-Bot wird ja immer mal wieder angesprochen, Fakt ist leider nur, dass wir uns hauptsächlich erstmal um die Grundfunktionen des Bottes kümmern müssen. Sobald eine SA-Funktion in den Bot eingebaut ist, ist es auch ein leichtes, diese Funktion zusätzlich als externes Programm zur Verfügung zu stellen.
Ob es kostenpflichtig wird, wissen wir allerdings noch nicht ;) Möglich wäre es allerdings..

Grüße,
Robin
MFBot-VersionCode-Zeilen*In Dateien*Letzte Version
MFBot 1.5.x64851Juli 2013
MFBot 2.x1436316März 2014
MFBot 3.x2209536März 2015
MFBot 4.x55242241Juli 2018
MFBot 5.x66000440Tbc
*Ohne automatisch generierten Designer-Code
Benutzeravatar
olafson
Moderator
Beiträge: 745
Registriert: Do 28. Nov 2013, 14:01
Hat sich bedankt: 11 Mal
Danksagung erhalten: 12 Mal

Re: Sammelalbum-Bot

Beitrag von olafson »

Tach auch!

Die Sammelalbum-Funktion - so gerne ich sie im Bot integriert sehen würde - birgt doch einige Tücken, die sich nicht ohne weiteres realisieren lassen. Denn neben der Abfrage des Sammelalbums der Chars müsste noch der Server nach Gegnern mit gesuchten Items gescannt werden. Dabei muss nahezu jedes beliebige Gegnerniveau abgedeckt werden, nicht nur das aktuelle Umfeld in der Ehrenhalle - also praktisch ein Mal die ganze Ehrenhalle quer Beet :mrgreen:

Aber erst mal die Arena einbauen, der Rest findet sich dann schon, denke ich ;)
Gruß, Olafson

PS: Was sagt denn der Entwickler von SAAM? Gibt's den noch?
Das würde die ganze Sache möglicherweise erheblich erleichtern!
Keine Unterstützung per Mail - bitte bei Fragen das Forum verwenden!
No support by mail - please use the forum in case of questions!
Do you enjoy our work? Donate a coffee, or chocolate - even advocaat would be welcome :mrgreen:
Benutzeravatar
olafson
Moderator
Beiträge: 745
Registriert: Do 28. Nov 2013, 14:01
Hat sich bedankt: 11 Mal
Danksagung erhalten: 12 Mal

Re: Sammelalbum-Bot

Beitrag von olafson »

Hallo zusammen!

Zum Sammelalbum gibt es ja diverse Ansätze, unter anderem den, die Arenakämpfe zu loggen und dann die Daten der Items freiwillig an mfbot zu schicken und später dort auch zuerst zu suchen, wenn einem ein Item fehlt.

Ich bin allerdings der Meinung, wir haben bereits die Server mit der Datenbank :D
Nämlich die S&F-Server! Und die sollten wir auch nutzen ^^

Der Ansatz: Scanne 20 Chars und sieh nach, ob einer deiner Pflegechars eins der Items braucht. Und das so lange, bis Du für jeden Char einen passenden Gegner gefunden hast. Immer der Reihe nach, die Ehrenhalle durch ^^

Der Bot muss also erstmal nur eine Liste von den Items haben, die 'seinen' Chars noch fehlen, sprich, deren Sammelalben scannen. Wenn er dann in der Ehrenhalle einen Bereich absucht, was man ja als normaler Nutzer auch macht, dann hätte er für einige der Chars bereits einen passenden Gegner, und zwar brandaktuell ^^

Der Vorteil ist hier, dass kein extra Server zur Datenspeicherung erforderlich ist. Zudem werden nicht alle 100.000 Chars eines Servers auf einmal gescannt - stellt euch bitte mal vor, das macht jeder Bot für alle seine xx Chars :D

So wäre es einfach nur ein engagierter Spieler der sein Sammelalbum voll bekommen will - fällt nicht weiter auf!

Soweit vorerst!
Gruß, Olafson
Keine Unterstützung per Mail - bitte bei Fragen das Forum verwenden!
No support by mail - please use the forum in case of questions!
Do you enjoy our work? Donate a coffee, or chocolate - even advocaat would be welcome :mrgreen:
Benutzeravatar
Drexxus
Beiträge: 67
Registriert: Mi 19. Feb 2014, 21:23
Hat sich bedankt: 0
Danksagung erhalten: 0

Re: Sammelalbum-Bot

Beitrag von Drexxus »

Hallo,

Möchte mich diesem Request anschließen.
Das SA manuell zu füllen ist eine heiden Arbeit, gerade wenn man 2 und mehr Acc's pflegt.

Das die Sache ausreichend Zeit benötigt, verstehe ich allerdings sehr gut.

Viel Erfolg dabei, ihr seid Spitze ;)
Drexxus: Zur Tarnung schreibstiel ändern und möglichst kurz halten.
Olafson: und ich habe mich schon gewundert, warum hier alle so komisch schreiben und sich kurz fassen: Boat ghet nit, bite hIlfe :mrgreen:
Benutzeravatar
oRGaZMo
Core Developer
Beiträge: 236
Registriert: Sa 15. Feb 2014, 10:27
Hat sich bedankt: 0
Danksagung erhalten: 3 Mal

Re: Sammelalbum-Bot

Beitrag von oRGaZMo »

aloha zusammen!

vor längerem hab ich auch wieder mit S&F angefangen und festgestellt,
dass es SAAM nirgends mehr zum downloaden gibt. also hab ich selbst ein Tool geschrieben.

Leider bin ich, was das Thema Programmierung anbelangt, eher "Hobbyist". Deshalb ist es mir nicht gelungen ein
fertiges Programm zusammenzubauen, das andere User ohne 30-minütige Teamviewer-Sitzungen, auch zum laufen bekommen.

Ein weiterer Grund das Tool nicht zu veröffentlichen, wurde hier im Forum auch schon genannt:
Wenn hunderte User den Server DDOSen mit Ehrenhalle-Anfragen, finden die Betreiber das sicher weniger gut.

Im Moment hab ich allerdings privat wieder "Leerlauf" und würde mich nochmal dran wagen ne v2.0 zu basteln.
So sah mein altes Tool aus:
http://www.youtube.com/watch?v=oC1mqE17mvQ

Einstellbar ist der Startrang und wieviele unbekannte Items der Gegner haben muss um in der Liste zu landen.
Der Scanvorgang im Video läuft für 10 Sekunden und lieferte 100 Profile.
Mit der Geschwindigkeit kann man in etwa ner Stunde die 40.000 "Interessantesten" Spieler abfragen.
(Könnte allerdings durch parallelisierte Anfragen nochmal erheblich gesteigert werden, wenn man die Server quälen will.)


Zur Funktionsweise:
----------------------

- beim allerersten Start erstellt das Tool einmalig einen eigenen Spieleraccount auf dem Server. Dazu später mehr.

- Anfangs wird man aufgefordert den CHARAKTER-Button zu drücken.

- in der Zeit snifft das Tool die SessionID der aktuellen S&F Sitzung (verwendet winpcap).
* denn im gegensatz zum MFbot sollen hier Bot und Spieler gleichzeitig online sein
* und sich nicht dauernd gegenseitig ausloggen. Deshalb wird auch keine Passworteingabe gebraucht.

- das Tool fragt den SA-Zustand des Spielers beim Server ab(verwendet winhttp).

- das "laute" Durchsuchen der Ehrenhalle übernimmt der "Dummy-Account" der Anfangs erstellt wurde.
* wenn man diesen noch über einen proxy arbeiten lassen würde, dann ist aus der Sicht des S&F-Servers
* absolut kein zusammenhang zwischen dem scannenden Account
* und dem eigentlichen Spieleraccount, der daraus nutzen zieht, herzustellen.

- solange das Tool läuft, horcht winpcap nach verbindungen zum S&F-Server.
* wenn ein Pakte mit der Info "Kampf hat stattgefunden" entdeckt wird,
* aktualisert das Tool den Sammelalbumszustand.


Weitere Bedienelemente:
-------------------------
(deren Funktion nicht im Video zu sehen ist)

- Buttons zum leeren der Liste, zum Speichen und Laden.

- Rechtsklick auf einen Listeneintrag
* das Spielerprofil wird aktualisert (frisch vom S&F-Server geladen) und mit dem SA-Zustand verglichen.
* der Spielername wird in die Zwischenablage kopiert, um ihn im Browser komfortabel angreifen zu können.


Bisher ungelöste Probleme:
----------------------------
Nutzt man das Tool um leere Sammelalben neuer Spielaccounts zu füllen, dann hat das Listenfeld schnell mehrere
Tausend Einträge. Und alle müssen nach einem einzigen Duell aktualisiert und evtl. neu sortiert werden.
Das kostet auf meinem 3Ghz Quadcore mehrere laaaaange Sekunden Vollauslastung und "keine Rückmeldung" im Fenstertitel.

Deshalb meine Frage an die PRO's hier: Möchte vielleicht jmd. was dazu Vorschlagen?
Denn mein Problem ist folgendes:
Ich könnte mich zwar z.B. 2 Wochen in MYSQL einlesen, 4Wochen basteln bis es annähernd läuft,
8 Wochen Errors fixen nur um dann festzustellen, dass es genauso schnell ist wie vorher oder schlimmer!^^

Und noch eine Frage: Wieviele User nutzen denn etwa den MFBot? Ich meine, wenns doch nur 1000 User
auf allen Servern zusammen sind, könnten die Auswirkungen vielleicht doch geringer sein, als ich befürchte.


Der folgende Anhang ist also eher als "experimentierbaukasten" anzusehen.
(ich seh grad der anhangspeicher des Boards ist erschöpft)
für ne weile gibts das paket hier:
https://dl.dropboxusercontent.com/u/542 ... _alpha.zip

Mein "Spaghetti-Quellcode" ist auch im Archiv enthalten. :)

benötigt wird außerdem der WinPcap-Treiber (gibts bei Chip.de):
http://www.chip.de/downloads/WinPcap_13012590.html


Ich muss sagen, zum Schluss hat mir das Bot-Programmieren deutlich mehr Spaß gemacht als das Game.
Für alle die sich auch dafür Interessieren ist S&F mit seinem kinderleicht verständlichen "Server-Kommunikations-Protokoll"
sicher ein idealer Einstiegspunkt. Und AutoIT (die Programmiersprache in der mein Bot Verfasst ist) gilt ebenfalls als außergewöhnlich
noobfreundlich.

Greetz und Viel Erfolg beim basteln
oRGaZMo
Die Signatur befindet sich aus technischen Gründen auf der Rückseite dieses Beitrags.
Benutzeravatar
olafson
Moderator
Beiträge: 745
Registriert: Do 28. Nov 2013, 14:01
Hat sich bedankt: 11 Mal
Danksagung erhalten: 12 Mal

Re: Sammelalbum-Bot

Beitrag von olafson »

Nabend ^^

Also Dein Tool sieht doch schon ziemlich gut aus, Hut ab :D

Wenn Du wirklich etwas Zeit erübrigen kannst, programmierst Du vielleicht ein paar Teile davon in C#?
Folgendes wäre im Hinblick auf die Integration in den Bot sicher hilfreich:

- Das Sammelalbum eines Chars auswerten, die fehlenden Teile ermitteln und in einer Liste ablegen
- Wie ein normaler Spieler die Ehrenhalle nach einem passenden Gegner absuchen - vielleicht 20 Chars - und davon dann den mit den meisten fehlenden Items auswählen

Das würde eine gute Basis darstellen und könnte später sicher auch relativ leicht ausgebaut werden (Thema eigene Datenbank, in die verschiedene Nutzer Daten gescannter Chars einspeisen, etc.).

Würde mich freuen, wenn das klappt ;)
LG, Olafson
Keine Unterstützung per Mail - bitte bei Fragen das Forum verwenden!
No support by mail - please use the forum in case of questions!
Do you enjoy our work? Donate a coffee, or chocolate - even advocaat would be welcome :mrgreen:
Benutzeravatar
Robin
Administrator
Beiträge: 1723
Registriert: So 30. Jun 2013, 18:12
Wohnort: Rheinland-Pfalz
Hat sich bedankt: 303 Mal
Danksagung erhalten: 354 Mal

Re: Sammelalbum-Bot

Beitrag von Robin »

Hallo zusammen ;)

Dein Tool ist tatsächlich nicht schlecht, ich beantworte deine Fragen mal, soweit ich kann ;)
Nutzt man das Tool um leere Sammelalben neuer Spielaccounts zu füllen, dann hat das Listenfeld schnell mehrere
Tausend Einträge. Und alle müssen nach einem einzigen Duell aktualisiert und evtl. neu sortiert werden.
Das kostet auf meinem 3Ghz Quadcore mehrere laaaaange Sekunden Vollauslastung und "keine Rückmeldung" im Fenstertitel.
Das hat einen relativ einfachen Grund, den ich bei AutoIt ebenfalls schon oft bemerkt habe: Die Scriptsprache ist schlicht zu langsam ;)
Da ist jede andere Sprache besser, so beispielsweise auch C# :)
Der Grund, warum sich das Fenster aufhängt ist fast ebenfalls so einfach: AutoIt ist nicht multitaskingfähig ;) Die Sprache kann also nicht gleichzeitig ein Listview füllen und dabei die Fensterabfrage verarbeiten ;)
Wieviele User nutzen denn etwa den MFBot?
Momentan sind es etwa 900, pro Tag kommen nach meiner Einschätzung etwa 10-15 User dazu.

Für mehr Fragen, gerade AutoIt betreffend, stehe ich jederzeit offen ;)

Ansonsten hat Olafson schon alles gesagt/gefragt, was ich hätte sagen können :D

Grüße,
Robin
MFBot-VersionCode-Zeilen*In Dateien*Letzte Version
MFBot 1.5.x64851Juli 2013
MFBot 2.x1436316März 2014
MFBot 3.x2209536März 2015
MFBot 4.x55242241Juli 2018
MFBot 5.x66000440Tbc
*Ohne automatisch generierten Designer-Code
Benutzeravatar
oRGaZMo
Core Developer
Beiträge: 236
Registriert: Sa 15. Feb 2014, 10:27
Hat sich bedankt: 0
Danksagung erhalten: 3 Mal

Re: Sammelalbum-Bot

Beitrag von oRGaZMo »

also mit c# werd ich irgendwie nicht warm.
die IDE (MS VS express 2013) überfordert mich völlig. :shock:
allerdings dürfte euch folgende anleitung sicher einige arbeit einsparen.
das erstellen des textfiles hat mich nämlich einige nächte gekostet^^

wo fangen wir an?
am besten mit nem klick auf den sammelalbum-button. :)

die serverantwort kann man sich beispielsweise mit
den in google-chrome bereits enthaltenen "entwicklertools" anschauen.

Bild

eine alternative um an den paketinhalt zu kommen:
http://s1.sfgame.de/request.php?req=00000000000000000000000000000000002SPIELERNAME;PASSWORT
- es öffnet sich ne website mit blankem text, zahlenkolonnen durch "/" getrennt.
- nach dem letzten "/" steht dann z.B.: "/;0;72fF7222156702Q7310t04FH2Kv1N9D8;0;467;0"
- die 32-stellige sessionID kopieren, und in der adresszeile einfügen:
http://s1.sfgame.de/request.php?req=72fF7222156702Q7310t04FH2Kv1N9D8116
- die "116" am ende teilt dem server mit, was wir von ihm wollen: zustand des sammelalbums.


die serverantwort auf kommando "116" beginnt immer mit "192" und anschließend folgen die base64 encodierten daten.
alles in einer zeile. ein vollständiges SA sieht dann z.B. so aus:

Code: Alles auswählen

192//////////////////////////////////////////AAAAAAAA/////////////////4AAAAAAAAAAAAAAAAA/wD/////////////AAAAAAAAAAAAAP8A//////gAAAAAP8A/////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wAA==
der nächste schritt ist dann das decodieren ins binärformat.
das geht z.B. online auf http://www.freeformatter.com/base64-encoder.html

beim einfügen daran denken die "192" noch zu entfernen, bevor man decodiert:

Bild

die anschließend heruntergeladene datei lässt sich mit einem hexeditor deiner wahl öffnen und zeigt dann z.B. sowas:

Bild

die datei ist immer exakt 25 * 16 = 400 byte (3200 bit) groß.
wir brauchen aber nur 1700 items (bits).
dieser überschuss erklärt auch die zwischenräume mit '00' im hex file.

wenn man jetzt ein vollständiges sammelalbum hat,
braucht man noch ne liste, die festlegt welches bit welches item repräsentiert.
dazu hab ich ein 3200-zeiliges txtfile erstellt.
für jedes bit eine zeile.
und in den 1700 relevanten zeilen stehen dann die gekürzten urls zu den Icons der items.

SA.txt

um meine these zu überprüfen, schauen wir uns noch einmal die ersten beiden zeilen im hexeditor an:

FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0

- jedes 'F' steht für 4 bit - also 128 bit in zeile eins.
- das letzte zeichen in zeile zwei ist jedoch: "0" - also nur 124 bit.

128 + 124 = 252
das entspricht genau der anzahl der monster in der ersten kategorie im sammelalbum.

wenn man jetzt das erste monster aus dem sammelalbum löschen will, muss man das erste
" F " ( 1111 )
durch
" 7 " ( 0111 )
ersetzen.

danach sehen die die ersten beiden zeilen also so aus:

7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0

nun encodiert man das ganze hexfile wieder in base 64 und erhält:
192f/// usw...

Code: Alles auswählen

192f/////////////////////////////////////////AAAAAAAA/////////////////4AAAAAAAAAAAAAAAAA/wD/////////////AAAAAAAAAAAAAP8A//////gAAAAAP8A/////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wD////////AAAAAAAAP8A////////wAAAAAAAD/AP///////8AAAAAAAA/wAA==

jetzt kann man mit einem proxy das modifizierte paket dem S&F Client unterschieben. die antwort auf den buttonklick kommt dann nicht vom S&F server, sondern aus unsrer datei:
(ich benutze dazu die 'auto responder' funktion des programms "fiddler" mit diesen einstellungen)


Bild

Läuft wie erwartet!^^

SammelalbumAuswertung Demoanwendung
- exe starten
- serverantwort ( incl. der '192') in das feld einfügen
- es öffnet sich ne messagebox die mitteilt wieviele items noch fehlen
- und ein txtfile wird erstellt dass die fehlenden items detailliert auflistet

ich werd mir trotzdem nochmal 1-2 c# tutorials anschaun und dann evtl nochma n update posten.^^
Die Signatur befindet sich aus technischen Gründen auf der Rückseite dieses Beitrags.
boeserwolf
Core Developer
Beiträge: 721
Registriert: Di 3. Jun 2014, 14:33
Wohnort: Amberg
Hat sich bedankt: 16 Mal
Danksagung erhalten: 71 Mal

Re: Sammelalbum-Bot

Beitrag von boeserwolf »

Ich bin eben auf diesen Thread gestoßen und würde meine Hilfe anbieten falls Interesse besteht. ich bin Programmierer aus München und arbeite hauptsächlich mit C++,Java,VB.Net und C#. Aber auch AutoIT ist mir nicht fremd.
MFBot 5.x: 63626 CodeZeilen in 338 Dateien

Kein Support über PNs(ausgenommen sind explizit im Forum angeforderte Infos die nicht für den öffentlichen Bereich geeignet sind)
Kein Support für die Shakes & Fidget App
Kein Support für den S&F Browser Client
Alwis
Beiträge: 4
Registriert: Sa 20. Sep 2014, 17:16
Hat sich bedankt: 0
Danksagung erhalten: 0

Re: Sammelalbum-Bot

Beitrag von Alwis »

*PUSH*
Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste