Larian Banner: Baldur's Gate Patch 9
Previous Thread
Next Thread
Print Thread
Page 3 of 3 1 2 3
Joined: Jan 2015
K
journeyman
Offline
journeyman
K
Joined: Jan 2015
I'm actually trying to figure out how to remove the second player within the project template! As for the end dialog box, it's ticked. The problem with dialogs not ending started to appear when i merged my mod with the project template, so i think it might be related to that. Here's how it looks:

[Linked Image]


[Linked Image]


[Linked Image]


[Linked Image]

Last edited by karlgoran; 23/03/15 04:35 PM.
Joined: Oct 2014
B
enthusiast
Offline
enthusiast
B
Joined: Oct 2014
Yeah, it's likely because you merged with the project template - you're right about that.

Sniper's post a few posts back mentions that you're probably getting a double startup on dialog, which would cause issues. Hopefully he can expand on that info, because I haven't looked at his template yet so I'm in the dark here.


Joined: Jan 2015
K
journeyman
Offline
journeyman
K
Joined: Jan 2015
Originally Posted by Burgee
Yeah, it's likely because you merged with the project template - you're right about that.

Sniper's post a few posts back mentions that you're probably getting a double startup on dialog, which would cause issues. Hopefully he can expand on that info, because I haven't looked at his template yet so I'm in the dark here.



Seems like the problem occured because i had something in defaultdialog, now it works again. onwards etc.

ed: that solution only works temporarily, if you restart the editor you need to have something in the defaultdialog field or conversations won't start. ah well.

Last edited by karlgoran; 24/03/15 10:55 AM.
Joined: Oct 2014
B
enthusiast
Offline
enthusiast
B
Joined: Oct 2014
Originally Posted by karlgoran
Originally Posted by Burgee
Yeah, it's likely because you merged with the project template - you're right about that.

Sniper's post a few posts back mentions that you're probably getting a double startup on dialog, which would cause issues. Hopefully he can expand on that info, because I haven't looked at his template yet so I'm in the dark here.



Seems like the problem occured because i had something in defaultdialog, now it works again. onwards etc.

ed: that solution only works temporarily, if you restart the editor you need to have something in the defaultdialog field or conversations won't start. ah well.


Sniper made it sound like you don't need:


IF
DialogStartRequested(CHARACTER_Gothard,CHARACTER_Player1)
THEN
DialogStartTwoSpeakerDialog("gothardavmelse",CHARACTER_Gothard,CHARACTER_Player1);

if you're using that template. Try commenting it out in your script and leave the dialog settings in the sidebar see if it works.

Last edited by Burgee; 24/03/15 05:34 PM.
Joined: Jun 2013
old hand
Offline
old hand
Joined: Jun 2013
Originally Posted by Burgee

Sniper made it sound like you don't need:


IF
DialogStartRequested(CHARACTER_Gothard,CHARACTER_Player1)
THEN
DialogStartTwoSpeakerDialog("gothardavmelse",CHARACTER_Gothard,CHARACTER_Player1);

if you're using that template. Try commenting it out in your script and leave the dialog settings in the sidebar see if it works.


Yup, there's a PROC in there that starts dialog just like main does and it pulls dialog from the defaultdialog option in the sidebar instead. As if it were a non-global character.

It's basically how MAIN does it and if I hadn't already done dozens of manual starts like the code above I'd have switched my mod to this method. I found this exact same problem when I pasted the two goal files from the template in my mod.
They are:
Dialogs
_GLOBAL_DIALOGS

I'm not sure exactly which one has this code in it and I didn't bother trying to figure it out since I was already somewhat advanced in my mod. Trying to stay focused horsey

If you aren't very far I'd suggest using it. Delete the DialogStartTwoSpeakerDialog stuff you have for individual global characters. And properly fill out the defaultdialog in the sidebar for each character.

Otherwise just delete those two goal files and the conditional statement like the one Burgee posted should start working again and you can close dialog.

The benefit of the way Larian starts global dialogs is it allows you to keep the systemic stuff like all NPCs can trade and responses to combat and such without having to enter conditional dialog starts for every single stupid character.

There are some semi-interesting comments by larian in those goal files I mentioned but I'm trying to stop monkeying around with stuff like that and stay focused. It's hard cause I like these kinda puzzles ouch

Last edited by SniperHF; 24/03/15 07:04 PM.
Joined: Jan 2015
K
journeyman
Offline
journeyman
K
Joined: Jan 2015
Ah now it works. Thanks a lot for the help. Good to not need to do the whole global character code thing for conversations anymore!

Joined: Jun 2013
old hand
Offline
old hand
Joined: Jun 2013
Originally Posted by TheMasterRat
Originally Posted by SniperHF
Did some more testing today and found that the issue is only present at exactly attribute level 5. If I have Strength5 the script spits out Strength6 flag. But if I actually have Strength6 I only get 6 (and not 7). So it's only giving me an extra flag on level 5.


hoho nice catch!

Thanks for letting me know, I'll figure this issue out and post a fix.


Finally figured out what is causing this. Level Override.
Got rid of my characters level override and poof, problem gone.

Joined: Jun 2013
old hand
Offline
old hand
Joined: Jun 2013
Another problem found in the GLOBAL_Abilities file.
The script is counting for the ability Reflexes but that is not a ability. The ability is called BodyBuilding.

Just change in the INIT section:
DB_Abilities("Reflexes");

To

DB_Abilities("BodyBuilding");


Last edited by SniperHF; 18/06/15 06:26 AM.
Joined: Aug 2014
old hand
Offline
old hand
Joined: Aug 2014
You're probably one of the only people modding right now :P Thanks for pointing that out though. We'll update/redo the template when the enhanced edition comes out.

Joined: Jun 2013
old hand
Offline
old hand
Joined: Jun 2013
Probably :P

I figure even if I lose tons of work I'll be better off having the whole thing designed out. Re-implementing being faster than designing + implementing.

I'm sure Larian's new files will have all sorts of different stuff so it would be better to make another template from scratch. There's also the big possibility that a new editor doesn't come up till much later. Fun times.

Joined: Sep 2015
A
addict
Offline
addict
A
Joined: Sep 2015
Reviving this useful thread, thanks to SniperHF for the link! I wasn't aware of this great project.

I'm not familiar with using Osiris but I tried to get into it a little bit over the last days due to the _GLOBAL_Attributes and the _GLOBAL_Traits file which I absolutely need for my mod. Thank you, gentlemen, for sharing this!

Now: As mentioned above, using global events implies that every character in DB_CharacterToCount profits or suffers from the other character's attributes. And there doesn't seem to be a command in the script to clear the attribute events, yet (which would be important in case attributes change in the meantime).

I have tried to solve both issues and as far as I see I was successfull. I hope it's okay to post the modified _GLOBAL_Attributes script lines here. 99% is your work.

Some words on my changes first:

1) I used Dialog Character Events instead of global events, so the flags are personalized. The developers use this kind of event for storing the players' gender, reputation or attitude towards NPCs, for example.

2) Now there is a process that clears all dialog character events every time a dialog starts, before character events are set.

Now it's possible to have several characters in dialog, each with his own attribute flags.

The only problem may be that moment when another player character starts a dialog. All character flags get removed and re-generated for all characters in the CharacterToCount database. So there will be a very short moment other player characters (who already are in dialog) don't have attribute flags. I wasn't able to personalize clearing character events, too.

I hope the script is fine now. It's my first time with Osiris and testings in the editor deluded me once:

Quote


INITSECTION
DB_CharacterToCount(CHARACTER_Player1);
DB_CharacterToCount(CHARACTER_Player2);

DB_AttributeNames("Strength");
DB_AttributeNames("Intelligence");
DB_AttributeNames("Constitution");
DB_AttributeNames("Speed");
DB_AttributeNames("Perception");
DB_AttributeNames("Dexterity");

DB_AttributeValues(5,"5");
DB_AttributeValues(6,"6");
DB_AttributeValues(7,"7");
DB_AttributeValues(8,"8");
DB_AttributeValues(9,"9");
DB_AttributeValues(10,"10");
DB_AttributeValues(11,"11");
DB_AttributeValues(12,"12");
DB_AttributeValues(13,"13");
DB_AttributeValues(14,"14");
DB_AttributeValues(15,"15");
DB_AttributeValues(16,"16");
DB_AttributeValues(17,"17");
DB_AttributeValues(18,"18");
DB_AttributeValues(19,"19");
DB_AttributeValues(20,"20");

