20.05.2008, 09:48 | #1 (permalink) |
Registriert seit: 03.01.2008
Beiträge: 14
|
Lebende Feinde mit Nearestobjects
Hallo Zusammen.
evtl. kann mir jemand helfen: ich habe ein kleines Feindmeldescript, das dem Spieler im Umkreis von 200 meter die Anzahl der lebenden Feind angibt. Nun möchte ich noch für eine kurze Zeit einen Marker auf den Positionen dieser Feinde erscheinen lassen. Das funktioniert ansich auch, nur das Problem dabei ist, dass mit Code:
_list = nearestObjects [player, ["soliderEB"], 200] Gruss Bastardo. |
20.05.2008, 10:04 | #2 (permalink) |
Servus
Der Grundstein ist doch schon maql nicht so übel! Code:
_list = nearestObjects [player, ["soldierEB"], 200] Ich würde den Marker nur createn, wenn die Unit lebt! ? alive _Unit : Marker erstellen Grüße Mr-Murray
__________________
MR-MURRAY presents ArmA Editing Guide Deluxe Edition - English Version Download ArmA Editing Guide Deluxe Edition - German Version Download Visit me at Facebook! Mapfact Murray |
|
20.05.2008, 12:47 | #3 (permalink) |
Registriert seit: 03.01.2008
Beiträge: 14
|
Danke für die schnelle Antwort. Das Script sieht momentan so aus (bin kein Meisterscripter...sieht also etwas holperig für Profis aus). Dieser Teil funktionert gut, die Feinde werden als Hint angegeben. Code:
_spieler = _this select 0 _vogler = _this select 1 ?!(_vogler == _spieler):goto "dubel" _spieler removeaction scan ;Feind Auswertung _feinde = nearestObjects [ _spieler, ["SoldierEB"], 200]; ;wieviele _anzahl = {alive _x} count _feinde ;Ausgabe hint format["Radius 200m: %1 Feind(e)",_anzahl] ~20 hint "" ~45 scan = _spieler addaction ["Feindscanner 85", "scripts\feindscan.sqs",[],-1,false] hint "FS85 wieder verfuegbar" ~4 hint "" exit ;eigene action benutzen #dubel hint "eigener FS85 benuetzen" ~4 hint "" exit Code:
?(alive (_feinde select 0)): _marker1=createmarkerlocal ["marker1", position (_feinde select 0)] _marker1 setMarkerShapelocal "ICON" "marker1" setMarkerTypelocal "DOT" ?(alive (_feinde select 1)): _marker2=createmarkerlocal ["marker2", position (_feinde select 1)] _marker2 setMarkerShapelocal "ICON" "marker2" setMarkerTypelocal "DOT" ?(alive (_feinde select 2)): _marker3=createmarkerlocal ["marker3", position (_feinde select 2)] _marker3 setMarkerShapelocal "ICON" "marker3" setMarkerTypelocal "DOT" ?(alive (_feinde select 3)): _marker4=createmarkerlocal ["marker4", position (_feinde select 3)] _marker4 setMarkerShapelocal "ICON" "marker4" setMarkerTypelocal "DOT" ?(alive (_feinde select 4)): _marker5=createmarkerlocal ["marker5", position (_feinde select 4)] _marker5 setMarkerShapelocal "ICON" "marker5" setMarkerTypelocal "DOT" |
20.05.2008, 13:06 | #4 (permalink) |
Über Mittag?
Sollst arbeiten! Ich schaue mal drüber
__________________
MR-MURRAY presents ArmA Editing Guide Deluxe Edition - English Version Download ArmA Editing Guide Deluxe Edition - German Version Download Visit me at Facebook! Mapfact Murray |
|
20.05.2008, 13:17 | #5 (permalink) |
Registriert seit: 11.03.2005
Ort: HH
Alter: 52
Beiträge: 1.930
|
Auf die schnelle behaupte ich mal, dass Du den Fehler bekommst, weil eben weniger als 5 Gegner in dem Array _feinde erfasst sind. Also wo nix mehr is kann auch nix markiert werden.
Besser wäre: Code:
_i=0; while{_i < (count _feinde - 1)} do { _unit = _feinde select _i; if (alive _unit) then { _m=createmarkerlocal ["marker", position _unit]; _m setMarkerShapelocal "ICON"; _m setMarkerTypelocal "DOT"; }; _i=_i+1; }; |
20.05.2008, 14:01 | #6 (permalink) |
Das sieht doch schick aus!
__________________
MR-MURRAY presents ArmA Editing Guide Deluxe Edition - English Version Download ArmA Editing Guide Deluxe Edition - German Version Download Visit me at Facebook! Mapfact Murray |
|
21.05.2008, 12:46 | #7 (permalink) |
Registriert seit: 03.01.2008
Beiträge: 14
|
So, bei bei dem Vorschlag von Buliwyf bekam ich eine Fehlermeldung bei (alive _unit), da ich diesen Fehler nicht lösen konnte, hatte ich die Marker so gelöst (diesmal nicht über Mittag...wobei, Sachen für Arma machen ist ja auch eine ehrbare Arbeit ): Code:
_spieler = _this select 0 _vogler = _this select 1 ?!(_vogler == _spieler):goto "dubel" _spieler removeaction scan ;Feind Auswertung _feinde = nearestObjects [ _spieler, ["SoldierEB"], 150]; ;wieviele _anzahl = {alive _x} count _feinde _anzahl1 = count _feinde ;marker ?(_anzahl1 == 1): goto "m1"; ?(_anzahl1 == 2): goto "m2"; ?(_anzahl1 == 3): goto "m3"; ?(_anzahl1 == 4): goto "m4"; ?(_anzahl1 == 5): goto "m5"; ?(_anzahl1 >= 6): goto "zv"; #m1 ?(alive (_feinde select 0)): _marker1=createmarkerlocal ["marker1", position (_feinde select 0)] _marker1 setMarkerShapelocal "ICON" "marker1" setMarkerTypelocal "DOT" goto "check" #m2 ?(alive (_feinde select 0)): _marker1=createmarkerlocal ["marker1", position (_feinde select 0)] _marker1 setMarkerShapelocal "ICON" "marker1" setMarkerTypelocal "DOT" ?(alive (_feinde select 1)): _marker2=createmarkerlocal ["marker2", position (_feinde select 1)] _marker2 setMarkerShapelocal "ICON" "marker2" setMarkerTypelocal "DOT" goto "check" ((etc. bis #m5)) ;Ausgabe #check hint format["Radius 150m: %1 Feind(e)",_anzahl] ~20 hint "" ;marker löschen deletemarkerlocal "marker1" deletemarkerlocal "marker2" deletemarkerlocal "marker3" deletemarkerlocal "marker4" deletemarkerlocal "marker5" deletemarkerlocal "marker6" ~120 hint "FS85 wieder verfuegbar" ~4 hint "" scan = _spieler addaction ["Feindscanner 85", "scripts\feindscan.sqs",[],-1,false] exit ;eigene action benutzen #dubel hint "eigener FS85 benuetzen" ~4 hint "" exit #ZV playsound "fs85re" hint "Geraet ueberlastet, bitte neu booten" ~4 hint"" ~45 hint "FS85 wieder verfuegbar" ~4 hint "" scan = _spieler addaction ["Feindscanner 85", "scripts\feindscan.sqs",[],-1,false] exit Geändert von HptmBastardo (21.05.2008 um 12:49 Uhr). |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|