Skip to main content

Dodawanie nowych stacji benzynowych

Stacje benzynowe są przechowywane w bazie danych, w tabeli:

tW_gas_stations

Każdy rekord w tej tabeli oznacza jedną stację benzynową na serwerze, jedna stacja benzynowa może zawierać więcej niż 1 punkt tankowania.


Szybka instrukcja

Aby dodać nową stację benzynową:

  1. Dodaj nowy rekord w tabeli tW_gas_stations.
  2. Nie uzupełniaj ręcznie pola id.
  3. Uzupełnij nazwę stacji w name.
  4. Ustaw pozycje markerów w position.
  5. Ustaw pozycję tablicy cen w price_billboard_position.
  6. Ustaw ceny paliwa w prices.
  7. Pozostaw weekly_price_history jako NULL.
  8. Ustaw pojemność zbiorników w fuel_capacity.
  9. Ustaw aktualną ilość paliwa w fuel_amount.
  10. Ustaw pozycję podpięcia węża w fuel_tank_hose_position.
info

Pola position, price_billboard_position, prices, fuel_capacity, fuel_amount oraz fuel_tank_hose_position muszą być zapisane jako JSON.

Do konwersji tablic Lua na JSON użyj strony: tableToJSON.


Struktura tabeli

Tabela tW_gas_stations posiada następujące kolumny:

KolumnaOpis
idAutomatyczne ID stacji. Nie należy go wpisywać ręcznie.
nameNazwa stacji benzynowej widoczna w panelu frakcji Petrol.
positionPozycje markerów do tankowania. Wymaga danych w formacie JSON. Pomoc: tableToJSON.
price_billboard_positionPozycja tablicy z cenami paliwa. Wymaga danych w formacie JSON. Pomoc: tableToJSON.
pricesCeny paliw na stacji za litr. Wymaga danych w formacie JSON. Pomoc: tableToJSON.
weekly_price_historyHistoria cen oraz transakcji z ostatniego tygodnia. Domyślnie NULL.
fuel_capacityMaksymalna pojemność zbiorników paliwa. Wymaga danych w formacie JSON. Pomoc: tableToJSON.
fuel_amountAktualna ilość paliwa dostępna na stacji. Wymaga danych w formacie JSON. Pomoc: tableToJSON.
fuel_tank_hose_positionPozycja podpięcia węża przy rozładunku paliwa z cysterny. Wymaga danych w formacie JSON. Pomoc: tableToJSON.

Opis wymaganych pól

Poniżej znajduje się opis wszystkich najważniejszych kolumn tabeli tW_gas_stations.


id

Kolumna id przechowuje automatyczny identyfikator stacji benzynowej.

warning

Ta wartość jest uzupełniana automatycznie, nie uzupełniaj ręcznie kolumny id.


name

Kolumna name przechowuje nazwę stacji benzynowej.

Nazwa ta jest widoczna między innymi w panelu frakcji Petrol.

Przykład:

Nazwa stacji benzynowej
Stacja Idlewood

position

Kolumna position przechowuje pozycje markerów tankowania.

Marker tankowania to miejsce, w którym gracz może zatankować pojazd. Jedna stacja benzynowa może posiadać jeden lub kilka markerów tankowania.

Dane w tej kolumnie muszą być zapisane w formacie JSON.

tip

Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.

Przykład jednej pozycji

Tablica Lua:

Tablica Lua
{
{ 1941.25, -1772.10, 13.38 }
}

JSON do wpisania w bazie danych:

JSON
[[[1941.25,-1772.1,13.38]]]

Przykład kilku pozycji

Tablica Lua:

Tablica Lua
{
{ 1941.25, -1772.10, 13.38 },
{ 1944.80, -1772.15, 13.38 },
{ 1948.20, -1772.30, 13.38 }
}

JSON do wpisania w bazie danych:

JSON
[[[1941.25,-1772.1,13.38],[1944.8,-1772.15,13.38],[1948.2,-1772.3,13.38]]]

Każda pozycja składa się z trzech wartości:

WartośćZnaczenie
xPozycja na osi X
yPozycja na osi Y
zWysokość

price_billboard_position

Kolumna price_billboard_position przechowuje pozycję tablicy z cenami paliwa.

Jest to pojedyncza pozycja w świecie gry, określająca miejsce, w którym znajduje się billboard lub tablica z cenami.

