Proc:Vault
Overview
The vault procedure allows players establish their own customizable rooms and to store items in vaults. Vault rooms are created by Proc:Neighborhood when a player issues a BUILD command.
KVP
The vault proc uses KVP to store some values related to the capabilities of the vault. These KVP values are:
Key | Description |
---|---|
CFG_ID | Standard proc key - must be set to 1. |
PROC_NUM | Standard proc key - must be set to 4. |
PROC_ENABLED | Standard proc key - must be set to 1. |
PROC_CAN_READ | Standard proc key - set to 44. |
ROOM_FLAGS | Flags pertaining to the room. 1 = Entry Room |
VAULT_COMBINATION | Combination to unlock the vault. |
VAULT_CAPACITY | Number of slots available for storing equipment in the vault. New vaults receive 20 slots. The maximum available for purchase is a total of 40 slots. |
MODULE_FLAGS | Flag value indicating which upgrade modules have been purchased. 1 = Say Recall |
KEYLESS_PHRASE | Phrase used to enter/exit the vault. |
KEYLESS_PERMIT | Colon separated list of players allowed to enter the vault using the keyless entry phrase. |
Database Tables
RoomOwners
The RoomOwners table contains fields regarding the owner of the room. Currently, owner status is only used for vaults but could be used in other ways in the future.
Field | Description |
---|---|
VnumRoom | Virtual number of the room. |
OwnerTypeId | 1 = Player 2 = Clan |
OwnerName | Name of the player or clan. |
VaultItems
The VaultItems table contains the list of items currently stored in the vault.
Field | Description |
---|---|
UniqueID | Unique identifier for the row of data. |
VnumRoom | Virtual number of the room containing this item. |
SortOrder | Value indicating what order the data should be pulled from the table via the ORDER BY clause. This is important for making sure that relationships are maintained between items and their clasps, runes, and/or contents. |
Clasps | Total number of clasps and runes attached/socketed to this item. |
Children | Number of items contained inside this item. This does not count nested items. |
ItemVnum | Virtual number of the item. |
ItemValue0 - ItemValue13 | Integer values attached to the item. These values mean different things depending on the type of item. |
ItemExtraFlag0 - ItemExtraFlag2 | The extra flags of the item. |
ItemTimer | How long before the item crumbles. |
ItemBitVector | Bit vector of AFF_XXX flags to set on the player when the item is worn. |
ItemSerial | The semi-unique serial number of the item. |
ItemAffect0Location - ItemAffect4Location | The type of affect the item has on the player when the item is worn. |
ItemAffect0Modifier - ItemAffect4Modifier | The amount the affect changes on the player when the item is worn. |
ItemName | The names or keywords of this item. This value is always saved to the database but is ignored when the item is loaded unless the item has been restrung and contains the ITEM_MODIFIED flag. |
ItemDescription | The description show when the item is in a room. This value is always saved to the database but is ignored when the item is loaded unless the item has been restrung and contains the ITEM_MODIFIED flag. |
ItemShortDescription | The description of the item when it is in inventory or a container. This value is always saved to the database but is ignored when the item is loaded unless the item has been restrung and contains the ITEM_MODIFIED flag. |
ItemActionDescription | The description of the item when it is used. This value is always saved to the database but is ignored when the item is loaded unless the item has been restrung and contains the ITEM_MODIFIED flag. |
Upgrading from Old Code
The steps required to upgrade a vault from the old code are:
- Have the player empty the vault
- UPGRADE! VAULT <player>
- UNLOCK VAULT
- Have the player put their items back in the vault
- Have the player lock vault <new combination>
It may be easier for the immortal to handle emptying the vault and then putting the items back in. If the immortal has an empty inventory at the start, the items can be deposited via DEPOSIT ALL. Also, mortals will be unable to deposit personal items belonging to alt characters.
If the player has purchased a say recall trigger, you will need to:
- HOUSE UPGRADE RECALL
- Purge the invisible object in the room providing the old trigger.
- ZONE DELETE the command creating the invisible trigger object.
- SAVEAREA
- Go outside the vault and purge the invisible trigger object if it exists.
If the player has purchased keyless entry, you will need to:
- HOUSE UPGRADE KEYLESS <keyphrase>
- HOUSE PERMIT for each additional player with access to the house.
- HOUSE SET <message name> <message> for any custom teleportation messages.
- Purge the invisible object in the room providing the old trigger.
- ZONE DELETE the command creating the invisible trigger object.
- SAVEAREA
- Go outside the vault and purge the invisible trigger object if it exists.