Armed-Assault.de Twitter


Editing The world is a Script - write it!

Antwort
 
Themen-Optionen Ansicht
Alt 02.01.2009, 23:43   #1 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 01.12.2006
Beiträge: 157
Standard Obj. zu geworfener Granate beamen

Hallo

Tut mir leid, dass mir kein besserer Titel für mein Problem eingefallen ist. Ich werd euch mal mein Anliegen schildern.

Ich möchte, dass ein Helipad, nach dem Wurf einer Rauchgranate, auf die Position der abgeworfenen Rauchgranate gesetzt wird.
Ich hab es über einen EH probiert, aber der liest mir die geworfene Granate nicht aus, lediglich die Einheit, welche geworfen hat.

Danke im Voraus,
hypercop
hypercop ist offline   Mit Zitat antworten
Alt 03.01.2009, 16:00   #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
Siehe Anhang. Das Objekt musst du nur noch ändern! Ist derzeit D30, damit du auch was
siehst. Bitte den Heli-Klassennamen is Skript eintragen.


Viele Grüße

Mr-Murray
Angehängte Dateien
Dateityp: rar Heli_Smoke_Landing.Intro.rar (958 Bytes, 69x aufgerufen)
__________________
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 03.01.2009, 20:02   #3 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 01.12.2006
Beiträge: 157
Standard

Danke Mr-Murray,

Ich werd es gleich mal checken.
hypercop ist offline   Mit Zitat antworten
Alt 03.01.2009, 20:15   #4 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 01.12.2006
Beiträge: 157
Standard

Sehr coole Sache. Es funktioniert alles prima. Danke Mr-Murray.
hypercop ist offline   Mit Zitat antworten
Alt 04.01.2009, 17:12   #5 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Mal eine Frage, hab das Skript so erweitert, dass dann auch ein Heli zu der Rauchgranate fliegt und landen soll. Aber mein Heli fliegt nicht 5 Meter vor das Ziel, sondern bleibt bei ungefähr 80 Meter Entfernung einfach in der Luft stehen und will nicht mehr weiterfliegen. Landet tut er auch nicht, da das erst bei einer Entfernung von weniger als 5 Metern passieren soll.

Kann mir da bitte einer helfen und mir sagen was ich jetzt schon wieder falsch gemacht hab?
Code:
_heli = heli1;
_dhh = 5;

_Obj = nearestObject [vehicle(player), _this select 4];
?! (_Obj isKindOf "SmokeshellGreen") : exit;
~4
_HeliH = "HeliHEmpty" createVehicle position _Obj;
_distance = _helih distance _heli;
hint format ["Distanz: %1", _distance];
While {_distance > _dhh} do {_heli domove position _helih};
If (_distance <= _dhh) then {_heli land "land"};
exit;
Cyborg11 ist offline   Mit Zitat antworten
Alt 05.01.2009, 11:11   #6 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 01.12.2006
Beiträge: 157
Standard

Ich hab es bei mir über Wegpunkte im Editor gemacht:

Der Soldat hat einen EH "Fired". Kurz nachdem die Rauchgranate geworfen wurde, wird dank obigen Script Ein Helipad und die Wegpunkte des Soldaten, "Einsteigen" und der des Heli "Laden" auf das Helipad gesetzt.

Ist natürlich nur ganz grob. Da kommen dann ncoh ein paar Funksprüche etc. hinzu.
hypercop ist offline   Mit Zitat antworten
Alt 05.01.2009, 11:56   #7 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Lester
 
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 57
Beiträge: 3.013
Standard

Die 5m dürften den Heli für das Landmanöver nicht genügen und insofern sehr contraproduktiv sein.

Zudem erfolgt die Distanzmessung immer zwischen den Objektmittelpunkten, so das der Objektmittelpunkt nicht zwangsweise auch der Aufsetzpunkt sein muß/wird.

