[Bug] StutterBug: Yoshimo

Liareth

Junior Member
Registriert
13.09.2015
Beiträge
8
Hallo zusammen,

Wie der Titel schon sagt, habe ich ein Problem mit Yoshimo. Und zwar hat er irgendwann während der Kupferkronen Quest angefangen alle paar Sekunden stehen zu bleiben und alle Aktionen abzubrechen.
Er dreht sich also immer zu meinem Hauptcharakter hin, als ob er mit ihm sprechen möchte, sagt dann aber nix.

Ich bin hier im Forum auf das Stutter Debug Tool gestoßen, das mir, wenn ich es verwenden auf der Konsole ständig das folgende ausgibt:
"Running block 18 of Yoshimo.bcs".

Ich hab jetzt mal versucht die entsprechende Datei aus dem override Ordner mit NearInfinity zu öffnen und die sieht so aus:

IF
Global("WWBooGone","GLOBAL",1)
Global("BYoshimo13","LOCALS",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237188)) // Running block 0 of Yoshimo.BCS
SetGlobal("BYoshimo13","LOCALS",90)
END

IF
Global("WWBooGone","GLOBAL",2)
Global("BYoshimo13","LOCALS",90)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237189)) // Running block 1 of Yoshimo.BCS
SetGlobal("BYoshimo13","LOCALS",0)
END

IF
Global("ISHYoshi","GLOBAL",0)
AreaCheck("ARISH1")
See("9xStoryT")
CombatCounter(0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237190)) // Running block 2 of Yoshimo.BCS
StartDialog("YOSHJ",Player1)
Continue()
END

IF
InParty(Myself)
Global("SPRITE_IS_DEADYoshimo","GLOBAL",1)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237191)) // Running block 3 of Yoshimo.BCS
SetGlobal("SPRITE_IS_DEADYoshimo","GLOBAL",0)
END

IF
InParty(Myself)
AreaCheck("AR0300")
!Global("WorkingForBodhi","GLOBAL",1)
See(Player1)
!StateCheck(Player1,STATE_SLEEPING)
Global("YoshimoMentionsRenal","LOCALS",0)
Global("TalkedToRenal","GLOBAL",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237192)) // Running block 4 of Yoshimo.BCS
StartDialogueNoSet(Player1)
END

IF
GlobalTimerExpired("YoshimoRemindsRenal","GLOBAL")
InParty(Myself)
Global("TalkedToRenal","GLOBAL",0)
!Global("WorkingForBodhi","GLOBAL",1)
AreaType(OUTDOOR)
AreaType(CITY)
!AreaCheck("AR2000")
!Global("Chapter","GLOBAL",4)
!Global("Chapter","GLOBAL",5)
!Global("Chapter","GLOBAL",7)
See(Player1)
!StateCheck(Player1,STATE_SLEEPING)
GlobalLT("YoshimoReminder","LOCALS",2)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237193)) // Running block 5 of Yoshimo.BCS
StartDialogueNoSet(Player1)
END

IF
GlobalGT("AsylumPlot","GLOBAL",55)
Global("ButtPluggingCumBubble","GLOBAL",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237194)) // Running block 6 of Yoshimo.BCS
SetGlobal("ButtPluggingCumBubble","GLOBAL",1)
Kill(Myself)
LeaveParty()
END

IF
InParty(Myself)
InParty("Mazzy")
See("Mazzy")
!Dead("Mazzy")
!StateCheck("Mazzy",STATE_SLEEPING)
HPPercentLT("Mazzy",50)
CombatCounter(0)
Global("BYoshimo1","LOCALS",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237195)) // Running block 7 of Yoshimo.BCS
Interact("Mazzy")
END

IF
InParty(Myself)
RealGlobalTimerExpired("YoshimoTalksPC","GLOBAL")
See(Player1)
!StateCheck(Player1,STATE_SLEEPING)
CombatCounter(0)
Global("BYoshimo3","LOCALS",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237196)) // Running block 8 of Yoshimo.BCS
Interact(Player1)
END

