Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 08.08.2009, 18:51   #1 (permalink)
Newbie
 
Registriert seit: 08.08.2009
Beiträge: 14
Standard Entfernungsabfrage

Ich möchte ne kleine Trainingsmap basteln in der eine Abfrage der Entfernung statt findet und ausgegeben wird.
Also beim Abschuss eines Panzers oder einer Einheit soll der Text kommen:
"Du hast eine Einheit in XXX Metern entfernung erlegt"

In der einen Editing Anleitung steht sowas, das ist sicher der richtige Ansatz:

Code:
float distanz (char einheit1[], char einheit2[])
{
float x1, x2, y1, y2, z1, z2, d;
x1 = getpos einheit1[0];
x2 = getpos einheit2[0];
y1 = getpos einheit1[1];
y2 = getpos einheit2[1];
z2 = getpos einheit2[2];
z2 = getpos einheit2[2];
d = sqrt ((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) + (z1 - z2) * (z1 - z2));
return d;
}
Ich hab das jetzt so verändert, wobei ich "bob" bin und der Gegner "s1"

Code:
float distanz (char bob[], char s1[])
{
float x1, x2, y1, y2, z1, z2, d;
x1 = getpos bob[0];
x2 = getpos s1[0];
y1 = getpos bob[1];
y2 = getpos s1[1];
z2 = getpos s1[2];
z2 = getpos s1[2];
d = sqrt ((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) + (z1 - z2) * (z1 - z2));
return d;
hint format ["Wert = %1",_x1];";
}
Mir fehlt eigentlich nur der Wert für die Hint-Ausgabe, da liegt sicher mein Fehler...
Prosac ist offline   Mit Zitat antworten
Alt 08.08.2009, 18:58   #2 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 24.06.2009
Beiträge: 168
Standard

Ohne mir groß n Kopf zu machen... die Variable _x1, die Du versucht ausgeben zu lassen, gibts in dem ganzen Script nur einmal: bei der Textausgabe. Und wo kein Wert drinsteckt, wird auch keiner ausgegeben...
Beowulf ist offline   Mit Zitat antworten
Alt 08.08.2009, 19:04   #3 (permalink)
Newbie
 
Registriert seit: 08.08.2009
Beiträge: 14
Standard

Und wo steckt der Wert? _x1 war nur der letzte Versuch, d und sqrt hats auch nicht gebracht.
Prosac ist offline   Mit Zitat antworten
Alt 08.08.2009, 20:25   #4 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 24.06.2009
Beiträge: 168
Standard

Heidenei.. ehrlich gesagt hab ich nicht die Motivation mich in das Script zu steigern, weil ich den Befehl DISTANCE kenne, der die Entfernung zwischen 2 Objekten ausgibt... da bau ich mir doch kein Monsterscript zusammen...
Beowulf ist offline   Mit Zitat antworten
Alt 08.08.2009, 20:41   #5 (permalink)
Newbie
 
Registriert seit: 08.08.2009
Beiträge: 14
Standard

Wie würde in meinem fall dann die Zeile aussehen so wie du es machen würdest? Das hilft mir so auch nicht wirklich weiter.
Prosac ist offline   Mit Zitat antworten
Alt 08.08.2009, 20:44   #6 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 24.06.2009
Beiträge: 168
Standard

Schonmal auf den Link geklickt der sich hinter DISTANCE verbirgt?
Beowulf ist offline   Mit Zitat antworten
Alt 08.08.2009, 20:58   #7 (permalink)
Newbie
 
Registriert seit: 08.08.2009
Beiträge: 14
Standard

Klar, nun hab ichs hin gefriemelt. Für jemanden der nicht so viel ahnung hat bringt der Link nicht sooo viel.

Aber das hier funzt:

_meters=bob distance s1
hint format["Entfernung betrug %1",_meters]
Prosac ist offline   Mit Zitat antworten
Alt 08.08.2009, 20:59   #8 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 24.06.2009
Beiträge: 168
Standard

Dafür das der nix gebracht hat, hat der ganz schön viel gebracht... ^^
Beowulf ist offline   Mit Zitat antworten
Alt 08.08.2009, 21:28   #9 (permalink)
Newbie
 
Registriert seit: 08.08.2009
Beiträge: 14
Standard

Zumindest hat er so viel gebracht das ne Zahl rauskommt.
Nur nicht die richtige...
Bei nem Panzer der genau vor mir steht sagt er "Entfernung betrug 92.127"
Bei nem Panzer der am anderen Ende der Startbahn steht sagt er "Entfernung betrug 124.143"

Was ist das nun wieder, Fantasiemeter?
Prosac ist offline   Mit Zitat antworten
Alt 08.08.2009, 21:41   #10 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 24.06.2009
Beiträge: 168
Standard

Also bei mir klappts einwandfrei... da würd ich mal die Variablen nochmal checken...
Beowulf ist offline   Mit Zitat antworten
Alt 08.08.2009, 21:53   #11 (permalink)
Newbie
 
Registriert seit: 08.08.2009
Beiträge: 14
Standard