Dane w tej kolumnie muszą być zapisane w formacie JSON.

tip

Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.

Tablica Lua:

Tablica Lua
{ 1942.50, -1770.20, 14.20 }

JSON do wpisania w bazie danych:

JSON
[[1942.5,-1770.2,14.2]]

prices

Kolumna prices przechowuje ceny paliwa za jeden litr.

Dane w tej kolumnie muszą być zapisane w formacie JSON.

Dostępne typy paliwa:

KluczRodzaj paliwa
pb95Benzyna
dieselDiesel
lpgLPG
tip

Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.

Tablica Lua:

Tablica Lua
{
pb95 = 5.50,
diesel = 5.80,
lpg = 2.90
}

JSON do wpisania w bazie danych:

JSON
[{"pb95":5.5,"diesel":5.8,"lpg":2.9}]

Powyższy przykład oznacza, że:

  • PB95 kosztuje 5.50 za litr,
  • diesel kosztuje 5.80 za litr,
  • LPG kosztuje 2.90 za litr.

weekly_price_history

Kolumna weekly_price_history przechowuje historię cen oraz transakcji z ostatniego tygodnia.

Domyślnie wartość tej kolumny powinna wynosić:

NULL

System uzupełnia tę kolumnę automatycznie podczas działania skryptu.

warning

Tej kolumny nie należy uzupełniać ręcznie podczas dodawania nowej stacji benzynowej, pozostaw weekly_price_history jako NULL.


fuel_capacity

Kolumna fuel_capacity określa maksymalną pojemność zbiorników paliwa na stacji.

Każdy typ paliwa może mieć osobną maksymalną pojemność.

Dane w tej kolumnie muszą być zapisane w formacie JSON.

tip

Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.

Tablica Lua:

Tablica Lua
{
pb95 = 1000,
diesel = 1000,
lpg = 1000
}

JSON do wpisania w bazie danych:

JSON
[{"pb95":1000,"diesel":1000,"lpg":1000}]

Powyższy przykład oznacza, że stacja może maksymalnie przechowywać:

  • 1000 litrów PB95,
  • 1000 litrów diesla,
  • 1000 litrów LPG.

fuel_amount

Kolumna fuel_amount określa aktualną ilość paliwa dostępną na stacji.

Wartości w fuel_amount nie powinny być większe niż wartości ustawione w fuel_capacity.

Dane w tej kolumnie muszą być zapisane w formacie JSON.

warning

Nie ustawiaj większej ilości paliwa niż maksymalna pojemność zbiornika określona w fuel_capacity.

tip

Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.

Tablica Lua:

Tablica Lua
{
pb95 = 500,
diesel = 500,
lpg = 500
}

JSON do wpisania w bazie danych:

JSON
[{"pb95":500,"diesel":500,"lpg":500}]

Powyższy przykład oznacza, że na stacji aktualnie znajduje się:

  • 500 litrów PB95,
  • 500 litrów diesla,
  • 500 litrów LPG.

fuel_tank_hose_position

Kolumna fuel_tank_hose_position przechowuje pozycję miejsca, do którego podpinany jest wąż podczas rozładunku paliwa z cysterny.

Ta pozycja jest używana przez frakcję Petrol.

Dane w tej kolumnie muszą być zapisane w formacie JSON.

tip

Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.

Tablica Lua:

Tablica Lua
{ 1945.30, -1768.70, 13.90 }

JSON do wpisania w bazie danych:

JSON
[[1945.3,-1768.7,13.9]]

Każda pozycja składa się z trzech wartości:

WartośćZnaczenie
xPozycja na osi X
yPozycja na osi Y
zWysokość

Podsumowanie pól wymagających JSON-a

Poniższe kolumny muszą być zapisane w formacie JSON:

KolumnaCo przechowuje
positionPozycje markerów tankowania
price_billboard_positionPozycję tablicy z cenami paliwa
pricesCeny paliw
fuel_capacityMaksymalną pojemność zbiorników
fuel_amountAktualną ilość paliwa
fuel_tank_hose_positionPozycję podpięcia węża
info

Jeżeli wartość jest zapisana jako tablica Lua, przed wpisaniem jej do bazy danych należy przekonwertować ją na JSON.

Do tego służy narzędzie tableToJSON.


