Seite 3 von 3

Re: Star Trek MOD V2.1 by lordgeorge1

Verfasst: Dienstag 9. August 2011, 01:07
von lordgeorge1
Ja das mit der Crew-Erfahrung...

Darüber habe ich mir auch ziemlich den Kopf zerbrochen. Verursachter Schaden? Verursachter Schild- oder/und Hüllenschaden? Erfolgreicher Treffer? Überlebende Hüllenpunkte? Aufteilen auf alle überlebenden Schiffe? Jedes Schiff für sich? Usw...

Ich hatte damit zu kämpfen, daß die Programmierung der Raumschlachten auf mehrere Skriptdateien aufgeteilt ist (wahrscheinlich durch Fortschreiten der Programmierung in den verschiedenen Versionen bedingt). Und nicht in jeder konnte ich alle Daten, die ich gerne gehabt hätte, aufrufen. Torpedotreffer(wahrscheinlichkeit) z. B. in der torpedo.cpp bezieht sich auf Torpedo und Zielschiff - das feuernde Schiff wird hier nicht benötigt und die Crew-Erfahrung von selbigem konnte ich nicht ohne Errormeldung aufrufen.

Die meisten Daten waren in der CombatShip.cpp verfügbar (nicht aber z. B. ob ein Torpedo getroffen hat - die PerhapsImpact-Funktion ließ sich partout nicht fehlerfrei aufrufen).

Die ursprüngliche Idee Schaden = Exp. habe ich wieder verworfen, da sonst die Schlachtschiffe sehr schnell und die Aufklärer sehr langsam Erfahrung gewinnen - und zwar bei den Torpedoschäden sehr deutlich (Verhältnis teilweise über 1:10, mit Micro-Versionen sogar bis zu 1:100). Und erfolgreiche Treffer? Geht auch nicht, da z. B. die Anzahl der Beams zwischen 2 und über 40 (Sternenbasis) liegen.

Letztlich kam mir aber doch eine Idee: Eine Mischung aus beiden Ansätzen geht - mit den verfügbaren Funktionen in der ComabtShip.cpp.

Die Torpedos machen Schaden, und jedesmal wenn dies passiert gibt es einen festen Erfahrungsgewinn, nämlich 20 Punkte ("damage += FireTorpedo(pCT, i, targetKO, boni);" und dann "m_pShip->SetCrewExperiance(20);").

Bei den Beams sind die Schäden nicht so unterschiedlich, wie bei den Torpedos (max. 1:2,8), aber die mit höherem Schaden sind wesentlich seltener verbaut (vor allem die beiden Ausreißer mit 1:17-fachem Schaden, aber auch sehr langer Recharge time) und die mit niedrigem Schaden wesentlich häufiger auf einem Schiff. Hier konnte ich also mit modifiziertem Schaden arbeiten ("AddExp = 1 + int (beamDamage/5);" und dann "m_pShip->SetCrewExperiance(AddExp);").

Ergibt im ganzen bei (getesteten) Kämpfen Ein-Schiff-gegen-Ein-Schiff je nach Länge (und Zähigkeit) der Kämpfe zwischen 300 und 700 Punkten Erfahrungsgewinn (auch bei großen, starken Schiffen nur geringfügig mehr als bei kleinen Schiffen). Also habe ich die Erfahrungsstufen noch angepaßt und den "freien" Erfahrungsgewinn (Runde für Runde) etwas abgesenkt.

Ein erstes Spiel (ca. 200 Runden als Romulaner) sieht ganz gut aus - bei epischen Schlachten mit wenigen Überlebenden gibts dann schon mal 2 Stufen dazu (in Ausnahmefällen auch mal 3), ansonsten kleinere Erfahrungsgewinne.

