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ą:
- Dodaj nowy rekord w tabeli
tW_gas_stations. - Nie uzupełniaj ręcznie pola
id. - Uzupełnij nazwę stacji w
name. - Ustaw pozycje markerów w
position. - Ustaw pozycję tablicy cen w
price_billboard_position. - Ustaw ceny paliwa w
prices. - Pozostaw
weekly_price_historyjakoNULL. - Ustaw pojemność zbiorników w
fuel_capacity. - Ustaw aktualną ilość paliwa w
fuel_amount. - Ustaw pozycję podpięcia węża w
fuel_tank_hose_position.
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:
| Kolumna | Opis |
|---|---|
id | Automatyczne ID stacji. Nie należy go wpisywać ręcznie. |
name | Nazwa stacji benzynowej widoczna w panelu frakcji Petrol. |
position | Pozycje markerów do tankowania. Wymaga danych w formacie JSON. Pomoc: tableToJSON. |
price_billboard_position | Pozycja tablicy z cenami paliwa. Wymaga danych w formacie JSON. Pomoc: tableToJSON. |
prices | Ceny paliw na stacji za litr. Wymaga danych w formacie JSON. Pomoc: tableToJSON. |
weekly_price_history | Historia cen oraz transakcji z ostatniego tygodnia. Domyślnie NULL. |
fuel_capacity | Maksymalna pojemność zbiorników paliwa. Wymaga danych w formacie JSON. Pomoc: tableToJSON. |
fuel_amount | Aktualna ilość paliwa dostępna na stacji. Wymaga danych w formacie JSON. Pomoc: tableToJSON. |
fuel_tank_hose_position | Pozycja 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.
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:
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.
Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.
Przykład jednej pozycji
Tablica Lua:
{
{ 1941.25, -1772.10, 13.38 }
}
JSON do wpisania w bazie danych:
[[[1941.25,-1772.1,13.38]]]
Przykład kilku pozycji
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:
[[[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 |
|---|---|
x | Pozycja na osi X |
y | Pozycja na osi Y |
z | Wysokość |
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.
Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.
Tablica Lua:
{ 1942.50, -1770.20, 14.20 }
JSON do wpisania w bazie danych:
[[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:
| Klucz | Rodzaj paliwa |
|---|---|
pb95 | Benzyna |
diesel | Diesel |
lpg | LPG |
Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.
Tablica Lua:
{
pb95 = 5.50,
diesel = 5.80,
lpg = 2.90
}
JSON do wpisania w bazie danych:
[{"pb95":5.5,"diesel":5.8,"lpg":2.9}]
Powyższy przykład oznacza, że:
- PB95 kosztuje
5.50za litr, - diesel kosztuje
5.80za litr, - LPG kosztuje
2.90za 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.
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.
Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.
Tablica Lua:
{
pb95 = 1000,
diesel = 1000,
lpg = 1000
}
JSON do wpisania w bazie danych:
[{"pb95":1000,"diesel":1000,"lpg":1000}]
Powyższy przykład oznacza, że stacja może maksymalnie przechowywać:
1000litrów PB95,1000litrów diesla,1000litró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.
Nie ustawiaj większej ilości paliwa niż maksymalna pojemność zbiornika określona w fuel_capacity.
Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.
Tablica Lua:
{
pb95 = 500,
diesel = 500,
lpg = 500
}
JSON do wpisania w bazie danych:
[{"pb95":500,"diesel":500,"lpg":500}]
Powyższy przykład oznacza, że na stacji aktualnie znajduje się:
500litrów PB95,500litrów diesla,500litró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.
Do wygenerowania poprawnego JSON-a możesz użyć narzędzia tableToJSON.
Tablica Lua:
{ 1945.30, -1768.70, 13.90 }
JSON do wpisania w bazie danych:
[[1945.3,-1768.7,13.9]]
Każda pozycja składa się z trzech wartości:
| Wartość | Znaczenie |
|---|---|
x | Pozycja na osi X |
y | Pozycja na osi Y |
z | Wysokość |
Podsumowanie pól wymagających JSON-a
Poniższe kolumny muszą być zapisane w formacie JSON:
| Kolumna | Co przechowuje |
|---|---|
position | Pozycje markerów tankowania |
price_billboard_position | Pozycję tablicy z cenami paliwa |
prices | Ceny paliw |
fuel_capacity | Maksymalną pojemność zbiorników |
fuel_amount | Aktualną ilość paliwa |
fuel_tank_hose_position | Pozycję podpięcia węża |
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.
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.
| Kolumna | Przykładowa wartość |
|---|---|
id | Nie wpisywać ręcznie |
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]] |
Gotowy przykład wartości
Jeżeli dodajesz rekord ręcznie w bazie danych, pola możesz uzupełnić w taki sposób:
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]]'
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.
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?
| Pole | Znaczenie |
|---|---|
name | Nazwa stacji widoczna w systemie |
position | Dwa markery tankowania |
price_billboard_position | Jedna pozycja tablicy z cenami paliwa |
prices | Ceny paliw za litr |
weekly_price_history | Brak historii przy nowej stacji |
fuel_capacity | Maksymalna pojemność zbiorników |
fuel_amount | Aktualna ilość paliwa na stacji |
fuel_tank_hose_position | Pozycja podpięcia węża cysterny |
Pola wymagające formatu JSON
Poniższe pola muszą być zapisane jako JSON:
| Kolumna | Przykł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]] |
Jeżeli masz dane zapisane jako tablica Lua, najpierw przekonwertuj je na JSON za pomocą narzędzia tableToJSON.
Najważniejsze informacje
idzostaw puste — baza danych nada je automatycznie.weekly_price_historyustaw jakoNULL.fuel_amountnie 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.