HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Trigger Gegnerspawn (https://hx3.de/editing-scripting-167/trigger-gegnerspawn-20448/)

Red1982 01.03.2011 05:04

Trigger Gegnerspawn
 
Hallo zusammen,

ich beschäftige mich seit ein paar Tagen mit dem Editor und hab jetzt mal ne Frage. Ich denk mal es ist was ganz einfaches. Wie lass ich Gegner spawnen durch einen Trigger?

Hab gegooglet, Forums dursucht, Tutorials gelesen aber nichts passenes gefunden. Auf ein paar Scripte bin ich gestoßen aber brauch man dazu wirklich nen script und nicht einfach nur paar zeilen in dem Auslöser und in der Einheit die dann spawnen soll?

LG
Red

Buliwyf 01.03.2011 05:41

Das lässt sich natürlich auch mit einem Trigger lösen. Es kommt halt drauf an was man will... manchmal sind Scripte übersichtlicher und flexibler einsetzbar. Aber für einfache Dinge kann man das auch so lösen wie Du es vorhast. Auch hier gilt: Viele Wege führen nach Rom.

Brauchbare Links:

Um einzelne Einheiten zu generieren:
createUnit
createUnit_array

Ein Kommando, um Befehlszeilen/Scripte auszuführen:
spawn

Eine Funktion von BIS, um ganze Gruppen zu generieren:
BIS_fnc_spawnGroup

:rolleyes:

Vienna 01.03.2011 18:42

Liste der Anhänge anzeigen (Anzahl: 1)
Für jemanden, der sich erst einige Tage mit dem Editor beschäftigt, finde ich besser, wenn er die Gegner in der Nähe im Abseits aufstellt, ihnen Wegpunkte für die zukünftigen Aufgaben gibt und den Start über eine Variable im 1.Wegpunkt steuert, dann über einen Auslöser das Startsignal gibt.

Im 1. Wegpunkt setzt man als Bedingung eine Variable und stellt ihn auf "Nie schießen" und "Achtlos" ein. Unmittelbar darauf den nächsten Wegpunkt setzen, der das Verhalten auf "Feuer eröffnen" und "Wachsam" zurücksetzt. Danach die erforderlichen weiteren Wegpunkte für die eigentliche Aufgabe.

Den Auslöser stellt man auf die eigene Seite ein und dass er beim Betreten die Variable des 1.Wegpunktes auf true stellt. Darauf marschieren die Gegner los und erfüllen ihre Aufgabe.

Das hört sich kompliziert an, ist aber wesentlich einfacher als die Gegner mittels Skript zu erstellen, weil sie dann noch nicht wissen was ihre Aufgabe ist.

Im Anhang ein Beispiel.

Red1982 02.03.2011 05:11

Danke schon mal für die Antworten, hilft mir echt weiter.

@Vienna hat mich auf ne nette idee gebracht die ich auch verwenden kann für einige sachen.

@Buliwyf werd ich mal testen

Hab da derzeit noch ein Problem vllt könnt ihr mir da ja auch helfen. Und zwar hab ich mir mittlerweile ein briefing erstellt und gesehen das mal Parameter wie Sichtweite in die init Datei setzen kann. Ebenso hab ich nen spawn script gefunden was ich ganz gut nutzen kann. Dafür muss ich ein paar Variablen in der init einfügen und auf false setzen.

Mein Problem ist nun das der anscheinend nie die ganze init liest. Es funktioniert nie alles was ich dort hinein schreib.

Pfandgiraffe 02.03.2011 06:06

dann hast du wohl syntaxfehler in deiner init verbaut. an der stelle wird dann abgebrochen.

starte dein arma2 mit folgendem parameter: -showscripterrors

und die fehler werden dir beim starten des spiels angezeigt.

... oder lese in der .rpt nach wo das problem liegt.

Anemia 02.03.2011 19:10

Zitat:

Zitat von Red1982 (Beitrag 359972)
Hab da derzeit noch ein Problem vllt könnt ihr mir da ja auch helfen. Und zwar hab ich mir mittlerweile ein briefing erstellt und gesehen das mal Parameter wie Sichtweite in die init Datei setzen kann. Ebenso hab ich nen spawn script gefunden was ich ganz gut nutzen kann. Dafür muss ich ein paar Variablen in der init einfügen und auf false setzen.

Mein Problem ist nun das der anscheinend nie die ganze init liest. Es funktioniert nie alles was ich dort hinein schreib.


Ich baue bei solchen sachen sonst auch gerne mal hints ein ... , die textnachriten erzeugen einen "pling" ton und tauchen oben rechts in der ecke auf.

du Solltest die einzelnen zeilen in der init aufjedenfall beschriften. Damit du nachher weißt welche einträge wozu gehören.
Dafür einfach zwei schrägstriche vor deinen text setzen.

Code:

// Dein Text
Code:

hint "dein test";
Wenn du nun an den verschiedenen stellen deines scriptest diese hints setzt , merkst du im spiel immer gleich bis wohin das script gelaufen ist. oder was halt gerade passiert.

geht natürlich auch mit groupchat nachrichten.

groupChat - Bohemia Interactive Community
hint - Bohemia Interactive Community

Red1982 04.03.2011 04:53

Danke hab den Fehler gefunden. Hab aber gleich die nächste Frage. Können KI Gruppen keine Trigger auslösen?

Vienna 04.03.2011 09:22

Liste der Anhänge anzeigen (Anzahl: 1)
Beim Trigger kann man die Seite einstellen, welche ihn auslösen soll. Er reagiert dann auf jede Einheit der Seite.

Vebindet man den Auslöser (über "Gruppen") mit dem Leader einer Gruppe, dann reagiert der Auslöser nur auf den Leader. Das geht auch mit jeder anderen KI der Gruppe, aber eben nur mit einer KI.

Will man, dass jede KI einer bestimmten Gruppe auslöst (und sonst auf niemanden dieser Seite), dann so:

1. In die Initzeile des Leaders der Gruppe eintragen: Gruppe1 = group this

2. Den Auslöser auf die Seite der Gruppe einstellen.

3. Im Auslöser bei Bedingung eingeben:
call {private"_i";_i=false;{if(_x in thislist)then{_i=true}}forEach units Gruppe1;_i}

Möchtest du, dass nur einige der Einheiten einer Gruppe auslösen können, dann musst du sie in der Abfrage "namentlich" anführen (hier Unit1,Unit2 und Unit3):
call {private"_i";_i=false;{if(_x in thislist)then{_i=true}}forEach[Unit1,Unit2,Unit3];_i}

Eine Testmission im Anhang.

Red1982 05.03.2011 06:03

mhhh komisch hab ich so gemacht aber ist nix passiert. Schau mir mal dein Bespiel an

Vienna 05.03.2011 15:38

Dann war die Einheit nicht in der Gruppe, oder der Auslöser nicht auf die richtige Seite eingestellt.

Du kannst beim Auslöser auch "Jeder" einstellen, dann sind bei der "namentlichen" Abfrage auch einzelne Einheiten unterschiedlicher Seiten möglich, um den Trigger auszulösen.

Red1982 06.03.2011 07:55

Hab mir das jetzt mal angeschaut und noch mal versucht und so wirklich gehts nicht. Können evtl. Helikopter keinen trigger auslösen? Hab aber mittleweile schon ne andere Lösung dafür.

Vienna 06.03.2011 08:27

Wenn du willst, dass die Abfrage auch für von Soldaten benützten Objekten anspricht, musst du dem _x vehicle vorsetzen, dann spricht sie auch an wenn der Soldat in einem beweglichen Objekt ist.

call {private"_i";_i=false;{if(VEHICLE _x in thislist)then{_i=true}}forEach units Gruppe1;_i};

Damit es es egal, ob der Soldat zu Fuß im Auslöser ist, oder sich dabei in einem Fahrzeug-/Flugobjekt befindet.

Red1982 10.03.2011 05:01

Hallo zusammen,

ich hab mal wieder ein Problem. Und zwar wollte ich jetzt das norrin revive script 50 in meine mission einbinden. Leider bekomme ich jetzt einiges an Fehlermeldung. Der ignoriert alles was hinter der Zeile steht wo das script geladen wird. Hängt sich also da irgendwo weg.

Hier mal die init.sqf

server execVM "revive_init.sqf;
execVM "briefing.sqf";
setViewDistance 4000;
first_group = false;
second_group = false;
third_group = false;
fourth_group = false;
verstaerkung = true;
execVM "intro.sqf";
waituntil {!isnil "bis_fnc_init"};

Ist zwar nicht schön gemacht aber bis zum script lief alles so wie gedacht :-). Ist ja mein erster Map versuch.

Vllt. kann mir da ja jemand helfen.

Anemia 10.03.2011 05:58

Du hast da ein " vergessen .... hinter der revive_init.sqf


Code:

server execVM "revive_init.sqf";
execVM "briefing.sqf";
setViewDistance 4000;
first_group = false;
second_group = false;
third_group = false;
fourth_group = false;
verstaerkung = true;
execVM "intro.sqf";
waituntil {!isnil "bis_fnc_init"};


Red1982 10.03.2011 08:59

Wie dumm, hätte ich auch selbst merken können.

Danke dir!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119