Difference between revisions of "Osiris/API/CharacterSetForceSynch"

From Divinity Engine Wiki
Jump to: navigation, search
m
m (Corrected documentation to clarify that it does not result in a character's behaviour scripts executing)
Line 2: Line 2:
 
* call '''CharacterSetForceSynch'''(''(CHARACTERGUID)'''''_Character''')
 
* call '''CharacterSetForceSynch'''(''(CHARACTERGUID)'''''_Character''')
 
===== Description =====
 
===== Description =====
Reactions
+
Characters are only synchronised between the server (the game logic) and the client (the presentation) if at least one player character is "nearby" (currently: within 30 meters). This routine can be used to force '''_Character''' to be synchronised even if no player character are nearby, by passing '''1''' as '''_Bool'''. Once the character no longer needs to be force-synchronised, you can make its synchronisation again depend on the nearness of a player character by calling it with '''0''' as '''_Bool'''.
from behaviour scripts are only active if at least one player character
 
is "nearby" (currently: within 30 meters). This routine can be used to  
 
force '''_Character''''s reactions to remain active even if no player character are nearby, by passing '''1''' as '''_Bool'''.
 
Once the character's behaviours no longer need to remain permanently active,
 
you can make its activity status again depend on the nearness of a  
 
player character by calling it with '''0''' as '''_Bool'''.
 
 
===== Notes =====
 
===== Notes =====
 +
* Synchronisation is only important in special cases. For example, a character's linked ghost will only be visible if the character itself is active. So if the character's corpse is far away, you have to force synchronise it for its ghost to show up.
 +
* Forcing a character (or item) to synchronise does not automatically make it active, i.e., it does not make their behaviour scripts execute. If you want that, use [[Osiris/API/CharacterSetForceUpdate|CharacterSetForceUpdate]] instead.
 
* Use this functionality very sparingly, as it can easily lead to a lot of unnecessary overhead.
 
* Use this functionality very sparingly, as it can easily lead to a lot of unnecessary overhead.
 
* If this function is called while the character was inactive, it will '''''not'''''  make it active. It will only keep the character active once it has become active due to a player being nearby, or if it receives an event.
 
* If this function is called while the character was inactive, it will '''''not'''''  make it active. It will only keep the character active once it has become active due to a player being nearby, or if it receives an event.

Revision as of 18:25, 9 September 2017

Full Definition(s)
  • call CharacterSetForceSynch((CHARACTERGUID)_Character)
Description

Characters are only synchronised between the server (the game logic) and the client (the presentation) if at least one player character is "nearby" (currently: within 30 meters). This routine can be used to force _Character to be synchronised even if no player character are nearby, by passing 1 as _Bool. Once the character no longer needs to be force-synchronised, you can make its synchronisation again depend on the nearness of a player character by calling it with 0 as _Bool.

Notes
  • Synchronisation is only important in special cases. For example, a character's linked ghost will only be visible if the character itself is active. So if the character's corpse is far away, you have to force synchronise it for its ghost to show up.
  • Forcing a character (or item) to synchronise does not automatically make it active, i.e., it does not make their behaviour scripts execute. If you want that, use CharacterSetForceUpdate instead.
  • Use this functionality very sparingly, as it can easily lead to a lot of unnecessary overhead.
  • If this function is called while the character was inactive, it will not make it active. It will only keep the character active once it has become active due to a player being nearby, or if it receives an event.
  • As the name and declaration imply, this cannot be used for items. You can use ItemSetForceSynch for them instead, with the same caveats.
  • Off-stage characters cannot be force-synchronised (it may appear to work, but will stop when saving/reloading).
See Also