PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wieder da und gleich ein neues problem..


S4mmy
19.02.2009, 20:04
Hey,
ich bin wieder zurück!!!:D
Wünsche allen erstmal ein frohes neues Jahr und alles Gute!

Und nun zu meinem Problem:

Ich arbeite derzeit an einem eigenen Medevac-Taxi...
bei diesem "System" soll es weniger darum gehen,dass das Team abgeholt wird sondern nur vor Ort verartztet wird.^^ Klingt komisch ist aber so!
Das erste Script funktioniert "wunderbar" (da ich kein Script Profi bin probiere ich einfach..). Beim 2ten Script stürzt mein ArmA dann ab... warum auch immer.. >.<

Ich werde es mal posten vielleicht könnt ihr mir ja helfen!

Bedanke mich schonmal

Gruß S4mmy

1. Script

private ["_mh","_bs","_p","_mhl"];

_mh = medicheli1;
_bs = begleits1;
_p = tl;
_mhl = medevach;

_mhl setpos getpos _p;
_mh setspeedMode "Normal";
_mh flyInHeight 50;
_mh domove getpos _mhl;
_mh setbehaviour "Careless";
_bs setspeedMode "FULL";
_bs flyInHeight 50;
_bs domove getpos _mhl;
_bs setbehaviour "Combat";

@speed _mh > 10;
[West,"Hq"] sideChat "Medevac is on the Way! Over!";

@_mh distance _mhl < 700;
_mh setspeedMode "Limited"

@_mh distance _mhl < 300;
[_bs]join group _mh;

_mh setFormation "LINE";
_mh flyInHeight 30;
~10
_mh limitSpeed 1;
_mh forcespeed 1;
~5
rope2 = [_mh, 40, "hawk_1l", "rapel", Medesquad] execVM "\ht\rope.sqf";
@count crew _mh < 4;
~10
_mh flyInHeight 50;
_mh domove getpos holdpos1;
_mh setspeedMode "Normal";
~5
[_bs] join grpnull;
_bs setspeedMode "Full";
_bs domove getpos holdpos2;
@_mh distance holdpos1 < 600;
_genAct = _p addaction ["Sanitäter abholbereit","scripts\medicback"];
@_mh distance holdpos1 > 600;
_p removeAction _genAct;
exit


2. Script


private ["_mh","_bs","_p","_mhl","_mhcrew"];

_mh = medicheli1;
_bs = begleits1;
_p = tl;
_mhl = medevach;
_mhcrew = Medesquad;

[_bs]join group _mh;
_mh setFormation "LINE";
_mh domove getpos _mhl;
_mh setspeedMode "Normal";

@_mh distance _mhl < 700;
_mh setspeedMode "Limited";
_mh flyInHeight 20;
~5
_mh flyInHeight 10;
_mh limitSpeed 1;
_mh forcespeed 1;
~5
_mh flyInHeight 5;
~2
_mh flyInHeight 1;
~1
_mhcrew domove getpos _mh;
@_mhcrew distance _mh < 5;

{_x moveincargo _mh} foreach units _mhcrew
~4
_mh setspeedMode "Normal";
_mh flyInHeight 5;
_mh domove getpos evach;
~3
_mh flyInHeight 10;
~5
_mh flyInHeight 50;

@_mh distance _mhl > 400;
[_bs] join grpnull;
~1
_bs setbehaviour "Careless";
_bs setspeedMode "Normal";
_bs flyInHeight 50;
_bs domove getpos path;

@_bs distance path < 200;
_bs setspeedMode "limited";
_bs domove "GET OUT";

@_mh distance evach < 200;
_mh setspeedMode "limited";
_mh domove "GET OUT";
exit

Vienna
19.02.2009, 21:52
Du nennst ein Objekt "path". Das könnte ein reservierter Name des Systes sein.

Lösche einmal beide Zeilen mit "private". Das ist mehr für die SQF-Syntax vorgesehen.

Dann teste das 2. Skript "blockweise" immer bis zum nächsten Punkt, wo das Skript unterborchen wird (Zeilen mit ~ und @).

Dabei beginnge von oben und nimm dann den nächsten "Block" dazu. So kannst du feststellen in welcher Zeile der Fehler auftritt.

S4mmy
19.02.2009, 22:56
Danke für die Antwort!

Hab beides probiert das mit dem path geändert und
dann mit dem Step by Step prinzip wie du gesagt hast und es stürzt weiterhin ab sobald ich das 2. Script starte.

