Larian Banner: Baldur's Gate Patch 9
Previous Thread
Next Thread
Print Thread
Joined: Jul 2018
P
Piastun Offline OP
stranger
OP Offline
stranger
P
Joined: Jul 2018
Hello!

I've encountered a problem, which appears to be a bit mind-boggling (since me & a few of my friends can't seem to solve it).

I've created a project (adventure), but there is a problem with publishing it. For some reason, when I publish it (locally or via Steam Workshop, it doesn't matter), it's not accessible in the game. All my friends could do, is to use a Dummy to move around (location presented on a screen below).

I attach pictures of my settings in the Divinity Engine 2 editor. Please help me solve this issue – I'm doing this project not only as a hobby, so every suggestion is valuable.

P.S. Is there a way to attach files? I could show you code from the Story script (as txt files), but I don't see a way to upload it here.

[img]http://i67.tinypic.com/25rjmtx.jpg[/img]
[img]http://i63.tinypic.com/206mmnt.jpg[/img]
[img]http://i67.tinypic.com/2w6hu15.jpg[/img]

Joined: Dec 2013
old hand
Offline
old hand
Joined: Dec 2013
It looks like you are missing some story code to deal with character creation. Did you test your adventure using the game client (not the editor) before you published the mod to see if it worked?

You can check out these two tutorial videos if you aren't familiar with how to add character creation to a standalone adventure:

Character Creation

Character Creation and Story Cleanup



DOS2 Mods: Happily Emmie After and The Noisy Crypt

Steam Workshop
Nexus Mods
Joined: Jul 2018
P
Piastun Offline OP
stranger
OP Offline
stranger
P
Joined: Jul 2018
Thanks for such quick reply ;)

I do have a character creation code.

Since I can't seem to find a way to upload the text file here (or any file, for that matter), here's a copied text.

Maybe I have a mistake somewhere, can you look at it?

----------------------------------------------------------------------
INIT SECTION

DB_CharacterCreationLevels("SYS_Character_Creation_A");

DB_GLO_FirstLevelAfterCharacterCreation("_AncientRiddle");

DB_CharacterCreationTransitionInfo("_AncientRiddle",(TRIGGERGUID)TRIGGERGUID_StartPoint_001_899f56c5-e6f8-4f42-be82-94e681de791f);

DB_CharacterCreationDummy((CHARACTERGUID)S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406);
DB_CharacterCreationDummy((CHARACTERGUID)S_GLO_CharacterCreationDummy_002_361dacdc-4135-4d3f-a9a2-3cad46ca246a);
DB_CharacterCreationDummy((CHARACTERGUID)S_GLO_CharacterCreationDummy_003_dded8c22-b28e-45c1-a074-eb0954602c8a);
DB_CharacterCreationDummy((CHARACTERGUID)S_GLO_CharacterCreationDummy_004_5f93cae7-6c10-4da1-b9a5-0efafc168c8e);

DB_GenericOrigins((CHARACTERGUID)S_Player_GenericOrigin_7b6c1f26-fe4e-40bd-a5d0-e6ff58cef4fe);
DB_GenericOrigins((CHARACTERGUID)S_Player_GenericOrigin2_c451954c-73bf-46ce-a1d1-caa9bbdc3cfd);
DB_GenericOrigins((CHARACTERGUID)S_Player_GenericOrigin3_41a06985-7851-4c29-8a78-398ccb313f39);
DB_GenericOrigins((CHARACTERGUID)S_Player_GenericOrigin4_41a594ed-b768-4289-9f17-59f701cc6910);


----------------------------------------------------------------------

KB SECTION

IF
DB_CharacterCreationDummy(_Dummy)
THEN
DB_AvailableDummy(_Dummy);

IF
GameModeStarted("Campaign",1)
THEN
DB_InCharacterCreation(0);

IF
GameModeStarted("Campaign",1)
AND
DB_CharacterCreationDummy(_Dummy)
THEN
CharacterMakeNPC(_Dummy);
SetOnStage(_Dummy,0);

IF
GameModeStarted("Campaign",1)
AND
DB_GenericOrigins(_Dummy)
THEN
CharacterMakeNPC(_Dummy);
SetOnStage(_Dummy,0);

IF
GameModeStarted("Campaign",1)
AND
DB_GLO_FirstLevelAfterCharacterCreation("_AncientRiddle")
AND
DB_CharacterCreationTransitionInfo("_AncientRiddle",(TRIGGERGUID)TRIGGERGUID_StartPoint_001_899f56c5-e6f8-4f42-be82-94e681de791f)
THEN
SetOnStage(S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406,1);
CharacterMakePlayer(S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406);
MakePlayerActive(S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406);
DB_IsPlayer(S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406);
ProcMovePartyToStart(S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406,TRIGGERGUID_StartPoint_001_899f56c5-e6f8-4f42-be82-94e681de791f);

