HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Suche flexiblen KI-Respawn (https://hx3.de/editing-scripting-167/suche-flexiblen-ki-respawn-18941/)

GER_CJ-187 01.05.2010 18:36

Suche flexiblen KI-Respawn
 
Schönen abend, ich brauche hilfe bei einer WW2-Mission, in der die Spieler einen KI angriff aufhalten sollen.

Mein wunsch ist es, dass die KI unendlich respawnt (evtl auch mit limit, bin noch am überlegen) und zum Wegpunkt (ich würde einfach ein unsichtbares Heli-H nehmen, dass sich bei jedem Ziel auf das neue versetzt) vorrückt.

Dabei möchte ich aber, dass der Respawn aber auch versetzt werden kann, kann per Heli-H oder per Marker sein, ist mir egal, hauptsache der Respawn-punkt der KI kann sich verschieben.

Dann noch ganz wichtig, dass zB Panzer inkl voller Besatzung (WW2-Mod lässt 5 Einheiten im Panzer zu) respawnen und gleich losfahren.

also:
-KI respawn
-inkl besetzten Fahrzeugen
-und nächstes Ziel

Ich bitte euch, konnte leider nichts derartiges finden und würde mich über eure Hilfe sehr freuen. :angel:

MfG - Christopher

Moerderhoschi 14.05.2010 16:31

ist zwar schon ne weile her damit du gefragt hast aber ich habe glaub eine loesung fuer dein anliegen. Ich habe mir auch ein DauerRespwan erstellt allein ingame als ohne script und das koenntes du auch anwenden.

1. Unstichtbares H auf der Karte erstellen und Namen geben, als beispiel Kampfzone

2. Eine Ost einheit erstellen und bei wahrscheinlichkeit der anwesenheit auf 0 stellen, dies dient dazu das Center zu erstellen, braucht man nur wenn man ansonten keine anderen einheiten dieser seite zu beginn der mission plaziert, ansonsten kann man die nicht anwesende einheit weg lassen!

3. eine Spiellogik erstellen und bei name Emark eintragen und bei Init folgendes eintragen:
Code:

grpe1 = Creategroup EAST;grpe2 = Creategroup EAST;grpe3 = Creategroup EAST;grpe4 = Creategroup EAST;grpe5 = Creategroup EAST;
"Classname der Einheit" createunit [[(getpos emark select 0),(getpos emark select 1),1],grpe1, "e1=this",1,"coporal"];wp1 = (group e1) addWaypoint [position kampfzone,5];wp1 setWaypointType "sad";wp1 setWaypointBehaviour "AWARE";
"Classname der Einheit" createunit [[(getpos emark select 0),(getpos emark select 1),1],grpe2, "e2=this",1,"coporal"];wp2 = (group e2) addWaypoint [position kampfzone,5];wp2 setWaypointType "sad";wp2 setWaypointBehaviour "AWARE";
"Classname der Einheit" createunit [[(getpos emark select 0),(getpos emark select 1),1],grpe3, "e3=this",1,"coporal"];wp3 = (group e3) addWaypoint [position kampfzone,5];wp3 setWaypointType "sad";wp3 setWaypointBehaviour "AWARE";
"Classname der Einheit" createunit [[(getpos emark select 0),(getpos emark select 1),1],grpe4, "e4=this",1,"coporal"];wp4 = (group e4) addWaypoint [position kampfzone,5];wp4 setWaypointType "sad";wp4 setWaypointBehaviour "AWARE";
"Classname der Einheit" createunit [[(getpos emark select 0),(getpos emark select 1),1],grpe5, "e5=this",1,"coporal"];wp5 = (group e5) addWaypoint [position kampfzone,5];wp5 setWaypointType "sad";wp5 setWaypointBehaviour "AWARE";

eX addEventHandler ["killed", "_this select 0 spawn {sleep 60; deleteVehicle _this}"] <== DIESER PARAMETER IST OPTIONAL UND DIENT DAZU DAMIT DIE EINHEITEN 60 SEK. NACH DEM TOD GELOESCHT WERDEN UM PERFORMANCE ZU SPAREN, BEI BEDARF AN JEDER EINHEIT HINTEN DRAN HENGEN !!! X steht fuer die entsprechende einheit, also ( e1, e2, e3, e4, e5 )

4. 5 Ausloeser erstellen damit die gefallenen Einheiten wieder spawnen und bei Aktivierung Mehrfach waehlen, bei Bedingung und Aktivierung folgendes eintragen:

1 - Ausloeser:

Bedingung:
Code:

not alive e1
Aktivierung:
Code:

deleteWaypoint wp1;"Classname der Einheit" createunit [[(getpos emark select 0),(getpos emark select 1),1],grpe1, "e1=this",1,"coporal"];wp1 = (group e1) addWaypoint [position kampfzone,5];wp1 setWaypointType "sad";
2 - Ausloeser:

Bedingung:
Code:

not alive e2
Aktivierung:
Code:

deleteWaypoint wp2;"Classname der Einheit" createunit [[(getpos emark select 0),(getpos emark select 1),1],grpe2, "e2=this",1,"coporal"];wp2 = (group e2) addWaypoint [position kampfzone,5];wp2 setWaypointType "sad";
3 - Ausloeser:

Bedingung:
Code:

not alive e3
Aktivierung:
Code:

deleteWaypoint wp3;"Classname der Einheit" createunit [[(getpos emark select 0),(getpos emark select 1),1],grpe3, "e3=this",1,"coporal"];wp3 = (group e3) addWaypoint [position kampfzone,5];wp3 setWaypointType "sad";
4 - Ausloeser:

Bedingung:
Code:

not alive e4
Aktivierung:
Code:

deleteWaypoint wp4;"Classname der Einheit" createunit [[(getpos emark select 0),(getpos emark select 1),1],grpe4, "e4=this",1,"coporal"];wp4 = (group e4) addWaypoint [position kampfzone,5];wp4 setWaypointType "sad";
5 - Ausloeser:

Bedingung:
Code:

not alive e5
Aktivierung:
Code:

deleteWaypoint wp5;"Classname der Einheit" createunit [[(getpos emark select 0),(getpos emark select 1),1],grpe5, "e5=this",1,"coporal"];wp5 = (group e5) addWaypoint [position kampfzone,5];wp5 setWaypointType "sad";
Soweit so gut, damit sollte punkt eins in deiner liste abgehackt sein und du solltest das prinzip verstanden haben, wenn du mehr einheiten willst musst du diese natuerlich in der Spiellogik mit anhaengen und dann dementsprechende ausloser wie bei den 5 gezeigten einheiten erstellen.

nun zu punkt 2 der im grunde das selbe ist nur mit einem "movein" befehl fuer die fahrzeuge.

1. Spiellogik erstellen und bei name fhzmark eintragen und bei Init folgendes eintragen:
Code:

grpfhz1 = Creategroup EAST;Fhz1="Classname des Fahrzeugs" createVehicle position fhzmark;
"Classname der Einheit" createunit [[500,500,500],grpfhz1, "fhz1commander=this",1,"coporal"];fhz1commander moveincommander fhz1;
"Classname der Einheit" createunit [[500,500,500],grpfhz1, "fhz1driver=this",1,"coporal"];fhz1driver moveindriver fhz1;
"Classname der Einheit" createunit [[500,500,500],grpfhz1, "fhz1gunner=this",1,"coporal"];fhz1gunner moveingunner fhz1;
fhz1p = (group fhz1commander) addWaypoint [position kampfzone,5];fhz1p setWaypointType "sad";

2. Ausloeser erstellen damit der zerstoerte panzer wieder respawnt und bei Aktivierung Mehrfach waehlen, bei Bedingung und Aktivierung folgendes eintragen:

Bedingung:
Code:

damage fhz1 >= 0.5
Aktivierung:
Code:

deleteWaypoint fhz1p;Fhz1="Classname des Fahrzeugs" createVehicle position fhzmark;
"Classname der Einheit" createunit [[500,500,500],grpfhz1, "fhz1commander=this",1,"coporal"];fhz1commander moveincommander fhz1;
"Classname der Einheit" createunit [[500,500,500],grpfhz1, "fhz1driver=this",1,"coporal"];fhz1driver moveindriver fhz1;
"Classname der Einheit" createunit [[500,500,500],grpfhz1, "fhz1gunner=this",1,"coporal"];fhz1gunner moveingunner fhz1;
fhz1p = (group fhz1commander) addWaypoint [position kampfzone,5];fhz1p setWaypointType "sad";

somit haben wir einen panzer erstellt und mit 3 man besatzung besetzt. damit sollte punkt 2 auch klar sein bei mehr sitzplaetzen einfach die einheiten mit den dazugehoerigen positionen anfeugen.

zu punkt 3 mit der verschiebung des unsichtbaren H ( unserer Kampfzone ) ist ganz einfach, einfach einen ausloeser erstellen und die geweunschten bedingugnen eintragen wann das unsichtbare H verschoben werden soll ( z.b. per Alpha anfunken) und bei Aktivierung folgendes eintragen:
Code:

kampfzone setpos getpos neue position
Ich hoffe damit ich die ein paar ideen vermitteln konnte und du somit vllt. doch noch zu deiner gewunschten mission kommst, falls du fragen zu dem ganzen hast einfach schreiben, ich antworte dir dann so bald wie moeglich.

MfG

Moerderhoschi

GER_CJ-187 14.05.2010 19:54

besten dank für deine Antwort,

ist sehr schön ausführlich und detailliert, testen kann ich das leider zur zeit nicht, aber sobald ich das habe, werde ich es hier noch mal mitteilen.

MfG - Christopher


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