Difference between revisions of "User:Tinkerer"

From Divinity Engine Wiki
Jump to: navigation, search
m (To be added)
m
 
(9 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
** For items: If it's not forced it will put it at y=0, else it will take the position provided.
 
** For items: If it's not forced it will put it at y=0, else it will take the position provided.
 
** For characters: If it's not forced, it will find the nearest AI-grid position, otherwise it will take the position provided
 
** For characters: If it's not forced, it will find the nearest AI-grid position, otherwise it will take the position provided
 
+
* Event parameter matching/initialisation
==== Combat scripting ===
+
** Global variables and constants (e.g. '1' or "fire") are always inputs (as in: event parameter should match the variable)
 +
*** But: Null global variables, and '_', are neither input, nor output (they're just ignored)
 +
** Local variables are always outputs
 +
==== Combat scripting ====
 
* If you have combats where an enemy gives up at the end and you do not want them to regenerate health and/or armor at that point, you can use the following features:
 
* If you have combats where an enemy gives up at the end and you do not want them to regenerate health and/or armor at that point, you can use the following features:
 
** no health regeneration 3 seconds after leaving combat: set the *character flag* GLO_BlockRegenAfterCombat (handled by DefaultCharacter.charScript)
 
** no health regeneration 3 seconds after leaving combat: set the *character flag* GLO_BlockRegenAfterCombat (handled by DefaultCharacter.charScript)
 
** no magical/physical armor regeneration after leaving combat: set the *tag* NO_ARMOR_REGEN (handled by code)
 
** no magical/physical armor regeneration after leaving combat: set the *tag* NO_ARMOR_REGEN (handled by code)
 +
 +
==== UUID resolution ====
 +
Any of our load procedures works as follows:
 +
* we expect loads from multiple modules to be done according to the order given by module ActiveMod.GetLoadOrderedModules. (Shared first and then down the line)
 +
* if the uuid of an object already exists, the new load overwrites the old one.
 +
* if this happens in the same module, it's a critical design assert. Otherwise it's fine.
 +
 +
==== PointSound ====
 +
* PointSoundDummy extends the range of the PointSound, they will use only 1 sound. This is handy for rivers and other non circular sound emitters
 +
* currently no way to change PointSound while the game is running (changing sound, enabling/disabling)
 +
 +
==== APIs to check when new versions get released ====
 +
* [[Osiris/Shared/DB_HasItemTemplateScriptFlag]]

Latest revision as of 22:36, 23 October 2018

To be added

Behaviour script

  • TeleportTo has a force parameter.
    • For items: If it's not forced it will put it at y=0, else it will take the position provided.
    • For characters: If it's not forced, it will find the nearest AI-grid position, otherwise it will take the position provided
  • Event parameter matching/initialisation
    • Global variables and constants (e.g. '1' or "fire") are always inputs (as in: event parameter should match the variable)
      • But: Null global variables, and '_', are neither input, nor output (they're just ignored)
    • Local variables are always outputs

Combat scripting

  • If you have combats where an enemy gives up at the end and you do not want them to regenerate health and/or armor at that point, you can use the following features:
    • no health regeneration 3 seconds after leaving combat: set the *character flag* GLO_BlockRegenAfterCombat (handled by DefaultCharacter.charScript)
    • no magical/physical armor regeneration after leaving combat: set the *tag* NO_ARMOR_REGEN (handled by code)

UUID resolution

Any of our load procedures works as follows:

  • we expect loads from multiple modules to be done according to the order given by module ActiveMod.GetLoadOrderedModules. (Shared first and then down the line)
  • if the uuid of an object already exists, the new load overwrites the old one.
  • if this happens in the same module, it's a critical design assert. Otherwise it's fine.

PointSound

  • PointSoundDummy extends the range of the PointSound, they will use only 1 sound. This is handy for rivers and other non circular sound emitters
  • currently no way to change PointSound while the game is running (changing sound, enabling/disabling)

APIs to check when new versions get released