Soldaten per Trigger spawnen lassen - Fehler

  • Mahlzeit,


    ich schon wieder. Ich habe da mal wieder ein Problem bzw bekomme eine Fehlermeldung. Kann mir aber selber nicht weiterhelfen.


    Ich möchte das eine Gegnerische Gruppe (OPFOR) per Trigger (Bluefor) spawnt und dann zu einem wegpunkt läuft um etwas druck aufzubauen. Ich bin nach einem Youtube tutorial vorgegangen und habe das versucht, nachzumachen was dort gesagt / gezeigt worden ist.


    Tutorial



    Da ich eben noch am Anfang stehe , setzte ich mir selber immer Kommentare dazu.


    Im Trigger selber habe ich folgendes eingetragen:


    Bedingung: this && ({_x isKindOf "LAND"} count thisList)>0 && isServer


    Aktivierung:
    nulspawn = ["eins","zwei"] execVM "scripts\spawn.sqf";



    HQ Sidechat "ALPA 1-1 - wir haben eine Gruppe des Kartell´s entdeckt, die sich in Ihre Richtung bewegt!";


    Im Tutorial gibt es den Sidechat nicht. Den habe ich selber eingebaut um die Meldung für eine ankommende Gruppe anzuzeigen. Wenn ich das ganze nun teste und in den Trigger laufe , bekomme ich zwei Fehlermeldungen:


    - Error Nicht definierte Variable im Ausdruck: creatgroup Pfad zum Script.sqf, line 3
    sowie den vermerk nicht gesetztes ;


    Im Turorial klappt es, wurde aber auch nicht mit dem 3D Editor erstellt.


    Hatte das schon paar mal auch in anderen zusammenhängen , aber mir sagt der Fehler nichts.


    Besten Dank für die Hilfe.


    der Wolf

  • Und wenn wir schon dabei sind: Ich rate in Fällen wie diesen (sehr repetitiver Code) immer dazu eine Schleife zu verwenden.


    Für deinen Fall wäre das der Part, in dem du die einzelnen Einheiten erstellst. Mit einer Schleife würde das so aussehen:


    Das macht das Ganze etwas kompakter und einfacher, wenn man mal irgendwas dran ändern will. Die ... sind natürlich nicht Teil des Skripts, sondern sollen andeuten, dass du hier noch die entsprechenden Elemente nachpflegen musst.

  • Oh man ! :whistling: WIe ein kleiner Buchstabe so viel Probleme bereiten kann. Und das wo das Script nicht mal groß ist .......


    Besten Dank für die schnelle Hilfe.


    Bezogen auf Deine Ergänzung:
    die Schleife arbeitet alle Array´s nacheinander ab ? Sprich ich setzte die ganzen Vorraussetzungen wie Klasse , Skill, Rang usw in Array´s und durch den Scriptbefehl werden dann entsprechende Soldaten gespawnt ?


    Nachtrag:
    Ich habe das mit dem "e" verbessert. Trotzdem bekomme ich nun noch folgende Fehlermeldung:


    - Error creatgroup: Typ Zeichenfolge, erwartet Array, Seite Line 3

  • So also das fehlende "e" war es nicht. Hatte ich ja geändert. Es lag an den "" vor und nach EAST. Das mochte er nicht.


    Das Skript läuft bis zum Spawnen der einheiten durch. Den Sidechat habe ich testweise erst mal durch nen einfachen hint ersetzt und der kommt auch. Allerdings ist der nächste Fehler nun in der Zeile , die der Gruppe sagt , sie soll zum Wegpunkt laufen. Auf der Karte ist ein System Marker gesetzt. dieser heißt "zwei".


    _wp1 = _grp addWaypoint [(getMarkerPos _mkr2) ,1];


    Liegt es am "_wp1" vorweg ?

  • Nein das mit der Zuweisung passt... Aber getMarkerPos erwartet einen String (den Marker Namen) als Argument wenn ich mich recht erinnere.


    Und gemäß deinem Kommentar im Code handelt es sich bei _mrk2 um einen Wegpunkt und nicht um einen Marker...

  • Du hast recht. Anstatt _mkr2 musste da zwei rein. Nun laufen die Jungs auch wie gewollt zum Punkt hin :thumbsup: .


    Vielen Dank für Deine Hilfe und das lösen des Problems. Ich werde nun als nächstes das ganze mal mal nach Deinem Vorschlag probieren.

  • Es gibt eine Funktion fürs Spawnen, die funktioniert ganz gut.
    https://community.bistudio.com/wiki/BIS_fnc_spawnGroup


    Aufruf im Trigger. Bei dem Trigger den Hacken "NUR SERVER" aktivieren! Sonst führt es der Server und JEDER Client aus.


  • Hier mal eine Liste zu den WaypointTypes : https://community.bistudio.com/wiki/Waypoint_types
    Eventuell ist in deinem Fall "SAD'" (SearchAndDestroy) besser geeignet als "MOVE".


    Ach ja, da der Hacken auf SERVER steht, musst du den Chat über das Netzwerk verteilen. Ein Chat hat blöderweise einen lokalen Effekt. Wenn du mit HQ arbeitest, würde ich den CommandChat nehmen.


    //=== Das haut public den Chat auf den Clienten, aber nicht auf dem Server raus
    [ [WEST, "HQ"], "ALPA 1-1 - wir haben eine Gruppe des Kartell´s entdeckt, die sich in Ihre Richtung bewegt!"] remoteExec ["commandChat",-2];