Jump to content
Logo
Your Metin2 zone for C++, Python, Lua.

Sleep

Helper
  • Posts

    19
  • Joined

  • Last visited

  • Days Won

    6

Sleep last won the day on May 9

Sleep had the most liked content!

7 Followers

Recent Profile Visitors

207 profile views

Sleep's Achievements

Contributor

Contributor (5/14)

  • First Post
  • Conversation Starter Rare
  • Very Popular Rare
  • Dedicated
  • One Month Later

Recent Badges

399

Reputation

  1. Jeśli masz wtyczki które używają ImageBox, tak długo, jak okno gry jest otwarte (chyba że ponownie się zalogujesz itp.), Nawet jeśli zamkniesz okno, obrazy w nim nie są usuwane z pamięci i powodują wzrost pamięci podczas przeładowywania przy każdym uruchomieniu. If you have plug-ins that use ImageBox, as long as the game window is open (unless you re-login, etc.), even if you close the window, the images in it are not removed from memory and cause memory to grow when reloading each time you run it. EterPythonLib\PythonWindowManagerModule.cpp // Search for this function PyObject* wndImageLoadImage(PyObject* poSelf, PyObject* poArgs) { // ... existing code ... } // Add below PyObject* wndImageUnloadImage(PyObject* poSelf, PyObject* poArgs) { UI::CWindow* pWindow; if (!PyTuple_GetWindow(poArgs, 0, &pWindow)) { return Py_BuildException(); } if (!((UI::CImageBox*)pWindow)->UnloadImage()) { return Py_BuildException("Failed to unload image"); } return Py_BuildNone(); } // Search for this method registration { "LoadImage", wndImageLoadImage, METH_VARARGS }, // Add below { "UnloadImage", wndImageUnloadImage, METH_VARARGS }, EterPythonLib\PythonWindow.cpp // Search for this method BOOL CImageBox::LoadImage(const char* c_szFileName) { // ... existing code ... } // Add below BOOL CImageBox::UnloadImage() { if (!m_pImageInstance) return FALSE; OnDestroyInstance(); return TRUE; } EterPythonLib\PythonWindow.h // Search for this method declaration BOOL LoadImage(const char* c_szFileName); // Add below BOOL UnloadImage(); root/ui.py # Search for this class definition class ImageBox(Window): # ... existing members ... # Find these lines self.eventFunc = {} self.eventArgs = {} # Add below self.imageLoaded = False # ... # Search for this line where you load the image wndMgr.LoadImage(self.hWnd, imageName) # Add below self.imageLoaded = True # ... # Search for this destructor definition def __del__(self): # ... existing code ... # Add below if self.imageLoaded: self.UnloadImage()
  2. Komenda do Navicat: INSERT INTO `item_proto` VALUES (71115, '71115', 'Pieczec Dzika Wojennego', 28, 2, 0, 1, 0, 0, 0, '', 0, 0, 0, 0, 0, 0, 7, 2592000, 0, 0, 63, 20, 0, 0, 0, 0, 0, 0, 0, 0, 20115, 0, -1, -1, -1, -1, -1, -1, 0, 0, 0); Wymagany Quest: ride.lua Dodaj to byle gdzie do quest_functions: item.is_available0 Tam gdzie Value4 < to id z mob_proto czyli np: (To są standardowe id mountów) 20110 boar 20111 dog_god 20112 fire_tiger 20113 lion 20114 lion_white 20115 boar_2 20116 dog_god_2 20117 fire_tiger_2 20118 lion_2 20119 horse_event1 20120 fire_tiger_blue 20121 fire_tiger_darkred 20122 fire_tiger_gold 20123 fire_tiger_green 20124 fire_tiger_pied 20125 fire_tiger_white Podmień te pliki w PACK https://mega.nz/file/aXRHgS4B#9NCjcB6e-PmssSYmFvMinCsE_A6my_BWKHa3gZS0sOs I to tyle, wierzchowce już działają.
  3. Wpisy do navicat: INSERT INTO `item_proto` VALUES (85001, '85001', 'Szarfa Wladcy(prosta)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85002, '85002', 'Szarfa Wladcy(dostojna)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85003, '85003', 'Szarfa Wladcy(zacna)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85004, '85004', 'Szarfa Wladcy(unikat.)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85005, '85005', 'Szarfa Mistrza(prosta)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85006, '85006', 'Szarfa Mistrza(dostojna)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85007, '85007', 'Szarfa Mistrza(zacna)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85008, '85008', 'Szarfa Mistrza(unikat.)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (90000, '90000', 'Świadectwo Zmiany', 3, 14, 0, 1, 32896, 8196, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0); INSERT INTO `item_proto` VALUES (85011, '85011', 'Szarfa Ksiecia(prosta)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85012, '85012', 'Szarfa Ksiecia(dostojna)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85013, '85013', 'Szarfa Ksiecia(zacna)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85014, '85014', 'Szarfa Ksiecia(unikat.)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85015, '85015', 'Szarfa Krola(prosta)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85016, '85016', 'Szarfa Krola(dostojna)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85017, '85017', 'Szarfa Krola(zacna)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); INSERT INTO `item_proto` VALUES (85018, '85018', 'Szarfa Krola(unikat.)', 28, 3, 0, 1, 32768, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 100, 0, 0); Quest na NPC = id moba: 20390 acce_open.quest
  4. Jeśli zamkniesz grę poleceniem /shutdown i spróbujesz się zalogować, pojawi się błąd pakietu i gra się zamknie. Myślę, że ten problem występuje po usunięciu szyfrowania pakietów (cryptopp). Głównym źródłem problemu jest to, że jądro AUTH nie nawiązuje połączenia P2P jak inne jądra, łączy się jedynie z bazą danych. Dlatego pakiet P2P wysłany podczas polecenia zamknięcia nie osiąga poziomu AUTH. Rozwiązanie jest następujące: If you close the game with the /shutdown command and try to log in, there is a packet error and the game closes. I think this problem occurs when packet encryption (cryptopp) is removed. The main source of the problem is that the AUTH kernel does not establish a P2P connection like other kernels, it only connects to the database. Therefore, the P2P packet sent during the shutdown command does not reach AUTH. The solution is as follows: cmd_general.cpp: ACMD(do_shutdown) Find: Shutdown(10) add before: db_clientdesc->DBPacketHeader(HEADER_GD_GO_SHUTDOWN, 0, 0); input_db.cpp: case HEADER_DG_WEDDING_END Add after; case HEADER_DG_GO_SHUTDOWN: g_bNoMoreClient = true; break; Common/tables.h: HEADER_DG_ITEMAWARD_INFORMER = 180, Add after; HEADER_DG_GO_SHUTDOWN = 182, Find: HEADER_GD_DELETE_AWARDID = 138, Add after; HEADER_GD_GO_SHUTDOWN = 146, db/clientmanager.cpp case HEADER_GD_DELETE_AWARDID: Add after; case HEADER_GD_GO_SHUTDOWN: m_pkAuthPeer->EncodeHeader(HEADER_DG_GO_SHUTDOWN, 0, 0); break;
  5. You need create in player table "eventy" Quest written a long time ago by 1 pandora fucker, has never been used, I clean the disks. Musisz stworzyć w player bazę danych o nazwie "eventy" Quest pisany dawno temu przez 1 zjeba z pandory, nigdy nie został użyty, czyszczę dyski. Code: quest itemshop begin state start begin when 20358.chat."Darmowy itemshop" with pc.is_gm() begin say_title("Darmowy itemshop") say("") say("Witaj, aktualnie rozdaję darmowy itemshop! ") say("to niepowtarzalna okazja, aby z niej skorzystać ") say("") say("Czy chcesz otrzymać darmowy itemshop? ") say("") local s = select("Tak", "Nie") if s == 1 then if mysql_direct_query(string.format("SELECT * FROM player.eventy WHERE id = %d AND status = 1;", pc.get_player_id())) == 1 then say_title("Darmowy itemshop") say("") say("Niestety, nie możesz już otrzymać ") say("darmowego itemshopu") elseif pc.get_sex() == 0 then -- facet say_title("Darmowy itemshop") say("") say("Otrzymujesz darmowy itemshop! ") say("") pc.give_item2(1009,1) mysql_direct_query(string.format("INSERT INTO player.eventy (id, status) VALUES(%d, 1) ON DUPLICATE KEY UPDATE status = 1;", pc.get_player_id())); elseif pc.get_sex() == 1 then say_title("Darmowy itemshop") say("") say("Otrzymujesz darmowy itemshop! ") say("") pc.give_item2(19,1) mysql_direct_query(string.format("INSERT INTO player.eventy (id, status) VALUES(%d, 1) ON DUPLICATE KEY UPDATE status = 1;", pc.get_player_id())); end elseif s == 2 then say_title("Darmowy itemshop") say("") say("Wroc pozniej, gdy sie namyslisz") end end when login begin if mysql_direct_query(string.format("SELECT * FROM player.eventy WHERE id = %d AND status = 1;", pc.get_player_id())) == 1 then else notice("Darmowy itemshop jest do odebrania u uriela! ") notice("Udaj się do niego już dziś! ") end end end end
  6. Dodatkowo usunięto z Source kilka blokad które mogły wpływać na hamachi oraz cały block_country. Download + przykładowe wpisy: Do każdego CONFIG BIND_IP: 25.4.45.100 < Tutaj twoj adres + koncowka 100 PROXY_IP: 25.4.45.2 < Tutaj twoj caly adres hamachi bez koncowki 100 Serverinfo.py - Musi być bez końcówki 100 czyli adres: 25.4.45.2 https://mega.nz/file/vOh0QZLD#2kQxzXaZSohiTCsGBA_pC9rrAuhj8QedwAeulfOiml0
  7. https://visualstudio.microsoft.com/pl/vs/community/ Komendy użyte w filmie: cd /src/Server gmake clean gmake -j20
  8. Hamachi Download: https://vpn.net/ Komendy użyte w filmie: ee /etc/rc.conf ifconfig_em0="inet 25.4.45.100 netmask 255.255.0.0" defaultrouter="25.4.45.2" ee /etc/resolv.conf nameserver 142.2.2.3 service netif restart service routing restart
Style Version: 0.1

The code was completely created from scratch and optimized.

The basic style on which it was created: Default

Created by: Grzyb.ovh

The style was to be simple to browse topics, devoid of graphics, uniform in color and definitely simple. ×

×
×
  • Create New...

Important Information

Do you like cookies? 🍪 We use cookies to provide the highest quality of service. Learn more