IF
RegionStarted("_AncientRiddle")
AND
IsGameLevel("_AncientRiddle",1)
THEN
DB_InCharacterCreation(0);

IF
CharacterCreationStarted("_AncientRiddle")
AND
CharacterAddToCharacterCreation((CHARACTERGUID)CHARACTERGUID_S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406,0,_Success)
THEN
DB_InCharacterCreation(_Success);

IF
DB_InCharacterCreation(1)
AND
DB_CharacterCreationDummy(_Dummy)
THEN
SetOnStage(_Dummy,1);
TeleportTo(_Dummy,S_CharOriginDest_c9c5e1d7-1998-4d4e-aacb-3970e8823674);
CharacterMakePlayer(_Dummy, NULL_00000000-0000-0000-0000-000000000000);

IF
DB_InCharacterCreation(1)
AND
DB_GenericOrigins((CHARACTERGUID)_Org)
THEN
SetOnStage(_Org,1);
TeleportTo(_Org,S_CharOriginDest_c9c5e1d7-1998-4d4e-aacb-3970e8823674);
CharacterMakePlayer(_Org, NULL_00000000-0000-0000-0000-000000000000);

IF
DB_InCharacterCreation(1)
THEN
IterateUsers("_CCUserSetup");

IF
UserEvent(_User,"_CCUserSetup")
AND
GetUserProfileID(_User,_UserName)
AND
DB_CharacterCreationDummy(_Dummy)
AND
NOT DB_AssignedDummyForUser(_,_Dummy)
AND
NOT DB_AssignedDummyForUser(_UserName,_)
THEN
ProcAssignDummyToUser(_Dummy,_UserName);

IF
UserEvent(_User,"_CCUserSetup")
AND
GetUserProfileID(_User,_UserName)
AND
DB_AssignedDummyForUser(_UserName,_Dummy)
THEN
SetOnStage(_Dummy,1);
CharacterMakePlayer(_Dummy);
CharacterAssignToUser(_User,_Dummy);
MakePlayerActive(_Dummy);
DB_IsPlayer(_Dummy);

IF
CharacterCreationFinished((CHARACTERGUID)NULL_00000000-0000-0000-0000-000000000000)
AND
DB_InCharacterCreation(1)
AND
DB_CurrentLevel("_AncientRiddle")
AND
DB_CharacterCreationLevels("_AncientRiddle")
AND
DB_GLO_FirstLevelAfterCharacterCreation("_AncientRiddle")
AND
DB_CharacterCreationTransitionInfo("_AncientRiddle",(TRIGGERGUID)TRIGGERGUID_StartPoint_000_7b4d93b9-5526-4922-a41a-aaa65360ac0a)
AND
DB_IsPlayer(_Char)
THEN
NOT DB_DoNotFace(_Char);
ProcMovePartyToStart(_Char,(TRIGGERGUID)TRIGGERGUID_StartPoint_001_899f56c5-e6f8-4f42-be82-94e681de791f);

IF
RegionStarted("_AncientRiddle")
AND
IsGameLevel("_AncientRiddle",1)
THEN
DB_StartedActualGame(1);

IF
UserDisconnected(_UserID,_,_UserProfile)
AND
NOT DB_InCharacterCreation(1)
AND
NOT DB_StartedActualGame(1)
AND
DB_SelectedCC(_Char,_UserProfile)
THEN
NOT DB_IsPlayer(_Char);
ProcUnRegisterPlayerTriggers(_Char);

PROC
ProcMovePartyToStart((CHARACTERGUID)_NewChar,(TRIGGERGUID)TRIGGERGUID_StartPoint_001_899f56c5-e6f8-4f42-be82-94e681de791f)
THEN
NOT DB_AlreadyTeleported(1);

PROC
ProcMovePartyToStart((CHARACTERGUID)_NewChar,(TRIGGERGUID)TRIGGERGUID_StartPoint_001_899f56c5-e6f8-4f42-be82-94e681de791f)
AND
DB_TeleportedToStartCharacters(_Char)
AND
CharacterIsInPartyWith(_Char,_NewChar,1)
THEN
DB_AlreadyTeleported(1);

PROC
ProcMovePartyToStart((CHARACTERGUID)_NewChar,(TRIGGERGUID)TRIGGERGUID_StartPoint_001_899f56c5-e6f8-4f42-be82-94e681de791f)
AND
NOT DB_AlreadyTeleported(1)
THEN
DB_TeleportedToStartCharacters(_NewChar);
CharacterTeleportPartiesToTrigger((TRIGGERGUID)TRIGGERGUID_StartPoint_001_899f56c5-e6f8-4f42-be82-94e681de791f,"Event");

