72 lines
3.0 KiB
Markdown
72 lines
3.0 KiB
Markdown
---
|
|
title: ArmaRAMDb - Hash Set Bulk
|
|
icon: mdi:file-text-outline
|
|
excerpt: Set multiple fields in the current client's hash table in RAMDb.
|
|
---
|
|
|
|
# ramdb_db_fnc_hashSetBulk
|
|
|
|
## Description
|
|
Sets multiple field-value pairs in the hash table associated with the current client/player in a single operation. This function automatically determines the appropriate hash ID based on the caller's identity, making it more convenient than `hashSetIdBulk` which requires manually specifying an ID. It allows efficiently storing multiple related fields at once, reducing the number of separate database calls required.
|
|
|
|
## Syntax
|
|
```sqf
|
|
[_data] call ramdb_db_fnc_hashSetBulk
|
|
```
|
|
|
|
## Parameters
|
|
| Parameter | Type | Description | Default |
|
|
|-----------|-------|---------------------------------------------------------|---------|
|
|
| `_data` | Array | Array of alternating field names and values to store | [] |
|
|
|
|
## Return Value
|
|
None. The operation runs synchronously to store all the data.
|
|
|
|
## Examples
|
|
### Store player loadout and position:
|
|
```sqf
|
|
[["loadout", [getUnitLoadout player], "position", [getPosASLVisual player]]] call ramdb_db_fnc_hashSetBulk;
|
|
```
|
|
|
|
### Store multiple player settings:
|
|
```sqf
|
|
[["difficulty", ["regular"], "respawn", [true], "tickets", [500]]] call ramdb_db_fnc_hashSetBulk;
|
|
```
|
|
|
|
### Store player data from a client:
|
|
```sqf
|
|
[["name", [name player], "uid", [getPlayerUID player], "score", [score player]]] remoteExecCall ["ramdb_db_fnc_hashSetBulk", 2, false];
|
|
```
|
|
|
|
## Notes
|
|
- The data array must be structured as alternating field names and values: `[field1, value1, field2, value2, ...]`
|
|
- Each field name must be a string
|
|
- Values can be arrays, strings, numbers, or booleans
|
|
- All field-value pairs are stored in a single database operation
|
|
- If any of the fields already exist, their values will be overwritten
|
|
- This function automatically determines which hash table to use based on the caller's identity
|
|
- Use `hashSetIdBulk` when you need to specify a particular hash table by ID
|
|
- More efficient than multiple individual `hashSet` calls when setting several fields
|
|
- The operation is executed immediately and synchronously
|
|
- All operations are logged for debugging purposes
|
|
|
|
## Related Functions
|
|
- `ramdb_db_fnc_hashSet`: Sets a single field value in the current client's hash table
|
|
- `ramdb_db_fnc_hashSetIdBulk`: Sets multiple field-value pairs in a specific hash table (when you need to specify the ID)
|
|
- `ramdb_db_fnc_hashGetAll`: Retrieves all fields from the current client's hash table
|
|
- `ramdb_db_fnc_hashGet`: Retrieves a specific field value from the current client's hash table
|
|
- `ramdb_db_fnc_hashDelete`: Removes the current client's hash table
|
|
|
|
## Links
|
|
|
|
[Hash Delete](hashDelete) |
|
|
[Hash Delete Field](hashDeleteField) |
|
|
[Hash Delete ID](hashDeleteId) |
|
|
[Hash Get](hashGet) |
|
|
[Hash Get All](hashGetAll) |
|
|
[Hash Get All ID](hashGetAllId) |
|
|
[Hash Get ID](hashGetId) |
|
|
[Hash Set](hashSet) |
|
|
[Hash Set Bulk](hashSetBulk) |
|
|
[Hash Set ID](hashSetId) |
|
|
[Hash Set ID Bulk](hashSetIdBulk) |