08.08.2009, 18:51 | #1 (permalink) |
Registriert seit: 08.08.2009
Beiträge: 14
|
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; } 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];"; } |
08.08.2009, 21:28 | #9 (permalink) |
Registriert seit: 08.08.2009
Beiträge: 14
|
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? |
08.08.2009, 22:14 | #12 (permalink) |
Registriert seit: 24.06.2009
Beiträge: 168
|
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... |
08.08.2009, 22:21 | #13 (permalink) |
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 |
|
08.08.2009, 22:50 | #14 (permalink) |
Registriert seit: 31.05.2009
Beiträge: 321
|
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 |
09.08.2009, 20:11 | #16 (permalink) |
Registriert seit: 26.03.2008
Beiträge: 2.822
|
Nein einfach den Eventhandler "Killed" benutzen.
Einfach in jede Initzeile von jedem feindlichen Soldaten: Code:
this addEventHandler ["killed",{_this execVM "entfernung.sqf"}]; Code:
_killed = _this select 0; _killer = _this select 1; _distance = _killer distance _killed; hint format ["Distanz: %1 Meter.",_distance];
__________________
Geändert von Cyborg11 (09.08.2009 um 20:14 Uhr). |
15.08.2009, 21:57 | #19 (permalink) |
Registriert seit: 22.08.2008
Beiträge: 95
|
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.
|
16.08.2009, 18:14 | #20 (permalink) |
Registriert seit: 31.05.2009
Beiträge: 321
|
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 |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|