*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:
📢 Resurse Metin2 Premium!
Zeci de resurse Metin2 Premium - exclusive și 100% funcționale începând cu 15.99€!.
Vezi resursele Cumpără premium
Premium
Anunț
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).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:
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
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;
}
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
}
}
// ...
}
rezolvat !
📢 Resurse Metin2 Premium!
Zeci de resurse Metin2 Premium - exclusive și 100% funcționale începând cu 15.99€!.
Vezi resursele Cumpără premium
Premium
Anunț
-
Subiecte similare
-
0Răspunsuri1294Vizualizăride ZuZuR
-
0Răspunsuri456Vizualizăride [HF]White
-
0Răspunsuri290Vizualizăride [HF]White
-
2Răspunsuri1053Vizualizăride [HF]White
-
0Răspunsuri1000Vizualizăride kolenmg123
-
Informații
Utilizatori ce navighează pe acest forum: Niciun utilizator înregistrat și 2 vizitatori
Discord ID copiat:


