[Bug] Bodhi in einer Endlosschleife

Noban

Senior Member
Registriert
07.10.2009
Beiträge
125
Die Situation:
HC hat sich für Aster (Alternatives) entschieden und Aaran bereits beseitigt.
Jetzt hat er den zweiten Auftrag zu erledigen, die Vampire.
Beim Betreten des Friedhofs erscheint allerdings Bodhi, sagt einen Text auf ( Fool! You missed the opportunity to work for me when you gave your ill-gotten gold to that Lathanderite bitch. We will meet again! ), läuft davon
- erscheint erneut, sagt denselben Text, läuft davon
- erscheint erneut, sagt denselben Text, läuft davon....
und wenn sie nicht gestorben ist, tut sie das bis heute :c:

Dieser Text hat als trigger 'B!Alternatives 5', in meinem Spiel ist diese Globale schon bei 8. Warum dieser Text trotzdem startet ist mir unklar.
Ich würde ja gerne einen Stuttertest machen, allerdings bin ich zu dumm dafür.
Bisher habe ich hier im Forum einen Stuttertest gefunden, heruntergeladen und die setup-st.exe in meinen Spielordner verschoben. Das war es dann aber - was ich nun als nächstes tun müsste ist mir komplett unklar.

Deshalb bitte ich um Hinweise die einen DAU (mich) in die Lage versetzen, diesen Stuttertest durchzuführen :)

Natürlich könnte ich direkt in die Katakomben springen, aber das behebt ja nicht das Problem. Ich würde gerne diesen bug in Alternatives einkreisen.
 

Shuv-Oohl

Senior Member
Registriert
15.06.2009
Beiträge
1.000
Poste doch mal die bcs der area, in der das passiert. Dazu per "x"-Taste, wenn Du in der area bist, herausfinden, wie die area hei\3t, also z.B. AR0815 oder so. Dann in NI unter dem Punkt BCS eben diese AR0815.bcs anklicken und den Inhalt hier mal als code reinstellen.
 

Noban

Senior Member
Registriert
07.10.2009
Beiträge
125
wie gesagt, es ist der Friedhof.
Folgend die AR800.bcs, Bodhi.bcs und ein paar Zeilen aus Bodhi.dlg:
[SPOIL]
AR0800.bcs:
Code:
IF
	
Global("B!AidanExists","GLOBAL",0)

TimeOfDay(NIGHT)

THEN

RESPONSE #100

SetGlobal("B!AidanExists","GLOBAL",1)

CreateCreature("B!AIDAN",[1355.1392],12) // Aidan

Continue()

END




IF
	
Global("B!AidanPlacement","GLOBAL",1)
	
TimeOfDay(NIGHT)
	
Global("B!AidanTalk","GLOBAL",0)

THEN
	
RESPONSE #100
		
SetGlobal("B!AidanPlacement","GLOBAL",0)
		
Activate("B!Aidan")

Continue()

END



IF
	
Global("O#XanMoonbladeExtinguished","GLOBAL",1)

THEN
	
RESPONSE #100
		
SetGlobal("O#XanMoonbladeExtinguished","GLOBAL",2)
		
StartCutSceneMode()
		
StartCutScene("O#XanM")

END



IF
	
Global("O#XanMoonbladeExtinguished","GLOBAL",2)
	
Global("O#XanBodhiSpeaks","AR0800",0)

THEN
	
RESPONSE #100
		
SetGlobal("O#XanBodhiSpeaks","AR0800",1)
		
RealSetGlobalTimer("O#XanBodhiTimer","GLOBAL",ONE_MINUTE)
		
ActionOverride("BodhiAmb",StartDialogueNoSet(Player1))

END



IF
	
Global("O#XanMoonbladeExtinguished","GLOBAL",2)
	
InParty("Imoen2")
	
Global("O#XanImoenMoonbladeExtinguished","GLOBAL",0)

THEN
	
RESPONSE #100
		
SetGlobal("O#XanImoenMoonbladeExtinguished","GLOBAL",1)

END



IF
	
Global("O#XanMoonbladeExtinguished","GLOBAL",2)
	
InParty("Jaheira")
	
Global("O#XanJaheiMoonbladeExtinguished","GLOBAL",0)

THEN
	
RESPONSE #100
		
SetGlobal("O#XanJaheiMoonbladeExtinguished","GLOBAL",1)

END



IF
	
