- Dokumentacja
- Funkcje serwera
- setPedDriveRoute
Funkcja
setPedDriveRoute
NPC-kierowca jedzie po liście punktów drogami gry. Prowadzi go autopilot gry: skręca na skrzyżowaniach, omija auta i stoi na czerwonym. Po każdym punkcie przychodzi onPedDrivePointReached, po ostatnim onPedDriveFinished. Gdy fotel kierowcy jest wolny, NPC zostaje do niego wsadzony.
Składnia
bool setPedDriveRoute(ped ped, vehicle vehicle, table points [, table options = nil])Argumenty
pedped- NPC.
vehiclevehicle- Pojazd.
pointstable- Punkty
{ {x, y, z}, ... }(albo{ x = , y = , z = }). optionstable, opcjonalny = nilspeed(km/h, domyślnie 50),style("normal"zwalnia za autami i stoi na światłach,"careful"staje za autami,"ignoreLights"omija auta i jedzie na czerwonym, albo liczba 0–4),stopRadius(m, domyślnie 6),stopAt({ [indeks punktu] = postój w ms }, auto stoi w miejscu do końca postoju),loop(po ostatnim punkcie od nowa),lookahead(m, domyślnie 45: gra dostaje cel tyle dalej na trasie i sama prowadzi auto pasem, nigdy dalej niż najbliższy postój),overtakeAfter(s, domyślnie 10, 0 wyłącza: po tylu sekundach stania NPC przez 12 s omija przeszkodę).
Zwraca
true, gdy jazda ruszyła; false, gdy za kierownicą siedzi ktoś inny albo NPC nie żyje.
Przykład
local bus = createVehicle(431, 1750, -1890, 13.5)
local driver = createPed(253, 1750, -1888, 13.5)
local stops = { { 1810, -1890, 13.4 }, { 1820, -1760, 13.4 }, { 1750, -1890, 13.5 } }
setPedDriveRoute(driver, bus, stops, { speed = 45, stopAt = { [1] = 8000, [2] = 8000 }, loop = true })
addEventHandler("onPedDrivePointReached", driver, function(vehicle, index)
outputServerLog("Autobus na przystanku " .. index)
end)
Uwagi
Punkt minięty albo taki, do którego auto nie zbliża się przez 15 s jazdy, liczy się jako zaliczony, więc NPC nie krąży wokół punktu poza drogą. Punkty stawiaj na jezdni (np. getNearestVehicleNode), nie na chodniku. Jazdę prowadzi gra gracza, która liczy to auto, a pozostali widzą ją z synchronizacji. Bez graczy w pobliżu serwer przesuwa auto prosto między punktami, więc gęsta trasa (np. z getVehicleRoute) trzyma je na drodze także w pustym mieście.
Zobacz też
setPedDriveToNPC-kierowca jedzie do jednego punktu drogami gry. Po dojeździe przychodzionPedDriveFinished.stopPedDrivingKończy jazdę zsetPedDriveRoutealbosetPedDriveTo. NPC zostaje za kierownicą, a auto hamuje.getPedDriveStateZwraca stan jazdy NPC i indeks bieżącego punktu trasy.setPedHornStateWłącza albo wyłącza klakson NPC-kierowcy. Słychać go u graczy w pobliżu. Działa w trakcie jazdy zsetPedDriveRoutealbosetPedDriveTo.onPedDrivePointReachedNPC-kierowca dojechał do punktu trasy zsetPedDriveRoute(w promieniustopRadius).getVehicleRouteWyznacza trasę autem po drogach gry między dwoma punktami, z kierunkiem ulic jednokierunkowych i pasów autostrad. Na serwerze działa od razu, bez graczy w pobliżu. Klient pyta serwer, więc działa tylko wasynci czeka do 3 s.