Mal was zum schauen
Bin gerade dabei die auf/abladelogik etwas zu überarbeiten. Heute abend mache ich mich dann mal an die laden/speichern funktionen
Mal was zum schauen
Bin gerade dabei die auf/abladelogik etwas zu überarbeiten. Heute abend mache ich mich dann mal an die laden/speichern funktionen
Nochmal ne frage bevor das irgendwann relased wird, wird der auch neben dem häcksler fahren könne? wie in 09er zeiten, weil ich und glaub auch andere können keine Spiele hosten wegen dem schlechten verbindung die ich habe.
Erstmal wird es das nicht geben, aber in einer späteren Version bestimmt mal
Lade/Speicher funktion habe ich schon vorbereitet, die baue ich heute auch noch ein.. JEtzt bin ich wieder hoch motiviert :))
Schickst mir die Änderungen mit den Kegeln?
ah cool, das habe ich eh noch gesucht, danke für den hinweis.
Übrigens gibt es in ein paar minuten ein Video von EINEM aufladenden und abladenden Abfahrer
(es funzt) *feier*
Lautschreier, was hält du eigentlich davon die beim aufzeichnen gefahrerne Geschwindigkeit mit in den Wegpunkten zu speichern und dann auch mit dieser abzufahren?
Oder würdest du eher ein Tempolimit für Straße/Hof/Feld einführen?
Naja das würde ich keinen Fehler nennen, eher nen fehlendes Feature.
Es muss noch gecheckt werden, ob er fertig abgeladen hat und dann der trigger entfernt werden, damit wollte ich jetzt anfangen.
da lag ich doch nicht 100 prozentig falsch mit trailer:toggleTipState(self.currentTipTrigger)
naja,du hast den fehler gefunden also gehört er dir
Ach komm, wir teilen ihn uns, dann fühl ich mich nur halb so schlecht.
Wegen genau solcher Fehler hasse ich das scripten/programmieren. EIN bescheuerter Punkt.. PAH!
Ich geh kaputt, ganz ehrlich. Der absolute Anfängerfehler:
Falsch:
active_tipper.toggleTipState(self.currentTipTrigger)
Richtig:
active_tipper:toggleTipState(self.currentTipTrigger)
Na wer sieht den Unterschied? Ich habe ihn 4 Stunden lang nicht gesehen
Wie kommst du denn auf 100?
laut http://www.ls-mods.de/scriptDo…s/specializations/Trailer gibt es nur 0 bis 3
Trailer.TIPSTATE_CLOSED = 0;
Trailer.TIPSTATE_OPENING = 1;
Trailer.TIPSTATE_OPEN = 2;
Trailer.TIPSTATE_CLOSING = 3;
Edit: das mit dem zurückschleichen habe ich schon korrigiert, kommt gleich ne neue version, aber ich will erst das automatisch abkippen mit rein haben
Nein, in dem Fall ist active_tipper schon richtig, das ist ja der Name der Variable in dem der abzukippene Hänger gespeichert wird.
wenn man doch mal an den Code der "SpecializationUtil.lua" kommen würe, das würde die Fehlersuche um einiges einfacher machen. Ich vermute gerade, dass man den TipTrigger noch in g_currentMission.CurrenttipTrigger einfügen muss, das habe ich gestern irgendwo gesehen.
die gitignore ist nur für github..
also ich hab grad nochmal ne fast-fertige version hochgeladen.
in zeile 364 ist der Fehler, den kann ich aber auf die schnelle nicht lösen
"active_tipper.toggleTipState(self.currentTipTrigger)" klappt irgendwie nicht, weder "self.currentTipTrigger" noch "active_tipper" ist leer.
eigtl müsste das so gehen.
Ich muss jetzt leider auch off, vielleicht findet ja jemand den Fehler
nee, ich hatte zwischendurch nochmal was geändert.
An dem Fehler Arbeite ich grad
John Deere
wo gehobelt wird fallen nunmal späne.. mir ist erstmal wichtig, dass es ordentlich funktionert. Refactoring kommt später.
So nochmal nen kleines update.
wenn ich alles richtig gemacht habe wird der trailer jetzt sogar entladen. Kann es wie gesagt grad nicht testen.
Er fährt auf jedenfall noch nicht wieder los.
Ich hab grad mal ne neue Version auf github gestellt, kann die mal grad jemand testen? LS läuft unter linux ja noch nicht
Sollte jetzt eigentlich so laufen,dass er bei Trigger Reichweite langsam wird, und wenn der hänger auf dem trigger ist stehen bleibt.
Hey,
die Sache mit self.currentTipTrigger=nil am Anfang des TipTriggerCallbacks habe ich mal so übernommnen.
Sonst hätte ich hier wohl nen ähnliches Bug verbaut wie ihn der PathTractor hatte: nämlich, dass das Ding zurück zum Feld schlecht, weil der Trigger noch aktiv ist. Das ist so behoben. Danke dafür.
Mit der Distance 5 geschichte könnte ich auch beim raystackAll am Ende statt der 10 ne 5 schreiben, hab jetzt erstmal die 10 gewählt.
Bisher ist das Script auch noch nicht ganz soweit. Ich baue jetzt gleich mal ein, dass der ganze Mod Fahrstufen hat.
Micha hatte das glaubich damals auch so gemacht, dass er eine Geschwindigkeit auf dem Feld, eine auf der Straße und eine auf dem Hof hatte. Ich werde eventuell noch eine Trigger-Geschwindigkeit einführen.
Also ich baue jetzt erstmal ein, dass er die geschwindigkeit reduziert, und dann die neu Funktion "unload_tippers" ausführt bis die Dinger leer sind.
Ich schau mal wie weit ich komme, kann von hier aus leider nicht testen - ärgert mich auch, dass ich heute abend soziale kontakte pflegen muss, würde gerne weiter machen
YEAAAAAAH BABY
Also erstmal, vielen Dank, dass ich wegen euch jetzt doch nicht ins Bett gekommen bin - jetzt habt ihr mich quasi gezwungen doch wieder ewig zu machen
Ich hab jetzt in Anlehnung an eure beiden Vorschläge folgendes gemacht:
-- tip trigger
function courseplay:findTipTriggerCallback(transformId, x, y, z, distance)
for k,trigger in pairs(g_currentMission.tipTriggers) do
if trigger.triggerId == transformId then
self.currentTipTrigger = trigger
end
end
end
und es FUNKTIONIERT! Also vielen Dank für die tatkräftige Unterstützung.
Also aktueller Status: Schlepper wartet bis Hänger voll und der Autopilot schaltet sich vor der Abladestelle ab.
Dann werde ich doch mal schauen ob ich es morgen noch hinkriege, dass der schlepper über den trigger rüberfährt bis die hänger über ihm sind, diese dann entläd, und ab zurück zum startpunkt.
Jungs, vielen Dank nochmal - so funktioniert das prima!
So das allabendliche Statusupdate kommt heute mal vor 3Uhr morgens - mein Körper signalisiert mir ziemlich deutlich, dass ich auf Dauer nicht mit 4-5 Stunden Schlaf pro Nacht auskomme, daher werde ich jetzt mal nicht ewig über dem aktuellen Problem brüten sondern es an euch weitergeben. Und hoffen, dass hier jemand eine Idee zur Lösung hat.
Aber erstmal das Statusupdate:
Der Schlepper erkennt jetzt auch zusätzlich angehängte Trailer, man wird also später auch mit mehreren Hängern hintereinander abfahren können.
Das beladen beider Hänger klappt noch nicht, da der Schlepper noch nicht vorfährt wenn der erste voll ist.
Auch das erkennen des Abladetriggers macht Fortschritte:
Die raycastAll-Geschichte von gestern konnte ich mit tante googles Hilfe lösen und er springt auch brav in meine Funktion wenn ein Trigger in der nähe ist.
Hier der Code:
function courseplay:findTipTriggerCallback(transformId, x, y, z, distance)
print("i am in onTipTrigger")
print(transformId)
local trigger = g_currentMission.tipTriggers
local count = table.getn(trigger)
print(count)
for i = 1, count do
print(trigger[i].triggerId)
if trigger[i].triggerId == transformId then
print("hab den trigger gefunden")
self.currentTipTrigger = trigger[i]
end
end
end
Damit kommen wir auch zu meinem Problem:
Ich habe mir gedacht: Wenn ein Trigger in der Nähe ist, hole ich mir alle TipTrigger der Map, gehe die durch und schaue ob die ID die gleiche ist wie bei dem der grad in der Nähe ist. Ich ging davon aus, dass in g_currentMission.tipTriggers alle Trigger enthalten sind, dem ist aber offenbar nicht so.
Die Einträge im Log sind folgende:
i am in onTipTrigger
4022
0
er findet also was mit der ID 4022, aber "count" ist 0.. und 0 ist viel weniger als ich erwartet hatte.
Ich habe auch was gelesen, dass man Trigger erst registrieren muss, daher meine Idee: beim Einfahren des Kurses könnte man beim Abkippen den Trigger registrieren. Aber muss ich das denn wirklich?
Wäre für einen Denkanstoß/Lösung/Idee usw sehr dankbar, morgen kann ich zwar nicht weitermachen, aber am Wochenende würde ich gern dafür sorgen, dass das Laden und Abkippen funktioniert.
Kann mir bitte jemand erklären was dieses Stück Code wohl so macht?
Ich ging bisher davon aus, dass raycastAll durch irgendeine "Magic" mal in die onTipTrigger Methode rein kommt, aber Pustekuchen.
Weiß hier jemand was raycastAll so macht?
[lua]local tx, ty, tz = getWorldTranslation(self.aiTrafficCollisionTrigger)local nx, ny, nz = localDirectionToWorld(self.aiTractorDirectionNode, 0, 0, 1) raycastAll(tx, ty, tz, nx, ny, nz, "onTipTrigger", 10, self)[/lua]
Aktuell nur bei 100%, der Fehler mit "Steckt im Verkehr fest" beim warten ist schon behoben.
Ich schreib mir mal auf die Featureliste, dass man den Wert selbst einstellen kann, also auch auf 50% runter.
Du musst in deinem Mod einen Ordner mit Namen Specializations anlegen und dort die 2 Files hineinkopieren. Ausserdem musst du in der courseplay.lua in Zeile 31 den Ordner Spezializations in Specializations umbennen damit der Pfeil angezeigt wird.
Ups, sorry - da war die Hand schneller beim Tippen als das Auge beim kontrollieren - habe ich soeben gefixt.
Ich kann aktuell nur davon abraten zu versuchen, das Script produktiv einzusetzen. Wer also wirklich damit spielen will sollte sich noch ein bisschen gedulden. Noch sind da einige Bugs drin, und viele Funktionen klappen noch nicht so wie ich mir das vorstelle.