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:
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)
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).
Ü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.
Erst mit einem Klick auf den Button wusste ich dann, was damit gemeint war.
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.