Difference between revisions of "Osiris API Tips"
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<h2>Main Osiris API</h2> | <h2>Main Osiris API</h2> | ||
<h3>Events</h3> | <h3>Events</h3> |
Revision as of 10:31, 2 August 2017
Contents
- 1 Main Osiris API
- 1.1 Events
- 1.1.1 CharacterBlockedBy
- 1.1.2 CharacterMissedBy
- 1.1.3 CharacterCriticalHitBy
- 1.1.4 CharacterKilledBy
- 1.1.5
- 1.1.6
- 1.1.7 CharacterEnteredRegion
- 1.1.8 CharacterSawCharacter
- 1.1.9 CharacterStoppedUsingItem
- 1.1.10 CombatStarted
- 1.1.11 DialogStartRequested
- 1.1.12 GameStarted
- 1.1.13 ObjectEnteredCombat
- 1.1.14 ObjectFlagSet
- 1.1.15 ObjectLeftCombat
- 1.1.16 ObjectSourcePointAddRequest
- 1.1.17 RegionStarted
- 1.1 Events
Main Osiris API
Events
Events are a way for Osiris to inform script that something happened. All event parameters have [in] semantics.
CharacterBlockedBy
Full definitions- event CharacterBlokedBy((CHARACTERGUID)_Defender, (CHARACTERGUID)_Attacker, (CHARACTERGUID)_AttackerOwner)
Description
Parameters
- _Defender: The character that received/defended the attack.
- _Attacker: The character that attacked the _Defender.
- _AttackerOwner: The character that owns the _Attacker character.
Notes
- _AttackerOwner can be the same character as _Attacker, _AttackOwner will be different in the case of summoned characters.
See also
- CharacterMissedBy
CharacterMissedBy
Full definitions
- event CharacterMissedBy((CHARACTERGUID)_Defender, (CHARACTERGUID)_Attacker, (CHARACTERGUID)_AttackerOwner)
Thrown when a character misses an attack from another character.
Parameters
- _Defender: The character that received/defended the attack.
- _Attacker: The character that attacked the _Defender.
- _AttackerOwner: The character that owns the _Attacker character.
Notes
- _AttackerOwner can be the same character as _Attacker, _AttackOwner will be different in the case of summoned characters.
See also
- CharacterBlockedBy
CharacterCriticalHitBy
Full definitions
- event CharacterCriticalHitBy((CHARACTERGUID)_Defender, (CHARACTERGUID)_Attacker, (CHARACTERGUID)_AttackerOwner)
- Thrown when a character receives a critical hit from an attack of another character.
Parameters
- _Defender: The character that received/defended the attack.
- _Attacker: The character that attacked the _Defender.
- _AttackerOwner: The character that owns the _Attacker character.
Notes
- _AttackerOwner can be the same character as _Attacker, _AttackOwner will be different in the case of summoned characters.
See also
- CharacterBlockedBy
CharacterKilledBy
Full definitions
- event CharacterKilledBy((CHARACTERGUID)_Defender, (CHARACTERGUID)_Attacker, (CHARACTERGUID)_AttackerOwner)
- Thrown when a character is killed by another character.
Parameters
- _Defender: The character that received/defended the attack.
- _Attacker: The character that attacked the _Defender.
- _AttackerOwner: The character that owns the _Attacker character.
Notes
- _AttackerOwner can be the same character as _Attacker, _AttackOwner will be different in the case of summoned characters.
See also
- CharacterBlockedBy
CharacterEnteredRegion
Full definitions
- event CharacterEnteredRegion((CHARACTERGUID)_Character, (STRING)_Region)
Description
Thrown when a character enters a level because it was placed there in the editor, it was teleported there via script, or it was created/spawned there via script.
Parameters
- _Character: the character that entered the level/region
- _Region: the name of the level/region (as entered in the Levelname property of the Level -> Edit Level Data... menu entry in the editor.
Notes
- For characters statically placed in a level using the editor, this event is thrown only once when the level is first entered. It is not thrown again when loading save games from within that level. TODO: check what happens if the players are teleported out of a level and then back into it (never done in DivinityOrigins mod).
See also
- /
CharacterSawCharacter
Full definitions
- event CharacterSawCharacter((CHARACTERGUID)_Character, (CHARACTERGUID)_OtherCharacter)
Description
Thrown when one _Character sees _OtherCharacter. Note that this event is only thrown if _Character has been registered as an event generator.
Parameters
- _Character: the character that does the seeing.
- _OtherCharacter: the character that is seen
Notes
- By default, only player-controlled characters are event generators. Once you call CharacterCanSee with an NPC as first parameter, an event generator is also registered for this NPC and it will also start throwing CharacterSawCharacter events. This event generator may only work temporarily though, so in general only rely on these events be thrown for player characters.
See also
- CharacterCanSee
- CharacterLostSightOfCharacter
CharacterStoppedUsingItem
Full definitions
- event CharacterStoppedUsingItem((CHARACTERGUID)_Character, (ITEMGUID)_Item)
Description
Thrown when a character stopped using an item, or if a character tried to use an item and failed.
Parameters
- _Character: the character that used or tried to use _Item.
- _Item: the item that was used or attempted to be used
Notes
- /
See also
- /
CombatStarted
Full definitions
- event CombatStarted((INTEGER)_CombatID)
Description
Thrown once a new combat has started and has been completely initialised. I.e., all initial participants have been added, and combat is ready to start.
Parameters
- _CombatID: A handle that identifies the combat. Should always be > 0.
Notes
- This event can also be thrown for an ongoing combat after one or more participants left. In this case, first a new ObjectEnteredCombat event will be thrown for every participant still in the combat, followed by a new CombatStartedEvent with the same _CombatID as before. During these new ObjectEventeredCombat events and CombatStarted event, the combat must again be considered to be not completely initialised yet.
- This event will also be thrown when two combats are merged.
See also
- ObjectEnteredCombat
- ObjectLeftCombat
DialogStartRequested
Full definitions
- event DialogStartRequested((GUIDSTRING)_Target,(GUIDSTRING)_Player)
Description
Thrown whenever a player tries to start a conversation with another object.
Parameters
- _Target: The object to which the conversation request is directed.
- _Player: The player that initiated the conversation
Notes
- Do not use this event directly. Overload PROC_GLOBAL_DialogStartRequested or PROC_GLOBAL_DialogStartRequested_AfterGenerics instead, so that certain common behaviours are guaranteed to hold in all cases.
- This event can only be thrown if the target can accept dialog requests, i.e. if SetHasDialog(_Target,1) is currently active.
See also
- SetHasDialog
- helper PROC_GLOBAL_DialogStartRequested
- helper PROC_GLOBAL_DialogStartRequested_AfterGenerics
GameStarted
Full definitions
- event GameStarted((String)_LevelName, (INTEGER)_IsEditorMode)
Description
Thrown when a level has been loaded and is ready at both the server and client side.
Parameters
- _LevelName: The identifier name of the level that has been loaded
- _IsEditorMode: Indicates whether the game is run in the editor or not
Notes
- The logic of Osiris is split into a server and a client side, even in single player mode. Some important things that run on the client side are visual effects and physics.
- An example of something that is done only when the client side is ready, is playing the effect of the source collars on the characters in the tutorial and Fort Joy levels (since they're visual effects, and hence do not work if started when only the server side is ready)
- See RegionStarted for an event that is thrown when the level is ready on the server side.
- This event is also thrown when loading a savegame, so add additional logic for code that should be executed only the first time when this level is started (or trigger it from the INIT section of a story goal instead).
See also
- RegionStarted
ObjectEnteredCombat
Full definitions
- event ObjectEnteredCombat((GUIDSTRING)_Object, (INTEGER)_CombatID)
Description
Thrown when an object (character or item) enters a combat.
Parameters
- _Object: The object that has entered the combat
- _CombatID: A handle that identifies the combat. Should always be > 0.
Notes
- This can be a combat that is still being set up, or an existing combat joined by a character that wandered too close.
- If the combat is still being set up, not all information may be available yet (e.g., other initial objects may still be added after this one), and you cannot use APIs such as JumpToTurn yet. If you wish to perform some action when a combat has completely started, use CombatStarted instead.
See also
- CombatStarted
- ObjectLeftCombat
ObjectFlagSet
Full definitions
- event ObjectFlagSet((STRING)_FlagName, (GUIDSTRING)_Speaker, (INTEGER)_DialogInstance)
Description
Thrown when the flag _FlagName is set on object _Speaker in the context indicated by _DialogInstance.
Parameters
- _FlagName: The flag that is set.
- _Speaker: The object on which the (character) flag is set.
- _DialogInstance: If the flag was set using a dialog node, _DialogInstance contains the dialog's instance ID. If the flag was set from story, _DialogInstance will contain whatever was passed as last parameter to ObjectSetFlag. If the flag was set from behaviour script, DialogInstance will be zero.
Notes
- /
See also
- ObjectSetFlag
- ObjectClearFlag
ObjectLeftCombat
Full definitions
- event ObjectLeftCombat((GUIDSTRING)_Object, (INTEGER)_CombatID)
Description
Thrown when an object (character or item) leaves a combat.
Parameters
- _Object: The object that has left the combat
- _CombatID: A handle that identifies the combat. Should always be > 0.
Notes
- Reasons why characters may leave combat is because they died, because they got too far from the other participants, or because story forced them to leave.
See also
- CombatStarted
- ObjectEnteredCombat
ObjectSourcePointAddRequest
Full definitions
- event ObjectSourcePointAddRequest((GUIDSTRING)_Target, (INTEGER)_Amount)
Description
Thrown for every attempt to add source to an object, even if the object cannot hold more source. It is thrown before the source has been added.
Parameters
- _Target: The object to which source gets added. In case of a character, this means there is an attempt to add source points. In case of an item, this means there is an attempt to add charges.
- _Amount: The number of source points/charges that is being added.
Notes
- As mentioned in the description, this is triggered even when _Target currently already holds its maximum of source.
See also
- /
RegionStarted
Full definitions
- event RegionStarted((String)_LevelName)
Description
Thrown when the level has been loaded and is ready at the server side, but not yet at the client side.
Parameters
- _LevelName: The identifier name of the level that has been loaded
Notes
- See GameStarted for usage information that also applies to this call.
See also
- GameStarted