[b]Zelte verbuggt - Des Rätzel Lösung !?[/b]

  • Ich glaube ich wurde gestern erleuchtet und habe einen enormen Fehler gefunden, warum Zelte auf einmal buggy sind.
    Als Grundsatz gilt - "Zelte auf einen ebenen Untergrund stellen" Die Zelte auf schrägen Untergrund funktionieren zwar anfangs, aber dann ist es irgendwann vorbei. Und wie das kommt versuche ich mal zu erklären:


    Dazu muß man wissen, wie das Zelt in der Datenbank eingetragen wird. Ich baue ein Zelt auf und es stehen die Koordinaten original so in der Datenbank: 209,[11416.421,11374.234,2.136e-04]]
    Daraus ergibt sich Folgende Information:[Grad,[Länge,Breite,Höhe]]
    Jetzt bekommt jedes Objekt natürlich eine Nummer in der Datenbank, und die wird nicht wie bei Fahrzeugen einfach der Reihe nach vergeben, sondern wird aus den Koordinaten erstellt.
    Die Nummer (unique_id) dieses Zeltes ist original :1141641137420209
    Ich habe etwas gebraucht um den Sinn dahinter zu verstehen, das geschulte Auge sieht es vielleicht sofort ;)
    Standort: [209,[11416.421,11374.234,2.136e-04]]
    Schlüssel:[Grad,[Länge,Breite,Höhe]]
    unique_id: 1141641137420209 Klingt Logisch oder? :S Wobei die Höhe nicht berücksichtigt wird.
    Das Geheimnis des verbuggten Zeltes liegt einfach in der unique_id, denn diese darf von den Koordinaten nicht abweichen. Ein rutschendes Zelt verändert aber seine Position, die dann auch in der Datenbank verändert wird und somit nicht mehr mit der unique_id übereinstimmt. Ganz besonders sind die in den Klammern gesetzten Zahlen wichtig, da diese nach dem Komma (in der DB ein Punkt) "auf-" oder "abgerundet" werden: 11416[4]11374[2]0209
    Rutscht nun das Zelt von [209,[11416.[421],11374.234,2.136e-04]] um 4 Zentimeter Richtung Osten
    auf [209,[11416.[461],11374.234,2.136e-04]], wird die Zahl nach dem Komma (Punkt) aufgerundet. Die unique_id müßte dann so aussehen:11416[5]1137420209 - aber diese Nummer ist im Gegensatz zu den Koordinaten statisch und bleibt bei: 11416[4]1137420209.
    Folglich legt man einen Gegenstand in ein Zelt, das Laut Datenbank mit diesen Koordinaten (unique_id) nicht existiert.


    Ich habe gestern 17 verbuggte Zelte auf meinem Server wieder aktiviert, indem ich die unique_id mit den Koordinaten angepasst habe und nach Restart - schwupps einwandfrei.
    Das Zelte von Anfang an verbuggt sind ergibt sich wohl aus der direkten Lage oder eines störenden Objektes, das die Koordinaten gleich durcheinander bringt.
    Beim Abbauen eines verbuggten Zeltes wird ja ein nicht existierendes Zelt abgebaut und die Datenbank stellt bei jedem Neustart das laut unique_id existierende wieder hin. Ich denke das es die Hauptursache ist und freue mich über zahlreiche Bestätigungen und weiteren Hinweisen zu diesem Thema von anderen Serverinhabern mit eigener Datenbank.


    Ich hoffe ich konnte ein bisschen Licht ins Dunkle bringen .


    LG RyanAir

    Einmal editiert, zuletzt von RyanAir ()

  • Danke für den Lichtstrahl im DayZ Dschungel der Bugs & dass du dir gedanken gemacht hast.
    Klingt für mich logisch und is nachvollziehbar *thumbs up


    greetz

    who the fuck stole my '70 Challenger...¿

  • Ui gut zu wissen :) Jetzt müsste man nur noch bei den Zelten das "rutschen" ausschalten :) Warum ist da sowas eigentlich eingebaut? Hat das mit der Zerstörung was zu tun?

    [center][/center]

  • Das Rutschen liegt am verkorksten Netcode von BIS. Dort anzusetzen wird also nahezu unmöglich sein. Vielmehr müssen findige Köpfe eine andere Art der Erfassung der entsprechenden Objekte zu machen. Dann darf da halt nicht die Position drin auftauchen, um ein Objekt "einzigartig" in der Datenbank fest zu machen...


  • das lässt sich ganz simpel mit einem php-skript klären...
    koordinaten der zelte gesucht, uniqid angepasst und fertig
    das sind schätzungsweise 50zeilen code ;)


    Na dann .. lass die Finger rauchen! :D

    Greetz de&#039;Baba O0<br />[ Güni&amp;Entä - Ein Herz für eine Pizza! :) ]

  • Ich habe jetzt mal die ganze Zeit die Zelte beobachtet und festgestellt, das wenn ich die unique_id und zusätzlich die Position der Zelte in der Datenbank angepasst habe, dann verrutschten sie auch nicht mehr. Zufall?
    Beispiel: Ich bin ein Typ mit einem Ordnungstick und ich hasse es, wenn ein Zelt schief neben einem Anderen steht, manchmal habe ich es xmal wieder abgebaut um es ordentlich daneben zu stellen.
    Nocheinmal zu Erinnerung farblich makiert:
    [Grad,[Breite,Länge,Höhe]] = unique_id: BreiteLängeHöheGrad wobei die Höhe immer "0" ist und keinen Einfluß hat in der id, wohl aber in den Koordinaten. (hatte ich im ersten Post nicht erwähnt)
    Also kurzerhand das Zelt mit den Daten [182,[11446.421,11374.234,2.136e-04]] und der unique_id 1144641137420182
    Gerade gerückt und angepasst auf [180,[11446.5,11374.0,0]] mit der u-id 1144651137400180 und seit dem scheint es nicht mehr zu rutschen (seit nun meht 10 Tagen keinen Millimeter)
    Nun kann ja nicht jeder Admin das auf dem Server mit "jedem" Zelt machen, dann kommt er wohl zu nichts mehr, aber interessant ist es schon wie ich finde


    LG RyanAir

  • Leider ist das aber falsch. Die unique_id dient nur der Erkennung des Zeltes und wird zu Beginn eben aus der Position berechnet (könnte man aber genauso gut aus anderen Faktoren berechnen). Beim Lesen des Zeltes aus der Datenbank wird diese unique_id von ArmA nur noch als Zelt ID verwendet. Der eigentliche Spawn Vorgang wird dabei NICHT beeinflusst, die Funtkion von BI dafür verwendet ausschließlich Positions Daten, die von dem SQF Script aus der Worldspace der Datenbank berechnet werden.
    Dies findet übrigens in "\z\addons\dayz_server\system\server_monitor.sqf" im Falle eines Standard Servers statt, sollte man mir nicht glauben.


    Das es danach funktioniert ist daher ein Plazebo Effekt und hat mit dem/den Restart(s) zwischen dem Erstellen, bearbeiten und wieder testen zu tun.
    Da muss ich euch leider entäuschen!

  • Natoll und ich hatte mich gerade schon gefreut ! :-\

    Grafikkarte: Geforce GTX 770<br />Prozessor: Intel Core i7-3770 @3.40 GHz<br />Arbeitsspeicher: 16GB<br />Mainboard: MB Gigabyte GA-Z77 D3H<br /><br />Bildschirm: BenQ G2420HD<br />Headset: Logitech G35<br />Maus: Razer Taipan<br />Tastatur: Logitech G110<br /><br />Skype: thunderbird173<br />Steam: dome9800<br /><br />___<br /><br />http://www.seit-seid.de/