那是一个已知的错误,自火车发烧以来就存在于游戏中。
为什么不制作团队解决这个问题?
Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.
Die Registrierung und Nutzung ist selbstverständlich kostenlos.
Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.
Das Team der Transport-Fever Community
那是一个已知的错误,自火车发烧以来就存在于游戏中。
为什么不制作团队解决这个问题?
When you are far away from the locomotive or pull the angle of view far away, and then move the angle of view close to the locomotive, its sound effect will be gone.The sound effect will only work again if you move away from the locomotive (pull away the camera) and then close to the locomotive.(when it's a train with my self-made wagon, it won't happen when it's a train with the default wagon.)
Here are all script content:
DF4B:
local soundsetutil = require "soundsetutil"
local clackNames = {
"vehicle/clack/CN_Locomotive/part_1.wav",
"vehicle/clack/CN_Locomotive/part_2.wav",
"vehicle/clack/CN_Locomotive/part_3.wav",
"vehicle/clack/CN_Locomotive/part_4.wav",
"vehicle/clack/CN_Locomotive/part_5.wav",
"vehicle/clack/CN_Locomotive/part_6.wav",
"vehicle/clack/CN_Locomotive/part_7.wav",
"vehicle/clack/CN_Locomotive/part_8.wav",
"vehicle/clack/CN_Locomotive/part_9.wav",
"vehicle/clack/CN_Locomotive/part_10.wav"
}
function data()
local data = soundsetutil.makeSoundSet()
soundsetutil.addTrackParamCR(data, "vehicle/DF4B/x_DF4_Power0.wav", 30.0,
{ { 0.0,1.0 }, { .01, 1.0 }, { .05, 0.0 } }, { { .0, 1.0 }, { 1.0, 1.0 } }, { { .0, 0.0 }, { 0.12, 0.13 }, { 0.24, 0.29 }, { 0.36, 0.45 }, { 0.48, 0.61 } , { 0.6, 0.77 }, { 0.72, 1.0 }}, "power01", "speed01")
soundsetutil.addTrackParamCR(data, "vehicle/DF4B/x_DF4_Power1.wav", 30.0,
{ { 0.01,0.0 }, { .05, 1.0 }, { .21, 1.0 } , { .25, 0.0 } }, { { .0, 1.0 }, { 1.0, 1.0 } }, { { .0, 0.0 }, { 0.12, 0.13 }, { 0.24, 0.29 }, { 0.36, 0.45 }, { 0.48, 0.61 } , { 0.6, 0.77 }, { 0.72, 1.0 } }, "power01", "speed01")
soundsetutil.addTrackParamCR(data, "vehicle/DF4B/x_DF4_Power2.wav", 30.0,
{ { 0.17,0.0 }, { .21, 1.0 }, { 0.37, 1.0 }, { 0.41, 0.0 } }, { { .0, 1.0 }, { 1.0, 1.0 } }, {{ .0, 0.0 }, { 0.12, 0.13 }, { 0.24, 0.29 }, { 0.36, 0.45 }, { 0.48, 0.61 } , { 0.6, 0.77 }, { 0.72, 1.0 }},"power01", "speed01")
soundsetutil.addTrackParamCR(data, "vehicle/DF4B/x_DF4_Power3.wav", 30.0,
{ { 0.33,0.0 }, { .37, 1.0 }, { 0.53, 1.0 }, { 0.57, 0.0 } }, { { .0, 1.0 }, { 1.0, 1.0 } }, {{ .0, 0.0 }, { 0.12, 0.13 }, { 0.24, 0.29 }, { 0.36, 0.45 }, { 0.48, 0.61 } , { 0.6, 0.77 }, { 0.72, 1.0 } },"power01", "speed01")
soundsetutil.addTrackParamCR(data, "vehicle/DF4B/x_DF4_Power4.wav", 30.0,
{ { 0.49,0.0 }, { .50, 1.0 }, { 0.66, 1.0 }, { 0.70, 0.0 } }, { { .0, 1.0 }, { 1.0, 1.0 } }, {{ .0, 0.0 }, { 0.12, 0.13 }, { 0.24, 0.29 }, { 0.36, 0.45 }, { 0.48, 0.61 } , { 0.6, 0.77 }, { 0.72, 1.0 } },"power01", "speed01")
soundsetutil.addTrackParamCR(data, "vehicle/DF4B/x_DF4_Power5.wav", 30.0,
{ { 0.49,0.0 }, { .58, 1.0 }, { 0.74, 1.0 }, { 0.78, 0.0 } }, { { .0, 1.0 }, { 1.0, 1.0 } }, {{ .0, 0.0 }, { 0.16, 0.19 }, { 0.27, 0.32 }, { 0.39, 0.48 }, { 0.48, 0.61 } , { 0.63, 0.8 }, { 0.72, 1.0 } },"power01", "speed01")
soundsetutil.addTrackParamCR(data, "vehicle/DF4B/x_DF4_Power6.wav", 30.0,
{ { 0.65,0.0 }, { .69, 1.0 }, { 0.85, 1.0 }, }, { { .0, 1.0 }, { 1.0, 1.0 } }, {{ .0, 0.0 }, { 0.12, 0.13 }, { 0.24, 0.29 }, { 0.36, 0.45 }, { 0.48, 0.61 } , { 0.6, 0.77 }, { 0.72, 1.0 } },"power01", "speed01")
soundsetutil.addEventClacks(data, clackNames, 25.0, 183.0)
soundsetutil.addEvent(data, "horn", { "vehicle/DF4B/x_DF4_Horn.wav" }, 30.0)
soundsetutil.addTrackSqueal(data, "vehicle/Kurve/kurve_freight2.wav", 25.0)
soundsetutil.addTrackBrake(data, "vehicle/brake/x_CNPC_Brake_Squeal.wav", 25.0, .99)
return data
end
----------------------------------------------------------------------------------------------------
KD25G:
local soundeffectsutil = require "soundeffectsutil"
function data()
return {
tracks = {
{ name = "vehicle/CH_KD25G/x_KD.wav", refDist = 5.0 }, --KD
{ name = "vehicle/waggon_modern/_waggon_modern.wav", refDist = 5.0 },--ALL
{ name = "vehicle/speed_pc/start.wav", refDist = 5.0 },
{ name = "vehicle/speed_pc/x_CNPC_Rumble_10.wav", refDist = 5.0 },
{ name = "vehicle/speed_pc/x_CNPC_Rumble_17.30.wav", refDist = 5.0 },
{ name = "vehicle/speed_pc/x_CNPC_Rumble_20.wav", refDist = 5.0 },
{ name = "vehicle/speed_pc/x_CNPC_Rumble_23.00.wav", refDist = 5.0 },
{ name = "vehicle/speed_pc/x_CNPC_Rumble_35.43.wav", refDist = 5.0 },
{ name = "vehicle/speed_pc/x_CNPC_Rumble_40.wav", refDist = 5.0 },
{ name = "vehicle/speed_pc/x_CNPC_Rumble_49.20.wav", refDist = 5.0 },
{ name = "vehicle/speed_pc/x_CNPC_Rumble_63.33.wav", refDist = 5.0 },
{ name = "vehicle/speed_pc/x_CNPC_Rumble_80.wav", refDist = 5.0 },
{ name = "vehicle/speed_pc/x_CNPC_Rumble_100.wav", refDist = 5.0 },
{ name = "vehicle/speed_pc/x_CNPC_Rumble_120.wav", refDist = 5.0 },
{ name = "vehicle/train/wheels_ringing2.wav", refDist = 5.0 },
{ name = "vehicle/brake/x_CNPC_Brake_Disk.wav", refDist = 5.0 }
},
events = {
clacks = {
names = {
"vehicle/clack/CN_PC/clack_1.wav",
"vehicle/clack/CN_PC/clack_2.wav",
"vehicle/clack/CN_PC/clack_3.wav",
"vehicle/clack/CN_PC/clack_4.wav",
"vehicle/clack/CN_PC/clack_5.wav",
"vehicle/clack/CN_PC/clack_6.wav",
"vehicle/clack/CN_PC/clack_7.wav",
"vehicle/clack/CN_PC/clack_8.wav",
"vehicle/clack/CN_PC/clack_9.wav",
"vehicle/clack/CN_PC/clack_10.wav",
"vehicle/clack/CN_PC/clack_11.wav",
"vehicle/clack/CN_PC/clack_12.wav",
"vehicle/clack/CN_PC/clack_12.wav"
},
refDist = 25.0
}
},
updateFn = function (input)
local speed01 = input.speed / input.topSpeed
local refWeight = 60.0
local axleRefWeight = 14.0
return {
tracks = {
--KD
{
gain = soundeffectsutil.sampleCurve({ { .0, 1.0 }, { 1.0, 1.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({ { .0, 1.0 }, { 1.0, 1.0 } }, speed01)
},
--ALL
{
gain = soundeffectsutil.sampleCurve({ { .0, .0 }, { 1.0, 1.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({ { .0, 1.0 }, { 1.0, 1.0 } }, speed01)
},
--START
{
gain = soundeffectsutil.sampleCurve({{ 0.0, 0.0 },
{ 0.0, 0.0 },
{ 0.01, 1.0 },
{ 0.02, 0.0 },
{ 1.0, 0.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
--10KM/H
{
gain = soundeffectsutil.sampleCurve({{ 0.09, 0.0 },
{ 0.0, 0.0 },
{ 0.02, 0.2 },
{ 0.05, 0.2 },
{ 0.06, 0.4 },
{ 0.08, 0.6 },
{ 0.08, 0.6 },
{ 0.10, 0.6 },
{ 0.14, 0.1 },--17.3KM/H
{ 0.15, 0.0 },
{ 1.0, 0.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
--17.3KM/H
{
gain = soundeffectsutil.sampleCurve({{ 0.18, 0.0 },
{ 0.0, 0.0 },
{ 0.12, 0.1 },
{ 0.13, 0.2 },
{ 0.14, 0.6 },
{ 0.15, 0.6 },
{ 0.16, 0.1 },--20.0KM/H
{ 0.17, 0.0 },
{ 1.0, 0.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
--20KM/H
{
gain = soundeffectsutil.sampleCurve({{ 0.27, 0.0 },
{ 0.0, 0.0 },
{ 0.15, 0.1 },
{ 0.16, 0.2 },
{ 0.17, 0.6 },
{ 0.18, 0.6 },
{ 0.19, 0.1 },--23.0KM/H
{ 0.20, 0.0 },
{ 1.0, 0.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
--23KM/H
{
gain = soundeffectsutil.sampleCurve({{ 0.36, 0.0 },
{ 0.0, 0.0 },
{ 0.17, 0.1 },
{ 0.18, 0.2 },
{ 0.20, 0.6 },
{ 0.25, 0.6 },
{ 0.29, 0.1 },--35.0KM/H
{ 0.30, 0.0 },
{ 1.0, 0.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
--35KM/H
{
gain = soundeffectsutil.sampleCurve({{ 0.45, 0.0 },
{ 0.0, 0.0 },
{ 0.27, 0.1 },
{ 0.28, 0.2 },
{ 0.29, 0.6 },
{ 0.31, 0.6 },
{ 0.33, 0.1 },--40.0KM/H
{ 0.34, 0.0 },
{ 1.0, 0.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
--40KM/H
{
gain = soundeffectsutil.sampleCurve({{ 0.54, 0.0 },
{ 0.0, 0.0 },
{ 0.31, 0.1 },
{ 0.32, 0.2 },
{ 0.33, 0.6 },
{ 0.37, 0.6 },
{ 0.40, 0.1 },--49.0KM/H
{ 0.41, 0.0 },
{ 1.0, 0.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
--49.0KM/H
{
gain = soundeffectsutil.sampleCurve({{ 0.63, 0.0 },
{ 0.0, 0.0 },
{ 0.38, 0.1 },
{ 0.39, 0.2 },
{ 0.40, 0.6 },
{ 0.49, 0.6 },
{ 0.52, 0.1 },--63.0KM/H
{ 0.53, 0.0 },
{ 1.0, 0.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
--63.0KM/H
{
gain = soundeffectsutil.sampleCurve({{ 0.72, 0.0 },
{ 0.0, 0.0 },
{ 0.50, 0.1 },
{ 0.51, 0.2 },
{ 0.52, 0.6 },
{ 0.63, 0.6 },
{ 0.66, 0.1 },--80.0KM/H
{ 0.67, 0.0 },
{ 1.0, 0.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
--80.0KM/H
{
gain = soundeffectsutil.sampleCurve({{ 0.81, 0.0 },
{ 0.0, 0.0 },
{ 0.64, 0.1 },
{ 0.65, 0.2 },
{ 0.66, 0.6 },
{ 0.80, 0.6 },
{ 0.83, 0.1 },--100.0KM/H
{ 0.84, 0.0 },
{ 1.0, 0.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
--100.0KM/H
{
gain = soundeffectsutil.sampleCurve({{ 0.90, 0.0 },
{ 0.0, 0.0 },
{ 0.81, 0.1 },
{ 0.82, 0.2 },
{ 0.83, 0.6 },
{ 0.95, 0.6 },
{ 0.99, 0.0 },--120.0KM/H
{ 1.0, 0.0 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
--120.0KM/H
{
gain = soundeffectsutil.sampleCurve({{ 0.99, 0.0 },
{ 0.0, 0.0 },
{ 0.97, 0.1 },
{ 0.98, 0.2 },
{ 0.99, 0.6 },
{ 1.0, 0.6 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .0, 1.0 },
{ 1.0, 1.0 } }, speed01)
},
----------------
soundeffectsutil.squeal(input.speed, input.sideForce, input.maxSideForce),
soundeffectsutil.brake(input.speed, input.brakeDecel, 0.5),
{ --BRAKE
gain = soundeffectsutil.sampleCurve({{ .0, .0 },
{ 0.01, .3},
{ 0.04, .5 },
{ 0.08, .7 },
{ 1.0, .9 } }, speed01),
pitch = soundeffectsutil.sampleCurve({{ .9, 0.5 },
{ 1.0, 0.3 } }, speed01)
}--BRAKE
},
events = {
clacks = soundeffectsutil.clacks(input.speed, input.weight, input.numAxles, axleRefWeight, input.gameSpeedUp)
}
}
end
}
end
-----------------------------------
lua:
function soundsetutil.CRgain(CRa,CRb)
if (CRa > CRb) then return CRb end
return CRa
end
function soundsetutil.addTrackParamCR(data, name, refDist, gainCurve, pitchCurve,maxgainCurve,param01,param02)
soundsetutil.addTrack(data, name, refDist,
function (track, input)
track.gain = audioutil.sampleCurve(gainCurve, soundsetutil.CRgain( input[param01],audioutil.sampleCurve(maxgainCurve, input[param02])) )
track.pitch = audioutil.sampleCurve(pitchCurve, soundsetutil.CRgain( input[param01],audioutil.sampleCurve(maxgainCurve, input[param02])) )
end)
end
I've been researching for a week, but I don't have any clue...