Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 01/22/2020 in all areas

  1. 14 points
    Cześć, Widząc rakowisko, które próbuje odsprzedawać za grosze coś co i tak ma z resellu, a w dodatku tak na dobrą sprawę sami do końca nie mają świadomości tego co dostali i co sprzedają, zalewa mnie krew. Najbardziej żal mi ludzi, którzy wydają na to pieniądze. Jest to najlepsza z udostępnionych podstawek, macie połatany każdy krytyczny błąd. Włoskie locale, bo jest to paczka która poszła do Włochów. Same w sobie pliki i source nie posiadają żadnych udziwnień także bez problemu zadziała tutaj locale (i clientowe i serwerowe) z jakiegoś Terenza. Wersja z końcówki 2016 roku, czyli okolice wypuszczenia v9. Nie wrzucam Wam całej paczki, bo nie ma sensu - macie tutaj jej najważniejsze elementy. Jeśli ładnie poprosicie wrzucę wam gotową vmkę i dedykowane polskie locale, ale chciałbym żebyście włożyli w to wszystko troszkę swojej pracy. W paczce z plikami dorzuciłem gratisowo koreańskie (ymir) questy. Generalny opis plików [Hidden Content] Client, którego można użyć jako podstawki [Hidden Content] Packer Decripter_of_Client.rar Pliki serwerowe na pythonie file_server.tar.gz Source Source_Rozszerzone.tar.gz Tabelki Table_of_Navicat.rar MySQL2Proto Tools.rar Wiem, że to nie fair, ale nie udostępniłem tutaj nic, co nie jest już dostępne w internecie - trzeba troszkę poszukać.
  2. 8 points
    Witam i łapcie sety od Bombwork'a BOMBWORK_New.rar Skan: [Hidden Content]
  3. 5 points
    Pobieranie: Strona do rejestracji Konfiguracja: Instalujemy Apache2.4: pkg install apache24 Łączymy się z WinSCP, przechodzimy do /etc/ szukamy i edytujemy plik rc.conf, dopisując na końcu tego pliku: apache24_enable="YES" Uruchamiamy Apache: service apache24 start Instalujemy PHP i najpopularniejsze moduły do niego: pkg install mod_php56 php56-mysql php56-mysqli php56-session ➤ dla osób z nowszą wersją FreeBSD: pkg install php72 php72-mysqli mod_php72 php72-mbstring php72-zlib php72-curl php72-gd php72-json Ponownie łączymy się z WinSCP, przechodzimy do /usr/local/etc/apache24/ szukamy i edytujemy plik httpd.conf, szukając w nim: DirectoryIndex index.html Zamieniamy powyższą linijkę na: DirectoryIndex index.php index.html W tym samym plik httpd.conf na samym końcu dopisujemy: <FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> Pobieramy stronę i wrzucamy do /usr/local/www/apache24/data/ Restartujemy Apache tak aby załapało wszystkie zmiany: service apache24 restart Może się tak zdarzyć że wyskoczy komunikat o istniejącym już koncie w bazie, wtedy wykonaj to jako zapytanie w Navicat: USE account; ALTER TABLE `account` MODIFY COLUMN `last_play` datetime NULL AFTER `money_drop_rate_expire`, MODIFY COLUMN `web_ip` varchar(15) CHARACTER SET ascii COLLATE ascii_general_ci NULL AFTER `web_admin`, MODIFY COLUMN `web_confirm` varchar(32) CHARACTER SET ascii COLLATE ascii_general_ci NULL AFTER `web_ip`;
  4. 4 points
    Brakuję tych obiektów podeślę ktoś coś ? 0128 19:00:20089 :: CArea::LoadObject Property(375417340) Load ERROR 0128 19:00:20604 :: CArea::LoadObject Property(604565828) Load ERROR 0128 19:00:20604 :: CArea::LoadObject Property(821642704) Load ERROR 0128 19:00:20605 :: CArea::LoadObject Property(1889732388) Load ERROR
  5. 4 points
    Witam Zbierają mi się pogramy od 2009 roku, mam je na dysku, przechodzą z komputera na laptopa, a później znowu na laptopa Myślę, że trochę się tego nazbierało, większość linków wygasło. Daję wam, bo może się przydać Wszystkie linki są na hostingu mega.co.nz, więc szybko nie powinny wygasnąć Temat jest pisany pod nowych użytkowników, którzy spamią, że kolega nie może wejść na serwer, bo go wywala jak i poszukują reuploadu danego programu. 1.Edytor map - Game Files Open 2.Program do edycji praw komend w game 3.Epack32 by terenzo - Rozpakowuje pliki .eix/.epk + nowe item i mob_proto z globala 2014 roku 4.EterNexus - Wypakowuje pliki .eix/.epk, nie generuje pliku .xml. Można dokładać pliki do folderu bezpośrednio pakując i nie robić dodatkowych plików .xml 5.Exp editor by terenzo - pozwala na edytowanie tabeli expa w game 6. File Archiver - Unpacker jeszcze z 2009 roku, który podczas wypakowywania plików tworzy plik .xml z wpisami, które "pokazują" co jest w rozpakowanym przez nas pliku. 7. File Archiver by kamer - Posiada dosłownie takie same opcje jak File Archiver z punktu 6, ale dodatkowo posiada unpacker do item_proto i mob_proto z lat 2010/2013. 8. GameMasterPanel_III_SF_2010 - Jest to panel GM zrobiony przez Bambuska na pliki 2010. Ma same podstawowe i przydatne funkcje. 9. GameMasterPanel_III_SF_2008 - Posiada takie same funkcje co w punkcie 8, jednak ten program przeznaczony jest jedynie pod pliki 2008 10. Generator xml by szykra - Jest to program w rozszerzeniu .exe, który generuje nam wpisy do pliku .xml. Wystarczy podać lokalizację folderu, z którego chcemy wygenerować wpisy do .xml i klikamy ok. 11. Granny Viewer - Jest to program pozwalający przeglądanie modeli o rozszerzeniu typowym dla Metin2, czyli .gr2 12. Konverter granny - W tej paczce są dwa programy. Jeden jest od konvertowania z wersji grannego modelu 2.6 na 2.4, drugi z nich pozwala na przekonvertowanie z rozszerzenia .gr2 na rozszerzenie pozwalające nam importowanie modelu do 3D maxa. 13. ATR_TO_RAW_BY_Anohros - Jest to program pozwalający przekonvertowanie pliku .RAW do .ATTR i odwrotnie. Te pliki znajdziemy w dowolnym folderze mapy na serwerze i cliencie 14. Launcher mcncc V2 Wersja 1 - Jest to launcher mcncc V2 dla hamachi (znany również jako launcher z głową sury, który działa na serwerach hamachi). Masz problem, że Twój kolega wchodzi na serwer i wywala go przy wyborze postaci, a Ty sam wchodzisz normalnie na serwer ? Pobierz ten launcher i daj mu go z edytowanym plikiem serverimfo.py. Plik metin2_2010.exe odpala jako administrator. 15. Launcher mcncc V2 Wersja 2 - Jest dokładnie ten sam launcher tylko wersja druga. Jeżeli nie działa Ci pierwsza spróbuj poprzez tę. Koledze wysyłasz całą paczkę wraz z edytowanym plikiem serverip.cfg pod swoje i odpala on plik Surakopf.exe jako administrator. 16. Map_konverter_by_BlackYuko - Jest to program pozwalający na edytowanie i tworzenie plików mapy po stronie serwera. Ma też ciekawą funkcję kalkulatora, która pozwala na obliczenie wielkości mapy, minimapy itd. 17. Map konverter by terenzo - program ma podobne funkcje co do programu z punktu 16, ale jest w języku polskim wykonanym przez terenzo. 18. Map pointer - jest to program z przekroju lat 2010/2011, który pozwala na stawianie grupek mobów na mapie przez nas wczytanej. Wystarczy dodać wpis do group.txt + DORZUCIĆ WŁASNE MOB_PROTO.xml z ID mobków i ich nazwami jakie wypisaliśmy w group.txt. Nie działa na nowych strukturach mob_proto z 2014 roku. 19. Metin2Tools by terenzo - jest to program, który ułatwia nam prace nad serwerem. Łatwiej i szybciej możemy wygenerować hasło do konta w mysql, wygenerować sklepy, "pogramiać" krzaczki itd. 20. Portmap (najlepszy_portmap) - Jest to program, który umożliwia nam odblokowanie portów, dzięki czemu nasi znajomi/koledzy mogą zalogować się do gry. Ten portmap jest sprawdzony przeze mnie, innych znajomych i działa bez problemów. Niektóre portmapy są walnięte i nie działają jak trzeba i tworzą niepotrzebny problem. 21. Navicat for Mysql - Program ten pozwala nam na zarządzanie serwerem od strony mysql (bazy danych). Edytujemy tam m.in sklepy, dodajemy item/moby/npc od strony serwerowej itd. 22. DIF-PATCHER (program_do_diffów) - Program ten pozwala nam na wgranie plików o rozszerzeniu .dif do game/db/launchera. Ma opcje robienia backup'a difowowanego pliku i sprawdzania bajtów. 23. Generator "spolszczeń" - Jest to program umożliwiający nam generowanie pliku .exe (launchera) pod pliki 2008 i clienta 2008. Wystarczy podać IP serwera, wygenerować, odpalić i zacząć grać. 24. Program do zmiany crc by misekantos - program pozwalający zmienić nam sumę kontrolną crc, można znaleźć to pakując jakiś plik np. do winrara i otworzyć go, będzie napisane crc32. Tym programem, można również zobaczyć jakie crc ma dany plik. 25. Python Loader - W paczce znajduje się injector, który odpalamy jako administrator, wskazujemy lokalizacje pliku m2PythonLoader.dll, odpalamy np. launcher metin2 naszego serwera, w injectorze wpisujemy nazwe naszego procesu launchera np. metin2client.exe/bin i otwiera nam okienko, w którym możemy załadować plik pythona .py bez konieczności pakowania go w root/uiscript czy locale_xx 26. Map editor (rozstawianie obiektów w grze) - W paczce, znajduje się injector, .dll do uruchomienia aplikacji uruchamiającej pliki .py i plik map_editor.py. Robimy tak samo jak w punkcie 25 tylko w okienku lokalizujemy plik map_editor.py i klikamy ok, w grze powinno pojawić się okno z obiektami itd. 27. Serverinfo_generator - Program, który za nas napisze cały plik serverinfo.py, który znajduje się w root, plik ten łączy nas po IP do naszego serwera. W programie wystarczy podać IP serwera, port channeli i nazwę serwera, która ma widnieć przy channelach w grze. 28. Tools_by_jachu_pl - Program, który również nam ułatwia edytowanie serwera jak tools terenzo tylko tutaj posiada bardzo dużo diffów na różne game, od najstarszych do 34k, nie wiem czy są aktualizacje, możecie sprawdzic. Jest również chyba diff patcher w tym toolsie i kilka nowych funkcji, których nie ma u terenzo i odwrotnie. Można wręcz powiedzieć, że się dopełniają 29. Unpacker plików .addr - program, który rozpakowuje pliki .addr z folderu pack. Przykładowo Metin2PL korzysta aktualnie z pliku .addr, gdzie przytrzymuje tam nazwy serwerów, porty i IP i z tego korzysta. 30. Virtual Box - Pozwala na stworzenie virtualnego systemu na naszym komputerze, bez konieczności instalowania go na naszym dysku. Właśnie przez ten program wirtualizujemy freebsd i robimy na tym systemie serwery Metin2. 31. Winscp - Program, który umożliwia nam na wejście na twardy dysk przez FTP/SFTP systemu freebsd/VPS'a/Dedyka. Na dysku właśnie są wszystkie pliki serwerowe + baza danych mysql 32. FileZilla - Program z tymi samymi funkcjami co w punkcie 31. Można wybierać, różni się jedynie wygodą użytkowania. Ja osobiście polecam WinSCP. 33. Putty - Logujemy się przez protokół 22, SSH do wirtualnego systemy freebsd na VPS'ie lub dedyku. Sterujemy serwerem właśnie przez ten program. 34. Notepad ++ - Pozwala na bardzo wygodną pracę z plikami tekstowymi 35. Hamachi - Program ten przydziela nam nowe hamachi w jego środowisku. Dzięki niemu znajomi mogą połączyć się na serwer na Twoim komputerze bez różnicy czy masz wewnętrzne czy zewnętrzne IP. Wystarczy, że Ty utworzysz sieć, a znajomy się do niej połączy 36. Comodo EasyVPN - Program działa na takiej zasadzie jak Hamachi tylko, że w sieciach nie ma limitu na osoby i również nie ma kłopotu z odpaleniem jak u hamachi z problemem "Błąd silnika" . 37. Konverter item_proto - Program służy do konvertowania item_proto.xml do item_proto.sql. Nie działa na nowych strukturach item_proto z 2014 roku. 38. Equipment Viewer 2.0 - Program służy do podglądu ekwipunku gracza z poziomu GM, w zależności czy ma dostęp do bazy danych czy też nie. 39. Metin2 PL global client 2010 (Client 2010) - Podstawowy i najbardziej czysty (bez zbędnych patchów) client globala Metin2 PL z 2010 roku, jest on bardzo często poszukiwanym clientem dlatego daję go wam tutaj. Jest on trochę modyfikowany przez autora tematu.
  6. 4 points
    [video=youtube] Wchodzimy do: binka/UserInterface Edytujemy plik: Locale_inc.h Dopisujemy: #define ENABLE_DRAGON_SOUL_SYSTEM #define ENABLE_NEW_EQUIPMENT_SYSTEM Polecenie do Navicata: UPDATE item_proto SET type = 34 where vnum BETWEEN 18000 AND 18089; UPDATE item_proto SET type = 3, subtype = 29, locale_name = 'Kamien Czerw. Plomienia' where vnum = 18900;
  7. 3 points
    VirtualBox: [Pobierz] Hamachi: [Pobierz] Hamachi dla użytkowników Windowsa XP/VISTA/7/8/8.1 polecam instalować [Pobierz] Maszyna: [Pobierz] Client: [Pobierz] Login do Maszyny: root Hasło do Maszyny: 123456 Login do Konta: terenzo Hasło do Konta: 123456 Komendy użyte w filmie: sysinstall /etc/rc.d/netif restart Komenda do wystartowania serwera: /start Komenda do zatrzymania serwera: /stop Komenda do restartu całej maszyny: reboot Launcher: [Pobierz] PortMap: [Pobierz] Aby wszystko przeszło pomyślnie upewnij się że: Zapora Systemu Windows została wyłączona na każdym komputerze Że mamy uruchomionego portmapa Uruchamiamy launcher z prawami admina Nasz znajomy musi mieć normalne IP z hamachi bez .100
  8. 2 points
    Oferta i wygląda ładnie. Nie znam gościa zbyt długo, ale według GG pisałem z nim w sierpniu 2019 też na temat sponsoringu. Gościu z charakteru to taki mocno "kamil12123". Próbował wmówić mi, że na jego dedyku stoją pangeya, Samia, rafonmt2. Jeszcze później napisał do mnie z jakimś problemem, ja mu odpowiedziałem w czym prawdopodobnie może leżeć problem, a on po prostu mnie wyśmiał, że to nie to, bo chłopaki od hool'a (jako technicy) i sam hool siedzą z nim na ts. Dlaczego napisał do mnie z problemem skoro mial taka "elitę" pod ręką? Odpowiedzcie sobie sami na to. Jakby ktoś chciał dowodów to proszę pisać na gg czy pw. Wyślę ss z GG.
  9. 2 points
    [video=youtube] Paczka (v0.1): [align=left] [Hidden Content] [/align] Znane błędy: Aktualnie brak Aktualizacje: Pierwsze Wydanie - v0.1
  10. 2 points
    [video=youtube] Paczka (v0.1): [align=left] [Hidden Content] [/align] Znane błędy: Aktualnie brak Aktualizacje: Pierwsze Wydanie - v0.1
  11. 2 points
    Witam Dziś pokaże wam co zrobić by wszyscy widzieli poprawnie zaktualizowany lv. Wersja Packet <-- Poprawna. Source Game: packet.h Szukaj: typedef struct packet_update_char Niżej: short sAlignment; Dodaj: DWORD dwLevel; char.cpp Szukaj: void CHARACTER::UpdatePacket() Niżej: pack.sAlignment = m_iAlignment / 10; Dodaj pod: pack.dwLevel = GetLevel(); Source Bin: Packet.h typedef struct packet_update_char Niżej short sAlignment; Dodaj pod: DWORD dwLevel; PythonNetworkStreamPhaseGameActor.cpp Szukaj: bool CPythonNetworkStream::RecvCharacterUpdatePacket() Niżej: kNetUpdateActorData.m_sAlignment=chrUpdatePacket.sAlignment; Dodaj pod:: kNetUpdateActorData.m_dwLevel=chrUpdatePacket.dwLevel; NetworkActorManager.cpp Szukaj: void CNetworkActorManager::UpdateActor(const SNetworkUpdateActorData& c_rkNetUpdateActorData) Niżej: pkInstFind->SetAlignment(c_rkNetUpdateActorData.m_sAlignment); Dodaj pod: pkInstFind->SetLevel(c_rkNetUpdateActorData.m_dwLevel); NetworkActorManager.h Szukaj: struct SNetworkUpdateActorData Niżej: short m_sAlignment; Dodaj pod: DWORD m_dwLevel; InstanceBaseEffect.cpp Szukaj: void CInstanceBase::SetAlignment(short sAlignment) Pod funkcją dodaj tą funkcję: void CInstanceBase::SetLevel(DWORD level) { m_dwLevel = level; UpdateTextTailLevel(m_dwLevel); } Szukaj: void CInstanceBase::UpdateTextTailLevel(DWORD level) Zamień funkcję na: void CInstanceBase::UpdateTextTailLevel(DWORD level) { if (IsPC()) { static D3DXCOLOR s_kLevelColor = D3DXCOLOR(152.0f/255.0f, 255.0f/255.0f, 51.0f/255.0f, 1.0f); char szText[256]; sprintf(szText, "Lv %d", level); CPythonTextTail::Instance().AttachLevel(GetVirtualID(), szText, s_kLevelColor); } } InstanceBase.h Szukaj: void SetAlignment(short sAlignment); Dodaj pod: void SetLevel(DWORD level);
  12. 2 points
    Witam Pokaże wam jak naprawić błąd, który powoduje, że czasem nasza postać pozostaje niewidzialna dla innych graczy przez dłuższy okres czasu. Błąd ten najczęściej występuje zaraz po przeteleportowaniu, gdy zaczniemy atakować, nim nasza postać stanie się widoczna. 01: Otwieramy "char_affect.cpp" (source game Srcs/Server/game/src). Szukamy tego: if (AFFECT_REVIVE_INVISIBLE != pkAff->dwType) { ComputePoints(); } I zmieniamy na to: if (AFFECT_REVIVE_INVISIBLE != pkAff->dwType) ComputePoints(); else UpdatePacket(); Gotowe! Pozdrawiam * To tylko przedsmak tego co dla Was przygotowałem proszę daj + by zmotywować mnie do dalszego działania.
  13. 2 points
    Tak to wygląda @Edit. istnieje również możliwość skompilowania całej 'binki' samemu.: Zaczynamy od pobrania paczki [Hidden Content] 1. Folder FTP serwera wrzucamy na nasz hosting. 2. Otwieramy plik metin2torrent.config.xml i edytujemy tam crcpatch_url (Ważne! jeśli zawartość folderu wrzucacie do folderu np. patch pamiętajcie aby dopisać do adresu patch. W moim przypadku wyglądałoby tak [Hidden Content]) 3. Szukamy run_path i ustawiamy tam nazwe naszego .exe, który uruchamia Clienta. 4. Przechodzimy do folderu Klient - w folderze metin2launch mamy 2 interesujące nas pliki; TorrentPatch.locale.xml i TorrentPatch.url.xml - w pierwszym pliku zmieniamy LAUNCHER_IFRAME na adres naszego serwera ftp, w moim przypadku to [Hidden Content] LAUNCHER_NEW_URL jak i URL_NEW to linki do rejestracji. W TorrentPatch.url.xml ustawiamy link do serwera ftp, dopisując metin2torrent.config.xml, w moim przypadku wyglądałoby to tak [Hidden Content]/metin2torrent.config.xml Po zakończeniu konfiguracji klikamy dwukrotnie na pliczek Stworz Patcher.bat. Dobra wszystko spoko, jak dodać pliki? Po to jest folder Generator plików do patchera. Otwieramy ToolForPatcher i ukazuje się takie okno. Klikamy na "..." i wybieramy interesujący nas folder, po czym kilkamy Hash Wpisy te kopiujemy i wklejamy do pliku crclist znajdującego się w folderze 0.0.0.1 na serwerze ftp. Przechodzimy potem do zakładki LZPack Path to In folder - wybieramy folder z naszym clientem lub updatem, który chcemy wrzucić na patcher. Path to Out folder - wybieramy folder, gdzie chcemy mieć spakowane, gotowe do wrzucenia pliki. gdy wybraliśmy foldery, klikamy LzPack. gotowe pliki wrzucamy do folderu 0.0.0.1. ii to chyba wszystko jak myślę. Pamiętajcie o zgodności folderów. Jeszcze jakby ktoś potrzebował to background bez loga Znajduje się tutaj; Klik! Podziękowania składajcie @Tatsumaru za wykonanie tej jakże ciężkiej pracy.
  14. 2 points
    Wystarczy żebyś dodał jeszcze raz poradnik ze zmianą czytania bazy + poprawkę którą dopisałem tutaj na forum Ok, dzięki za pomoc PS: Gdyby ktoś miał podobny problem, wykonuje czynności z tego poradnika: [Hidden Content] (nawet jeśli już kiedyś go przerabiał). Temat zawiera aktualizacje, której brakuje w wideo poradniku.
  15. 1 point
    Dam wam pomysł aby dostęp do tematu/linku był po określonej liczbie lajków lub z możliwością wykupienia dostęp za lajki a one przyznawane za treść stworzoną na forum.
  16. 1 point
    nie koliduje, usuń sobie ten przycisk na graczach
  17. 1 point
    Oooo moja paczka haha
  18. 1 point
    Łap resztę sobie chyba sam zrobisz inventorywindow.py
  19. 1 point
    Raczej nie bo to tylko ustawia status trybu debug jako aktywny, ale to polecam zrobić tak jak w edytowanym poście
  20. 1 point
    A no to się pisze takie rzeczy na początku. W takim razie masz dwa wyjścia: 1. UserInterface.cpp stRegisterDebugFlag ="__DEBUG__ = 1"; Zmienić na 0. Albo najlepiej przerobić całą dyrektywę tak aby ta opcja była tylko dla binki w wersji DEBUG. lub 2. Skomentować poniższy kod w system.py import debugInfo debugInfo.SetDebugMode(__DEBUG__)
  21. 1 point
    1. w virtualbox ustawiasz mostkowana karta sieciowa(bridged) i wybierasz z listy: Wireless Network Adapter jeśli chcesz mieć przez Wifi Realtek PCIe GbE Family Controller jeżeli chcesz mieć przez Lan Ethernet 2. podczas instalacji freeBsd 10.x gdy wyskoczy ci User Confirmation Requested Do you want to try IPv6 configuration of the interface? Yes [ No ] -- dajesz NIE Następnie User Confirmation Requested Do you want to try DHCP configuration of the interface? [Yes] -- dajesz TAK No po wybraniu YES ustawi ci się IP np 192.168.1.1 nic nie zmieniasz tylko akceptujesz i przechodzisz do dalszej części instalacji FreeBsd
  22. 1 point
    Dodałem w temacie małego fixa do okienka szeptu, dzięki @Nuko za informacje.
  23. 1 point
  24. 1 point
  25. 1 point
    Wszystkie strony tego typu spadają szybko ostatnio a na ich miejsce dają scamy. Aktualnie dzialajace strony które znam: cda.pl 3filmy szukajka.tv alltube.tv (Chociaż ostatnio była hacked więc nie wiem. Ostrożnie) Reszta scamy i nie tykac.
  26. 1 point
    Witam Pokaże Wam jak usunąć błąd dotyczący wywalenia serwera przez upuszczanie itemów. Teraz gdy ktoś użyje skryptu np. w m2bob ("Wyrzuć wszystko") zostanie wylogowany, a z jego ekwipunku zostaną upuszczone maksymalnie 4 przedmioty. Exploit Wyrzucanie Itemów Wejdź do char_item.cpp w /src/game/ Wejdź do char.h w /src/game/ Wejdź do char.cpp w /src/game/ Pozdrawiam
  27. 1 point
    no zgadzanie się z Persergą to raczej ostatnie co bym zrobił no ale ten limiter do najlepszych nie należy
  28. 1 point
    [Hidden Content] Są tutaj jakieś 2 stare moje questy, jakieś bronie, zbroje, moby, mapy.
  29. 1 point
    Podczas sprzedaży przedmiotu, gdy wyskakuje informacja, jaki przedmiot zostanie sprzedany wyświetlana, jest zła nazwa przedmiotu. Przed zmianą ➤ Po zmianie 1. Przechodzimy do UserInterface\PythonPlayerModule.cpp i szukamy: PyObject * playerIsValuableItem(PyObject* poSelf, PyObject* poArgs) { TItemPos SlotIndex; switch (PyTuple_Size (poArgs)) { case 1: if (!PyTuple_GetInteger(poArgs, 0, &SlotIndex.cell)) return Py_BuildException(); break; case 2: if (!PyTuple_GetInteger(poArgs, 0, &SlotIndex.window_type)) return Py_BuildException(); if (!PyTuple_GetInteger(poArgs, 0, &SlotIndex.cell)) return Py_BuildException(); break; default: return Py_BuildException(); } 2. Zamieniamy na: PyObject * playerIsValuableItem(PyObject* poSelf, PyObject* poArgs) { TItemPos SlotIndex; switch (PyTuple_Size (poArgs)) { case 1: if (!PyTuple_GetInteger(poArgs, 0, &SlotIndex.cell)) return Py_BuildException(); break; case 2: if (!PyTuple_GetInteger(poArgs, 0, &SlotIndex.window_type)) return Py_BuildException(); if (!PyTuple_GetInteger(poArgs, 1, &SlotIndex.cell)) return Py_BuildException(); break; default: return Py_BuildException(); }
  30. 1 point
    Witam! Bronie są exportowane przez Dzekon Pobierz: [Hidden Content] Hasło do paczki: p-sDLa5rab:3>qFE Skan: [Hidden Content]
  31. 1 point
    Wejdź w input_main.cpp Znajdź: if (CHAT_TYPE_SHOUT == pinfo->type) { LogManager::instance().ShoutLog(g_bChannel, ch->GetEmpire(), chatbuf); } Dodaj pod: #ifdef BLOCK_CHAT_OX if (ch->GetGMLevel() == GM_PLAYER) { if((ch->GetMapIndex() == 113) && (pinfo->type == CHAT_TYPE_TALKING)) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("BLOCK_CHAT_OX")); return iExtraLen; } } #endif common/service.h Dodaj: #define BLOCK_CHAT_OX
  32. 1 point
    hejka myślę że przyda się i odświeży trochę dt w lepszy klimat, jako że id metinów pod dt jest inne niż na zwykłych mapach można swobodnie bez wahania sobie taki metin podmienić w dt, a dla bardziej chcących mogą sobie po edytować teksture, i pozostałe metiny Śmierci, Upadku itd pokolorować ;d. id metina które są od dt znajdziecie standardowo w swoim quescie, folder wystarczy wrzucić do ymir work > npc i wiadomo zmienić w rootach npc_list.txt [Hidden Content] [Hidden Content]
  33. 1 point
    Siema, dzisiaj poradnik jak dodać nowe funkcje do CONFIG'u channeli Zrobimy to na przykładzie nieskończonych pelerynek dodatkowe funkcje: Nieskończona Zmianka Nieskończone Dodanie Nieskończone Mikstury HP/SP #nowe funkcje pojawia sie wieczorem, ewentualnie jutro
  34. 1 point
  35. 1 point
    Dl w załączniku Weapons set 53.rar
  36. 1 point
    Nie to nie jest normalne bo jeśli ktoś coś dodaje to powinno to działać inaczej nie powinien nic dodawać.
  37. 1 point
    01: Otwieramy char.h (source game /usr/src/mainline_released/mainline_sg/Srcs/Server/game/src) i szukamy tego: bool IsImmune(DWORD dwImmuneFlag); zmieniamy na to: bool IsImmune(DWORD dwImmuneFlag); void UpdateImmuneFlags(); 02: Otwieramy char_resist.cpp (source game /usr/src/mainline_released/mainline_sg/Srcs/Server/game/src) i szukamy tego: #include "locale_service.h" I zmieniamy na to: #include "locale_service.h" #include "item.h" Szukamy tego: bool CHARACTER::IsImmune(DWORD dwImmuneFlag) { if (IS_SET(m_pointsInstant.dwImmuneFlag, dwImmuneFlag)) I zmieniamy na to: void CHARACTER::UpdateImmuneFlags() { m_pointsInstant.dwImmuneFlag = 0; for (int i = 0; i < WEAR_MAX_NUM; i++) { if(GetWear(i)) { for (int i2 = 0; i2 < ITEM_APPLY_MAX_NUM; ++i2) { if (GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_NONE) continue; else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_STUN) SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_STUN); else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_SLOW) SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_SLOW); else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_FALL) SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_FALL); } for (int i3 = 0; i3 < ITEM_ATTRIBUTE_MAX_NUM; ++i3) { if (GetWear(i)->GetAttributeType(i3)) { const TPlayerItemAttribute& ia = GetWear(i)->GetAttribute(i3); if(ia.bType == APPLY_IMMUNE_STUN) SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_STUN); else if(ia.bType == APPLY_IMMUNE_SLOW) SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_SLOW); else if(ia.bType == APPLY_IMMUNE_FALL) SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_FALL); } } } } } bool CHARACTER::IsImmune(DWORD dwImmuneFlag) { if (!IS_SET(m_pointsInstant.dwImmuneFlag, dwImmuneFlag)) UpdateImmuneFlags(); if (IS_SET(m_pointsInstant.dwImmuneFlag, dwImmuneFlag)) W pliku char_resist.cpp możemy zmienić szansę na omdlenie przykładowo z 90% na 100%. int immune_pct = 90;
  38. 1 point
    Wywołuje u 2 osoby odrzucił twoje zaproszenie ble ble ble więc koniec pierdolenia zaczynamy void MessengerManager::AuthToAdd(MessengerManager::keyA account, MessengerManager::keyA companion, bool bDeny) zmieniamy na Plik: messenger_manager.cpp bool MessengerManager::AuthToAdd(MessengerManager::keyA account, MessengerManager::keyA companion, bool bDeny) { DWORD dw1 = GetCRC32(companion.c_str(), companion.length()); DWORD dw2 = GetCRC32(account.c_str(), account.length()); char buf[64]; snprintf(buf, sizeof(buf), "%u:%u", dw1, dw2); DWORD dwComplex = GetCRC32(buf, strlen(buf)); if (m_set_requestToAdd.find(dwComplex) == m_set_requestToAdd.end()) { sys_log(0, "MessengerManager::AuthToAdd : request not exist %s -> %s", companion.c_str(), account.c_str()); return false; } m_set_requestToAdd.erase(dwComplex); if (!bDeny) { AddToList(companion, account); AddToList(account, companion); } } messenger_manager.h void AuthToAdd(keyA account, keyA companion, bool bDeny); zmieniamy na bool AuthToAdd(keyA account, keyA companion, bool bDeny); cmd_general.cpp Szukamy ACMD(do_messenger_auth) całość zmieniamy ACMD(do_messenger_auth) { if (ch->GetArena()) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장에서 사용하실 수 없습니다.")); return; } char arg1[256], arg2[256]; two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)); if (!*arg1 || !*arg2) return; char answer = LOWER(*arg1); bool bIsDenied = answer != 'y'; bool bIsAdded = MessengerManager::instance().AuthToAdd(ch->GetName(), arg2, bIsDenied); // DENY if (bIsAdded && bIsDenied) { LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(arg2); if (tch) tch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님으로 부터 친구 등록을 거부 당했습니다."), ch->GetName()); } } Fix dzisiaj ogarniałem na potrzeby swojego src. o ile oto chodzi w tym.
  39. 1 point
    Dziś na pewnym forum natknąłem się na dość ciekawe urozmaicenie. Kolor Yang w EQ zmienia się, w zależności ile Yang posiadamy. [Hidden Content]] Wchodzimy do: root/uiinventory.py Szukamy: def RefreshStatus(self): money = player.GetElk() self.wndMoney.SetText(localeInfo.NumberToMoneyString(money)) Całą funkcję zamieniamy na: def RefreshStatus(self): money = player.GetElk() if money <= 100000000: self.wndMoney.SetFontColor(1.0, 0.2, 0.2) elif money >= 100000001 and money <= 1000000000: self.wndMoney.SetFontColor(1.0, 0.6, 0.2) elif money >= 1000000001 and money <= 1500000000: self.wndMoney.SetFontColor(1.0, 1.0, 0.2) elif money >= 1500000001: self.wndMoney.SetFontColor(0.6, 1.0, 0.2) self.wndMoney.SetText(localeInfo.NumberToMoneyString(money))
  40. 1 point
    [video=youtube] * Żeby nie było niedomówień, ze sklepami offline raczej współpracować ten dodatek nie będzie, więc jak się na C++ nie znacie to nie dodawajcie. [align=left] [Hidden Content] [/align]
  41. 1 point
    Witam udostępniam wam tak nazwany prze zemnie tolerancyjny kostium z racji na wygląd męskich postaci, w paczce znajdują się modele pod każdą standardową klasę postaci, oczywiście zabiegi jakie w nim poczyniłem to ściągnięcie znaków, modeli nie sprawdzałem w grze bo mi się nie chciało ale jestem na 99.99% pewien że działa poprawnie. Dodatkowo w paczce znajdują się 3 kolory tekstur co za tym idzie masz 3 kostiumy a nie jeden. Jeśli interesowało by cię ściągnięcie znaków z innych modeli to zapraszam do zapoznania się z tym tematem: [Hidden Content] Proszę o nie przenoszenie wstawki na inne fora z racji iż sam osobiście ściągałem znaki z modeli a ty otrzymałeś ten kostium za darmo więc uszanuj moją wole. [hide] Download: [Hidden Content] [/hide] Scan: [Hidden Content]
  42. 1 point
    2 w 1: zamieniamy statesSummary = float(valueHTH + valueINT + valueSTR + valueDEX) na statesMax = 90 # char max stat statesSummary = float(valueHTH + valueINT + valueSTR + valueDEX) if statesSummary > statesMax: statesSummary = statesMax Pozdro
  43. 1 point
    FIX: w char_affect.cpp szukaj: if (IsPC()) { SendAffectRemovePacket(GetDesc(), GetPlayerID(), pkAff->dwType, pkAff->bApplyOn); } i przed dodaj to: #ifdef ENABLE_NEW_AFFECT_POTION int pkAff_blend[] = {AFFECT_POTION_1, AFFECT_POTION_2, AFFECT_POTION_3, AFFECT_POTION_4, AFFECT_POTION_5, AFFECT_POTION_6}; if ((pkAff->dwType == pkAff_blend[0]) || (pkAff->dwType == pkAff_blend[1]) || (pkAff->dwType == pkAff_blend[2]) || (pkAff->dwType == pkAff_blend[3]) || (pkAff->dwType == pkAff_blend[4]) || (pkAff->dwType == pkAff_blend[5])) { ++it; continue; } #endif To fajne te "++it; continue;" XDDDDDDDDD
  44. 1 point
    dzieki działa! @Saubaar a ponoć to ja mam problem dodawać nad/pod/za/ potwierdzenie że działa -> [Hidden Content] ogółem niby nic ale zdarzają się ameby *post wyżej* od Sau... Otwieramy uiquest.py (client gry pack/root/uiscript) zamień na Otwieramy uiquest.py (client gry pack/root/)
  45. 1 point
    W sumie to nie nowość no ale co tam :X Jednak nie polecam podmieniać całego pliku a dodać sam kod bo w przypadku mniej umiejętnych osób może to spowodować lawinę pytań typu "a dlaczego mi nie działa..?". Nie wiem jak autor to zrobił ale ja proponuję tak (pozwolę sobie wtrącić swoje 3gr.): 1.Szukamy: def __DragonSoulInfoString (self, dwVnum): 2. Nad nim powinno być: self.ShowToolTip() 3. Zmieniamy na: [TAB][TAB]self.ShowItemID(itemVnum) [TAB][TAB]self.ShowToolTip() 4. Next nad: def __DragonSoulInfoString (self, dwVnum): 5. Dodajemy: [TAB]def ShowItemID(self, itemVnum): [TAB][TAB]if str(player.GetName())[0] == "[": [TAB][TAB][TAB]self.AppendTextLine("("+str(itemVnum)+")", 0xffff6633) 6.Pakujemy rooty BONUS 7. Jak ktoś chce zmienić kolor to np. [Hidden Content] Wybieramy taki o: #ff8e4f i znak # zmieniamy na 0xff i podmieniamy w funkcji.
  46. 1 point
    Wchodzimy do Binka/UserInterface/InstanceBase.cpp Szukamy: if (m_kHorse.IsMounting()) fPositionZ += 10.0f; m_GraphicThingInstance.SetScalePosition(fPositionX, fPositionY, fPositionZ); Zamieniamy na: if (m_kHorse.IsMounting()){ fPositionZ += 25.0f; } m_GraphicThingInstance.SetScalePosition(fPositionX, fPositionY, fPositionZ); Wchodzimy do Binka/GameLib/ActorInstanceAttach.cpp Szukamy: RegisterModelThing(CRaceData::PART_SASH, pItemData->GetModelThing()); SetModelInstance(CRaceData::PART_SASH, CRaceData::PART_SASH, 0); AttachModelInstance(CRaceData::PART_MAIN, "Bip01 Spine2", CRaceData::PART_SASH); Zamieniamy na: DWORD vnum = pItemData->GetIndex(); if (vnum == ID){ RegisterModelThing(CRaceData::PART_SASH, pItemData->GetModelThing()); SetModelInstance(CRaceData::PART_SASH, CRaceData::PART_SASH, 0, CRaceData::PART_MAIN); } else{ RegisterModelThing(CRaceData::PART_SASH, pItemData->GetModelThing()); SetModelInstance(CRaceData::PART_SASH, CRaceData::PART_SASH, 0); AttachModelInstance(CRaceData::PART_MAIN, "Bip01 Spine2", CRaceData::PART_SASH); } Gdzie ID to nasza nowa szarfa, poradnik video o dodawaniu nowej szarfy wkrótce Poprawione zapytanie dla Świadectwa Zmiany dla osób bez alchemii: DELETE FROM item_proto WHERE vnum = 85009; INSERT INTO `player`.`item_proto` (`vnum`, `name`, `locale_name`, `type`, `subtype`, `weight`, `size`, `antiflag`, `flag`, `wearflag`, `immuneflag`, `gold`, `shop_buy_price`, `refined_vnum`, `refine_set`, `refine_set2`, `magic_pct`, `limittype0`, `limitvalue0`, `limittype1`, `limitvalue1`, `applytype0`, `applyvalue0`, `applytype1`, `applyvalue1`, `applytype2`, `applyvalue2`, `value0`, `value1`, `value2`, `value3`, `value4`, `value5`, `socket0`, `socket1`, `socket2`, `socket3`, `socket4`, `socket5`, `specular`, `socket_pct`, `addon_type`) VALUES ('85009', '85009', 'Swiadectwo Zmiany', '3', '14', '0', '1', '49536', '0', '0', '', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '7', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0'); Poprawione zapytanie dla Świadectwa Zmiany dla osób z alchemią: DELETE FROM item_proto WHERE vnum = 85009; INSERT INTO `player`.`item_proto` (`vnum`, `vnum_range`, `name`, `locale_name`, `type`, `subtype`, `weight`, `size`, `antiflag`, `flag`, `wearflag`, `immuneflag`, `gold`, `shop_buy_price`, `refined_vnum`, `refine_set`, `refine_set2`, `magic_pct`, `limittype0`, `limitvalue0`, `limittype1`, `limitvalue1`, `applytype0`, `applyvalue0`, `applytype1`, `applyvalue1`, `applytype2`, `applyvalue2`, `value0`, `value1`, `value2`, `value3`, `value4`, `value5`, `socket0`, `socket1`, `socket2`, `socket3`, `socket4`, `socket5`, `specular`, `socket_pct`, `addon_type`) VALUES ('85009', '0', '85009', 'Swiadectwo Zmiany', '3', '14', '0', '1', '49536', '0', '0', '', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '7', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0');
  47. 1 point
    Interfejs ponoć jest zakodowany. Download: [Hidden Content] Źródło: [Hidden Content]
  48. 1 point
    Szablon na prezentacje. Można też to wykorzystać na stworzenie jakiegoś panelu logowania czy coś. Ogólnie to miało być dla pana Karpiuka, ale chyba nie wykorzystał tego, bo nic nie widać. Może komuś się przyda. Download: [hide] [Hidden Content] [/hide]
  49. 1 point
    [hide] [Hidden Content] [/hide]
  50. 1 point
    Interface - ikony skili itp bazowe [hide] [Hidden Content] [/hide]
This leaderboard is set to Warsaw/GMT+01:00
×
×
  • Create New...