ai-streetraces dla deweloperów
ai-streetraces nie ma eksportów. Jego alert policyjny, powody wpisów i prywatne zdarzenia.
ai-streetraces nie ma eksportów ani state bagów. Wyścigi istnieją tylko w pamięci serwera, a pieniądze, alerty i pozycja menu przechodzą przez AI Core.
Alert policyjny
Gdy zaczyna się odliczanie wyścigu, może on wysłać jeden alert (według ustawienia Alert chance w panelu) przez dispatch.alert biblioteki: tytuł „Street race”, wiadomość „(count) vehicles lining up for an illegal race”, na linii startu, z pierwszym kierowcą jako source, ikona flag-checkered. Trafia do tego skryptu alertów, który działa.
Pieniądze
Wszystkie pieniądze przechodzą przez konto ustawione w Money account w panelu z tymi powodami wpisów:
| Powód | Kiedy |
|---|---|
streetrace:<raceId> | Wpisowe jest pobierane przy tworzeniu lub dołączaniu. |
streetrace:refund | Wpisowe wraca (wyjście przed startem, anulowanie, za mało kierowców, zatrzymanie zasobu). |
streetrace:won | Zwycięzca dostaje pulę. |
streetrace:split | Skończył się limit czasu; każdy kierowca, który nadal jedzie, dostaje część. |
Otwieranie menu z innego skryptu
Serwer otwiera menu wyścigu zdarzeniem klienta ai-streetraces:client:openMenu (tak działa /race). Użyj go, aby umieścić menu we własnej aplikacji telefonu lub w punkcie interakcji.
Strona: serwer -> klient · Argumenty: brak
// serwer
emitNet("ai-streetraces:client:openMenu", source);Menu pokazuje tylko to, co gracz może teraz zrobić (utworzyć wyścig do punktu na mapie, przyjąć zaproszenie, wystartować, anulować, wyjść lub się poddać), a każdy wybór jest sprawdzany na serwerze, więc otwarcie go dla kogokolwiek jest bezpieczne.
Prywatne zdarzenia i callbacki
Własny kontrakt skryptu (resource/common/race.ts). Serwer sprawdza pojazd, odległość, pieniądze i stan wyścigu przy każdym wywołaniu. Mogą się zmieniać między wersjami: nie wywołuj ich ani nie nasłuchuj ich z innych zasobów.
| Nazwa | Kierunek | Co przenosi |
|---|---|---|
ai-streetraces:create | callback klienta | (buyIn, finishX, finishY): utwórz wyścig od pozycji gracza do mety. |
ai-streetraces:join | callback klienta | (raceId): dołącz do wyścigu, do którego gracz został zaproszony (płaci wpisowe). |
ai-streetraces:leave | callback klienta | (): opuść wyścig; wyjście gospodarza przed startem anuluje wyścig. |
ai-streetraces:begin | callback klienta | (): gospodarz kończy teraz czas dołączania. |
ai-streetraces:finish | callback klienta | (): kierowca dojechał do mety. |
ai-streetraces:client:state | serwer -> kierowca | (race, serverNow): migawka wyścigu, w którym jest gracz. |
ai-streetraces:client:racer | serwer -> kierowcy | (racer, pot): dołączył kierowca. |
ai-streetraces:client:racerLeft | serwer -> kierowcy | (racerId, pot): kierowca wyszedł. |
ai-streetraces:client:start | serwer -> kierowcy | (startAt, serverNow): trwa odliczanie; GO o startAt (zegar serwera). |
ai-streetraces:client:ended | serwer -> kierowca | (): wyścig się skończył dla tego gracza. |
ai-streetraces:client:invite | serwer -> gracze w pobliżu nowego wyścigu | (invite, serverNow). |
ai-streetraces:client:uninvite | serwer -> zaproszeni gracze | (raceId): wyścig nie przyjmuje już kierowców. |