Gdy masz utworzoną drużynę i zdobędziesz przedmiot w momencie gdy inny gracz z grupy podniesie go dla ciebie przedmiot ten no zostanie połączony z innym jeśli już posiadasz taki w ekwipunku. Zamiast tego zostanie utworzony nowy stack z tymi przedmiotami i tak dla każdego przedmiotu, który mógłby zostać połączony. Postaram się rozwiązać ten problem raz na zawsze.
W celu rozwiązanie tego problemu, wprowadziłem dwie nowe funkcje pomocnicze 'TryStackItemInInventory' i AddItemToInventory'. Pierwsze z nich odpowiada za sprawdzanie, czy podnoszony przedmiot może być połączony z przedmiotem tego samego typu, które już znajdują się w ekwipunku gracza. Funkcja ta bierze pod uwagę typ przedmiotu jak i inne czynniki np. flagę antistack, czy maksymalną ilość przedmiotów w stacku. Dodatkowo sprawdzamy, czy gracza dla którego podnosimy ma wystarczająco dużo miejsca. W momencie spełnienia wszystkich warunków funkcja połączy przedmioty poprawnie. Druga funkcja obsługuję przypadek gdy nie można połączyć przedmiotów.
Uwaga:
Jeśli masz wprowadzone zmiany w funkcji 'PickupItem' zrób analizę i wprowadź zmiany ręcznie nie podmieniając całej funkcji !!!
Komunikaty locale stringa są zrobione pod klienta wersję musisz sobie przerobić.
Cześć,
Gdy masz utworzoną drużynę i zdobędziesz przedmiot w momencie gdy inny gracz z grupy podniesie go dla ciebie przedmiot ten no zostanie połączony z innym jeśli już posiadasz taki w ekwipunku. Zamiast tego zostanie utworzony nowy stack z tymi przedmiotami i tak dla każdego przedmiotu, który mógłby zostać połączony. Postaram się rozwiązać ten problem raz na zawsze.
W celu rozwiązanie tego problemu, wprowadziłem dwie nowe funkcje pomocnicze 'TryStackItemInInventory' i AddItemToInventory'. Pierwsze z nich odpowiada za sprawdzanie, czy podnoszony przedmiot może być połączony z przedmiotem tego samego typu, które już znajdują się w ekwipunku gracza. Funkcja ta bierze pod uwagę typ przedmiotu jak i inne czynniki np. flagę antistack, czy maksymalną ilość przedmiotów w stacku. Dodatkowo sprawdzamy, czy gracza dla którego podnosimy ma wystarczająco dużo miejsca. W momencie spełnienia wszystkich warunków funkcja połączy przedmioty poprawnie. Druga funkcja obsługuję przypadek gdy nie można połączyć przedmiotów.
Uwaga:
Jeśli masz wprowadzone zmiany w funkcji 'PickupItem' zrób analizę i wprowadź zmiany ręcznie nie podmieniając całej funkcji !!!
Komunikaty locale stringa są zrobione pod klienta wersję musisz sobie przerobić.
Prezentacja błędu:
Prezentacja rozwiązania:
Implementacja:
📂 Lokalizacja pliku: 'game -> src -> char_item.cpp'
🔍 Szukaj
♻️ Zamień
➕Dodaj
📂 Lokalizacja pliku: 'game -> src -> char.h'
🔍 Szukaj
➕Dodaj
📂 Lokalizacja pliku: 'locale -> pl -> locale_string.txt'
➕Dodaj