KBSECTION
IF
DialogStarted(_DialogName,_InstanceID)
THEN
ProcClearDialogEvents();
ProcTriggerAttributeCheck();

/*IF
DialogStartRequested(_Character1,_Character2)
THEN
ProcTriggerAttributeCheck();*/
/*With DialogStarted (only) the script got executed in both cases: dialog actively started by the player and started by script. So it's quite sure it works in all possible cases.*/

PROC
ProcTriggerAttributeCheck()
AND
DB_AttributeNames(_AttributeName)
AND
DB_CharacterToCount(_Character)
AND
CharacterGetAttribute(_Character,_AttributeName,_AttributeValue)
THEN
ProcGetValueAsString(_AttributeName,_AttributeValue,_Character);

PROC
ProcGetValueAsString((STRING)_Attribute,(INTEGER)_Value,(CHARACTER)_Character)
AND
DB_AttributeValues(_Value,_ValueAsString)
AND
StringConcatenate(_Attribute,_ValueAsString,_StringResult)
//AND
// NOT DB_EventSet(_StringResult)
/*-->not needed, I think; prevents the other players in the CharacterToCount database to get character flags if included.*/
AND
IntegerSubtract(_Value,1,_ValueMinusOne)
THEN
DialogSetCharacterEvent(_StringResult,_Character,0);
DB_EventSet(_StringResult);
ProcGetValueAsString(_Attribute,_ValueMinusOne,_Character);
/*-->forgot to add _Character to ProcGetValueAsString the last time, so no flags for attribute values below the character's exact value were generated.*/


PROC
ProcClearDialogEvents()
AND
DB_CharacterToCount(_Character)
AND
DB_EventSet(_Event)
THEN
DialogClearCharacterEvent(_Event,_Character,0);



It's not extensively tested. But attribute checks in dialog for different characters worked for me.

Last edited by Abraxas*; 24/06/16 01:24 PM. Reason: Update: I got it, I think. Original post changed.

My mods for DOS 1 EE: FasterAnimations - QuietDay - Samaritan
Joined: Sep 2015
A
addict
Offline
addict
A
Joined: Sep 2015
And here's the modified version for the _GLOBAL_Traits file:

Quote


INITSECTION

DB_Traits("Altruistic");
DB_Traits("Blunt");
DB_Traits("Bold");
DB_Traits("Compassionate");
DB_Traits("Considerate");
DB_Traits("Egotistical");
DB_Traits("Forgiving");
DB_Traits("Heartless");
DB_Traits("Independent");
DB_Traits("Materialistic");
DB_Traits("Obedient");
DB_Traits("Pragmatic");
DB_Traits("Renegade");
DB_Traits("Righteous");
DB_Traits("Romantic");
DB_Traits("Spiritual");
DB_Traits("Timid");
DB_Traits("Vindictive");

DB_CharacterToCount(CHARACTER_Player1);
DB_CharacterToCount(CHARACTER_Player2);

KBSECTION

IF
DialogStarted(_DialogName,_InstanceID)
THEN
ProcTriggerTraitCheck();

/*IF
DialogStartRequested(_Character1,_Character2)
THEN
ProcTriggerTraitCheck();*/

PROC
ProcTriggerTraitCheck()
AND
DB_Traits(_Trait)
AND
DB_CharacterToCount(_Character)
AND
CharacterGetTrait(_Character,_Trait,_HasTrait)
THEN
ProcSetTraitFlag(_Trait,_HasTrait,_Character);


PROC
ProcSetTraitFlag((STRING)_Trait,(INTEGER)_HasTrait,(CHARACTER)_Character)
AND
_HasTrait == 0
THEN
DialogClearCharacterEvent(_Trait,_Character,0);

PROC
ProcSetTraitFlag((STRING)_Trait,(INTEGER)_HasTrait,(CHARACTER)_Character)
AND
_HasTrait == 1
THEN
DialogSetCharacterEvent(_Trait,_Character,0);



My mods for DOS 1 EE: FasterAnimations - QuietDay - Samaritan
Page 3 of 3 1 2 3

Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.5