Global("O#XanMoonbladeExtinguished","GLOBAL",2)
	
!Dead("O#Xan")
	
!StateCheck("O#Xan",STATE_SLEEPING)

THEN
	
RESPONSE #100
		
ApplySpell("O#Xan",SURE_SLEEP)

END



IF
	
Global("O#XanMoonbladeExtinguished","GLOBAL",2)
	
OR(3)
		
StateCheck("O#Xan",STATE_CHARMED)
		
!InParty("O#Xan")
		
Dead("O#Xan")

THEN
	
RESPONSE #100
		
SetGlobal("O#XanMoonbladeExtinguished","GLOBAL",3)
		
ActionOverride("O#Xan",LeaveParty())
		
ActionOverride("O#Xan",Kill(Myself))

END



IF
	
Global("O#XanMoonbladeExtinguished","GLOBAL",2)
	
RealGlobalTimerExpired("O#XanBodhiTimer","GLOBAL")
	
CombatCounter(0)
	
InParty("O#Xan")

THEN
	
RESPONSE #100
		
StateOverrideFlag(TRUE)
		
ActionOverride("O#Xan",StartDialogueNoSet(Player1))

END



IF
	
Global("O#XanMoonbladeExtinguished","GLOBAL",3)
	
InParty("Imoen2")
	
!Dead("C6Bodhi")
	
CombatCounter(0)
	
!StateCheck(Player1,CD_STATE_NOTVALID)
	
!StateCheck("Imoen2",CD_STATE_NOTVALID)
	
Global("O#XanImoenMoonbladeExtinguished","GLOBAL",1)

THEN
	
RESPONSE #100
		
SetGlobal("O#XanImoenMoonbladeExtinguished","GLOBAL",2)

END



IF
	
Global("O#XanImoenMoonbladeExtinguished","GLOBAL",2)
	
InParty("Imoen2")
	
!StateCheck(Player1,CD_STATE_NOTVALID)
	
!StateCheck("Imoen2",CD_STATE_NOTVALID)

THEN
	
RESPONSE #100
		
ActionOverride("Imoen2",StartDialogueNoSet(Player1))

END



IF
	
Global("O#XanMoonbladeExtinguished","GLOBAL",3)
	
InParty("Jaheira")
	
!Dead("C6Bodhi")
	
CombatCounter(0)
	
!StateCheck(Player1,CD_STATE_NOTVALID)
	
!StateCheck("Jaheira",CD_STATE_NOTVALID)
	
Global("O#XanJaheiMoonbladeExtinguished","GLOBAL",1)

THEN
	
RESPONSE #100
		
SetGlobal("O#XanJaheiMoonbladeExtinguished","GLOBAL",2)

END



IF
	
Global("O#XanJaheiMoonbladeExtinguished","GLOBAL",2)
	
InParty("Jaheira")
	
!StateCheck(Player1,CD_STATE_NOTVALID)
	
!StateCheck("Jaheira",CD_STATE_NOTVALID)

THEN
	
RESPONSE #100
		
ActionOverride("Jaheira",StartDialogueNoSet(Player1))

END



IF
	
Global("O#XanMoonbladeExtinguished","GLOBAL",3)
	
InParty("Imoen2")
	
Dead("C6Bodhi")
	
AreaCheck("AR0800")
	
CombatCounter(0)
	
!StateCheck(Player1,CD_STATE_NOTVALID)
	
!StateCheck("Imoen2",CD_STATE_NOTVALID)
	
Global("O#XanImoenMoonbladeExtinguished","GLOBAL",3)

THEN
	
RESPONSE #100
		
SetGlobal("O#XanImoenMoonbladeExtinguished","GLOBAL",4)

END



IF
	
Global("O#XanImoenMoonbladeExtinguished","GLOBAL",4)
	
InParty("Imoen2")
	
!StateCheck(Player1,CD_STATE_NOTVALID)
	
!StateCheck("Imoen2",CD_STATE_NOTVALID)

THEN
	
RESPONSE #100
		
ActionOverride("Imoen2",StartDialogueNoSet(Player1))

END



IF
	
AreaCheck("AR0800")
	
AreaType(OUTDOOR)
	
InMyArea(Player1)
	
Global("O#CrLynnSpawn2","GLOBAL",0)
	
Dead("C6Bodhi")
	
Global("O#CrLynnNineQuestsComplete","GLOBAL",1)
	
Global("O#CrLynnBetrayed","GLOBAL",0)
	
