Weitere Pläne für den Vampire Mutator

Nachdem ich nun die Health-Gain Kurve des in Vampire Mutator für Unreal Tournament (UT99) entwickelten Mutators gesehen habe, denke ich, dass diese etwas suboptimal sind und noch einiger Verbesserung bedürfen.

Geplant habe ich die beiden folgenden Versionen zu implementieren und zu testen:

quadratic_vampire qubic_vampire

Zum einen ist im linken/oberen Bild der “quadratische Vampir” zu sehen. Bei ihm sieht die Formel für den Health-Gain folgendermaßen aus:

gain = (1-Attacker.Health/MaxHealth)^2 * ActualDamage

Das rechte/untere Bild zeigt den “kubischen Vampir”. Dieser saugt die Lebenskraft mit

gain = (1-Attacker.Health/MaxHealth)^3 * ActualDamage

auf. Die Idee hinter diesen modifizierten Vampiren ist, dass ein Spieler, der wenig Health hat schneller fremdes Health aufnehmen kann, als ein Spieler, der schon nahe dem Sättigungspunkt ist.

Sobald diese Versionen programmiert und getestet wurden werde ich sie auch an dieser Stelle veröffentlichen. Dazu muss ich jedoch erst noch rausfinden, wie man möglichst einfach die Exponentiation in Unreal-Script lösen kann.

Nachtrag:

Ich habe herausgefunden, wie man quadriert beziehungsweise hoch3 nimmt, was einfacher ist als erwartet und vor allem genauso, wie in gnuplot, welches ich für die Grafiken benutzt habe. Die Klasse Vampire wurde durch den Klasse LinearVampire ersetzt. Zusätzlich kamen 2 neue Klassen hinzu: QuadraticVampire und QubicVampire, die jeweils von LinearVampire erben und dessen gainFactor(int AttackerHealth) Funktion überschreiben.

Download Vampire Mutator (NextGen)

Download Source (NextGen)

Vampire Mutator für Unreal Tournament (UT99)

Ich habe endlich Zeit gefunden, wie man für UT99 Mutatoren progarmmiert und bin dabei über eine kleine Einführung gestoßen. In dieser Anleitung wird ein Vampire Mutator beschrieben, den ich ein wenig modifiziert habe.


Beim Modifizierten Mutator werden nicht - wie beim Original - die Hitpoints 1:1 vom Opfer zum Angreifer transferiert, stattdessen bekommt der Angreifer nur einen Teil der Hitpoints. Dieser Teil ist variabel und wird weniger, je mehr Hitpoints der Angreifer hat.

Formel: gain = ((MaxHealth - Attacker.Health) / MaxHealth) * ActualDamage;

MaxHealth ist hierbei eine Variable, die bestimmt bis zu welchem Punkt die Hitpoints eines Angreifers “aufgeladen” werden können. Diese Grenze ist jedoch nicht fest, es ist durchaus möglich, dass ein Angreifer mehr als MaxHealth Hitpoints bekommt. Wenn jedoch Attacker.Health > MaxHealth ist, dann werden dem Angreifer für jeden Punkt Schaden, den er einem Opfer zufügt auch ein gewisser Teil Schaden zugefügt.

Vielleicht fragen sich einige, warum ich die Formel nicht auf die folgende Vereinfacht habe:

gain = (1-Attacker.Health/MaxHealth)*ActualDamage

Der Grund ist folgender: Wenn ich den Gain so geschrieben habe hat Unreal Tournament nicht das gemacht, was ich wollte. Meine Vermutung geht dahin, dass es mit der Art und Weise zusammenhängt, wie ausgewertet wird und das Attacker.Health nur Integer-Werte annehmen kann.

Der Mod wurde innerhalb 3 Stunden programmiert und getestet, wenn er noch nicht ganz balanciert ist bitte ich dies zu entschuldigen!

Zum Schluss noch eine Grafik, die bei einem MaxHealth von 999 (im Motator eingestellt) den Gain abhängig von Health des Angreifers (attackers health) und verursachtem Schaden beim Opfer (dealt damage).

linear_vampire

Download Vampire Mutator

Download Source

Überraschende Momente

Übersetzungsfehler in UIs sind mir schon des Öfteren begegnet, aber einer wie dieser hier im Wordpress 2.6 (DE Edition) ist mit noch nicht untergekommen.

ueberraschende_momente 

Erst mit einem Klick auf den Button wusste ich dann, was  damit gemeint war.

kuechenspuehle

Neue Speisekarte

Nachdem wir am Samstag bei der Poststube Pizzen für 4,50€/Stück geholt haben, hab ich wieder eine neue Pizzakarte.

Fahrkostenrechner in neuer Version

Nachdem ich die ListModel-Interfaces “entdeckt” habe, hab’ ich noch einige kleine Schönheitsoperationen am Fahrtkostenrechner vorgenommen. Außerdem kann man den Fahrer nun aus einer Liste auswählen, was die Bedienung vereinfachen sollte.

Nächste Einträge →