Wie gesagt hab ich das Script bis zum ersten @ gelöscht und probiert und es stürzt ab...

_mh = medicheli1;
_bs = begleits1;
_p = tl;
_mhl = medevach;
_mhcrew = Medesquad;

[_bs]join group _mh;
_mh setFormation "LINE";
_mh domove getpos _mhl;
_mh setspeedMode "Normal";


:kotz:

S4mmy
19.02.2009, 23:29
So habs mal mit nem Auslöser (Funk) probiert anstatt mit addaction.. und es hat geklappt ???

Verstehe ich nicht?!

Ich hab noch mit If then else probiert aber das bekomm ich auch nicht hin


If {_mh distance holdpos1 < 600} Then {_genact = _p addaction ["Medic's good to go","scripts\medicback.sqs"]} Else {_p removeaction _genact}


aber dann sagt er mir was mit bool irgendwas.

Eventuell wäre das noch ne bessere möglichkeit als mit dem @_mh distance.. bzw mit dem auslöser..

Gruß

S4mmy

Vienna
20.02.2009, 10:34
Dann legt vermutlich dein 1. Sktipt den "Grundstein" für den Fehler.

In dieser Zeile fehlt z.B. das .sqs bei medicback:
_genAct = _p addaction ["Sanitäter abholbereit","scripts\medicback"];


Wenn du in If eine lokale Variable verwendest, dann muss sie zuvor initialisiert sein.

If {_mh distance holdpos1 < 600} Then {_genact = _p addaction ["Medic's good to go","scripts\medicback.sqs"]} Else {_p removeaction _genact}

hier wäre das die Variable _genact

Schreib oben bei der Initialisierung der Variablen rein _genact = 0

Auch ist die Abfrage bei If in runde Klammern zu setzen:

if (...) then {...} else {...}

Dein "if then else" passt aber nicht in das Skript rein, da diese Zeile nur einmal aufgerufen wird.


Wenn "private" nicht die Fehlerursache war, dann würde auch damit die Variable initialisiert werden können:

private ["_genact", .....];

S4mmy
20.02.2009, 10:56
Naja ich schau nochmal. Werde vermutlich das ganze Scripts nochmal übersichtlicher und einfacher gestalten.

Danke für die Hilfe!

S4mmy


/closed

S4mmy
24.02.2009, 12:21
Ich habs geschafft ist zwar noch nicht perfekt aber schon ganz ok.

Benötigt wird das Fast Rope Addon von Handytools.
Handy Tools Rope System - Addons, Mods, Files, Missions, Scripts, Demo's, Patches (http://www.armaholic.com/page.php?id=4049)

Nehme Verbesserungsvorschläge gerne an!
Viel Spaß!

S4mmy

Vienna
24.02.2009, 15:01
Geht es auch ohne Addon?

S4mmy
24.02.2009, 18:00
Leider nicht weil die Sanitäter abgeseilt werden und der Heli auf Standby Position fliegt.
Hab mir gedacht das kommt besser rüber weil wenn der Heli in einer Gefahrenzone ist muss er ja nicht unbedingt landen ;)

Man kann es zwar noch umbaun das er landet aber fänd ich jetzt nicht so spektakulär^^. Ich steh mehr auf aktion :D

Vienna
24.02.2009, 18:39
Für kleine Verletzungen gibt es die Sanitäter. Wird ein Hubschraubereinsatz erforderlich, dann fliegt der Heli in geringer Höhe an. Am Einsatzort wird der Verletzte in den Heli verladen, wobei der Heli knapp über dem Boden schwebt.

Auch finde ich, dass Testmissionen ohne Addons laufen sollten.

S4mmy
24.02.2009, 18:59
Ja wie gesagt war erstmal nur zum probieren ;D. Das Problem ist das wenn ich dem Heli sage das er zu dem Helih fliegen soll wo er vorher die Sanis rausgelassen hat bleibt der 20 Meter davor stehen das ich jetzt nicht unbedingt den befehel land benutzen möchte da es damit mal große probleme gab hab ich das mit force speed und flyinheight gemacht sollte dir aber in der testmission auffallen falls du sie ausprobiert hast

Vienna
24.02.2009, 23:18
Ich habe keine Addons installiert.

S4mmy
25.02.2009, 01:15
Echt nicht ^^ gibt doch n paar schöne *g*