Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
Wykorzystaj dowolny skrypt na obliczanie przebytej drogi, pos?u?? si? tutaj community:
https://community.mtasa.com/index.php?p=resources&s=details&id=118
[Travel Meter]
i odpowiednio go z edytuj? aby odpowiada? Twoim wymaganiom:
local distanceTraveled
local oX , oY , oZ
local x , y , z
local checkedDistance
addEventHandler ( "onClientResourceStart" , getRootElement (), function( startedResource )
if startedResource ~= getThisResource () then return end
oX , oY , oZ = getElementPosition ( getLocalPlayer ())
distanceTraveled = 0
end )
addEventHandler ( "onClientPlayerJoin" , getRootElement (), function()
oX , oY , oZ = getElementPosition ( source )
distanceTraveled = 0
end )
addEventHandler ( "onClientRender" , getRootElement (), function()
if not isPedInVehicle ( getLocalPlayer ()) or not getElementData ( getPedOccupiedVehicle ( getLocalPlayer ()), "naukaJazdy" ) then return end
x , y , z = getElementPosition ( getLocalPlayer ())
distanceTraveled = distanceTraveled + string . format ( "%.01f" , getDistanceBetweenPoints3D ( x , y , z , oX , oY , oZ ))
oX = x
oY = y
oZ = z
end )
addEventHandler ( "onClientVehicleExit" , getRootElement (), function( plr , s , d )
if s ~= 0 or d ~= 0 or not getElementData ( source , "naukaJazdy" ) then return end
distanceTraveled = 0
outputChatBox ( "Wysiad?e? z pojazdu, przebyta odleg?o?? resetuje si?." )
end )
Je?li Twoja 'elka' posiada jak?? elementdat?, popraw j? odpowiednio tam gdzie w skrypcie jest ona sprawdzana - tak aby odleg?o?? nalicza?o tylko pojazdom nauki jazdy (linia 12 i linia 21).
Ten kod mo?esz wklei? do skryptu od nauki jazdy aby nie bawi? si? w exporty.
P??niej tylko sprawdzasz np. w timerze, czy przebyta odleg?o?? jest wi?ksza lub r?wna si? Twojej odleg?o?ci, przyk?ad:
function checkDistance ()
if isPedInVehicle ( getLocalPlayer ()) and getElementData ( getPedOccupiedVehicle ( getLocalPlayer ()), "naukaJazdy" ) and distanceTraveled >= 1000 and not checkedDistance then
outputChatBox ( "Przejecha?e? 1km, gratulacje!" )
checkedDistance = true
-- reszta akcji , np . nakaz jazdy w jakie ? miejsce
end
end
setTimer ( checkDistance , 10 * 1000 , 0 )