HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Respawn im Fahrzeug (https://hx3.de/editing-scripting-167/respawn-fahrzeug-21353/)

spaccy 03.03.2012 13:03

Respawn im Fahrzeug
 
Hallo Leutz,

hab mal die Foren durchsucht aber kaum was zu dem Thema gefunden. Stellt euch bitte vor ihr sterbt im Fahrzeug wollt da auch wieder spawnen. Ich hab da mal ein kleines Script erstellt, es klappt aber leider nur im Ansatz:

reposition.sqf:

Code:


if (!(local player)) exitWith {};


while {true} do
    {
    _playerA = player;

    waitUntil {!alive player};

    //speichert das Auto in dem der Spieler sitzt
      _Veh = assignedVehicle _playerA;

    //speichert die Sitzposition des Spielers
    _Pos = assignedVehicleRole _playerA;

    //Anzeige ob alles gespeichert wurde
    //hint format ["%1 %2", _veh, _Pos];

    sleep 5;

    waitUntil {alive player};

    _playerB = player;

    if ((_Pos select 0) == "Driver") then {_playerB moveindriver _veh;};
    if ((_Pos select 0) == "Gunner") then {_playerB moveingunner _veh;};
    if ((_Pos select 0) == "Cargo") then {_playerB moveincargo _veh;};
    };

Das Script soll erstmal nur bei einem bewaffneten Hummww funktionieren, es klappt aber nur beim "Driver", ansonsten spawnt man "Instant" neben dem Fahrzeug. Kann mir da bitte mal jemand weiterhelfen?


Gruß
spaccy

Moerderhoschi 03.03.2012 14:53

Ein Fehler der mir da jetzt mal auffaelt ist dass du bei dieser Art der Abfrage nicht Gunner sondern Turret nehmen muesstest. Da man als gunner im HMMWV bei assignedVehicleRole Player naemlich ["Turret",[0]] zureckbekommt.

Also muesste die Zeile lauten:
Code:

if ((_Pos select 0) == "Turret") then {_playerB moveingunner _veh;};

Desweiteren ueberleg ich mir gerade ob die Abfrage mit AssignedVehicle & AssignedVehicleRole vllt. nicht der beste Ansatz ist sowas zu loesen. Eine direkte abfrage mit if (gunner vehicle player == player) then {_schuetze = player} oder so in der Art waere da vllt. die bessere Loesung.

gruß
hoschi

Vienna 03.03.2012 17:43

Wenn er noch die Turret-Abfrage hinzufügt, dann müsste es eigentlich gehen.


if (_Pos select 0 == "Turret") then {player MoveInTurret [_veh, _Pos select 1]};

Das sollte dann auch bei mehreren Schützen wie z.B. in einem Heli funktionieren.

Moerderhoschi 03.03.2012 17:54

Ja sollte so auch gehen.

gruß
hoschi

spaccy 04.03.2012 14:50

Das Script sieht jetzt so aus:

Code:


if (!(local player)) exitWith {};


while {true} do
    {
    _playerA = player;

    waitUntil {!alive player};

    //speichert das Auto in dem der Spieler sitzt
      _Veh = assignedVehicle _playerA;

    //speichert die Sitzposition des Spielers
    _Pos = assignedVehicleRole _playerA;

    sleep 5;

    waitUntil {alive player};

    //die neue Putzfrau
    deleteVehicle _playerA;

    _playerB = player;

    if ((_Pos select 0) == "Driver") then {_playerB moveindriver _veh;};
    if ((_Pos select 0) == "Turret") then {player MoveInTurret [_veh, _Pos select 1]};
    if ((_Pos select 0) == "Cargo") then {_playerB moveincargo _veh;};
    };

Scheint zu funktionieren, hab auf zig verschiedenen Fahrzeugpositionen respawnt und saß nach dem Spawn immer auf dem Platz vor dem Spawn. Ich versteh zwar diese Zeile "player MoveInTurret [_veh, _Pos select 1]" nicht wirklich aber die funzt. Danke für eure super Arbeit.

Gruß
spaccy


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