Arma 3 - ANN News anzeigen

  • In diesem Beispiel bin ich zuvor angeschrieben worden und nach einer möglichen Lösung gefragt worden, wie man diese startet bzw. überhaupt anzeigt. In der Beispielmission, welche hier zum Download angehängt ist, habe ich 2 Trigger dafür platziert um eine Demonstration zu erstellen.

    Es gibt noch eine Reihe von anderen Methoden, aber so könnte man es lösen.

    Hier sind es zwei simple time Einstellungen um die Trigger zu starten.

    Code
    1. Trigger 1
    2. Aktivierung: vorhanden
    3. Bedingung: time >10
    4. Bei Aktivierung;
    5. [ parseText "<t size='2'>AAN live auf Stratis</t><br/>Washington on DEC 2019/08/12</t>", parseText "+++EILMELDUNG +++ Trump tritt zurück! +++EILMELDUNG +++ Er entzieht sich somit dem Amtsenthebungsverfahren, welche zusammenfassend eine ganze Reihe von gravierenden Missbräuchen von Regierungsvollmachten bestätigte ! " ] spawn BIS_fnc_AAN;


    Nun muss das auch irgendwann mal beendet werden:

    Code
    1. Trigger 2
    2. Aktivierung: vorhanden
    3. Bedingung: time > 30
    4. Bei Aktivierung;
    5. (uinamespace getvariable "BIS_AAN") closedisplay 1;


    Ansicht nachher im Game:

    ann_news.jpg


  • So einfach, wie es schien, ist es dann doch nicht. Hatte das via Editor als localen Server getestet. Leider wird structured text (parsed text) im MP nicht unterstützt.

    https://community.bistudio.com/wiki/Structured_Text


    Mit Rick0Shay haben wir dann was anderes probiert:

    In der Propaganda Mission dann:

    Code
    1. remoteExec ["ROS_AAN_Fnc", 0];
    2. _missionPicture = "pictures\propaganda.paa";
    3. _missionHintText = format ["<br/>SRS fighters have built up an <t color='%1'>underground radio station</t>!<br/>They are spreading <t color='%1'>propaganda</t>!<br/>Head there and stop this. NOW!", occupationMissionColor];

    Soweit klappt alles. Nur wenn die Mission endet (egal, ob zeit vorbei ist oder Spieler die AI erledigen), bleibt das Display, trotz der Versuche zweier Varianten. Im Grunde dreier Varianten:

    Code
    1. call{(uinamespace getvariable "BIS_AAN") closedisplay 1;};

    Die ursprüngliche Version.

    Und hier die 2. Variante, einmal am Ende mit -2, einmal mit 0. Beides führte zu keinem Erfolg. Display bleibt.

    Code
    1. [(uiNamespace getVariable "BIS_AAN") closeDisplay 1] remoteexec ["call", 0];

    Woran könnte das liegen?

  • Zitat
    Code
    1. Performance warning: SimpleSerialization::Write 'messageSystem' is using type of ',TEXT' which is not optimized by simple serialization, falling back to generic serialization, use generic type or ask for optimizations for these types

    Hatte angenommen, dieses Problem würde mit dem Script umgangen ..

  • Wieso running system? Ist das parstext so überhaupt MP kompatibel?


    Code
    1. This type is not meant to be used with remote execution. Executing [parseText "test"] remoteExec ["hint"]; will result in the following rpt message:
    2. Performance warning: SimpleSerialization::Write 'params' is using type of ',TEXT' which is not optimized by simple serialization, falling back to generic serialization, use generic type or ask for optimizations for these types
    3. Parse the text on the receiving client instead.

    call{(uinamespace getvariable "BIS_AAN") closedisplay 1;}; war mein erster Versuch, den Startpost von dir direkt einzubauen in eine Mission.

    Als localer Server funktioniert das auch. Nur halt nicht auf nem Dedicated.

    Also versucht, es anders zu lösen .. ohne Erfolg.


  • SO funktioniert es: wenn der end-call direkt als Erstes kommt.

  • Ist das parstext so überhaupt MP kompatibel?

    na sicher :)




    Ich habe so gelöst.


    init.sqf

    Zitat

    call compile preprocessFileLineNumbers "ROS_Fnc_AAN.sqf";



    ROS_Fnc_AAN.sqf

    Die schließt quasi selbst nach 10 sek. Oder wie lange Du das halt brauchst.

    Im Editor hat es jedenfalls geklappt :P


    Zitat

    Aufruf über remoteExec ["ROS_AAN_Fnc", -2];