Opublikowano 4 Lutego 20242 l 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 Tylko zalogowani Zaloguj się, aby wyświetlić chronioną treść Ten post zawiera treści dostępne tylko dla członków. Zaloguj się lub utwórz konto, aby odblokować całą zawartość tego posta. Zaloguj się Utwórz konto ♻️ Zamień ➕Dodaj 📂 Lokalizacja pliku: 'game -> src -> char.h' 🔍 Szukaj ➕Dodaj 📂 Lokalizacja pliku: 'locale -> pl -> locale_string.txt' ➕Dodaj
Opublikowano 4 Lutego 20242 l Dzięki Twojej pomocy gra stała się bardziej grywalna i przyjemna. Jestem Ci bardzo wdzięczny.
Opublikowano 5 Lutego 20242 l Poka Jeśli ktoś ma powiększone stacki musi uważać Edytowane 5 Lutego 20242 l przez Marchewa
Opublikowano 6 Lutego 20242 l dziekuje //Edit Jeśli ktoś będzie miał problem z takim errorem podczas kompilacji: Dodaj na początku pliku: HTMLKod został skopiowany#include <fmt/format.h> Ewentualnie zmienic ten log tak aby nie korzystac z fmt HTMLKod został skopiowanyLogManager::instance().ItemLog(owner, item, "GET", item->GetName() + " " + std::to_string(item->GetCount()) + " " + std::to_string(item->GetOriginalVnum())); @Sevence możesz to dodać do tematu, jesli zapomniałeś Edytowane 6 Lutego 20242 l przez atk
Opublikowano 6 Lutego 20242 l Autor Tak, dodam po pracy zaponiałem. Jak ktoś nie ma biblioteki fmt to jest temat na forum.
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto