PL/Settings system

From Multi Theft Auto: Wiki
Revision as of 16:37, 12 September 2024 by FileEX (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

System ustawień pozwala na zarządzanie ustawieniami poszczególnych zasobów bez konieczności modyfikowania plików źródłowych. Ustawienia mogą być modyfikowane przez skrypty oraz przez administratorów za pomocą konsoli.

Nazwy ustawień

Ustawienia mają przyjazny prosty system nazw, który pozwala określić dostęp oraz zasięg cel ustawienia.

Format nazw: [modyfikator_dostępu][nazwa_zasobu].nazwa_ustawienia

Modyfikatory dostępu:

  • *: publiczny - Ustawienie może być modyfikowane i odczytywane przez dowolny zasób.
  • #: chroniony - Ustawienie może być odczytywane przez dowolny zasób, ale modyfikowane może być tylko przez zasób do którego należy.
  • @: prywatny - Ustawienie może być odczytywane oraz modyfikowane tylko przez zasób do którego należy.
  • Jeśli nie podamy żadnego modyfikatora, domyślnie jest to prywatny dla lokalnych ustawień oraz publiczny dla globalnych ustawień.

Parametr nazwa_zasobu jest opcjonalny. Jeśli nie zostanie podany, wówczas ustawienie jest określone jako globalne. Parametr nazwa_ustawienia może być dowolny, cokolwiek tylko zechcesz.

Przykłady

<meta>
    <settings>
        <setting name="@PrivateEntry" value="MyPrivateValue" myCustomKey="myCustomValue"/>
        <setting name="#ProtectedEntry" value="MyProtectedValue" myCustomKey="myCustomValue"/>
        <setting name="*PublicEntry" value="MyPublicValue" myCustomKey="myCustomValue"/>
    </settings>
</meta>
-- Pobieramy nazwe zasobu;
-- resource to zdefiniowana globalna zmienna określająca bieżący zasób
local resName = getResourceName(resource)

-- Nie musisz podawać nazwy zasobu przed nazwą ustawienia
-- Jednak nazwa zasobu jest konieczna, jeśli chcesz pobrać inną wartość niż tę z parametru value, w tym wypadku np. myCustomKey
local privateEntry = get(resName..'.PrivateEntry')
local protectedEntry = get(resName..'ProtectedEntry')
local publicEntry = get(resName..'PublicEntry')

iprint(privateEntry)    -- MyPrivateValue
iprint(protectedEntry)  -- MyProtectedValue
iprint(publicEntry)     -- MyPublicValue

iprint(get(resName..'.PublicEntry.myCustomKey'))    -- myCustomValue

Funkcje skryptowe

Istnieją dwie funkcje systemu ustawień, które pozwalają na odczytywanie oraz ich modyfikację. Są to set oraz get.

Funkcje konsoli

Istnieją dwie funkcje konsolowe dla systemu ustawień