Przykład gotowego rekordu

Poniżej znajduje się przykład gotowego rekordu jednej stacji benzynowej.

info

Wartości w tym przykładzie są przykładowe.
Przed dodaniem własnej stacji należy podmienić pozycje, nazwę, ceny oraz ilości paliwa na własne dane.

KolumnaPrzykładowa wartość
idNie wpisywać ręcznie
nameStacja Idlewood
position[[[1941.25,-1772.1,13.38],[1944.8,-1772.15,13.38]]]
price_billboard_position[[1942.5,-1770.2,14.2]]
prices[{"pb95":5.5,"diesel":5.8,"lpg":2.9}]
weekly_price_historyNULL
fuel_capacity[{"pb95":1000,"diesel":1000,"lpg":1000}]
fuel_amount[{"pb95":500,"diesel":500,"lpg":500}]
fuel_tank_hose_position[[1945.3,-1768.7,13.9]]

Gotowy przykład wartości

Jeżeli dodajesz rekord ręcznie w bazie danych, pola możesz uzupełnić w taki sposób:

Przykładowy rekord
name = 'Stacja Idlewood'
position = '[[[1941.25,-1772.1,13.38],[1944.8,-1772.15,13.38]]]'
price_billboard_position = '[[1942.5,-1770.2,14.2]]'
prices = '[{"pb95":5.5,"diesel":5.8,"lpg":2.9}]'
weekly_price_history = NULL
fuel_capacity = '[{"pb95":1000,"diesel":1000,"lpg":1000}]'
fuel_amount = '[{"pb95":500,"diesel":500,"lpg":500}]'
fuel_tank_hose_position = '[[1945.3,-1768.7,13.9]]'
warning

Kolumny id nie należy wpisywać ręcznie.
Baza danych powinna nadać ją automatycznie.


Przykładowe zapytanie SQL

Poniżej znajduje się przykład dodania stacji za pomocą zapytania SQL.

Dodanie przykładowej stacji
INSERT INTO tW_gas_stations (
name,
position,
price_billboard_position,
prices,
weekly_price_history,
fuel_capacity,
fuel_amount,
fuel_tank_hose_position
) VALUES (
'Stacja Idlewood',
'[[[1941.25,-1772.1,13.38],[1944.8,-1772.15,13.38]]]',
'[[1942.5,-1770.2,14.2]]',
'[{"pb95":5.5,"diesel":5.8,"lpg":2.9}]',
NULL,
'[{"pb95":1000,"diesel":1000,"lpg":1000}]',
'[{"pb95":500,"diesel":500,"lpg":500}]',
'[[1945.3,-1768.7,13.9]]'
);

Co oznaczają przykładowe wartości?

PoleZnaczenie
nameNazwa stacji widoczna w systemie
positionDwa markery tankowania
price_billboard_positionJedna pozycja tablicy z cenami paliwa
pricesCeny paliw za litr
weekly_price_historyBrak historii przy nowej stacji
fuel_capacityMaksymalna pojemność zbiorników
fuel_amountAktualna ilość paliwa na stacji
fuel_tank_hose_positionPozycja podpięcia węża cysterny

Pola wymagające formatu JSON

Poniższe pola muszą być zapisane jako JSON:

KolumnaPrzykład
position[[[1941.25,-1772.1,13.38],[1944.8,-1772.15,13.38]]]
price_billboard_position[[1942.5,-1770.2,14.2]]
prices[{"pb95":5.5,"diesel":5.8,"lpg":2.9}]
fuel_capacity[{"pb95":1000,"diesel":1000,"lpg":1000}]
fuel_amount[{"pb95":500,"diesel":500,"lpg":500}]
fuel_tank_hose_position[[1945.3,-1768.7,13.9]]
tip

Jeżeli masz dane zapisane jako tablica Lua, najpierw przekonwertuj je na JSON za pomocą narzędzia tableToJSON.


Najważniejsze informacje

  • id zostaw puste — baza danych nada je automatycznie.
  • weekly_price_history ustaw jako NULL.
  • fuel_amount nie powinno być większe niż fuel_capacity.
  • Wszystkie pozycje oraz dane paliwowe muszą być zapisane jako JSON.
  • Do konwersji tablic Lua na JSON użyj narzędzia tableToJSON.