Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Rozwiązanie błędu w systemie ALIGN_RENEWAL reset bonusów po śmierci

Featured Replies

Opublikowano

Cześć, prosto tłumacząc mam błąd przy bonusach za punkty rangi mianowicie:

Przykład: mam rangę Legenda nadaje mi ona powiedzmy 30k HP moja postać ma 100k HP gdy ktoś mnie zabije moja wartość HP podczas smierci spada o 30K HP i po wstaniu już nie wraca do 100k HP 

niżej daję kod w którym próbuję się pozbyć tego:

CKod został skopiowany
#ifdef __ENABLE_ALIGN_RENEWAL__void CHARACTER::OnAlignUpdate(int lOldAlignment){    if (GetRealAlignment() >= 11000000)    {        if (lOldAlignment < 11000000)        {            RemoveAffect(AFFECT_ALIGN_BONUS1);            RemoveAffect(AFFECT_ALIGN_BONUS2);            RemoveAffect(AFFECT_ALIGN_BONUS3);            RemoveAffect(AFFECT_ALIGN_BONUS4);            RemoveAffect(AFFECT_ALIGN_BONUS5);        }        AddAffect(AFFECT_ALIGN_BONUS1, POINT_MAX_HP, 35000, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS2, POINT_ATTBONUS_MONSTER, 24, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS3, POINT_ATTBONUS_STONE, 24, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS4, POINT_ATTBONUS_BOSS, 24, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS5, POINT_ATTBONUS_HUMAN, 10, 0, 60*60*60*365, 0, true);    }    else if (GetRealAlignment() >= 9000000)    {        if (lOldAlignment < 9000000 && lOldAlignment >= 11000000)        {            RemoveAffect(AFFECT_ALIGN_BONUS1);            RemoveAffect(AFFECT_ALIGN_BONUS2);            RemoveAffect(AFFECT_ALIGN_BONUS3);            RemoveAffect(AFFECT_ALIGN_BONUS4);            RemoveAffect(AFFECT_ALIGN_BONUS5);        }        AddAffect(AFFECT_ALIGN_BONUS1, POINT_MAX_HP, 30000, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS2, POINT_ATTBONUS_MONSTER, 21, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS3, POINT_ATTBONUS_STONE, 21, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS4, POINT_ATTBONUS_BOSS, 21, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS5, POINT_ATTBONUS_HUMAN, 8, 0, 60*60*60*365, 0, true);    }    else if (GetRealAlignment() >= 8000000)    {        if (lOldAlignment < 8000000 && lOldAlignment >= 9000000)        {            RemoveAffect(AFFECT_ALIGN_BONUS1);            RemoveAffect(AFFECT_ALIGN_BONUS2);            RemoveAffect(AFFECT_ALIGN_BONUS3);            RemoveAffect(AFFECT_ALIGN_BONUS4);            RemoveAffect(AFFECT_ALIGN_BONUS5);        }        AddAffect(AFFECT_ALIGN_BONUS1, POINT_MAX_HP, 25000, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS2, POINT_ATTBONUS_MONSTER, 18, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS3, POINT_ATTBONUS_STONE, 18, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS4, POINT_ATTBONUS_BOSS, 18, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS5, POINT_ATTBONUS_HUMAN, 7, 0, 60*60*60*365, 0, true);    }    else if (GetRealAlignment() >= 6000000)    {        if (lOldAlignment < 6000000 && lOldAlignment >= 8000000)        {            RemoveAffect(AFFECT_ALIGN_BONUS1);            RemoveAffect(AFFECT_ALIGN_BONUS2);            RemoveAffect(AFFECT_ALIGN_BONUS3);            RemoveAffect(AFFECT_ALIGN_BONUS4);            RemoveAffect(AFFECT_ALIGN_BONUS5);        }        AddAffect(AFFECT_ALIGN_BONUS1, POINT_MAX_HP, 20000, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS2, POINT_ATTBONUS_MONSTER, 15, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS3, POINT_ATTBONUS_STONE, 15, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS4, POINT_ATTBONUS_BOSS, 15, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS5, POINT_ATTBONUS_HUMAN, 6, 0, 60*60*60*365, 0, true);    }    else if (GetRealAlignment() >= 4000000)    {        if (lOldAlignment < 4000000 && lOldAlignment >= 6000000)        {            RemoveAffect(AFFECT_ALIGN_BONUS1);            RemoveAffect(AFFECT_ALIGN_BONUS2);            RemoveAffect(AFFECT_ALIGN_BONUS3);            RemoveAffect(AFFECT_ALIGN_BONUS4);            RemoveAffect(AFFECT_ALIGN_BONUS5);        }        AddAffect(AFFECT_ALIGN_BONUS1, POINT_MAX_HP, 15000, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS2, POINT_ATTBONUS_MONSTER, 12, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS3, POINT_ATTBONUS_STONE, 12, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS4, POINT_ATTBONUS_BOSS, 12, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS5, POINT_ATTBONUS_HUMAN, 5, 0, 60*60*60*365, 0, true);    }    else if (GetRealAlignment() >= 2000000)    {        if (lOldAlignment < 2000000 && lOldAlignment >= 4000000)        {            RemoveAffect(AFFECT_ALIGN_BONUS1);            RemoveAffect(AFFECT_ALIGN_BONUS2);            RemoveAffect(AFFECT_ALIGN_BONUS3);            RemoveAffect(AFFECT_ALIGN_BONUS4);            RemoveAffect(AFFECT_ALIGN_BONUS5);        }        AddAffect(AFFECT_ALIGN_BONUS1, POINT_MAX_HP, 10000, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS2, POINT_ATTBONUS_MONSTER, 8, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS3, POINT_ATTBONUS_STONE, 8, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS4, POINT_ATTBONUS_BOSS, 8, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS5, POINT_ATTBONUS_HUMAN, 4, 0, 60 * 60 * 60 * 365, 0, true);    }    else if (GetRealAlignment() >= 1000000)    {        if (lOldAlignment < 1000000 && lOldAlignment >= 2000000)        {            RemoveAffect(AFFECT_ALIGN_BONUS1);            RemoveAffect(AFFECT_ALIGN_BONUS2);            RemoveAffect(AFFECT_ALIGN_BONUS3);            RemoveAffect(AFFECT_ALIGN_BONUS4);            RemoveAffect(AFFECT_ALIGN_BONUS5);        }        AddAffect(AFFECT_ALIGN_BONUS1, POINT_MAX_HP, 5000, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS2, POINT_ATTBONUS_MONSTER, 5, 0, 60*60*60*365, 0, true);                AddAffect(AFFECT_ALIGN_BONUS3, POINT_ATTBONUS_STONE, 5, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS4, POINT_ATTBONUS_BOSS, 5, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS5, POINT_ATTBONUS_HUMAN, 3, 0, 60 * 60 * 60 * 365, 0, true);    }    else if (GetRealAlignment() >= 500000)    {        if (lOldAlignment < 500000 && lOldAlignment >= 1000000)        {            RemoveAffect(AFFECT_ALIGN_BONUS1);            RemoveAffect(AFFECT_ALIGN_BONUS2);            RemoveAffect(AFFECT_ALIGN_BONUS3);            RemoveAffect(AFFECT_ALIGN_BONUS4);            RemoveAffect(AFFECT_ALIGN_BONUS5);        }        AddAffect(AFFECT_ALIGN_BONUS1, POINT_MAX_HP, 3000, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS2, POINT_ATTBONUS_MONSTER, 3, 0, 60*60*60*365, 0, true);                AddAffect(AFFECT_ALIGN_BONUS3, POINT_ATTBONUS_STONE, 3, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS4, POINT_ATTBONUS_BOSS, 3, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS5, POINT_ATTBONUS_HUMAN, 2, 0, 60 * 60 * 60 * 365, 0, true);    }    else if (GetRealAlignment() >= 100000)    {        if (lOldAlignment < 100000 && lOldAlignment >= 500000)        {            RemoveAffect(AFFECT_ALIGN_BONUS1);            RemoveAffect(AFFECT_ALIGN_BONUS2);            RemoveAffect(AFFECT_ALIGN_BONUS3);            RemoveAffect(AFFECT_ALIGN_BONUS4);            RemoveAffect(AFFECT_ALIGN_BONUS5);        }        AddAffect(AFFECT_ALIGN_BONUS1, POINT_MAX_HP, 1500, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS2, POINT_ATTBONUS_MONSTER, 1, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS3, POINT_ATTBONUS_STONE, 1, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS4, POINT_ATTBONUS_BOSS, 1, 0, 60*60*60*365, 0, true);        AddAffect(AFFECT_ALIGN_BONUS5, POINT_ATTBONUS_HUMAN, 1, 0, 60 * 60 * 60 * 365, 0, true);            }    else    {        if (lOldAlignment >= 100000 && GetRealAlignment() >= 0)        {            RemoveAffect(AFFECT_ALIGN_BONUS1);            RemoveAffect(AFFECT_ALIGN_BONUS2);            RemoveAffect(AFFECT_ALIGN_BONUS3);            RemoveAffect(AFFECT_ALIGN_BONUS4);            RemoveAffect(AFFECT_ALIGN_BONUS5);        }        else if (lOldAlignment >= 0 && GetRealAlignment() < 0)        {            RemoveAffect(AFFECT_ALIGN_BONUS1);            RemoveAffect(AFFECT_ALIGN_BONUS2);            RemoveAffect(AFFECT_ALIGN_BONUS3);            RemoveAffect(AFFECT_ALIGN_BONUS4);            RemoveAffect(AFFECT_ALIGN_BONUS5);        }    }}#endif

 Dodawałem tutaj już dodać już warunek Ale bez rekacji