IF
InParty(Myself)
RealGlobalTimerExpired("I#YoshimoTalksPC2","GLOBAL")
Global("PCYosh","LOCALS",1)
See(Player1)
!StateCheck(Player1,STATE_SLEEPING)
CombatCounter(0)
Global("BYoshimo4","LOCALS",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237197)) // Running block 9 of Yoshimo.BCS
Interact(Player1)
END

IF
InParty(Myself)
InParty("Edwin")
Gender("Edwin",FEMALE)
Global("SetItOnce","LOCALS",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237198)) // Running block 10 of Yoshimo.BCS
SetGlobal("SetItOnce","LOCALS",1)
SetGlobalTimer("YoshimoMakesFun","GLOBAL",ONE_DAY)
END

IF
InParty(Myself)
GlobalTimerExpired("YoshimoMakesFun","GLOBAL")
InParty("Edwin")
Gender("Edwin",FEMALE)
See("Edwin")
!Dead("Edwin")
!StateCheck("Edwin",STATE_SLEEPING)
CombatCounter(0)
Global("BYoshimo14","LOCALS",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237199)) // Running block 11 of Yoshimo.BCS
Interact("Edwin")
END

IF
PartyHasItem("misc5m") // Leiche des Leutnants
InParty(Myself)
See(Player1)
!StateCheck(Player1,STATE_SLEEPING)
OR(3)
!InParty("Keldorn")
Dead("Keldorn")
StateCheck("Keldorn",STATE_SLEEPING)
OR(3)
!InParty("Anomen")
Dead("Anomen")
StateCheck("Anomen",STATE_SLEEPING)
Global("FoundAegis","GLOBAL",0)
Global("FoundAegis2","LOCALS",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237200)) // Running block 12 of Yoshimo.BCS
SetGlobal("FoundAegis2","LOCALS",1)
StartDialogueNoSet(Player1)
END

IF
Allegiance(Myself,ENEMY)
!InParty(Myself)
Global("NPCFight","LOCALS",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237201)) // Running block 13 of Yoshimo.BCS
SetGlobal("NPCFight","LOCALS",1)
ChangeAIScript("yoshx",SPECIFICS)
ChangeAIScript("useitem",GENERAL)
ChangeAIScript("",DEFAULT)
SetDialog("")
Continue()
END

IF
Allegiance(Myself,NEUTRAL)
AttackedBy([GOODCUTOFF],DEFAULT)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237202)) // Running block 14 of Yoshimo.BCS
ChangeAIScript("yoshx",SPECIFICS)
ChangeAIScript("useitem",GENERAL)
ChangeAIScript("",DEFAULT)
Enemy()
Continue()
END

IF
!Allegiance(Myself,ENEMY)
!InParty(Myself)
Global("NPCFight","LOCALS",1)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237203)) // Running block 15 of Yoshimo.BCS
SetGlobal("NPCFight","LOCALS",0)
ChangeAIScript("",GENERAL)
ChangeAIScript("",SPECIFICS)
Continue()
END

IF
Global("M#AmberKidnap","GLOBAL",4)
CombatCounter(0)
!StateCheck(Player1,STATE_PANIC)
!StateCheck(Player1,STATE_BERSERK)
!StateCheck(Player1,STATE_CHARMED)
!StateCheck(Player1,STATE_CONFUSED)
See(Player1)
Global("M#YoshimoKidnapResponse","GLOBAL",1)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237204)) // Running block 16 of Yoshimo.BCS
Dialogue(Player1)
END

