Hi everyone, I hope somebody can help me with a script. I have a problem with a vehicle handling script. It's works perfectly, but if i have to restart the server, handling on made cars disappear ( roleplay server with mysql db, so permanents cars), but if i create a new car, handling works perfectly. How can i do a function that set's handling to all vehicles on the server by model? Or can i fix this one? Or have anybody another resource that set's custom handling to all cars on the server?
This is the handling script, i have a complect resource for mods if you want to see...
handlingProperties = {
"identifier", "mass", "turnMass", "dragCoeff", "centerOfMassX", "centerOfMassY",
"centerOfMassZ", "percentSubmerged", "tractionMultiplier", "tractionLoss", "tractionBias", "numberOfGears",
"maxVelocity", "engineAcceleration", "engineInertia", "driveType", "engineType", "brakeDeceleration",
"brakeBias", "ABS", "steeringLock", "suspensionForceLevel", "suspensionDamping", "suspensionHighSpeedDamping",
"suspensionUpperLimit", "suspensionLowerLimit", "suspensionFrontRearBias", "suspensionAntiDiveMultiplier", "seatOffsetDistance", "collisionDamageMultiplier",
"monetary", "modelFlags", "handlingFlags", "headLight", "tailLight", "animGroup"
}
function setHandling ( model, property, value )
if not isHandlingPropertySupported ( property ) then
return false
end
if isHandlingPropertyCorrectable ( property ) then
value = getCorrectedHandlingValue ( value )
elseif isHandlingPropertyHexadecimal ( property ) then
value = tonumber ( "0x" .. value )
else
value = tonumber ( value )
if isHandlingPropertyCenterOfMass ( property ) then
local com = getModelHandling ( model )["centerOfMass"]
local axis = property
property = "centerOfMass"
if axis == "centerOfMassX" then
value = { value, com[2], com[3] }
elseif axis == "centerOfMassY" then
value = { com[1], value, com[3] }
elseif axis == "centerOfMassZ" then
value = { com[1], com[2], value }
end
end
end
if not setModelHandling ( model, property, value ) then
outputDebugString ( tostring(property) )
end
return true
end
function isHandlingPropertySupported ( property )
local unsupported = {
["ABS"]=true, ["monetary"]=true,
["headLight"]=true, ["tailLight"]=true,
["animGroup"]=true
}
if unsupported[property] then
return false
end
return true
end
function isHandlingPropertyCorrectable ( property )
local props ={
["driveType"]=true, ["engineType"]=true,
["headLight"]=true, ["tailLight"]=true
}
return props[property] or false
end
function isHandlingPropertyCenterOfMass ( property )
local props = {
["centerOfMassX"]=true, ["centerOfMassY"]=true,
["centerOfMassZ"]=true
}
return props[property] or false
end
function isHandlingPropertyHexadecimal ( property )
if property == "modelFlags" or property == "handlingFlags" then
return true
end
return false
end
local correctedValues = {
["f"] = "fwd",
["r"] = "rwd",
["4"] = "awd",
["p"] = "petrol",
["d"] = "diesel",
["e"] = "electric",
["0"] = "long",
["1"] = "small",
["3"] = "big",
}
function getCorrectedHandlingValue ( value )
return correctedValues[string.lower(value)] or "big" -- as 3 cant be converted to 'tall', we use 'big'
end
Question
IulyanNek
Hi everyone, I hope somebody can help me with a script. I have a problem with a vehicle handling script. It's works perfectly, but if i have to restart the server, handling on made cars disappear ( roleplay server with mysql db, so permanents cars), but if i create a new car, handling works perfectly. How can i do a function that set's handling to all vehicles on the server by model? Or can i fix this one? Or have anybody another resource that set's custom handling to all cars on the server?
This is the handling script, i have a complect resource for mods if you want to see...
handlingProperties = { "identifier", "mass", "turnMass", "dragCoeff", "centerOfMassX", "centerOfMassY", "centerOfMassZ", "percentSubmerged", "tractionMultiplier", "tractionLoss", "tractionBias", "numberOfGears", "maxVelocity", "engineAcceleration", "engineInertia", "driveType", "engineType", "brakeDeceleration", "brakeBias", "ABS", "steeringLock", "suspensionForceLevel", "suspensionDamping", "suspensionHighSpeedDamping", "suspensionUpperLimit", "suspensionLowerLimit", "suspensionFrontRearBias", "suspensionAntiDiveMultiplier", "seatOffsetDistance", "collisionDamageMultiplier", "monetary", "modelFlags", "handlingFlags", "headLight", "tailLight", "animGroup" } function setHandling ( model, property, value ) if not isHandlingPropertySupported ( property ) then return false end if isHandlingPropertyCorrectable ( property ) then value = getCorrectedHandlingValue ( value ) elseif isHandlingPropertyHexadecimal ( property ) then value = tonumber ( "0x" .. value ) else value = tonumber ( value ) if isHandlingPropertyCenterOfMass ( property ) then local com = getModelHandling ( model )["centerOfMass"] local axis = property property = "centerOfMass" if axis == "centerOfMassX" then value = { value, com[2], com[3] } elseif axis == "centerOfMassY" then value = { com[1], value, com[3] } elseif axis == "centerOfMassZ" then value = { com[1], com[2], value } end end end if not setModelHandling ( model, property, value ) then outputDebugString ( tostring(property) ) end return true end function isHandlingPropertySupported ( property ) local unsupported = { ["ABS"]=true, ["monetary"]=true, ["headLight"]=true, ["tailLight"]=true, ["animGroup"]=true } if unsupported[property] then return false end return true end function isHandlingPropertyCorrectable ( property ) local props ={ ["driveType"]=true, ["engineType"]=true, ["headLight"]=true, ["tailLight"]=true } return props[property] or false end function isHandlingPropertyCenterOfMass ( property ) local props = { ["centerOfMassX"]=true, ["centerOfMassY"]=true, ["centerOfMassZ"]=true } return props[property] or false end function isHandlingPropertyHexadecimal ( property ) if property == "modelFlags" or property == "handlingFlags" then return true end return false end local correctedValues = { ["f"] = "fwd", ["r"] = "rwd", ["4"] = "awd", ["p"] = "petrol", ["d"] = "diesel", ["e"] = "electric", ["0"] = "long", ["1"] = "small", ["3"] = "big", } function getCorrectedHandlingValue ( value ) return correctedValues[string.lower(value)] or "big" -- as 3 cant be converted to 'tall', we use 'big' endLink to comment
0 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now