Einzelnen Beitrag anzeigen
Alt 19.08.2009, 13:43   #1 (permalink)
NemesisoD
Newbie
 
Benutzerbild von NemesisoD
 
Registriert seit: 15.06.2008
Ort: Ruhrgebiet
Alter: 38
Beiträge: 46
Standard HQ auspacken (MP)

Hallo zusammen,

ich baue gerade an einer Coop Mission.
In der Mission gibt es zwei MHQ mit dem man zum Ziel fahren kann um dort dann hinzu teleportieren.
Die MHQ sollen aber auch auspackbar sein, also soll eine Kleine Basis mit Sanitätszelt, Munitionskiste und einer MG-Stellung etc. erstellt werdem.
Auf der Karte soll die Position des MHQ angezeigt werden.

Hab also folgendes gemacht:
(Namen sind Fett geschrieben)

1.) zwei Marker (mhq1,mhq2) erstellt und die MHQs (respawnveh1,respawnveh2)
2.) Die Marker werden auf dem Clienten im Sekunden Takt auf respawn1/respawn2 verschoben.
3.) in der init.sqf habe ich eingefügt:
Code:
respawn1 = respawnveh2;
respawn2 = respawnveh2;
respawnammobox1 = objNull;
respawnnest1 = objNull;
respawnammobox1 = objNull;
respawnnest1 = objNull;
MHQ1ID = respawnveh1 addAction["Basis bauen","script\unpackmhq.sqf",[1]];
MHQ2ID = respawnveh2 addAction["Basis bauen","script\unpackmhq.sqf",[2]];
Das unpackmhq.sqf Skript:
Code:
// Unpack MHQ
if (not (local server)) exitwith {};
_veh = _this select 0;    // an diesem Object "hängt" der Action-Befehl
_unit = _this select 1;    // diese Einheit führt den Action-Befehl aus
_id = _this select 2;    // dies ist die ID des Action-Befehls
_arg = _this select 3;    // Dies sind die Parameter des Action-Befehls

_pos = getpos _veh;
_dir = getdir _veh;

deletevehicle _veh;
_newveh = "LAV25_HQ_unfolded" createVehicle (_pos);
_newveh setdir _dir;

_ammopos = [(_pos select 0) - sin(_dir),(_pos select 1) - cos(_dir), (_pos select 2)];
_ammobox = "USSpecialWeaponsBox" createVehicle (_ammopos);
_ammobox setdir _dir;

_mgpos = [(_pos select 0) - 2*sin(_dir),(_pos select 1) - 2*cos(_dir), (_pos select 2)];

_mgnest = "USMC_WarfareBMGNest_M240" createVehicle (_mgpos);
_mgnest setdir _dir;

if ((_arg select 0) == 1) then
{
  respawn1 = _newveh;
  respawnammobox1 = _ammobox;
  respawnnest1 = _mgnest;
  "MHQ1" setMarkerText "Base1";
};
if ((_arg select 0) == 2) then
{
  respawn2 = _newveh;
  respawnammobox2 = _ammobox;
  respawnnest2 = _mgnest;
  "MHQ2" setMarkerText "Base2";
};

TitleText [Format["Basis%1 wurde errichtet",(_arg select 0)],"Plain down"];

ID = _newveh addaction["Basis einpacken","script\packMHQ.sqf",[(_arg select 0)]];
Und das packmhq.sqf Skript:
Code:
// PackMHQ
if (not (local server)) exitwith {};
_veh = _this select 0;    // an diesem Object "hängt" der Action-Befehl
_unit = _this select 1;    // diese Einheit führt den Action-Befehl aus
_id = _this select 2;    // dies ist die ID des Action-Befehls
_arg = _this select 3;    // Dies sind die Parameter des Action-Befehls

_pos = getpos _veh;
_dir = getdir _veh;

deletevehicle _veh;
_newveh = "LAV25_HQ" createVehicle (_pos);
_newveh setdir _dir;



if ((_arg select 0) == 1) then
{
  respawn1 = _newveh;
  deletevehicle respawnammobox1;
  deletevehicle respawnnest1;
  respawnammobox1 = objNull;
  respawnnest1 = objNull;
  "MHQ1" setMarkerText "MHQ1";
};
if ((_arg select 0) == 2) then
{
  respawn2 = _newveh;
  deletevehicle respawnammobox2;
  deletevehicle respawnnest2;
  respawnammobox2 = objNull;
  respawnnest2 = objNull;
  "MHQ2" setMarkerText "MHQ2";
};

TitleText [Format["Basis%1 wurde mobilisiert",(_arg select 0)],"Plain down"];

ID = _newveh addaction["Basis bauen","script\unpackMHQ.sqf",[(_arg select 0)]];
Im Editor und im Multiplayer(wenn ich alleine auf der Map bin) funktioniert auch alles wunderbar, aber sobald sich jemand verbindet Blinkt der MHQ Marker auf der Karte im sekunden takt, sobald das MHQ entpackt wird. Und wenn man sich dann Zum Marker Teleportieren möchte landet man im Meer.

Danke schonmal für eure Hilfe.

Gruß
NemesisoD
NemesisoD ist offline