HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Wie aktiviert man den Tontaubenwerfer im Editor? (https://hx3.de/editing-scripting-167/aktiviert-man-tontaubenwerfer-editor-16687/)

armanier 06.06.2009 23:59

Wie aktiviert man den Tontaubenwerfer im Editor?
 
Tja, wer weiss es?

armanier 07.06.2009 07:16

Ähm, nur falls das missverstanden wurde. Ich meine, wie man den Tontaubenwerfer dazu bringt, die TT abzuwerfen. Nicht wie man ihn im Editor findet.

Gunny 07.06.2009 07:17

Selbiges hab ich mich auch schnonmal gefragt aber das scheint ein Script dafür zu geben.

armanier 07.06.2009 17:38

Ich denke, ich habe zwei passende Scripte gefunden.
Sie befinden sich unter:
Arma2/Addons/missions.pbo/armory/Data/Scripts/Tryout/prichals/skeetShooting

Ich habe nicht viel Ahnung, deshalb habe ich in meiner Shooting Range Map, an der ich gerade bastele, einfach den Tontaubenwerfer aufgestellt und in die Ini mal folgendes eingegeben: [this,0] exec "skeet_program.sqf"
Leider ohne Erfolg.
Vielleicht weiß jetzt jemand weiter?

Erstes Script: launch_skeet.sqf
Zitat:

/*
File: launch_skeet.sqf
Author: Joris-Jan van 't Land / Pepa Zemánek

Description:
Launches a single skeet.

Parameter(s):
_this select 0: skeet machine (Object).

Returns:
Success flag (Boolean).
*/

private ["_machine"];
_machine = _this select 0;

if (!(isnil "_machine")) then
{
LIB_skeetFired = LIB_skeetFired + 1;

_machine say "LaunchSkeet";

private ["_disc", "_discPos"];
_discPos = [_machine, 0.6, 180] call BIS_fnc_relPos;
_disc = "SkeetDisk" createVehicle [(_discPos select 0), (_discPos select 1), 0.7];
_disc setPos [(_discPos select 0), (_discPos select 1), 0.7];

LIB_dynObjs = LIB_dynObjs + [_disc];
LIB_chalObjs = LIB_chalObjs + [_disc];

private ["_vel", "_ehCode"];
_vel = [[0, -1, 0], (direction _machine)] call BIS_fnc_rotateVector2D;
_disc setVelocity [(-(_vel select 0) * 9), ((_vel select 1) * 9), 10 + (random 2)];

_ehCode =
{
private ["_disc"];
_disc = _this select 0;

//Only score a hit while the skeet is airborne.
if (((position _disc) select 0) > 0.1) then
{
LIB_skeetHit = LIB_skeetHit + 1;
if ((_disc distance player) > 100) then
{
LIB_skeetScore = LIB_skeetScore + 3;
}
else
{
LIB_skeetScore = LIB_skeetScore + 2;
};
};

LIB_dynObjs = LIB_dynObjs - [_disc];
LIB_chalObjs = LIB_chalObjs - [_disc];
deleteVehicle _disc;
};

_disc addEventHandler ["killed", _ehCode];

sleep 1;

//Make sure the skeet flies a bit longer than normal physics would cause.
_vel = velocity _disc;

private ["_i"];
_i = 0;

while {(((position _disc) select 2) > 0.1) && (alive _disc)} do
{
_disc setVelocity [(_vel select 0) / (1 + (_i / 10)), (_vel select 1) / (1 + (_i / 10)), (_vel select 2) / (1 + _i)];
_i = _i + 0.1;
sleep 0.1;
};

LIB_skeetLanded = LIB_skeetLanded + 1;
};

true
Zweites Script: skeet_program.sqf
Zitat:

/*
File: skeet_program.sqf
Author: Joris-Jan van 't Land

Description:
The skeet launcher program.

Parameter(s):
_this select 0: skeet machines (Array of Objects).

Returns:
Success flag (Boolean).
*/

scopeName "root";

private ["_machines"];
_machines = _this select 0;

while {(LIB_skeetFired < 20) && LIB_skeetProgram} do
{
private ["_available", "_launched"];
_available = +_machines;
_launched = 0;

for "_i" from 0 to ((count _machines) - 1) do
{
if (((_launched == 0) || ((random 1) > 0.7)) && (LIB_skeetFired < 20)) then
{
private ["_machine"];
_machine = _available call BIS_fnc_selectRandom;

private ["_handle"];
_handle = [_machine] execVM "ca\missions\armory\data\scripts\tryout\prichals\s keetShooting\launch_skeet.sqf";

_available = _available - [_machine];
_launched = _launched + 1;
};
};

[10 + (random 5), 0, true] call LIB_safeDelayFunction;
};

LIB_skeetProgram = false;

true

armanier 02.07.2009 15:59

Kann mir niemand helfen? :(

S4mmy 02.07.2009 19:09

Bei SQF heißt es execVM...

Dann müsste es glaube ich so heißen:

nul = [this,0] execVM "skeet_program.sqf";

armanier 03.07.2009 09:39

Zitat:

Zitat von S4mmy (Beitrag 250854)
Bei SQF heißt es execVM...

Dann müsste es glaube ich so heißen:

nul = [this,0] execVM "skeet_program.sqf";

Erstmal vielen Dank für die Hilfe!

Dein Vorschlag brachte zwar auch nicht das gewünschte Ergebnis, aber es scheint, als wäre das der richtige Weg.

Wenn ich deine Zeile benutze und statt skeet_program.sqf die launch_skeet.sqf eintrage, kommt direkt nach dem Starten der Mission das Geräusch einer abgeschossenen Tontaube. Allerdings ist diese nicht sichtbar und es ertönt auch nur einmal.
Der korrekte Weg ist aber wohl sicher über die skeet_program.sqf. Leider scheint es da noch irgendwo zu haken.

armanier 17.07.2009 07:54

So, habe nun die Antwort gefunden.
Im OFPEC Forum hat hoz freundlicherweise Demo-Missionen und passende Scripts für den Einbau des Tontaubenwerfers upgeloaded.

http://www.ofpec.com/forum/index.php?topic=33536.0

burns 18.07.2009 14:58

Sehr geil, darauf hab ich gewartet :daumen:

ofpthor 19.07.2009 08:51

Sauber :daumen:

Es geht auch mit anderen Sachen als wie mit den Disc´s :naughty:
YouTube Video

[PNC] SCIONTEK 19.07.2009 10:38

Lol


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 Uhr.

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