Die Formeln sind einfach, aber erstsaunlicherweise tatsächlich brauchbar. Und sie funktionieren auch bei drei oder mehr am Kampf beteiligten Parteien einwandfrei! Schiffe, die bei großen Flotten in einem Kampf nicht zum Zuge kommen, weil der Gegner schon sehr früh besiegt wurde, bekommen natürlich auch kein Erfahrung. Und Außenposten/Sternenbasen, die - kaum gebaut - schon von der KI mit ordentlichen Flotten wieder zerstört werden, haben ein höhere Überlebenschance, da sie schneller an Erfahrung gewinnen (eine Basis gegen viele Schiffe...), wenn sie denn mal überleben...

Re: Star Trek MOD V2.1 by lordgeorge1

Verfasst: Dienstag 9. August 2011, 11:26
von master130686
Naja... klingt ja, zumindest so lange das Ergebnis (=der Erfahrungsgewinn) IMMER gut/angemessen ist, ganz gut. Vielleicht bewährt sich diese Formel ja - denn wir suchen ja eine (gute/brauchbare) Formel für die nächste Version.

Hast du dir zu diesem Thema schonmal die ursprüngliche Diskussion zu diesem Thema (http://birth-of-the-empires.de/phpBB3/v ... 252#p24252)angeguckt?

Wäre es dir möglich meine beiden neuesten Formeln mal zu implementieren und zu testen?


Ist die Erfahrung bei dir auch im Schiffs-Tooltip zu sehen? Oder durchsuchst du dafür nach jedem Kampf die Schiffs-Übersicht? Evtl. sogar noch die in dem unmittelbar zuvor geschehenen Kampf gesammelte Erfahrung in Klammern dahinter (diese Anzeige verschwindet also wieder in der darauffolgenden Runde, außer das Schiff war erneut an einem Kampf beteiligt - oder es steht dann halt "(+0)" da) - falls das möglich und nicht zu kompliziert ist.

Re: Star Trek MOD V2.1 by lordgeorge1

Verfasst: Donnerstag 11. August 2011, 23:54
von lordgeorge1
Die Schiffserfahrung ist bei mir nur im Tooltip zu sehen.

@master130686: Deine Formel kann ich nicht implementieren - da werden gleich so viele Daten benötigt, daß ich erst recht in die oben beschriebene Problematik rein rutsche...leider.

Re: Star Trek MOD V2.1 by lordgeorge1

Verfasst: Donnerstag 11. August 2011, 23:59
von lordgeorge1
Ich wollte noch kurz mitteilen: Der MOD V3.0 ist seit heute online!

Re: Star Trek MOD V2.1 by lordgeorge1

Verfasst: Freitag 12. August 2011, 03:09
von master130686
Deine Formel kann ich nicht implementieren - da werden gleich so viele Daten benötigt, daß ich erst recht in die oben beschriebene Problematik rein rutsche...leider.
Schade. Na dann muss das doch Puste machen. Aber vielleicht reicht ihm (und den/uns anderen) ja auch deine Version...

Wie Puste schonmal zu diesem Thema sagte (sinngemäß): So lange das Ergebnis stimmt, ist der Weg egal.

Re: Star Trek MOD V2.1 by lordgeorge1

Verfasst: Freitag 12. August 2011, 09:03
von LewAlton
lordgeorge1 hat geschrieben:Ich wollte noch kurz mitteilen: Der MOD V3.0 ist seit heute online!

Danke, Danke, aber leider komme ich nicht über die erste Runde hinaus, dann hängt sich das Spiel auf.....



edit: liegt wahrscheinlich an Win7 64bit, auf WinXP läuft es...... ( immer diese alten Dinger, die auf modernen Rechnern nicht richtig funktionieren), ich werd weiter schaun und Ergebnisse posten

Re: Star Trek MOD V2.1 by lordgeorge1

Verfasst: Freitag 12. August 2011, 13:10
von rainer
bei mir (Vista) läuft 3.0 (3.0 hat übrigens einen eigenen Thread, hier: http://birth-of-the-empires.de/phpBB3/v ... =46&t=1912 )