Jump to content

Happines and Breaking Points (How to in EET)


Roxanne

Recommended Posts

I assume that this erroneous line in DPlayer2.bcs was added by EET???

The solution found after discussion and test is posted in entry #30 below

http://gibberlings3.net/forums/index.php?showtopic=27806&page=2&do=findComment&comment=242377

 

 

IF
Global("ENDOFBG1","GLOBAL",2) >>>This restriction should not be there, otherwise NPCs leave party during BG1 because of reputation
BreakingPoint()
!CharName("Shauhana",Myself)
!CharName("Sandrah",Myself)
!CharName("Jen'lig",Myself)
!CharName("Vynd",Myself)
!CharName("Gavin",Myself)
!Name("Wilson",Myself)
THEN
RESPONSE #100
SetGlobal("IHATEYOUALL","LOCALS",1)
SetLeavePartyDialogFile()
Wait(1)
StartDialogueNoSet(Player1)
ChangeAIScript("",DEFAULT)
SetGlobal("IHATEYOUALL","LOCALS",0)
END

Link to post
I assume that this erroneous line in DPlayer2.bcs was added by EET???

what you have quoted is NPC rection in vanilla BG2:EE. This is how it works in vanilla BG:EE:

IF
  !CharName("Imoen",Myself)
  BreakingPoint()
THEN
  RESPONSE #100
    VerbalConstant(Myself,UNHAPPY_BREAKING_POINT)
    Wait(3)
    EscapeArea()
END

Both codes are in EET and ENDOFBG1 variable is used to detect which block should be used. Do BG1 NPCs even have Breaking Point dialogue for this if you didn't install BG1 NPC Project? Do BG:EE mod authors actually use IHATEYOUALL variable? I will check how Ascension64 added it in BGT, but the current implementation is true to vanilla games, so it's not a bug per se.

Link to post

 

I assume that this erroneous line in DPlayer2.bcs was added by EET???

what you have quoted is NPC rection in vanilla BG2:EE. This is how it works in vanilla BG:EE:

IF
  !CharName("Imoen",Myself)
  BreakingPoint()
THEN
  RESPONSE #100
    VerbalConstant(Myself,UNHAPPY_BREAKING_POINT)
    Wait(3)
    EscapeArea()
END

Both codes are in EET and ENDOFBG1 variable is used to detect which block should be used. Do BG1 NPCs even have Breaking Point dialogue for this if you didn't install BG1 NPC Project? Do BG:EE mod authors actually use IHATEYOUALL variable? I will check how Ascension64 added it in BGT, but the current implementation is true to vanilla games, so it's not a bug per se.

 

After further research, I admit you are right - mods using the old way to prevent NPCs from leaving do not work, I removed the restriction but it helps not.

I will try appending to that other block for BG1 - problem is that one uses CharName the other Name and both contain BtreakingPoint, but I will try to find a solution.

 

IF

GlobalLT("ENDOFBG1","GLOBAL",2)

!CharName("Imoen2",Myself) I wonder what that means, Imoen2 Charname is Imoen??

BreakingPoint()

!CharName("Shauhana",Myself)

!CharName("Sandrah",Myself)

!CharName("Jen'lig",Myself)

!CharName("Vynd",Myself)

!CharName("Gavin",Myself)

THEN

RESPONSE #100

VerbalConstant(Myself,UNHAPPY_BREAKING_POINT)

Wait(3)

EscapeArea()

END

 

As it is now, something forces my lawful evil NPC out of the game when reputation crosses a threshold (too good) - which was not the case in BGT and is not compliant with her nature (a Githyanki has no idea about reputation according to the values of the Prime, she evaluates the virtue of the PC according to different standards)

Link to post

 

 

I assume that this erroneous line in DPlayer2.bcs was added by EET???

what you have quoted is NPC rection in vanilla BG2:EE. This is how it works in vanilla BG:EE:

IF
  !CharName("Imoen",Myself)
  BreakingPoint()
THEN
  RESPONSE #100
    VerbalConstant(Myself,UNHAPPY_BREAKING_POINT)
    Wait(3)
    EscapeArea()
END

