You can remove her from the party and it shouldn't affect the romance. Unlike *some* Bioware NPC's, Ishlilka isn't so overbearing she can't handle being left behind for a bit
Already in development! Still no clear deadline though. Ishlilka's BG1/SOD portion took about 6 months to make, but I was learning everything from scratch at the time. Now that I have the basics more or less down it will be a smoother process.
Don't think so @Quester, but it's big on my to-do list. I think i'm only a few changes away from EET compatibility as is.
@WarChiefZeke First, thank you for you excellent mod, just completed BG1 with Ishlika (v1.3) in party without issues. Then went directly to SoD campaign, but unfortunately hit a blocker where Ishilka's quest dialog keeps repeating indefinitely. Out of curiosity I looked into code, so I have some findings attached.
DISCLAIMER: I am no modder, just an ex-programmer who still cannot resist looking into code Hope these findings are of some use to sorting this out.
I am pretty sure about the culprit though since commenting out the latter block in spoiler breaks the endless loop and things seem to work until I hit another looping dialog. But since that might be my "correction's" doing , I will not regard that as a defect yet. I will post details if that problem persists after "official" correction.
//// This triggers Ishilika's SoD guest and sets IshyTalk=7, IshyQuest=7. // From Dialogues/bdishy.d 095 IF ~Global("IshyTalk","GLOBAL",6)~ sodishquest 096 SAY ~, while we are heading North, we need to search for another rogue mage who has evaded capture by the Spears.~ 097 ++ ~You said that this person was working for the Crusade, right? We are bound to get close to them regardless.~ DO ~IncrementGlobal("IshyTalk","GLOBAL",1) SetGlobal("IshyQuest","GLOBAL",7) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodishquest1 098 ++ ~Ah, yes. Who are we to slaughter next? I hope this one is more powerful.~ DO ~IncrementGlobal("IshyTalk","GLOBAL",1) SetGlobal("IshyQuest","GLOBAL",7) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodishquest2 099 ++ ~I don't recall promising aid in this matter.~ DO ~IncrementGlobal("IshyTalk","GLOBAL",1) SetGlobal("IshyQuest","GLOBAL",7) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodishquest3 100 IF ~~ THEN EXIT 101 END
//// Setting IshyTalk=7 above triggers this block resulting endless looping of IshyTalk 6. //// Since Falterion is not yet dead it just keeps hammering between IshyTalk 6 and 7. // From Scripts/ishyscrp.baf 270 IF 271 Global("endofbg1","GLOBAL",1) 272 Global("IshyTalk","GLOBAL",7) 273 !Dead("Falteri") 274 THEN RESPONSE #100 275 SetGlobal("IshyTalk","GLOBAL",6) 276 END
Sounds like a bona fide bug. Life has been keeping me busy lately but i'll look into it and hopefully squash it within the next few days. Thanks for highlighting the problem area since that saves me lots of time.
@WarChiefZeke: Thank you for speedy fix. I tested it and now quest dialogue does not loop anymore, also variables seem to be right (at least to my understanding). But unfortunately I have now hit another infinite dialogue.
As previously, I have attached some observations here.
Scripts/ishyscrp.baf: lines 193-211
//// Everything is fine while IshyTalk=7, but as soon as timer expires and increments IshyTalk to 8, I have another looping dialogue.
IF
InParty(Myself)
RealGlobalTimerExpired("IshyTimer","GLOBAL")
See(Player1)
!StateCheck(Player1,CD_STATE_NOTVALID) // CamDawg's condition, means that everyone can talk and is not charmed, confused, silenced and so on
!StateCheck(Myself,CD_STATE_NOTVALID)
CombatCounter(0) // These two lines mean "no battle"
!See([ENEMY])
!AreaType(DUNGEON) // No talks in dungeons, right?
OR(5) // Be careful here: 15 must mean EXACTLY 15 lines included in the condition. The 16th line will not be included!
Global("IshyTalk","GLOBAL",1)
Global("IshyTalk","GLOBAL",3)
Global("IshyTalk","GLOBAL",5)
Global("IshyTalk","GLOBAL",7)
Global("IshyTalk","GLOBAL",9)
THEN
RESPONSE #100
IncrementGlobal("IshyTalk","GLOBAL",1)
END
Dialogues/bdishy.d: lines 157-163
//// This is IshyTalk 8, but it is not executed because I have not yet killed Falterion.
IF ~Global("IshyTalk","GLOBAL",8)
Dead("Falteri")~ THEN BEGIN sodthesixthishytalk
SAY ~Did I ever get a chance to thank you for your help back there? That mage was powerful. Even with a squad of Fists I doubt I could have taken him.~
++ ~He said something of "destroying his comrades"? Who was he referring to?~ DO ~IncrementGlobal("IshyTalk","GLOBAL",3) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodthesixthishytalk1
++ ~I barely broke a sweat against such a pitiful caster.~ DO ~IncrementGlobal("IshyTalk","GLOBAL",3) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodthesixthishytalk2
++ ~Bother me no further, i've enemies to crush.~ DO ~IncrementGlobal("IshyTalk","GLOBAL",3) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodthesixthishytalk3
END
Dialogues/bdishy.d: lines 374-398
//// Instead of IshyTalk 8, PID now appears and keeps repeating endlessly.
IF ~True()~ THEN BEGIN TalonDialogue
SAY ~Hm? ...Oh, it's you.~ [I!oh]
IF ~Global("IshyQuest","GLOBAL",7)~ THEN REPLY ~Can you tell me anything else about Falterion?~ + IshJpid
IF ~OR(2) Global("Chapter","GLOBAL",8) Global("Chapter","GLOBAL",9)~ THEN REPLY ~What do you think about Caelar Argent?~ + IshCpid
IF ~OR(2) Global("Chapter","GLOBAL",10) Global("Chapter","GLOBAL",11)~ THEN REPLY ~What do you think about Caelar Argent?~ + IshCpid2
IF ~Dead("Falteri") Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~What will you do now?~ + IshJpid2
IF ~Dead("Falteri") !Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~What will you do now?~ + IshJpid3
IF ~Global("Chapter","GLOBAL",7)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp7pid
IF ~RandomNum(5,1)~ THEN REPLY ~Anything on your mind?~ + ishrand1
IF ~RandomNum(5,2) !Global("Chapter","GLOBAL",7)~ THEN REPLY ~Anything on your mind?~ + ishrand2
IF ~RandomNum(5,3)~ THEN REPLY ~Anything on your mind?~ + ishrand3
IF ~RandomNum(5,4)~ THEN REPLY ~Anything on your mind?~ + ishrand4
IF ~RandomNum(5,5)~ THEN REPLY ~Anything on your mind?~ + ishrand5
IF ~RandomNum(4,1) Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~Anything on your mind, my dear?~ + ishrpid1
IF ~RandomNum(4,2) Global("IshyRomanceActive","GLOBAL",2) AreaType(DUNGEON)~ THEN REPLY ~Anything on your mind, my dear?~ + ishrpid2
IF ~RandomNum(4,3) Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~Anything on your mind, my dear?~ + ishrpid3
IF ~RandomNum(4,4) Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~Anything on your mind, my dear?~ + ishrpid4
IF ~!Global("Chapter","GLOBAL",7)~ THEN REPLY ~How do you feel about our allies?~ + ishpapid
IF ~Global("Chapter","GLOBAL",8)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp8pid
IF ~Global("Chapter","GLOBAL",9)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp9pid
IF ~Global("Chapter","GLOBAL",10)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp10pid
IF ~Global("Chapter","GLOBAL",11)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp11pid
IF ~Global("Chapter","GLOBAL",12) !Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp12pid
IF ~Global("Chapter","GLOBAL",12) Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp13pid
END
Scripts/ishyscrp.baf: lines 280-286
//// IshyTalk is also set to 8 here. Is there a possibility that this would conflict with the previous timer triggered transition?
IF
Dead("Falteri")
THEN RESPONSE #100
SetGlobal("IshyTalk","GLOBAL",8)
StartDialogueNoSet(Player1)
SetGlobal("IshyQuest","GLOBAL",9)
END
This is (probably) an unrelated error in code. I found it accidentally while browsing the code. Scripts/ishyscrp.baf: lines 234-253
//// There is OR(5) used below, but there are only four conditions to check.
//// I fixed this myself, but it did not fix endless looping. I do not know what kind of problems (if any) this causes.
////////////////////////////////
/////////bgEE timer ////////////
//////////////////////////////////
IF
InParty(Myself)
See(Player1)
!StateCheck(Player1,CD_STATE_NOTVALID)
!StateCheck(Myself,CD_STATE_NOTVALID)
!AreaType(DUNGEON)
CombatCounter(0)
!See([ENEMY])
OR(5) // Again, OR(5) means that fifteen lines below are a part of OR() command
Global("IshyTalk","GLOBAL",2)
Global("IshyTalk","GLOBAL",4)
Global("IshyTalk","GLOBAL",6)
Global("IshyTalk","GLOBAL",8)
THEN
RESPONSE #100
StartDialogueNoSet(Player1)
END
Inexecusably late on this, but all bugs brought to my attention have been fixed. We'll call this 1.4.
I also feel I should mention the BG2 portion of Ishlilka is pretty far into development at this point. Still hung up on a decision or two, still things to code, still refuse to make a deadline. But progress is being made.
Edit: Put the download on the front page, where it should be, also gave the code one more look and scrapped one more thing.
Double Edit: I also released the BG EE only version.
Had an interesting bug on my current playthrough. Accepted Ishlika into my party, but for some reason her starting spear and javelin weren't counted by the game as weapons. THey couldn't be equipped into any slot. Will post WeiDu log.
Odd since nothing at all has been changed there so im expecting some sort of conflict but can't say more atm until im home and can give it a good look.
Found a small bug. During one of Ishlika's early talks where she asks you about Gorion, one of your possible replys is (paraphrased) Gorion was a great sage I wouldn't be the man I am today without him. Even when playing as a female charname you still refer to yourself as "The man I am today".
Looking at the comments history, the replies to said comments, a particular thread, and the removal timeline gives a good indication. Ish is still out there , just not here.
First, let me apologize for suddenly removing the mod without warning, although I see you've found an alternate download I totally forgot I posted.
Although it is true I am on hiatus from the community, I never intended for this mod to go to waste. Ishlilka is a character I very much enjoy writing for and whose family enjoys an extensive history in my PnP campaigns.
But, I was and am unsatisfied by the final product, so I have been slowly but surely overhauling lots of the conversation options. Not removing, just adding. I think I was just too excited to get it done, and a lot of the details about Ishlilka's life and family were improperly communicated, or not at all. But whatever.
It amuses me that I released the alpha build almost a YEAR ago, and i'm still trying to improve upon this.
Anyway, if there was ever a time for the most constructive criticism that you have, that time is now.
And consider this my call to all modders who want to do cross mod content. I'd love to make Ishy part of that!
it's nice to hear it was only removed because you are reworking on it not because you were mad at the community and scraped the project. whitch is what i assumed happened.
Comments
Don't think so @Quester, but it's big on my to-do list. I think i'm only a few changes away from EET compatibility as is.
DISCLAIMER: I am no modder, just an ex-programmer who still cannot resist looking into code
Hope these findings are of some use to sorting this out.
I am pretty sure about the culprit though since commenting out the latter block in spoiler breaks the endless loop and things seem to work until I hit another looping dialog. But since that might be my "correction's" doing , I will not regard that as a defect yet. I will post details if that problem persists after "official" correction.
// From Dialogues/bdishy.d
095 IF ~Global("IshyTalk","GLOBAL",6)~ sodishquest
096 SAY ~, while we are heading North, we need to search for another rogue mage who has evaded capture by the Spears.~
097 ++ ~You said that this person was working for the Crusade, right? We are bound to get close to them regardless.~ DO ~IncrementGlobal("IshyTalk","GLOBAL",1) SetGlobal("IshyQuest","GLOBAL",7) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodishquest1
098 ++ ~Ah, yes. Who are we to slaughter next? I hope this one is more powerful.~ DO ~IncrementGlobal("IshyTalk","GLOBAL",1) SetGlobal("IshyQuest","GLOBAL",7) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodishquest2
099 ++ ~I don't recall promising aid in this matter.~ DO ~IncrementGlobal("IshyTalk","GLOBAL",1) SetGlobal("IshyQuest","GLOBAL",7) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodishquest3
100 IF ~~ THEN EXIT
101 END
//// Setting IshyTalk=7 above triggers this block resulting endless looping of IshyTalk 6.
//// Since Falterion is not yet dead it just keeps hammering between IshyTalk 6 and 7.
// From Scripts/ishyscrp.baf
270 IF
271 Global("endofbg1","GLOBAL",1)
272 Global("IshyTalk","GLOBAL",7)
273 !Dead("Falteri")
274 THEN RESPONSE #100
275 SetGlobal("IshyTalk","GLOBAL",6)
276 END
As previously, I have attached some observations here.
Scripts/ishyscrp.baf: lines 193-211
//// Everything is fine while IshyTalk=7, but as soon as timer expires and increments IshyTalk to 8, I have another looping dialogue. IF InParty(Myself) RealGlobalTimerExpired("IshyTimer","GLOBAL") See(Player1) !StateCheck(Player1,CD_STATE_NOTVALID) // CamDawg's condition, means that everyone can talk and is not charmed, confused, silenced and so on !StateCheck(Myself,CD_STATE_NOTVALID) CombatCounter(0) // These two lines mean "no battle" !See([ENEMY]) !AreaType(DUNGEON) // No talks in dungeons, right? OR(5) // Be careful here: 15 must mean EXACTLY 15 lines included in the condition. The 16th line will not be included! Global("IshyTalk","GLOBAL",1) Global("IshyTalk","GLOBAL",3) Global("IshyTalk","GLOBAL",5) Global("IshyTalk","GLOBAL",7) Global("IshyTalk","GLOBAL",9) THEN RESPONSE #100 IncrementGlobal("IshyTalk","GLOBAL",1) END
Dialogues/bdishy.d: lines 157-163
//// This is IshyTalk 8, but it is not executed because I have not yet killed Falterion. IF ~Global("IshyTalk","GLOBAL",8) Dead("Falteri")~ THEN BEGIN sodthesixthishytalk SAY ~Did I ever get a chance to thank you for your help back there? That mage was powerful. Even with a squad of Fists I doubt I could have taken him.~ ++ ~He said something of "destroying his comrades"? Who was he referring to?~ DO ~IncrementGlobal("IshyTalk","GLOBAL",3) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodthesixthishytalk1 ++ ~I barely broke a sweat against such a pitiful caster.~ DO ~IncrementGlobal("IshyTalk","GLOBAL",3) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodthesixthishytalk2 ++ ~Bother me no further, i've enemies to crush.~ DO ~IncrementGlobal("IshyTalk","GLOBAL",3) RealSetGlobalTimer("IshyTimer","GLOBAL",5600)~ + sodthesixthishytalk3 END
Dialogues/bdishy.d: lines 374-398
//// Instead of IshyTalk 8, PID now appears and keeps repeating endlessly. IF ~True()~ THEN BEGIN TalonDialogue SAY ~Hm? ...Oh, it's you.~ [I!oh] IF ~Global("IshyQuest","GLOBAL",7)~ THEN REPLY ~Can you tell me anything else about Falterion?~ + IshJpid IF ~OR(2) Global("Chapter","GLOBAL",8) Global("Chapter","GLOBAL",9)~ THEN REPLY ~What do you think about Caelar Argent?~ + IshCpid IF ~OR(2) Global("Chapter","GLOBAL",10) Global("Chapter","GLOBAL",11)~ THEN REPLY ~What do you think about Caelar Argent?~ + IshCpid2 IF ~Dead("Falteri") Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~What will you do now?~ + IshJpid2 IF ~Dead("Falteri") !Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~What will you do now?~ + IshJpid3 IF ~Global("Chapter","GLOBAL",7)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp7pid IF ~RandomNum(5,1)~ THEN REPLY ~Anything on your mind?~ + ishrand1 IF ~RandomNum(5,2) !Global("Chapter","GLOBAL",7)~ THEN REPLY ~Anything on your mind?~ + ishrand2 IF ~RandomNum(5,3)~ THEN REPLY ~Anything on your mind?~ + ishrand3 IF ~RandomNum(5,4)~ THEN REPLY ~Anything on your mind?~ + ishrand4 IF ~RandomNum(5,5)~ THEN REPLY ~Anything on your mind?~ + ishrand5 IF ~RandomNum(4,1) Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~Anything on your mind, my dear?~ + ishrpid1 IF ~RandomNum(4,2) Global("IshyRomanceActive","GLOBAL",2) AreaType(DUNGEON)~ THEN REPLY ~Anything on your mind, my dear?~ + ishrpid2 IF ~RandomNum(4,3) Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~Anything on your mind, my dear?~ + ishrpid3 IF ~RandomNum(4,4) Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~Anything on your mind, my dear?~ + ishrpid4 IF ~!Global("Chapter","GLOBAL",7)~ THEN REPLY ~How do you feel about our allies?~ + ishpapid IF ~Global("Chapter","GLOBAL",8)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp8pid IF ~Global("Chapter","GLOBAL",9)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp9pid IF ~Global("Chapter","GLOBAL",10)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp10pid IF ~Global("Chapter","GLOBAL",11)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp11pid IF ~Global("Chapter","GLOBAL",12) !Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp12pid IF ~Global("Chapter","GLOBAL",12) Global("IshyRomanceActive","GLOBAL",2)~ THEN REPLY ~Any thoughts on our current situation?~ + ishchp13pid END
Scripts/ishyscrp.baf: lines 280-286
//// IshyTalk is also set to 8 here. Is there a possibility that this would conflict with the previous timer triggered transition? IF Dead("Falteri") THEN RESPONSE #100 SetGlobal("IshyTalk","GLOBAL",8) StartDialogueNoSet(Player1) SetGlobal("IshyQuest","GLOBAL",9) END
This is (probably) an unrelated error in code. I found it accidentally while browsing the code.
Scripts/ishyscrp.baf: lines 234-253
//// There is OR(5) used below, but there are only four conditions to check. //// I fixed this myself, but it did not fix endless looping. I do not know what kind of problems (if any) this causes. //////////////////////////////// /////////bgEE timer //////////// ////////////////////////////////// IF InParty(Myself) See(Player1) !StateCheck(Player1,CD_STATE_NOTVALID) !StateCheck(Myself,CD_STATE_NOTVALID) !AreaType(DUNGEON) CombatCounter(0) !See([ENEMY]) OR(5) // Again, OR(5) means that fifteen lines below are a part of OR() command Global("IshyTalk","GLOBAL",2) Global("IshyTalk","GLOBAL",4) Global("IshyTalk","GLOBAL",6) Global("IshyTalk","GLOBAL",8) THEN RESPONSE #100 StartDialogueNoSet(Player1) END
Thanks again, and ill give this new issue a good fix ASAP.
I also feel I should mention the BG2 portion of Ishlilka is pretty far into development at this point. Still hung up on a decision or two, still things to code, still refuse to make a deadline. But progress is being made.
Edit: Put the download on the front page, where it should be, also gave the code one more look and scrapped one more thing.
Double Edit: I also released the BG EE only version.
where can i find/fix this?
http://www.sorcerers.net/community/resources/ishlilka-for-bg1-sod-1-3.97/update?update=110
First, let me apologize for suddenly removing the mod without warning, although I see you've found an alternate download I totally forgot I posted.
Although it is true I am on hiatus from the community, I never intended for this mod to go to waste. Ishlilka is a character I very much enjoy writing for and whose family enjoys an extensive history in my PnP campaigns.
But, I was and am unsatisfied by the final product, so I have been slowly but surely overhauling lots of the conversation options. Not removing, just adding. I think I was just too excited to get it done, and a lot of the details about Ishlilka's life and family were improperly communicated, or not at all. But whatever.
It amuses me that I released the alpha build almost a YEAR ago, and i'm still trying to improve upon this.
Anyway, if there was ever a time for the most constructive criticism that you have, that time is now.
And consider this my call to all modders who want to do cross mod content. I'd love to make Ishy part of that!