HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing (https://hx3.de/editing-139/)
-   -   createUnit wenn dead (https://hx3.de/editing-139/createunit-dead-15291/)

Schallhofer 23.09.2008 17:27

createUnit wenn dead
 
Guten Tag,
ich habe mich hier angemeldet, da ich trozt MR-Murray und anderer Studien selten ans Skriptziel komme.

Der Wunsch: Ich möchte die Anzahl von Mitgliedern in einer Gruppe konstant halten - wenn eine KI stirbt, wird eine neue Unit irgendwo erzeugt und dieser Gruppe zugewiesen.

Map Objekte:
Eine KI mit Namen WGrp1, ein Objekt mit Namen H1, ein Auslöser der das Skript startet

Der Code.sqs:
#Start
_H1 = createMarker ["E_Respawn", position H1];
;** Erzeuge einen Marker mit Namen E_Respawn am Objekt mit Namen H1**

? (countunits WGrp1) < 9 : "BWDes_SoldierWG" createUnit [getMarkerPos "E_Respawn", WGrp1, "", 0.7, "Corporal"];
;** Erzeugt neue Einheit, weist sie Gruppe zu, wenn Gruppe kleiner als 9 ist **
~5
Goto "Start"

Ergebnis:
Die Gruppe WGrp1 wird aufgefüllt, bis sie die Anzahl 9 erreicht. Aber sie wird nicht aufgefüllt, wenn dann ein Mitglied stirbt. Warum?
Ich wäre für jedes Feddback dankbar.


Schallhofer 23.09.2008 20:27

OK, die Nummer funktionier, solange der erste Leader der Gruppe noch lebt ... wie komme ich aus der Nummer raus?

pspsps91 24.09.2008 16:33

Zitat:

? (countunits WGrp1) < 9 :
Da liegt dein Problem! WGrp1 ist wohl der Name des Leaders -> Wenn dieser Stirbt gibts die Gruppe so nicht mehr, da der neue Leader nicht mehr so heißt.

Lösung:
Du ließt die Gruppe einfach am Anfang des Scripts in eine Variable ein, dann ist sie gespeichert.
Code:

_H1 = createMarker ["E_Respawn", position H1];
_Gruppe = group WGrp1

#Start
? (countunits _Gruppe) < 9 : "BWDes_SoldierWG" createUnit [getMarkerPos "E_Respawn", WGrp1, "", 0.7, "Corporal"];
~5
Goto "Start"

...ich habs jetzt nicht getestet, aber ich denk dass das der Fehler war.

Schallhofer 24.09.2008 17:59

Vielen Dank, dies scheint eine noch bessere Lösung zu sein als meine.
Ich nahm den Namen des Leaders (WGrp1) raus und gab diesen Namen der Gruppe über "WGrp1 = group this", funzt auch wunderbar.

Vielen Dank für die Antwort.


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