Both codes are in EET and ENDOFBG1 variable is used to detect which block should be used. Do BG1 NPCs even have Breaking Point dialogue for this if you didn't install BG1 NPC Project? Do BG:EE mod authors actually use IHATEYOUALL variable? I will check how Ascension64 added it in BGT, but the current implementation is true to vanilla games, so it's not a bug per se.

 

After further research, I admit you are right - mods using the old way to prevent NPCs from leaving do not work, I removed the restriction but it helps not.

I will try appending to that other block for BG1 - problem is that one uses CharName the other Name and both contain BtreakingPoint, but I will try to find a solution.

 

IF

GlobalLT("ENDOFBG1","GLOBAL",2)

!CharName("Imoen2",Myself) I wonder what that means, Imoen2 Charname is Imoen??

BreakingPoint()

!CharName("Shauhana",Myself)

!CharName("Sandrah",Myself)

!CharName("Jen'lig",Myself)

!CharName("Vynd",Myself)

!CharName("Gavin",Myself)

THEN

RESPONSE #100

VerbalConstant(Myself,UNHAPPY_BREAKING_POINT)

Wait(3)

EscapeArea()

END

 

As it is now, something forces my lawful evil NPC out of the game when reputation crosses a threshold (too good) - which was not the case in BGT and is not compliant with her nature (a Githyanki has no idea about reputation according to the values of the Prime, she evaluates the virtue of the PC according to different standards)

 

I did some further research on the issue and it appears that none of the scripts assigned to the NPC leaving on reputation change nor Baldur.bcs is causing the leaving.

Something has changed between BG2 and BG2EE in this area that makes the old methods to keep party members regardless of reputation invalid.

Also made the opposite check for good NPC - everybody (including Imoen) leaves party on low reputation. The only NPC immune to everything is Jaheira, who is always in balance. (NPCs in this test were Imoen, Khalid and Sandrah ==> Khalid left without taking Jaheira with him as this is only done by his parting dialogue but those dialogues do not happen in this case - leaving NPCs just vanish without a word)

 

This issue may effect other mod's NPCs as well.

 

Until more information becomes available I will use a local fix to always keep my rep out of the extreme high or low.

Link to post

when it comes to Imoen, she left because there is a bug in that code, indeed. It should be !CharName("Imoen",Myself) instead of Imoen2 (this is character name, not death variable). After you change it, Imoen no longer leaves the party. Thanks for report.

 

