2 mesaje
  • Mesaje: 92
  • Reacții: 34
  • Mesaje utile: 2
  • Status: Pierd vremea ^.^
  • Server: In curand
  • Regat: Jinno
  • Medalii

    *Descriere:

    *Poze / Video:

    *Link resursă (dacă e cazul): Salut, are cineva fix sau rezolvare , atunci cand dau hit de pe orice carcater arunca mult oponetul...

    📢 Resurse Metin2 Premium!

    Zeci de resurse Metin2 Premium - exclusive și 100% funcționale începând cu 15.99€!.

    Vezi resursele Cumpără premium
    Premium
    Premium
    Anunț
  • Mesaje: 25
  • Reacții: 21
  • Mesaje utile: 5
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • Medalii

    Mesaj de Dintisor »

    Salut,
    Acest lucru se intampla in timp ce dai duel sau si in cazul in care ataci pe cineva din alt regat ?

    Are legătură cu setările de knockback / pushback din sursă sau din fișierele de game.

    Câteva cauze posibile:

    Valoarea de knockback (sau PushDistance)

    În sursa serverului există o funcție ce calculează distanța cu care este împins adversarul după ce primește damage.

    Dacă valoarea este prea mare sau formula de calcul nu e reglată, jucătorii vor fi aruncați prea departe.

    Probleme la skilluri / animații

    Unele skilluri au flag de knockback activ chiar și la hit normal. Dacă nu e configurat corect în skill_proto sau source, poate aplica efectul la fiecare atac.

    Bug din pvp.cpp / battle.cpp

    În fișierele sursă există funcții precum ComputeDamage și Damage, unde se aplică și mișcarea adversarului.

    Caută liniile cu Knockback sau FlyTarget, acolo probabil e setată distanța greșit (ex. 300 în loc de 30).

    Diferențe între client și server

    Dacă clientul are valori diferite la pc2.txt / mob_proto comparativ cu serverul, poate apărea desincronizare la poziționare → personajul pare „aruncat”.

    Mai jos iti voi explica ce sa verifici

    1. Verificare și rezolvare din DB / TXT (fără recompilare sursă)

    skill_proto (în DB sau TXT)

    Deschide skill_proto și verifică la coloanele Flag sau Type.

    Unele skilluri pot avea KNOCKBACK activ chiar și pentru atacuri de bază.

    Dacă vezi la o abilitate normală (ex: NORMAL_HIT) flag-ul de knockback → dezactivează-l.

    mob_proto / player settings

    Pentru caractere (în special PC) nu ar trebui să existe valori de knockback setate.

    Verifică dacă ai cumva setat ceva anormal la câmpurile de mișcare.

    client pc2.txt

    În pc2.txt (sau echivalent, depinde de client), verifică dacă valorile de „speed / move / knockback” sunt normale.

    Dacă clientul are alte valori decât serverul → apare efectul vizual de „zbor la kilometri”.

    Dacă după verificări tot apare problema → mergem la sursă.

    🔹 2. Rezolvare din sursă (C++ / game)

    Fișierele implicate sunt de obicei:

    battle.cpp

    char_battle.cpp

    uneori și pvp.cpp

    Exemplu de cod relevant

    În battle.cpp găsești ceva de genul:
    void battle_end(struct battle * pkBattle)
    {
    ...
    if (bKnockBack)
    {
    int iDist = number(100, 200); // Distanța cu care este împins adversarul
    victim->Knockback(attacker, iDist);
    }
    }
    Ce poți modifica:

    Dacă vrei să reduci distanța, setează valori mai mici:
    int iDist = number(10, 30); // în loc de 100-200
    sau chiar elimini knockback-ul la hit normal:
    // Dezactivezi knockback la atacuri de bază
    // if (bKnockBack)
    // {
    // int iDist = number(100, 200);
    // victim->Knockback(attacker, iDist);
    // }
    Funcția Knockback

    În char.cpp există ceva de genul:
    void CHARACTER::Knockback(CHARACTER* pkAttacker, int iDist)
    {
    // cod care mută targetul
    }
    Poți limita aici distanța maximă:
    if (iDist > 50)
    iDist = 50; // nu împinge mai mult de 50 unități
    🔹 Ce recomand eu

    Prima dată verifică DB și clientul → poate fi doar un flag greșit sau valori diferite între client și server.

    Dacă tot apare bug-ul → modifică în sursă partea de knockback (battle.cpp / char.cpp).

    Succes !!!

    🔥 Hai pe Discord! - Chat activ și support direct

    Te așteptăm și pe serverul de Discord - aici ne-am strâns toată comunitatea de Metin2 din România.

    Alătură-te acum!
    1300+ de membri activi!
    Robot Discord
    Roboțelu'
    Anunț
    Închis

    Înapoi la “Arhivă cereri”

    Informații

    Utilizatori ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator

    Discord ID copiat: