Balansowanie ekonomii serwera FiveM: wynagrodzenia, ujścia pieniędzy i inflacja

Jak zbalansować ekonomię serwera FiveM: wynagrodzenia, pieniądze początkowe, ceny, ujścia pieniędzy takie jak naprawy, paliwo, podatki i mieszkania, czarna kasa i SQL do obserwacji inflacji.

Objaw: nowi gracze kupią wszystko w dzień, ceny przestają czegokolwiek znaczyć, a najbogatsi gracze mają więcej pieniędzy niż cały katalog sklepu kosztuje.

Ekonomia to dwa przepływy: pieniądze wchodzące do gry (krany) i pieniądze opuszczające ją (ujścia). Gdy krany wygrywają na wystarczająco długo, dostajesz inflację. Ten artykuł pokazuje gdzie pieniądze pochodzą, jak je usunąć ponownie i jak zmierzyć je bazą danych.

Krany: gdzie pieniądze wchodzą

Wyświetl każde źródło zanim zmienisz jakąkolwiek liczbę:

  • Wynagrodzenia: regularna płata na pracę i stopień, czy gracz pracuje czy stoi bezczynnie.
  • Pieniądze początkowe: co nowa postać otrzymuje.
  • Nagrody za pracę i aktywność: dostawy, misje, rabunki, sprzedaż przedmiotów NPC lub sklepowi przedmiotów.
  • Polecenia admina i prezenty: pieniądze, które dajesz ręcznie.

Wynagrodzenia to najcichszy kran, ponieważ działają na czasomierzu. W QBCore przedział wynagrodzeń i początkowe wartości gotówki i banku żyją w głównym konfigu; w ESX Legacy przedział i początkowe konta są również w głównym konfigu, a kwota pochodzi ze stopnia pracy. Znajdź je w Twojej wersji zamiast zgadywania i przeczytaj płatę stopnia w konfigu pracy (ESX, QBCore).

Wskazówka: wiele serwerów płaci wysokie wynagrodzenie, aby przyciągnąć graczy, a następnie zastanawiają się, dlaczego pieniądze są bezwartościowe. Niskie wynagrodzenie z rzeczywistymi nagrodami za aktywność utrzymuje graczy w czymś.

Ustawianie cen

Zakotwicz wszystko do jednej liczby: co gracz zarabia w godzinę normalnej pracy. Następnie obliczyć ceny w godzinach:

Przedmiot Rozsądna cena
Podstawowy samochód Kilka godzin pracy
Dobry samochód Dzień lub dwa gry
Jedzenie i napoje Minuty pracy
Dom lub apartament Wiele godzin, z bieżącymi kosztami

Nie potrzebujesz dokładnych wartości. Potrzebujesz porządku: tanie rzeczy są tanie, przedmioty statusu zajmują rzeczywisty czas. Odwiedź to ponownie po pierwszym tygodniu z rzeczywistymi danymi.

Ujścia pieniędzy

Ujście bierze pieniądze i nic nie daje w zamian. Dobre również dodają gameplay:

  • Naprawy: mechanik pobiera opłaty, lub gracz płaci w warsztacie. Zajrzyj do mechanic job.
  • Paliwo: mały powtarzający się koszt, który każdy kierowca płaci.
  • Podatki: na pojazdy, majątek, zakupy w sklepie lub zyski firmy.
  • Mieszkania: czynsz, media lub cena zakupu. Zobacz housing and apartments.
  • Licencje i grzywny: prawo jazdy, licencja na broń, grzywny policji.
  • Ubezpieczenie i opłaty za przechowywanie pojazdy.

Nie przesadzaj z jednym z nich. Mały koszt, który występuje często, jest lepszy niż jeden gigantyczny koszt, który wydaje się karą.

Gotówka, bank i czarna kasa

Pieniądze istnieją w kilka kont, które mają znaczenie gdy mierzysz. Gotówka i bank to normalne pieniądze. Czarna kasa (brudne pieniądze) to oddzielne konto lub przedmiot, zwykle zarabiany z незаконной aktywności i prany w czyste pieniądze. Utrzymuj to pod kontrolą z kursem konwersji, więc jest warte mniej niż czyste pieniądze i zobacz cash, bank and black money dla tego, jak każdy typ jest przechowywany i wydawany.

Obserwacja inflacji za pomocą zapytań

Nie potrzebujesz dashboardu. Zapytanie w tabeli postaci, uruchomione codziennie, pokazuje trend. Pieniądze są przechowywane jako JSON w jednej kolumnie, więc wyodrębnij wartości:

