5 mesaje
  • Mesaje: 17
  • Reacții: 3
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • [ID Discord]
  • Contact:

    Medalii

    *Problemă: Bonusuri METINE SI BOSSI

    *Resursă folosită (sistem/funcție/modificare): bonus-tare-impotriva-bossilor-metinelor-t796.html

    *Syserr:gol

    *Folosesc serverfiles: stabil-serverfiles-clean-like-metin2009-t146.html

    *Poze / Video:Problemă Bonusuri METINE SI BOSSI - Mesaj 1 - Imagine 1

    🔥 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ț
    Robot Robot
  • Mesaje: 122
  • Reacții: 0
  • Mesaje utile: 0
  • Status: Sunt doar un Bot :)
  • Regat: Shinsoo
  • Contact:

    Medalii

    Avatar utilizator
    Robot
    Robot

    Mesaj de Uriel »

    Salut, robertm99_!

    Îți recomand câteva link-uri utile care te pot ajuta să rezolvi problema mai rapid:

    - Alte probleme rezolvate
    - Fixuri Metin2
    - Tutoriale
    - Cum resetez parola MySQL
    - Compilare sursă Metin2
    - Lista FreeBSD pentru compilare


    Și dacă vrei ajutor direct, te așteptăm pe serverul nostru de Discord — chat activ, suport live și o comunitate faină gata să te ajute! Pentru a intra pe serverul de Discord: Click aici
  • Mesaje: 6
  • Reacții: 4
  • Mesaje utile: 0
  • Medalii

    Mesaj de Vanille »

    You miss AFFECT_DICT = {
  • Mesaje: 17
  • Reacții: 3
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • [ID Discord]
  • Contact:

    Medalii

    Acum le-am rezolvat apare pe iteme dar nu se aplica bonusurile, de unde poate fi ?
  • Mesaje: 25
  • Reacții: 21
  • Mesaje utile: 5
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • Medalii

    Mesaj de Dintisor »

    Salut

    📌 Problema: în tooltip la item apar bonusurile ca UNKNOWN_TYPE[95] și UNKNOWN_TYPE[96], în loc să apară textul „Tare împotriva metinelor” / „Tare împotriva bossilor”.

    Cauza

    Clientul tău nu știe cum să afișeze bonusurile noi pe care le-ai adăugat în sursă.
    Pe server ele există (funcționează numeric), dar în client lipsesc definițiile pentru tipurile 95 și 96.

    Soluție

    Trebuie să sincronizezi clientul cu serverul, adăugând noile tipuri de bonus în fișierele clientului:

    1. În locale/ro/locale_game.txt (sau locale_string.txt în funcție de client)

    Adaugă liniile:
    95 Tare împotriva metinelor
    96 Tare împotriva șefilor (bossilor)
    2. În uitooltip.py sau localeInfo.py (în client, în Python)

    Caută lista unde sunt definite bonusurile (de obicei ceva ca AFFECT_DICT sau BONUS_NAMES).
    Adaugă:
    "AFFECT_DICT" : {
    ...
    95 : "Tare împotriva metinelor",
    96 : "Tare împotriva șefilor (bossilor)",
    }
    sau, dacă sunt în BONUSNAMES, atunci:
    BONUSNAMES = {
    ...
    95 : "Tare împotriva metinelor",
    96 : "Tare împotriva șefilor (bossilor)",
    }
    3. Recompilează / repachetează clientul

    Dacă fișierele sunt în arhiva root.epk/eix, extrage-le cu EterNexus (sau ce folosești), editează-le și împachetează-le la loc.

    Observ ca ai rezolvat aceasta parte, pentru aplicarea bonusuriolor fa urmatoarele verificari/modificari

    Cauza

    Ai adăugat bonusurile în proto + client, dar în sursa serverului nu există codul care:

    recunoaște bonusurile APPLY_ATTBONUS_METIN și APPLY_ATTBONUS_BOSS (95 și 96),

    și le aplică la damage în funcție de tipul mobului (metin sau boss).

    Soluția (partea de sursă server)

    Trebuie să modifici fișierele din game/src:

    1. char_battle.cpp (sau battle.cpp în unele surse)

    Aici se calculează damage-ul. Vei găsi funcții precum CalcAttackDamage sau ComputeBattleDamage.

    Caută partea unde se aplică bonusurile, de obicei ceva ca:
    iAtk += iAtk * (GetPoint(POINT_ATTBONUS_MONSTER) / 100);
    Trebuie să adaugi:
    // Bonus tare împotriva metinelor
    if (pkVictim->IsStone())
    iAtk += iAtk * GetPoint(POINT_ATTBONUS_METIN) / 100;

    // Bonus tare împotriva bossilor
    if (pkVictim->IsBoss())
    iAtk += iAtk * GetPoint(POINT_ATTBONUS_BOSS) / 100;
    2. char.h / char.cpp

    Asigură-te că ai define-urile pentru noile puncte:
    POINT_ATTBONUS_METIN,
    POINT_ATTBONUS_BOSS,
    Și în char.cpp, în constructor, inițializează-le la 0.

    3. utils.h sau constants.cpp (în funcție de structură)

    Adaugă în enum-ul cu bonusuri (de ex. EApplyTypes):
    APPLY_ATTBONUS_METIN = 95,
    APPLY_ATTBONUS_BOSS = 96,
    4. mob.cpp / mob.h

    Trebuie să existe metode pentru a recunoaște boss/metin.
    Dacă nu există, adaugă:
    bool CHARACTER::IsBoss() const {
    return (GetMobTable().rank == MOB_RANK_BOSS || GetMobTable().rank == MOB_RANK_KING);
    }

    bool CHARACTER::IsStone() const {
    return GetMobTable().rank == MOB_RANK_STONE;
    }
    După recompilare

    Recompilează game și db.

    Pune noul binar pe server.

    Testează un item cu bonus +20% și verifică damage-ul față de boss/metin.


    Spor !!

    🔥 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ă probleme”

    Informații

    Utilizatori ce navighează pe acest forum: nowicanseeyou și 1 vizitator

    Discord ID copiat: