Skocz do zawartości
Opublikowano

image.png.a144663d4007d16872d3413c4a1a8bf3.png

 

Cześć,

 

Chciałbym zwrócić uwagę na kilka błędów w umiejętności Nanji Dagger - Krycie się. Umiejętność ta nie działa poprawnie i powoduje wiele problemów w jej mechanice.

 

Pierwszy błąd polega na tym, że inny gracz może zobaczyć nas poprzez efekt świecenia, gdy obrócimy kamerę pod odpowiednim kątem. Jest to poważny problem, ponieważ pozwala przeciwnikom na łatwe wyśledzenie naszej pozycji. Kolejny błąd dotyczy widoczności naszej postaci, gdy ma ona nałożonego buffa i użyje Krycia się. W takiej sytuacji nasza postać jest nadal widoczna dla przeciwników, co również utrudnia ukrycie się. Następnym błędem jest to, że podczas używania Krycia się widać efekt chodzenia, gdy się poruszamy. To również zdradza naszą pozycję i utrudnia skuteczne zastosowanie umiejętności.

 

Podsumowanie rozwiązania:

  • ukrywa efekt poruszania się
  • ukrywa efekt nałożonego buffa
  • ukrywa efekt świecenia przedmiotów
  • ukrywa efekty spowolnienia, otrucia, omdlenia
  • ukrywa znaczek na radarze
  • naprawia błąd znikania revive postać na kryciu pojawiała się od razu pomimo trwania krycia
  • naprawia błąd z brakiem pojawiania się efektu podczas znikania z perspektywy innego gracza
  • po zmianie postaci wszystkie efekty są ukryte
  • ukrycie efektu zadawanych obrażeń dla przeciwnika gdy nas otruje i znikniemy aby nie zdradzić pozycji
  • ukrycie efektu zadawanych obrażeń dla przeciwnika gdy podpalimy i znikniemy aby nie zdradzić pozycji

Warto zobaczyć:

 

Prezentacja błędu:

 

Prezentacja rozwiązanie:

 

Poprawa do zadawanych obrażeń dla trucia na kryciu:

Implementacja:

📂 Lokalizacja pliku: 'EffectLib -> EffectManager.cpp'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

 

📂 Lokalizacja pliku: 'EffectLib -> EffectManager.h'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

 

 📂 Lokalizacja pliku: 'EffectLib -> EffectInstance.cpp'

 

 🔍 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

  Dodaj

🔐 Ukryta Treść 🔐

 

 

📂 Lokalizacja pliku: 'EterLib -> GrpObjectInstance.cpp'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

 

 📂 Lokalizacja pliku: 'EterLib -> GrpObjectInstance.h'

 

 🔍 Szukaj

🔐 Ukryta Treść 🔐

 

  Dodaj

🔐 Ukryta Treść 🔐

 

  🔍 Szukaj

🔐 Ukryta Treść 🔐

 

   Dodaj

🔐 Ukryta Treść 🔐

 

 

📂 Lokalizacja pliku: 'GameLib -> ActorInstanceAttach.cpp'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

 

📂 Lokalizacja pliku: 'UserInterface -> InstanceBase.cpp'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

 🔍 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

 

 📂 Lokalizacja pliku: 'UserInterface -> InstanceBase.h'

 

  🔍 Szukaj

🔐 Ukryta Treść 🔐

 

  Dodaj

🔐 Ukryta Treść 🔐

 

 

 📂 Lokalizacja pliku: 'UserInterface -> InstanceBaseEffect.cpp'

 

   🔍 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

   Dodaj

🔐 Ukryta Treść 🔐


    🔍 Szukaj

🔐 Ukryta Treść 🔐

 

    Dodaj

🔐 Ukryta Treść 🔐

 

   🔍 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

 ♻️ Zamień

🔐 Ukryta Treść 🔐

 

 

    🔍 Szukaj

🔐 Ukryta Treść 🔐

 

  ♻️ Zamień

🔐 Ukryta Treść 🔐

 

     🔍 Szukaj

🔐 Ukryta Treść 🔐

 

   ♻️ Zamień

🔐 Ukryta Treść 🔐

 

      🔍 Szukaj

🔐 Ukryta Treść 🔐

 

    ♻️ Zamień

🔐 Ukryta Treść 🔐

 

       🔍 Szukaj

🔐 Ukryta Treść 🔐

 

     ♻️ Zamień

🔐 Ukryta Treść 🔐

 

Featured Replies

Opublikowano

Została jeszcze tylko minimapa 😄

Opublikowano
  • Autor

Właśnie nad tym pracuję i zrobię aktualizację tematu, ale nie tylko mini mapa. 

Opublikowano

To na radar:
OTWIERAMY "INSTANCEBASE.CPP" I SZUKAMY TEGO:

BOOL CInstanceBase::IsInvisibility()
{
    if (IsAffect(AFFECT_INVISIBILITY))
        return true;

    return false;
}


I ZMIENIAMY NA TO:

BOOL CInstanceBase::IsInvisibility()
{
    if (IsAffect(AFFECT_INVISIBILITY) || IsAffect(AFFECT_EUNHYEONG))
        return true;

    return false;
}


SZUKAMY TEGO:

void CInstanceBase::Render()
{
    // 2004.07.17.levites.isShow¸¦ ViewFrustumCheck·Î şŻ°ć
    if (!__CanRender())
        return;

    ++ms_dwRenderCounter;

    m_kHorse.Render();
    m_GraphicThingInstance.Render();


I PONIŻEJ DODAJEMY TO:

    CPythonCharacterManager & rkChrMgr = CPythonCharacterManager::Instance();

    for (auto ptr = rkChrMgr.CharacterInstanceBegin(); ptr != rkChrMgr.CharacterInstanceEnd(); ++ptr)
    {
        CInstanceBase * pkInstEach = *ptr;

        if (pkInstEach)
        {
            if (/*pkInstEach->IsAffect(AFFECT_EUNHYEONG) ||*/ pkInstEach->IsAffect(AFFECT_INVISIBILITY))
            {
                if (CPythonPlayer::Instance().IsMainCharacterIndex(pkInstEach->GetVirtualID()))
                    continue;

                pkInstEach->m_GraphicThingInstance.HideAllAttachingEffect();
            }
        }
    }

 

Opublikowano

Dzięki!

A jak z animowaną nakładką na broń i szarfą bo one też mają swój efekt 😄

Edytowane przez ExoCarossa

Opublikowano

Dobra robota z tym kryciem 😛

// Działa jak nalezy + kod od @Dziki Czan też legitnie działa z tą minimapą

Opublikowano

Dziekuje!

Opublikowano
3 godziny temu, Delta napisał(a):

Dobra robota z tym kryciem 😛

// Działa jak nalezy + kod od @Dziki Czan też legitnie działa z tą minimapą

No nie do końca wystarczy mieć dodane na serwer więcej rzeczy z efektami i robia się jazdy.

Opublikowano
2 minuty temu, Sevence napisał(a):

@Marchewa Możesz coś więcej na ten temat?

Nie pamiętam ale wiem, że z tym był problem i te łatki nie działały jak potrzeba.

To trzeba inaczej zrobić badz coś dopisać ale najważniejsze są testy. 

Opublikowano
  • Autor

Wstępne testy przebiegły pomyślnie, co widać na załączonych klipach. W razie wykrycia jakichkolwiek błędów, proszę o ich przesłanie. Poprawię je.

Zaktualizowałem temat o znikanie z radaru, dzięki @Dziki Czan za udostępnienie poprawki. 


//AKTUALIZACJA TEMATU

Opublikowano

Dziękuję za udostępnienie poprawki. Bardzo mi pomogła. 🔥👌

 

Opublikowano

 

Chyba brakło ci w InstanceBaseEffect.cpp'

        __SetNormalAffectFlagContainer(c_rkAffectFlagContainer);
#ifdef __ENABLE_STEALTH_FIX__
        if (!__MainCanSeeHiddenThing() &&
            (c_rkAffectFlagContainer.IsSet(AFFECT_INVISIBILITY)
                || c_rkAffectFlagContainer.IsSet(AFFECT_REVIVE_INVISIBILITY)
                || c_rkAffectFlagContainer.IsSet(AFFECT_EUNHYEONG))
        )
            m_GraphicThingInstance.HideAllAttachingEffect();
#endif

 

Brakuje też efektu tego skilla (krycia się). Sprawe troche poprawia wypierdolenie pkInstEach->IsAffect(AFFECT_EUNHYEONG) || w:

if (pkInstEach && (pkInstEach->IsAffect(AFFECT_EUNHYEONG) || pkInstEach->IsAffect(AFFECT_INVISIBILITY)) && !CPythonPlayer::Instance().IsMainCharacterIndex(pkInstEach->GetVirtualID()))

Edytowane przez Dziki Czan

Opublikowano
  • Autor

Temat zaktualizowałem i działa już poprawnie efekt krycia działa. 

Opublikowano
  • Autor

Zaktualizowałem temat teraz rozwiązuje wszystkie błędy z umiejętnością Krycie się. 

Opublikowano
2 godziny temu, Sevence napisał(a):

Zaktualizowałem temat teraz rozwiązuje wszystkie błędy z umiejętnością Krycie się. 

biore się za testowanie i będę raportował
EDIT: Działa jak powinno!

Edytowane przez Dziki Czan

Opublikowano

Thx, zerknę w wolnym czasie na to wszystko swoim okiem

  • 2 tygodnie później...
Opublikowano

Dzięki

  • 2 tygodnie później...
Opublikowano

No i cyk zabieram się do wgrania tego fixu, dziękuję pięknie ^^

  • 2 tygodnie później...
Opublikowano

  

W dniu 14.01.2024 o 10:25, Dziki Czan napisał(a):

To na radar:
OTWIERAMY "INSTANCEBASE.CPP" I SZUKAMY TEGO:

BOOL CInstanceBase::IsInvisibility()
{
    if (IsAffect(AFFECT_INVISIBILITY))
        return true;

    return false;
}


I ZMIENIAMY NA TO:

BOOL CInstanceBase::IsInvisibility()
{
    if (IsAffect(AFFECT_INVISIBILITY) || IsAffect(AFFECT_EUNHYEONG))
        return true;

    return false;
}


SZUKAMY TEGO:

void CInstanceBase::Render()
{
    // 2004.07.17.levites.isShow¸¦ ViewFrustumCheck·Î şŻ°ć
    if (!__CanRender())
        return;

    ++ms_dwRenderCounter;

    m_kHorse.Render();
    m_GraphicThingInstance.Render();


I PONIŻEJ DODAJEMY TO:

    CPythonCharacterManager & rkChrMgr = CPythonCharacterManager::Instance();

    for (auto ptr = rkChrMgr.CharacterInstanceBegin(); ptr != rkChrMgr.CharacterInstanceEnd(); ++ptr)
    {
        CInstanceBase * pkInstEach = *ptr;

        if (pkInstEach)
        {
            if (/*pkInstEach->IsAffect(AFFECT_EUNHYEONG) ||*/ pkInstEach->IsAffect(AFFECT_INVISIBILITY))
            {
                if (CPythonPlayer::Instance().IsMainCharacterIndex(pkInstEach->GetVirtualID()))
                    continue;

                pkInstEach->m_GraphicThingInstance.HideAllAttachingEffect();
            }
        }
    }

 

Nie przypisuj cudzej własności, poprawka jest bardzo BARDZO stara z 2018 roku i to jeszcze zła ale spoko.

Poprawka pochodzi z:

https://metin2.dev/topic/18922-fix-invisibility-and-skill-affect-eunhyeong/

Tak żeby nikt nie myślał, że ten typo umie cokolwiek bo uja umie, przywłaszczać jedynie cudze dzieła. 

W dniu 14.01.2024 o 11:58, Delta napisał(a):

Dobra robota z tym kryciem 😛

// Działa jak nalezy + kod od @Dziki Czan też legitnie działa z tą minimapą

To nie jest kod od Dziki Chana, on tylko zrobił marną wklejkę. 

W dniu 14.01.2024 o 15:05, Marchewa napisał(a):

No nie do końca wystarczy mieć dodane na serwer więcej rzeczy z efektami i robia się jazdy.

Z tym się zgodzę ^^ i jeszcze coś tam było, odkopię swojego klienta to zerkne xd

W dniu 14.01.2024 o 15:07, Sevence napisał(a):

@Marchewa Możesz coś więcej na ten temat?

Jak odkopie kiedyś klienta gdzie testowałem to 5 lat temu to powiem coś więcej na ten temat 😜  bo walczyłem własnie z tym fixem co dał typo z 2018 roku ale kurde teraz nie mam jak tego napisać ;d chyba jeszcze było coś z nakładkami podczas ukrywania się ;d i jeszcze jak się zrobiło obrót prawie 360 stopni tak z boku jakby się zerkało to wtedy ninji były widczone efekty z broni/ zbroi połyski ;d potestuje itd kiedyś to 😄

 

W dniu 14.01.2024 o 15:13, Sevence napisał(a):

Wstępne testy przebiegły pomyślnie, co widać na załączonych klipach. W razie wykrycia jakichkolwiek błędów, proszę o ich przesłanie. Poprawię je.

Zaktualizowałem temat o znikanie z radaru, dzięki @Dziki Czan za udostępnienie poprawki. 


//AKTUALIZACJA TEMATU

Polecam poprawić, to nie jego kod, zrobił tylko marną wklejkę z m2deva :P 

Usiądę kiedys do tego co walczyłem z tym marnym fixem i udostępnię swoją wersję, która jeszcze nie była do końca skończona ;d 

Opublikowano
33 minuty temu, HelpDev napisał(a):

  

Nie przypisuj cudzej własności, poprawka jest bardzo BARDZO stara z 2018 roku i to jeszcze zła ale spoko.

Poprawka pochodzi z:

 

🔐 Ukryta Treść 🔐

  • 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość!
    👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę!
    ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM.

 

Tak żeby nikt nie myślał, że ten typo umie cokolwiek bo uja umie, przywłaszczać jedynie cudze dzieła. 

To nie jest kod od Dziki Chana, on tylko zrobił marną wklejkę. 

Z tym się zgodzę ^^ i jeszcze coś tam było, odkopię swojego klienta to zerkne xd

Jak odkopie kiedyś klienta gdzie testowałem to 5 lat temu to powiem coś więcej na ten temat 😜  bo walczyłem własnie z tym fixem co dał typo z 2018 roku ale kurde teraz nie mam jak tego napisać ;d chyba jeszcze było coś z nakładkami podczas ukrywania się ;d i jeszcze jak się zrobiło obrót prawie 360 stopni tak z boku jakby się zerkało to wtedy ninji były widczone efekty z broni/ zbroi połyski ;d potestuje itd kiedyś to 😄

 

Polecam poprawić, to nie jego kod, zrobił tylko marną wklejkę z m2deva 😛

Usiądę kiedys do tego co walczyłem z tym marnym fixem i udostępnię swoją wersję, która jeszcze nie była do końca skończona ;d 


Panie @HelpDev nawołuje pana do refleksji, nikt nie jest alfą i omegą w każdej dziedzinie. 
Z tego co widze @Dziki czan wrzucił kod ale nie podpisał typowo że to jest jego, ja rozumiem jak by podpisał że to on to stworzył ale żadnej adnotacji takiej nie ma, oczywiście mógł zrobić wklejke ale nie oszukujmy się ktoś co tu wstawia wątpie żeby wszystko było jego autorstwa bo ja sam jak coś wrzucam nie raz to wklejki.

Jeśli testowałeś 5 lat temu i masz więcej informacji na ten temat to jak najbardziej można wrzucić taki smaczek żeby jak najbardziej doprecyzować ten temat.
Pozdrawiam, Januszek.

 

Opublikowano
8 minut temu, Delta napisał(a):


Panie @HelpDev nawołuje pana do refleksji, nikt nie jest alfą i omegą w każdej dziedzinie. 
Z tego co widze @Dziki czan wrzucił kod ale nie podpisał typowo że to jest jego, ja rozumiem jak by podpisał że to on to stworzył ale żadnej adnotacji takiej nie ma, oczywiście mógł zrobić wklejke ale nie oszukujmy się ktoś co tu wstawia wątpie żeby wszystko było jego autorstwa bo ja sam jak coś wrzucam nie raz to wklejki.

Jeśli testowałeś 5 lat temu i masz więcej informacji na ten temat to jak najbardziej można wrzucić taki smaczek żeby jak najbardziej doprecyzować ten temat.
Pozdrawiam, Januszek.

 

Ja wiem doskonale że nikt nie jest alfą i omegą ale po komentarzach nie śmiem wątpić, że myśleliście że to jego fix i potem takiemu userowi odwala na lewo i prawo ^^ 

Nie napisałem, że on się podpisał że to jego fix ale po Waszych odpowiedziach faworyzując że poprawka(kod) pochodzi od niego to już on sam powinien od razu napisać, że to nie jego fix(kod/ poprawka) tak jak zrobił to inny user i nie przypisywał sobie tak on, a on to olał i jeszcze wrzucił kolejną wklejke ^^ 

Napisałeś tak:

Cytat

kod od @Dziki Czan też legitnie działa z tą minimapą

także ja już tu sprostowałem, że to nie jego kod a jeśli user byłby naprawdę fer wobec innych to by dodał adnotację, że to nie jest jego kod itd., by ludki nie myślały, że to jego kodzik 😜 

 

Opublikowano
  • Autor

@HelpDev To rozwiązanie działa w pełni na wszystkie błędy, które opisałem na górze tematu również te pod kątem kamery. Mogą być problemy w zewnętrznych systemach proszę to zgłosić w tym temacie jeśli jest jakiś popularny naprawię to pozdrawiam. 

Opublikowano

Profesorze HełmDewie, gdyby głupota potrafiła fruwać, dawno byś odfrunął hehe Tyle mam do powiedzenia xd

Edytowane przez Dziki Czan

  • 1 miesiąc temu...
Opublikowano

Przyda się mini mapa i ślady przy bieganiu, dzięki 🙂 . Dołożę cegiełkę.
Dla kogoś, kto ma zaimplementowany system świeceń:


🔎Szukamy:

INT CInstanceBase::__GetShiningEffect(WORD slot) {
w środku dodajemy:

    if (IsAffect(AFFECT_REVIVE_INVISIBILITY) || (IsAffect(AFFECT_EUNHYEONG)) && !__MainCanSeeHiddenThing())
        return false;
🔎Szukamy:

bool CInstanceBase::AttachShiningEffect(DWORD dwWeapon)
Dodajemy:
    if (IsAffect(AFFECT_REVIVE_INVISIBILITY) || (IsAffect(AFFECT_EUNHYEONG) && !__MainCanSeeHiddenThing()))
        return false;

Edytowane przez Makaveli

  • 6 miesięcy temu...
Opublikowano

Dzięki

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ą.

Gość
Dodaj odpowiedź do tematu...