Global("O#CrLynnFinalQuest","GLOBAL",0)

THEN
	
RESPONSE #100
		
CreateCreatureObjectOffset("O#CrBoy",Player1,[20.20]) // Junge
		
SetGlobal("O#CrLynnSpawn2","GLOBAL",1)

END



IF
	
OnCreation()
	
GlobalGT("Chapter","GLOBAL",5)
	
Global("Deactivate0801","AR0800",1)
	
InMyArea(Player1)

THEN
	
RESPONSE #100
		
FadeToColor([1.0],0)
		
SetGlobal("Deactivate0801","AR0800",2)
		
DayNight(MIDNIGHT)
		
FadeFromColor([20.0],0)
		
TriggerActivation("Tran0801a",FALSE)
		
TriggerActivation("Tran0801b",FALSE)
		
TriggerActivation("Tran0801c",FALSE)
		
TriggerActivation("Tran0801d",FALSE)
		
TriggerActivation("BodhiInfo1",TRUE)
		
TriggerActivation("BodhiInfo2",TRUE)
		
TriggerActivation("BodhiInfo3",TRUE)
		
TriggerActivation("Tran0808",TRUE)
		
Unlock("DOOR12")
		
CreateCreatureObjectOffScreen("BODHIAMB",Player1,0,0,0) // Bodhi

END



IF
	
GlobalGT("BodhiJob","GLOBAL",0)
	
Global("Movie02","GLOBAL",0)

THEN
	
RESPONSE #100
		
ClearAllActions()
		
SetGlobal("Movie02","GLOBAL",1)
		
StartCutSceneMode()
		
FadeToColor([30.0],0)
		
Wait(2)
		
EndCutSceneMode()
		
TextScreen("SCENE04")
		
SmallWait(1)
		
StartCutSceneMode()
		
StartCutScene("Movie02a")

END



IF
	
Global("WorkingForBodhi","GLOBAL",1)
	
Global("BodhiJournal","AR0800",0)

THEN
	
RESPONSE #100
		
SetGlobal("BodhiJournal","AR0800",1)
		
AddJournalEntry(6606,QUEST) // Bodhi stellt Bedingungen f¸r ihre Unterst¸tzung  Ich habe Bodhis Auftrag angenommen. Sie ist der Kopf der "rivalisierenden Gilde", die sich mit den Schattendieben befehdet. Sie benˆtigte weit weniger M¸nzen als meine jetzigen Auftraggeber. Ich soll ausserdem einige Dinge erledigen, um die Schattendiebe zu untergraben. Sobald das erledigt ist, werde ich ihre volle Unterst¸tzung bei der Suche nach Imoen haben. Ihre Auftr‰ge kˆnnten blutig und gewaltt‰tig sein.  Wenn ich annehme, werden die Schattendiebe meine Feinde sein, und Bodhi zufolge werden sie schon sehr schnell wissen, dass ich mich gegen sie gestellt habe. Das ist nur fair. Mein erster Auftrag wird sein, zu den Docks runterzugehen und eine Ladung zu finden, die von Schattendieben bewacht wird. Sobald ich sie besitze, soll ich zu den Krypten unter dem Friedhofsviertel zur¸ckkehren und sie an Bodhi ausliefern.  Bodhi erw‰hnte ausserdem, dass die Krypten zwar erschreckend auss‰hen, aber ein sicherer Ort seien, um eine Rast einzulegen, sollte ich eine benˆtigen.
		
AddJournalEntry(23351,INFO) // Kapitel 3  W‰hrend meines Aufenthalts in Athkatla und meiner Abenteuern in der Stadt und ihrer Umgebung bin ich aufgrund zahlreicher Hinweise zu dem Schluss gekommen, dass die Schattendiebe mit irgendeiner anderen Organisation im Krieg liegen. Diese andere Organisation trat an mich in Gestalt von Bodhi heran... einer Frau, deren Macht und Bˆsartigkeit nur noch von ihrem Ehrgeiz ¸bertroffen wird. Sie hat mir enth¸llt, dass meine Wohlt‰ter, angef¸hrt von Gaelan Bayle, niemand anders als die Schattendiebe sind, und sie hat mir angeboten, mir die gleiche Hilfe zuteil werden zu lassen... nur zu einem wesentlich niedrigeren Preis.  Ich habe Bodhis Angebot angenommen, und sie scheint mir, zumindest im Moment, zu vertrauen. Ihre wahren Motive sind mir zum jetzigen Zeitpunkt noch nicht klar. Ich weifl nur, dass Bodhi offenbar drauf und dran ist, diese Auseinandersetzung zu gewinnen. Ich habe ihr zwar eine stattliche Summe Gold als Gegenleistung f¸r ihre Hilfe bezahlt... Aber ich habe das unangenehme Gef¸hl, dass dies nur ein geringer Teil des Preises ist, den ich schlussendlich bezahlen muss. Aber ich werde meine Antworten bekommen... Ich werde Imoen und Irenicus finden!
END