IF
RealGlobalTimerExpired("YoshimoTalksPC3","GLOBAL")
InParty(Myself)
Global("I#Yoshimo_BY5","GLOBAL",1)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237205)) // Running block 17 of Yoshimo.BCS
SetGlobal("I#Yoshimo_BY5","GLOBAL",2)
RealSetGlobalTimer("I#YoshimoFriendTalksTimer","GLOBAL",TWELVE_HOURS)
SetGlobal("I#YoshimoFriendshipActive","GLOBAL",2)
SetGlobal("I#YoshimoFriendStart","GLOBAL",1)
END

IF
RealGlobalTimerExpired("YoshimoTalksPC3","GLOBAL")
InParty(Myself)
Global("I#Yoshimo_BY5","GLOBAL",2)
Global("BYoshimo5","LOCALS",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237206)) // Running block 18 of Yoshimo.BCS
Interact(Player1)
END

IF
InParty(Myself)
See(Player1)
!StateCheck(Myself,CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
RealGlobalTimerExpired("I#YoshimoFriendTalksTimer","GLOBAL")
CombatCounter(0)
!See([ENEMY])
OR(4)
Global("I#YoshimoFriendTalks","GLOBAL",3)
Global("I#YoshimoFriendTalks","GLOBAL",5)
Global("I#YoshimoFriendTalks","GLOBAL",7)
Global("I#YoshimoFriendTalks","GLOBAL",11)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237207)) // Running block 19 of Yoshimo.BCS
MoveToObject(Player1)
StartDialogueNoSet(Player1)
END

IF
InParty(Myself)
See(Player1)
RealGlobalTimerExpired("I#YoshimoFriendTalksTimer","GLOBAL")
OR(4)
Global("I#YoshimoFriendTalks","GLOBAL",2)
Global("I#YoshimoFriendTalks","GLOBAL",4)
Global("I#YoshimoFriendTalks","GLOBAL",6)
Global("I#YoshimoFriendTalks","GLOBAL",10)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237208)) // Running block 20 of Yoshimo.BCS
IncrementGlobal("I#YoshimoFriendTalks","GLOBAL",1)
END

IF
InParty(Myself)
See(Player1)
!StateCheck(Myself,CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
RealGlobalTimerExpired("I#YoshimoFriendTalksTimer","GLOBAL")
Global("I#YoshimoFriendStart","GLOBAL",1)
OR(6)
AreaCheck("AR0300")
AreaCheck("AR0400")
AreaCheck("AR0500")
AreaCheck("AR0021")
AreaCheck("AR0313")
AreaCheck("AR0406")
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237209)) // Running block 21 of Yoshimo.BCS
SetGlobal("I#YoshimoFriendTalks","GLOBAL",1)
IncrementGlobal("I#YoshimoFriendStart","GLOBAL",1)
END

IF
InParty(Myself)
See(Player1)
!StateCheck(Myself,CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
Global("I#YoshimoFriendTalks","GLOBAL",1)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237210)) // Running block 22 of Yoshimo.BCS
MoveToObject(Player1)
StartDialogueNoSet(Player1)
END

IF
InParty(Myself)
See(Player1)
!StateCheck(Myself,CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
RealGlobalTimerExpired("I#YoshimoFriendTalksTimer","GLOBAL")
Global("I#YoshimoFriendTalks","GLOBAL",8)
GlobalGT("chapter","GLOBAL",2)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237211)) // Running block 23 of Yoshimo.BCS
IncrementGlobal("I#YoshimoFriendTalks","GLOBAL",1)
END

IF
InParty(Myself)
See(Player1)
!StateCheck(Myself,CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
Global("I#YoshimoFriendTalks","GLOBAL",9)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237212)) // Running block 24 of Yoshimo.BCS
MoveToObject(Player1)
StartDialogueNoSet(Player1)
END

IF
InParty(Myself)
See(Player1)
!StateCheck(Myself,CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
RealGlobalTimerExpired("I#YoshimoFriendTalksTimer","GLOBAL")
Global("I#YoshimoFriendTalks","GLOBAL",12)
Global("LassalVampires","GLOBAL",3)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237213)) // Running block 25 of Yoshimo.BCS
IncrementGlobal("I#YoshimoFriendTalks","GLOBAL",1)
END

