Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 15.07.2014, 07:06   #1 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 03.07.2012
Beiträge: 118
Standard Lasertarget/Recon

Moin, moin!

Ich würde es gerne zu einer Aufgabe machen, ein Objekt oder eine Person aufzuklären (anzulasern).

Alles was ich dazu bisher überhaupt im Netz finden konnte, war dieser Thread von Psychobastard:

Lasertarget auslesen/abfragen

Ich habe für meine Zwecke alles was mit Flugzeug- und GBU-Spawn zu tun hat aus dem Script entfernt und anstelle des Hints eine Publicvariable "recon" auf true schalten lassen.

Anm: Was es mit _target_tracked = false; und _sidep = side _laserunit; auf sich hat und ob die beiden Einträge bestehen bleiben müssen, weiß ich nicht, habe sie aber einfach erstmal drin gelassen.

Ich starte das Script über einen Auslöser, ausgelöst durch Bluefor und mit dem Befehl, den Psychobastard mitgeliefert hat:

psy = [player,shilka1] execVM "CB_laser.sqf";

Code:
//by psycho
_laserunit = _this select 0;
_target = _this select 1;
_pos = [0,0,0];
_pos = position _target;
_target_tracked = false;
_sidep = side _laserunit;


_laserunit addweapon "laserdesignator";
_laserunit addmagazine "Laserbatteries";

//warte auf laserziel
while {alive _target} do
{
for [{_loop=0}, {_loop<1}, {_loop=_loop}] do
{
sleep 2;
_pos = position _target;
_laserT = (nearestObject [_pos, "LaserTarget"]);
if (!(isNull _laserT)) then {_loop = 1; recon = true; publicVariable "recon";};
};

sleep 1;
};
Auf jeden Fall läuft eigentlich alles wie gewünscht; der Auftrag wird erfüllt, sobald ich den Zivilisten anlasere.

Das einzige Manko ist der Radius, in welchem man die Zielperson anlasern kann, denn es macht nichts, wenn man anstelle dieser einfach ~50m neben sie lasert bzw. Personen in der unmittelbaren Umgebung anlasert.

Von daher nun meine Frage, ob und wie man den Radius verringern kann, sodass man wirklich präzise auf das Objekt oder die Person einlasern muss?


Danke und Grüße
killshot ist offline   Mit Zitat antworten
Alt 15.07.2014, 09:19   #2 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 46
Beiträge: 1.928
Standard

Versuchs mit einer Änderung der Zeile:
Code:
_laserT = (nearestObject [_pos, "LaserTarget"]);
in
Code:
_laserT = (nearestObjects [_pos, ["LaserTarget"], 1]);
Mit nearestObjects kannst Du zusätzlich einen Radius (bei mir mit 1 angegeben) angeben.
__________________
Buliwyf ist offline   Mit Zitat antworten
Alt 15.07.2014, 09:34   #3 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 03.07.2012
Beiträge: 118
Standard

Danke für deine schnelle Antwort! Werd ich so schnell es geht ausprobieren heute!

Eine Frage hätte ich noch bezüglich des Ausführungskommandos.

psy = [player,shilka1] execVM "CB_laser.sqf";

Bezieht sich player auf jede spielbare Einheit in einer Multiplayermission?

Beziehungsweise wäre es ansonsten auch möglich, es mehreren spielbaren Units zuzuordnen oder auch allen Mitgliedern einer bestimmten Gruppe.

Wäre gut, wenn jeder von beispielweise 6 Spielern die Möglichkeit bekäme, das Zielobjekt/die Zielperson anzulasern und nicht nur eine Person.

Grüße
killshot ist offline   Mit Zitat antworten
Alt 15.07.2014, 09:48   #4 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 46
Beiträge: 1.928
Standard

Normalerweise kann es so wie Du es ausführst jeder beliebige Spieler sein, da player ja jede von einem Spieler kontrollierte Einheit ist.
__________________
Buliwyf ist offline   Mit Zitat antworten
Alt 15.07.2014, 14:52   #5 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 03.07.2012
Beiträge: 118
Standard

Ok, muss ich dann halt mal testen, wenn ich Zugriff auf dem Server bekomme, danke.

Das mit nearestObjects hat leider nicht funktioniert, hörte sich aber gut an

Ich habs nochmal mit ShowScriptErrors gestartet und bekam da folgenden Output:
Zitat:

'...cts [_pos, ["LaserTarget"], 50]);
if (!(isNull _laserT)) then {_loop = 1; recon ...'
Error isnull: Typ Array, erwartet Objekt,Gruppe,Display
(dialog),Control,Network Object,Task,Location
File C:\Users\killshot\Documents\Arma 3 - Other Profiles\killshot\missions\test.stratis\CB_laser.s qf, line 21

Der Fehler wird also auch nicht bei deinem Vorschlag, sondern für die darauffolgende Zeile ausgegeben.

Da tut sich aber leider nichts, auch nicht, wenn ich mit den Werten Spiele 1 oder 5 oder 50, macht keinen Unterschied.

Gruß
killshot ist offline   Mit Zitat antworten
Alt 15.07.2014, 16:22   #6 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 46
Beiträge: 1.928
Standard

Stimmt natürlich... mein Fehler, weil nearestObjects ein Array auswirft, wo Du das eigentliche Objekt der Begierde rausfischen musst. So sollte der Kram funktionieren:

Code:
for [{_loop=0}, {_loop<1}, {_loop=_loop}] do
{
_laserArray = [];
sleep 2;
_pos = position _target;
_laserArray = (nearestObjects [_pos, ["LaserTargetW"], 5]);
_laserT = _laserArray select 0;
if (typeOf _laserT == "LaserTargetW") then {_loop = 1; recon = true; publicVariable "recon";};
};
__________________
Buliwyf ist offline   Mit Zitat antworten
Alt 15.07.2014, 16:32   #7 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 03.07.2012
Beiträge: 118
Standard

Also hab's jetzt ein paar mal im Editor getestet und da funktionierts auf jeden Fall einwandfrei!

Dickes Dankeschön für deine starke Hilfe!

So macht das Lasern gleich doppelten Spaß

Grüße
killshot ist offline   Mit Zitat antworten
Alt 15.07.2014, 17:53   #8 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.107
Standard

Da hab ich auch noch ne Frage. Es gibt ja Laser gelenkte bomben. Die zu spawnen kein Ding. Aber wie funktioniert es, den bomben das Ziel zuzuweisen. DoFire funktioniert nur bei Einheiten. Oder muss man ein Flugzeug mit dieser Waffe erzeugen und den Befehl geben, mit der Waffe dort hin zu schiessen?
Drunken Officer ist offline   Mit Zitat antworten
Alt 15.07.2014, 18:08   #9 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 46
Beiträge: 1.928
Standard

Ich denke das Flugzeug zu spawnen ist die einfachere Variante. Die lasergelenkte Rakete allein kannste nur mit komplizierter Scripterei zum fliegen kriegen. Denke da so an Befehle wie setVelocity und setVector etc...
__________________
Buliwyf 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