Bei nur einer Einheit funzt es super. Wenn man aber mehrere macht gibt er falsche Werte aus.

_meters=bob distance s1,s2,s3,s4,s5,s7

...geht nicht. Wie ist dann das richtige Zeichen für diese Aufzählung?
Prosac ist offline   Mit Zitat antworten
Alt 08.08.2009, 22:14   #12 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 24.06.2009
Beiträge: 168
Standard

Mehrere mit einem distance-Befehl gehen "nicht". Da musst Du schon für jeden einzeln abfragen. Oder Du fängst an die erst in einen Array einzulesen und den dann auszugeben... aber soll bekanntlich klein anfangen...

Jedenfalls ist es mir nicht bekannt, dass man ohne weiteres mehrere auf Schlag auslesen kann...
Beowulf ist offline   Mit Zitat antworten
Alt 08.08.2009, 22:21   #13 (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

Also generell ist Distance die richtige Lösung!

Wobei man sich darauf aber auch nicht immer verlassen kann. Gerade bei großen
Entfernungen kann es durchaus zu Fehlern kommen, dass die Engine es einfach nicht hinbekommt.

Das was du aus irgendeiner Editing Anleitung hast, ist für etwas Komplexeres gedacht.
Du brauchst lediglich Distance.

Ansonsten auch mal im Editing Guide schauen:

5.34 Distanz zweier Einheiten oder Objekte - Seite 120


Viele 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 08.08.2009, 22:50   #14 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Hemingway
 
Registriert seit: 31.05.2009
Beiträge: 321
Standard

ein eventhandler mit "killed" oder "dammaged" würde doch hier sinn machen, oder?
__________________
Kickstart fighter launch
Throttle set to full
Speed king race to win
Afterburners roaring
Ghostlike counterstrike
Takes them by surprise
Hemingway ist offline   Mit Zitat antworten
Alt 09.08.2009, 06:08   #15 (permalink)
Newbie
 
Registriert seit: 08.08.2009
Beiträge: 14
Standard

Vielen Dank für die Hilfe, ich dachte ich hab nur nen falsches Trennungszeichen gesetzt.
Also für jeden Panzer und Soldat nen eigenes Script und nen eigenen Auslöser, ok.
Prosac ist offline   Mit Zitat antworten
Alt 09.08.2009, 20:11   #16 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Nein einfach den Eventhandler "Killed" benutzen.
Einfach in jede Initzeile von jedem feindlichen Soldaten:
Code:
this addEventHandler ["killed",{_this execVM "entfernung.sqf"}];
Dann erstellst du in deinem Missionsordner ein Skript namens entfernung.sqf. Dieses schaut dann folgendermaßen aus:
Code:
_killed = _this select 0;
_killer = _this select 1;

_distance = _killer distance _killed;
hint format ["Distanz: %1 Meter.",_distance];
Ist jetzt nicht getestet und nur auf die Schnelle geschrieben

Geändert von Cyborg11 (09.08.2009 um 20:14 Uhr).
Cyborg11 ist offline   Mit Zitat antworten
Alt 10.08.2009, 01:43   #17 (permalink)
User gesperrt
Newbie
 
Registriert seit: 14.07.2009
Beiträge: 39
Standard

Zitat von Prosac Beitrag anzeigen

"Du hast eine Einheit in XXX Metern entfernung erlegt"

"erlegt"

Schreib lieber "bekämpft".

Begrifflichkeiten aus Jagd und Militärwesen sollte man nicht durcheinander bringen.
Hubschraubär ist offline   Mit Zitat antworten
Alt 14.08.2009, 12:20   #18 (permalink)
Newbie
 
Registriert seit: 08.08.2009
Beiträge: 14
Standard

Cyborg11 du bist ein Editing Gott
Das funktioniert perfekt, ohne für jeden Soldaten nen eigenen Auslöser und nen eigenes Script zu friemeln.
Prosac ist offline   Mit Zitat antworten
Alt 15.08.2009, 21:57   #19 (permalink)
50 Beiträge
 
Benutzerbild von Althalus
 
Registriert seit: 22.08.2008
Beiträge: 95
Standard

ich habe auch gerade ein Problem was mit der "Entfernung" zu tun hat. Es geht darum das ich eine Heli-Landemission basteln mag, bisher klappt auch alles... wollte jedoch das es eine Aufgabe ist mit nem Heli auf einem Heli-H zu landen und dann die Aufgabe abhaken. Nur wie mache ich das? Habe es mit Distance probiert aber irgendwie bekomm ich immer ne Fehlermeldung. Das er ein Objekt oder Array erwartet.
Althalus ist offline   Mit Zitat antworten
Alt 16.08.2009, 18:14   #20 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Hemingway
 
Registriert seit: 31.05.2009
Beiträge: 321
Standard

einen auslöser, der einmal "heli in bereich xxx" und zugleich "flughöhe heli = 0" als bedingun hat?
__________________
Kickstart fighter launch
Throttle set to full
Speed king race to win
Afterburners roaring
Ghostlike counterstrike
Takes them by surprise
Hemingway 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