Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[C++] Pierścionek Blokady (expa)


Rekomendowane odpowiedzi

Opublikowano

Cześć, nie widziałem na forum takiego tematu więc postanowiłem że napisze ten krótki temat.
Pokaże jak w prosty sposób za pomocą łącznie 4 linijek kodu zrobić pierścionek blokujący zdobywanie doświadczenia w walce.
I nie jest to cofanie zdobytego expa tylko po prostu blokada jego nabijania gdy pierścionek jest założony.

Najpierw należy wykorzystać czysty itemek (ja użyłem id 70007 ale można inny) w bazie danych oraz kliencie trzeba mu ustawić type na 16 czyli ITEM_UNIQUE.
Dzięki temu będzie można go założyć na slot dodatkowych przedmiotów (tam gdzie Pierścień Doświadczenia, Symbol Króla Przepowiedni itd)
W bazie danych to wszystko, teraz trzeba dodać obsługę tego pierścionka w source game, czyli robimy tak:

Otwieramy unique_item.h i szukamy

UNIQUE_ITEM_DOUBLE_EXP     = 70005,

Pod tym dodajemy nową linię

UNIQUE_ITEM_ANTYEXP_RING    = 70007, // tutaj id itemka który wybraliśmy

Otwieramy char_battle.cpp i szukamy

// 아이템 경험치 두배 속성
        if (to->GetPoint(POINT_EXP_DOUBLE_BONUS))
            if (number(1, 100) <= to->GetPoint(POINT_EXP_DOUBLE_BONUS))
                iExp += iExp * 30 / 100; // 1.3배 (30%)

Pod tym dodajemy

// Piercionek antyexpa by Rimmero
        if (to->IsEquipUniqueItem(UNIQUE_ITEM_ANTYEXP_RING))
            iExp = 0;


Kompilujemy game i to wszystko, sprawdziłem u siebie i działa jak trzeba. 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...