Plugin Fragen

Das Forum befindet sich im reduzierten Betrieb. Die Addon- und Supportforen bleiben weiterhin verfügbar.
Bitte beachte, dass OMSI nicht mehr weiterentwickelt wird. Ein Teil der Entwickler widmet sich inzwischen der Entwicklung eines neuen Simulators. Weitere Informationen zum LOTUS-Simulator findest Du hier.
Ein communitybetriebenes Nachfolge-Forum wird hier verlinkt, sobald es gegründet und bereit ist.
  • Hallo,


    ich hätte da mal ein paar Fragen zum Plugin-System, die vom Wiki nicht beantwortet werden (jedenfalls hab ichs nicht gefunden).


    - Wie oft bzw. wann ruft Omsi die AccessVariable-Funktion auf?


    - Kann man die aktuelle Omsi-Uhrzeit abfragen? (Ich würde mir nämlich gerne eine Omsi-Uhr auf den zweiten Bildschirm legen)


    - Hat jemand schonmal versucht, so ein Plugin mit C# zu schreiben? Wäre jetzt die Sprache meiner Wahl, ansonsten wird halt c++ nochmal ausgepackt...


    Grüße, Andy

  • C++ hat mit .net nix zu tun, ich mache meine Versuche mit dem Studio 6.0, das ahnt von .net nicht mal was.


    Sind alles reine COM-DLLs. Auch kann man mit .net COM-DLLs exportieren, dazu fehlt mir allerdings noch der Ansatz, wie ich reine Funktionen (keine Klasse) exportieren kann.


    Ich habe mittlerweile mal mit C++ angefangen. Ich werde auch aufgerufen, bekomme aber immer den Wert 0.
    Ich versuche wie im Tutorial die "Velocity" auszulesen. Allerdings habe ich entweder mit den Parameter-Typen ein Problem oder nur intern, denn ich erhalte immer 0.
    Wenn ich das in Delphi richtig verstehe, muß der Parameter für den Wert schon ein Zeiger auf Float sein, oder?


    Grüße
    Andy

  • Hallo Andy!


    - Wie oft wird sie aufgerufen? Im aktuellen OMSI schlicht in jedem Frame. Das kann sich aber künftig ändern, falls wir dazu übergehen sollten, Bilddarstellung und Scriptverarbeitung zu desynchronisieren...


    - Die Uhrzeit kann man leider nicht abfragen - das ist natürlich ne dumme Sache, aber es ist nunmal keine Fahrzeugvariable. Man könnte aber dem jeweiligen (!!) Bus ein Scriptupdate verpassen, was die Variablen rüberkopiert. Ist aber natürlich seehr umständlich. Kommt in die Todolist.


    - C++: Keine Ahnung! Ob das Gegenstück von "var" in Delphi bei C++ ein Zeiget ist, vermag ich nicht zu sagen...!


    Marcel

  • Hi Marcel,


    danke für die Antwort!


    - Wie oft ...
    Ok, das war natürlich auch nur ne Interessefrage, weils nicht dokumentiert war. Oft genug wirst du es schon lassen

    :-)


    - Die Uhrzeit ...
    Ok, das ist wirklich schade. Aber schön zu wissen, dass ihr solche Wünsche aufnehmt!


    - C++: Keine Ahnung! ...
    Ok, kein Problem, du schriebst ja schon im Wiki, dass du das nicht weißt, die Frage lassen wir mal stehen für Leute, die beides können (ich kenn kein Delphi)


    Grüße
    Andy

  • Hi Andy,


    da ich nicht immer nur Fragen stellen möchte und ich auch mal was beitragen kann (wie ich glaube) melde ich mich zu diesem Thema mal. Ich habe vor kurzem angefangen mich mit Delphi zubeschäftigen. Mittlerweile habe ich einiges verstanden, wenn es um die Ausgabe der Daten von OMSI geht. Bei meinen Versuchen bin ich auf die Variablen cockpit_uhr_std und cockpit_uhr_min gestossen. Diese werden beim Aufruf kryptisch dargestellt und müssen z.B. in Delphi umgerechnet werden.


    Beispiel:


    10:05 Uhr wird durch die Variablen cockpit_uhr_str = 55 und cockpit_uhr_min = 605 dargestellt. Um die Umrechnungsfaktoren besser zu verstehen habe ich hierzu ein Exceltabelle erstellt und die hiergewonnen Erkenntnisse in Delphi umgesetzt.



    Um also 10:05 Uhr im Klartext darzustellen, muss eine IF Abfrage herhalten. Diese könnte dann so lauten:


    Stunde:


    if (omsi_stunde < 56) and (omsi_stunde > 50) then
    omsi_stunde_ausgabe:= '10';
    form1.Label1.Caption := omsi_stunde_ausgabe;


    Minute:


    if omsi_stunde_ausgabe = '10' then
    omsi_minute_ausgabe:= floattostrF( omsi_minute-600, ffFixed, 5, 0 );
    form2.Label1.Caption := omsi_minute_ausgabe;


    Ist vielleicht nicht besonders schön, aber es funktioniert.


    Hoffe konnte jetzt auch mal helfen.


    Gruß


    Pulle

  • Hallo alle zusammen,


    ich habe zwar davon gar keine Ahnung aber vielleicht kann ich einen Wink zur Lösung beitragen:


    Zum Thema Uhrzeitabfrage ....
    Wenn ich die Uhrzeit außerhalb von OmSi darstellen möchte, wird doch die Uhrzeit abgefragt. Hier hat holmexx ein Plug-in entwickelt, das die IBIS Daten auf das Display einer Logitech G15 Tastatur überträgt. Dazu hat er eine dll geschrieben die man in den Ordner Plugin einfügt und das Display zeigt während des Spielens die Haltestellen, Fahrziele, Linie ect auch an. wenn man auf dem jeweiligen IBIS die "0" drückt schaltet das IBIS um und zeigt Datum und Uhrzeit. Das Datum wird nicht angezeigt, aber die Uhrzeit schon .... Stunde : Minute : Sekunde.


    Hier ist der Link zu den Daten