The state # in the dialog that the interjection hooks into.
If you open a dialog in NearInfinity or DLTCEP, you'll see that each line in the dialog file is a "state". The state # is a just an integer index, starting at 0.
The state # in the dialog that the interjection hooks into.
If you open a dialog in NearInfinity or DLTCEP, you'll see that each line in the dialog file is a "state". The state # is a just an integer index, starting at 0.
OK, so it doesn't refer to an enumeration somewhere, like "State 8 = Sleepy".
What happens when there is a conflict - say, 2 interjections for the same NPC on the same "State" #? Or more simply, if 2 diff party members could both say something to an NPC, who "wins"?
Why are there situations that seem highly unlikely- such as Shar-teel commenting on meeting Montaron for the first time? I can't see a new player running over to her location to recruit her before going to FAI. It's not the only example of that, there are quite a few others. Are they meant to amuse the folks who rush to pick up favorite party members out of the normal order of things?
What happens when there is a conflict - say, 2 interjections for the same NPC on the same "State" #? Or more simply, if 2 diff party members could both say something to an NPC, who "wins"?
A state can have multiple transitions. Here is an example state from BASSIL.DLG with BG1NPC installed.
IF WEIGHT #1 /* Triggers after states #: 14 even though they appear after this state */ ~NumberOfTimesTalkedTo(0) ~ THEN BEGIN 0 // from: SAY #74262 /* ~Heh Hurh Heh! Oh brother Thurm, why not grace our ears with a ripping tale of the old days? Always a delight!~ */ IF ~~ THEN EXTERN ~_ZOMBIE~ 0 IF ~Global("X#BASSIL0","GLOBAL",0) InParty("ajantis") InMyArea("ajantis") !StateCheck("ajantis",CD_STATE_NOTVALID) !Global("X#AjantisBassilusQuest","GLOBAL",1) ~ THEN DO ~SetGlobal("X#BASSIL0","GLOBAL",1)~ EXTERN ~_AJANTJ~ 256 IF ~Global("X#BASSIL0","GLOBAL",0) InParty("ajantis") InMyArea("ajantis") !StateCheck("ajantis",CD_STATE_NOTVALID) Global("X#AjantisBassilusQuest","GLOBAL",1) ~ THEN DO ~SetGlobal("X#BASSIL0","GLOBAL",1)~ EXTERN ~_AJANTJ~ 257 IF ~Global("X#BASSIL0","GLOBAL",0) InParty("garrick") InMyArea("garrick") !StateCheck("garrick",CD_STATE_NOTVALID) ~ THEN DO ~SetGlobal("X#BASSIL0","GLOBAL",1)~ EXTERN ~_GARRIJ~ 187 IF ~Global("X#BASSIL0","GLOBAL",0) InParty("edwin") InMyArea("edwin") !StateCheck("edwin",CD_STATE_NOTVALID) ~ THEN DO ~SetGlobal("X#BASSIL0","GLOBAL",1)~ EXTERN ~_EDWINJ~ 169 END
The transitions are evaluated from the bottom up. So, first Edwin makes an interjection (if he's present), then it checks for Garrick and finally for Ajantis to make interjections. If none are present, it does the default transition, which is to go to ZOMBIE.DLG, state 0.
In a properly done interjection, the transitions above the interjection will be copied so that they can happen as well. This is normally done using the WeiDU command INTERJECT_COPY_TRANS. It creates a new interjection on the dialog state but also copies the transition list to the new dialog state. For example, note that Edwin's state 169 copies the transitions above it, so that Garrick and Ajantis can still make their interjections.
IF ~~ THEN BEGIN 169 // from: _BASSIL:0.4 SAY #103391 /* ~Brilliant. Brother Thurm's performance was just the thing I was longing for the entire day... , I urge you to execute this lot, before we have the chance to enjoy the sounds produced by the vocal cords of the undead.~ */ IF ~~ THEN EXTERN ~_ZOMBIE~ 0 IF ~ InParty("ajantis") InMyArea("ajantis") !StateCheck("ajantis",CD_STATE_NOTVALID) !Global("X#AjantisBassilusQuest","GLOBAL",1) ~ THEN EXTERN ~_AJANTJ~ 256 IF ~ InParty("ajantis") InMyArea("ajantis") !StateCheck("ajantis",CD_STATE_NOTVALID) Global("X#AjantisBassilusQuest","GLOBAL",1) ~ THEN EXTERN ~_AJANTJ~ 257 IF ~ InParty("garrick") InMyArea("garrick") !StateCheck("garrick",CD_STATE_NOTVALID) ~ THEN EXTERN ~_GARRIJ~ 187 END
@LiamEsler wrote a great tutorial on coding interjections.
Why are there situations that seem highly unlikely- such as Shar-teel commenting on meeting Montaron for the first time? I can't see a new player running over to her location to recruit her before going to FAI. It's not the only example of that, there are quite a few others. Are they meant to amuse the folks who rush to pick up favorite party members out of the normal order of things?
Because the author of that bit of dialog wanted to.
Thank you. I was mostly interested in what sort of unconventional behavior to expect (esp with those non-cannon party members), and I can never resist looking "under the hood".
I ended up installing SCS for the Shar-Teel/Viconia starting locations, which makes the early game interjections make more sense, anyway - considering how popular SCS once was (is?). However, I believe that installation of that script functionality may require starting a new game, alas.
Sometimes I see this text showing up on my log entries when I'm on Friendly Arm Inn: "A textbook double cross. Excellent. (The simian is trainable after all. Perhaps I can mold him to my own advantage.)" anyone know what is it? Searching the web I traced the text to this mod, but did not find out anything else about that. This just curiosity, no problem or stuff like that.
Edit: Just figured out more stuff about that. That text show up as the name of the bard in Friendly Arm Inn, IDK if thishappens on other inns. It's a small problem and prolly due to the recent reinstallation I did, something like that. I asked beacouse i thought it was a easter egg or something...
It's definitely an Edwin line of some sort. And if you're getting it as an NPC name, there's some memory/pointer corruption going on, likely from not doing a truly clean de-install last time. AFAIK the major dialogue changing mods update things like Dialog.tlk, by injecting lots of new content into this binary file, ergo - stuff is out of sync. Either your TLK file is expecting something to be where it's not, or vice versa, you have a mod expecting your TLK file to have specific content at a certain position. So it's reading Edwin dialogue as an NPC name.
This problem is likely going to cause more serious issues down the road... I'd look at fixing things now before you end up in the Nashkel Mines wiht the Kobolds all talking about their giant space hamsters.
Sometimes I see this text showing up on my log entries when I'm on Friendly Arm Inn: "A textbook double cross. Excellent. (The simian is trainable after all. Perhaps I can mold him to my own advantage.)" anyone know what is it? Searching the web I traced the text to this mod, but did not find out anything else about that. This just curiosity, no problem or stuff like that.
Edit: Just figured out more stuff about that. That text show up as the name of the bard in Friendly Arm Inn, IDK if thishappens on other inns. It's a small problem and prolly due to the recent reinstallation I did, something like that. I asked beacouse i thought it was a easter egg or something...
Did you load a saved game from before the re-installation? That's the most likely cause for this sort of problem.
The game stores all text (dialog, names, item descriptions, etc..) in a file called DIALOG.TLK. Items, creatures, dialog files, etc.. do not contain the strings themselves, they contain indexes to reference the string in the DIALOG.TLK file. When you install a mod, it adds strings to the DIALOG.TLK.
A saved game stores copies of the creature files for areas you've visited, including the string references for their names. So, if you load an old save game on a new installation, the indexes can easily be referencing the wrong string.
Yes that is the problem. You guys are right. I reinstalled wrongly which resulted in the errors. I tried unistalling the game and reinstalling the same mods using the same order but that did not solve the problem completely. But it seems more stable now. I don't know how to completely solve the problem, so I'm gonna go through with this save and see where that gets me. Hopefully it'll end up all right. That should teach me to treat the mods in this game better, I was underestimating the changes they made on the game files, treating as a simple dlc expansion install\uninstall. I should have remembered the rules of dealing with mods from Skyrim STEP guide. Thank you guys for all your help. Next time it'll be better, I'll make sure of it.
I've found that with heavily modded games you can never quite hit the same note twice in a row. With BGEE it was even weirder because they changed core folder structure a few times it seems, and of course BGEE has some major diffs from other versions in how the files themselves are structured internally.
Pity the poor modders, who now have to account for BG1 vanilla, Tutu, TotSC BG1, BGEE and a few other variants.
I keep a log of what mods I use, the install order, and the VERSION of both the mods and the game, noting any mid-game patching done as well (though mid game patching can be lethal in and of itself). The Weidu logs are really nice for this, but keeping backups of them is essential.
Yes that is the problem. You guys are right. I reinstalled wrongly which resulted in the errors. I tried unistalling the game and reinstalling the same mods using the same order but that did not solve the problem completely. But it seems more stable now. I don't know how to completely solve the problem, so I'm gonna go through with this save and see where that gets me. Hopefully it'll end up all right. That should teach me to treat the mods in this game better, I was underestimating the changes they made on the game files, treating as a simple dlc expansion install\uninstall. I should have remembered the rules of dealing with mods from Skyrim STEP guide. Thank you guys for all your help. Next time it'll be better, I'll make sure of it.
Unfortunately, if you have a save from before the re-install, there is no way to fix the string issue. It will only affect creatures in areas you visited. So, if your save is early in the game, the problems should be minimal.
* Kagain's Caravan Quest: Cross-mod compatibility with Thimberling's Skie mod.
What is Thimberling's Skie mod? - I've never heard of that mod and even Google can't help me (or I'm blind). Could someone (@AstroBryGuy perhaps?) kindly provide a link to the mod?
EDIT: Never mind, it appears as though the custom items get xferred to my PC, so all is well. Interesting!
Not sure what particular incompatibility causes this behavior, but I have both a scroll case and a potion bag (the deep convenience containers). If I have one on an NPC that I have temporarily dismissed to wait at their favorite inn, when I recruit them back, the container, and all its contents, are POOFED. I learned to be wary of disappearing inventory objects early on - even in vanilla games of other RPGS - so it did not surprise me too much.
I don't know if the custom item is from SCS or BGEE, but surely you are familiar with these containers and might be able to report on if it's a bug or some feature of EE that is a known annoyance.
I'm attempting to do Rasaad's quest line at the moment, and I'm at the point where I need to meet with Sorren at the Blade and Stars tavern. Except Sorren isn't there, but several NPCs from BG1NPC are. (I believe they're for Tiax's quest.)
In any case, I was wondering if the BG1NPC's are somehow interfering with Sorren spawning. I've reloaded the game and tried starting the quest over again, but Sorren never seems to want to spawn. (The global RASAAD_PLOT is also listed as 3 for me, which I believe is the right value for Sorren to show up.)
Are you on 2nd floor of the Blade and Stars when you check the variable? Forgot to mention that you need to be there to check this variable since it's a local variable for the area.
I'd also be interested to see your AR0106.BCS from your override directory. I can't think of why the script block isn't firing. I don't think it would be the Tiax Quest (it is added to the end of AR0106.BCS, so it shouldn't interfere).
Hmmmm... I can't think of any other reason that Sorrem is not spawning. The script is firing (otherwise Karris wouldn't be there), and your AR0106.BCS works on my test install. Are you sure RASAAD_PLOT is 3?
EDIT: One other idea. Move AR0106.BCS out of your override directory (don't delete it, just temporarily move it to the desktop or something). Then, re-open the game and see if Sorrem appears.
I moved the AR0106.BCS out, loaded up my game, and went to the tavern. Sorrem still wasn't there; the only two NPCs on the second floor were Maple Willow Aspen and one Commoner.
This is what RASAAD_PLOT looks like in EE Keeper. I haven't checked the value in-game, but I assume EE Keeper is detecting it correctly.
Thank you again, too, for helping me! I apologize if my bug had nothing to do with BG1NPC and if I made you waste your time for nothing.
I'm at a loss, but if Sorrem isn't appearing with the modified script removed, then, yeah, something else is wrong. Sorry I couldn't help figure it out.
Comments
If you open a dialog in NearInfinity or DLTCEP, you'll see that each line in the dialog file is a "state". The state # is a just an integer index, starting at 0.
AJANTP, State 0: "No doubt you have returned to your senses and wish to continue our glorious fight against evil! A wise and fortuitous decision."
AJANTP, State 1: "As it should be! Let us go!"
etc..
http://www.weidu.org/~thebigg/README-WeiDU.html#sec4
What happens when there is a conflict - say, 2 interjections for the same NPC on the same "State" #? Or more simply, if 2 diff party members could both say something to an NPC, who "wins"?
Why are there situations that seem highly unlikely- such as Shar-teel commenting on meeting Montaron for the first time? I can't see a new player running over to her location to recruit her before going to FAI. It's not the only example of that, there are quite a few others. Are they meant to amuse the folks who rush to pick up favorite party members out of the normal order of things?
In a properly done interjection, the transitions above the interjection will be copied so that they can happen as well. This is normally done using the WeiDU command INTERJECT_COPY_TRANS. It creates a new interjection on the dialog state but also copies the transition list to the new dialog state. For example, note that Edwin's state 169 copies the transitions above it, so that Garrick and Ajantis can still make their interjections. @LiamEsler wrote a great tutorial on coding interjections.
http://www.shsforums.net/topic/36995-coding-interjections/ Because the author of that bit of dialog wanted to.
I ended up installing SCS for the Shar-Teel/Viconia starting locations, which makes the early game interjections make more sense, anyway - considering how popular SCS once was (is?). However, I believe that installation of that script functionality may require starting a new game, alas.
"A textbook double cross. Excellent. (The simian is trainable after all. Perhaps I can mold him to my own advantage.)" anyone know what is it?
Searching the web I traced the text to this mod, but did not find out anything else about that.
This just curiosity, no problem or stuff like that.
Edit: Just figured out more stuff about that. That text show up as the name of the bard in Friendly Arm Inn, IDK if thishappens on other inns. It's a small problem and prolly due to the recent reinstallation I did, something like that. I asked beacouse i thought it was a easter egg or something...
This problem is likely going to cause more serious issues down the road... I'd look at fixing things now before you end up in the Nashkel Mines wiht the Kobolds all talking about their giant space hamsters.
The game stores all text (dialog, names, item descriptions, etc..) in a file called DIALOG.TLK. Items, creatures, dialog files, etc.. do not contain the strings themselves, they contain indexes to reference the string in the DIALOG.TLK file. When you install a mod, it adds strings to the DIALOG.TLK.
A saved game stores copies of the creature files for areas you've visited, including the string references for their names. So, if you load an old save game on a new installation, the indexes can easily be referencing the wrong string.
That should teach me to treat the mods in this game better, I was underestimating the changes they made on the game files, treating as a simple dlc expansion install\uninstall. I should have remembered the rules of dealing with mods from Skyrim STEP guide. Thank you guys for all your help. Next time it'll be better, I'll make sure of it.
Pity the poor modders, who now have to account for BG1 vanilla, Tutu, TotSC BG1, BGEE and a few other variants.
I keep a log of what mods I use, the install order, and the VERSION of both the mods and the game, noting any mid-game patching done as well (though mid game patching can be lethal in and of itself). The Weidu logs are really nice for this, but keeping backups of them is essential.
It's in development, AFAIK. See here for more information.
http://gibberlings3.net/forums/index.php?showtopic=18915&p=233997
I'm attempting to do Rasaad's quest line at the moment, and I'm at the point where I need to meet with Sorren at the Blade and Stars tavern. Except Sorren isn't there, but several NPCs from BG1NPC are. (I believe they're for Tiax's quest.)
In any case, I was wondering if the BG1NPC's are somehow interfering with Sorren spawning. I've reloaded the game and tried starting the quest over again, but Sorren never seems to want to spawn. (The global RASAAD_PLOT is also listed as 3 for me, which I believe is the right value for Sorren to show up.)
Any help would be appreciated. Thanks!
What is the value of GetGlobal("SORREM_SPAWN","AR0106")? And is Rasaad in your party and alive?
lua: call expression not a function
Active Stack:
Active Stack:
That's the message I receive when I enter GetGlobal("SORREM_SPAWN","AR0106") in the console. And yes, Rasaad is in my party and alive.
Edit: Nevermind, I was entering the command incorrectly, I think. (Sorry, I'm pretty new to this.)
CLUAConsole:GetGlobal("SORREM_SPAWN","AR0106")
After typing that instead, I get this message: Global: SORREM_SPAWN AR0106Does not exist
C:CreateCreature("RSSORREM")
C:SetGlobal("SORREM_SPAWN","AR0106",1)
I'd also be interested to see your AR0106.BCS from your override directory. I can't think of why the script block isn't firing. I don't think it would be the Tiax Quest (it is added to the end of AR0106.BCS, so it shouldn't interfere).
EDIT: One other idea. Move AR0106.BCS out of your override directory (don't delete it, just temporarily move it to the desktop or something). Then, re-open the game and see if Sorrem appears.
This is what RASAAD_PLOT looks like in EE Keeper. I haven't checked the value in-game, but I assume EE Keeper is detecting it correctly.
Thank you again, too, for helping me! I apologize if my bug had nothing to do with BG1NPC and if I made you waste your time for nothing.