Ich gucke mir gerade die Sharteel-Sache an. Das ist ja schon sehr albern, wenn sie was vom Champion faselt und gegen Männer kämpfen und dann ist das Grey.
In BGT wird der Kampf einfach über "StrongestOfMale" direkt in der Transaktion ausgelöst:
IF ~~ THEN DO ~ChangeAIScript("SHARTEL2",OVERRIDE)
CreateItem("SHARTHP1",0,0,0)
ActionOverride(StrongestOfMale,Attack("Sharteel"))
FillSlot(SLOT_AMULET)
~ EXIT
Das ist recht ungünstig, da muss ich mal sehen, wie ich damit umgehe. Im Endeffekt werde ich wohl eine weitere Transaction dranhängen die dazu führt, dass der zweitstärkste angegriffen wird. Dazu gibt's aber garantiert keinen netten Trigger und ich muss das per Skript erstmal auskaspern, wer das dann ist.
In der EE wurde der Kampf in das Skript verlagert. Aber auch hier wird mit "StrongestOfMale" gearbeitet: greift man sie nämlich nicht mit dem stärksten männlichen NPC an, dann wird sie feindlich,und läuft der Kampf, dann wird geguckt, wieviele HP "StrongestOfMale" noch hat. Seufz. Ich hatte ja gehofft, da irgendwo nur ein "Name("C#Grey")" einfügen zu müssen, aber ich fürchte, ich muss in allen Spielen erst kompliziert herausfinden, wer denn nun der stärkste Humanoid in der Gruppe ist (sofern Grey der stärkste ist) und dann das ganze neu skripten, damit es zum Kampf und zum rechtzeitigen Beenden des Kampfes kommt.
Stellt sich nur das Problem: wie vergleiche ich denn Stärkewerte, wenn alle Stärke 18 haben, ich aber das Gedöns hinter dem Slash nicht vergleichen kann?
Ich vermute momentan, dass das wohl so bleiben wird - blöd.
EDIT: es gibt natürlich kein "SecondStrongestOfMale" oder sowas. Dafür habe ich gesehen, dass ich nach der "10. entferntesten Tür" triggern könnte, wenn ich das wollte ("TenthNearestDoor"). Yay.
EDIT2: Ehrlich gesagt weiß ich noch nicht mal, wie ich mit den beschränkten Vergleichsmöglichkeiten überhaupt rausfinden soll, wer der "zweitstärkste" in der Gruppe ist.