sql
-- ESX Legacy: users.accounts holds {"money":..,"bank":..,"black_money":..}
SELECT
  COUNT(*) AS characters,
  SUM(CAST(JSON_UNQUOTE(JSON_EXTRACT(accounts, '$.money')) AS DECIMAL(20,0))) AS cash,
  SUM(CAST(JSON_UNQUOTE(JSON_EXTRACT(accounts, '$.bank')) AS DECIMAL(20,0))) AS bank,
  SUM(CAST(JSON_UNQUOTE(JSON_EXTRACT(accounts, '$.black_money')) AS DECIMAL(20,0))) AS black
FROM users;
sql
-- QBCore and QBox: players.money holds {"cash":..,"bank":..,"crypto":..}
SELECT
  COUNT(*) AS characters,
  SUM(CAST(JSON_UNQUOTE(JSON_EXTRACT(money, '$.cash')) AS DECIMAL(20,0))) AS cash,
  SUM(CAST(JSON_UNQUOTE(JSON_EXTRACT(money, '$.bank')) AS DECIMAL(20,0))) AS bank
FROM players;

Sprawdzaj nazwy kolumn w Twojej własnej bazie danych najpierw, ponieważ niektóre serwery je dostosowywają. Przechowuj wynik w małej tabeli z datą, aby mógł ją wykreślić później:

sql
CREATE TABLE IF NOT EXISTS economy_snapshots (
  id INT AUTO_INCREMENT PRIMARY KEY,
  taken_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  characters INT,
  cash BIGINT,
  bank BIGINT
);

Dwa inne zapytania warte są uruchamiania od czasu do czasu: dziesięć najbogatszych postaci (ogromna wartość odstająca wskazuje exploit) i średnie pieniądze na postać. Porównaj je z tym, ile postaci jest aktywnych, ponieważ całość podzielona przez aktywnych graczy to bardziej uczciwa liczba niż całość sama. Aby uzyskać pomoc z zapytań z Lua, zobacz oxmysql queries.

Co robić, gdy się inflacjonuje

  1. Znajdź kran: nową pracę, wypłatę rabunku, błąd. Porównaj daty.
  2. Obniż kran zanim dodasz ujścia.
  3. Dodaj lub podnieś ujście, które dotyka każdego (paliwo, podatki).
  4. Dla ucieczliwego exploitu, napraw go pierwszy, a potem radzić sobie z pieniędzmi, ponieważ usunięcie pieniędzy, podczas gdy wyciek jest otwarty, jest bezużyteczne.

Wyczyszczenie sald to ostateczność, ponieważ gracze tracą zaufanie. Łagodniejsze opcje to podatki na dużych saldach, cięcie odsetek bankowych, lub ograniczone czasowo przedmioty luksusowe, które absorbują pieniądze.

Checklist

Objaw Rozwiązanie
Wszystko przystępne w dzień Obniż wynagrodzenie i pieniądze początkowe
Całkowite pieniądze rosną każdy tydzień Obniż krany, dodaj ujścia, które dotykają każdego
Jedna postać ma absurdalne pieniądze Szukaj exploitu, sprawdzaj logi
Ceny wydają się bezcelowe Obliczaj w godzinach pracy
Czarna kasa zbyt silna Dodaj stratę przy praniu
Brak danych do podjęcia decyzji Snapshot totals codziennie

Szybkie odpowiedzi

Jak mogę wiedzieć, czy moja ekonomia się inflacjonuje?

Sumuj pieniądze wszystkich postaci w bazie danych na harmonogram, na przykład raz dziennie i porównaj liczby. Jeśli całkowita liczba wciąż rośnie szybciej niż liczba graczy, więcej pieniędzy wchodzi niż wychodzi.

Co to jest ujście pieniędzy?

Wszystko, co bierze pieniądze z gry na zawsze: naprawy, paliwo, podatki, czynsz, licencje, grzywny. Bez ujść, pieniądze tylko się akumulują.

Gdzie zmieniam wynagrodzenie i pieniądze początkowe?

W głównym konfigu Twojego frameworku. ESX i QBCore każde mają ustawienia dla przedziału wynagrodzeń i pieniędzy, które nowa postać zaczyna, a płaca pracy jest zdefiniowana na stopień.

Skrypty bez tego problemu

Shop CreatorZbuduj sklep w niecałą minutę — właściciele, pracownicy, sejfy i napady w zestawie.Zobacz skrypt →Pawn Shop AppLombard między graczami wewnątrz lb-phone.Zobacz skrypt →Crypto MiningKup magazyn, składaj koparki część po części i kop monety na żywym rynku.Zobacz skrypt →

Czytaj dalej