IF
	
Global("Deactivate0801","AR0800",0)

THEN
	
RESPONSE #100
		
SetGlobal("Deactivate0801","AR0800",1)
		
TriggerActivation("BodhiInfo1",FALSE)
		
TriggerActivation("BodhiInfo2",FALSE)
		
TriggerActivation("BodhiInfo3",FALSE)
		
TriggerActivation("Tran0808",FALSE)

END



IF
	
GlobalGT("NaliaMessage","GLOBAL",0)
	
Global("NaliaWentToFuneral","GLOBAL",0)
	
Global("SpawnNaliaFuneral","AR0800",0)

THEN
	
RESPONSE #100
		
SetGlobal("SpawnNaliaFuneral","AR0800",1)
		
CreateCreature("ISAEA",[1842.575],0) // Isaea Roenall
		
CreateCreature("FARTHIN",[1787.581],0) // F¸rst Farthington Roenall
		
CreateCreature("FUMIN",[2132.780],0) // Minister Adelain
		
CreateCreature("FULADY",[1940.651],0) // F¸rstin Tandolan von Um
		
CreateCreature("FULORD",[1946.726],0) // F¸rst Milsire Donderbeg
		
CreateCreature("FUAGNON",[1995.757],0) // Hurgan Steinklinge

END



IF
	
False()
	
GlobalTimerExpired("Garrick","GLOBAL")

THEN
	
RESPONSE #100
		
ActionOverride("Cyrando",JumpToPoint([2963.3624]))
		
ActionOverride("Irlana",JumpToPoint([2989.3604]))
		
ActionOverride("Cyrando",Face(14))
		
ActionOverride("Irlana",Face(14))

END



IF
	
Global("BodhiAppear","GLOBAL",1)
	
InMyArea(Player1)
	
GlobalLT("Chapter","GLOBAL",5)
	
OR(2)
		
!GlobalTimerNotExpired("Bodhi","GLOBAL")
		
PartyGoldGT(14999)
	
Global("WorkingForAran","GLOBAL",0)
	
!Exists("Bodhi")
	
OR(2)
		
TimeGT(DUSK_START)
		
TimeLT(DAWN_START)

THEN
	
RESPONSE #100
		
CreateCreature("BODHI",[2165.1724],2) // Bodhi

END



IF
	
Global("WorkingForBodhi","GLOBAL",1)
	
OpenState("DOOR12",FALSE)
	
GlobalLT("Chapter","GLOBAL",6)
	
!Global("Door12Opened","AR0800",1)

THEN
	
RESPONSE #100
		
TriggerActivation("Tran0801c",TRUE)
		
Unlock("DOOR12")
		
OpenDoor("DOOR12")
		
SetGlobal("Door12Opened","AR0800",1)

END



IF
	
!GlobalTimerNotExpired("TSPickAR0800","AR0800")
	
TimeGT(8)
	
TimeLT(16)

THEN
	
RESPONSE #100
		
SetGlobalTimer("TSPickAR0800","AR0800",4320)
		
CreateCreature("TSPick4",[846.1814],14) // B¸rgerin - B¸rger
		
CreateCreature("TSPick2",[1770.861],6) // Edelfrau
		
CreateCreature("TSPick8",[1114.1142],14) // Bauer

END



IF
	
OnCreation()
	InParty("Imoen2")
	
Global("KidnapMe","GLOBAL",1)
	
!Global("Deactivate0801","AR0800",2)
	
InMyArea(Player1)

THEN
	
RESPONSE #100
		
FadeToColor([1.0],0)
		
SetGlobal("KidnapMe","GLOBAL",2)
		
DayNight(MIDNIGHT)
		
FadeFromColor([20.0],0)
		
TriggerActivation("Tran0801a",FALSE)
		
TriggerActivation("Tran0801b",FALSE)
		
