Hallo Leute!
Ich steh´ glaube ich gerade etwas auf dem Schlauch. Beim Umbau der Sprayer-Specialization für Sämaschinen mit Düngefunktion hängt es nur noch am Auffüllen beim Düngertrigger.
Und zwar wird in updateTick(dt) folgendes ausgeführt:
[lua]if self.isServer and self.isSprayerFilling then
local delta = 0;
if self.sprayerFillTrigger ~= nil then
delta = self.sprayFillLitersPerSecond*dt*0.001;
delta = self:fillUpSprayer(delta);
end;
if delta <= 0 then
self:setIsSprayerFilling(false);
end;
end;[/lua]
Knackpunkt ist nun die aufgerufene Funktion self:fillUpSprayer(delta):
[lua]function UrfSeeder:fillUpSprayer(deltax)
local oldFillLevel = self.sprayFillLevel;
if self.sprayerFillTrigger.isSiloTrigger then
local silo = g_currentMission:getSiloAmount(self.sprayerFillTrigger.fillType);
deltax = math.min(deltax, silo);
if deltax > 0 then
self:setSprayFillLevel(oldFillLevel + deltax);
deltax = self.sprayFillLevel - oldFillLevel;
g_currentMission:setSiloAmount(self.sprayerFillTrigger.fillType, silo - deltax);
end;
else
self:setSprayFillLevel(oldFillLevel + deltax);
deltax = self.sprayFillLevel - oldFillLevel;
local fillTypeDesc = Fillable.fillTypeIndexToDesc[self.sprayerFillTrigger.fillType];
if fillTypeDesc ~= nil then
local price = deltax*fillTypeDesc.pricePerLiter;
g_currentMission.missionStats.expensesTotal = g_currentMission.missionStats.expensesTotal + price;
g_currentMission.missionStats.expensesSession = g_currentMission.missionStats.expensesSession + price;
g_currentMission:addSharedMoney(-price, "other");
end;
end;
print("URF453 Return von deltax "..deltax);
return deltax;
end;[/lua]
Hier soll ja eigentlich deltax zurück an die Variable delta übergeben werden. Mein eingebautes print sagt mir auch, dass hier ein Wert vorhanden ist.
In der Log erscheint aber folgendes:
und zwar in der Zeile, wo delta <= 0 abgefragt wird.
Wo bleibt der Rückgabewert hängen