HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Objekte (Minen) löschen (https://hx3.de/editing-scripting-167/objekte-minen-loeschen-18779/)

PitPines 16.03.2010 18:35

Objekte (Minen) löschen
 
Hallo!

Wollt mir ne MP-Mission basteln bei der feindliche Einheiten Wegpunkte abgehen und dabei an jedem Punkt Minen legen (mit Animation) bis sie von einer freundlichen Einheit eliminiert werden. An jedem Wegpunkt wird folgendes Script ausgelöst:

sab1 playmove "AinvPknlMstpSnonWrflDnon_medic0"
sab2 playmove "AinvPknlMstpSnonWrflDnon_medic2"
_mine = createMine ["MineMine", position sab1, [], 0]
_mine = createMine ["MineMine", position sab2, [], 0]
~60
sab1 playmove "AinvPknlMstpSnonWrflDnon_medicEnd"
sab2 playmove "AinvPknlMstpSnonWrflDnon_medicEnd"
exit


Funktioniert auch soweit, es werden etliche Minen gelegt bis die Einheit aufgehalten wird oder die Wegpunkte zu Ende sind.

1. Nun möchte ich irgendwann die Minen per Auslöser wieder löschen. Allerdings hab ich keinen Plan wie das gehen soll.

2. Wie kann ich die Minen, evtl auch per Auslöser, mit einem Marker sichtbar machen (auf jeder Mine einen Marker)?

Wäre für Hilfe sehr dankbar

Gruß

Pit





Buliwyf 17.03.2010 08:42

Ich denke das wird sich am ehesten mit Hilfe eines Arrays, in dem du die erstellten Minen erfasst, realisieren lassen.

Hier mal ein schnelles simples Beispiel, welches du dann auf deine Bedürfnisse umbauen musst:
Code:

_mines=[]
sab1 playmove "AinvPknlMstpSnonWrflDnon_medic0"
_mine = createMine ["MineMine", position sab1, [], 0]
_mines=_mines+[_mine]
~60
sab1 playmove "AinvPknlMstpSnonWrflDnon_medicEnd"
{deleteVehicle _x} forEach _mines
exit

Und die Geschichte mit den Markern:
Code:

_markers=[]
sab1 playmove "AinvPknlMstpSnonWrflDnon_medic0"
_mine = createMine ["MineMine", position sab1, [], 0]
_m = createMarkerLocal [format["mine%1", count _markers], position _mine]
_m setMarkerTypeLocal "DOT"
_m setMarkerSizeLocal [0.4,0.4]
_m setMarkerColorLocal "ColorRed"
_markers=_markers+[_m]
~60
sab1 playmove "AinvPknlMstpSnonWrflDnon_medicEnd"
{deleteMarkerLocal _x} forEach _markers
exit

Wie gesagt, das wird sicher nicht DIE Lösung für dich sein, so wie es da steht, aber die Werkzeuge um das nach deinen Vorstellungen umzusetzen, hast du jetzt denk ich...

:rolleyes:

PitPines 17.03.2010 18:08

Vielen Dank schonmal, teilweise hab ichs hinbekommen.

Hab das Minenlegen wie folgt verändert

In der Init.sqf hab ich erstmal die Variable
mines=[]
eingetragen. Wenn ich richtig liege ist diese dann global und ich kann sie in einem anderem Script auch abfragen?

Das eigentliche Script

sab1 playmove "AinvPknlMstpSnonWrflDnon_medic0"
sab2 playmove "AinvPknlMstpSnonWrflDnon_medic2"
_mine = createMine ["MineMine", position sab1, [], 0]
mines=mines+[_mine]
_mine = createMine ["MineMine", position sab2, [], 0]
mines=mines+[_mine]
~60
sab1 playmove "AinvPknlMstpSnonWrflDnon_medicEnd"
sab2 playmove "AinvPknlMstpSnonWrflDnon_medicEnd"
exit

Und dann eine weiteres um die Minen später wieder zu löschen:

{deleteVehicle _x} forEach mines
exit

Das funktioniert sogar, egal wieviele Minen gelegt wurden, ich kann alle auf einmal löschen. Nur bin ich mir nicht sicher ob das auch im MP funzt.

Nun wollt ich irgendwann später in der Mission per Script den bereits gelegten Minen die Markierungen zufügen, aber daran bin ich Scriptembryo kläglich gescheitert.







Buliwyf 17.03.2010 18:36

Zitat:

Das funktioniert sogar, egal wieviele Minen gelegt wurden, ich kann alle auf einmal löschen. Nur bin ich mir nicht sicher ob das auch im MP funzt.
Ja, das funktioniert auch im MP.

Zitat:

Nun wollt ich irgendwann später in der Mission per Script den bereits gelegten Minen die Markierungen zufügen, aber daran bin ich Scriptembryo kläglich gescheitert.
Da du das Array "mines" hast, in dem sich alle Minen befinden, kannst du auch die Position der einzelnen Minen abfragen und dort einen Marker platzieren. Beispiel:
Code:

_markers=[]
for "_i" from 0 to ((count mines)-1) do {
  _pos = position (mines select _i)
  _m = createMarkerLocal [format["mine%1", count _markers], position _pos]
  _m setMarkerTypeLocal "DOT"
  _m setMarkerSizeLocal [0.4,0.4]
  _m setMarkerColorLocal "ColorRed"
  _markers=_markers+[_m]
}

:rolleyes:

PitPines 18.03.2010 20:12

Danke, werds probieren


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