3 mesaje
Nou Venit Nou Venit
  • Mesaje: 15
  • Reacții: 5
  • Mesaje utile: 1
  • Medalii

    *Problemă/Întrebare:Licorile Violet si Verzi seconsuma fara timp de asteptare intre folosire.

    *Resursă folosită (sistem/funcție/modificare):fix-potiuni-folosesti-deja-acest-efect-t2843.html

    *Syserr:

    *Fișier(e) cu problema (link pastebin / code):

    *Poze / Video:
    Rezolvat de Uriel » 26 Ian 2026, 16:50
    AI 

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

    Medalii

    Avatar utilizator
    Robot
    Robot

    Mesaj de Uriel »

    Mihai Chitea scrie: *Problemă/Întrebare:Licorile Violet si Verzi seconsuma fara timp de asteptare intre folosire.

    *Resursă folosită (sistem/funcție/modificare):fix-potiuni-folosesti-deja-acest-efect-t2843.html

    *Syserr:

    *Fișier(e) cu problema (link pastebin / code):

    *Poze / Video:
    Resursa furnizată de tine (fix-potiuni-folosesti-deja-acest-efect-t2843.html) abordează o problemă diferită, legată de mesajul "Folosești deja acest efect" pentru poțiunile de tip buff, nu de cooldown-ul poțiunilor de HP/SP (Licori Violet/Verzi).

    Pentru a rezolva problema cu lipsa timpului de așteptare între folosirea Licorilor Violet și Verzi, trebuie să verifici următoarele în sursa game:

    1. **Valoarea `g_dwPotionCooltime`**:
    Asigură-te că variabila globală `g_dwPotionCooltime` este definită și are o valoare mai mare decât 0 (de exemplu, 3000 pentru 3 secunde) în fișierul main.cpp sau game.cpp din sursa game.
    Code:
        // Exemplu în main.cpp sau game.cpp
        DWORD g_dwPotionCooltime = 3000; // 3000 milisecunde = 3 secunde
        
    2. **Apelul `CanUsePotion()` în `CHARACTER::UseItemEx`**:
    Verifică dacă funcția `CanUsePotion()` este apelată înainte de a folosi poțiunea de tip `ITEM_TYPE_POTION` în funcția `CHARACTER::UseItemEx` din char_item.cpp.
    Code:
        // În char_item.cpp, în funcția CHARACTER::UseItemEx
        case ITEM_TYPE_POTION:
        {
            if (!CanUsePotion()) // Această verificare este crucială
                return false;
    
            Potion(pkItem);
            return true;
        }
        
    3. **Implementarea `CHARACTER::CanUsePotion()` și `CHARACTER::SetPotionCooltime()`**:
    Asigură-te că aceste funcții sunt implementate corect în char.cpp (sau char_item.cpp) și că `SetPotionCooltime()` este apelată după folosirea poțiunii în `CHARACTER::Potion`.
    Code:
        // În char.cpp (sau char_item.cpp)
        bool CHARACTER::CanUsePotion()
        {
            if (m_dwPotionCooltime > get_dword_time())
            {
                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You must wait before using another potion."));
                return false;
            }
            return true;
        }
    
        void CHARACTER::SetPotionCooltime()
        {
            m_dwPotionCooltime = get_dword_time() + g_dwPotionCooltime;
            TPacketGCPotionCooltime p;
            p.bType = POTION_COOLTIME_TYPE_HP_SP;
            p.dwCooltime = g_dwPotionCooltime;
            if (GetDesc())
                GetDesc()->Packet(&p, sizeof(p));
        }
    
        void CHARACTER::Potion(LPITEM pkItem)
        {
            // ... logica de aplicare HP/SP
            if (pkItem->GetProto()->GetValue(0) == 0) // Pentru poțiuni standard HP/SP
            {
                // ... aplică HP/SP
                if (g_dwPotionCooltime > 0)
                {
                    SetPotionCooltime(); // Setează cooldown după utilizare
                }
            }
            // ...
        }
        
    Te rog să verifici dacă `g_dwPotionCooltime` este setat corect și dacă apelul `CanUsePotion()` este prezent în `CHARACTER::UseItemEx` pentru `ITEM_TYPE_POTION`.
    Notă: Acesta este un răspuns generat de AI și poate conține erori. Vă rugăm să-l tratați ca atare.

    Link-uri utile:

    - 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 gata să te ajute! Click aici
    See full signature
    Nou Venit Nou Venit
  • Mesaje: 15
  • Reacții: 5
  • Mesaje utile: 1
  • Medalii

    Avatar utilizator
    Nou Venit
    Nou Venit

    Mesaj de Mihai Chitea »

    rezolvat !

    🔥 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!
    Suntem aproape: 
    Robot Discord
    Roboțelu'
    Anunț
    Închis

    Înapoi la “Probleme rezolvate”

    Informații

    Utilizatori ce navighează pe acest forum: Niciun utilizator înregistrat și 2 vizitatori

    Discord ID copiat: