Opublikowano 27 Sierpnia 20231 r Witajcie, Jestem pewien, że wielu z was już doświadczyło jednego z bardziej irytujących błędów - mianowicie, ujemnych wartości punktów życia (HP) i energii (MP) po teleportacji postaci. Kiedy wartość punktów życia lub energii przekraczała pewien zakres, zamiast zobaczyć stan, który mieliśmy wcześniej, widzieliśmy ujemną wartość. Prezentacja błędu: 🧩 Rozwiązanie 📂 Lokalizacja pliku: 'common -> tables.h' 🔍Szukamy: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się 🔄 Zmieniamy: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się Po wprowadzeniu zmian w tables musimy skompilować game oraz db to ważne!
Opublikowano 4 Lutego 20241 r Która wersja jest lepsza? Cytat Witam Pokaże Wam jak usunąć błąd dotyczący skoków HP oraz gdy macie na serwerze ponad 32k HP by po teleportacji nie było na minusie. Błędy HP SKOKI HP Wejdź do char.cpp w /game/src/ Szukaj: case APPLY_MAX_HP: case APPLY_MAX_HP_PCT: case APPLY_MAX_SP: case APPLY_MAX_SP_PCT: Zamień na: #ifdef FIX_ALL_BUG_HP case APPLY_MAX_HP: case APPLY_MAX_HP_PCT: { int i = GetMaxHP(); if(i == 0) break; PointChange(aApplyInfo[bApplyType].bPointType, iVal); } break; case APPLY_MAX_SP: case APPLY_MAX_SP_PCT: { int i = GetMaxSP(); if(i == 0) break; PointChange(aApplyInfo[bApplyType].bPointType, iVal); } break; #else case APPLY_MAX_HP: case APPLY_MAX_SP: case APPLY_MAX_HP_PCT: case APPLY_MAX_SP_PCT: #endif Szukaj: ( są dwa - pamiętaj, żeby edytować tego co jest wyżej w pliku ) linijka około 3100-3300 case POINT_MAX_HP: Zamień na: case POINT_MAX_HP: { SetPoint(type, GetPoint(type) + amount); #ifdef FIX_ALL_BUG_HP int i = GetMaxHP(); #endif int hp = GetRealPoint(POINT_MAX_HP); int add_hp = MIN(3500, hp * GetPoint(POINT_MAX_HP_PCT) / 100); add_hp += GetPoint(POINT_MAX_HP); add_hp += GetPoint(POINT_PARTY_TANKER_BONUS); SetMaxHP(hp + add_hp); #ifdef FIX_ALL_BUG_HP float fRatio = (float)GetMaxHP() / (float)i; PointChange(POINT_HP, GetHP() * fRatio - GetHP()); #endif val = GetMaxHP(); } break; Szukaj: ( są dwa - pamiętaj, żeby edytować tego co jest wyżej w pliku ) linijka około 3100-3300 case POINT_MAX_SP: Zamień na: case POINT_MAX_SP: { SetPoint(type, GetPoint(type) + amount); #ifdef FIX_ALL_BUG_HP int i = GetMaxSP(); #endif int sp = GetRealPoint(POINT_MAX_SP); int add_sp = MIN(800, sp * GetPoint(POINT_MAX_SP_PCT) / 100); add_sp += GetPoint(POINT_MAX_SP); add_sp += GetPoint(POINT_PARTY_SKILL_MASTER_BONUS); SetMaxSP(sp + add_sp); #ifdef FIX_ALL_BUG_HP float fRatio = (float)GetMaxSP() / (float)i; PointChange(POINT_SP, GetSP() * fRatio - GetSP()); #endif val = GetMaxSP(); } break; common/service.h Dodaj: #define FIX_ALL_BUG_HP -32K HP Wejdź do char.cpp w /game/src/ Szukaj: SetHP(t->hp); SetSP(t->sp); Zamień na: SetHP(GetMaxHP()); SetSP(GetMaxSP()); Wejdź do tables.h w /common/ Szukaj: short hp; short sp; Zamień na: int hp; int sp; Gotowe! Edytowane 4 Lutego 20241 r przez ExoCarossa
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.