[gelöst] 3rdPerson/Earplugs

  • Hallo


    Ich habe mich eben hier angemeldet da ich in einem anderen Forum keine Hilfe bekommen konnte. Scheinbar ist es doch nicht so einfach wenn es eben nicht um Altis Life oder Epoch geht. Ich kopiere euch den Thread einfach mal hier rein, dann muss ich nicht alles nochmal schreiben.


    Grüsst euch zusammen



    Hoffentlich bin ich im richtigen Bereich, wenn nicht bitte verschieben.
    Danke.
    Nach einigem selbst herumprobieren bin ich an dem Punkt angelangt, an
    dem ich dann doch Hilfe benötige und hoffe die auch hier zu finden. Ich
    tu mir immer schwer um Hilfe zu fragen da man da ganz schnell bequem
    wird und alles erfragt ohne zu probieren. Aber nach 2 Tagen wird es dann
    doch mal Zeit. (EDIT: Mittlerweile der dritte Tag. War gestern Abend wieder dran gesessen, ohne Erfolg.)



    Was hat der Typ überhaupt vor ??

    Ich bin derzeit dabei eine Servermission mit verschiedenen
    Elementen aus Battle Royal, CTF, King of the Hill zu erstellen die
    rundenbasiert immer wieder läuft.



    Wo soll der Weg hingehen ??
    Keine Ahnung !! Derzeit bin ich mir noch nicht sicher ob das Projekt
    Erfolg hat, ob es sich zu einer Mod ausweitet, wie es ankommt, werden
    wir sehen. Um zu sehen wie die Resonanz ist, muss erstmal einiges an
    Arbeit reingesteckt werden.



    Wie weit ist die Arbeit ?
    Der grobe Aufbau der Map, der Basen ist fertig. Erstmal nur grob um
    schnellstmöglich eine testbare Version auf dem Server zu haben. Trigger,
    Playermeldungen, Globale Meldungen sind fertig. Im nächsten Schritt
    soll alles für einen anständigen Test vorbereitet werden, dazu eben auch
    das Problem was ich hier zu lösen versuche. Mit dem Feedback aus dem
    Test wird dann weiter gearbeitet, auch in Sachen Balance usw.



    Aktuelle Probleme



    3rdPerson

    Die 3rdPerson ist nicht einzuschalten. Im Editor ist alles
    wunderbar. Auf dem Server nicht. Ich habe versucht in der Datei
    config/server.cfg die Difficulty von Veteran auf Regular zu schreiben.
    Dann allerdings ist das Problem, das ich im Ladebildschirm hängen
    bleibe. Die Suche auf Google hat neben dieser Möglichkeit nur ergeben,
    das dieses Problem wohl seit der Version 1.58 gerne mal auftritt. Auch
    Threads aus dem englischen die dieses Thema behandeln schlagen
    Änderungen in Dateien vor, die ich auf dem Server noch nicht mal habe.
    Mehr dazu und was für ein Server es ist, schreibe ich weiter unten.



    Earplugs
    Die meisten Scripts zum Thema Earplugs behandeln Server für ALtis Life
    und Wasteland. Allerdings handelt es sich hierbei ja um einen
    umgeschrieben Wasteland Server. Also die Wasteland.Altis.pbo ist
    gelöscht und durch meine tld01.altis.pbo ersetzt und auch in der
    Server.cfg umgeschrieben. Ich habe insgesamt 2 verschiedene Scripts
    versucht die verschiedene Dateien erfordern die auf den Server kopiert
    werden sollen und das erstellen einer Init.sqf, die aktuell nicht mehr
    drauf ist, da ich alles wieder auf Urzustand gebracht habe um einen
    sauberen Überblick zu behalten. Ich denke jetzt nicht das die Scrippte
    fehlerhaft waren oder inkompatibel, denke ich hatte irgendwo einen Bock
    geschossen oder nicht verstanden. Weil eben 2 mal versucht.



    Frage 1:
    Wo genau muss ich die 3rdPerson einschalten und wie das ich nicht weiter
    im Ladebildschirm hängen bleibe. Hängt das Problem wirklich mit der
    Version von Arma3 zusammen ??



    Frage 2:
    Wo genau bekomme ich die Earplugs unter, am liebsten automatische,
    sobald man eben in ein Fahrzeug/Heli einsteigt. Gibt es keine
    Möglichkeit diese Earplugs in die Mission.sqm zu schreiben oder in die
    Init der spielbaren Einheiten ?? Gibt es wirklich nur den Weg über
    mehrere Dateien und Init.sqf ??



    Server
    Der Server ist aktuell ein 10 Slot (Aufbauphase) Server von G-Portal.
    Einstellen konnte man nur Altis Life, Wasteland oder Epoch. Ich habe
    mich für Wasteland entscheiden, Map ALtis und wie oben schon erwähnt die
    Wasteland.pbo rausgeworfen und gegen meine Datei ersetzt. Server läuft
    wunderbar, bis eben zu diesen Änderungen für 3rdPerson und die Earplugs
    nimmt er garnicht an.



    Ordner/Dateien auf dem Server
    Ich will euch jetzt nicht jede Datei aufschreiben, nur mal das grobe das
    ihr wisst womit ich arbeite. Denn Threads die Life oder andere
    behandeln scheinen mir hier nicht weiter zu helfen. Ich bin leider
    weitgehend am Anfang da mein Skripter mal Bock hat, mal nicht. Ich
    selbst komm nicht über die Copy/Paste Phase raus. Meine Stärken liegen
    eher im grafischen Bereich. Also muss ich mich selbst dahinter klemmen
    und dazu lernen. Diejenigen die mir also helfen können, müssen mir dann
    sagen wo ich welche Datei finde.



    Ordner:
    addons
    appcache
    battleeye
    BEC
    config
    curator
    dll
    dta
    heli
    kart
    keys
    logs
    mark
    mpmissions
    steamapps



    Dateien im selben Verzeichniss:
    arma3server.exe
    arma3server_readme.txt
    und ein Schwung dll Dateien für die Physx und Steam, kennt ihr ja sicher.



    Dank euch schonmal.



    Gruss
    Chrizzley

  • Hi @Chrizzley,


    zu deinen Problemen:


    3rdPerson:
    Versuch doch mal die Schwierigkeit der Mission direkt vor dem Missionsstart festzulegen. Dazu gibt es eine Einstellung in der Missionsauswahl (#missions).
    Wenn ich mich recht erinnere kann man dort auch Custom auswählen und die 3rdPerson unabhängig von den restlichen Settings festlegen.


    Earplugs:
    Wenn die Funktion noch nicht in deiner Mission integriert ist, musst du sie als Script hinzufügen. Leider sind Earplugs nicht in Vanilla enthalten, sodass du hier in der mission.sqm nicht viel machen kannst.
    In der init der spielbaren Einheiten kannst du dann festlegen ob eine Einheit Earplugs hat oder nicht.
    Letztendlich kommst du aber nicht drumrum, die ein entsprechendes Skript selbst zu schreiben oder von woanders zu integrieren (Lizenz beachten!).
    Vielleicht kann die hier auch @Psychobastard weiterhalfen, der hat ein recht simples Skript noch rumfliegen.


    Server:
    Was deinen Server angeht kann ich die leider nur wenig helfen. Ich persönlich lasse von Server die mir nur bestimmte Missionstypen vorgeben grundsätzlich die Finger, denn ich möchte selbst entscheiden welche Missionen auf meinem Server laufen. Wenn du die server.cfg frei editieren kannst und Zugriff auf den Arma 3 Server Ordner hast, solltest du aber auch so alles ans Laufen bekommen.


    Ordner/Dateien auf dem Server:
    Die von dir gelisteten Ordner sehen jetzt nicht falsch aus oder so. Im mpmissions gehört deine Mission rein, aber ich denke das weißt du bestimmt schon.

  • Servus


    Hey ihr glaubt nicht wie ich hier grad abgegangen bin. Im positiven Sinn. Die 3rdPerson ist drin. Da wir uns ja alle weiterbilden wollen, will ich hier erläutern wie ich es gelöst hab. Bei G-Portal gibt es 2 Dateien die man ändern muss. Ob das jetzt unbedingt was mit G-Portal zu tun hat weiß ich jetzt nicht. Aber ich hab die config/server.cfg bei difficulty geändert. Das hatte ich auch gestern schon gemacht. Und ich hab die config/users/config.arma3profile ganz unten geändert. Ebenfalls auf regular. Und ebenfalls schon gestern gemacht. Jetzt hab ich 2 Vermutungen warum es nicht gestern schon geklappt hat. entweder weil ich es über filezilla und Notepad++ gemacht hatte und es trotz aller Vorkehrungen und kontrollen eben doch nicht übernommen wurde, denn im G-Portal Panel waren die Dateien noch auf altem Stand, oder es hat daran gelegen das ich regular mit grossen R, also Regular geschrieben habe. Möglich auch das ich immer nur eine Datei geändert hatte und nicht beide gleichzeitig. Und das obwohl ich echt nicht hastig bei solchen Sachen bin. Aber wie so oft, kleiner Fehler große Wirkung. Was es auch war. es funktioniert jetzt. Und eben als ich hier bescheid geben wollte das ich 1 Problem schon gelöst habe, sehe ich das du geschrieben hast.


    Jetzt also nur noch die Earplugs. Da werde ich mal Psychobastard kontaktieren. Vielleicht hat er ja den richtigen Tipp für mich. Zur Info ich hab die EasyEarplugs und die CMEarplugs getestet. Beide hatten keinerlei Auswirkungen auf dem Server.


    Die Server bei G-Portal sind weitgehend ok und für den Zweck den ich hier brauche, absolut geeignet. Nachteil bei G-Portal ist zum Beispiel die "globale" MySQL Datenbank für Epoch oder AltisLife. Wie mir der Support damals erklärt hat gibt es bei denen eine zentrale MySQL die alle Server abarbeitet und die User bekommen darauf keinen Zugriff. RIesennachteil. Aber für die Mission bei mir, ist das ohnehin uninteressant.


    Ich denke auch nicht das die Dateien auf dem Server falsch sind, aber eben anders als auf einem Epoch/Exile/Life Server. Viele Scripte sollen in diese oder diese Datei rein, die aber hier einfach garnicht vorhanden sind weil eben anderer Modi. Manche Foren sind dann auch geil wenn die Pro´s dann der Meinung sind, eine Datei kann man in eine Datei schieben und solche Sachen. Aber das ist jetzt ein anderes Thema.


    Jedenfalls schonmal danke für die Antwort.

  • Bezüglich der Earplugs:
    Ein ganz rudimentäres System könnte so aussehen:


    Dann schreibst du einfach in deine init.sqf folgendes rein:

    C: init.sqf
    1. if(isServer) exitWith {}; // Nur falls du aus der init nichts auf dem Server amchen möchtest
    2. fn_addEarplugAction = compile preprocessFileLineNumbers "<PfadZumScript>";
    3. [] call fn_addEarplugAction;

    <PfadZumScript musst du selbstverständlich noch ersetzen ;)
    Schöner ist das Ganze naürlich, wenn du die Funktion über die CfgFunctions kompilieren lässt aber fürs erste tuts das auch so.


    Der Code ist übrigens nicht getestet, sondern einfach mal so runter geschrieben... Sollte aber denke ich soweit funktionieren :)


    MFG Raven

  • C: init.sqf
    1. if(isServer) exitWith {}; // Nur falls du aus der init nichts auf dem Server amchen möchtest
    2. fn_addEarplugAction = compile preprocessFileLineNumbers "<PfadZumScript>";
    3. [] call fn_addEarplugAction;

    <PfadZumScript musst du selbstverständlich noch ersetzen ;)
    Schöner ist das Ganze naürlich, wenn du die Funktion über die CfgFunctions kompilieren lässt aber fürs erste tuts das auch so.


    Der Code ist übrigens nicht getestet, sondern einfach mal so runter geschrieben... Sollte aber denke ich soweit funktionieren :)


    MFG Raven

    Hey Raven.


    Danke dir. Mit deinem Script hab ich jetzt insgesamt 4 Scripts. 2 aus dem Netz, eines vom Psychobastard und deins. Allerdings müsste ich noch wissen in welche Ordner ich die jeweiligen Dateien schieben soll. Die beiden Scripts aus dem Netz zum Beispiel beziehen sich auf Altis Life. Da ist die Serverstruktur vollkommen anders. Deswegen hab ich in meinem ersten Post auch die Ordnernamen reinkopiert.


    thx


    Bis dahin tacker ich beides mal in meinen mpmissions Ordner und passe die Pfade an. Feedback kommt.

  • Also die init.sqf muss direkt im Missionsordner liegen (in keinem Unterordner), wo auch die mission.sqm ist und das andere Script kannst du irgebndwo in den Missionsordner knallen (Also auch in Unterordner).


    Den Pfad zu diesem Script musst du dann relativ von dem Missionsordner aus angeben.
    Dh wenn du das Script direkt neben die init.sqf und mission.sqm legst, dann ist der Pfad einfach der Name des Scripts:

    C
    1. fn_addEarplugAction = compile preprocessFileLineNumbers "fn_addEarplugAction.sqf";

    Wenn du das Script zum Beispiel in einem Unterordner hast (z.B. namens "mySubFolder"), dann lautet der Pfad folgendermaßen: "mySubFolder\fn_addEarplugAction.sqf"


    Wo du letztendlich das Script abspeicherst ist also vollkommen dir überlassen (solange es irgendwo im Missionsordner ist) :)

  • @Raven ein kleiner Tipp zu addAction, jede addaction hat eine bedingung ob diese angezeigt wird. das heißst man muss nicht sie wieder entfernen sondern setzt z.b. nur eine variable auf false/true um die eine bzw die andere zu bekommen, dadurch umgeht man das ganze add remove add remove add remove....


    und achja man sollte nie einem anfänger den tipp geben in der init.sqf if (isServer) exitWith{}; zu machen weil diese meistens nicht verstehen und versuchen danach server code auszuführen

  • @Raven ein kleiner Tipp zu addAction, jede addaction hat eine bedingung ob diese angezeigt wird. das heißst man muss nicht sie wieder entfernen sondern setzt z.b. nur eine variable auf false/true um die eine bzw die andere zu bekommen, dadurch umgeht man das ganze add remove add remove add remove....

    Wird die Variable dann nicht wieder in jedem Frame abgefragt? Ich vermute mal, dass es dann performanter ist, das über Entfernen und Wiederhinzufügen zu regeln, oder irre ich mich da?

  • ja du irrst da die Variable nicht per frame sondern 1x pro sec abgefragt wird und das auch nur local die action hinzu zu fügen/zu entfernen ist eine sehr performance aufwendige sache die diese sache viel effectiver macht. dazu werden auch nur objecte im ca 100m(ungefähr) radius abgefragt. also die die man auch effectiv mit cursortarget abfragen kann. was das gesamte noch performanter macht

  • Hallo alle.


    Also eine Mission.sqm hab ich nicht. Der Server startet den Modi über die im mpmissions Ordner hinterlegte .pbo. die Datei heisst tld01.altis.pbo.


    Hier mal meine Vorgehensweiße, vielleicht findet einer von euch meinen Fehler.


    Die init.sqf habe ich mit dem Texteditor erstellt und sie als init.sqf (allte Dateitypen) abgespeichert. Das gleiche mit der fn_addEarplugAction.sqf.
    Beide Dateien habe ich in meinen mpmissions Ordner geschoben. Den Pfad habe ich mit "mpmissions/fn_addEarplugAction.sqf" angegeben. Aber es funktioniert nicht. Was mache ich falsch ?



    So sieht meine init aus.


    if(isServer) exitWith {}; // Nur falls du aus der init nichts auf dem Server amchen möchtest
    fn_addEarplugAction = compile preprocessFileLineNumbers "<mpmissions/fn_addEarplugAction.sqf>";
    [] call fn_addEarplugAction;


  • und achja man sollte nie einem anfänger den tipp geben in der init.sqf if (isServer) exitWith{}; zu machen weil diese meistens nicht verstehen und versuchen danach server code auszuführen

    Mist, er hat mich durchschaut.


    Stimmt vollkommen. Ich bin Anfänger und werde sicher nie ein Profi. Aber mit etwas Hilfe an den kniffeligen Stellen beiss ich mich durch. Die 3rdPerson habe ich auch 3 Tage lang versucht. In euren Augen sicher lachhaft aber für mich ein kleiner Sieg.


    Finde es aber toll das man hier, im Gegensatz zu dem anderen Forum Hilfe bekommt und sich mittlerweile einige hier um Hilfe bemühen und sich nen Kopf machen. Deswegen geb ich gleich mal eine Runde Likes aus.


    THX ALL

  • Keine mission.sqm? Dann läuft die ganze Geschichte als Mod?

    Wahrscheinlich wird eine Mod draus. Wie schon geschrieben. Sämtliche Trigger sind fertig und getestet, insgesamt etwa 120 an der Zahl. Aufteilung der Zonen ist fertig, grobe Infrastruktur ebenso. An der Stelle mache ich weiter wenn ein erster Test mit 10 Leuten abgeschlossen ist. Anhand des Feedbacks, denn aktuell habe ich nur 2 Meinungen nach einem Minitest, wird dann entschieden wie es weiter geht. Die Zeit bis dahin will ich aber nicht verblödeln, also ist das nächste auf der Agenda, die Earplugs.

    Ohwei. Da hast du aber noch weit zu gehen. :D
    Dann fängst du am Besten mal mit Kapitel 2, ab Seite 42 hier an: http://armaworld.de/index.php?…tion-by-mr-murray-de-pdf/

    Jetzt will ich diese Scheiss Earplugs rein bekommen um anständig mit 10 Leuten zu testen. Dann sehen wir wie es ankommt. Da brauch ich aber wie es ausschaut, eure Hilfe.


    Keiner ne Idee was falsch läuft mit den Scripts die ich verwende ??




    Nachtrag: Ich habe den Guide gerade offen. Danke für den Tipp. Da kann man sich erstmal ein Grundverständniss aneignen. Wenn ich das richtig sehe ist die Mission.sqm der große Bruder der .pbo üder die der Server aktuell seine Informationen bekommt. Im späteren Verlauf wird das unumgänglich. Aktuell brauche ich aber nur ein testfähiges Gebilde um Feedback zu bekommen. Aber die PDF ist gesaved.

  • Neinnein... Du musst die pbo öffnen. pbo ist das Dateiformat, in dem Missionen für Arma gepackt werden. Das bedeutet, dass sich in der Missions-pbo alle zu dieser Mission zugehörigen Scripts und Dateien befinden müssen.
    Entpacke die pbo in einen Missionsordner (deswegen der Hinweis auf Kapitel 2 des Guides) in deinem C:\Users\NAME\Documents\Arma 3 - Other Profiles\PROFILENAME\mpmissions-Ordner. Dann findest du in diesem Ordner die mission.sqm. Auch in diesem Ordner erzeugst du nun eine init.sqf (da ich mal vermute, dass diese noch nicht vorhanden ist), in die du die Scriptaufrufe, die Raven oben gepostet hat einträgst. Die fn_addEarPlugAction.sqf musst du auch zusätzlich erzeugen und dort den Code von oben hineinkopieren.
    Anschließend kannst du die Mission mit dem pbo-Manager wieder als pbo packen und in deinen Installationsordner\mpmissions kopieren, oder auf deinen Server laden oder wie auch immer.


    Das sind die ganz basalen Grundlagen des Arma-Scriptings. Deswegen der Link zum Guide, in dem das alles ausführlich erklärt ist. Diese Grundlagen musst du dir leider zuerst anlesen, bevor man dir wirklich mit einem spezifischen Script helfen kann.

  • Neinnein... Du musst die pbo öffnen. pbo ist das Dateiformat, in dem Missionen für Arma gepackt werden. Das bedeutet, dass sich in der Missions-pbo alle zu dieser Mission zugehörigen Scripts und Dateien befinden müssen.
    Entpacke die pbo in einen Missionsordner (deswegen der Hinweis auf Kapitel 2 des Guides) in deinem C:\Users\NAME\Documents\Arma 3 - Other Profiles\PROFILENAME\mpmissions-Ordner. Dann findest du in diesem Ordner die mission.sqm. Auch in diesem Ordner erzeugst du nun eine init.sqf (da ich mal vermute, dass diese noch nicht vorhanden ist), in die du die Scriptaufrufe, die Raven oben gepostet hat einträgst. Die fn_addEarPlugAction.sqf musst du auch zusätzlich erzeugen und dort den Code von oben hineinkopieren.
    Anschließend kannst du die Mission mit dem pbo-Manager wieder als pbo packen und in deinen Installationsordner\mpmissions kopieren, oder auf deinen Server laden oder wie auch immer.


    Das sind die ganz basalen Grundlagen des Arma-Scriptings. Deswegen der Link zum Guide, in dem das alles ausführlich erklärt ist. Diese Grundlagen musst du dir leider zuerst anlesen, bevor man dir wirklich mit einem spezifischen Script helfen kann.

    Aha. Ich teste, feedback kommt....... thx schonmal

  • Habe die Init und die fn_earplugs in die pbo geschoben und auf dem server ersetzt. verschiedene Positionen für die fn versucht. Hab sie sogar auch in der pbo mit drinne. Ich bekomme immer wieder diese meldungen.


    script <mpmissions/fn_addEarplugAction.sqf not found
    oder
    script <fn_addEarplugAction.sqf not found


    je nach Pfad


    Ich bekomm grad ne Krise. Ich brauch ne Pause. Ich geh Fenster putzen.