HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing (https://hx3.de/editing-139/)
-   -   nachträglicher respawn kfz (https://hx3.de/editing-139/nachtraeglicher-respawn-kfz-16049/)

DirtyHarryTPC 15.04.2009 09:33

nachträglicher respawn kfz
 
tach auch

ich komm direkt zur sache ;)
habe ein script das im laufe einer mission Fahrzeuge an bestimmten stellen erstellt, diese sollen nun auch respawnen wenn sie zerstört wurden.
Wie könnte man das machen ? respawn scripte hab ich genug :D.

erstellen von Fahrzeugen sieht zb. so aus

tank1 = "M1Abrams" createVehicle [0,0]; tank1 setDir 0.000000; tank1 setPos [9665.372070, 9787.235352, 0];


MFG Harry

Buliwyf 15.04.2009 11:26

Viele Wege führen nach Rom... ein Traum wäre natürlich gewesen, wenn der Befehl respawnVehicle funktionieren würde... aber BIS wäre nicht BIS wenn sie nicht immer wieder diese kleinen Steinchen in den Weg legen würde... :zahn:

Wenn Du sagst, Du hättest schon geügend Respawnscripte, was möchtest Du dann noch hören? Du brauchst Halt eine Schleife, in der der Zustand Deines Fahr-/Flugzeugs abgefragt wird... wenn kaputt, dann neu... oder was auch immer für Kritierien mit aufnehmen möchtest... :confused:

Das Ganze sollte im MP vom Server überwacht werden.

Ansonsten findest Du auch im Editing Guide von Mr-Murray auf Seite 235 ein Script.

DirtyHarryTPC 15.04.2009 11:45

hmm leider kann ich mit der antwort nix anfangen :D
haste vieleicht ein beispiel ?

Garstiger Hobbit 15.04.2009 13:51

Also ich würd das so machen.

Code:

_tank1 = "M1Abrams" createVehicle [0,0];
_tank1 setDir 0.000000;
_tank1 setPos [9665.372070, 9787.235352, 0];
_tank1 setvehicleinit "handle=[this,240] execVM ""Vehiclerespawn.sqf""";
processInitCommands;

so sollte das funzen mit dem Respawn der später erstellten Fahrzeuge.

Buliwyf 15.04.2009 16:49

Code:

private ["_vcl","_vnm","_type","_pos","_dir"];
if (not isServer) exitWith {};
_vcl = _this select 0;
_vnm = _this select 1;
_type = typeOf _vcl;
_pos = getpos _vcl;
_dir = getdir _vcl;

while {true} do {
sleep 30;
if (not alive _vcl) then {
deleteVehicle _vcl;
sleep 1;
_vcl = objNull;
_vcl = _type createvehicle _pos;
_vcl setPos _pos;
_vcl setDir _dir;
call compile format ["%1 =_vcl;publicVariable '%1';", _vnm];
_vcl setVehicleInit "this execVM 'vehicleRespawn.sqf';";
processInitCommands;
};};

Hier mal eine kleine Grundstruktur! das Script nennt sich vehicleRespawn.sqf und wird bei dem neu erstellten Fahrzeug wieder aufgerufen...

DirtyHarryTPC 15.04.2009 16:50

das hir is mal der aufruf vom respawn

tmp = [_vehicle,_spawnPosition,_respawnDelay] execVM "vehicleRespawnposition.sqf"

wie bekomm ich den da rein ?

DirtyHarryTPC 15.04.2009 16:53

@ Buliwyf

wenn du noch einbauen könntest das er mit namen wieder respawnt wäre das gut , denn einige Fahrzeuge dürfen nur von bestimmten leuten benutzt werden.:p

DirtyHarryTPC 15.04.2009 17:12

hm egal was ich mache , kein respawn :komisch:

naja dann müssen die leute beim nexten arma.de coop abend eben aufpassen ;)

Garstiger Hobbit 15.04.2009 18:13

Probier es mal damit.

So in der art habe ich das in einer meiner Missionen.
Sollte auch funktionieren.

Fhz erstellen.
Code:

_tank1 = "M1Abrams" createVehicle [0,0];
_tank1 setDir 0.000000;
_tank1 setPos [9665.372070, 9787.235352, 0];
_tank1 setvehicleinit "tank1=this;handle=[this,240,10] execVM ""respawn.sqf""";
_tank1 setvehiclevarname "tank1";
processInitCommands;

respawn.sqf
Code:

if (!isServer) exitWith{};
_vehicle = _this select 0;
_delay = _this select 1;
_rate = _this select 2;
_empty = true;
_disabled = false;
_startpos = getpos _vehicle;
_startdir = getdir _vehicle;
_type = typeof _vehicle;
_name = vehicleVarName _vehicle;
if (_rate == 0)exitWith{};

while {true} do {
    sleep (_delay + random 15);
    _empty = true;
    _crew = crew _vehicle;
    if (({alive _x} count _crew) > 0) then {_empty = false;};
   
    _disabled = false;
    if (damage _vehicle > 0.9) then {
        _disabled = true;
    };
   
    if ((_disabled && _empty) || !(alive _vehicle)) exitWith {
        sleep 0.1;
        deletevehicle _vehicle;
        sleep 0.5;
        _newveh = _type createvehicle _startpos;
        _newveh setpos _startpos;
        _newveh setdir _startdir;
        if(_name !="")then{
        _init= format ["%1=this",_name];
        _newveh setvehiclevarName format["%1",_name];
        _newveh setvehicleinit _init;
        processInitCommands;
        };       
        hobbit = [_newveh, _delay, _rate -1] execVM "respawn.sqf";
    };
};

Das script respawn.sqf ist ne Lösung mit Namen des Fhz und noch begrennzetem Respawn.

DirtyHarryTPC 15.04.2009 18:42

ok wer ich machen danke , aber heut schaff ich das nich mehr :D

DirtyHarryTPC 15.04.2009 18:52

hat mich fertig gemacht und musste ez doch kuken :D
ich sag nur :danke:

besser könnts nich klappen.


MFG HARRY


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