Das kann man nicht so genau sagen. Es kommt immer auf die Größe, Detailgrad, ... des Modells an. Je größer und detailreicher ein Modell ist, desto mehr arbeit macht dann auch das Texturieren. Dann gibts Modelle, an denen kann viel animiert, eingebaut, ... werden. Wenn man dann noch Skripte benötigt, muss man entweder darauf warten oder sich welche schreiben. Wenn unvorhergesehene Fehler auftreten, können diese einem auch einen Strich durch die Rechnung machen. Auch Zeit und Lust spielen hier eine große Rolle.
Alles in allem kostet es viel Zeit und Gedullt.
Beiträge von JoPi98
-
-
Poste mal die vehicle.xml des Savegames.
-
Am einfachsten ist es, wenn du dir das Rübenlager anschaust und hier die fillTypes "sugarBeet" duch "fertilizer" ersetzt. Dann müsstest du noch die Plane anpassen. Danach kannst du dort Dünger einlagern und mit der Schaufel wieder entnehmen.
-
-
Mensch fruktor, Rauchen ist ungesund... :knot:
Aber der Trac gefällt für den Anfang!
-
Wenn du Skripte über die register.lua in andere Geräte implementierst, dann kann man die l10n Texte nicht so einfach übernehmen.
Das ganze lässt sich aber wie folgt ändern.
Als erstes müssen die l10n Texte in der register.lua aufgerufen werden.
[lua]function ManualHydraulics_Register:loadMap(name)
if self.firstRun == nil then
-- weitere Einträge
self.texts = {};
self.manHyd_fp = g_i18n:getText("MANHYD_fp");
-- und dann die restlichen l10n Texte nach dem gleichen Prinzip
end;
g_currentMission.manualHydraulics = self;
end;[/lua]Jetzt müssen die Texte noch in der ManualHydraulics.lua aufgerufen werden:
Folgendes:
[lua]g_currentMission:addHelpButtonText(g_i18n:getText("MANHYD_fp"), InputBinding.MANHYD_fp);[/lua]
muss durch
[lua]g_currentMission:addHelpButtonText(g_currentMission.manualHydraulics.texts.manHyd_fp, InputBinding.MANHYD_fp);[/lua]
ersetzt werden.
Das ganze müsstest du dann auch noch mit den anderen Einträgen machen.Ich hoffe, du verstehst was ich da gemacht habe, wenn nicht, dann versuche ich es dir noch besser zu erklären.
-
Ist soetwas wie ein Index in der xml, darüber kann man z.B. Animationen einem bestimmen Objekt zuordnen.
-
Die Zeilen der Animation hineinkopieren und gegebenfalls nodeID anpassen.
-
Wenn die Animation in der i3d war, dann wird diese natürlich gelöscht.

-
Ja, das geht. Du musst nach dem Skalieren nur das Objekt anwählen und dann auf Modify -> Freeze Transformations klicken, dann werden die Skalierungswerte auf 1 1 1 gesetzt.
-
Die Log sieht genauso aus wie die, die hochgeladen hab.
Dann solltest du erstmal ohne alle anderen Mods (außer eventuell zugehörige Mods) und auf der original Map testen, dann findet man manchen Fehler leichter. -> Danach log.txt hier posten.
-
Du solltest dir angewöhnen die ganze log. anzuhängen, denn dein geposteter Auszug kann von so ziemlich jedem Skript kommen...da müsste man schon hellsehen können, um das Problem zu lösen...

-
Hammer, mehr kann man einfach nicht sagen! Sowohl die Bilder als auch die Map sind top!

-
Der Fehler kommt von der InteractiveControlPanel.lua. Füg ganz unten mal folgendes hinzu:
[lua]-- Numbered Button
OverlayNumberedButton = {};
local OverlayNumberedButton_mt = Class(OverlayNumberedButton);function OverlayNumberedButton:new(overlay, number, onClick, target, disabledColor)
local disabledColor = disabledColor;
if disabledColor == nil then
disabledColor = {0.8, 0.8, 0.8, 0.4};
end;
return setmetatable( {overlay=overlay, number=number, onClick=onClick, target=target, isDisabled=false, disabledColor=disabledColor}, OverlayNumberedButton_mt);
end;function OverlayNumberedButton:delete()
self.overlay:delete();
end;function OverlayNumberedButton:mouseEvent(posX, posY, isDown, isUp, button)
local isOver = posX >= self.overlay.x and posX <= self.overlay.x+self.overlay.width and posY >= self.overlay.y and posY <= self.overlay.y+self.overlay.height;
if not self.isDisabled and isOver then
self.overlay:setColor(1.0, 1.0, 1.0, 1.0);if isDown and button == Input.MOUSE_BUTTON_LEFT and self.onClick ~= nil then
if self.target ~= nil then
self.onClick(self.target, self.number);
else
self.onClick(self.number);
end;
end;else
self:reset();
end;
end;function OverlayNumberedButton:render()
self.overlay:render();
end;function OverlayNumberedButton:setIsDisabled(isDisabled)
if self.isDisabled ~= isDisabled then
self.isDisabled = isDisabled;
self:reset();
end;
end;function OverlayNumberedButton:reset()
if self.isDisabled then
self.overlay:setColor(unpack(self.disabledColor));
else
self.overlay:setColor(1.0, 1.0, 1.0, 0.8);
end;
end;[/lua]Das sollte den Fehler beheben.
-
Häng doch mal die ganze log.txt und die PoettingerJumbo7210.lua an, dann kann man dir besser helfen.
-
Schön, dass der Krone Emsland jetzt doch im Pack ist (ich finde diese kleinen Maschinen einfach schöner als die großen)!

PS. Habt ihr das Greiferskript auch im Bezug auf die Fixierung der Baumstämme in der Zange optimiert oder wieso funktioniert es jetzt doch mit zwei Baumstämmen im Greifer?

-
Wie immer schöne Bilder!
Auch deine Maschinenauswahl finde ich sehr gut!
-
Das mit dem Tagebuch scheint interessant zu werden, man kann so den Fortschritt auch besser nachvollziehen.
Wird das Tagebuch eigentlich wöchentlich, etc. aktualisiert oder nur wenn ihr auch ein Update bringt? -
Die Version 1.0.0.3 kam kurz nach dem release raus, seit zwei Wochen gibt es dort aber Version 1.0.4

-
Ne, Helfertools gibt es für LS 13 im ModHub.
Ich versuche es dir aber mal hier zu erklären.Als erstes setzt du dort wo dein Skript den Text aufruft, das wäre
[lua]g_currentMission:addExtraPrintText(string.format(g_i18n:getText("GasLimiter_controls"), self.typeDesc) .. " " .. InputBinding. getKeyNamesOfDigitalAction(InputBinding.mehrRPM) .. "/" .. InputBinding.getKeyNamesOfDigitalAction(InputBinding.wenigerRPM));[/lua]
die die Variable ein, damit du sie in der register.lua aufrufen kannst.
Das sieht dann so aus:
[lua]g_currentMission:addExtraPrintText(g_currentMission.gasLimiter.texts.controls) .. " " .. InputBinding. getKeyNamesOfDigitalAction(InputBinding.mehrRPM) .. "/" .. InputBinding.getKeyNamesOfDigitalAction(InputBinding.wenigerRPM));[/lua]Nun musst du in der register.lua folgenden Code in
[lua]function gasLimiter_Register:loadMap(name)[/lua]
unter
[lua]for k, v in pairs(VehicleTypeUtil.vehicleTypes) do
...
end;[/lua]
einfügen.
Der Code sieht so aus:
[lua]self.texts = {}
self.texts.controls = g_i18n:getText("GasLimiter_controls");[/lua]Es sollte dann etwa so aussehen:
[lua]function gasLimiter_Register:loadMap(name)
if self.firstRun == nil then
...
for k, v in pairs(VehicleTypeUtil.vehicleTypes) do
...
end;
self.texts = {}
self.texts.controls = g_i18n:getText("GasLimiter_controls");
end;
end;[/lua]Jetzt musst du noch folgendes hinzufügen
[lua]g_currentMission.gasLimiter = self;[/lua]
damit die register.lua weiß, was anstatt
[lua]self[/lua]
in deinem Hauptskript genutzt wird.
Dies fügst du zwischen die zwei untersten
[lua]end;[/lua]
des Bereichs
[lua]function gasLimiter_Register:loadMap(name)[/lua]
ein.Sollte dann etwa so aussehen:
[lua]function gasLimiter_Register:loadMap(name)
...
self.texts = {}
self.texts.controls = g_i18n:getText("GasLimiter_controls");
end;
g_currentMission.gasLimiter = self;
end;[/lua]Ich hoffe, dass man das so verstehen kann.
