Construction Set GetDeadcountproblem

Freelancer_T

Abenteurer
Ich habe mich gerade Spaßeshalber an meine erste Questreihe gesetzt, eine erweiterung der Hlaalu-Festung am Odai Plateau, bei der man von den Telvannis angegriffen wird und diesen Angriff in einigen Quests abwehren muss, nun habe ich aber ein Problem, bis jetzt hat alles Problemlos funktioniert, aber nun habe ich beim Überfall auf ein Telvannilager ein Problem.
Ich habe hierzu ein Interior erstellt und 5 Arten von FeindNPC, Magier, Priester, Krieger, Bogenschützen und Unteroffiziere.
Sie greifen mich an alles perfekt, aber ein Fehler muss mir Unterlaufen sein, denn wenn ich alle Telvannis getötet habe kommt keine Nachricht und mein Journal wird nicht aktualisiert.
Hier der Script:

Begin "ZK_OP_TELLAGER"

startscript "ZK_OP_Tellager"
if (GetDeadCount, "ZK_op_Tel_Lager"=8)
while (GetDeadCount, "ZK_op_Tel_Lager1"=8)
(GetDeadCount, "ZK_op_Tel_Lager2"=3)
(GetDeadCount, "ZK_op_Tel_Lager3"=6)
(GetDeadCount, "ZK_op_Tel_Lager4"=3)
endwhile
Messagebox, "Endlich habe ich alle erledigt"
SetJournalIndex "ZK_OP_Scherereien" 50
Journal "ZK_OP_Scherereien" 50

endif
end
Nun, wie ersichtlich habe ich insgesamt 28 NPcs, eingefügt, jede Feindart mehrmals
Ich schätze mal das es am GetDeadcount liegt und ich das Falsch verstanden habe, aber ich weiß nicht, wie ich das sonst schreiben sollte.
 
Das Script würde dein Spiel crashen/einfrieren... wenn es überhaupt laufen würde.

Du brauchst also ein funktionierendes Death-Check... und ein laufendes Script! Mach es so:

Du erstellst einen Activator und wirst diesen in der betreffenden Interior platzieren. Der Aktivator kann unsichtbar sein, er trägt dann das Script und überwacht so den Status der Quest. Das wäre das Script:
Code:
Begin "ZK_OP_TELLAGER_CTRL"
short DoOnce

IF ( DoOnce <= 0 )
  IF ( GetJournalIndex "ZK_OP_Scherereien" == X)  ;X ist der Indexwert bei Queststart
    set DoOnce to 1
  EndIF
  return
ELSE
  IF ( GetDeadCount, "ZK_op_Tel_Lager" >= 8 )
    IF (GetDeadCount, "ZK_op_Tel_Lager1" >=8 )
      IF (GetDeadCount, "ZK_op_Tel_Lager2" >=3 )
        IF (GetDeadCount, "ZK_op_Tel_Lager3" >=6 )
          IF (GetDeadCount, "ZK_op_Tel_Lager4" >=3 )
            Messagebox, "Endlich habe ich alle erledigt"
            Journal "ZK_OP_Scherereien" 50
            set DoOnce to -1
          EndIF
        EndIF
      EndIF
    EndIF
  EndIF
EndIF

end
Das sollte Dein Problem lösen.
 
Was bedeutet Do0nce?
Ich hab das schon öfter in scripts gelesen, aber in meinem Scripttutorial steht darüber nichts.
Danke für die Hilfe
 
DoOnce ist hier eine Variable, die du selbst definieren kannst (und immer am Anfang nach dem Scriptstart definiert werden muss. Im Beispiel oben an zweiter Stelle: Short DoOnce).

Du könntest statt DoOnce auch Salamibrot nehmen, aber das ist weniger einleuchtend. :D
 
Dann sollte ich mich mit dem Befehl short noch genauer auseinandersetzen, so genau hab ich das noch nicht verstanden.
Aber jetzt weiß ich wies gehen sollte und kann mir das beibringen, herzlichen Danke