Difference between revisions of "Osiris/Shared/Proc StartDialog"
From Divinity Engine Wiki
m (Link DialogRequestStop(ForDialog)) |
(Explain how to start a dialog with more than six speakers) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
===== Full Definition(s) ===== | ===== Full Definition(s) ===== | ||
− | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''',''(STRING)'''''_Dialog''',''(GUIDSTRING)'''''_Speaker1''') | + | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''', ''(STRING)'''''_Dialog''', ''(GUIDSTRING)'''''_Speaker1''') |
− | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''',''(STRING)'''''_Dialog''',''(GUIDSTRING)'''''_Speaker1''',''(GUIDSTRING)'''''_Speaker2''') | + | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''', ''(STRING)'''''_Dialog''', ''(GUIDSTRING)'''''_Speaker1''', ''(GUIDSTRING)'''''_Speaker2''') |
− | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''',''(STRING)'''''_Dialog''',''(GUIDSTRING)'''''_Speaker1''',''(GUIDSTRING)'''''_Speaker2''',''(GUIDSTRING)'''''_Speaker2''') | + | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''', ''(STRING)'''''_Dialog''', ''(GUIDSTRING)'''''_Speaker1''', ''(GUIDSTRING)'''''_Speaker2''', ''(GUIDSTRING)'''''_Speaker2''') |
− | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''',''(STRING)'''''_Dialog''',''(GUIDSTRING)'''''_Speaker1''',''(GUIDSTRING)'''''_Speaker2''',''(GUIDSTRING)'''''_Speaker2''',''(GUIDSTRING)'''''_Speaker3''') | + | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''', ''(STRING)'''''_Dialog''', ''(GUIDSTRING)'''''_Speaker1''', ''(GUIDSTRING)'''''_Speaker2''', ''(GUIDSTRING)'''''_Speaker2''', ''(GUIDSTRING)'''''_Speaker3''') |
− | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''',''(STRING)'''''_Dialog''',''(GUIDSTRING)'''''_Speaker1''',''(GUIDSTRING)'''''_Speaker2''',''(GUIDSTRING)'''''_Speaker2''',''(GUIDSTRING)'''''_Speaker3''',''(GUIDSTRING)'''''_Speaker4''') | + | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''', ''(STRING)'''''_Dialog''', ''(GUIDSTRING)'''''_Speaker1''', ''(GUIDSTRING)'''''_Speaker2''', ''(GUIDSTRING)'''''_Speaker2''', ''(GUIDSTRING)'''''_Speaker3''', ''(GUIDSTRING)'''''_Speaker4''') |
− | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''',''(STRING)'''''_Dialog''',''(GUIDSTRING)'''''_Speaker1''',''(GUIDSTRING)'''''_Speaker2''',''(GUIDSTRING)'''''_Speaker2''',''(GUIDSTRING)'''''_Speaker3''',''(GUIDSTRING)'''''_Speaker4''',''(GUIDSTRING)'''''_Speaker5''') | + | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''', ''(STRING)'''''_Dialog''', ''(GUIDSTRING)'''''_Speaker1''', ''(GUIDSTRING)'''''_Speaker2''', ''(GUIDSTRING)'''''_Speaker2''', ''(GUIDSTRING)'''''_Speaker3''', ''(GUIDSTRING)'''''_Speaker4''', ''(GUIDSTRING)'''''_Speaker5''') |
− | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''',''(STRING)'''''_Dialog''',''(GUIDSTRING)'''''_Speaker1''',''(GUIDSTRING)'''''_Speaker2''',''(GUIDSTRING)'''''_Speaker2''',''(GUIDSTRING)'''''_Speaker3''',''(GUIDSTRING)'''''_Speaker4''',''(GUIDSTRING)'''''_Speaker5''',''(GUIDSTRING)'''''_Speaker6''') | + | * PROC '''Proc_StartDialog'''(''(INTEGER)'''''_Automated''', ''(STRING)'''''_Dialog''', ''(GUIDSTRING)'''''_Speaker1''', ''(GUIDSTRING)'''''_Speaker2''', ''(GUIDSTRING)'''''_Speaker2''', ''(GUIDSTRING)'''''_Speaker3''', ''(GUIDSTRING)'''''_Speaker4''', ''(GUIDSTRING)'''''_Speaker5''', ''(GUIDSTRING)'''''_Speaker6''') |
===== Description ===== | ===== Description ===== | ||
This is the only routine that should be used to start dialogs. '''_Automated''' should be '''1''' if '''_Dialog''' is an automated dialog of any kind (automated dialog, automated ghost dialog, or a repeated variant of these). You have to specify as many speaker parameters as there are speakers in '''_Dialog'''. You can, however, specify '''NULL_00000000-0000-0000-0000-000000000000''' in case you have optional speakers for your dialog (through the use of optional nodes or flag checks). | This is the only routine that should be used to start dialogs. '''_Automated''' should be '''1''' if '''_Dialog''' is an automated dialog of any kind (automated dialog, automated ghost dialog, or a repeated variant of these). You have to specify as many speaker parameters as there are speakers in '''_Dialog'''. You can, however, specify '''NULL_00000000-0000-0000-0000-000000000000''' in case you have optional speakers for your dialog (through the use of optional nodes or flag checks). | ||
Line 15: | Line 15: | ||
* If you want to set or clear certain flags before a particular dialog starts, you can use [[Osiris/Shared/Proc_DialogFlagSetup|Proc_DialogFlagSetup]]. | * If you want to set or clear certain flags before a particular dialog starts, you can use [[Osiris/Shared/Proc_DialogFlagSetup|Proc_DialogFlagSetup]]. | ||
* By default, this routine will make all participants of the dialog face each other before the dialog starts. This can be prevented per NPC by defining the [[Osiris/Shared/DB_DoNotFace|DB_DoNotFace]] database. This is particularly important if you have e.g. a knocked-down NPC with which you want players to be able to converse. The reason is that any Osiris command issues for a character will remove any incapicated statuses for that character, and this includes looking at someone else. So without setting this DB, the knocked-down status will be removed as soon as someone talks to that NPC. | * By default, this routine will make all participants of the dialog face each other before the dialog starts. This can be prevented per NPC by defining the [[Osiris/Shared/DB_DoNotFace|DB_DoNotFace]] database. This is particularly important if you have e.g. a knocked-down NPC with which you want players to be able to converse. The reason is that any Osiris command issues for a character will remove any incapicated statuses for that character, and this includes looking at someone else. So without setting this DB, the knocked-down status will be removed as soon as someone talks to that NPC. | ||
+ | * If you need to start a dialog with more than six speakers, start it with six speakers and after the [[Osiris/API/AutomatedDialogStarted|AutomatedDialogStarted]]/[[Osiris/API/DialogStarted|DialogStarted]] event, add the remaining speakers with [[Osiris/API/DialogAddActorAt|DialogAddActorAt]]. | ||
===== See Also ===== | ===== See Also ===== | ||
* [[Osiris/API/AutomatedDialogRequestFailed|AutomatedDialogRequestFailed]] | * [[Osiris/API/AutomatedDialogRequestFailed|AutomatedDialogRequestFailed]] | ||
* [[Osiris/API/AutomatedDialogStarted|AutomatedDialogStarted]] | * [[Osiris/API/AutomatedDialogStarted|AutomatedDialogStarted]] | ||
+ | * [[Osiris/API/DialogAddActorAt|DialogAddActorAt]] | ||
* [[Osiris/API/DialogRequestFailed|DialogRequestFailed]] | * [[Osiris/API/DialogRequestFailed|DialogRequestFailed]] | ||
* [[Osiris/API/DialogRequestStop|DialogRequestStop]] | * [[Osiris/API/DialogRequestStop|DialogRequestStop]] | ||
Line 23: | Line 25: | ||
* [[Osiris/API/DialogStarted|DialogStarted]] | * [[Osiris/API/DialogStarted|DialogStarted]] | ||
* [[Osiris/API/DialogStartRequested|DialogStartRequested]] | * [[Osiris/API/DialogStartRequested|DialogStartRequested]] | ||
+ | * [[Osiris/API/StartDefaultDialog|StartDefaultDialog]] | ||
+ | * [[Osiris/API/StartDialog_Internal|StartDialog_Internal]] | ||
+ | * [[Osiris/API/StartDialog_Internal_NoDeadCheck|StartDialog_Internal_NoDeadCheck]] | ||
* Helper [[Osiris/Shared/DB DialogNPCs|DB DialogNPCs]] | * Helper [[Osiris/Shared/DB DialogNPCs|DB DialogNPCs]] | ||
* Helper [[Osiris/Shared/DB DialogPlayers|DB DialogPlayers]] | * Helper [[Osiris/Shared/DB DialogPlayers|DB DialogPlayers]] | ||
Line 31: | Line 36: | ||
* Helper [[Osiris/Shared/PROC_GLOBAL_DialogStartRequested_AfterGenerics|PROC_GLOBAL_DialogStartRequested_AfterGenerics]] | * Helper [[Osiris/Shared/PROC_GLOBAL_DialogStartRequested_AfterGenerics|PROC_GLOBAL_DialogStartRequested_AfterGenerics]] | ||
− | [[Category:Osiris Shared Mod Helpers]] | + | [[Category:Osiris Shared Mod Helpers|StartDialog]] |
Latest revision as of 12:33, 19 December 2018
Full Definition(s)
- PROC Proc_StartDialog((INTEGER)_Automated, (STRING)_Dialog, (GUIDSTRING)_Speaker1)
- PROC Proc_StartDialog((INTEGER)_Automated, (STRING)_Dialog, (GUIDSTRING)_Speaker1, (GUIDSTRING)_Speaker2)
- PROC Proc_StartDialog((INTEGER)_Automated, (STRING)_Dialog, (GUIDSTRING)_Speaker1, (GUIDSTRING)_Speaker2, (GUIDSTRING)_Speaker2)
- PROC Proc_StartDialog((INTEGER)_Automated, (STRING)_Dialog, (GUIDSTRING)_Speaker1, (GUIDSTRING)_Speaker2, (GUIDSTRING)_Speaker2, (GUIDSTRING)_Speaker3)
- PROC Proc_StartDialog((INTEGER)_Automated, (STRING)_Dialog, (GUIDSTRING)_Speaker1, (GUIDSTRING)_Speaker2, (GUIDSTRING)_Speaker2, (GUIDSTRING)_Speaker3, (GUIDSTRING)_Speaker4)
- PROC Proc_StartDialog((INTEGER)_Automated, (STRING)_Dialog, (GUIDSTRING)_Speaker1, (GUIDSTRING)_Speaker2, (GUIDSTRING)_Speaker2, (GUIDSTRING)_Speaker3, (GUIDSTRING)_Speaker4, (GUIDSTRING)_Speaker5)
- PROC Proc_StartDialog((INTEGER)_Automated, (STRING)_Dialog, (GUIDSTRING)_Speaker1, (GUIDSTRING)_Speaker2, (GUIDSTRING)_Speaker2, (GUIDSTRING)_Speaker3, (GUIDSTRING)_Speaker4, (GUIDSTRING)_Speaker5, (GUIDSTRING)_Speaker6)
Description
This is the only routine that should be used to start dialogs. _Automated should be 1 if _Dialog is an automated dialog of any kind (automated dialog, automated ghost dialog, or a repeated variant of these). You have to specify as many speaker parameters as there are speakers in _Dialog. You can, however, specify NULL_00000000-0000-0000-0000-000000000000 in case you have optional speakers for your dialog (through the use of optional nodes or flag checks).
Return Values
- /
Notes
- This routine is both used for explicitly starting dialogs from Osiris, and to start dialogs in response to a DialogStartRequested event due to a player clicking on something.
- If you want to set or clear certain flags before a particular dialog starts, you can use Proc_DialogFlagSetup.
- By default, this routine will make all participants of the dialog face each other before the dialog starts. This can be prevented per NPC by defining the DB_DoNotFace database. This is particularly important if you have e.g. a knocked-down NPC with which you want players to be able to converse. The reason is that any Osiris command issues for a character will remove any incapicated statuses for that character, and this includes looking at someone else. So without setting this DB, the knocked-down status will be removed as soon as someone talks to that NPC.
- If you need to start a dialog with more than six speakers, start it with six speakers and after the AutomatedDialogStarted/DialogStarted event, add the remaining speakers with DialogAddActorAt.
See Also
- AutomatedDialogRequestFailed
- AutomatedDialogStarted
- DialogAddActorAt
- DialogRequestFailed
- DialogRequestStop
- DialogRequestStopForDialog
- DialogStarted
- DialogStartRequested
- StartDefaultDialog
- StartDialog_Internal
- StartDialog_Internal_NoDeadCheck
- Helper DB DialogNPCs
- Helper DB DialogPlayers
- Helper DB_Dialogs
- Helper DB_DoNotFace
- Helper Proc_DialogFlagSetup
- Helper PROC_GLOBAL_DialogStartRequested
- Helper PROC_GLOBAL_DialogStartRequested_AfterGenerics