HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing (https://hx3.de/editing-139/)
-   -   Aus Fahrzeug schießen (https://hx3.de/editing-139/fahrzeug-schiessen-15479/)

Cyborg11 28.11.2008 17:28

Aus Fahrzeug schießen
 
Hi Leute,

ich wollte mal das Skript Shoot from moving vehicles ein kleines bisschen erweitern. Das Problem ist, dass ich es nicht hinkriege irgendwie wieder aus dem Fahrzeug auszusteigen. Kann mir da jemand helfen?


YouTube Video

Cyborg11 28.11.2008 21:19

Hat keiner eine Idee, wie ich das einfügen könnte, damit man auch wieder aussteigen kann? Würde das gerne in eine Mission einbauen, da ich aber atm keine Möglichkeit habe wieder aus dem Fahrzeug rauszukommen, wende ich mich an euch.
Nur wie es scheint, weiß se auch keiner von euch bzw. es ist zu schwer für euch :zahn:

Mr-Murray 29.11.2008 09:05

Guten Morgen
Ich habe das Addon noch nicht getestet. Aber wir wäre ein Actionmenü-Eintrag und eine Abfrage im Skript. Dann gehts!


Grüße

Mr-Murray

Cyborg11 29.11.2008 11:08

Zitat:

Zitat von Mr-Murray (Beitrag 203660)
Guten Morgen
Ich habe das Addon noch nicht getestet. Aber wir wäre ein Actionmenü-Eintrag und eine Abfrage im Skript. Dann gehts!


Grüße

Mr-Murray

Das is kein Addon, das wurde über Skripte geregelt. DemoMissionen snid dabei.

Aber ic hweiß ja nicht wie die Abfrage und das addaction ausschauen muss! Ich hab schon alles probiert, mal mit worldtomodel anstatt modeltoworld, moveindriver irgendwas, is egal, der bleibt immer aufm Heli/Farhzeug sitzen.

Hier z.b. das Skript, was einen in den Heli setzt (ScriptC):
Code:

_Unit=_This Select 0;
_Vehicle=_This Select 1;

_Unit SetPos (_Vehicle ModelToWorld [-0.8,1.4,-2.0]);

DegHead = 0;
_CurrentDeg = 0;
publicVariable "DegHead";

WaitUntil
        {
        _Unit SetVelocity (Velocity _Vehicle);
        _Unit SetPos (_Vehicle ModelToWorld [-0.8,1.4,-2.0]);
        _VUp=VectorUp _Vehicle;
        _VDir=VectorDir _Vehicle;
        _Unit SetvectorUp _VUp;
        if (DegHead > _CurrentDeg) then {_CurrentDeg = _CurrentDeg + 1};
        if (DegHead < _CurrentDeg) then {_CurrentDeg = _CurrentDeg - 1};
        _Unit SetvectorDir [Sin _CurrentDeg,Cos _CurrentDeg,0];
        not alive _Unit;
        };


Atsche 29.11.2008 14:06

Ich hatte das vor Jahren mal so gemacht das ich mich einfach wieder rausgebeamt hatte neben das Fahrzeug ne neue kurze Anim verpasst wo er wieder in den Spieler wechselt und gut war.

Cyborg11 29.11.2008 16:45

Zitat:

Zitat von Sgt.Ace (Beitrag 203716)
Ich hatte das vor Jahren mal so gemacht das ich mich einfach wieder rausgebeamt hatte neben das Fahrzeug ne neue kurze Anim verpasst wo er wieder in den Spieler wechselt und gut war.

Ah und weißt du noch wie du das gemacht hast? Hatte es auch mal mit soldat setpos (position h) probiert, aber der hatet sich nich weggebeamt. Kannst du mir bitte sagen, wie ich das machen muss?

Weil eigentlich funzt alles bei dem Skript, außer, dass man nicht mehr aufsethen kann, wenn man sich ein Mal hingelegt hat. Aber das kann man verkraften :zahn:

Cyborg11 29.11.2008 20:14

Argh ... ich glaub ich bin zu ungeduldig :naughty: Ich versuche es ständig, aber ich kriege es einfach nicht hin, dass ich aus dem blöden Fahrzeug rauskomme -.-

PS: Weiß jemand was man machne müsste, damit die KI auch aus dem Fahrzeug rausschießt ?

Cyborg11 30.11.2008 14:19

So ... weil mir keiner mehr antwortete, hab ich das jetzt nochmal ausprobiert und es funktioniert :D

Mit diesem Skript hier kommt man aus dem Heli in der Demomission 1 (Active Cargo 1):
Code:

h = "HeliHEmpty" createvehicle [(getpos ch2 select 0),(getpos ch2 select 1),(getpos ch2 select 2)];
para = createvehicle ["Parachute", [(getpos ch2 select 0),(getpos ch2 select 1),(getpos ch2 select 2)], [], 0, "FLY"];
para setpos [(getpos ch2 select 0),(getpos ch2 select 1),(getpos ch2 select 2)];
"SoldierWB" createUnit [position h,S2,"S1=this",0.5,"Corporal"];
S1 moveindriver para;
deletevehicle S2;
dostop t1;
selectPlayer S1;
~0.5
deletevehicle MG1;

Natürlich kann man das auch noch per _unit = this select 0 usw. noch verfeinern, aber grundsätzlich funzt es jtzt, dass man per Fallschirm aus dem Heli springt :naughty:


PS: S2 ist eine Spiellogik, die nur gebraucht wird, weil man einen Leader angeben muss. Man könnte es auch noch so machen, wenn der Spieler ein Leader, dass S1 dort reinjoint und dann zum Leader ernannt wird.

Xeno 30.11.2008 14:52

Warum brichst Du das waitUntil nicht einfach ab ?

In dem o.a. Script wird das Positionieren der Einheit nur beendet, wenn das unit tod ist (not alive _Unit;)

Du kannst da noch eine zweite Bedingung mit reinbauen (meinetwegen eine Variable, die durch ein Action Menü geändert wird oder wie auch immer).

Also z.B. so in der Art:
not alive _Unit || nu_raus

nu_raus zu Beginn mit false initialisieren und durch z.B. einen Action Menüeintrag wird die Variable auf true gesetzt.

Xeno

Cyborg11 30.11.2008 18:59

Ahja ok und wie bricht man bitte so ein WaitUntil ab? Mich selbst umbringen? :naughty:
EDIT: Mal den ganzen Beitrag lesen :D Hm ... stimmt ... sit einfacher und dann halt einfach in dem neuen Skript den Fallschirm createn usw.
EDIT2: Das funzt nicht! Ich hab in dem WaitUntil noc hdas mit renigeschrieben: raus==1;
Aber es will nich tfunktionieren, wenn ich den Auslöser auslös, der die Variable raus auf 1 setzt ...

Außerdem hängt man dann bei meinem Skript gleich an nem Fallschirm und segelt schön runter :D Das ist zwar eine neue Einheit, aber man kann der neuen Einheit den selben Namen wie der alten Einheit geben und auch wieder als Leader seinem alten Trupp zuweisen. Von daher ist mein Skript gar nicht so falsch :D

Lester 30.11.2008 19:03

Zitat:

Zitat von Cyborg11 (Beitrag 204042)
Ahja ok und wie bricht man bitte so ein WaitUntil ab?

Ich würde mal so grob sagen indem man eine zusätzliche Bedingung hinzufügt die erfüllt werden kann. :naughty: ;)

Cyborg11 30.11.2008 19:18

Zitat:

Zitat von Lester (Beitrag 204044)
Ich würde mal so grob sagen indem man eine zusätzliche Bedingung hinzufügt die erfüllt werden kann. :naughty: ;)

