PL/getAccountData

From Multi Theft Auto: Wiki
Jump to navigation Jump to search

[[{{{image}}}|link=|]] Note: Polecamy, abyś klucze wartości zapisywał w sposób 'zasób.klucz'. Zostanie to pokazane w przykładzie poniżej. Może to zapobiec niezgodnościom pomiędzy różnymi zasobami.

Funkcja ta pozyskuje wartość zapisaną pod danym kluczem przez setAccountData. Dane zapisane w account data są trwale zapisane przez całą sesję użytkownika, wyjątkiem jest granie przy użyciu konta gościa.

Składnia

string getAccountData ( account konto, string klucz )

OOP Syntax Help! I don't understand this!

Method: account:getData(...)
Counterpart: setAccountData


Required Arguments

  • theAccount: Konto z którego chcesz pobrać wartość.
  • key: Klucz pod którym jest zapisana wartość.

Zwracana wartość

Funkcja ta zwraca string zawierający wartość lub fałsz jeżeli nie było żadnej wartości pod danym kluczem.

Przykład

Załóżmy, że tworzymy dwa zasoby w którym chcemy użyć klucza o nazwie punkty. Pierwszy to ps a drugi to pp, gdybyśmy w obu jako klucz ustawili po prostu punkty oba zasoby nadpisywałyby wartość na nową.

Przykład poprawnego użycia:

-- zasób ps

function nadajPunkt(plr, cmd)
	local acc = getPlayerAccount(plr) -- pobieramy swoje konto
	local wartosc = getAccountData(acc, "ps.pkt") -- pobieramy wartosc naszego konta spod klucza ps.pkt
	setAccountData(acc, "ps.pkt", wartosc + 1) -- nadajemy o 1 wiecej obecnej wartości klucza ps.pkt
end
addCommandHandler("nadajpkt", nadajPunkt)


-- zasób pp
function nadajPkt(plr, cmd)
	local acc = getPlayerAccount(plr) -- pobieramy swoje konto
	local wartosc = getAccountData(acc, "pp.pkt") -- pobieramy wartosc naszego konta spod klucza ps.pkt
	setAccountData(acc, "pp.pkt", wartosc + 1) -- nadajemy o 1 wiecej obecnej wartości klucza ps.pkt
end
addCommandHandler("nadajpunkt", nadajPkt)

-- wpisujac 3 razy komende /nadajpkt z zasobu ps mamy 3 punkty pod kluczem ps.pkt, wpisujac raz komende /nadajpunkt z zasobu pp mamy 1 punkt pod kluczem pp.pkt
-- gdybyśmy ustawili jako klucz funkcji getAccountData oraz setAccountData samo pkt, bez przedrostka nazwy zasobu czyli pp. lub ps.
-- punkty te by się sumowały i zamiast w dwóch zasobach mieć dwa osobne naliczania punktów, mielibyśmy jedno główne sumowanie

Zobacz również