Game logic - Entity storage – Ylands

From Bohemia Interactive Community
Jump to navigation Jump to search
(Created page with "=Description= Special game logic to store data specific to one entity (e.g player). When assigned trough instruction Add Storage, it will create a copy witch will be attached...")
 
No edit summary
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Description=
=Description=
Special game logic to store data specific to one entity (e.g player). When assigned trough instruction Add Storage, it will create a copy witch will be attached to selected entity instance.
Special game logic to store data specific to one entity (e.g player). When assigned trough instruction [[Ylands Tile - Add-Remove entity storage|'''Add Storage''']], it will create a '''copy''' witch will be '''attached''' to selected entity '''instance'''.


*Storage has to be attached to entity via Add storage instruction, target entity becomes storage owner
*Storage has to be attached to entity via '''Add Storage''' instruction, target entity becomes [[Ylands Tile - Storage owner literal|'''storage owner''']]
*Any storage can have unlimited number of owners, each owner will have its unique copy of attached storage
*Any storage can have unlimited number of owners, each owner will have its unique copy of attached storage
*Entities can have unlimited number of storages
*Entities can have unlimited number of storages
*Each owner will have unique values in each storage
*Each owner will have '''unique values''' in each storage
*To access variable, storage owner has to defined
*Storage data (variables) can be found in '''Variables''' category
*Storage data (variables) can be then found in Variables category
*Storage instructions can be found in '''Instructions''' category


Note: In case a script will try to access non-existent storage this will stop the script. So it is crucial to do a storage check using Has storage instruction before accessing storage on unknown entity  (e.g Trigger object)
'''Custom instructions'''
*Instructions in a storage are executed only within currently called storage instance and it will affect only variables of this instance.


Example - adding storage
'''Storages in compositions'''
 
*When composition using any storage will get exported, it will save with a copy of that storage (even if not selected)
Example - accessing storage
*When such composition is placed in other scenario, it will make new independent copy of included storage under new name (e.g Entity storage (2))
 
*In case of multiple instances of same composition, references in all compositions will be set to one storage
=Custom instruction=
*Instruction in a storage are executed only within currently called storage instance and it will affect only variables of this instance


Example
<gallery>
Image:Ylands-Editor-Entity-Storage-example1a.png|Assign storage
Image:Ylands-Editor-Entity-Storage-example1b.png|Entity storage
Image:Ylands-Editor-Entity-Storage-example1c.png|Instruction call
</gallery>


=Storages in compositions=
=Notes=
*When composition using any storage will get exported, it will save with a copy of that storage (even if not selected)
*In case a script will try to access non-existent storage this will stop the script. So it is crucial to do a storage check using *[[Ylands Tile - Has entity storage|'''Has storage''']] instruction before accessing storage on unknown entity  (e.g Trigger object).
*When such composition is placed in other scenario, it will make new independent copy of included storage under new name (e.g Global (2))
*In case of multiple instances of same composition, references in all compositions will be set to one storage


=Properties=
=Related Instructions=
N/A
*[[Ylands Tile - Add-Remove entity storage|Add / Remove Entity Storage]]
*[[Ylands Tile - Has entity storage|Has Entity Storage]]


=Events=
N/A


=Instructions=
----
*Has storage - returns whenever target entity has desired storage
{{Ylands scripting navbox}}
*Add storage -  attaches storage to target entity
{{DEFAULTSORT:{{#sub:{{PAGENAME}}|19}}}}
*Remove storage -  removes storage from target entity


=Literals=
[[Category: Game Logic]]
*Storage - target entity storage
[[Category: Ylands 0.10]]
*Storage owner - pointer to entity owning the current storage instance

Revision as of 15:48, 12 June 2019

Description

Special game logic to store data specific to one entity (e.g player). When assigned trough instruction Add Storage, it will create a copy witch will be attached to selected entity instance.

  • Storage has to be attached to entity via Add Storage instruction, target entity becomes storage owner
  • Any storage can have unlimited number of owners, each owner will have its unique copy of attached storage
  • Entities can have unlimited number of storages
  • Each owner will have unique values in each storage
  • Storage data (variables) can be found in Variables category
  • Storage instructions can be found in Instructions category

Custom instructions

  • Instructions in a storage are executed only within currently called storage instance and it will affect only variables of this instance.

Storages in compositions

  • When composition using any storage will get exported, it will save with a copy of that storage (even if not selected)
  • When such composition is placed in other scenario, it will make new independent copy of included storage under new name (e.g Entity storage (2))
  • In case of multiple instances of same composition, references in all compositions will be set to one storage

Notes

  • In case a script will try to access non-existent storage this will stop the script. So it is crucial to do a storage check using *Has storage instruction before accessing storage on unknown entity (e.g Trigger object).

Related Instructions



Template:Ylands scripting navbox