Armed-Assault.de Twitter


Editing The world is a Script - write it!

Antwort
 
Themen-Optionen Ansicht
Alt 20.05.2008, 09:48   #1 (permalink)
Newbie
 
Benutzerbild von HptmBastardo
 
Registriert seit: 03.01.2008
Beiträge: 14
Standard 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]
auch die Leichen angezeigt werden. Weiss jemand wie ich nur die Positionen der lebenden Feinde auslesen kann?

Gruss
Bastardo.
HptmBastardo ist offline   Mit Zitat antworten
Alt 20.05.2008, 10:04   #2 (permalink)
500 Beiträge
 
Benutzerbild von Mr-Murray
 
Registriert seit: 10.06.2004
Ort: München - Germany
Beiträge: 876
Mr-Murray eine Nachricht über ICQ schicken Mr-Murray eine Nachricht über Skype™ schicken
Standard

Servus
Der Grundstein ist doch schon maql nicht so übel!

Code:
_list =  nearestObjects [player, ["soldierEB"], 200]
Wie schaut denn dein Skript/Funktion weiter aus?

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
Mr-Murray ist offline   Mit Zitat antworten
Alt 20.05.2008, 12:47   #3 (permalink)
Newbie
 
Benutzerbild von HptmBastardo
 
Registriert seit: 03.01.2008
Beiträge: 14
Standard


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
Schön wäre eben Marker, die kurz auf der Karte erscheinen. Ueber Mittag habe ich nun das mal so versucht und den untenstehenden teil in das Script integriert:

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"
und weiter unten im Script werden die Marker wieder gelöscht. Das Ganze gibt mir aber bei (_feinde select 4) eine Fehlermeldung (Nullteiler). Bin nun etwas Ratlos....
HptmBastardo ist offline   Mit Zitat antworten
Alt 20.05.2008, 13:06   #4 (permalink)
500 Beiträge
 
Benutzerbild von Mr-Murray
 
Registriert seit: 10.06.2004
Ort: München - Germany
Beiträge: 876
Mr-Murray eine Nachricht über ICQ schicken Mr-Murray eine Nachricht über Skype™ schicken
Standard

Ü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
Mr-Murray ist offline   Mit Zitat antworten
Alt 20.05.2008, 13:17   #5 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 47
Beiträge: 1.930
Standard

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;
};
Buliwyf ist offline   Mit Zitat antworten
Alt 20.05.2008, 14:01   #6 (permalink)
500 Beiträge
 
Benutzerbild von Mr-Murray
 
Registriert seit: 10.06.2004
Ort: München - Germany
Beiträge: 876
Mr-Murray eine Nachricht über ICQ schicken Mr-Murray eine Nachricht über Skype™ schicken
Standard

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
Mr-Murray ist offline   Mit Zitat antworten
Alt 21.05.2008, 12:46   #7 (permalink)
Newbie
 
Benutzerbild von HptmBastardo
 
Registriert seit: 03.01.2008
Beiträge: 14
Standard


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
und es funktioniert so weit ganz gut, bzw. es gab noch keine Fehler.... Das Ganze kann man sicher noch verfeinern, und schöner scripten, aber meinen Anforderungen genügt es momentan.

Geändert von HptmBastardo (21.05.2008 um 12:49 Uhr).
HptmBastardo ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Kontakt - HX3.de - Archiv - Nach oben

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