![]() |
#1 (permalink) |
![]() Registriert seit: 14.06.2009
Beiträge: 71
|
![]()
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 |
![]() |
![]() |
#2 (permalink) |
![]() ![]() ![]() Registriert seit: 11.03.2005
Ort: HH
Alter: 51
Beiträge: 1.930
|
![]()
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 ![]() |
![]() |
![]() |
#3 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
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. |
![]() |
![]() |
#4 (permalink) |
![]() Registriert seit: 14.06.2009
Beiträge: 71
|
![]()
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. |
![]() |
![]() |
#5 (permalink) |
![]() ![]() |
![]()
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.
__________________
Niemand hat die Absicht eine Tüte zu bauen! ![]() ___<<<A3 Wounding System>>>___ |
![]() |
![]() |
#6 (permalink) |
![]() Registriert seit: 20.05.2009
Beiträge: 605
|
![]()
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"; geht natürlich auch mit groupchat nachrichten. groupChat - Bohemia Interactive Community hint - Bohemia Interactive Community |
![]() |
![]() |
#8 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
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. |
![]() |
![]() |
#10 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
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. |
![]() |
![]() |
#12 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
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. |
![]() |
![]() |
#13 (permalink) |
![]() Registriert seit: 14.06.2009
Beiträge: 71
|
![]()
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. |
![]() |
![]() |
#14 (permalink) |
![]() Registriert seit: 20.05.2009
Beiträge: 605
|
![]()
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"}; |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Fragen zum Editor | chris2110 | Editing & Scripting | 1014 | 25.08.2014 23:25 |
Sidechat ist nur local! | GER_CJ-187 | Editing & Scripting | 11 | 18.11.2010 07:08 |