Zasięg
Ile kresek ma telefon i co się dzieje, gdy nie ma żadnej.
Domyślnie jest wyłączony. Miasto, które nie poprosiło o zasięg, dostaje telefon, jaki zawsze miał — pełne kreski wszędzie, nic nie jest odrzucane, nic nie jest mierzone:
-- shared/config/signal.luaEnabled = false, -- turn it on when you want bars that come from where the player is standingWłączony, bez żadnej innej zmiany, nadal nie dzieje się wiele: bez masztów i martwych stref mapa ma pełny zasięg, a jedyną różnicą jest wskaźnik sygnału, który w końcu mówi prawdę. Dodaj jedną linijkę poniżej, a zacznie coś znaczyć.
Wszystko jest rozstrzygane na serwerze, na podstawie tego, gdzie gracz faktycznie stoi. Klient decydujący o własnym sygnale to klient bez kresek, gdy ktoś do niego dzwoni, i z czterema, gdy sam dzwoni.
Co oznacza brak sygnału
Dział zatytułowany „Co oznacza brak sygnału”To samo, co tryb samolotowy, bo to ten sam fakt widziany z drugiej strony: miasto nie może dodzwonić się na ten telefon.
- Połączenia przychodzące i wychodzące są odrzucane, a telefon mówi Brak zasięgu w tym miejscu, a nie niedostępny.
- Wiadomości nie zostaną wysłane, a wiadomości wysłane do nich są zachowywane.
- Wszystko, co miasto próbowało dostarczyć, zostaje doręczone w chwili powrotu kresek — nic nie ginie, czeka.
- Sam telefon działa dalej: aparat, notatki, latarka, zdjęcia, które już na nim są.
Pasek stanu rysuje tyle kresek, ile ma, a przy zerze pokazuje Brak usługi.
Poza miastem, bez niczego do ustawiania
Dział zatytułowany „Poza miastem, bez niczego do ustawiania”-- shared/config/signal.luaCity = { Centre = vector3(195.0, -890.0, 30.0), -- Legion Square, near enough Full = 3000.0, -- full signal within this None = 9000.0, -- nothing at all past this},Pełne kreski w mieście, które spadają po jednej w miarę oddalania się. Zmierzone na działającym serwerze z powyższymi wartościami domyślnymi:
| Gdzie | Kreski |
|---|---|
| Legion Square | 4 |
| Sandy Shores | 3 |
| Paleto Bay | 1 |
Ustaw City = false, aby to wyłączyć i używać samych masztów.
Maszty, dla miasta, w którym zasięg jest czymś, na co gracze mogą wskazać palcem
Dział zatytułowany „Maszty, dla miasta, w którym zasięg jest czymś, na co gracze mogą wskazać palcem”Range = 900.0, -- full signal this close to a mastFade = 1400.0, -- and nothing this much further outMasts = { vector3(-75.0, -818.0, 326.0), -- the tower on Maze Bank vector3(2358.0, 2570.0, 46.0), -- the masts above Sandy Shores},Gdy ta lista cokolwiek zawiera, kreski pochodzą od najbliższego masztu, a City jest ignorowane. Maszt, który ktoś wysadził, to dzielnica bez telefonów, dopóki nie zostanie naprawiony — i to jest ta wersja, która jest warta posiadania, jeśli Twoje miasto chce coś z tym zrobić.
Dead = { { Coords = vector3(895.0, -3245.0, -98.0), Radius = 120.0, Bars = 0 }, -- the labs { Coords = vector3(480.0, -1310.0, 29.0), Radius = 40.0, Bars = 1 }, -- the chop shop},Dziura wygrywa z tym, co mówią maszty, a tam, gdzie dwie się nakładają, wygrywa mniejsza liczba: schron w dolinie nie ma lepszego zasięgu przez to, że jest w obu. Bars = 0 oznacza nic; każda inna liczba to piwnica, która nadal łapie jedną kreskę.
Kula, bo kula to coś, czego środek można znaleźć jedną komendą.
Dla innych zasobów
Dział zatytułowany „Dla innych zasobów”exports.mic_phone:GetSignal(src) --> 0 to Config.Signal.Barsexports.mic_phone:SetJammed(src, true) --> takes their bars away until you give them backOba działają przy wyłączonym zasięgu. GetSignal odpowiada pełną liczbą, więc skrypt może to odczytać, nie pytając, czy funkcja w ogóle istnieje — a zagłuszanie nadal odbiera komuś kreski, ponieważ napad albo więzienie, które chce budynku bez telefonów, nie powinny wymagać najpierw skonfigurowania całej funkcji. To jedyny przypadek, w którym telefon może stracić sygnał na domyślnej instalacji, i dzieje się tak dlatego, że inny zasób o to poprosił.
Zagłuszanie jest po stronie serwera celowo: state bag, który klient mógłby zapisać, to state bag, który klient może wyczyścić. To właśnie tego używa napad, więzienie albo fabuła — zagłusz wszystkich w budynku i puść, gdy się skończy.
Odczyt nic nie kosztuje przez bag:
if (Player(src).state.phoneSignal or 4) == 0 then -- nobody is calling the police from in hereendDrobny druk
Dział zatytułowany „Drobny druk”- Żadne ustawienia czasowe nie mają znaczenia, dopóki
Enabled = true; przy wyłączeniu nic nie jest w ogóle mierzone. - Wartość jest wyliczana co
Config.Signal.Ticksekund, domyślnie pięć. To sprawdzenie odległości względem krótkiej listy i nikt nie potrzebuje go co do sekundy. Config.Signal.Telldecyduje, czy telefon coś mówi, gdy kreski się kończą i gdy wracają. Oba są włączone: utrata sygnału wymaga wyjaśnienia, a jego odzyskanie to moment, w którym przychodzi wszystko, co czekało.