<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_md_docs_2hash_2hash_get" xml:lang="en-US">
<title>hashGet</title>
<indexterm><primary>hashGet</primary></indexterm>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md204">
<title>autotoc_md204</title>
<para>title: ArmaRAMDb - Hash Get icon: mdi:file-text-outline </para>
</section>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md205">
<title>excerpt: Get a field value from the current client&apos;s hash table in RAMDb.</title></section>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md206">
<title>ramdb_db_fnc_hashGet</title><section xml:id="_md_docs_2hash_2hash_get_1autotoc_md207">
<title>Description</title>
<para>Retrieves the value associated with a specific field in the hash table of the current client/player. This function automatically determines the appropriate hash ID based on the caller&apos;s identity, making it more convenient than <computeroutput>hashGetId</computeroutput> which requires manually specifying an ID. It accesses hash data asynchronously and returns the result through a callback function.</para>
</section>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md208">
<title>Syntax</title>
<para><literallayout><computeroutput>[_keyField,&#32;_function,&#32;_call,&#32;_netId]&#32;call&#32;ramdb_db_fnc_hashGet
</computeroutput></literallayout></para>
</section>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md209">
<title>Parameters</title>
<para><informaltable frame="all">
    <tgroup cols="4" align="left" colsep="1" rowsep="1">
      <colspec colname='c1'/>
      <colspec colname='c2'/>
      <colspec colname='c3'/>
      <colspec colname='c4'/>
<thead>
      <row  class='markdownTableHead'>
<entry>
<para>Parameter   </para>
</entry><entry>
<para>Type   </para>
</entry><entry>
<para>Description   </para>
</entry><entry>
<para>Default    </para>
</entry></row>
</thead><tbody>
      <row  class='markdownTableRowOdd'>
<entry>
<para><computeroutput>_keyField</computeroutput>   </para>
</entry><entry>
<para>String   </para>
</entry><entry>
<para>Name of the field in the hash to retrieve   </para>
</entry><entry>
<para>&quot;&quot;    </para>
</entry></row>
      <row  class='markdownTableRowEven'>
<entry>
<para><computeroutput>_function</computeroutput>   </para>
</entry><entry>
<para>String   </para>
</entry><entry>
<para>Name of the function to receive the retrieved data   </para>
</entry><entry>
<para>&quot;&quot;    </para>
</entry></row>
      <row  class='markdownTableRowOdd'>
<entry>
<para><computeroutput>_call</computeroutput>   </para>
</entry><entry>
<para>Boolean   </para>
</entry><entry>
<para>Whether to call the function directly (true) or spawn (false)   </para>
</entry><entry>
<para>false    </para>
</entry></row>
      <row  class='markdownTableRowEven'>
<entry>
<para><computeroutput>_netId</computeroutput>   </para>
</entry><entry>
<para>String   </para>
</entry><entry>
<para>(Optional) NetID of the player to receive the data   </para>
</entry><entry>
<para>&quot;&quot;   </para>
</entry></row>
    </tbody>
    </tgroup>
</informaltable>
</para>
</section>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md210">
<title>Return Value</title>
<para>None. The retrieved data is passed to the specified callback function asynchronously.</para>
</section>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md211">
<title>Examples</title><section xml:id="_md_docs_2hash_2hash_get_1autotoc_md212">
<title>Retrieve a player&apos;s loadout:</title>
<para><literallayout><computeroutput>[&quot;loadout&quot;,&#32;&quot;ramdb_db_fnc_test&quot;]&#32;call&#32;ramdb_db_fnc_hashGet;
</computeroutput></literallayout></para>
</section>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md213">
<title>Retrieve data with synchronous callback:</title>
<para><literallayout><computeroutput>[&quot;playerScore&quot;,&#32;&quot;ramdb_db_fnc_processScore&quot;,&#32;true]&#32;call&#32;ramdb_db_fnc_hashGet;
</computeroutput></literallayout></para>
</section>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md214">
<title>Retrieve data and send it to a specific client:</title>
<para><literallayout><computeroutput>[&quot;loadout&quot;,&#32;&quot;ramdb_db_fnc_test&quot;,&#32;false,&#32;netId&#32;player]&#32;remoteExecCall&#32;[&quot;ramdb_db_fnc_hashGet&quot;,&#32;2,&#32;false];
</computeroutput></literallayout></para>
</section>
</section>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md215">
<title>Notes</title>
<para><itemizedlist>
<listitem>
<para>Retrieves a value from the current client&apos;s hash table</para>
</listitem><listitem>
<para>The data is retrieved asynchronously through the extension&apos;s callback system</para>
</listitem><listitem>
<para>Both the field name and callback function name must be provided</para>
</listitem><listitem>
<para>Input validation ensures both required parameters are non-empty</para>
</listitem><listitem>
<para>When a netId is provided, the data is sent to that specific client</para>
</listitem><listitem>
<para>The <computeroutput>_call</computeroutput> parameter determines whether the function is called directly (synchronous) or spawned (asynchronous)</para>
</listitem><listitem>
<para>This function automatically determines which hash table to use based on the caller&apos;s identity</para>
</listitem><listitem>
<para>Use <computeroutput>hashGetId</computeroutput> when you need to specify a particular hash table by ID</para>
</listitem><listitem>
<para>All operations are logged for debugging purposes</para>
</listitem></itemizedlist>
</para>
</section>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md216">
<title>Related Functions</title>
<para><itemizedlist>
<listitem>
<para><computeroutput>ramdb_db_fnc_hashGetId</computeroutput>: Retrieves a field value from a specific hash table (when you need to specify the ID)</para>
</listitem><listitem>
<para><computeroutput>ramdb_db_fnc_hashGetAll</computeroutput>: Retrieves all fields from the current client&apos;s hash table</para>
</listitem><listitem>
<para><computeroutput>ramdb_db_fnc_hashGetAllId</computeroutput>: Retrieves all fields from a specific hash table</para>
</listitem><listitem>
<para><computeroutput>ramdb_db_fnc_hashSet</computeroutput>: Sets a field value in the current client&apos;s hash table</para>
</listitem><listitem>
<para><computeroutput>ramdb_db_fnc_scheduler</computeroutput>: Processes the callback from the database extension</para>
</listitem></itemizedlist>
</para>
</section>
<section xml:id="_md_docs_2hash_2hash_get_1autotoc_md217">
<title>Links</title>
<para><link linkend="_md_docs_2hash_2hash_delete">Hash Delete</link> | <link linkend="_md_docs_2hash_2hash_delete_id">Hash Delete ID</link> | <link linkend="_md_docs_2hash_2hash_get">Hash Get</link> | <link linkend="_md_docs_2hash_2hash_get_all">Hash Get All</link> | <link linkend="_md_docs_2hash_2hash_get_all_id">Hash Get All ID</link> | <link linkend="_md_docs_2hash_2hash_get_id">Hash Get ID</link> | <link linkend="_md_docs_2hash_2hash_remove">Hash Remove</link> | <link linkend="_md_docs_2hash_2hash_remove_id">Hash Remove ID</link> | <link linkend="_md_docs_2hash_2hash_set">Hash Set</link> | <link linkend="_md_docs_2hash_2hash_set_bulk">Hash Set Bulk</link> | <link linkend="_md_docs_2hash_2hash_set_id">Hash Set ID</link> | <link linkend="_md_docs_2hash_2hash_set_id_bulk">Hash Set ID Bulk</link> </para>
</section>
</section>
</section>
