Opublikowano 20 Lutego 20241 r Pomyślałem, że tu napiszę post :P Zauważyłem, że nie ma zmienionego inteligentnego wskaźnika: unique_ptr no i wszystko byłoby fajnie, ale zauważyłem też brakujący include, to dość ważne(według mnie) w tym wypadku jeśli chodzi o unique_ptr :P Wiem, że większość nie grzeszy używania VS w src db, game ale to potężne narzędzie do debugowania i kolizji game czy db jak i wycieku pamięci itp.,^^ Gdy ktoś otworzyłby projekcik, naszym oczom ukaże się takie coś(w każdym pliczku z sekcji db gdzie jest ta wartość z unique_ptr): Spoiler braki zaobserwowałem w db, więc polecam: w pliku stdafx.h na prawie samym końcu (przed ostatnim #endif) dopisz: #include <memory> To tyle. Jak coś jeszcze wykryje dość ważnego to najwyżej dam edita 😜 Małe info, unique_ptr nie posiada kopiowania dzięki czemu (według mnie) jest dużo bezpieczniejszy niż w auto_ptr gdzie jest możliwość kopiowania zasobów dynamicznie przydzielonych, w naszym wypadku mogłoby działać na duplikowaniu tych samych zapytań jeśli napotkałby minimalny problem w wykonaniu np. sql ^^ w unique_ptr nie ma kopiowania, ma tylko prawa do właściwości wykonywania i przenoszenia dynamicznie przydzielonych danych ale to zapewne już wiecie :P Żeby nie było hejtów czy coś, nie wymuszam czy nie wymagam stosowania tego rozwiązania, chcecie to użyjcie a komentarze typu "ale przecież się kompiluje" "głupoty gadasz, kompilator ma to w sobie" itd., to sobie odpuście ^^ Pliki na których obecnie to wykryłem to wersja: entry-core-v1.6
Opublikowano 21 Lutego 20241 r W dniu 19.08.2023 o 12:05, Sevence napisał(a): Uwaga Pierwsze uruchomienie serwera wymaga rekompilacji crypto masz opcję w panelu zarządzania. Uruchamiając VM ustaw FreeBSD 64bit 🛠️ Dane techniczne: System: FreeBSD 13.2 Kompilator: Clang++12 Wersja standardu: C++20 📝 Struktura projektu: Entry-core: źródło gry i bazy danych Entry-bin: źródło dla binarki Entry-sf: pliki serwerowe Entry-client: klient gry Entry-vm: gotowa maszyna (źródło + pliki serwerowe) Entry-sql: tabele do bazy Entry-proto-packer: program do utworzenie item_proto i mob_proto ze sql (by martysama) Dane do logowania SSH: Login: root Hasło: admin Dane do bazy mysql Login: root Hasło: s5gKoF8PqC Dane do konta testowego: Login: entry Hasło: test Centrum pobierania: Entry-vm 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. Entry-core 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. Entry-bin 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. Entry-client 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. Entry-sf 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. Entry-sql 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. Entry-proto-packer 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. Legenda: +++ - oznaczenie punktów, które zostały dodane ostatniego dnia. 📈Śledź postęp projektu 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. Wersja: v1.7 🚀 status: in progress ⏳ ostatnia aktualizacja: 18.02.2024 - 01:49 [FIX] Naprawa błędu w logice wysyłania komunikatu notice na dungeonie. [Zobacz rozwiązanie] [FIX] Naprawa błędu wyszukiwania przedmiotów z polskimi znakami w 'item_proto' / 'mob_proto'. [Zobacz rozwiązanie] +++ [NEW] Wdrożyłem możliwość wyłączenia kolizji dla sklepów graczy (zwykłych). [Zobacz rozwiązanie] +++ [CodeReview] Aktualizacja InstanceBaseEffect.cpp duża refaktoryzacja. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. Wersja: v1.6 🚀 status: wydana Pokaż ukrytą zawartość Changelog [UPDATE] Aktualizacja wszystkich komunikatów w źródle gry do klientowej wersji locale stringa. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. [FIX] Naprawa błędu zadawania obrażeń w marmurku po 'odbugowywaniu' auto poty. [Zobacz rozwiązanie] [FIX] Naprawa błędu używania przedmiotów questowych podczas handlu. [Zobacz rozwiązanie] [FIX] Naprawa błędów w umiejętności Krycie Się. [Zobacz rozwiązanie] [FIX] Naprawa błędu kolizji postaci po zniknięciu. [Zobacz rozwiązanie] [FIX] Naprawa błędu zakładania przedmiotów na sloty unique, brak obsługi w nowym item.cpp - poprawka wewnętrzna. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. [FIX] Naprawa błędu wyświetlania efektu zadawanych obrażeń dla przeciwnika gdy ninja jest otruty lub podpalony i włączy krycie - zdradzały pozycję. [Zobacz rozwiązanie] [FIX] Naprawa błędu z atakowaniem gracza podczas trybu aktywnej ochrony. [Zobacz rozwiązanie] [FIX] Naprawa błędu z wyzywaniem gracza na pojedynek podczas aktywnego trybu ochrony. [Zobacz rozwiązanie] [FIX] Naprawa błędu dezaktywacji trybu PVP po wylogowania. [Zobacz rozwiązanie] [FIX] Naprawa błędu: zmiana płci postaci uniemożliwia zdjęcie kostiumu lub fryzury. [Zobacz rozwiązanie] [FIX] Naprawa braku automatycznego wylogowania po zmianie płci. [Zobacz rozwiązanie] [FIX] Naprawa atakowania gracza wydobywającego rude. [Zobacz rozwiązanie] [FIX] Naprawa błędu z atakowaniem potworów podczas aktywnego Krycia się. [Zobacz rozwiązanie] [FIX] Naprawa awarii klienta gry podczas zamykania. [Zobacz rozwiązanie] [FIX] Naprawa błędu łączenia przedmiotów w grupie + nowa funkcja. [Zobacz rozwiązanie] [FIX] Naprawa krytycznego błędu z dodawaniem gracza do grupy. [Zobacz rozwiązanie] [FIX] Naprawa błędu utraty kontroli poruszania się postacią podczas otwartego okna ustawień klawiatury i aktywnego poruszania się. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. [FIX] Naprawa błędu niepoprawnego koloru nazw graczy po dodaniu do grupy. [FIX] Naprawa wyświetlania flag królestw podczas niewidzialności. [Zobacz rozwiązanie] [FIX] Naprawa błędu w którym po zejściu z konia ten nie podążał za postacią poprawnie tylko zostawał w miejscu zejścia. [FIX] Naprawa błędu niepoprawnej obsługi ubierania smokingu w którym nie aktualizował się widok założonego przedmiotu. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. [NEW] Wdrożono obsługę Zwoju Redystrybucji. [Zobacz rozwiązanie] [NEW] Obsługa wydobywania rud implementacja nowych metod. [Zobacz rozwiązanie] [NEW] Nowe makro 'ENABLE_ATTACH_EMPIRE_EFFECT' wyłączające wyświetlanie flagi królestw. [Zobacz rozwiązanie] [REMOVE] Usunięto system Monarchy. [Zobacz rozwiązanie] [REMOVE] Usunięto system Auction. [Zobacz rozwiązanie] [REMOVE] Usunięto system Castle. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany moduł 'vcard'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany moduł 'billing'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany moduł 'sms - mobile'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany moduł 'openid'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany moduł 'dev_log'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany moduł 'teen packet'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany moduł 'passpod'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany moduł 'matrix_card'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany event 'lotto'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany modułu 'highscore'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany modułu 'dbstring'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany modułu 'SpeedServer'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany modułu 'FileMonitor_FreeBSD'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany modułu 'BlockCountry'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany event 'threeway_war'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany modułu 'ip_ban'. [Zobacz rozwiązanie] [REMOVE] Usunięto pliki ze źródła 'test.cpp', 'test_allocator.cpp', 'test_window.cpp', 'test_stacktrace.cpp', 'input_udp.cpp', 'malloc_allocator.h', 'merge_locale_string.py'. [REMOVE] Usunięto nieużywany modułu 'sequence'. [Zobacz rozwiązanie] [REMOVE] Usunięto moduł obsługujący wierzchowce, zmiana obsługi wierzchowców podążających za postacią. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. [CodeReview] Wdrożenie smart pointerów do zarządzania pakietami, optymalizacja struktur. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. (eksperymentalne) [CodeReview] Usunięto koreańskie komentarze, sformatowano wszystkie enumy, dodano wszystkim listom numerację w celu łatwiejszym zarządzaniu, dodano nazwy w brakujących. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. [CodeReview] Dodano do wszystkich enum numerację, zaktualizowano różnice bin - game. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. [CodeReview] Zaktualizowano strukturę i typy danych proto table, zaktualizowano packera proto. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. [CodeReview] Refaktoryzacja GameType.h - UserInterface, dodano numerację do typów wyliczeniowych, nazwy, zaktualizowano typy danych, dodano obsługę brakujących bonusów. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. [UPDATE] Wycofano wcześniejszy nowy moduł systemu wierzchowców. Zaimplementowano nową obsługę wierzchowców rozbudowując system konny. 🔐 Ukryta Treść 🔐 💬 Skomentuj poniżej, aby odkryć ukrytą zawartość! 👍 Nie zapomnij zostawić reakcji, aby podziękować autorowi za jego pracę! ⚠️ Komentarze muszą zawierać minimum 3 litery, inaczej są uważane jako SPAM. Wersja: v1.5 🚀 status: wydana Pokaż ukrytą zawartość Changelog [UPDATE] Zaktualizowano okno zadań zgodnie z oficjalnym serwerem. [Zobacz rozwiązanie] [UPDATE] Kamienie duszy teraz będą mogły się łączyć. [Zobacz rozwiązanie] [UPDATE] Tekst w zadaniach jest wyświetlany od razu bez animacji. [Zobacz rozwiązanie] [UPDATE] Pieczęcie zwierzaków są teraz otoczone świecącą aurą po użyciu. [Zobacz rozwiązanie] [UPDATE] Nowa opcja gry - ustawienia klawiatury. [UPDATE] Stały atak ze strzał - wyłączenie zależności obrażeń od zasięgu przeciwnika. Nowa opcja konfiguracyjna ENABLE_ARROW_DISTANCE_DAMAGE. [Zobacz rozwiązanie] [UPDATE] Aktualizacja mechaniki umiejętności Strzelający Smok. [Zobacz rozwiązanie] [UPDATE] Pełne wsparcie dla systemu FreeBSD 13.2. [UPDATE] Zaktualizowano cryptopp do wersji 8.9, nie ładujemy już lokalnie, instalowany z pkg, roziązanie problemów z kompatybinością. [UPDATE] Zapewniono kompatybilność cipher z najnowszą wersją cryptoliba. [UPDATE] Zaktualizowano bibliotekę boost do najnowszej wersji 1.84. [UPDATE] Zaktualizowano wszystkie potwory z m2 modele oraz pliki serwerowe. [FIX] Naprawa krytycznego błędu w funkcji 'MoveItem', zapobiegając duplikacji przedmiotów. [Zobacz rozwiązanie] [FIX] Naprawa błędu dotyczącego użycia mikstury, gdy jej efekt jeszcze trwa. [Zobacz rozwiązanie] [FIX] Naprawa polecenia 'reload q' powodującego awarię rdzenia gry. [Zobacz rozwiązanie] [FIX] Naprawa błędu z umieszczaniem kamieni duszy w stacku. [Zobacz rozwiązanie] [FIX] Naprawa krytycznego błędu w funkcji do przeładowywania questów - brak wyczyszczenia timerów serwerowych. [Zobacz rozwiązanie] [FIX] Naprawa błędów w aktualizacji statystyk i ekwipunku podczas zmiany oraz wylogowania postaci. [Zobacz rozwiązanie] [FIX] Naprawa błędu z zakładaniem całego stacku przedmiotów na slot. [Zobacz rozwiązanie] [FIX] Naprawa niespójności w systemie znajomych. [Zobacz rozwiązanie] [FIX] Naprawa wycieków pamięci w systemie wiadomości. [Zobacz rozwiązanie] [FIX] Naprawa błędu w którym potwory wchodziły za graczem na strefę bezpieczeństwa. [Zobacz rozwiązanie] [FIX] Naprawa błędu logicznego w poleceniu do ustawiania rangi dla gracza. [Zobacz rozwiązanie] [FIX] Naprawa błędu dublowania bonusów z affectów po wielokrotnym użyciu przedmiotów. [Zobacz rozwiązanie] [FIX] Naprawa ujemnego czasu odrodzenia podczas otwartego sklepu u NPC. [Zobacz rozwiązanie] [FIX] Naprawa błędu z czytaniem księgi umiejętności na maksymalnym poziomie. [Zobacz rozwiązanie] [FIX] Naprawa błędu uniemożliwiającego przerwanie automatycznego ataku. [Zobacz rozwiązanie] [FIX] Naprawa używania emocji podczas ogłuszenia postaci. [Zobacz rozwiązanie] [FIX] Naprawa połączenia z serwerem podczas problemów sieciowych. [Zobacz rozwiązanie] [FIX] Naprawa przycinania chmur w skyboxie podczas renderowania. [Zobacz rozwiązanie] [FIX] Naprawa podnoszenia przedmiotu przez kliknięcie będąc na koniu lub wierzchowcu. [Zobacz rozwiązanie] [FIX] Naprawa błędu powodującego upadek postaci przy użyciu umiejętności Silne Ciało. [Zobacz rozwiązanie] [FIX] Naprawa błędu z pozycjonowaniem kursowa w interfejsie logowania. [Zobacz rozwiązanie] [FIX] Naprawa funkcji aktualizacji złota przy ujemnych wartościach. [Zobacz rozwiązanie] [FIX] Naprawa błędu konwersji typów w funkcji 'PyTuple_GetUnsignedLong'. [Zobacz rozwiązanie] [FIX] Naprawa braku wpływu bonusu - szybkości zaklęcia na czas odnowienia w opisie umiejętności. [Zobacz rozwiązanie] [FIX] Naprawa błędu przekroczenia zakresu przy ustawieniu kierunku. Zobacz rozwiązanie] [FIX] Naprawa błędu ładowania dolnej części skybox'a. [Zobacz rozwiązanie] [FIX] Naprawa luki bezpieczeństwa w systemie autoryzacji do ACP. [Zobacz rozwiązanie] [FIX] Naprawa funkcji SetSkillGroup poprzez weryfikację dostępności obiektu. [Zobacz rozwiązanie] [FIX] Naprawa błędu przepełnienia punktów miłosnych. [Zobacz rozwiązanie] [FIX] Naprawa ostrzeżenia 'No Primary Key' w tabeli log. [Zobacz rozwiązanie] [FIX] Naprawa wycieki pamięci w systemie magazynu: Funkcja 'ChangeSize'. [Zobacz rozwiązanie] [FIX] Naprawa opóżnienia po użyciu Rozproszenia Magii i Leczenia. [Zobacz rozwiązanie] [FIX] Naprawa błędów z bukietem ślubnym. [Zobacz rozwiązanie] [FIX] Naprawa przechowywania cen w bazie danych 'myshop_pricelist' podczas dodawania przedmiotów przez Szpule Jedwabiu. [Zobacz rozwiązanie] [FIX] Naprawa błędu w zapytaniu cache do 'myshop_pricelist' | Błąd 'AsyncSQL: Duplicate nick '16-0' for key 'list_id' (errno: 1062)'. [Zobacz rozwiązanie] [FIX] Naprawa wyświetlania białych tekstur w dalekim dystansie z modeli LOD. [Zobacz rozwiązanie] [FIX] Naprawa ruchu na koniu podczas ataku bez posiadania broni. [Zobacz rozwiązanie] [FIX] Naprawa błędu niepoprawnej pozycji gracza - automatyczne przenoszenie na mapę startową. [Zobacz rozwiązanie] [FIX] Naprawa błędu gubienia hitów podczas ataku z dzwona na wierzchowcu. [Zobacz rozwiązanie] [FIX] Naprawa koloru potworów - 'mob_color', [Zobacz rozwiązanie] [FIX] Naprawa przepełnienia tablicy 'Stones'. [Zobacz rozwiązanie] [FIX] Naprawa funkcji 'SendScript' poprzez zarządzanie wskaźnikami dla większej stabilności gry. [Zobacz rozwiązanie] [FIX] Naprawa błędu zamykania sesji gracza przy użyciu polecenia 'SCMD_QUIT'. [Zobacz rozwiązanie] [FIX] Naprawa błędu dostępu do nieistniejących indexów graczy. [Zobacz rozwiązanie] [FIX] Naprawa błędu obliczania rozmiaru pakietu 'HEADER_GC_QUEST_INFO'. [Zobacz rozwiązanie] [FIX] Naprawa błędu inicjalizacji liczby materiałów w 'InitializeRefineTable'. [Zobacz rozwiązanie] [FIX] Naprawa awarii rdzenia gry przy braku wskaźnika właściciela w 'ClearMountAttributeAndAffect'. [Zobacz rozwiązanie] [FIX] Naprawa błędu przenoszenia tekstu z czatu w okno protokołu wiadomości. [Zobacz rozwiązanie] [FIX] Naprawa błędu aktywacji zakładki 'Wszystkie' w protokole wiadomości. [Zobacz rozwiązanie] [FIX] Naprawa błędu opóźnionego wyświetlania obrażeń po śmierci potworów. [Zobacz rozwiązanie] [FIX] Naprawa błędu wczytywania pliku etc_drop_item gdy name ma koreańskie nazwy.[Zobacz rozwiązanie] [FIX] Naprawa błędu yang buga w systemie budowania terenu Gildii. [Zobacz rozwiązanie] [FIX] Naprawa błędu z wyszukiwaniem gracza przez nazwę. [Zobacz rozwiązanie] [FIX] Naprawa awarii rdzenia gry spowodowanego usuwaniem przedmiotu źródłowego w procesie ulepszania. [Zobacz rozwiązanie] [FIX] Naprawa błędu opóźnionego efektu umiejętności berserk u Wojowniczki. [Zobacz rozwiązanie] [FIX] Naprawa błędu związanego z interakcjami podczas otwierania prywatnego sklepu. [Zobacz rozwiązanie] [FIX] Naprawa błędu graficznego w animacji czekania z wędką u Wojowniczki. [Zobacz rozwiązanie] [FIX] Naprawa błędu powodującego crash clienta gry po oznaczeniu nowego targetu przyciskiem tab gdy w pobliżu nie było celów. [FIX] Naprawa błędu w Alchemii Smoczych Kamieni - nieprawidłowe sprawdzanie wolnych slotów. [Zobacz rozwiązanie] [FIX] Zabezpieczenie autoryzacji do listy znajomych przed flood exploitem. [Zobacz rozwiązanie] [FIX] Naprawa błędu dodawania gracza do listy znajomych, gdy gracz jest już naszym znajomym. [Zobacz rozwiązanie] [FIX] Zabezpieczenie funkcji dodawania komentarzy w Gildii przed nadużyciami. [Zobacz rozwiązanie] [FIX] Naprawa błędu pustego zestawu tekstur. [Zobacz rozwiązanie] [FIX] Naprawa błędu usuwania członka grupy przez wykluczenie na pasku targetu. [Zobacz rozwiązanie] [FIX] Naprawa błędu ataku dystansowego z uwzględnieniem pozycji gracza na wierzchowcu. [Zobacz rozwiązanie] [FIX] Naprawa błędu dodawania pustych komentarzy w systemie Gildii. [Zobacz rozwiązanie] [FIX] Naprawa błędu umożliwiającego zabicie gracza w trybie obserwatora podczas wojny Gildii. [Zobacz rozwiązanie] [FIX] Naprawa błędu, który uniemożliwiał włączenie klienta gry w trybie pełnoekranowym. [FIX] Naprawa błędu wyłączania efektu toggle dla umiejętności po śmierci. [Zobacz rozwiązanie] [FIX] Naprawa wycieku pamięci w 'CShopManager'. [Zobacz rozwiązanie] [FIX] Naprawa błędu braku kontroli 'nullptr' dla 'pkItem' w funkcji 'item_destroy_event'. [Zobacz rozwiązanie] [FIX] Naprawa błędu bezpieczeństwa w funkcji 'EncodeInsertPacket' wskaźnik 'ent' nie ma kontroli nullpr. [Zobacz rozwiązanie] [FIX] Naprawa błędu niezgodności struktury dla pakietu 'TPacketGCItemGroundAdd'. [Zobacz rozwiązanie] [FIX] Naprawa błędu w którym ilość yang na ziemi przekraczała bufor 255 i wyświetlało niepoprawną ilość. [FIX] Naprawa błędu dereferencji nullowego wskaźnika w funkcji 'item_remove'. [Zobacz rozwiązanie] [FIX] Naprawa błędu z ustawieniami klawiatury gdy używałeś ruchu i zacząłeś edytować przepisanie postać traciłeś kontrolę nad postacią. [FIX] Naprawa krytycznego błędu powodującego cofkę i crash game podczas wyłączenia serwera. [FIX] Naprawa wielu drobnych błędów popraw bezpieczeństwa których nie jestem tu wszystkich wypisać bo lista była bardzo długa. [NEW] Dodano nową stałą konfiguracyjną do ograniczenia poziomu dla użycia efektu rozproszenia - leczenia usuwającego affecty. [Zobacz rozwiązanie] [NEW] Dodano nowe makro do określenia czy ma być wymagane zdjęcie zbroi podczas otwierania sklepu prywatnego. [NEW] Nowa funkcja do generowania unikalnego identyfikatora. [Zobacz rozwiązanie] [NEW] Zaimplementowano mapę - Dolina Orków. [NEW] Dwa nowe powiadomienia o błędach w funkcji dodawania komentarzy do gildii dla pustych wiadomości i przekroczenia znaków. [NEW] Dodano atlas dla map pierwszych, doliny orków i uporządkowano strukturę mini map. [NEW] Zaimplementowano mapy miast drugich z mini mapami. [NEW] Zaimplementowano mapę - Góra Sohan. [NEW] Zaimplementowano kostiumy imprezowe: Kostium Muszkietera i Kostium Pokojówki - Fryzura Muszkietera i Czepek Pokojówki. [Zobacz rozwiązanie] [NEW] System wierzchowców podążających za postacią only c++ bez questa. [CodeReview] Refaktoryzacja funkcji 'CQuestManager::Reload()'. [Zobacz rozwiązanie] [CodeReview] Teraz zasoby będą ładowane asynchronicznie z wykorzystaniem wielowątkowości - szybsze ładowanie do gry. [CodeReview] Pełna refaktoryzacja UserInterface.cpp zwiększenie performance ładowania zasobów. [CodeReview] Refaktoryzacja funkcji 'CHARACTER::'Create' generowanie vid przez nową funkcję GenerateUniqueID. [Zobacz rozwiązanie] [CodeReview] Drobne ulepszenia w liście inicjalizującej 'CItem' agregatna inicjalizacja dla 'm_alSockets' i 'm_aAttr'. [CodeReview] Zakończona pełna refaktoryzacja item.cpp / item.h poprawki bezpieczeństwa i optymalizacyjne. [REMOVE] Usunięto wszystkie kamienie duszy (+5 do +9) oraz kamień traumy, masakry, głupoty, trucizny. [REMOVE] Usunięto obsługę przedmiotów 71051 i 71052 w char_item.cpp - zmianka/dodanie 6/7. [REMOVE] Usunięto nieużywany kod modułu 'TrafficProfiler'. [Zobacz rozwiązanie] Wersja: v1.4 🚀 status: wydania Pokaż ukrytą zawartość Changelog [UPDATE] Nowy interfejs tworzenia postaci (oficjalna wersja). [Zobacz rozwiązanie] [UPDATE] Zaktualizowano `serverinfo.py` teraz adres IP zdefiniowano na początku pliku w celu łatwiejszej konfiguracji. [Zobacz rozwiązanie] [UPDATE] Dodano kamienie Metin z oficjalnego patch'a 13.3. [Zobacz rozwiązanie] [UPDATE] Zaktualizowano przyciski potwierdzające w oknach popup. [Zobacz rozwiązanie] [UPDATE] Zaktualizowano pozycję startową po pierwszym zalogowaniu do gry dla wszystkich królestw. [Zobacz rozwiązanie] [UPDATE] Szybsze podnoszenie przedmiotów. [Zobacz rozwiązanie] [UPDATE] Wyświetlenie ilości sztuk przy wydropionych lub wyrzuconych przedmiotach na ziemie. [Zobacz rozwiązanie] [UPDATE] Nowy format wyświetlania ceny przedmiotu podczas sprzedaży. [Zobacz rozwiązanie] [UPDATE] Zoptymalizowano wszystkie standardowe animacje emocji. [Zobacz rozwiązanie] [UPDATE] Zaktualizowano Granny2 do wersji 2.11.8. [Zobacz rozwiązanie] [UPDATE] Usunięto locale_string.txt z serwera teraz jest czytane tylko z klienta gry. [Zobacz rozwiązanie] [UPDATE] Zaktualizowano 258 komunikatów chatu w źródle gry do locale_string.txt czytanego z klienta gry. [Zobacz rozwiązanie] [UPDATE] Zaktualizowano skrypt panel.sh do wersji v1.1 dodano dwie nowe opcje kompilacji questów oraz kompilacji źródła. [UPDATE] Ulepszono ładowanie do gry, pasek ładowania ma teraz płynną animację i procent załadowania. [Zobacz rozwiązanie] [FIX] Naprawiono błąd z wydajnością gry spowodowaną przypisaniem partycji D do napędu DVD/CD-ROM. [Zobacz rozwiązanie] [FIX] Naprawiono sprawdzania brakujących nagłówków podczas analizy w procesie logowania. [Zobacz rozwiązanie] [FIX] Naprawiono błąd pozostałych efektów umiejętności po zmianie profesji. [Zobacz rozwiązanie] [FIX] Naprawiono błąd użycia umiejętności Czarowane Ostrze lub Aura Miecza bez założonej broni. [Zobacz rozwiązanie] [FIX] Naprawiono komendy 'level' które niepotrzebnie resetowała umiejętności zamiast zmieniać tylko poziom. [Zobacz rozwiązanie] [FIX] Naprawiono błąd bezpieczeństwa w funkcji związanej z zadaniami - 'pc_select_vid'. [Zobacz rozwiązanie] [FIX] Naprawiono efektu aktywacji auto potów na dodatkowych stronach w ekwipunku. [Zobacz rozwiązanie] [FIX] Naprawiono funkcji 'CheckMoving' która nie uwzględniała przedmiotów 3-slotowych podczas sprawdzania. [Zobacz rozwiązanie] [FIX] Naprawiono krytycznego błędu z kopiowanie przedmiotów poprzez funkcję od zmiany nazwy gracza 'pc_change_name'. [Zobacz rozwiązanie] [FIX] Naprawiono błąd umożliwiającego atakowanie sklepów graczy. [Zobacz rozwiązanie] [FIX] Naprawiono błąd w tabeli 'player_deleted' podczas używania postfix w tabelach. [Zobacz rozwiązanie] [FIX] Naprawiono błąd zliczania potworów w funkcji 'd.count_monster'. [Zobacz rozwiązanie] [FIX] Naprawiono błąd powodujący opóźnienia, wywołany częstym wsiadaniem i zsiadaniem z konia. [Zobacz rozwiązanie] [FIX] Naprawiono błąd umożliwiający karmienie martwego konia. [Zobacz rozwiązanie] [FIX] Naprawiono błąd resetujący specular. [Zobacz rozwiązanie] [FIX] Naprawiono krytyczny błąd umożliwiający wykonanie SQL inject w funkcjach do obsługi przyjaciół. [Zobacz rozwiązanie] [FIX] Naprawiono krytyczny błąd umożliwiający wykonanie SQL inject w funkcji od tworzenia gildii. [Zobacz rozwiązanie] [FIX] Naprawiono odświeżanie listy affectów po odwołaniu konia. [Zobacz rozwiązanie] [NEW] Przenoszenie przedmiotów do magazynu i handlu poprzez PPM. [Zobacz rozwiązanie] [NEW] Nowy typ dla przedmiotów - 'ITEM_GACHA'. [Zobacz rozwiązanie] [NEW] Dodano nowe mikstury - Czerwona Mikstura (XXL) oraz Niebieska Mikstura (XXL). [Zobacz rozwiązanie] [NEW] Wprowadzono bibliotekę 'libfmt' w celu optymalizacji i zwiększenia bezpieczeństwa procesu formatowania tekstu. [Zobacz rozwiązanie] [NEW] Zapobieganie nałożeniu słabszego buffa. [Zobacz rozwiązanie] [NEW] Dostosowanie koloru nazwy gracza w przedmiotach zdobytych przez wroga. [Zobacz rozwiązanie] [NEW] Automatyczne oznaczanie potworów poprzez klawisz 'TAB'. [Zobacz rozwiązanie] [NEW] Dodano nowy 6 taniec Gangsam style. [Zobacz rozwiązanie] [NEW] Dodano handler obsługujący przywoływanie peta przez pieczęć model zwierzaka wczytywany z 'value0'. [Zobacz rozwiązanie] [NEW] Dodano nowy typ przedmiotu do przywoływania zwierzaka - 'ITEM_PET'. [Zobacz rozwiązanie] [NEW] Dodano wyświetlanie bonusów w pieczęciach petów wczytywanych z bazy danych. [Zobacz rozwiązanie] [NEW] Wyświetlanie okna gry w centrum pulpitu. [Zobacz rozwiązanie] [NEW] Wskazówki podczas ładowania do gry (like official). [Zobacz rozwiązanie] [NEW] Wdrożono mechanizm ładowania zasobów z folderów 'npc_pet' i 'npc_mount'. [Zobacz rozwiązanie] [NEW] Dodano efekt podczas przywoływania zwierzaka. [Zobacz rozwiązanie] [NEW] Dodano modele standardowych zwierzaków. [Zobacz rozwiązanie] Wersja: v1.3 🚀 status: wydana Pokaż ukrytą zawartość Changelog [FIX] Wprowadzono zabezpieczenie mechaniki wydobycia poprzez kontrolę mapy i dystansu. [Zobacz rozwiązanie] [FIX] Naprawiono błąd, w którym nad postaciami i potworami pojawiały się nazwy sklepów. [Zobacz rozwiązanie] [FIX] Naprawiono 'ghost mode hack', który umożliwiał postaci powstanie w innym miejscu niż padła z powodu braku kontroli w funkcji ruchu. [Zobacz rozwiązanie] [FIX] Naprawiono błąd, który powodował awarię rdzenia gry podczas korzystania z 'cube r_list'. [Zobacz rozwiązanie] [FIX] Poprawiono teksturę modelu Seon-Pyeong. [Zobacz rozwiązanie] [FIX] Dodano zabezpieczenia 'db_port', 'p2p_port' oraz dostępu zdalnego do 'adminpage'. [Zobacz rozwiązanie] [FIX] Naprawiono błąd generujący się podczas ulepszania magicznym metalem związany z nierozpoznanym typem 'scrolla' do ulepszania. [Zobacz rozwiązanie] [FIX] Naprawiono zakładanie pasów przez ustawienie typu pasów w 'item_proto'. [Zobacz rozwiązanie] [FIX] Naprawiono błąd związany z przenoszeniem niedozwolonych typów przedmiotów z magazynu do inwentarza pasa. [Zobacz rozwiązanie] [FIX] Naprawiono brakujący efekt świecenia - specular dla przedmiotów na +7/8/9. [Zobacz rozwiązanie] [FIX] Naprawiono awarię rdzenia gry, która była spowodowana dzieleniem wartości HP potwora przez zero w mob_proto. [Zobacz rozwiązanie] [FIX] Naprawiono błąd związany ze zmianą pasa na pas z mniejszą ilością odblokowanych slotów, który blokował dostęp do pozostałych przedmiotów w pasie. [Zobacz rozwiązanie] [FIX] Naprawiono błąd, który uniemożliwiał kliknięcie przycisku od kostiumów i itemshop w ekwipunku. [Zobacz rozwiązanie] [UPDATE] Aktywowano atrybut TOGGLE dla umiejętności nakładających efekt. [Zobacz rozwiązanie] [UPDATE] Dostosowano znikanie potworów po śmierci w celu poprawy wydajności. [Zobacz rozwiązanie] [UPDATE] Nowy interfejs wyboru królestwa (oficjalna wersja). [Zobacz rozwiązanie] [UPDATE] Nowy interfejs wyboru postaci (oficjalna wersja). [Zobacz rozwiązanie] [NEW] Rozszerzenie liczby stron w ekwipunku do 4. [Zobacz rozwiązanie] [NEW] Dodano 6 umiejętność dla klas Ninji i Wojownika. [Zobacz rozwiązanie] [NEW] Dodano efekt po użyciu peleryny męstwa, zgodny z oficjalnym serwerem. [Zobacz rozwiązanie] [NEW]Wyświetlono procent w oknie ulepszania przedmiotów. [Zobacz rozwiązanie] [NEW] Dodano kolor efektu celu zgodny z kolorem królestwa. [Zobacz rozwiązanie] [NEW] Rozszerzono ilość slotów na postać do 5. [Zobacz rozwiązanie] [NEW] Nowa funkcja, która ustawia wybór postaci według ostatniego wyboru. [Zobacz rozwiązanie] [CodeReview] Refaktoryzacja kodu w PythonApplication, dodano nowe funkcje. [*ALFA TEST*] [CodeReview] Zrefaktoryzowano funkcje 'Cube_request_result_list' i 'Cube_request_material_info' + 'FN_check_valid_npc'. [Zobacz rozwiązanie] [CodeReview] Przeprowadzono refaktoryzację funkcji 'SetTargetName', 'SetSelfName', 'GetNameFromSelf' oraz 'GetNameFromTarget'. [Zobacz rozwiązanie] [CodeReview] Zrefaktoryzowano funkcję 'mining' w celu poprawy czytelności, bezpieczeństwa i wydajności, oraz zaktualizowano typy danych. [Zobacz rozwiązanie] Wersja: v1.2 🚀 status: wydana Pokaż ukrytą zawartość Changelog [FIX] Naprawiony błąd, w którym polecenie /war nazwa_gildii (z ujemną wartością) prowadziło do awarii serwera. [Zobacz rozwiązanie] [FIX] Dodano zabezpieczenie funkcji whisper przed nadmiernym wysyłaniem wiadomości prywatnych oraz przed wyrzucaniem graczy przez 'kick hack'. [Zobacz rozwiązanie] [FIX] Naprawiono błąd, który umożliwiał podnoszenie przedmiotów innych graczy w grupie, gdy lider grupy był offline. [Zobacz rozwiązanie] [FIX] Naprawiono błąd umożliwiający obejście limitu znaków w nazwie postaci. [Zobacz rozwiązanie] [FIX] Naprawiono mechanikę umiejętności 'Strach' zgodnie z jej działaniem na oficjalnym serwerze. [Zobacz rozwiązanie] [FIX] Poprawiono mechanikę bonusów: obrażenia dodawane do PE/PŻ teraz uwzględniają wartość atrybutu. [Zobacz rozwiązanie] [FIX] Zablokowano wykonywanie obrażeń w trybie obserwacji wojny. [Zobacz rozwiązanie] [FIX] Dodano warunek w funkcji Damage, który sprawdza, czy pAttacker jest nullptr; w przypadku tego warunku funkcja zwraca false i kończy działanie. [Zobacz rozwiązanie] [FIX] Naprawiono błąd związany ze zmianą królestwa, który umożliwiał graczom dołączenie do gildii w poprzednim królestwie, mimo że już do niego nie należeli. [Zobacz rozwiązanie] [FIX] Naprawiono błąd z utrzymującym się bonusem punktów życia (HP) po rozwiązaniu grupy. [Zobacz rozwiązanie] [FIX] Naprawiono błąd w obliczeniach punktów życia podczas zmiany założonego przedmiotu. [Zobacz rozwiązanie] [FIX] Naprawiono problem z ujemnymi punktami życia i energii, które powodowały przepełnienie (overflow). [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany kod w funkcji Damage, który obsługiwał Pirata Tanake. Pracuję nad nową wersję obsługi tego zdarzenia. [Zobacz rozwiązanie] [UPDATE] Ulepszenia w wyświetlaniu poziomu i rangi oraz przedrostek dla Game Masterów. [Zobacz rozwiązanie] [NEW] Wprowadzono nową funkcję "BlockBuffForGM", która umożliwia blokowanie rzucania buffa przez GM na gracza, a także odwrotnie. Funkcja zwraca wartość logiczną. [Zobacz rozwiązanie] [NEW] Teraz po użyciu zielonej i fioletowej mikstury pojawi się dodatkowy efekt! [Zobacz rozwiązanie] [NEW] Dodano zmienną 'maxLevelForStatPoints', co umożliwia dostosowanie w konfiguracji poziomu, do którego statystyki będą rozdawane. [Zobacz rozwiązanie] [NEW] Dodano 'char_calc.cpp' z funkcją 'CalculateMagicDamage', obliczającą ostateczne obrażenia magiczne na podstawie 'initialDamage', 'magicAttBonusPer' i 'meleeMagicAttBonusPer'. [*ALFA TEST*] [NEW] Dodano wyświetlanie poziomu postaci podczas handlu z graczem. [Zobacz rozwiązanie] [NEW] Dodano nowe opcje systemowe umożliwiające dostosowywanie środowiska. [Zobacz rozwiązanie] [NEW] Dodano nowy parametr konfiguracyjne określający możliwość włączenia/wyłączenia globalnego chatu dla graczy. [Zobacz rozwiązanie] [CodeReview] Przeprowadzono refaktoryzację funkcji 'CInputLogin::CharacterCreate'. [Zobacz rozwiązanie] Wersja: v1.1 🚀 status: wydana Pokaż ukrytą zawartość Changelog [FIX] Naprawiono odświeżanie poziomu postaci w czasie rzeczywistym przy nazwie gracza. [Zobacz rozwiązanie] [FIX] Naprawiono problem związany z występowaniem ujemnych punktów życia po śmierci postaci. [Zobacz rozwiązanie] [FIX] Naprawiono błąd, który skutkował awarią rdzenia gry w przypadku braku nowej linii na końcu pliku "index". [Zobacz rozwiązanie] [FIX] Naprawiono błąd w funkcji 'do_shutdown', który rozwiązuje problemy z bezpieczeństwem poprzez wprowadzenie autoryzacji. [Zobacz rozwiązanie] [FIX] Naprawiono awarię rdzenia gry związaną z dodawaniem postaci do gildii, eliminując możliwość awarii podczas próby dodania potwora lub NPC. [Zobacz rozwiązanie] [FIX] Poprawiono błąd w funkcji 'npc_get_leader_vid' - teraz sprawdzamy istnienie drużyny i obecność lidera przed wywołaniem funkcji, eliminując awarie gry. [Zobacz rozwiązanie] [FIX] Naprawiono błąd z bonusem "Odporność na omdlenia" - działa teraz poprawnie za każdym razem. [Zobacz rozwiązanie] [NEW] Dostępna jest opcja konfiguracyjna do bazy danych! Ustaw MIRROR2DB = 0 i PROTO_FROM_DB = 1, aby łatwo przełączać się między odczytem proto w formacie SQL lub TXT. [Zobacz rozwiązanie] [NEW] Teraz możesz kupować przedmioty ze sklepu za 0 yang, a opis przedmiotu automatycznie ustawiany jest jako "Przedmiot Darmowy". [Zobacz rozwiązanie] Wersja: v1.0 🚀 status: wydana Pokaż ukrytą zawartość Changelog [FIX] Naprawiono błąd z czarowanym ostrzem. Teraz punkty życia są prawidłowo przywracana, zamiast być odejmowanymi. [Zobacz rozwiązanie] [FIX] Naprawiono błąd powodujący, że postać po zalogowaniu pozostawała niewidoczna. [Zobacz rozwiązanie] [FIX] Naprawiono błąd związany z użyciem całego stacku przedmiotów. [Zobacz rozwiązanie] [FIX] Naprawiono błąd powodujący awarię gry związany z nullpointerem w 'setQuestFlag' i 'getQuestFlag'. [Zobacz rozwiązanie] [FIX] Naprawiono automatyczną wymianę przedmiotów w ekwipunku przy braku wolnych slotów. [Zobacz rozwiązanie] [FIX] Zablokowano interakcję z przedmiotami aktualnie noszonymi przez postać. [Zobacz rozwiązanie] [FIX] Naprawiono błąd, pozwalający utworzenie gildii bez wymaganego poziomu. [Zobacz rozwiązanie] [FIX] Naprawiono startowanie procesu bazy danych poprzez problem z nieodpowiednim kodowaniem znaków. [Zobacz rozwiązanie] [FIX] Naprawiono dwuznaczną kolumną 'name' podczas ładowania danych o monarchii. [Zobacz rozwiązanie] [FIX] Naprawiono problem z zablokowanym kursorem myszy podczas obracania kamery i jednoczesnym minimalizowaniu okna gry. [Zobacz rozwiązanie] [REMOVE] Usunięto kod odpowiadający za sprawdzanie licencji serwera, który uniemożliwiał uruchomienie procesu 'game'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany kod modułu 'hackshield'. [Zobacz rozwiązanie] [REMOVE] Usunięto nieużywany kod modułu 'xtrap'. [Zobacz rozwiązanie] [CodeReview] Przeprowadzono rewizję kodu w pliku: 'PythonApplicationProcedure.cpp'. [Zobacz rozwiązanie] [CodeReview] Zoptymalizowano strukturę 'DynamicCharacterPtr' zgodnie z najnowszym standardem. [Zobacz rozwiązanie] Jak oceniacie source?
Opublikowano 21 Lutego 20241 r W dniu 17.09.2023 o 14:24, Bartosz napisał(a): potrzebny Jaka wersja VS kompilować binke?
Opublikowano 24 Lutego 20241 r 1 minutę temu, Sevence napisał(a): Entry będzie cały czas rozwijane. Na co konkretnie czekasz? 🤔 Chciałem dodać kilka systemów np wikidropu panel dungów itp ale jak to dodam to i tak będę musiał później sam dodawać Twoje fixy a z tym już sobie nie poradzę tym bardziej że jak dodaje systemy to zawsze coś dodam żle;) i muszę zaczynać od nowa
Opublikowano 24 Lutego 20241 r Autor Wszystkie zmiany masz na bieżąco dostępne na githubie. entry-core git entry-bin git Zaaktualizowane linki //Delta.
Opublikowano 24 Lutego 20241 r @Sevence trzy pytania odpalam na dwóch urządzeniach czyli wina klienta (przy odpaleniu są lagi zawiesza sie na ok 5 sek ) coś wiadomo na ten temat ? wiadomo kiedy wypuścisz 1.7 i czy będzie dodawany jakiś nowy typ ekwipunku ?
Opublikowano 24 Lutego 20241 r Autor @Roshi Nic mi na ten temat nie wiadomo mało osób testuje jeszcze to źródło. Mogę prosić o jakiś filmik z tych 'lagów'? O jaki nowy typ ekwipunku pytasz? Zasoby są ładowane asynchronicznie wielowątkowo to może powodować problemy na starszym sprzęcie.
Opublikowano 24 Lutego 20241 r w sensie czy coś będziesz edytować w panelu ekwipunku jakieś dodatkowe okna czy coś w tym stylu 😉 bo nwm jak wykorzystać domyślne niby do pasów to jest gdzies slyszalem, ale nwm ) co do zlagowania clienta to jak napotkam ponownie to dam znać bo zauważyłem, że klient po kilku uruchomieniach działa prawidłowo no nic czekamy na następne aktualizacje 😉
Opublikowano 13 Marca 20241 r Gdy dodaje podgląd dropu wyskakuje mi błąd Cytat 1>C:\Klient gry\001 klient src\source\UserInterface\PythonNetworkStreamPhaseGame.cpp(4595,9): error C3861: "SendSequence": identyfikatora nie odnaleziono 1>(kompilowanie pliku źródłowego „/source/UserInterface/PythonNetworkStreamPhaseGame.cpp”) dobra poradziłem sobie a podląd dropu i tak nie działa 😄 EDIT jednak działa Czas dodać kilka innych rzeczy Coś ten dump proto nie działa 😕 🙂 Edytowane 13 Marca 20241 r przez Nietykalny
Opublikowano 4 Kwietnia 20241 r Czy aktualna wersja plików może służyć już jako podstawka pod serwer? Widzę, że jest tu wiele przepisanych funkcji, które nigdy nie były testowane pod większą ilość ludzi online.
Opublikowano 4 Kwietnia 20241 r 8 minut temu, avertus napisał(a): Czy aktualna wersja plików może służyć już jako podstawka pod serwer? Widzę, że jest tu wiele przepisanych funkcji, które nigdy nie były testowane pod większą ilość ludzi online. jeśli dobrze rozbudujesz, obecnie pliki są bardzo wyczyszczone, ciągle aktualizowane ulepszając podstawkę Edytowane 4 Kwietnia 20241 r przez Roshi
Opublikowano 12 Maja 20241 r Autor @bercik231 Szukam testerów, którzy są czujni na każdego rodzaju najmniejsze błędy i będę je zgłaszać. Jeśli chcesz dołączyć napisz mi dane do konta na PW i z głównego tematu pobierz sobie live-server-demo to patcher z którego można pobrać aktualną wersję nad którą pracuje. Jak masz wiedzę techniczną to możesz przyłączyć się do rozwoju od wersji v1.7 będzie dostępna na githubie mile widziane pull requesty.
Opublikowano 14 Maja 20241 r Autor Dzień dobry, Dziś chciałbym podzielić się z Wami ekscytującymi nowościami w najnowszej wersji EntryCore v1.7. Wprowadziłem wiele istotnych zmian w stosunku do poprzednich wersji, co szczegółowo przedstawia changelog. Nowa konfiguracja plików MSM Zawsze irytowały mnie dotychczasowe pliki konfiguracyjne do ładowania modeli, więc postanowiłem wprowadzić kilka kluczowych zmian, aby ułatwić ich organizację. Usunąłem zbędne modele, zostawiający jedynie te bazowe. Uporządkowałem grupy i indexy, aktualizując item_proto, co ułatwi dodawanie nowych przedmiotów zachowując kolejność indexów i nic nie zostanie przypadkowo nadpisane. Zastosowałem nowe formatowanie spacje zamiast tab. Nowa grupa CostumeData W grupie ShapeData, nowe zbroje oraz kostiumy były dotychczas klasyfikowane w ten sam sposób. Postanowiłem wprowadzić nową grupę specjalnie dla kostiumów, aby lepiej je zorganizować i oddzielić od zbroi. Nowa grupa, Group CostumeData, jest przeznaczona specjalnie dla kostiumów. Oto przykładowa struktura: Spoiler Group CostumeData { PathName "d:/ymir work/pc2/assassin/" Group CostumeData00 { CostumeIndex 5000 Model "assassin_costume_tailcoat.gr2" SourceSkin "assassin_costume_tailcoat.dds" TargetSkin "assassin_costume_tailcoat.dds" } } Dynamiczne liczenie grup Jak pewnie zauważyliście, nie ma już atrybutów takich jak HairDataCount, ShapeDataCount czy CostumeDataCount. Możecie zapomnieć o ręcznym aktualizowaniu ilości grup, ponieważ teraz są one liczone dynamicznie. Ważna uwaga: należy odpowiednio numerować grupy, aby były w właściwej kolejności. W przeciwnym razie grupa nie zostanie zaindeksowana. Porównanie plików MSM Przed aktualizacją (v1.6): Spoiler ScriptType RaceDataScript BaseModelFileName "d:/ymir work/pc2/assassin/assassin_novice.GR2" Group HairData { PathName "d:/ymir Work/pc2/assassin/" HairDataCount 56 Group HairData00 { HairIndex 0 Model "hair/hair_1_1.gr2" SourceSkin "hair/hair_1_1.dds" TargetSkin "assassin_hair_01.dds" } Group HairData01 { HairIndex 1 Model "hair/hair_1_1.gr2" SourceSkin "hair/hair_1_1.dds" TargetSkin "assassin_hair_01_white.dds" } Group HairData02 { HairIndex 2 Model "hair/hair_1_1.gr2" SourceSkin "hair/hair_1_1.dds" TargetSkin "assassin_hair_01_gold.dds" } Group HairData03 { HairIndex 3 Model "hair/hair_1_1.gr2" SourceSkin "hair/hair_1_1.dds" TargetSkin "assassin_hair_01_red.dds" } Group HairData04 { HairIndex 4 Model "hair/hair_1_1.gr2" SourceSkin "hair/hair_1_1.dds" TargetSkin "assassin_hair_01_brown.dds" } Group HairData05 { HairIndex 5 Model "hair/hair_1_1.gr2" SourceSkin "hair/hair_1_1.dds" TargetSkin "assassin_hair_01_black.dds" } Group HairData06 { HairIndex 2001 Model "hair/hair_2_1.gr2" SourceSkin "hair/hair_2_1.dds" TargetSkin "hair/hair_2_1.dds" } Group HairData07 { HairIndex 2002 Model "hair/hair_2_1.gr2" SourceSkin "hair/hair_2_1.dds" TargetSkin "hair/hair_2_2.dds" } Group HairData08 { HairIndex 2003 Model "hair/hair_2_1.gr2" SourceSkin "hair/hair_2_1.dds" TargetSkin "hair/hair_2_3.dds" } Group HairData09 { HairIndex 2004 Model "hair/hair_2_1.gr2" SourceSkin "hair/hair_2_1.dds" TargetSkin "hair/hair_2_4.dds" } Group HairData10 { HairIndex 2005 Model "hair/hair_3_1.gr2" SourceSkin "hair/hair_3_1.dds" TargetSkin "hair/hair_3_1.dds" } Group HairData11 { HairIndex 2006 Model "hair/hair_3_1.gr2" SourceSkin "hair/hair_3_1.dds" TargetSkin "hair/hair_3_2.dds" } Group HairData12 { HairIndex 2007 Model "hair/hair_3_1.gr2" SourceSkin "hair/hair_3_1.dds" TargetSkin "hair/hair_3_3.dds" } Group HairData13 { HairIndex 2008 Model "hair/hair_3_1.gr2" SourceSkin "hair/hair_3_1.dds" TargetSkin "hair/hair_3_4.dds" } Group HairData14 { HairIndex 2009 Model "hair/hair_4_1.gr2" SourceSkin "hair/hair_4_1.dds" TargetSkin "hair/hair_4_1.dds" } Group HairData15 { HairIndex 2010 Model "hair/hair_4_1.gr2" SourceSkin "hair/hair_4_1.dds" TargetSkin "hair/hair_4_2.dds" } Group HairData16 { HairIndex 2011 Model "hair/hair_4_1.gr2" SourceSkin "hair/hair_4_1.dds" TargetSkin "hair/hair_4_3.dds" } Group HairData17 { HairIndex 2012 Model "hair/hair_4_1.gr2" SourceSkin "hair/hair_4_1.dds" TargetSkin "hair/hair_4_4.dds" } Group HairData18 { HairIndex 2013 Model "hair/hair_6_1.gr2" SourceSkin "hair/hair_6_1.dds" TargetSkin "hair/hair_6_1.dds" } Group HairData19 { HairIndex 2014 Model "hair/hair_5_1.gr2" SourceSkin "hair/hair_5_1.dds" TargetSkin "hair/hair_5_1.dds" } Group HairData20 { HairIndex 2015 Model "hair/hair_7_1.gr2" SourceSkin "hair/hair_7_1.dds" TargetSkin "hair/hair_7_1.dds" } Group HairData21 { HairIndex 2016 Model "hair/hair_8_1.gr2" SourceSkin "hair/hair_8_1.dds" TargetSkin "hair/hair_8_1.dds" } Group HairData22 { HairIndex 2017 Model "hair/hair_9_1.gr2" SourceSkin "hair/hair_9_1.dds" TargetSkin "hair/hair_9_1.dds" } Group HairData23 { HairIndex 2018 Model "hair/hair_10_1.gr2" SourceSkin "hair/hair_10_1.dds" TargetSkin "hair/hair_10_1.dds" } Group HairData24 { HairIndex 5000 Model "hair/hair_costume_musketeer.gr2" SourceSkin "hair/hair_costume_musketeer.dds" TargetSkin "hair/hair_costume_musketeer.dds" } Group HairData25 { HairIndex 5002 Model "hair/hair_14_1.gr2" SourceSkin "hair/hair_14_1.dds" TargetSkin "hair/hair_14_1.dds" } Group HairData26 { HairIndex 5005 Model "hair/hair_15_1.gr2" SourceSkin "hair/hair_15_1.dds" TargetSkin "hair/hair_15_1.dds" } Group HairData27 { HairIndex 5003 Model "hair/hair_16_1.gr2" SourceSkin "hair/hair_16_1.dds" TargetSkin "hair/hair_16_1.dds" } Group HairData28 { HairIndex 5004 Model "hair/hair_17_1.gr2" SourceSkin "hair/hair_17_1.dds" TargetSkin "hair/hair_17_1.dds" } Group HairData29 { HairIndex 5027 Model "hair/hair_20_1.gr2" SourceSkin "hair/hair_20_1.dds" TargetSkin "hair/hair_20_1.dds" } Group HairData30 { HairIndex 5023 Model "hair/hair_13_1.gr2" SourceSkin "hair/hair_13_1.dds" TargetSkin "hair/hair_13_1.dds" } Group HairData31 { HairIndex 5024 Model "hair/hair_18_1.gr2" SourceSkin "hair/hair_18_1.dds" TargetSkin "hair/hair_18_1.dds" } Group HairData32 { HairIndex 5025 Model "hair/hair_19_1.gr2" SourceSkin "hair/hair_19_1.dds" TargetSkin "hair/hair_19_1.dds" } Group HairData33 { HairIndex 5028 Model "hair/hair_22_1.gr2" SourceSkin "hair/hair_22_1.dds" TargetSkin "hair/hair_22_3.dds" } Group HairData34 { HairIndex 5029 Model "hair/hair_22_1.gr2" SourceSkin "hair/hair_22_1.dds" TargetSkin "hair/hair_22_2.dds" } Group HairData35 { HairIndex 5030 Model "hair/hair_22_1.gr2" SourceSkin "hair/hair_22_1.dds" TargetSkin "hair/hair_22_1.dds" } Group HairData36 { HairIndex 5031 Model "hair/hair_23_1.gr2" SourceSkin "hair/hair_23_1.dds" TargetSkin "hair/hair_23_1.dds" } Group HairData37 { HairIndex 5033 Model "hair/hair_24_1.gr2" SourceSkin "hair/hair_24_1.dds" TargetSkin "hair/hair_24_1.dds" } Group HairData38 { HairIndex 5035 Model "hair/hair_24_1.gr2" SourceSkin "hair/hair_24_1.dds" TargetSkin "hair/hair_24_2.dds" } Group HairData39 { HairIndex 5037 Model "hair/hair_24_1.gr2" SourceSkin "hair/hair_24_1.dds" TargetSkin "hair/hair_24_3.dds" } Group HairData40 { HairIndex 5039 Model "hair/hair_24_1.gr2" SourceSkin "hair/hair_24_1.dds" TargetSkin "hair/hair_24_4.dds" } Group HairData41 { HairIndex 5041 Model "hair/hair_24_1.gr2" SourceSkin "hair/hair_24_1.dds" TargetSkin "hair/hair_24_5.dds" } Group HairData42 { HairIndex 5026 Model "hair/hair_21_1.gr2" SourceSkin "hair/hair_21_1.dds" TargetSkin "hair/hair_21_1.dds" } Group HairData43 { HairIndex 5045 Model "hair/hair_11_1.gr2" SourceSkin "hair/hair_11_1.dds" TargetSkin "hair/hair_11_2.dds" } Group HairData44 { HairIndex 5046 Model "hair/hair_11_1.gr2" SourceSkin "hair/hair_11_1.dds" TargetSkin "hair/hair_11_3.dds" } Group HairData45 { HairIndex 5047 Model "hair/hair_11_1.gr2" SourceSkin "hair/hair_11_1.dds" TargetSkin "hair/hair_11_4.dds" } Group HairData46 { HairIndex 5048 Model "hair/hair_11_1.gr2" SourceSkin "hair/hair_11_1.dds" TargetSkin "hair/hair_11_5.dds" } Group HairData47 { HairIndex 5049 Model "hair/hair_28_1.gr2" SourceSkin "hair/hair_28_1.dds" TargetSkin "hair/hair_28_1.dds" } Group HairData48 { HairIndex 5050 Model "hair/hair_28_1.gr2" SourceSkin "hair/hair_28_1.dds" TargetSkin "hair/hair_28_1.dds" } Group HairData49 { HairIndex 5051 Model "hair/hair_29_1.gr2" SourceSkin "hair/hair_29_1.dds" TargetSkin "hair/hair_29_1.dds" } Group HairData50 { HairIndex 5052 Model "hair/hair_30_1.gr2" SourceSkin "hair/hair_30_1.dds" TargetSkin "hair/hair_30_1.dds" } Group HairData51 { HairIndex 5053 Model "hair/hair_31_1.gr2" SourceSkin "hair/hair_31_1.dds" TargetSkin "hair/hair_31_1.dds" } Group HairData52 { HairIndex 5054 Model "hair/hair_32_1.gr2" SourceSkin "hair/hair_32_1.dds" TargetSkin "hair/hair_32_1.dds" } Group HairData53 { HairIndex 5055 Model "hair/hair_14_1.gr2" SourceSkin "hair/hair_14_1.dds" TargetSkin "hair/hair_14_2.dds" } Group HairData54 { HairIndex 5057 Model "hair/hair_33_1.gr2" SourceSkin "hair/hair_33_1.dds" TargetSkin "hair/hair_33_1.dds" } Group HairData55 { HairIndex 5059 Model "hair/hair_34_1.gr2" SourceSkin "hair/hair_34_1.dds" TargetSkin "hair/hair_34_1.dds" } } Group ShapeData { PathName "d:/ymir Work/pc2/assassin/" ShapeDataCount 112 Group ShapeData00 { ShapeIndex 0 Model "assassin_novice.GR2" SourceSkin "assassin_novice_red.dds" TargetSkin "assassin_novice_red.dds" } Group ShapeData01 { ShapeIndex 1 Model "assassin_novice.GR2" SourceSkin "assassin_novice_red.dds" TargetSkin "assassin_novice_green.dds" } Group ShapeData02 { ShapeIndex 3 Model "assassin_tanma.GR2" SourceSkin "assassin_tanma.DDS" TargetSkin "assassin_tanma.dds" } Group ShapeData03 { ShapeIndex 4 Model "assassin_tanma.GR2" SourceSkin "assassin_tanma.DDS" TargetSkin "assassin_geukseom.dds" } Group ShapeData04 { ShapeIndex 5 Model "assassin_tanma.GR2" SourceSkin "assassin_tanma.DDS" TargetSkin "assassin_dahong.dds" } Group ShapeData05 { ShapeIndex 6 Model "assassin_biyeong.GR2" SourceSkin "assassin_biyeong.DDS" TargetSkin "assassin_biyeong.DDS" } Group ShapeData06 { ShapeIndex 7 Model "assassin_biyeong.GR2" SourceSkin "assassin_biyeong.DDS" TargetSkin "assassin_yeongrin.DDS" } Group ShapeData07 { ShapeIndex 8 Model "assassin_biyeong.GR2" SourceSkin "assassin_biyeong.DDS" TargetSkin "assassin_jeoksal.DDS" } Group ShapeData08 { ShapeIndex 9 Model "assassin_yonga.GR2" SourceSkin "assassin_yonga.DDS" TargetSkin "assassin_yonga.DDS" } Group ShapeData09 { ShapeIndex 10 Model "assassin_yonga.GR2" SourceSkin "assassin_yonga.DDS" TargetSkin "assassin_salpung.DDS" } Group ShapeData10 { ShapeIndex 11 Model "assassin_bihyeon.GR2" SourceSkin "assassin_bihyeon.DDS" TargetSkin "assassin_bihyeon.DDS" } Group ShapeData11 { SpecialPath "d:/ymir work/monster/wolf/" ShapeIndex 100 Model "wolf.gr2" SourceSkin "wolf.dds" } Group ShapeData12 { SpecialPath "d:/ymir work/monster/wild_boar/" ShapeIndex 101 Model "wild_boar.gr2" SourceSkin "wild_boar.dds" } Group ShapeData13 { SpecialPath "d:/ymir work/monster/bear/" ShapeIndex 102 Model "bear.gr2" SourceSkin "bear.dds" } Group ShapeData14 { SpecialPath "d:/ymir work/monster/tiger/" ShapeIndex 103 Model "tiger.gr2" SourceSkin "tiger.dds" } Group ShapeData15 { SpecialPath "d:/ymir work/pc2/assassin/" ShapeIndex 201 Model "assassin_marry_01.GR2" SourceSkin "assassin_marry_01.dds" TargetSkin "assassin_marry_01.dds" } Group ShapeData16 { ShapeIndex 12 Model "assassin_4-1.gr2" SourceSkin "assassin_4-1.dds" TargetSkin "assassin_4-1.dds" } Group ShapeData17 { ShapeIndex 24 Model "assassin_lord.GR2" SourceSkin "assassin_queen01.dds" TargetSkin "assassin_queen01.dds" } Group ShapeData18 { ShapeIndex 14 Model "assassin_tanma.GR2" SourceSkin "assassin_tanma.DDS" TargetSkin "assassin_1-1_tanma_a.DDS" } Group ShapeData19 { ShapeIndex 15 Model "assassin_tanma.GR2" SourceSkin "assassin_tanma.DDS" TargetSkin "assassin_1-2_geukseom_a.DDS" } Group ShapeData20 { ShapeIndex 16 Model "assassin_tanma.GR2" SourceSkin "assassin_tanma.DDS" TargetSkin "assassin_1-3_dahong_a.DDS" } Group ShapeData21 { ShapeIndex 17 Model "assassin_biyeong.GR2" SourceSkin "assassin_biyeong.DDS" TargetSkin "assassin_2-1_biyeong_a.DDS" } Group ShapeData22 { ShapeIndex 18 Model "assassin_biyeong.GR2" SourceSkin "assassin_biyeong.DDS" TargetSkin "assassin_2-2_yeongrin_a.DDS" } Group ShapeData23 { ShapeIndex 19 Model "assassin_biyeong.GR2" SourceSkin "assassin_biyeong.DDS" TargetSkin "assassin_2-3_jeoksal_a.DDS" } Group ShapeData24 { ShapeIndex 20 Model "assassin_yonga.GR2" SourceSkin "assassin_yonga.DDS" TargetSkin "assassin_3-1_yonga_a.DDS" } Group ShapeData25 { ShapeIndex 21 Model "assassin_yonga.GR2" SourceSkin "assassin_yonga.DDS" TargetSkin "assassin_salpung_a.dds" } Group ShapeData26 { ShapeIndex 25 Model "assassin_lord.GR2" SourceSkin "assassin_queen01.dds" TargetSkin "assassin_queen02.dds" } Group ShapeData27 { SpecialPath "d:/ymir Work/pc2/assassin/" ShapeIndex 26 Model "assassin_4-1.GR2" SourceSkin "assassin_4-1.dds" TargetSkin "assassin_4-2.dds" } Group ShapeData28 { ShapeIndex 27 Model "assassin_event1.GR2" SourceSkin "assassin_event1_yellow.dds" TargetSkin "assassin_event1_red.dds" } Group ShapeData29 { ShapeIndex 28 Model "assassin_event1.GR2" SourceSkin "assassin_event1_yellow.dds" TargetSkin "assassin_event1_yellow.dds" } Group ShapeData30 { ShapeIndex 29 Model "assassin_event1.GR2" SourceSkin "assassin_event1_yellow.dds" TargetSkin "assassin_event1_blue.dds" } Group ShapeData31 { ShapeIndex 30 Model "assassin_tanma.gr2" SourceSkin "assassin_tanma.dds" TargetSkin "assassin_costume1.dds" } Group ShapeData32 { ShapeIndex 1000 Model "assassin_costume_tailcoat.gr2" SourceSkin "assassin_costume_tailcoat.dds" TargetSkin "assassin_costume_tailcoat.dds" } Group ShapeData33 { ShapeIndex 40033 Model "assassin_fencing1_Germany.GR2" SourceSkin "assasin_fencing1_Germany.dds" TargetSkin "assassin_fencing1_London.dds" } Group ShapeData34 { ShapeIndex 40034 Model "assassin_fencing1_Germany.GR2" SourceSkin "assasin_fencing1_Germany.dds" TargetSkin "assasin_fencing1_Germany.dds" } Group ShapeData35 { ShapeIndex 40035 Model "assassin_fencing1_Germany.GR2" SourceSkin "assasin_fencing1_Germany.dds" TargetSkin "assassin_fencing1_Turkey.dds" } Group ShapeData36 { ShapeIndex 40036 Model "assassin_fencing1_Germany.GR2" SourceSkin "assasin_fencing1_Germany.dds" TargetSkin "assassin_fencing1_Brazil.dds" } Group ShapeData37 { ShapeIndex 40037 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_soccer1_London.dds" } Group ShapeData38 { ShapeIndex 40038 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assasin_soccer1_Germany.dds" } Group ShapeData39 { ShapeIndex 40039 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_soccer1_Turkey.dds" } Group ShapeData40 { ShapeIndex 40040 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_soccer1_Brazil.dds" } Group ShapeData41 { ShapeIndex 40041 Model "assassin_boxing1_Germany.GR2" SourceSkin "assassin_boxing1_Germany.dds" TargetSkin "assassin_boxing1_London.dds" } Group ShapeData42 { ShapeIndex 40042 Model "assassin_boxing1_Germany.GR2" SourceSkin "assassin_boxing1_Germany.dds" TargetSkin "assassin_boxing1_Germany.dds" } Group ShapeData43 { ShapeIndex 40043 Model "assassin_boxing1_Germany.GR2" SourceSkin "assassin_boxing1_Germany.dds" TargetSkin "assassin_boxing1_Turkey.dds" } Group ShapeData44 { ShapeIndex 40044 Model "assassin_boxing1_Germany.GR2" SourceSkin "assassin_boxing1_Germany.dds" TargetSkin "assassin_boxing1_Brazil.dds" } Group ShapeData45 { ShapeIndex 40032 Model "assassin_assasin1.GR2" SourceSkin "assassin_assasin1.dds" TargetSkin "assassin_assasin1.dds" } Group ShapeData46 { ShapeIndex 40045 Model "assassin_fencing1_Germany.GR2" SourceSkin "assasin_fencing1_Germany.dds" TargetSkin "assassin_fencing1_France.dds" } Group ShapeData47 { ShapeIndex 40046 Model "assassin_fencing1_Germany.GR2" SourceSkin "assasin_fencing1_Germany.dds" TargetSkin "assassin_fencing1_Italy.dds" } Group ShapeData48 { ShapeIndex 40047 Model "assassin_fencing1_Germany.GR2" SourceSkin "assasin_fencing1_Germany.dds" TargetSkin "assassin_fencing1_Poland.dds" } Group ShapeData49 { ShapeIndex 40048 Model "assassin_fencing1_Germany.GR2" SourceSkin "assasin_fencing1_Germany.dds" TargetSkin "assassin_fencing1_Romania.dds" } Group ShapeData50 { ShapeIndex 40049 Model "assassin_fencing1_Germany.GR2" SourceSkin "assasin_fencing1_Germany.dds" TargetSkin "assassin_fencing1_Spain.dds" } Group ShapeData51 { ShapeIndex 40050 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_soccer1_France.dds" } Group ShapeData52 { ShapeIndex 40051 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_soccer1_Italy.dds" } Group ShapeData53 { ShapeIndex 40052 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_soccer1_Poland.dds" } Group ShapeData54 { ShapeIndex 40053 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_soccer1_Romania.dds" } Group ShapeData55 { ShapeIndex 40054 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_soccer1_Spain.dds" } Group ShapeData56 { ShapeIndex 40055 Model "assassin_boxing1_Germany.GR2" SourceSkin "assassin_boxing1_Germany.dds" TargetSkin "assassin_boxing1_France.dds" } Group ShapeData57 { ShapeIndex 40056 Model "assassin_boxing1_Germany.GR2" SourceSkin "assassin_boxing1_Germany.dds" TargetSkin "assassin_boxing1_Italy.dds" } Group ShapeData58 { ShapeIndex 40057 Model "assassin_boxing1_Germany.GR2" SourceSkin "assassin_boxing1_Germany.dds" TargetSkin "assassin_boxing1_Poland.dds" } Group ShapeData59 { ShapeIndex 40058 Model "assassin_boxing1_Germany.GR2" SourceSkin "assassin_boxing1_Germany.dds" TargetSkin "assassin_boxing1_Romania.dds" } Group ShapeData60 { ShapeIndex 40059 Model "assassin_boxing1_Germany.GR2" SourceSkin "assassin_boxing1_Germany.dds" TargetSkin "assassin_boxing1_Spain.dds" } Group ShapeData61 { ShapeIndex 40065 Model "assassin_halloween1.GR2" SourceSkin "assassin_halloween1.dds" TargetSkin "assassin_halloween1.dds" } Group ShapeData62 { ShapeIndex 13 Model "assassin_5_1.gr2" SourceSkin "assassin_5_1.dds" TargetSkin "assassin_5_1.dds" } Group ShapeData63 { ShapeIndex 40062 Model "assassin_salsa1.GR2" SourceSkin "assassin_salsa1.dds" TargetSkin "assassin_salsa1.dds" } Group ShapeData64 { ShapeIndex 40063 Model "assassin_Springwear1.GR2" SourceSkin "assassin_Springwear1.dds" TargetSkin "assassin_Springwear1.dds" } Group ShapeData65 { ShapeIndex 40061 Model "assassin_tailcoat1.gr2" SourceSkin "assassin_tailcoat1.dds" TargetSkin "assassin_tailcoat1.dds" } Group ShapeData66 { ShapeIndex 40069 Model "assassin_deer1.gr2" SourceSkin "assassin_deer1.dds" TargetSkin "assassin_deer1.dds" } Group ShapeData67 { ShapeIndex 40066 Model "assassin_santa1_black.gr2" SourceSkin "assassin_santa1_black.dds" TargetSkin "assassin_santa1_red.dds" } Group ShapeData68 { ShapeIndex 40067 Model "assassin_santa1_black.gr2" SourceSkin "assassin_santa1_black.dds" TargetSkin "assassin_santa1_green.dds" } Group ShapeData69 { ShapeIndex 40068 Model "assassin_santa1_black.gr2" SourceSkin "assassin_santa1_black.dds" TargetSkin "assassin_santa1_black.dds" } Group ShapeData70 { ShapeIndex 40070 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA01.dds" } Group ShapeData71 { ShapeIndex 40071 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA02.dds" } Group ShapeData72 { ShapeIndex 40072 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA03.dds" } Group ShapeData73 { ShapeIndex 40073 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA04.dds" } Group ShapeData74 { ShapeIndex 40074 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA05.dds" } Group ShapeData75 { ShapeIndex 40075 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA06.dds" } Group ShapeData76 { ShapeIndex 40076 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA07.dds" } Group ShapeData77 { ShapeIndex 40077 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA08.dds" } Group ShapeData78 { ShapeIndex 40078 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA09.dds" } Group ShapeData79 { ShapeIndex 40079 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA10.dds" } Group ShapeData80 { ShapeIndex 40080 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA11.dds" } Group ShapeData81 { ShapeIndex 40081 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA12.dds" } Group ShapeData82 { ShapeIndex 40082 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA13.dds" } Group ShapeData83 { ShapeIndex 40083 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA14.dds" } Group ShapeData84 { ShapeIndex 40084 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA15.dds" } Group ShapeData85 { ShapeIndex 40085 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA16.dds" } Group ShapeData86 { ShapeIndex 40086 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA17.dds" } Group ShapeData87 { ShapeIndex 40087 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA18.dds" } Group ShapeData88 { ShapeIndex 40088 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA19.dds" } Group ShapeData89 { ShapeIndex 40089 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA20.dds" } Group ShapeData90 { ShapeIndex 40090 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA21.dds" } Group ShapeData91 { ShapeIndex 40091 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA22.dds" } Group ShapeData92 { ShapeIndex 40092 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA23.dds" } Group ShapeData93 { ShapeIndex 40093 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA24.dds" } Group ShapeData94 { ShapeIndex 40094 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA25.dds" } Group ShapeData95 { ShapeIndex 40095 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA26.dds" } Group ShapeData96 { ShapeIndex 40096 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA27.dds" } Group ShapeData97 { ShapeIndex 40097 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA28.dds" } Group ShapeData98 { ShapeIndex 40098 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA29.dds" } Group ShapeData99 { ShapeIndex 40099 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA30.dds" } Group ShapeData100 { ShapeIndex 40100 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA31.dds" } Group ShapeData101 { ShapeIndex 40101 Model "assasin_soccer1_Germany.GR2" SourceSkin "assasin_soccer1_Germany.dds" TargetSkin "assassin_UEFA32.dds" } Group ShapeData102 { ShapeIndex 40064 Model "assassin_samurai1.GR2" SourceSkin "assassin_samurai1.dds" TargetSkin "assassin_samurai1.dds" } Group ShapeData103 { ShapeIndex 40106 Model "assassin_rabbit1.GR2" SourceSkin "assassin_rabbit1.dds" TargetSkin "assassin_rabbit1_black.dds" } Group ShapeData104 { ShapeIndex 40107 Model "assassin_rabbit1.GR2" SourceSkin "assassin_rabbit1.dds" TargetSkin "assassin_rabbit1_blue.dds" } Group ShapeData105 { ShapeIndex 40108 Model "assassin_rabbit1.GR2" SourceSkin "assassin_rabbit1.dds" TargetSkin "assassin_rabbit1_green.dds" } Group ShapeData106 { ShapeIndex 40109 Model "assassin_rabbit1.GR2" SourceSkin "assassin_rabbit1.dds" TargetSkin "assassin_rabbit1_pink.dds" } Group ShapeData107 { ShapeIndex 40110 Model "assassin_BlackSnake1.GR2" SourceSkin "assassin_BlackSnake1.dds" TargetSkin "assassin_BlackSnake1.dds" } Group ShapeData108 { ShapeIndex 40111 Model "assassin_BlackSnake1.GR2" SourceSkin "assassin_BlackSnake1.dds" TargetSkin "assassin_BlackSnake1.dds" } Group ShapeData109 { ShapeIndex 40112 Model "assassin_assasin1.GR2" SourceSkin "assassin_assasin1.dds" TargetSkin "assassin_assasin2.dds" } Group ShapeData110 { ShapeIndex 40114 Model "assassin_pwahuang1.GR2" SourceSkin "assassin_pwahuang1.dds" TargetSkin "assassin_pwahuang1.dds" } Group ShapeData111 { ShapeIndex 40116 Model "assassin_halloween2.GR2" SourceSkin "assassin_halloween2.dds" TargetSkin "assassin_halloween2.dds" } } Group AttachingData { AttachingDataCount 2 Group AttachingData00 { AttachingDataType 1 isAttaching 0 AttachingModelIndex 0 AttachingBoneName "Bip01" CollisionType 1 SphereDataCount 1 Group SphereData00 { Radius 40.000000 Position 0.000000 0.000000 90.000000 } } Group AttachingData01 { AttachingDataType 1 isAttaching 0 AttachingModelIndex 0 AttachingBoneName "Bip01" CollisionType 3 SphereDataCount 1 Group SphereData00 { Radius 70.000000 Position 0.000000 0.000000 90.000000 } } } Po aktualizacji (v1.7): Spoiler ScriptType RaceDataScript BaseModelFileName "d:/ymir work/pc2/assassin/assassin_novice.gr2" Group ShapeData { PathName "d:/ymir work/pc2/assassin/" Group ShapeData00 { ShapeIndex 0 Model "assassin_novice.gr2" SourceSkin "assassin_novice_red.dds" TargetSkin "assassin_novice_red.dds" } Group ShapeData01 { ShapeIndex 1 Model "assassin_novice.gr2" SourceSkin "assassin_novice_red.dds" TargetSkin "assassin_novice_green.dds" } Group ShapeData02 { ShapeIndex 2 Model "assassin_tanma.gr2" SourceSkin "assassin_tanma.dds" TargetSkin "assassin_tanma.dds" } Group ShapeData03 { ShapeIndex 3 Model "assassin_tanma.gr2" SourceSkin "assassin_tanma.dds" TargetSkin "assassin_geukseom.dds" } Group ShapeData04 { ShapeIndex 4 Model "assassin_tanma.gr2" SourceSkin "assassin_tanma.dds" TargetSkin "assassin_dahong.dds" } Group ShapeData05 { ShapeIndex 5 Model "assassin_biyeong.gr2" SourceSkin "assassin_biyeong.dds" TargetSkin "assassin_biyeong.dds" } Group ShapeData06 { ShapeIndex 6 Model "assassin_biyeong.gr2" SourceSkin "assassin_biyeong.dds" TargetSkin "assassin_yeongrin.dds" } Group ShapeData07 { ShapeIndex 7 Model "assassin_biyeong.gr2" SourceSkin "assassin_biyeong.dds" TargetSkin "assassin_jeoksal.dds" } Group ShapeData08 { ShapeIndex 8 Model "assassin_yonga.gr2" SourceSkin "assassin_yonga.dds" TargetSkin "assassin_yonga.dds" } Group ShapeData09 { ShapeIndex 9 Model "assassin_yonga.gr2" SourceSkin "assassin_yonga.dds" TargetSkin "assassin_salpung.dds" } Group ShapeData10 { ShapeIndex 10 Model "assassin_bihyeon.gr2" SourceSkin "assassin_bihyeon.dds" TargetSkin "assassin_bihyeon.dds" } Group ShapeData11 { ShapeIndex 11 Model "assassin_4-1.gr2" SourceSkin "assassin_4-1.dds" TargetSkin "assassin_4-1.dds" } Group ShapeData12 { ShapeIndex 12 Model "assassin_4-1.gr2" SourceSkin "assassin_4-1.dds" TargetSkin "assassin_4-2.dds" } } Group HairData { PathName "d:/ymir Work/pc2/assassin/" Group HairData00 { HairIndex 0 Model "hair/hair_1_1.gr2" SourceSkin "hair/hair_1_1.dds" TargetSkin "hair/assassin_hair_01.dds" } Group HairData01 { HairIndex 1 Model "hair/hair_costume_musketeer.gr2" SourceSkin "hair/hair_costume_musketeer.dds" TargetSkin "hair/hair_costume_musketeer.dds" } } Group CostumeData { PathName "d:/ymir work/pc2/assassin/" Group CostumeData00 { CostumeIndex 5000 Model "assassin_marry_01.GR2" SourceSkin "assassin_marry_01.dds" TargetSkin "assassin_marry_01.dds" } Group CostumeData01 { CostumeIndex 5001 Model "assassin_costume_tailcoat.gr2" SourceSkin "assassin_costume_tailcoat.dds" TargetSkin "assassin_costume_tailcoat.dds" } } Group AttachingData { AttachingDataCount 2 Group AttachingData00 { AttachingDataType 1 isAttaching 0 AttachingModelIndex 0 AttachingBoneName "Bip01" CollisionType 1 SphereDataCount 1 Group SphereData00 { Radius 40.000000 Position 0.000000 0.000000 90.000000 } } Group AttachingData01 { AttachingDataType 1 isAttaching 0 AttachingModelIndex 0 AttachingBoneName "Bip01" CollisionType 3 SphereDataCount 1 Group SphereData00 { Radius 70.000000 Position 0.000000 0.000000 90.000000 } } } Poprawki błędów Wersja 1.7 zawiera aż 71 nowych poprawek błędów, w tym wiele krytycznych, które znacząco poprawiają stabilność i wydajność. Zredukowana waga klienta gry Jednym z moich kluczowych celów było zmniejszenie wagi klienta gry przy jednoczesnym zachowaniu niezbędnych plików. Dokonałem gruntownej przebudowy klienta, opierając się na najnowszej wersji z oficjalnego serwera. Dzięki temu usunąłem wiele powielonych plików, poprawiłem modele, zoptymalizowałem tekstury oraz usunąłem wszystkie zbędne elementy. Skupiłem się głównie na folderach: property, zone, interface, code, monster, npc, environment, textureset oraz terrain. Wszystkie te patche dokładnie przejrzałem i zmodyfikowałem, dostosowując je do nowej struktury. Bazowa wersja klienta gry (v1.6) ważyła po spakowaniu 883 MB, natomiast nowa (v1.7), oczyszczona wersja waży jedynie 554 MB, co stanowi redukcję o około 37% Obsługa livdevil w wersji 1.8! Postanowiłem zaktualizować libdevil do najnowszej wersji 1.8. Wiele osób próbowało tego dokonać, jednak często napotykały problemy z ładowaniem i dodawaniem ikon. Udało mi się rozwiązać wszystkie błędy spowodowane aktualizacją biblioteki, dzięki czemu klient gry korzysta teraz z najnowszej wersji devil.dll 1.8 z obsługą plików JPEG, PNG i TGA. Wymagało to dostosowania kodu do zmian w najnowszej bibliotece. Zmiany w plikach property Kolejna duża zmiana to nowe formatowanie plików property. Każdy plik został zmodyfikowany do nowego formatu, w którym najpierw określany jest propertytype, następnie propertyname, potem lokalizacja obiektu (buildingfile), a także dodany został nowy atrybut isattributedata. Ta konwersja jest bardziej logiczna i uporządkowana. Oczywiście, wszystkie właściwości, które się nadpisywały, zostały poprawione. Teraz po krótce o nowym atrybucie isattributedata: możesz określić w każdym properties, czy dla danego modelu będzie ładowany plik kolizji obiektu (.mdatr). Domyślnie plik jest ładowany, ale możesz go z łatwością wyłączyć. Nie wszystkie obiekty posiadają taki plik i nie ma potrzeby jego ładowania, jeśli go nie ma. Na zakończenie To po krótce ważniejsze zmiany, choć było ich znacznie więcej. Wszystkie możesz zobaczyć w changelogu. Teraz robię kilka dni przerwy, a następnie zaczynam pracę nad nową wersją v1.8. Wprowadzam zmiany w taki sposób, że każda modyfikacja będzie commitem na GitHubie. Wszystkie poprawki w plikach serwerowych i strukturach bazy danych będą miały podlinkowane paczki z instrukcją do pobrania. Wersja v1.7 jest stabilną wersją i możesz na niej opierać swój projekt. Oferuję pełne wsparcie w razie problemów i wspieram osoby, które zdecydują się użyć tego źródła. Wszystkie błędy, które mi zgłaszacie, analizuję i staram się na bieżąco poprawiać. Przed wydaniem v1.7 zostały rozwiązane wszystkie zgłoszone problemy. Każdy bez problemu będzie mógł patchować źródło w ramach nowej wersji v1.8, ponieważ każda zmiana będzie miała szczegółowy opis i instrukcje. To wszystko na dziś. Mam nadzieję, że doceniasz moją pracę i przyczynisz się do rozwoju projektu. 😉
Opublikowano 15 Maja 20241 r Jest możliwość pograć na tych plikach? Tzn ma ktoś odpalony serwer na vps/dedyku i udostępni aby wejść pograć?
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ą.