- Dokumentacja
- Funkcje wspólne
- setVehicleHandling
Funkcja
setVehicleHandling
Zmienia parametry jazdy (handling) jednego pojazdu u wszystkich graczy: masę, prędkość maksymalną, przyspieszenie, przyczepność, hamulce, skręt, zawieszenie i inne pola z handling.cfg. Gra dostaje własną kopię wpisu handlingu dla tego auta, więc inne pojazdy tego modelu się nie zmieniają. Można podać jedno pole z wartością, całą tabelę pól albo nil, żeby wrócić do handlingu fabrycznego (z uwzględnieniem setModelHandling). Nazwy pól, lista: getHandlingFieldNames.
Składnia
bool setVehicleHandling(vehicle vehicle [, string/table propertyOrTable = nil, any value = nil])Argumenty
vehiclevehicle- Pojazd.
propertyOrTablestring/table, opcjonalny = nil- Nazwa pola (np.
"maxVelocity","engineAcceleration","tractionMultiplier","mass","suspensionLowerLimit"), tabela{ pole = wartość }zastępująca wszystkie zmiany pojazdu, albonil= handling fabryczny. Nieznane pola w tabeli są pomijane. valueany, opcjonalny = nil- Nowa wartość pola (liczba;
centerOfMassto tabela{ x, y, z }).nilusuwa zmianę tego pola.
Zwraca
true przy powodzeniu, false dla nieznanej nazwy pola.
Przykład
addCommandHandler("sport", function(player)
local vehicle = getPedOccupiedVehicle(player)
if not vehicle then return end
-- skala jak w handling.cfg: liczymy od wartosci fabrycznych modelu
local factory = getOriginalHandling(getElementModel(vehicle))
setVehicleHandling(vehicle, "maxVelocity", factory.maxVelocity * 1.15)
setVehicleHandling(vehicle, "engineAcceleration", factory.engineAcceleration * 1.3)
setVehicleHandling(vehicle, "tractionMultiplier", factory.tractionMultiplier * 1.1)
setVehicleHandling(vehicle, "driveType", "awd")
end)
Uwagi
Klient. W skrypcie klienta handling tylko u tego gracza. Jazdę liczy kierowca, więc na pojeździe, którym kieruje ten gracz, zmiana działa w jeździe; obowiązuje, dopóki serwer nie zmieni handlingu tego pojazdu.
Typy i skala pól. Liczby mają tę samą skalę co w handling.cfg (to, co zwraca getOriginalHandling): np. Elegy (562) ma engineAcceleration = 28, radiowóz LS (596) = 25, więc 18 to auto SŁABSZE od fabrycznego. maxVelocity w km/h, mass w kg, brakeDeceleration jak w pliku (ok. 4-11), tractionMultiplier ok. 0,6-1,3. driveType to tekst: "fwd" (przód), "rwd" (tył), "awd" (4x4). engineType: "petrol", "diesel", "electric". ABS to true/false. handlingFlags i modelFlags to liczby (bity jak szesnastkowo w handling.cfg, np. 0x4000000). centerOfMass = { x, y, z }. Zmiana maxVelocity, engineAcceleration, numberOfGears, driveType albo dragCoeff przelicza skrzynię biegów jak gra.
Zobacz też
getVehicleHandlingZwraca pełny handling pojazdu taki, jakiego używa gra: wartości fabryczne z handling.cfg, nadpisane ustawieniami modelu (setModelHandling), a na końcu zmianami tego pojazdu (setVehicleHandling,setVehicleEngine). Działa po obu stronach.setModelHandlingZmienia handling wszystkich pojazdów danego modelu naraz, u każdego gracza, także tych utworzonych później. Zmiany pojedynczego auta zsetVehicleHandlingmają pierwszeństwo przed ustawieniem modelu.getHandlingFieldNamesZwraca nazwy wszystkich pól handlingu przyjmowanych przezsetVehicleHandlingisetModelHandling:mass,turnMass,dragCoeff,centerOfMass,percentSubmerged,tractionMultiplier,tractionLoss,tractionBias,numberOfGears,maxVelocity,engineAcceleration,engineInertia,driveType,engineType,brakeDeceleration,brakeBias,ABS,steeringLock, polasuspension*,seatOffsetDistance,collisionDamageMultiplier,monetary,modelFlags,handlingFlags,headLight,tailLight,animGroup.getOriginalHandlingZwraca fabryczny handling modelu prosto z plików gry (handling.cfg Definitive Edition), bez żadnych zmian skryptów. Działa po obu stronach.