IF
RegionStarted("_AncientRiddle")
AND
IsGameLevel("_AncientRiddle",0)
AND
IsCharacterCreationLevel("_AncientRiddle",0)
AND
DB_CharacterCreationDummy(_Dummy)
AND
_Dummy != CHARACTERGUID_S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406
THEN
TeleportTo(_Dummy,CHARACTERGUID_S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406);
CharacterMakePlayer(_Dummy);
DB_IsPlayer(_Dummy);

PROC
ProcRemovePreviousSelectedCharacter((STRING)_UserProfile)
AND
DB_SelectedCC((CHARACTERGUID)_Char,(STRING)_UserProfile)
THEN
ClearTag(_Char,"AVATAR");
NOT DB_IsPlayer(_Char);
ProcUnRegisterPlayerTriggers(_Char);
NOT DB_SelectedCC(_Char,_UserProfile);

PROC
ProcSetSelectedCharCreationPlayer((CHARACTERGUID)_Char,(STRING)_UserProfile)
THEN
ProcRemovePreviousSelectedCharacter(_UserProfile);
SetTag(_Char,"AVATAR");
DB_IsPlayer(_Char);
ProcRegisterPlayerTriggers(_Char);
DB_SelectedCC(_Char,_UserProfile);

IF
UserDisconnected(_UserID,_,_UserProfile)
AND
DB_InCharacterCreation(1)
THEN
ProcRemovePreviousSelectedCharacter(_UserProfile);
ProcRemovePreviousDummy(_UserProfile);

IF
CharacterSelectedInCharCreation(_Char,_UserID)
AND
GetUserProfileID(_UserID,_UserProfile)
THEN
ProcSetSelectedCharCreationPlayer(_Char,_UserProfile);

IF
CharacterSelectedInCharCreation(_Char,_UserID)
AND
CharacterHasTalent(_Char,"AnimalEmpathy",1)
THEN
SetTag(_Char,"PETPAL");

IF
UserConnected(_,_,_UserName)
AND
DB_InCharacterCreation(1)
AND
DB_CharacterCreationDummy(_Dummy)
AND
NOT DB_AssignedDummyForUser(_,_Dummy)
AND
NOT DB_AssignedDummyForUser(_UserName,_)
THEN
ProcAssignDummyToUser(_Dummy,_UserName);

PROC
ProcRemovePreviousDummy((STRING)_UserProfile)
AND
DB_AssignedDummyForUser(_UserProfile,_Dummy)
THEN
NOT DB_AssignedDummyForUser(_UserProfile,_Dummy);
DB_AvailableDummy(_Dummy);

PROC
ProcAssignDummyToUser((CHARACTERGUID)_Dummy,(STRING)_UserName)
AND
DB_AvailableDummy(_Dummy)
THEN
CharacterMakePlayer(_Dummy, NULL_00000000-0000-0000-0000-000000000000);

PROC
ProcAssignDummyToUser((CHARACTERGUID)_Dummy,(STRING)_UserName)
AND
DB_AvailableDummy(_Dummy)
AND
CharacterAddToCharacterCreation(_Dummy,0,1)
THEN
DB_AssignedDummyForUser(_UserName,_Dummy);

PROC
ProcAssignDummyToUser((CHARACTERGUID)_Dummy,(STRING)_UserName)
AND
DB_AvailableDummy(_Dummy)
THEN
DB_AssignedDummyForUser(_UserName,_Dummy);

PROC
ProcAssignDummyToUser((CHARACTERGUID)_Dummy,(STRING)_UserName)
THEN
NOT DB_AvailableDummy(_Dummy);

IF
UserConnected(_UserID,_,_UserName)
AND
DB_InCharacterCreation(1)
AND
DB_AssignedDummyForUser(_UserName,_Dummy)
THEN
SetOnStage(_Dummy,1);
CharacterMakePlayer(_Dummy);
CharacterAssignToUser(_UserID,_Dummy);
MakePlayerActive(_Dummy);

IF
CharacterCreationFinished((CHARACTERGUID)NULL_00000000-0000-0000-0000-000000000000)
AND
DB_GenericOrigins(_Dummy)
AND
NOT DB_SelectedCC(_Dummy,_)
THEN
CharacterRemoveFromParty(_Dummy);
CharacterMakeNPC(_Dummy);
SetOnStage(_Dummy,0);

