HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing (https://hx3.de/editing-139/)
-   -   Trigger an ki binden (https://hx3.de/editing-139/trigger-ki-binden-15794/)

aXXIs262 16.02.2009 19:55

Trigger an ki binden
 
hi,

hab so meine probleme, und zwar will ich das ein Auslöser erst ausgelöst wird, wenn man eine Person gefunden hat, da die Person aber durch die gegend rennt, muss der Trigger ihr folgen, aber wie mache ich das?

laut editing guide so:

triggername setPos getPos Name

also das verstehe ich so:

"name der Triggers" setpos getpos "Name der Person"

nur wo gebe ich das ein ? im trigger ? in der person oder in einer .sqs ?

das habe ich noch nicht raus...

danke für die schnellen antworten :)

[GNC]Lord-MDB 17.02.2009 00:23

in ein Script (sqs) und zwar als Schleife

Ghost_Aut 17.02.2009 04:02

Hallo könntest es mit einem sgs Script versuchen1

#Test1
~1
"name der Triggers" setpos getpos "Name der Person"
~0.1
?alive "Name der Person":goto "End"
~0.1
goto "Test1"

#End
exit

aXXIs262 17.02.2009 07:13

aha... werde ich nachher mal ausprobieren....aber schonmal danke dafür...

eine andere frage:

Wie kann ich es schaffen das Zivilisten oder auch gegner auf den Spieler warten bis sie aktiv werden ? also das sie nicht wegrennen bzw rumlaufen etc. bevor ich da bin :)

Garstiger Hobbit 17.02.2009 08:30

Hier ist dann noch mal ne Sqf variante.

while {true} do{
"name der Triggers" setpos getpos "Name der Person";
if(!alive "Name der Person" || Variable)exitwith{};
sleep 0.1;
};

if(true)exitwith{};

Ich gehe mal davon aus das du ne Publicvariable ausgibst wenn die Person gefunden ist,sonst das || variable rausnehmen.

öffnen kannst du das ganze in der Init der Einheit mit : handle=[] execVM "(name des script).sqf".

Vienna 17.02.2009 18:57

Den Auslöser brauchst du nicht nachsetzen! Erstelle einen Auslöser in der Größe des Bereiches in dem sich die Zielperson bewegen kann.

Nehmen wir an die Zielperson ist von OPFOR, bewegt sich in einen Radius von 500m und soll von BLUFOR gefunden werden.

Achse A:500 Achse B:500

Aktivierung: [BLUFOR] [Einmal] [Vorhanden]

Bedingung: call{_a=false;{if(NameZielperson distance _x < 10)then{_a=true}}forEach thislist;_a}

Bei Akt.: Deine Aktion wenn die Zielperson einen Abstand zu einem Gegner von unter 10m hat .....

aXXIs262 18.02.2009 07:29

ich habe nahc einigen versuchen nun den Script von "Garstiger Hobbit" genommen, danke dafür, den anderen auch nen riesen dank :)

ich habe jetzt so einiges in meiner Mission gebastelt, nur leider laufen manchmal einige KI's verwirrt durch die gesamte map, vor allem meine KI die gesucht werden soll, die rennt manchmal von dem Ort, wo ich sie platziert habe weg, und das sehr weit.... Die KI dann zu finden ist auch so schon schwer aber dann auf der ganzen Map suchen, naja nicht so toll oder ?

kann ich der KI einen Bewegungsradius zuweisen ?

und noch ne Frage: Wie kann ich der KI namen vergeben ? also Captain Hook, Major Pain und so, damit das nacher in der nachbesprechungs angezeigt wird :)

aXXIs262 20.02.2009 16:09

habe schonwieder ein problem...

folgendes:

ich bastel an einer coopmap für 2 spieler, und dort soll eine ki gruppe einen spieler, der einen trigger auslöst, joinen, das klappt auch...

Das habe ich wie folgt gemacht

Trigger gruppiert mit dem spieler1 und da mit namen des spieler1 den joinbefehl und einen deletebefehl für den 2. auslöser eingebaut. (also spieler1 löst aus und die gruppe joint)

für spieler 2 habe ich einen 2. trigger gemacht wie bei spieler1

also hat die KI 2 auslöser für jeden spieler einen, nur ich will ja das der Auslöser mitwandert und das bekomme ich nur hin wenn ich einen Auslöser habe (verstehe die script wohl nicht so richtig)

