Ja das geht mit Visual Studio auch, aber das Problem ist ja, dass ich nicht Ogame selbst debuggen kann ^^ Ich kann Fehler auf der Bot Seite versuchen zu finden, kann aber halt nicht direkt herausfinden obs daran lag.
Hier die aktuellste Version. Leider mit weniger Funktionen als bisher ^^
Für die, die lesen möchten:
Also in dieser Version war das Hauptaugenmerk auf der Fehlersuche was das spontane Ausloggen verursacht.
Ich denke den Fehler behoben zu haben, brauche aber dazu aber auch unbedingt Feedback von euch.

Zu den Funktionen:
was geht:
Tabellarische Übersicht - ok, Strom wird wieder falsch angezeigt
Ressourcen Sammeln - ok
Transporter verteilen - ok
Fliegende Flotte erkennen - ok, SAVEN ist Totalschaden, da ja hier was umgestellt wurde. Der Bot erkennt einen Angriff aber geht dann in eine Schleife und ja...eben nicht gut ^^ Fixe ich aber zeitnah
Bauliste - NEIN, geht nicht. Neue Funktionen in Arbeit. Monde etc. werden integriert.
Farmen - sollte gehen, Feedback ?
Also dieses Mal eine abgespeckte Version. Ein kleiner Rückschritt für einen großen Sprung nach vorne ^^
Aktueller Zwischenstand,
ich hab eben in Rekordzeit die Savefunktion neu geschrieben.
Muss jetzt nur mal eben warten bis mich einer aus der Ally angreift ^^
Also neues Schema:
Code:
bool AngriffVorhanden = false;
// hier erstmal prüfen ob ein Angriff vorliegt
// wenn kein Angriff vorliegt dann abbrechen und gut
// hier noch schnell testen ob es mehr als 1 Planet gibt
// Wenn ein Angriff vorliegt dann eine Liste mit angegriffenen Planeten/Monden anlegen
List<PlanetenDaten> PlanetsUnderAttack = new List<PlanetenDaten>();
// hier Alle Events nochmal durchgehen und dann den Planet der Liste hinzufügen
// prüfen ob Angriff oder Zerstören und ob feindlich, also nicht von einem selbst
// diese findige Funktion gibt den Planeten passend zu einem Event zurück, also den Zielplanet ^^
PlanetsUnderAttack.Add(FlottenBewegungen.GetPlanet(Event));
// hier alle angegriffenen Planeten durchgehen um dann von jedem zu saven
foreach(PlanetenDaten PoM in PlanetsUnderAttack)
{
// die aktuelle Flotte
Flotte zuSavendeFlotte = Datenverarbeitung.aktuelleFlotteAufPlanet(PoM);
// hier den nächsten Save Planeten suchen, der auch erreicht werden kann
PlanetenDaten nächstersichererPlanet = Datenverarbeitung.nächstgelegenerPlanet(PoM, PlanetsUnderAttack, zuSavendeFlotte);
// hier die Kosten ausgeben
basis_Funktionen.writeLog("Die Deutkosten zum Saven betragen: " + Kosten.Flugkosten(PoM, nächstersichererPlanet.galaxy, nächstersichererPlanet.system, nächstersichererPlanet.position, zuSavendeFlotte, 1));
// hier prüfen ob einer gefunden wurde
if (nächstersichererPlanet == null)
// hier dann saven
writeLog("Versuche jetzt zu saven");
// hier prüfen ob Slots frei sind
if (PlanetenDaten.PlanetenSpeicher[0].Flottenslotsfrei == 0)
{
writeLog("Kann die Flotte auf " + PoM.name + " leider nicht saven, da keine Flottenslos mehr frei sind.");
return;
}
writeLog("der nächste Planet zum Saven ist: " + nächstersichererPlanet.name + " [" + nächstersichererPlanet.galaxy + ":" + nächstersichererPlanet.system + ":" + nächstersichererPlanet.position + "]");
Thread.Sleep(2413); // im Mainthread oder auslagern ?
// hier ein switch für die Saveart
switch (Settings.Default.SaveMethode)
{
case "Auf den nächsten Planeten stationieren":
// hier meinem neuen super Flottenschicker alles geben
writeLog("save jetzt die Flotte mit Stationieren zum nächsten Planet.");
FlotteSchickenBeta.Buttler("Stationieren", PoM, nächstersichererPlanet, zuSavendeFlotte, 1, (int)PoM.Metallvorhanden, (int)PoM.Kristallvorhanden, (int)PoM.Deutvorhanden- Kosten.Flugkosten(PoM, nächstersichererPlanet.galaxy, nächstersichererPlanet.system, nächstersichererPlanet.position, zuSavendeFlotte, 1));
break;
}
}
Ich hab am Anfang den Code zwischen den ersten Kommentaren gelöscht, da ich keine Mitwisser von meinen hart erarbeiteten Ogame-tricks haben will xD