Guck mal @Edit2 ^^
Zitat:

EDIT2: Das funzt nicht! Ich hab in dem WaitUntil noch das mit reingeschrieben: raus==1;
Aber es will nicht funktionieren, wenn ich den Auslöser auslös, der die Variable raus auf 1 setzt ...

Xeno 30.11.2008 20:14

Nun raten wir wieder alle...

Was hat er in dem waitUntil denn drin nun ?

waitUntil ist wie die Bedingung eines Auslösers, verschiedene Zustände können es abbrechen (Zustände lassen sich auch per && oder || verknüpfen).

Xeno

Cyborg11 30.11.2008 20:20

Sry, dass ichs vergessen habe =(
Code:

WaitUntil
    {
    _Unit SetVelocity (Velocity _Vehicle);
    _Unit SetPos (_Vehicle ModelToWorld [0,-3,-0.5]);
    _VUp=VectorUp _Vehicle;
    _VDir=VectorDir _Vehicle;
    _Unit SetvectorUp _VUp;
    if (DegHead > _CurrentDeg) then {_CurrentDeg = _CurrentDeg + 1};
    if (DegHead < _CurrentDeg) then {_CurrentDeg = _CurrentDeg - 1};
    _Unit SetvectorDir [Sin _CurrentDeg,Cos _CurrentDeg,0];
    not alive _Unit || raus == 1;
    };

Das hab ich drinnen und das funzt net.

Hab nen Funkauslöser Alpha erstellt, der bei Aktivierung raus auf 1 setzt (raus=1), aber das geht nicht =o

Ganzes Skript schaut atm so aus:
Code:

_Unit=_This Select 0;
_Vehicle=_This Select 1;

_Unit SetPos (_Vehicle ModelToWorld [0,-3,-0.5]);

DegHead = 0;
_CurrentDeg = 0;
publicVariable "DegHead";

WaitUntil
    {
    _Unit SetVelocity (Velocity _Vehicle);
    _Unit SetPos (_Vehicle ModelToWorld [0,-3,-0.5]);
    _VUp=VectorUp _Vehicle;
    _VDir=VectorDir _Vehicle;
    _Unit SetvectorUp _VUp;
    if (DegHead > _CurrentDeg) then {_CurrentDeg = _CurrentDeg + 1};
    if (DegHead < _CurrentDeg) then {_CurrentDeg = _CurrentDeg - 1};
    _Unit SetvectorDir [Sin _CurrentDeg,Cos _CurrentDeg,0];
    not alive _Unit || raus==1;
    };
MG1 setpos (position h);


Xeno 30.11.2008 20:35

Komisch mal wieder, geht einwandfrei hier mit dem Script und einem Soldaten als player und einem BH als Vehikel (bis auf die Tatsache, dass ich auf dem Heli stehe solange das waitUntil im Script läuft, aber egal).

Exakt o.a. Script, raus = 1 in einem Auslöser mit Countdown der nach 6 Sekunden aktiviert wird.

Xeno

Cyborg11 30.11.2008 20:53

Zitat:

Zitat von Xeno (Beitrag 204058)
Komisch mal wieder, geht einwandfrei hier mit dem Script und einem Soldaten als player und einem BH als Vehikel (bis auf die Tatsache, dass ich auf dem Heli stehe solange das waitUntil im Script läuft, aber egal).

Exakt o.a. Script, raus = 1 in einem Auslöser mit Countdown der nach 6 Sekunden aktiviert wird.

Xeno

Könntest du mal bitte deine Missi uppen? Ich schaffe se mit dem o.a. Skript nur, dass ich mich nich mehr mit A und D drehen kann, aber mein Spieler teleportiert sich nich zu dem Heliport. Hab es jetzt mal versucht, dass sich der Spieler per moveindriver in einen Fallschirm begibt => Ich werde sofort wieder in den Heli zurückgebeamt. WTF?!

Die einzige Möglichkeit, die bei mir atm klappt, ist, dass ich eine neue Einheit create. Nur da krieg ich ein Fehler beim Joinbefehl -.-* Würde aber gerne erstere Methode bevorzugen, da sie leichter ist :daumen:
Code:

_Unit=_This Select 0;
_Vehicle=_This Select 1;

grp1 = units group _unit;
h = "HeliHEmpty" createvehicle [(getpos _Vehicle select 0),(getpos _Vehicle select 1),(getpos _Vehicle select 2)];
para = createvehicle ["Parachute", [(getpos _Vehicle select 0),(getpos _Vehicle select 1),(getpos _Vehicle select 2)], [], 0, "FLY"];
para setpos [(getpos _Vehicle select 0),(getpos _Vehicle select 1),(getpos _Vehicle select 2)];
"SoldierWB" createUnit [position h,S2,"S1=this",0.5,"Corporal"];
S1 moveindriver para;
deletevehicle S2;
;dostop t1;
selectPlayer S1;
~0.5
deletevehicle MG1;
~0.1
S1 setvehicleVarName MG1;
MG1 join grp1;
group grp1 selectLeader MG1;

Fehlermeldung is diese hier:
Zitat:

'S1 |x|join grp1;'
Error join: Typ Objekt, erwartet Array

Cyborg11 01.12.2008 20:44

Knan mir denn keiner helfen wie ich aus der blöden Schleife rauskomme? <.< Das will einfach nicht funktionieren!

Xeno? :naughty:

Spiderman 01.12.2008 22:04

Man, man, man.. scheint so dass die Leute kein Bock mehr haben dir deine Scripte zu schreiben. Lieber wartest du auf die Arbeit anderer die dir eine bequeme Lösung vor den Latz setzen. Das hier ist aber nicht für Lösungen sondern für Hilfeleistung gedacht. Selber ausprobieren anstatt jeden Scheiss posten. Ausserdem funktionierts doch:
Zitat:

So ... weil mir keiner mehr antwortete, hab ich das jetzt nochmal ausprobiert und es funktioniert
Rechergieren tust du auf jedenfall nicht:

Zitat:

Fehlermeldung is diese hier:
Zitat:
'S1 |x|join grp1;'
Error join: Typ Objekt, erwartet Array

Such mal nach "join" in der wicki oder erkundige dich in den Tutorials. Dann ist der Fehler gelöst.
Wie man Schleifen programmiert ist auch in Tutorials beschrieben. Und wenn jetzt die Frage nach den Tutorials kommt, wird für dich garantiert niemand mehr etwas tun.
So.. da werd ich echt sauer wenn Leute sich den A.. nachtragen lassen.

Cyborg11 02.12.2008 15:40

Das Skript tut hier nichts zu belangen ...

Habe es nur gepostet, weil ich es für mich atm die einzigste Möglichkeit ist, aus dem Fahrzeug auszusteigen. ich will aber, dass das Waituntil abbrechen und das funzt nicht! Außerdem weiß ich schon längst, wo der Fehler bei dem join Befehl lag, aber ich konnte menien Post nicht mehr editieren ...

Erstmal bitte die Posts ganz lesen, dann hättest du gewusst, warum ich das Skript gepostet habe ... mich interessiert aber die Möglichkeit von Xeno, da sie die einfachere ist, aber die funktioniert einfach nicht bei mir. Hier nochmal das Skript (ScriptB.sqs):
Code:

_Unit=_This Select 0;
_Vehicle=_This Select 1;

_Unit SetPos (_Vehicle ModelToWorld [0,-3,-0.5]);

DegHead = 0;
_CurrentDeg = 0;
publicVariable "DegHead";

WaitUntil
    {
    _Unit SetVelocity (Velocity _Vehicle);
    _Unit SetPos (_Vehicle ModelToWorld [0,-3,-0.5]);
    _VUp=VectorUp _Vehicle;
    _VDir=VectorDir _Vehicle;
    _Unit SetvectorUp _VUp;
    if (DegHead > _CurrentDeg) then {_CurrentDeg = _CurrentDeg + 1};
    if (DegHead < _CurrentDeg) then {_CurrentDeg = _CurrentDeg - 1};
    _Unit SetvectorDir [Sin _CurrentDeg,Cos _CurrentDeg,0];
    not alive _Unit || raus==1;
    };

MG1 setpos (position h);

Mit moveindriver parachute wird mein Spieler nachdem er am Fallschirm hängt, sofort wieder in den Heli zurückgebeamt. Warum?`Evtl. is das auch eine Ursache, warum der setpos Befehl nicht funzt.
Muss ich da vorher noch mit worldtomodel arbeiten?

Spiderman 02.12.2008 18:46

Wat willste denn?
das "waituntil" abbrechen? - siehe post von Lester (mit Anmerkung von Xeno)

Zitat:

weiß ich schon längst, wo der Fehler bei dem join Befehl lag
Bei Problemen schreibst du erst ins Forum bevor du nachschlägst?!
Sowas macht man wenn es wirklich kein anderes Mittel gibt. Da du es bereits alleine gelöst hast siehe:
Zitat:

So ... weil mir keiner mehr antwortete, hab ich das jetzt nochmal ausprobiert und es funktioniert
Xeno hats ja ausprobiert - bei ihm läufts! Und der Kerl wird ja ne Ahnung vom scripten haben!
Murrays Idee sind addaction Einträge - wie das funkt steht ja im Guide.
Xenos Idee ist auch bereits aufgeführt. Nun liegt es an dir.
DU must DEINE scripte schreiben. Du kannst nicht erwarten, dass auf dich angepasste Scripte hier angeboten werden.
Hilfestellung - ja, die kannst du erwarten und die wird auch oft ziemlich schnell gewährt!

Ich persönlich finde es schon unverschämt mit welcher Dreistigkeit du versucht, dass andere hier deine Ideen verwirklichen sollen.

Zitat:

Erstmal bitte die Posts ganz lesen, dann hättest du gewusst, warum ich das Skript gepostet habe
Das "waituntil" Script hast du gepostet damit andere dir sagen, was und wo du es eintragen musst. Xeno hat es ja gesagt. Aber es dir nicht in Form einer Beispiel Datei vor den Latz geknallt. Das ist DEINE Aufgabe!
q.e.d: Du willst eine sofortige Scriptlösung (am besten gleich als pbo) damit du auch ja nichts mehr ausprobieren musst! Ich prophezeie dir: Keiner wird sich diese Mühe machen, schon garnicht wenn es so offensichtlich ist, dass du nicht viel Zeit investierst um selber zu suchen - siehe join. Nach dem Motto: erst mal blöd Fragen, es wird mir ja schon so einer die Lösung vor die Füsse werfen.

So, genug off topic!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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