CKod został skopiowany
#ifdef __ENABLE_ALIGN_RENEWAL__ void CHARACTER::OnAlignUpdate(int lOldAlignment) {// Sprawdzenie, czy postać jest martwa if (IsDead()) return;

 

Rozwiązane przez Denis

Opublikowano
  • Autor
W dniu 28.01.2024 o 13:58, Sevence napisał(a):

Wydaje się że już mieliśmy podobny temat z tym systemem i raczej nie działa on dobrze. 

 

Wydaje mi się że problemem jest z przydzielaniem bonusu hp przez affecty, czy inne bonusy dla tej rangi też znikają czy problem dotyczy tylko hp?

niestety każdy bonus który nadaje aktualna ranga

Opublikowano
  • Autor
  • Rozwiązanie

Rozwiązanie 🙂

char_affect.cpp

szukaj:

 

 

CKod został skopiowany
if (IsPC()) { SendAffectRemovePacket(GetDesc(), GetPlayerID(), pkAff->dwType, pkAff->bApplyOn); }

dodaj nad

CKod został skopiowany
#ifdef __ENABLE_ALIGN_RENEWAL__            int derece_bonus[] = {AFFECT_ALIGN_BONUS1, AFFECT_ALIGN_BONUS2, AFFECT_ALIGN_BONUS3};                      if ((pkAff->dwType == derece_bonus[0]) || (pkAff->dwType == derece_bonus[1]) || (pkAff->dwType == derece_bonus[2]))            {                ++it;                continue;            }#endif

 

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.