kann ich eine sqs schreiben die prüft wer den auslöser auslöst und dann dementsprechend joinen lässt ?

[GNC]Lord-MDB 20.02.2009 16:42

jo mit list "triggername" da stehen dann alle objekte dirn die zur seite des Trigger gehören wenn der nicht auf "keine" steht.

dann braucht du noch abfragen ob der Player in list "triggername" ist.
und dann den join lassen.

aXXIs262 20.02.2009 17:05

hmmm.. verstehe ich jetzt nicht so ganz...

ich habe wie folgt den trigger

Bedingung: this && gamer2 in thisList;

bei aktivierung: [ai1] join gamer2; hint "Text!"; deleteVehicle gamer2trigger; deleteVehicle gamer1trigger;

???

für gamer 1 das selbe

aber wie binde ich nun beie trigger an die ki oder wie baue ich einen trigger der beides macht :)

Vienna 20.02.2009 18:24

Warum und mit wem soll der Auslöser mitwandern?

Das scheint mir eher eine Aufgabe für den "distance" Befehl zu sein.

aXXIs262 20.02.2009 18:59

jo,

die ki soll von einem der 2 spieler abgeholt werden...
das Problem ist das die ki über die map rennt (und die 2 auslöser sollten ihr folgen). Die Ki muss gesucht werden, und wenn man dann näher drann ist (auslöser hat 3 meter), joint die KI die Gruppe des finders.

im moment überlege ich das irgendwie anders zu machen, hab nur keine ahnung :(

[GNC]Lord-MDB 20.02.2009 19:15

trigger auf der map basteln und auf ein mal aktivierung stellen

Player distance ai1 < 5

[ai1] join gamer2; hint "Text!";

aXXIs262 21.02.2009 14:30

geil, werde ich gleich mal probieren :)

aXXIs262 21.02.2009 14:44

habs probiert und es funktioniert genauso wie ich es mir vorgestellt habe :D

1000dank

[GNC]Lord-MDB 21.02.2009 15:20

nix zu Danken :daumen:

aXXIs262 25.02.2009 17:40

ihc habe aber noch eine frage... was anderes diesmal...

ich habe eine gruppe erstellt mit hilfe eines Auslösers:



[ ai4,ai2,ai3,ai1] join grpnull;
[ ai4,ai2,ai3,ai1] join grprescue;
group grprescue selectLeader ai4;
WP1 = grprescue addWaypoint [2545.085693,13.860000,2619.653320, 20];wp1 setWaypointType "move";

das klappt aber nicht, keiner der 4 einheiten macht anstalten sich zum wegpunkt zu begeben, ich denke mal das es an dem gruppennamen liegt, weil da bin ich mir nicht sicher ob er so vergeben wird :(

aber die meine gruppe verlassen sie und scheinen auch eine neue gruppe zu bilden...

ahh editing ist schon manchmal :( wenn man nicht den syntax beherrscht

burns 25.02.2009 17:55

Zitat:

Zitat von aXXIs262 (Beitrag 218114)
wenn man nicht den syntax beherrscht

Vielleicht helfen ja folgende Seiten:
join - Bohemia Interactive Community
group - Bohemia Interactive Community
selectLeader - Bohemia Interactive Community
addWaypoint - Bohemia Interactive Community

Das Biki ist teilweise schon hilfreich :)

Ob in deinem script was verkehrt ist, keine Ahnung, kenn mich selber kaum mit Editing aus.
Könnte höchstens noch ne Lösung anbieten die allerdings nur im SP funzt:
Code:

grprescue commandmove getpos markername;
commandMove - Bohemia Interactive Community

[GNC]Lord-MDB 25.02.2009 18:21

Bekommt´s ne Fehlermeldung ?
Ich denke das da sie Gruppe nicht existiert

createGroup - Bohemia Interactive Community

grprescue= createGroup Seite;
[ ai4,ai2,ai3,ai1] join grpnull;
[ ai4,ai2,ai3,ai1] join grprescue;
group grprescue selectLeader ai4;
WP1 = grprescue addWaypoint [2545.085693,13.860000,2619.653320, 20];wp1 setWaypointType "move";

aXXIs262 25.02.2009 19:11

nee, geht leider nicht, werde gleich nochmal einen neuen wegpunkt machen, evtl. leigts daran..


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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