Dokumente mit Informationen bestücken für Missionen, aber wie?

  • Hallo zusammen,


    Ich habe mir eine Mission gebaut wo es wichtig ist das man Akten ( Dokumente) finden muss und darin sich informationen befinden sollen. Z.B. wo sich ein Außenposten oder ein Waffenlieferung für den Feind sind.


    Im Internet bin ich auf die Sktipsammlung gestoßen und genau das benötige ich:


    Ich bin jetzte nicht der Top Skripter in arma, aber einfache Sachen klappen. Eher bin ich Azubi :27_crazy: in der Sache und lerne viel von Internet Recheren . Hier sind mir als Hauptquelle dieses forum oder der Youtube Kanal von @vogelgrippe sehr hilfreich.
    Hiermit erstmal ein dankeschön an Vogelgrippe für seine tollen Videos über den Editor.
    So zu meinem Problem: :31_sos:


    Mir ist klar das ich eine Akte(Dokument) Platziere.


    Ich "öffne" das Dukoment


    und gehe in den Absatzt wo die Init ist und Tippe das da oben eine.


    So habe ich das gemacht:


    if (isServer) then { -klingt wichtig, muss rein-
    // 3 verschiedene Beispiele für ein (mögliches) Bild -Habe kein Bild = brauche ich ein Bild?-
    this setVariable ['RscAttributeDiaryRecord_texture','a3\structures_f_epc\Items\Documents\Data\document_secret_01_co.paa', true];
    this setVariable ['RscAttributeDiaryRecord_texture','a3\structures_f_epc\Items\Documents\Data\files_secret_ca.paa', true];
    this setVariable ['RscAttributeDiaryRecord_texture','bild.jpg', true];
    // Information der Dokumente -Genau das will ich-
    [this,'RscAttributeDiaryRecord',-was ist das RscAttributeDiaryRecord=Was muss ich da machen?-
    ['Ueberschrift der Dokumente','Genaue Information<\br>Mit HTML-Tags zur Formatierung','']]-alles klar muss ausgefüllt werden=was ist mit HTML-Tag gemein und was muss ich machen?-
    call bis_fnc_setServerVariable; -kingt wichtig, muss rein-
    // Für welche Seite sind diese Dokumente
    this setVariable ['recipients', WEST, true]; -ist wichtig muss rein- zu test zwecken auf East gestellt-


    };- so skript abschließen-

    So das immer in -...- ist mein Gedanken gang und das Rote makiert das Wichtige.


    Ich bedanke mich im vorraus für eure Hilfe. Falls jemant einen einfachen weg kennt oder einen besseren ist mir das auch recht.
    Bedenkt nur das ich noch in der ausbildung mit den Skripten bin ubd Hauptsächlich mit Internetrecheren gearbeitet habe.


    Gruß Benny

  • Ein Bild ist nicht zwingend erforderlich.


    Mit den HTML-Befehlen kannst du deinen Text formatieren, z.B. Zeilenbrüche einfügen, Schriftart, -farbe und -größe bestimmen.
    Hier stehen die von Arma unterstützten Befehle.


    Kopiere einfach einmal den folgenden Abschnitt in die Init-Zeile deiner Akte und platziere noch irgendwo einen Marker mit dem Namen "Eisdiele" auf deiner Karte.


    Code
    1. data = [this,"RscAttributeDiaryRecord",["Wetterbericht","<br/><font size=22>Wetterbericht</font><br/><br/>Montag: 17 °C<br/>Dienstag: 19°C<br/>Mittwoch: <font color='#ff0000'>24°C</font><br/>Donnerstag: 22°C<br/>Freitag: 19°C<br/>Samstag: 16°C<br/>Sonntag: <font color='#0000ff'>13°C</font><br/><br/>Mittwoch gibt es <marker name='eisdiele'>hier</marker> Eis im Angebot.",""]] call bis_fnc_setServerVariable;


    Zu der recipients-Variable kann ich nichts sagen. Könnte sein, dass im Multiplayer jeder Spieler, unabhängig seiner Seitenzugehörigkeit, die Informationen erhält, solltest du keine Seite festlegen.

  • hallo smile,


    Ich habe das jetzte mal ausprobiert und ich habe keinen zugriff darauf als Bluefor wie als auch Opfer.
    Ich spiele mit Mods kann das zu Problemen füren und maker habe ich hingesetzt und Eisdiele genannt.
    habe auch das kopiert wie du das geschriben hast data = ...
    Habe ich was falsch gemacht ?


    Gruß Benny


    P.S: diese modsbenutze ich:


    aceSteamhttp://steamcommunity.com/shar…filedetails/?id=463939057
    ACE Compat - RHS Armed Forces of the Russian FederationSteamhttp://steamcommunity.com/shar…filedetails/?id=773131200
    ACE Compat - RHS United States Armed ForcesSteamhttp://steamcommunity.com/shar…filedetails/?id=773125288
    ADV - ACE CPRSteamhttp://steamcommunity.com/shar…iledetails/?id=1104460924
    ADV - ACE SplintSteamhttp://steamcommunity.com/shar…iledetails/?id=1291442929
    AresSteamhttp://steamcommunity.com/shar…filedetails/?id=421908020
    ASR AI3Steamhttp://steamcommunity.com/shar…filedetails/?id=642457233
    ASR AI3 - Project Opfor configSteamhttp://steamcommunity.com/shar…filedetails/?id=849435425
    CBA_A3Steamhttp://steamcommunity.com/shar…filedetails/?id=450814997
    CUP Terrains - CoreSteamhttp://steamcommunity.com/shar…filedetails/?id=583496184
    CUP Terrains - MapsSteamhttp://steamcommunity.com/shar…filedetails/?id=583544987
    Enhanced SoundscapeSteamhttp://steamcommunity.com/shar…filedetails/?id=825179978
    JSRS SOUNDMODSteamhttp://steamcommunity.com/shar…filedetails/?id=861133494
    JSRS SOUNDMOD - RHS AFRF Mod Pack Sound SupportSteamhttp://steamcommunity.com/shar…filedetails/?id=945476727
    JSRS SOUNDMOD - RHS USAF Mod Pack Sound SupportSteamhttp://steamcommunity.com/shar…iledetails/?id=1180533757
    Project OPFORSteamhttp://steamcommunity.com/shar…filedetails/?id=735566597
    RHSAFRFSteamhttp://steamcommunity.com/shar…filedetails/?id=843425103
    RHSUSAFSteamhttp://steamcommunity.com/shar…filedetails/?id=843577117
    task_force_radioSteamhttp://steamcommunity.com/shar…filedetails/?id=620019431
  • Hi,


    also dass es an den Mods liegt, kann ich mir eigentlich nicht vorstellen.


    Ich habe den Code in die Init des Objekts unter Requisiten -> Dinge -> Infos -> Dokumente (Classname "Intel_File1_F") geschrieben.


    Verwendest du vielleicht ein anderes Objekt?

  • Ich musste die Kommentarzeilen (//) löschen, da der Editor damit nicht zurecht kommt.

    Code
    1. if (isServer) then {
    2. this setVariable ['RscAttributeDiaryRecord_texture','a3\structures_f_epc\Items\Documents\Data\document_secret_01_co.paa', true];
    3. this setVariable ['RscAttributeDiaryRecord_texture','a3\structures_f_epc\Items\Documents\Data\files_secret_ca.paa', true];
    4. [this,'RscAttributeDiaryRecord',['Ueberschrift der Dokumente','Genaue Information<\br>Mit HTML-Tags zur Formatierung','']] call bis_fnc_setServerVariable;
    5. this setVariable ['recipients', WEST, true];
    6. };

    Beim Anschauen des Intel_File1_F - Objekts habe ich die Option "Take Intel" im Aktionsmenü. Danach öffnet sich die Karte, und ich habe dort den Tagebucheintrag "Intel".


    Scheint also zu funktionieren. Das ganze ist aber meiner Meinung nach ziemlich hässlich.

  • Hi smile,


    ich habe es gefunden warum es nicht ging. Ich hatte das Item Requisiten -> Dinge -> Büro -> Akte (Dokumente) (Classname "Land_File1_F") und mit dem funktioiert es nicht :27_crazy: . Nur mit dem was du geschrieben hast funktioniert es.(Das Item)


    Danke dir für deine Hilfe und auch dir Commy2 bin jetzte um einiges schlauer


    Gruß Benny

  • Das dachte ich mir schon, dass es daran gelegen haben könnte :)


    Wenn du es brauchen solltest, gibt es auch noch die Option, nur einer Seite Zugriff auf die Dokumente zu gewähren.


    this setVariable ["RscAttributeOwners", [WEST], true];


    Somit würde z.B. OPFOR-Spielern kein Menüeintrag erscheinen.


    @commy2 Stimmt schon, die schönste Lösung ist es nicht unbedingt, aber dafür doch schön einfach :)Ist es eigentlich auch wichtig, dass es nur auf dem Server ausgeführt wird oder regeln diese interaktiven Objekte das von selbst?

  • Laut Wiki ist die Aufgabe von BIS_fnc_setServerVariable:

    Zitat

    Set variable stored only on server. Clients can the download it using BIS_fnc_getServerVariable. Used when you want to share variables only to specific clients to prevent large traffic.

    Das ist in meinen Augen kompletter Unsinn. Die Mission wird sowieso am Missionsstart von jedem heruntergeladen. Da könnte man diese Intelinfo auch gleich überall abspeichern und dann im richtigen Moment nur bei Team Blau oder Rot verfügbar machen. Es wird also im Endeffekt mehr Traffic erzeugt, als nötig ist. Auch wenn so ein kleiner String vollkommen vernachlässigbar ist.
    Also ist das ganze viel zu umständlich implementiert aus Gründen die selber unhaltbar sind.
    Wenn man diese Vorlage von BI benutzen möchte, dann muss man es aber wohl so machen. Das Init-Skript (init = "_this call bis_fnc_initIntelObject;";) in class EventHandlers von Intel_File1_F selbst benutzt nun mal BIS_fnc_getServerVariable, ob's Sinn macht oder nicht.


    Das ist auch der Grund, warum es mit Land_File1_F nicht funktioniert. Zwar vererbt Intel_File1_F von Land_File1_F, aber dieses Init-Skript ist nur in Intel_File1_F enthalten.