Also ich hab nochmal nen save geladen und konnte die Bugs reproduzieren.
Der Aaron wird bei mir tatsächlich in Nashkell am Ende des Dialogs, nachdem man die Erfahrungspunkte für seine Rettung bekommen hat, dupliziert.
In diesem Moment blendet das Bild kurz aus, als ob nochmal die Cutscene für die Reise von der Gnollfestung nach Hause abläuft.
Ich wollte jetzt unbedingt wissen, was da bei mir falsch läuft und hab mir die Scripte für das Quest in NearInfinity angeschaut. Dabei ist mir aufgefallen, dass aus der Datei ACQ12CUT.BCS, in dem der Code für die Telportation der Party und Aaron zurück nach Nashkell enthalten ist, bei mir aus irgendeinem Grund beide Blöcke ausgeführt werden.
Hier ist der Inhalt des Scripts.
[spoil]IF
HasItem("ACQ12000","ACQ12002") // Aarons Schutzring
THEN
RESPONSE #100
CutSceneId(Player1)
SetGlobal("ACQ12","GLOBAL",3)
Wait(1)
FadeToColor([40.0],0)
Wait(2)
ActionOverride("ACQ12002",DestroySelf())
LeaveAreaLUAPanic("AR3700","",[1736.1001],10)
LeaveAreaLUA("AR3700","",[1736.1001],10)
ActionOverride(Player2,LeaveAreaLUA("AR3700","",[1736.1062],10))
ActionOverride(Player3,LeaveAreaLUA("AR3700","",[1783.1026],10))
ActionOverride(Player4,LeaveAreaLUA("AR3700","",[1688.1038],10))
ActionOverride(Player5,LeaveAreaLUA("AR3700","",[1656.1063],10))
ActionOverride(Player6,LeaveAreaLUA("AR3700","",[1708.1073],10))
Wait(1)
CreateCreature("ACQ12002",[1817.959],0) // Aaron - Aaron Brunnstein
ActionOverride("ACQ12002",CreateItem("ACQ12000",0,0,0)) // Aarons Schutzring
MultiPlayerSync()
FadeFromColor([40.0],0)
Wait(2)
ActionOverride("ACQ12001",StartDialogueNoSet(Player1))
END
IF
!HasItem("ACQ12000","ACQ12002") // Aarons Schutzring
THEN
RESPONSE #100
CutSceneId(Player1)
SetGlobal("ACQ12","GLOBAL",3)
Wait(1)
FadeToColor([40.0],0)
Wait(2)
ActionOverride("ACQ12002",DestroySelf())
LeaveAreaLUAPanic("AR3700","",[1736.1001],10)
LeaveAreaLUA("AR3700","",[1736.1001],10)
ActionOverride(Player2,LeaveAreaLUA("AR3700","",[1736.1062],10))
ActionOverride(Player3,LeaveAreaLUA("AR3700","",[1783.1026],10))
ActionOverride(Player4,LeaveAreaLUA("AR3700","",[1688.1038],10))
ActionOverride(Player5,LeaveAreaLUA("AR3700","",[1656.1063],10))
ActionOverride(Player6,LeaveAreaLUA("AR3700","",[1708.1073],10))
Wait(1)
CreateCreature("ACQ12002",[1817.959],0) // Aaron - Aaron Brunnstein
MultiPlayerSync()
FadeFromColor([40.0],0)
Wait(2)
ActionOverride("ACQ12001",StartDialogueNoSet(Player1))
END
[/spoil]
Dadurch wird ein zweiter Aaron gespawnt, der den Ring nicht hat. Wenn ich einfach den zweiten Block lösche und den Trigger durch True() ersetze findet die Duplikation nicht statt, er läuft zur Mühle, gibt mir den Ring zurück und ich kann das Quest normal lösen.
(Für den Fall, dass ich den Ring in der Gnollfestung behalte, entsteht natürlich ein zweiter Ring, weil die Abfrage fehlt.)
Warum beide IF-Anweisungen true sein können kann ich mir nicht erklären. Vielleicht scheitert die zweite Abfrage, weil die Party und Aaron inzwischen in Nashkell ist und nicht registriert wird, dass er den Ring schon hat.
Naja vielleicht hilft dies dem Mod-Autor.