Hirdetés

Új hozzászólás Aktív témák

  • killerjohn

    addikt

    válasz tomazin #28279 üzenetére

    Semmi köze sincs a csomagkezelőhöz - arrafelé nem szoktam járni, mert danger zone.
    Arról van szó hogy a játékszerverek valamiért olyan attributumokat küldenek le a kliensnek ami invalid. Tele van a D3 memóriája olyan attribute-okkal amik miatt erősen kiakadt a HUD az 1.0.8 után. Sikerült "megkerülni" a problémát, de csak tegnap éjjel derítettem ki a konkrét okot.

    Egy duplán linkelt listában vannak az attributumok (actor-onként), és ezek között nagyon sok invalid bukkan fel. Ami nem is lehetne ott, mert a game engine hash rutinja nem az adott indexet generálná az adott attributumnak. Ezért be kellett tenni a HUD-ba egy szűrőt, hogy ellenőrizzem hogy érvényesek-e az indexek.

    Ami nagyon vicces, hogy kizárólag barbár karaktereknél látszik ez a hiba a memóriában, a többivel nem sikerült reprodukálni - igaz, hogy különösebben nem foglalkoztam a többivel. A konklúzió, hogy az attribute listáknál 2-3x annyi forgalom van így a kliens és a szerver között emiatt a bug miatt, és isten tudja, milyen vonatkozásai lehetnek még "odabent". Ha erre nincs rendes szűrésük a D3 kliensben, simán lehet hogy emiatt hiszi néha, hogy az actorok máshol vannak, így megsérül a koherencia a server és client state-ek között, így a szerver visszavágja az actort (a játékost) egy olyan korábbi pozícióra, amit a szerver utoljára érvényesként ismert el.

Új hozzászólás Aktív témák