HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-187/)
-   -   Riesiges Problem mit der Lokalität im MP (Ausrüstung) (https://hx3.de/editing-scripting-187/riesiges-problem-lokalitaet-mp-ausruestung-23226/)

Drunken Officer 21.12.2013 23:55

Riesiges Problem mit der Lokalität im MP (Ausrüstung)
 
Bei mir als HOST wird alles völlig sauber ausgeführt. Mein Mitspieler sieht mich in der richtigen Klamotte und den Waffen.
Wenn ich sterbe, verschwindet meine Leiche und desweiteren spawne ich wieder mit der vorher gespeicherten Ausrüstung und ich bekomme wieder die richtigen Klamotten.

Bei meinem Mitspieler ist zu Beginn die Uniform und die Weste richtig, der Rest stimmt nicht. Falsche Waffe, leere Weste und kein Rucksack. Des Weiteren verschwindet die Leiche meines Mitspielers nicht und die Ausrüstung wird nicht gelöscht. Nach dem Spawn ist die Uniform falsch und er hat sie Standartausrüstung.

Ich komme einfach nicht weiter!!

Folgende Sachen laufen ab:

Ich habe die Spieler SP_1 - 8

in der Inti.sqf wird das aufgerufen:
Code:

execVM "scripte\gear\gear.sqf";
weiter gehts mit der gear.sqf:
Code:

if (!isServer) exitWith {};
if (!isNull sp_1) then {execVM "scripte\gear\gear_s1.sqf"};
if (!isNull sp_2) then {execVM "scripte\gear\gear_s2.sqf"};
if (!isNull sp_3) then {execVM "scripte\gear\gear_s3.sqf"};
if (!isNull sp_4) then {execVM "scripte\gear\gear_s4.sqf"};
if (!isNull sp_5) then {execVM "scripte\gear\gear_s5.sqf"};
if (!isNull sp_6) then {execVM "scripte\gear\gear_s6.sqf"};
if (!isNull sp_7) then {execVM "scripte\gear\gear_s7.sqf"};
if (!isNull sp_8) then {execVM "scripte\gear\gear_s8.sqf"};

sleep 3;
execVM "scripte\gear\waffenrespawn.sqf";

jetzt zum Beispiel gear_s2.sqf:
Code:

if (!isServer) exitWith {};
private ["_i"];
removeAllWeapons sp_2;
sp_2 setObjectTextureGlobal [0,"texturen\swatofficer.paa"];
sp_2 addVest "V_TacVest_blk_POLICE";
sp_2 addBackpack "B_AssaultPack_ocamo";
for "_i" from 1 to 7 do {sp_2 addMagazine "30Rnd_65x39_caseless_mag"};
for "_i" from 1 to 10 do {sp_2 addMagazine "1Rnd_HE_Grenade_shell"};
for "_i" from 1 to 7 do {sp_2 addMagazine"1Rnd_SmokeRed_Grenade_shell"};
sp_2 addWeapon "arifle_MX_GL_F";
for "_i" from 1 to 4 do {sp_2 addMAgazine "HandGrenade"};
for "_i" from 1 to 3 do {sp_2 addMAgazine "SmokeShell"};
for "_i" from 1 to 4 do {sp_2 addMagazine "16Rnd_9x21_Mag"};
sp_2 addWeapon "hgun_P07_F";
sp_2 addItem "FirstAidKit";

Waffenrespawn.sqf
Code:

if (!local player) exitWith {};
private ["_rucksack","_rucksackinhalt","_weste","_westeinhalt","_uniforminhalt","_alterSpieler","_weapons","_magazines","_primW","_muzzles",""];
_unit = _this select 0;

waitUntil {!isNull player};
waitUntil {player == player};
while {true} do {
 
    _alterSpieler = player;    //Sichert die ID der momentanen Spielerfigur
 
    waitUntil {!alive player};  //wartet bis Spielerfigur tot
 
    _weapons  = weapons  _alterSpieler; //speichert die Waffen der toten Spielfigur
    _magazines = magazines _alterSpieler; //speichert die Magazine der toten Spielfigur
    _rucksack = unitBackpack _alterSpieler; _klasse = typeOf _rucksack;
    _rucksackinhalt = backpackItems _alterSpieler;
    _weste = vest _alterSpieler;
    _westeinhalt = vestItems _alterSpieler;
    _uniforminhalt = uniformItems _alterSpieler;
    removeallWeapons player;
    _body = _alterSpieler;
    sleep 5;
    deletevehicle _body;
   
    waitUntil {alive player};  //wartet bis Spieler neue Figur hat

    //removeAllItems player;  // entfernt Karte, Kompass usw. des Spielers (deaktiviert)
    removeAllWeapons player;  // entfernt Waffen und Magazine des Spielers
    removeVest player;
    removeBackpack player;
 
    player setObjectTextureGlobal [0,"texturen\swatofficer.paa"];
    {player addMagazine _x} forEach _magazines; //lädt die gespeicherten Magazine
    {player addWeapon  _x} forEach _weapons;  //lädt die gespeicherten Waffen
    player addVest _weste;
    {player addItemToVest _x} forEach _westeinhalt;
    player addbackpack _klasse;
    {player addItemToBackpack _x} forEach _rucksackinhalt;
    {player addItemToUniform _x} forEach _uniforminhalt;
 
 
    //primäre Waffe aktivieren
    _primW = primaryWeapon player;
    if (_primW != "") then {
        player selectWeapon _primW;
        // Falls Waffe einen Granatwerfer hat
        _muzzles = getArray(configFile>>"cfgWeapons" >> _primW >> "muzzles");
        player selectWeapon (_muzzles select 0);
    };


Buliwyf 22.12.2013 00:18

Das geht ja schon in der gear.sqf los... du fragst zwar ab, wenn sp_1 nicht Null ist, dann gear_s1.sqf ausführen usw.

Du fragst ja überhaupt nicht ab, welches Script für welchen Spieler gedacht ist. Mit !isNull legst Du nur fest, wenn der Platz belegt ist, dann soll da Script ausgeführt werden. Das gilt aber für alle und nicht nur für zB sp_1.

Besser:
Code:

if (!isNull sp_1 and player == sp_1) then {execVM "scripte\gear\gear_s1.sqf"};
Funktioniert allerdings nur wenn das nicht auf dem Server ausgeführt wird. Wie auch immer... Dir fehlt die Zuordnung.

Drunken Officer 22.12.2013 00:28

??
Ich hasse es. :confused:

In gear_s2.sqf spreche ich doch Sp_2 an. Also den Spieler mit dem namen sp_2.

Kannst du mir da irgendwie raushelfen?

Pfandgiraffe 22.12.2013 12:58

Für dein gear.sqf nicht auf dem Server sondern auf dem Client aus und alles ist gut.

gear.sqf
Code:

switch (str(player)) do {
    case "sp_1" : {execVM "scripte\gear\gear_s1.sqf"};
    case "sp_2" : {execVM "scripte\gear\gear_s2.sqf"};
    ...
};


Drunken Officer 22.12.2013 14:25

Jo hab ich eben geändert, danke dir. Die gear_1-8.sqf mit
if (!isServer) exitWith {};
oder mit
if (isServer) exitWith {};

Momentan ist es eine gehostete Mission. Aber Dedi sollte mit beachtet werden.


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