Außerdem wird ein Bewegungsbefehl innerhalb einer bestimmten Entfernung (frag mich nicht wieviel das genau ist )
zudem überhaupt nicht mehr zur Kenntnis genommen.
__________________
Nur ein Beispiel das zeigt wie BI "support" definiert: https://feedback.bistudio.com/T75547
Lester ist offline   Mit Zitat antworten
Alt 05.01.2009, 13:16   #8 (permalink)
10 Jahre hx3
5000 Beiträge10.000 Beiträge15.000 Beiträge
 
Benutzerbild von burns
 
Registriert seit: 13.04.2003
Ort: Monerica
Alter: 41
Beiträge: 32.968
Standard

Zitat von Lester Beitrag anzeigen

Außerdem wird ein Bewegungsbefehl innerhalb einer bestimmten Entfernung (frag mich nicht wieviel das genau ist )
zudem überhaupt nicht mehr zur Kenntnis genommen.

Zwischen 3-15 Metern kannsde alles inne Tonne kloppen.
Das variiert ganz gerne mal und nimmt immer die Form an die man grade nicht braucht


*auf ArmA2´s zentimetergenau Waypoints gespannt sei*
__________________

burns ist offline   Mit Zitat antworten
Alt 05.01.2009, 15:25   #9 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Zitat von Lester Beitrag anzeigen

Die 5m dürften den Heli für das Landmanöver nicht genügen und insofern sehr contraproduktiv sein.

Zudem erfolgt die Distanzmessung immer zwischen den Objektmittelpunkten, so das der Objektmittelpunkt nicht zwangsweise auch der Aufsetzpunkt sein muß/wird.

Außerdem wird ein Bewegungsbefehl innerhalb einer bestimmten Entfernung (frag mich nicht wieviel das genau ist )
zudem überhaupt nicht mehr zur Kenntnis genommen.

Hm ... das ist doof. Der sollte eigentlich genau im Rauch landen ... egal.

Ich hab das jetzt mit Wegpunkten gemacht und mit einem Mapclick verknüpft Problem is nur diese Zeile:
Code:
onMapSingleClick "_heli move _pos; mapclick=false; ""HeliMoveP"" setMarkerPos _pos";
Wenn ich _heli dortstehen lasse, dann fliegt mein Heli nicht weiter. Wenn ich aber anstelle des _heli ein heli1 (Name des Helis) hinschreibe, dann fliegt er auch. Kann man das nicht variabel machen? Denn ganz oben am Anfang des Skripts müsste man dann immer nur die Namen der jeweiligen Einheiten einsetzen und das Skript funktioniert dann völlig problemlos.
Aber wenn ich dort den Namen des helis (heli1) einsetzen muss, dann ist es ja nicht mehr von der Variabel _heli abhängig.

Hier mal mein ganzes Skript:
Code:
_heli = heli1;
_man = p1;

_heligrp = group _heli;
_pgrp = group _man;
_Obj = nearestObject [vehicle(_man), _this select 4];
?! (_Obj isKindOf "SmokeshellGreen") : exit;
~4
_HeliH = "HeliHEmpty" createVehicle position _Obj;
_wph = _heligrp addwaypoint [position _helih, 1];
[_heligrp, 1] setwaypointtype "LOAD";
_wpm = _pgrp addwaypoint [position _helih, 1];
[_pgrp, 1] setWaypointType "GETIN";
[_pgrp, 1] synchronizeWaypoint [[_heligrp, 1]];

@(_man in _heli);
mapclick=true;
titletext ["Klicke auf die Karte um den Zielort zu bestimmen!","plain down"];
onMapSingleClick "_heli move _pos; mapclick=false; ""HeliMoveP"" setMarkerPos _pos";
@!mapclick;
onMapSingleClick "";
titleText ["","plain down"];
~1
"HeliMoveP" setMarkerPos [0,0];
exit;
Cyborg11 ist offline   Mit Zitat antworten
Alt 05.01.2009, 20:36   #10 (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