TriggerActivation("Tran0801c",FALSE)
		
TriggerActivation("Tran0801d",FALSE)
		
TriggerActivation("BodhiInfo1",TRUE)
		
TriggerActivation("BodhiInfo2",TRUE)
		
TriggerActivation("BodhiInfo3",TRUE)
		
TriggerActivation("Tran0808",TRUE)
		
Unlock("DOOR12")
		
CreateCreatureObjectOffScreen("BODHIAMB",Player1,0,0,0) // Bodhi

END



IF
	
Global("RR#CTRIG","AR0800",0)
	
Global("RR#CEASY","AR0800",0)
	
Dead("c6bodhi")
	
InMyArea(Player1)
	
Difficulty(EASIEST)

THEN
	
RESPONSE #100
		
SetGlobal("RR#CGRAV","GLOBAL",0)
		
SetGlobal("RR#CEASY","AR0800",1)
		
TriggerActivation("RR#COC01",FALSE)
		
TriggerActivation("RR#COC02",FALSE)

END



IF
	
Global("RR#CTRIG","AR0800",0)
	
Global("RR#CGRAV","GLOBAL",0)
	
Dead("c6bodhi")
	
InMyArea(Player1)
	
!Difficulty(EASIEST)

THEN
	
RESPONSE #100
		
SetGlobal("RR#CGRAV","GLOBAL",1)
		
SetGlobal("RR#CEASY","AR0800",0)
		
TriggerActivation("RR#COC01",TRUE)
		
TriggerActivation("RR#COC02",TRUE)

END


Bodhi.bcs:
IF
	
AttackedBy([GOODCUTOFF],DEFAULT)
	
GlobalLT("AsylumPlot","GLOBAL",4)
	
GlobalGT("WorkingForBodhi","GLOBAL",0)
	
GlobalLT("Chapter","GLOBAL",5)
	
Global("BodhiSlaughtersYou","GLOBAL",0)

THEN
	
RESPONSE #100
		
SetGlobal("BodhiSlaughtersYou","GLOBAL",1)
		
StartCutSceneMode()
		
StartCutScene("Cut83a")

END



IF
	
OR(2)
		
Global("BodhiAppear","GLOBAL",1)
		
Global("BodhiAppear","GLOBAL",2)
	
!Detect([PC])
	TimeLT(DUSK_END)
	
TimeGT(5)

THEN
	
RESPONSE #100
		
DestroySelf()

END



IF
	
TimeGT(5)
	
TimeLT(DUSK_END)
	
AreaType(OUTDOOR)

THEN
	
RESPONSE #100
		
ReallyForceSpellDead(Myself,VAMPIRE_BAT_FORM_CHANGE)

END



IF
	
Global("BodhiAppear","GLOBAL",1)
	
Detect([PC])
	
Range(LastSeenBy(Myself),13)
	
OR(2)
		
TimeGT(DUSK_START)
		
TimeLT(DAWN_START)

THEN
	
RESPONSE #100
		
StartDialogueNoSet(LastSeenBy(Myself))

END



IF
	
Global("BodhiAppear","GLOBAL",1)
	
!Detect([PC])
	
OR(2)
		
TimeGT(DUSK_START)
		
TimeLT(DAWN_START)

THEN
	
RESPONSE #100
		
MoveToObject(Player1)

END

Die betreffenden Stellen  aus Bodhi.dlg:
State 139:
Response: Fool! You missed the opportunity to work for me when you gave your ill-gotten gold to that Lathanderite bitch. We will meet again!
First response index: 349
# responses: 1
Trigger index: 3 

Trigger 3: GlobalGT("B!Alternatives","GLOBAL",5)

Response 349: 
Flags: ( Action(2) Terminates dialog(3) )
Associated text: No such index
Journal entry: 
Trigger index: 0
Action index: 115
Next dialog: None
Next dialog state: 0

Action 115:
EscapeArea()
[/SPOIL]

Wie gesagt, ich arbeite bereits für ihre Gegner und bin auf dem Weg ihr Lager auszuräuchern. Dieser Text an dieser Stelle im Spiel ist sowieso überholt :)
Das sie allerdings die Endlosschleife baut scheint mir nicht wirklich offensichtlich. Fehlt da irgendwo ein Stopper, ein 'End' Befehl, den Alternatives nicht setzt?
 
Zuletzt bearbeitet von einem Moderator:
Oben