IF
CharacterCreationFinished((CHARACTERGUID)NULL_00000000-0000-0000-0000-000000000000)
AND
DB_CharacterCreationDummy(_Dummy)
THEN
NOT DB_IsPlayer(_Dummy);
CharacterRemoveFromParty(_Dummy);
CharacterMakeNPC(_Dummy);
SetOnStage(_Dummy,0);

IF
CharacterCreationFinished(_)
AND
DB_InCharacterCreation(_Value)
THEN
NOT DB_InCharacterCreation(_Value);

Joined: Jul 2018
P
Piastun Offline OP
stranger
OP Offline
stranger
P
Joined: Jul 2018
Maybe someone else has an idea what I could have done wrong? Anyone?

Joined: Dec 2013
old hand
Offline
old hand
Joined: Dec 2013
Just thought of something else:


Quote
DB_CharacterCreationTransitionInfo("_AncientRiddle",(TRIGGERGUID)TRIGGERGUID_StartPoint_001_899f56c5-e6f8-4f42-be82-94e681de791f);


Did you make this trigger you placed global?


DOS2 Mods: Happily Emmie After and The Noisy Crypt

Steam Workshop
Nexus Mods
Joined: Dec 2013
old hand
Offline
old hand
Joined: Dec 2013
I also noticed that you edited some of the variables in the original character creation script and replaced them with your own specific values. For instance:

Quote

IF
RegionStarted("_AncientRiddle")
AND
IsGameLevel("_AncientRiddle",1)
THEN
DB_InCharacterCreation(0);

IF
CharacterCreationStarted("_AncientRiddle")
AND
CharacterAddToCharacterCreation((CHARACTERGUID)CHARACTERGUID_S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406,0,_Success)
THEN
DB_InCharacterCreation(_Success);


In the goal above, you have effectively told Osiris to start the character creation UI only when the game starts in the character creation level "_AncientRiddle". Is that what you want? Did you create your own custom character creation level? It seems to me that "_AncientRiddle" is the level you want the game to start in AFTER character creation. What are your general settings under project settings? Did you specify a character creation level?

I would revert that code to what it is vanilla from the wiki:
Quote

IF
RegionStarted(_Lvl)
AND
IsGameLevel(_Lvl,1)
THEN
DB_InCharacterCreation(0);

IF
CharacterCreationStarted(_)
AND
CharacterAddToCharacterCreation((CHARACTERGUID)CHARACTERGUID_S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406,0,_Success)
THEN
DB_InCharacterCreation(_Success);



Similar issues here:
Quote
IF
CharacterCreationFinished((CHARACTERGUID)NULL_00000000-0000-0000-0000-000000000000)
AND
DB_InCharacterCreation(1)
AND
DB_CurrentLevel("_AncientRiddle")
AND
DB_CharacterCreationLevels("_AncientRiddle")
AND
DB_GLO_FirstLevelAfterCharacterCreation("_AncientRiddle")
AND
DB_CharacterCreationTransitionInfo("_AncientRiddle",(TRIGGERGUID)TRIGGERGUID_StartPoint_000_7b4d93b9-5526-4922-a41a-aaa65360ac0a)
AND
DB_IsPlayer(_Char)
THEN
NOT DB_DoNotFace(_Char);
ProcMovePartyToStart(_Char,(TRIGGERGUID)TRIGGERGUID_StartPoint_001_899f56c5-e6f8-4f42-be82-94e681de791f);

IF
RegionStarted("_AncientRiddle")
AND
IsGameLevel("_AncientRiddle",1)
THEN
DB_StartedActualGame(1);


I would revert that back to the original story code:
Quote
IF
CharacterCreationFinished((CHARACTERGUID)NULL_00000000-0000-0000-0000-000000000000)
AND
DB_InCharacterCreation(1)
AND
DB_CurrentLevel(_Lvl)
AND
DB_CharacterCreationLevels(_Lvl)
AND
DB_GLO_FirstLevelAfterCharacterCreation(_FirstLevel)
AND
DB_CharacterCreationTransitionInfo(_FirstLevel,_StartTrigger)
AND
DB_IsPlayer(_Char)
THEN
NOT DB_DoNotFace(_Char);
ProcMovePartyToStart(_Char,_StartTrigger);

IF
RegionStarted(_Region)
AND
IsGameLevel(_Region,1)
THEN
DB_StartedActualGame(1);


Last edited by Windemere; 24/07/18 09:33 PM.

DOS2 Mods: Happily Emmie After and The Noisy Crypt

Steam Workshop
Nexus Mods
Joined: Jul 2018
P
Piastun Offline OP
stranger
OP Offline
stranger
P
Joined: Jul 2018
Yes, the trigger is global.

Great, thanks for all the help wink I appreciate it a lot!


Moderated by  Larian_KVN 

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