Hmm... also ich habe schon mal Ähnliches nur ohne Rauch gemacht.
Dabei sollte ein Heli an eine Position fliegen und wenn er nah genug dran ist auf Höhe 2m
fliegen und dort eine Gruppe absetzen. Hat auch gut funktioniert. Müsste mal schauen,
wo das rumliegt und es nur mit dem Smoke verknüpfen.
__________________
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 23.01.2009, 22:28   #11 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Und Mr-Murray hast du dein Beispiel gefunden?^^

Hab immer noch das Problem, dass ich das iwie nicht in Abhänigkeit von der Variable machen kann =(
Cyborg11 ist offline   Mit Zitat antworten
Alt 24.01.2009, 17:17   #12 (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

Richtig! Da war doch was. Lass mich mal schauen
__________________
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 25.01.2009, 01:58   #13 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Hehe wäre nett, wenn du das für mich machen würdest

Ist in deinem Beispiel dann auch vorhanden, dass der Heli dann an dem Ort landet?
Ich glaub ich bin zu blöd, denn ich kriege das nicht hin <.< Wieder einen Truppen Entladen Wegpunkt erstellen funzt nicht so wie ich will ^^


Ganzes Skript schaut so aus:
Code:
; ****************************************************************
; Script file for Armed Assault
; Created by: Cyborg11 
; Smokeabfrage by: Mr-Murray
; ****************************************************************

; In Zeile 25 bei OnMapSingleClick den Namen heli1 bitte mit eurem
; Helinamen ersetzen
; Bei _heli bitte den Namen eures Helis einsetzen und bei _man den
; Namen von eurem Spieler / der Einheit, die den Transport anfordern
; kann
; Unbedingt in der Init.sqs folgendes eintragen:
; p1 addEventHandler ["FIRED", {_this exec "Smoke.sqf"}];
; p1 ist hier der Name von eurer Einheit / eurem Spieler
_heli = heli1;
_man = p1;

_heligrp = group _heli;
_pgrp = group _man;
_Obj = nearestObject [vehicle(_man), _this select 4];
?! (_Obj isKindOf "SmokeshellGreen") : exit;
~4
_HeliH = "HeliHEmpty" createVehicle position _Obj;
_wph = _heligrp addwaypoint [position _helih, 0];
[_heligrp, 1] setwaypointtype "LOAD";
_wpm = _pgrp addwaypoint [position _helih, 0];
[_pgrp, 1] setWaypointType "GETIN";
[_pgrp, 1] synchronizeWaypoint [[_heligrp, 1]];

@(_man in _heli);
mapclick=true;
titletext ["Klicke auf die Karte um den Zielort zu bestimmen!","plain down"];
onMapSingleClick "heli1 move _pos; mapclick=false; ""HeliMoveP"" setMarkerPos _pos; _HeliH2 = ""HeliHEmpty"" createVehicle position HeliMoveP;";
_wpu = _heligrp addwaypoint [position _helih2, 0];
_wpu setwaypointtype "TR UNLOAD";
;onMapSingleClick "heli1 move _pos; mapclick=false; ""HeliMoveP"" setMarkerPos _pos";
@!mapclick;
onMapSingleClick "";
titleText ["","plain down"];
~1
Relevante Zeile zum Mapclick sind diese:
Code:
@(_man in _heli);
mapclick=true;
titletext ["Klicke auf die Karte um den Zielort zu bestimmen!","plain down"];
onMapSingleClick "heli1 move _pos; mapclick=false; ""HeliMoveP"" setMarkerPos _pos; _HeliH2 = ""HeliHEmpty"" createVehicle position HeliMoveP;";
_wpu = _heligrp addwaypoint [position _helih2, 0];
_wpu setwaypointtype "TR UNLOAD";
@!mapclick;
onMapSingleClick "";
titleText ["","plain down"];
~1
Und hier ist das Problem. Wenn ich das so schreibe, dann gibt es eine Fehlermeldung, wenn ich im Heli bin und diese lautet:
Zitat:

'_wpu = _heligrp |#|addwaypoint [position _helih2, 0];'
Error 0 Elemente gegeben, 3 erwartet

Was ist denn da schon wieder falsch? Es wird doch eigentlich ein zweites Heliport nach dem Mapclick mit dem Namen _helih2 erstellt
Cyborg11 ist offline   Mit Zitat antworten
Alt 25.01.2009, 15:50   #14 (permalink)
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Xeno
 
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
Standard

Zitat von Cyborg11 Beitrag anzeigen

Was ist denn da schon wieder falsch? Es wird doch eigentlich ein zweites Heliport nach dem Mapclick mit dem Namen _helih2 erstellt

Du benutzt die nicht initialisierte private Variable _helih2. Daher kommt die Fehlermeldung. Die ist schlicht und ergreifend nil, daher 0 Elemente.

Steig um auf eine globale Variable, die Scriptübergreifend wirkt.
Private lokale Variablen beginnen mit _ und sind nur im Scope des Scriptes wirksam (onMapSingleClick wird außerhalb des Scriptes ausgeführt), globale Variablen sind auf einem Client für ArmA überall sichtbar (wenn sie im MP per publicVariable verschickt werden sogar auch für andere Clients und den Server).

Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels.
Xeno ist offline   Mit Zitat antworten
Alt 26.01.2009, 17:31   #15 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Zitat von Xeno Beitrag anzeigen

Du benutzt die nicht initialisierte private Variable _helih2. Daher kommt die Fehlermeldung. Die ist schlicht und ergreifend nil, daher 0 Elemente.

Steig um auf eine globale Variable, die Scriptübergreifend wirkt.
Private lokale Variablen beginnen mit _ und sind nur im Scope des Scriptes wirksam (onMapSingleClick wird außerhalb des Scriptes ausgeführt), globale Variablen sind auf einem Client für ArmA überall sichtbar (wenn sie im MP per publicVariable verschickt werden sogar auch für andere Clients und den Server).

Xeno

Ah ok danke für die Info Xeno!
Also deswegen bewegt sich mein Heli auch nicht mehr,w enn ich das _heli bei onmapclick drinnen lasse. Ok, dann werde ich das einfach zu einer globalen Variable machen

Danke nochmal!

_________________________________


Hmpf ... klappt immer noch nicht : /
Habs mal so ausprobiert, geht aber auch nicht. Irgendwie stehe ich grad aufm Schlauch <.<
Code:
@(_man in _heli);
mapclick=true;
_heligrp = heligrp;
titletext ["Klicke auf die Karte um den Zielort zu bestimmen!","plain down"];
onMapSingleClick "heli1 move _pos; mapclick=false; ""HeliMoveP"" setMarkerPos _pos;";
;onMapSingleClick "heli1 move _pos; mapclick=false; ""HeliMoveP"" setMarkerPos _pos";
@!mapclick;
helih2 = "HeliHEmpty" createVehicle (position helimovep); 
wpu = heligrp addwaypoint [position helih2, 2]; 
wpu setwaypointtype "UNLOAD";
onMapSingleClick "";
titleText ["","plain down"];
~1
"HeliMoveP" setMarkerPos [0,0];
exit;
Cyborg11 ist offline   Mit Zitat antworten
Alt 29.01.2009, 17:39   #16 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Keiner eine Ahnung?
Cyborg11 ist offline   Mit Zitat antworten
Alt 30.01.2009, 14:33   #17 (permalink)
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Xeno
 
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
Standard

Was ist das helimovep in dem createVehicle Befehl (position helimovep) ?

Wenn es der Marker sein soll, dann musst Du markerPos "helimovep" benutzen um die Position des Markers abzufragen.

Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels.
Xeno ist offline   Mit Zitat antworten
Alt 30.01.2009, 15:46   #18 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Zitat von Xeno Beitrag anzeigen

Was ist das helimovep in dem createVehicle Befehl (position helimovep) ?

Wenn es der Marker sein soll, dann musst Du markerPos "helimovep" benutzen um die Position des Markers abzufragen.

Xeno

Ah ok danke. Ja war ein Marker. Sry, dass ichs nicht dazu geschrieben habe

Skript schaut nun so aus (unterer Teil):
Code:
@(_man in _heli);
mapclick=true;
heligrp = _heligrp;
titletext ["Klicke auf die Karte um den Zielort zu bestimmen!","plain down"];
onMapSingleClick "mapclick=false; ""HeliMoveP"" setMarkerPos _pos";
;onMapSingleClick "heli1 move _pos; mapclick=false; ""HeliMoveP"" setMarkerPos _pos";
@!mapclick;
helih2 = "HeliHEmpty" createVehicle (markerpos helimovep); 
wpu = heligrp addwaypoint [position helih2, 2]; 
wpu setwaypointtype "MOVE";
onMapSingleClick "";
titleText ["","plain down"];
~1
"HeliMoveP" setMarkerPos [0,0];
exit;
Durch markerpos klappt das nun. Doch danach kommt eigentlich die selbe Fehlermeldung wieder wie oben. Nämlich diese hier:
Zitat:

'_wpu = _heligrp |#|addwaypoint [position _helih2, 0];'
Error 0 Elemente gegeben, 3 erwartet

Habe es dann mal mit dem ersten Heliport (helih) vergleichen.
Code:
hint format ["Position helih2: %1\nhelih2: %2\nPosition helih1: %3\nhelih1: %4", position helih2, helih2, position _helih, _helih];
Hier kommt raus:
Zitat:

Position helih2: array
helih2: 0x100
Position helih1: [2538.75,2443.75,0]
helih1: 3890398# 5207: empty.p3d

Hm ... kann man denn keinen Heliport an die Position eines Markers setzen?
Cyborg11 ist offline   Mit Zitat antworten
Alt 30.01.2009, 16:09   #19 (permalink)
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Xeno
 
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
Standard

Was auch immer Du da durcheinander gebracht hast, _helih2 ist nicht initialisiert. Daher kommt die Fehlermeldung.

Einmal benutzt Du die lokale Variable _helih2, einmal die globale helih2.

Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels.
Xeno ist offline   Mit Zitat antworten
Alt 30.01.2009, 17:29   #20 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Was meinst du denn mit nicht initalisiert?
Ich benutze nur helih2, also globale Variable. Die Fehlermeldung war von oben eifnach nur kopiert :P Da steht eigentlich helih2 und nicht _helih2.

Ich weiß nicht warum, aber mein Skript erstellt einfach keinen blöden Heliport auf dem Marker o.O

Und wenn ich den Heliport zuerst createn lasse, dann auf die Position des Markers schiebe, dann setzt mir ArmA den auf die Koordinaten -1.25, -1.25, 5.68 o.O
Neuer Heliport heißt jetzt h3.

Code:
@(_man in _heli);
mapclick=true;
heligrp = _heligrp;
titletext ["Klicke auf die Karte um den Zielort zu bestimmen!","plain down"];
onMapSingleClick "mapclick=false; ""HeliMoveP"" setMarkerPos _pos"; h3 = "HeliHEmpty" createVehicle [0,0,0]; h3 setpos getmarkerpos helimovep; 

@!mapclick;
hint format ["Position helih2: %1\nhelih2: %2\nPosition helih1: %3\nhelih1: %4", position h3, h3, position _helih, _helih]; 
wpu = heligrp addwaypoint [position h3, 2]; 
wpu setwaypointtype "MOVE";
onMapSingleClick "";
titleText ["","plain down"];
~5
"HeliMoveP" setMarkerPos [0,0];
exit;

Geändert von Cyborg11 (30.01.2009 um 17:44 Uhr).
Cyborg11 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 117 118 119