Eagle_Four
09.07.2010, 16:20
Hallo,
da ich immer wieder große Probleme mit CTDs habe und es definitiv an einem
nicht sauberen Cell Buffer liegt habe ich mir von Nexus das .esp Purge Cell Buffers(PCB) installiert. Die Grundversion hatte allerdings Fehler, so habe ich es modifiziert und meinen Bedürfnissen angepaßt.
Merkwürdigerweise stürzte FO3 immer ab, wenn ich in meinen Vault(underground Hideout) ging. Bei Abschalten von PCB gabs diesen Absturz nicht, also baute ich mein Script so um, das sobald ich in meinem Vault bin, der PCB Script Teil umgangen wurde. Jetzt mein Problem:
Hier ist der Code:
scn PCBScript
Begin GameMode
1 If Player.IsInInterior == 0 && PCBIntExSwitch == 1
2 PCB
3 ShowMessage PCBSuccessMsg
4 set PCBIntExSwitch to 0
5 Else
6 If Player.IsInInterior == 1 && PCBIntExSwitch == 0
7 PCB
8 ShowMessage PCBSuccessMsg
9 Set PCBIntExSwitch to 1
10 Endif
11 Endif
12 If Player.GetInCell EveLandHouse1 == 0
13 If PCBTrackerRef.GetInSameCell Player == 0
14 PCBTrackerRef.MoveTo Player
15 ShowMessage PCBZellennachricht
16 Set PCBCounter to PCBCounter + 1
17 Endif
18 If PCBCounter >= PCBFreq
19 Set PCBCounter to 0
20 ShowMessage PCBSuccessMsg
21 PCB
22 Endif
23 Else
24 ShowMessage PCBWillkommen
25 Endif
26End
Die Nummern habe ich nachträglich eingefügt, zum bessseren Verständnis.
Diese Zeile 12 If Player.GetInCell EveLandHouse1 == 0
wird nicht ausgeführt,die Bedingung ist immer erfüllt.Ändere ich die Zelle in z.b. Megaton funktioniert es perfekt.Ebenso, wenn ich in der Konsole Player.GetInCell EveLandHouse1 eingebe.Ich bekomme dann 1 zurück, wenn ich mich dort befinde,so wie es sein soll.Also ist der Code nicht fehlerhaft.
Das merkwürdige ist, als ich das Script erstellte hat es schon mal nicht funktioniert. Dann habe ich den Zell Namen in groß und Kleinschrift geändert, und dann ging es. Nach ausführlichen Tests, in allen möglichen Exteriors und Interiors ohne Abstürze, befand ich es für tauglich und habe dann die ShowMessages Zeilen auskommentiert.Sie dienten nur zum Testen. Danach ging ich in mein Vault, und Voila, CTD. Ich fügte die Hilfstexte wieder ein, aber die Zeile 12 wird einfach nicht korrekt ausgeführt. Scheint ein Fehler im Compiler zu sein.
Brauche jetzt echt mal nen Tip, ich sitze da schon länger dran Fo3 stabil zum laufen zu bekommen, als ich es gespielt habe.
Achja, die Zeilen 1-11 müßte ich einfügen, weil ich vom Wechsel ext nach int oder umgekehrt nach kurzer Zeit wieder einen Klappmann bekam.Dort wird sichergestellt, daß sofort ein PCB durchgeführt wird.Beruht alles auf langwierigen Tests.
da ich immer wieder große Probleme mit CTDs habe und es definitiv an einem
nicht sauberen Cell Buffer liegt habe ich mir von Nexus das .esp Purge Cell Buffers(PCB) installiert. Die Grundversion hatte allerdings Fehler, so habe ich es modifiziert und meinen Bedürfnissen angepaßt.
Merkwürdigerweise stürzte FO3 immer ab, wenn ich in meinen Vault(underground Hideout) ging. Bei Abschalten von PCB gabs diesen Absturz nicht, also baute ich mein Script so um, das sobald ich in meinem Vault bin, der PCB Script Teil umgangen wurde. Jetzt mein Problem:
Hier ist der Code:
scn PCBScript
Begin GameMode
1 If Player.IsInInterior == 0 && PCBIntExSwitch == 1
2 PCB
3 ShowMessage PCBSuccessMsg
4 set PCBIntExSwitch to 0
5 Else
6 If Player.IsInInterior == 1 && PCBIntExSwitch == 0
7 PCB
8 ShowMessage PCBSuccessMsg
9 Set PCBIntExSwitch to 1
10 Endif
11 Endif
12 If Player.GetInCell EveLandHouse1 == 0
13 If PCBTrackerRef.GetInSameCell Player == 0
14 PCBTrackerRef.MoveTo Player
15 ShowMessage PCBZellennachricht
16 Set PCBCounter to PCBCounter + 1
17 Endif
18 If PCBCounter >= PCBFreq
19 Set PCBCounter to 0
20 ShowMessage PCBSuccessMsg
21 PCB
22 Endif
23 Else
24 ShowMessage PCBWillkommen
25 Endif
26End
Die Nummern habe ich nachträglich eingefügt, zum bessseren Verständnis.
Diese Zeile 12 If Player.GetInCell EveLandHouse1 == 0
wird nicht ausgeführt,die Bedingung ist immer erfüllt.Ändere ich die Zelle in z.b. Megaton funktioniert es perfekt.Ebenso, wenn ich in der Konsole Player.GetInCell EveLandHouse1 eingebe.Ich bekomme dann 1 zurück, wenn ich mich dort befinde,so wie es sein soll.Also ist der Code nicht fehlerhaft.
Das merkwürdige ist, als ich das Script erstellte hat es schon mal nicht funktioniert. Dann habe ich den Zell Namen in groß und Kleinschrift geändert, und dann ging es. Nach ausführlichen Tests, in allen möglichen Exteriors und Interiors ohne Abstürze, befand ich es für tauglich und habe dann die ShowMessages Zeilen auskommentiert.Sie dienten nur zum Testen. Danach ging ich in mein Vault, und Voila, CTD. Ich fügte die Hilfstexte wieder ein, aber die Zeile 12 wird einfach nicht korrekt ausgeführt. Scheint ein Fehler im Compiler zu sein.
Brauche jetzt echt mal nen Tip, ich sitze da schon länger dran Fo3 stabil zum laufen zu bekommen, als ich es gespielt habe.
Achja, die Zeilen 1-11 müßte ich einfügen, weil ich vom Wechsel ext nach int oder umgekehrt nach kurzer Zeit wieder einen Klappmann bekam.Dort wird sichergestellt, daß sofort ein PCB durchgeführt wird.Beruht alles auf langwierigen Tests.