Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Naprawa błędu łączenia przedmiotów w grupie + nowa funkcja

Featured Replies

Opublikowano

image.png.a144663d4007d16872d3413c4a1a8bf3.png

 

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

dziekuje

//Edit

 

Jeśli ktoś będzie miał problem z takim errorem podczas kompilacji:

image.png.cb81a2c35bb47e796c9bdd43feede8ea.png

 

Dodaj na początku pliku:

 

HTMLKod został skopiowany
#include <fmt/format.h>

 

 

Ewentualnie zmienic ten log tak aby nie korzystac z fmt

 

HTMLKod został skopiowany
LogManager::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 przez atk

  • 1 miesiąc temu...
  • 1 miesiąc temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.