If you add !CharName("Sandrah") or !Name("DV_of_Sandrah") trigger than she would stay during BG1 regardless of reputation (unless Beamdog hardcoded it, but that wouldn't make any sense).

Link to post

when it comes to Imoen, she left because there is a bug in that code, indeed. It should be !CharName("Imoen",Myself) instead of Imoen2 (this is character name, not death varible). After you change it, Imoen no longer leaves the party. So if you add Sandrah CharName (or even better use death variable with Name("DV") trigger) she should not leave during BG1. Thanks for report.

This is what I was thinking as well - initially -

but !CharName("Sandrah",Myself) is in that code as well. And furthermore according to stutterbug tool that shows all code blocks triggered during the event, this code was not even running????

Link to post

when it comes to Imoen, she left because there is a bug in that code, indeed. It should be !CharName("Imoen",Myself) instead of Imoen2 (this is character name, not death varible). After you change it, Imoen no longer leaves the party. So if you add Sandrah !CharName (or even better use death variable with !Name("DV") trigger) she should not leave during BG1. Thanks for report.

This is what I was thinking as well - initially -

but !CharName("Sandrah",Myself) is in that code as well. And furthermore according to stutterbug tool that shows all code blocks triggered during the event, this code was not even running? ???

 

huh, unexpected. I will test it and let you know the results. Just to be sure check in the save if she had "DPLAYER2.BCS" script assigned. Maybe she had "DPLAYER3" instead?

Link to post

 

when it comes to Imoen, she left because there is a bug in that code, indeed. It should be !CharName("Imoen",Myself) instead of Imoen2 (this is character name, not death varible). After you change it, Imoen no longer leaves the party. So if you add Sandrah !CharName (or even better use death variable with !Name("DV") trigger) she should not leave during BG1. Thanks for report.

This is what I was thinking as well - initially -

but !CharName("Sandrah",Myself) is in that code as well. And furthermore according to stutterbug tool that shows all code blocks triggered during the event, this code was not even running? ???

 

huh, unexpected. I will test it and let you know the results. Just to be sure check in the save if she had "DPLAYER2.BCS" script assigned. Maybe she had "DPLAYER3" instead?

 

All NPCs in party have DPlayer2 assigned.

I did another test with changing everybody in that block to !Name(DV) but the effect is the same - and it is the same for good ones on low rep or the evil one on high rep - I am afraid the issue is somewhere else, not in this script.

Link to post

Erhm, it's probably easier to assign the dplayer2.bcs'es to everyone than have dplayer1,..2,..3,..4,..5,..6,.. .. ..7,..8,..9,..0,..a,..b,..c,..d,..e and ..f ..depending on what party slot your currently stand on top of. The intention is surely good.

BUT it also needs to be known that this is the fact. So you don't go and kill everyone .. just cause you don't like the one top hatted one.

Link to post

looks like Beamdog for some bizzare reason hardcoded it, see these 2 topics:

http://gibberlings3.net/forums/index.php?showtopic=26233

http://gibberlings3.net/forums/index.php?showtopic=26054

 

It's got to be engine bug, so probably will be fixed, if someone already reported it. Can't find any reports on Beamdog forums though.

Those two reports exactly match my own observations. (And Vynd from the first post was one I expected to have trouble as well).

 

So no use to further chase ghosts here - until it is fixed I will use my workaround (not let drop rep below 4 not raise above 17). Hope there will be a solution until EET really comes out.

Link to post

Erhm, it's probably easier to assign the dplayer2.bcs'es to everyone than have dplayer1,..2,..3,..4,..5,..6,.. .. ..7,..8,..9,..0,..a,..b,..c,..d,..e and ..f ..depending on what party slot your currently stand on top of. The intention is surely good.

BUT it also needs to be known that this is the fact. So you don't go and kill everyone .. just cause you don't like the one top hatted one.

That does not solve the issue of those like Vynd, according to race he is evil and will leave on HIGH reputation, but the guy does not care what surfacers think about reputation but takes PC as he/she acts. Same for Jen'lig, evil because Githyanki but does not care what some bigot citizens from the Prime think about her PC as long as he/she is efficient against the common foe. Probably EE's own Rasaad should be one of those, at least if he were true to his background???

Link to post

I can confirm that it is hardcoded. Replaced whole DPLAYER2.BCS with this code:

IF
  !InParty(Myself)
  OR(2)
    BreakingPoint()
    !HappinessGT(Myself,-299)
THEN
  RESPONSE #100
    DisplayStringHead(Myself,1)
    JoinParty()
END

Imoen, Jaheira and Khalid were automatically leaving the team and rejoining after I killed few people in Friendly Arms Inn. No problem with Xzar and Montaron (they don't mind due to Alignment) So it's the engine that kicked them from party in the first place, not what has been coded in DPLAYER2.BCS. I will post a bug report on Beamdog bug tracker.

Link to post

That does not solve the issue of those like Vynd, according to race he is evil and will leave on HIGH reputation, but the guy does not care what surfacers think about reputation but takes PC as he/she acts. Same for Jen'lig, evil because Githyanki but does not care what some bigot citizens from the Prime think about her PC as long as he/she is efficient against the common foe.

So Drizzt evil too ?

This is the very definition of bigotry .. just set them to be neutral and it's all the same for what the world thinks about things.

Link to post

 

That does not solve the issue of those like Vynd, according to race he is evil and will leave on HIGH reputation, but the guy does not care what surfacers think about reputation but takes PC as he/she acts. Same for Jen'lig, evil because Githyanki but does not care what some bigot citizens from the Prime think about her PC as long as he/she is efficient against the common foe.

So Drizzt evil too ?

This is the very definition of bigotry .. just set them to be neutral and it's all the same for what the world thinks about things.

 

We are in a game and those are the rules of that game. You can discuss a lot about that...

Someone Evil like Viconia or Edwin would never leave the party because PC earns reputation by good deeds - they would rejoice, it is profitable and it the best disguise they can ask for, they can act wonderfully out of the shelter of the Hero - in an evil party they will just attract all the unwanted attention of the authorities, etc...

Link to post

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...