1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Do: 22 Mai 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    Kisten in Häusern buggen weg

    • moeck
    • 3. April 2017 um 11:08
    • Geschlossen
    • Erledigt
    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 3. April 2017 um 11:08
      • #1

      Moin,

      aktuell haben wir folgendes Problem. Bei einigen Häusern gehen die platzierten Kisten kaputt. Es scheint nach den bisherigen Erkenntnissen sich immer wieder um die selben Häuser zu handeln. Bisher habe ich noch keinen Anhaltspunkt gefunden warum die Kisten wegbuggen. Zum Teil kauft ein Spieler das Haus platziert die Kiste und kann auch darauf zugreifen. Nach einem Disconnect bzw. Server Restart ist die Kiste dann nicht mehr vorhanden. In der DB finde ich aber die Kiste inklusive Inhalt noch zu mindestens so lange kein weiterer Restart erfolgt ist. Danach wurde die Kiste inkl. I-Inventar auch in den DB gelöscht. Wenn der Spieler dann eine neue Kiste platziert kann er zu mindestens auf das T-Inventar zugreifen aber das ist keine befriedingten Lösung ;) . Achja wir haben die Anzahl der möglichen Kisten von ehemals 4 auf eine reduzierte um den Effekt etwas abzuschwächen.

      Ich poste hier mal das Script zum Platzieren der Kiste beim Connect.

      C
      /*
          BLAH BLAH
          I LOVE NOTEPAD++ GET OVER IT
          BLAH!
      */
      private["_house","_houseID","_containers","_query"];
      _house = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
      if(isNull _house) exitWith {systemChat "House null";};
      _houseID = _house getVariable["house_id",-1];
      if(_houseID == -1) exitWith {systemChat "HouseID invalid";};
      
      _containers = _house getVariable ["containers",[]];
      
      systemChat format["Number of containers found: %1",count _containers];
      _arr = [];
      {
          _className = typeOf _x;
          _weapons = getWeaponCargo _x;
          _magazines = getMagazineCargo _x;
          _items = getItemCargo _x;
          _backpacks = getBackpackCargo _x;
          
          _arr pushBack [_className,[_weapons,_magazines,_items,_backpacks]];
      } foreach _containers;
      
      _arr = [_arr] call DB_fnc_mresArray;
      _query = format["UPDATE houses SET containers='%1' WHERE id='%2'",_arr,_houseID];
      waitUntil{!DB_Async_Active};
      [_query,1] call DB_fnc_asyncCall;
      //systemChat "Query ran?";
      Alles anzeigen

      Gruß,

      moeck

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • Shinji
      Profi
      Reaktionen
      576
      Trophäen
      10
      Beiträge
      778
      • 3. April 2017 um 11:11
      • #2

      Hmm, zeig mal die containerInit ~ dass hier is nix besonders nur das Speichern für die DB.

      Software Entwickler -
      Präzises Rätselraten, basierend auf unzuverlässigen Daten und fragwürdigem Wissen der Auftraggeber.

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 3. April 2017 um 11:16
      • #3

      bin gerade am suchen nach der richtigen Datei

      C
      /*
          Author: Bryan "Tonic" Boardwine
          
          Description:
          Fetches all the players houses and sets them up.
      */
      private["_query","_houses"];
      if(_this == "") exitWith {};
      
      _query = format["SELECT pid, pos, inventory, containers FROM houses WHERE pid='%1' AND owned='1'",_this];
      waitUntil{!DB_Async_Active};
      _houses = [_query,2,true] call DB_fnc_asyncCall;
      
      _return = [];
      {
          _pos = call compile format["%1",_x select 1];
          _house = nearestBuilding _pos;
          //_house = (nearestObjects[_pos, ["House_F"],12] select 0);
          _house allowDamage false;
          _containers = [];
          _house setVariable["slots",[],true];
          if(!isNil {(_house getVariable "containers")}) then {
              {if(!isNull _x) then {deleteVehicle _x;};} foreach (_house getVariable "containers");
          };
          
          _trunk = [_x select 2] call DB_fnc_mresToArray;
          if(typeName _trunk == "STRING") then {_trunk = call compile format["%1", _trunk];};
          _containerData = [_x select 3] call DB_fnc_mresToArray;
          if(typeName _containerData == "STRING") then {_containerData = call compile format["%1", _containerData];};
          _house setVariable["Trunk",_trunk,true];
          {
              if(count _x == 0) exitWith {}; //No containers / items.
              _className = _x select 0;
              _weapons = (_x select 1) select 0;
              _magazines = (_x select 1) select 1;
              _items = (_x select 1) select 2;
              _backpacks = (_x select 1) select 3;
              
              //Setup the variables
              _positions = [_house] call life_fnc_getBuildingPositions;
              _pos = [0,0,0];
              
              {
                  _slots = _house getVariable ["slots",[]];
                  if(!(_forEachIndex in _slots)) exitWith {
                      _slots pushBack _forEachIndex;
                      _house setVariable["slots",_slots,true];
                      _pos = _x;
                  };
              } foreach _positions;
              
              if(_pos isEqualTo [0,0,0]) exitWith {};
              
              _container = createVehicle[_className,_pos,[],0,"NONE"];
              waitUntil{!isNil "_container"};
              _container setPosATL _pos;
              //_container enableSimulation false;
              
              _containers pushBack _container;
              clearWeaponCargoGlobal _container;
              clearItemCargoGlobal _container;
              clearMagazineCargoGlobal _container;
              clearBackpackCargoGlobal _container;
              //Add weapons to the crate.
              {
                  _weaponCount = (_weapons select 1) select _forEachIndex;
                  _container addWeaponCargoGlobal [_x,_weaponCount];
              } foreach (_weapons select 0);
              
              //Add magazines
              {
                  _magazineCount = (_magazines select 1) select _forEachIndex;
                  _container addMagazineCargoGlobal [_x,_magazineCount];
              } foreach (_magazines select 0);
                  
              //Add items
              {
                  _itemCount = (_items select 1) select _forEachIndex;
                  _container addItemCargoGlobal [_x,_itemCount];
              } foreach (_items select 0);
              
              //Add backpacks
              {
                  _backpackCount = (_backpacks select 1) select _forEachIndex;
                  _container addBackpackCargoGlobal [_x,_backpackCount];
              } foreach (_backpacks select 0);
              
          } foreach _containerData;
          
          _house setVariable["containers",_containers,true];
          _return pushBack [_x select 1,_containers];
      } foreach _houses;
      
      missionNamespace setVariable[format["houses_%1",_this],_return];
      Alles anzeigen

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • nflug
      Nerd
      Reaktionen
      225
      Trophäen
      9
      Beiträge
      781
      • 3. April 2017 um 11:20
      • #4

      Wie siehts aus sind die Häuser selber Platziert oder die originalen von altis

      #MAKE_ARMA_NOT_WAR

      ⥴ Scripts made with love

      Why do programmers work in dark rooms?

      Because light attracts bugs...

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 3. April 2017 um 11:22
      • #5

      Ich sehe gerade, dass das alles in 5.x umgeschrieben ist. Vielleicht kann ich das einfach übernehmen ^^

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 3. April 2017 um 11:23
      • #6

      sind nur orginale Häuser, platzierte kann man zwar kaufen aber keine Kisten setzen

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • Shinji
      Profi
      Reaktionen
      576
      Trophäen
      10
      Beiträge
      778
      • 3. April 2017 um 11:24
      • #7

      Interessant ist der Part hier:

      Code
      _trunk = [_x select 2] call DB_fnc_mresToArray;
       if(typeName _trunk == "STRING") then {_trunk = call compile format["%1", _trunk];};
       _containerData = [_x select 3] call DB_fnc_mresToArray;
       if(typeName _containerData == "STRING") then {_containerData = call compile format["%1", _containerData];};
       _house setVariable["Trunk",_trunk,true];

      Okay, versuch mal spaßenshalber Diag_logs zu machen o.o unter folgender Zeile:

      _house setVariable["Trunk",_trunk,true];

      Diag_log format ["### %1",_containerData];

      Und mal ein Haus mit container laden lassen was verbuggt wäre etc.

      Software Entwickler -
      Präzises Rätselraten, basierend auf unzuverlässigen Daten und fragwürdigem Wissen der Auftraggeber.

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 3. April 2017 um 11:27
      • #8

      Werde ich heute abend mal versuchen. Mal schauen ob ich was in den Logs sehe

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • ZorG
      Amateur
      Reaktionen
      84
      Beiträge
      276
      • 3. April 2017 um 11:54
      • #9

      Nachgefragt, meinst Du mit den selben Häusern die gleichen nach Classname oder die gleichen an einem Standort?

      Falls Standort, ist das Haus stellenweise etwas in den Boden versunken?

      Versuch mal folgendes:

      C: fn_fetchPlayerHouses.sqf
      ... 
      if(_pos isEqualTo [0,0,0]) exitWith {};
      
      _container = createVehicle[_className,[0,0,500],[],0,"NONE"]; //<- NEU
       waitUntil{!isNil "_container"};
      _container allowDamage false; // <- NEU
      _container setPosATL _pos;
       //_container enableSimulation false;
      ...

      Könnte sein, das die Kisten beim erstellen sich zerstören.

      Einmal editiert, zuletzt von ZorG (3. April 2017 um 12:04)

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 3. April 2017 um 12:19
      • #10

      Ich meinte den Standort. ich werde es testen ;)

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • nflug
      Nerd
      Reaktionen
      225
      Trophäen
      9
      Beiträge
      781
      • 3. April 2017 um 13:20
      • #11

      Also wenn es selbst gesetzte Häuser sind kann es sein das Diese zum 0 Punkt gespawnt werden wenn du das Haus in Editor gesetzt hast.

      #MAKE_ARMA_NOT_WAR

      ⥴ Scripts made with love

      Why do programmers work in dark rooms?

      Because light attracts bugs...

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 3. April 2017 um 13:37
      • #12

      Alles klar, gut zu wissen, trifft aber bei uns nicht zu

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 3. April 2017 um 16:22
      • #13

      Hi,

      habe die Änderungen jetzt mal getestet und es sieht ganz gut aus. Die Kisten stehen zwar nicht sondern liegen auf der Seite aber das ist ja erstmal egal ;)

      Gruß,

      moeck

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • ZorG
      Amateur
      Reaktionen
      84
      Beiträge
      276
      • 3. April 2017 um 21:07
      • #14

      Dann spawn die vielleicht zu Tief. ^^

      Kannst ja noch folgendes ändern:

      _container setPosATL [_pos select 0,_pos select 1,(_pos select 2) +0.5];

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 4. April 2017 um 08:30
      • #15

      Jo werde das auf jeden fall mal austesten ;). kann aber auch sein, dass sie links oder rechts gegen die Wände buggen.

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Benutzer online in diesem Thema

    • 1 Besucher

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™