IF
InParty(Myself)
See(Player1)
!StateCheck(Myself,CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
Global("I#YoshimoFriendTalks","GLOBAL",13)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237214)) // Running block 26 of Yoshimo.BCS
MoveToObject(Player1)
StartDialogueNoSet(Player1)
END

IF
InParty(Myself)
See(Player1)
!StateCheck(Myself,CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
Global("I#YoshimoFriendTalks","GLOBAL",14)
OR(3)
AreaCheck("AR1600")
AreaCheck("AR1602")
AreaCheck("AR1603")
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237215)) // Running block 27 of Yoshimo.BCS
IncrementGlobal("I#YoshimoFriendTalks","GLOBAL",1)
RealSetGlobalTimer("I#YoshimoFriendTalksTimer","GLOBAL",TEN_TURNS)
END

IF
InParty(Myself)
See(Player1)
!StateCheck(Myself,CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
Global("I#YoshimoFriendTalks","GLOBAL",15)
RealGlobalTimerExpired("I#YoshimoFriendTalksTimer","GLOBAL")
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237216)) // Running block 28 of Yoshimo.BCS
MoveToObject(Player1)
StartDialogueNoSet(Player1)
END

IF
InParty(Myself)
See(Player1)
!StateCheck(Myself,CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
Global("I#YoshimoFriendTalks","GLOBAL",16)
AreaCheck("AR1515")
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237217)) // Running block 29 of Yoshimo.BCS
IncrementGlobal("I#YoshimoFriendTalks","GLOBAL",1)
END

IF
InParty(Myself)
See(Player1)
!StateCheck(Myself,CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
Global("I#YoshimoFriendTalks","GLOBAL",17)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237218)) // Running block 30 of Yoshimo.BCS
MoveToObject(Player1)
StartDialogueNoSet(Player1)
END

Der entscheidende Ausschnitt scheint wohl der hier zu sein:
IF
RealGlobalTimerExpired("YoshimoTalksPC3","GLOBAL")
InParty(Myself)
Global("I#Yoshimo_BY5","GLOBAL",2)
Global("BYoshimo5","LOCALS",0)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,237206)) // Running block 18 of Yoshimo.BCS
Interact(Player1)
END

Nur habe ich jetzt keine Ahnung was ich machen kann, damit Yoshimo sich wieder ordentlich verhält.
Weiß da einer von euch Rat?
 
Zuletzt bearbeitet:

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.381
Nehmen wir der Einfachkeit halber mal an, dass der Bug auf einem Mod beruht. Dann hat aller Wahrscheinlichkeit nach der Modder vergessen, die Variable hochzuzählen (müsste man halt genauer in der Yoshimo.bcs nachschauen.

Daher würde ich mal vorschlagen, mittels CLUAConsole die Global("I#Yoshimo_BY5","GLOBAL") auf 3 zu setzen.
Müsste ungefähr der folgende Syntax sein:
SetGlobal("I#Yoshimo_BY5","GLOBAL",3)

Dann dürfte der Dialog nicht mehr starten, weil die Bedingung nicht mehr gegeben ist. Kann halt sein, dass es dann den Mod durcheinanderbringt, falls da irgendwie die Variablen immer um 2 hochgezählt werden. Das kann vorkommen, wenn die Leute zwei parallel Dialogentwicklungen fortführen, und dann die ungeraden und geraden Variablenwerte jeweils den beiden Dialogsträngen zuordnen. Macht auch das Originalspiel an einigen Stellen, an denen sich der Spieler entscheiden muss.
 

Liareth

Junior Member
Registriert
13.09.2015
Beiträge
8
Danke dir,

CLUAConsole:SetGlobal("I#Yoshimo_BY5","GLOBAL",3)

hat geholfen. Er verhält sich jetzt wieder so wie er soll. :-)
 
Oben