PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spotter Entfernungsansage


Fabi_Bo
15.04.2016, 10:27
Hallo,

habe neulich mal wieder die ArmA 2 OA Mission: E03 Ein Schuss, ein Volltreffer gespielt! Dort ist mir aufgefallen, das der Spotter, wenn man einen Feind (egal ob Heli, Fahrzeug oder Soldat) anvisiert hat, einem die Entfernung sagt! Finde ich eigentlich ganz cool!

Meine Frage: Geht das auch in ArmA 3? Oder weiß jemand wie?

MfG Fabi_Bo

Drunken Officer
15.04.2016, 16:04
ja geht auch in A3.

Ich persönlich würde es über einen EH probieren, der an den Ausschauenden anhängt

Fabi_Bo
15.04.2016, 19:43
Hallo,

danke erstmal für den Tipp, aber im scripten bin ich noch Anfänger. :confused: Könntest du oder irgendjemand mal genauer erklären was ich wie machen muss? :D

MfG Fabi_Bo

Nokman
16.04.2016, 20:25
[] spawn {
private _oldtarget = objnull;
while {true} do {
waituntil {
(currentWeapon player isKindOf ["Rifle_Long_Base_F", configFile >> "CfgWeapons"]) && !(cursortarget isequalto _oldtarget) &&
{
(cursortarget iskindof "car") or
(cursortarget iskindof "Man") or
(cursortarget iskindof "Air") or
(cursortarget iskindof "Ship")
}
};
_oldtarget = cursortarget;
systemchat format ["Entfernung %1m zum Ziel",round (_oldtarget distance player)];
};
};

das währe eine möglichkeit Infos zu denn einzelnen befehlen findest du hier
https://community.bistudio.com/wiki/Category:Scripting_Commands_Arma_3

Fabi_Bo
17.04.2016, 11:57
Hallo,

danke erstmal aber bin wie gesagt Noob im scripten!

Also muss ich jetzt erst einen EH erstellen (da stellt sich mir schon die Frage welchen, gibt ja gefühlt 1000!? :rolleyes:)

So ne Art Step-by-Step Anleitung wäre nett! :angel:
Klar ist es besser sich da selbst reinzulesen aber irgendwie checke ich das nicht so ganz... Mit einem Beispiel wäre mir schon mehr geholfen, das könnte ich dann für mich selbst "auseinandernehmen"!

Sorry fürs nerven! :p

MfG Fabi_Bo

Nokman
17.04.2016, 20:41
Das Beispiel von Oben kanst du einfach im editor testen in die Console eingeben und ausführen. Dies geht auch in der Initzeile von Spielern.

Es ist mir keine möglichkeit bekannt es per eventhandler zu lösen.

Es gibt gefühlt 1000 wege es anzustellen EH sind es ein paar weniger ^^ Die Frage ist was hast du bereits? Worauf kann man aufbauen?

Fabi_Bo
17.04.2016, 22:03
Hallo,

also wenn ich es in die Console einfüge, funktioniert es!
In der Init kommt aber folgende Fehlermeldung: "Init: Typ Script, erwartet Nichts".

Größtenteils gefällt mir das schon ganz gut! Wenn man das jetzt noch so hinbekommen würde, das die Entfernung über den Funk (Gruppen-)Kanal angesagt wird (evtl. mit richtiger Ansage?) und das ganze nur wenn ich durchs Scope schaue wäre das klasse!!!

Kann ich eigentlich direkt die Mission aus ArmA 2 im Editor öffnen? (wo sind die abgespeichert?) Dann könnte ich mir selbst ein Bild machen und müsste nicht hier um alles betteln! :D (Habe mal gesehen das BI ein Programm zum .pbo entpacken hat, finde es gerade nur nicht!)

Naja, wo drauf man aufbauen kann? Momentan noch sehr wenig... :confused:

Bin gerade dabei mir den Umgang mit Scripten per YouTube anzueignen! (https://www.youtube.com/watch?v=WmEBN-RbK44&index=1&list=PLTCkud8R6jgrNBgHTQ-ueaXSIP2HkX42K), normale Editor Grundlagen sind vorhanden (Task erstellen, sowas halt... Also nix aufregendes)

MfG Fabi_Bo

burns
18.04.2016, 16:14
In der Init kommt aber folgende Fehlermeldung: "Init: Typ Script, erwartet Nichts".


In der Init muss man vor ein Spawnscript immer "irgendwas =" dazuschreiben.

Also:

rosafreudenspender = [] spawn { private bla scriptquatsch oder
0 = [] spawn { private bla scriptquatsch etc. :)

Nokman
18.04.2016, 23:00
Gut Kanal Ändern ist jetzt nicht das Dinge. Es wird im moment im Systemchat herausgegeben
https://community.bistudio.com/wiki/systemChat

du willst es im Gruppen chat haben
https://community.bistudio.com/wiki/groupChat

sollte nicht schwer zu ändern sein.

Ausgabe mit Sound weis ich den Ablauf jetzt nicht aus den Kopf das man die KI dazu bringt es zu sagen. Dazu müsste man sich die Mission anschauen.

Missionen von Arma Findet man unter addons missionen die PBO brauchst nur die richtige zu öffnen :D
Tolls um PBO datein zu entpacken findest du hier auf der Seite unter Tools oder bei google pbo manager.

Fabi_Bo
19.04.2016, 10:43
Hallo,

habe jetzt endlich die ArmA 2: OA Mission gefunden! :rolleyes:

Das hier scheint für die Entfernung verantwortlich zu sein! (Heißt ja auch distanceReport.sqf)

_sniper = _this select 0;
_spotter = _this select 1;

_spotter kbaddtopic ["BIS_distanceReport","kb\distanceReport.bikb",""];
_sniper kbaddtopic ["BIS_distanceReport","kb\distanceReport.bikb",""];

_numberToString = {
_number = _this;
_result = switch _number do {
case 0: {"zero2"};
case 1: {"one2"};
case 2: {"two2"};
case 3: {"three2"};
case 4: {"four2"};
case 5: {"five2"};
case 6: {"six2"};
case 7: {"seven2"};
case 8: {"eight2"};
case 9: {"nine2"};
default {"zero2"};
};
_result;
};

_teamDistanceMax = 50;
_dis = 0;

while {alive _sniper && alive _spotter} do {
if (player == _sniper) then {
if (cameraview == "GUNNER") then {
if (_sniper distance _spotter < _teamDistanceMax) then {
if !(isnull leader cursortarget) then {
_disTemp = _sniper distance cursortarget;
_disRel = abs (_dis - _disTemp);
if (_disRel > 50) then {
//_disText = (round (_disTemp / 100)) * 100;
_disText = round _disTemp;
_disText0001 = (_disText % 10);
_disText0010 = (_disText % 100 - _disText0001);
_disText0100 = (_disText % 1000 - _disText0001 - _disText0010);
_disText1000 = (_disText - _disText0100 - _disText0001 - _disText0010);
_disText0001 = _disText0001 / 0001;
_disText0010 = _disText0010 / 0010;
_disText0100 = _disText0100 / 0100;
_disText1000 = _disText1000 / 1000;

_speechArray = [];
if (_disText >= 1000) then {_speechArray = _speechArray + [_disText1000 call _numberToString]};
if (_disText >= 0100) then {_speechArray = _speechArray + [_disText0100 call _numberToString]};
if (_disText >= 0010) then {_speechArray = _speechArray + [_disText0010 call _numberToString]};
if (_disText >= 0001) then {_speechArray = _speechArray + [_disText0001 call _numberToString]};
_speechArray = _speechArray + ["Meters"];

_sentence = [_sniper,"BIS_distanceReport","distanceReport",["Dist",{},str _disText + " " + localize "str_ep1_wordmeters",_speechArray]];
_spotter kbtell _sentence;
};
_dis = _disTemp;
};
};
};
};
sleep 1;
};

Jetzt war ich einfach mal so frech und habe dieses Script in meine ArmA 3 Mission eingebaut, per Trigger (this = execVM "distanceReport.sqf"; ) löse ich es aus, allerdings kommt immer der Fehler

'...t.Stratis\distanceReport.sqf"
_sniper = |# |_this select 0;
_spotter = _this select ...
Error Nicht definierte Variable in Ausdruck: _this
if (play...'
Error Nicht definierte Variable in Ausdruck _sniper
File C:\Users\Fabian\Dokumente\Arma3\missions\Test%20di stanceReport.Stratis\distanceReport.sqf, line 1

So wie ich das verstehe ist die Variable nicht definiert! Ich habe aber den Player, also dem Sniper den Variabelnamen "sniper" gegeben und dem Spotter "spotter". Achso, die Datei "BIS_distanceReport" habe ich auch entsprechend abgelegt! Habe ich vielleicht irgendwas vergessen? Oder habe ich es mir einfach zu leicht gemacht mit dem rauskopieren?

Aber ich muss sagen das mir das so schonmal weiter geholfen hat, habe rausgelesen, das das Team z.B. nicht mehr als 50m voneinander entfernt sein darf, logischerweise beide noch leben müssen und das die Ansage nur kommt, wenn der Sniper durch das Scope schaut! :daumen:

MfG Fabi_Bo

Nokman
20.04.2016, 17:07
du must ihn übergeben.

nul = [sniper,spotter] execVM "distanceReport.sqf";

_this bezieht sich auf das was übergeben wird.

Fabi_Bo
20.04.2016, 19:37
Hallo,

DANKE @Nokman! :daumen:

So funktioniert es zumindest halbwegs!
Also mir wird jetzt die Entfernung im Chat angezeigt, jedoch leider nicht ausgesprochen und das ganze auch nur einmal! Sprich ich visiere den Offizier an, Spotter sagt mir die Entfernung, danach visiere ich etwas anderes an und nichts passiert!

Ich würde sagen wir nähren uns der Lösung! Damit kann man auf jeden Fall schonmal was anfangen! :lol:

Heba die Missionsdatei mal angehängt, man möge mir verzeiehn das es im 3D Editor erstellt wurde! :angel:

MfG Fabi_Bo

PS: HIER (http://hx3.de/editing-scripting-187/unit-insignia-fahrzeugen-25339/) gehts zur nächsten dummen Frage! ;)

Nokman
22.04.2016, 20:56
So wie ich es da rauslese fehlen dir die Sounddatein welche in der mission sein sollten. 0 bis 9

Fabi_Bo
24.04.2016, 13:52
Hallo,

okay... Irgendwie ist mir das alles zu kompliziert für den dann doch recht kleinen Effekt! :D
Ich belasse es jetzt erstmal dabei, vielleicht krame ich das später nochmal raus!

Aber danke trotzdem für deine Hilfe @Nokman!!! :daumen::daumen::daumen:

MfG Fabi_Bo

burns
25.04.2016, 17:05
So´ne Sounds aus einer inne andere Mission zu kopieren, dauert nicht mehr als 5 Minuten wenn man weiss wonach man sucht. Is keine Freiwilligmeldung, wollte nur aufzeigen das du quasi 1 Meter vorm Ziel stehst :zahn:

Fabi_Bo
26.04.2016, 02:26
Hallo burns,

okay... Dann muss ich morgen mal die .pbo's durchsuchen, denke mal die Sounds 0-9 werden nicht in der Mission selbst sondern irgendwo anders abgelegt sein, schließlich sind das ja quasi ArmA Standard Sounds die auch im Befehlsmenü Verwendung finden (denke ich mir zumindest...)

MfG Fabi_Bo

burns
26.04.2016, 02:48
Hallo burns,

okay... Dann muss ich morgen mal die .pbo's durchsuchen, denke mal die Sounds 0-9 werden nicht in der Mission selbst sondern irgendwo anders abgelegt sein, schließlich sind das ja quasi ArmA Standard Sounds die auch im Befehlsmenü Verwendung finden (denke ich mir zumindest...)

MfG Fabi_Bo

Das dürfte halb so wild sein, die dazugehörigen Pfade kann man in der description.ext der jeweiligen Mission herauslesen :)