Moin MW,
Ich bin grade bei einer Rundballenpresse über das Autobaler Script gestolpert, aber irgendwie scheint das nicht zu funktionieren, es macht zwar keine Log Fehler aber die Funktion ist auch nicht da.
Wenn sich hier jemand ein bisschen mit Scripten auskennt, könnte man ja mal versuchen das Teil zum laufen zu kriegen.
Kurze Beschreibung:
Das Script soll dafür sorgen, dass der Schlepper beim pressen mit einer Rundballenpresse gestoppt und der Ballen automatisch ausgeworfen wird, d.h. man hat eine Rundballenpresse mit Autobaler Script, stellt z.B. Tempomat Stufe 1 ein und wenn die Presse voll ist, stoppt das Gespann, der Ballen wird ausgeworfen und fährt dann weiter.
autobaler = {};
function autobaler.prerequisitesPresent(specializations)
print(string.format("%s", "Script Edit by sKyDaNcEr"));
return true;
end;
function autobaler:load(xmlFile)
self.automatik = false;
allowedToDrive = true;
end;
function autobaler:delete()
end;
function autobaler:readStream(streamId, connection)
self.automatik = streamReadBool(streamId);
end;
function autobaler:writeStream(streamId, connection)
streamWriteBool(streamId, self.automatik);
end;
function autobaler:mouseEvent(posX, posY, isDown, isUp, button)
end;
function autobaler:keyEvent(unicode, sym, modifier, isDown)
end;
function autobaler:update(dt)
if self:getIsActiveForInput() and InputBinding.hasEvent(InputBinding.IMPLEMENT_EXTRA3) then
self.automatik = not self.automatik;
autobalerEvent.sendEvent(self, self.automatik)
end;
if self.automatik then
if self.baleUnloadAnimationName ~= nil then
if self.fillLevel == self.capacity and self.balerUnloadingState == Baler.UNLOADING_CLOSED and self:isUnloadingAllowed() then
allowedToDrive = false;
self:setIsTurnedOn(false, false);
if table.getn(self.bales) > 0 then
self:setIsUnloadingBale(true,false)
end
elseif self.balerUnloadingState ~= Baler.UNLOADING_CLOSED then
allowedToDrive = false;
if self.balerUnloadingState == Baler.UNLOADING_OPEN then
self:setIsUnloadingBale(false)
end
elseif self.fillLevel >= 0 and not self.isTurnedOn and self.balerUnloadingState == Baler.UNLOADING_CLOSED then
self:setIsTurnedOn(true, false);
allowedToDrive = true;
end
end;
if self.attacherVehicle ~= nil then
if allowedToDrive == true then
if self.isTurnedOn and self.fillLevel > (self.capacity * 0.94) and self.fillLevel < self.capacity then
if self.attacherVehicle.motor.speedLevel ~= 0 then
self.attacherVehicle.motor.maxRpm[self.attacherVehicle.motor.speedLevel] = self.maxrpm2backup/2;
end;
else
if self.attacherVehicle.motor.speedLevel ~= 0 then
self.attacherVehicle.motor.maxRpm[self.attacherVehicle.motor.speedLevel] = self.maxrpm2backup;
end;
end;
else
if self.attacherVehicle.motor.speedLevel ~= 0 then
self.attacherVehicle.motor.maxRpm[self.attacherVehicle.motor.speedLevel] = 0;
end;
end;
end;
end;
end;
function autobaler:updateTick(dt)
end;
function autobaler:draw()
if self.automatik then
g_currentMission:addHelpButtonText("Automatic off",InputBinding.IMPLEMENT_EXTRA3);
else
g_currentMission:addHelpButtonText("Automatic on",InputBinding.IMPLEMENT_EXTRA3);
end;
end;
function autobaler:onAttach(attacherVehicle)
self.maxrpm2backup = self.attacherVehicle.motor.maxRpm[2];
end;
function autobaler:onDetach()
end;
------------------------------------------- event -------------------------------------------
autobalerEvent = {};
autobalerEvent_mt = Class(autobalerEvent, Event);
InitEventClass(autobalerEvent, "autobalerEvent");
function autobalerEvent:emptyNew()
local self = Event:new(autobalerEvent_mt);
self.className="autobalerEvent";
return self;
end;
function autobalerEvent:new(object, data)
local self = autobalerEvent:emptyNew()
self.object = object;
self.data = data;
return self;
end;
function autobalerEvent:readStream(streamId, connection)
local id = streamReadInt32(streamId);
self.object = networkGetObject(id);
self.data = streamReadBool(streamId);
self.object.automatik = self.data;
if not connection:getIsServer() then
g_server:broadcastEvent(autobalerEvent:new(self.object, self.data), nil, connection, self.object);
end;
end;
function autobalerEvent:writeStream(streamId, connection)
streamWriteInt32(streamId, networkGetObjectId(self.object));
streamWriteBool(streamId, self.data);
end;
function autobalerEvent.sendEvent(vehicle, data)
if g_server ~= nil then
g_server:broadcastEvent(autobalerEvent:new(vehicle, data), nil, nil, vehicle);
else
g_client:getServerConnection():sendEvent(autobalerEvent:new(vehicle, data));
end;
end;
Alles anzeigen
Ich möchte hier nochmal ausdrücklich erwähnen, dass das Script nicht von mir sondern (wies auch drinsteht von skydancer) ist!
Wie gesagt, wäre ja schön, wenn man das zum laufen kriegen könnte, da es IRL auch Pressen gibt die sowas können.
Schönen 2. Advent euch.