Skocz do zawartości

Featured Replies

Opublikowano

 

 

Cześć wszystkim! 🙌

 

Dzisiaj chcę podzielić się z Wami ważnym tematem dotyczącego błędu podczas zmiany pasów.

 

Problem 🤔

Gdy gracz w Metin2 ma założony pas z większą liczbą odblokowanych slotów (np. 12) i ma na nich przedmioty
pojawia się problem przy próbie przełączenia na pas z mniejszą liczbą slotów.
Przedmioty na slotach, które zostają zablokowane zostają tam, a powinny wrócić do ekwipunku. 

 

Sposób naprawy:

Podczas próby zmiany pasa, system sprawdzi, czy w ekwipunku jest wystarczająco dużo miejsca aby przenieść przedmioty ze slotów które zostaną zablokowane.
Jeśli tak przedmioty wrócą do ekwipunku. Jeśli nie zostanie wyświetlony komunikat żeby gracz zwolnił miejsce w ekwipunku przed zmianą pasa. 

 

Prezentacja:

 

Rozwiązanie:

📂 Lokalizacja pliku: 'game -> char_item.cpp'
 

 🔍 Znajdź funkcję:

🔐 Ukryta Treść 🔐

 

🔍 Następnie znajdź w tej funkcji:

🔐 Ukryta Treść 🔐


 Dodaj pod:

🔐 Ukryta Treść 🔐

 

 

 📂 Lokalizacja pliku: 'game lub common -> belt_inventory_helper.h'

 

 🔍 Znajdź

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐


 Dodaj na dole

🔐 Ukryta Treść 🔐

 

 

 📂 Lokalizacja pliku: 'game -> char_item.cpp'

 

 🔍 Znajdź

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

 

 📂 Lokalizacja pliku: 'game -> char.h'

 

 🔍 Znajdź

🔐 Ukryta Treść 🔐

 

  Dodaj

🔐 Ukryta Treść 🔐

 

  • 2 miesiące temu...
  • 1 miesiąc temu...
Opublikowano

Szukałem tego dwa dni.. a tu proszę.

Ale odrazu pytanie. Pliki martysama, zablokowana możliwość zmiany pasa nawet jeśli ma tą samą ilość slotów. Czy kod, który tutaj zamieściłeś wystarczy, czy trzeba edytować coś jeszcze, żeby móc tej zmiany dokonać?

Opublikowano
Spoiler

belt_inventory_helper.h: In static member function 'static bool CBeltInventoryHe                                                                                                             lper::ClearBelt(LPCHARACTER)':
belt_inventory_helper.h:91:32: error: 'class CHARACTER' has no member named 'Get                                                                                                             EmptyInventoryCount'; did you mean 'GetEmptyInventory'?
   91 |   int32_t EmptySlotCount = pc->GetEmptyInventoryCount(1);
      |                                ^~~~~~~~~~~~~~~~~~~~~~
      |                                GetEmptyInventory
belt_inventory_helper.h:92:27: error: 'GetItemCount' was not declared in this sc                                                                                                             ope; did you mean 'BeltItemCount'?
   92 |   int32_t BeltItemCount = GetItemCount(pc);
      |                           ^~~~~~~~~~~~
      |                           BeltItemCount
char_item.cpp: In member function 'bool CHARACTER::SwapItem(BYTE, BYTE)':
char_item.cpp:6169:48: error: 'bInvenCell' was not declared in this scope
 6169 |  if (!CanUnequipNow(item2, TItemPos(INVENTORY, bInvenCell)) || !CanEquip                                                                                                             Now(item1))
      |                                                ^~~~~~~~~~
 

Takie sysery posypało. Pozmieniać według zaleceń?

Opublikowano

No to martysamka zaskoczyl.. Ma ktoś siłę na to, ewentualnie czas spojrzeć w pliki, jeśli wstawiłbym tutaj char_item i beltinventory? Mam wrazenie, ze ten kod rozni sie zupelnie od tego, na ktorym inni pracuja..
Chociazby dlatego, ze linijki, ktora jest tutaj w poradniku nie mam w ogole:
 

if (!CanUnequipNow(item2, TItemPos(INVENTORY, bInvenCell)) || !CanEquipNow(item1))
	return false;
Spoiler

image.png.7345c497a186787d597205ae359641e7.png

  • 2 tygodnie później...

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