Jump to content

CORKY

Premium
  • Posts

    85
  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by CORKY

  1. Here you can find the server part. [Hidden Content] Also, the patcher is over 10 years old. (At least the updater part is 1:1 from this one)
  2. Great idea and also great work. Thank you for sharing it with the community!
  3. What you're trying to say is that the "noobs" will only climb their way up the ladder by scamming, however if that's what they're thinking, it's already a scammer mindset. All the people who are now at the top, were once in their life a noob too. But they chose the information, they didn't beg for help, they started researching. At least, every person who does have access to metin2.dev also has access to internet, so information is every time available to them. If you don't want to work and just want to be spoon-fed, of course you will want to make a help topic and not do anything about your problem. If you've tried your best, you've researched the problem and you still couldn't fix it, of course you can make a topic about it and competent people will point you in the good direction, just like many cases here on the forum. I'm sure people did request help here and they got help, but if you're not spoon-feeding them, in their mind it'll not count as a correct response. TL;DR: helping is not spoon-feeding. Information is key, use google before asking for help.
  4. As long as your ports from channels, database, auth are open from your admin panel of the router, they should be able to connect even if you're hosting the game on your own network adapter
  5. Can you please show us the function int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) From UserInterface.cpp Aswell as Globals.cs from Sanchez Patcher.
  6. This problem was a pain in the ass, but it was because of the worldmatrix. The sash system also has a scale system, so we need to also update the shake function matrix, since the sash system is updating our deform functions over in ThingInstance. Enough talking, let's fix it: GameLib/ActorInstanceBattle.cpp Search: void CActorInstance::ShakeProcess() Replace m_worldMatrix._41 += v3Pos.x; m_worldMatrix._42 += v3Pos.y; m_worldMatrix._43 += v3Pos.z; With m_TransformMatrix._41 += v3Pos.x; m_TransformMatrix._42 += v3Pos.y; m_TransformMatrix._43 += v3Pos.z;
  7. Video is not available anymore. Please upload it again or make a new one, I might be able to help you.
  8. That's also a viable option. I've never been able to understand the stuff going on inside the msa so I didn't know this was possible too. Thanks for the heads up
  9. Although I haven't been able to reproduce this problem, I've made some extra steps that should hide the cursor and solve your problem. root/introloading.py Search: def Open(self): Add inside the function, preferably at start app.HideCursor() Search def __StartGame(self): Add inside the function, preferably at start app.ShowCursor()
  10. GameLib/ActorInstanceBattle.cpp Search void CActorInstance::__RunNextCombo() Add inside the function at the very start: if (GetRace() == 1 && m_fAtkSpd >= 1.7f) m_fAtkSpd -= 0.1f; //increase 0.1 with as much as you want, until you're satisfied with the speed.
  11. Please excuse the messy code, but this should do the trick. char_item.cpp Replace the function bool CHARACTER::GiveRecallItem(LPITEM item) with: bool CHARACTER::GiveRecallItem(LPITEM item) { int idx = GetMapIndex(); int iEmpireByMapIndex = -1; if (idx < 20) iEmpireByMapIndex = 1; else if (idx < 40) iEmpireByMapIndex = 2; else if (idx < 60) iEmpireByMapIndex = 3; else if (idx < 10000) iEmpireByMapIndex = 0; switch (idx) { case 66: case 216: iEmpireByMapIndex = -1; break; } if (iEmpireByMapIndex && GetEmpire() != iEmpireByMapIndex) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("기억해 둘 수 없는 위치 입니다.")); return false; } int pos; if (item->GetCount() == 1) // 아이템이 하나라면 그냥 셋팅. { item->SetSocket(0, GetX()); item->SetSocket(1, GetY()); } else if ((pos = GetEmptyInventory(item->GetSize())) != -1) // 그렇지 않다면 다른 인벤토리 슬롯을 찾는다. { LPITEM item2 = ITEM_MANAGER::instance().CreateItem(item->GetVnum(), 1); if (NULL != item2) { item2->SetSocket(0, GetX()); item2->SetSocket(1, GetY()); WORD bCount = item2->GetCount(); if (IS_SET(item2->GetFlag(), ITEM_FLAG_STACKABLE)) { for (WORD i = 0; i < INVENTORY_MAX_NUM; ++i) { LPITEM item3 = GetInventoryItem(i); if (!item3) continue; if (item3->GetVnum() == item2->GetVnum()) { int j; for (j = 0; j < ITEM_SOCKET_MAX_NUM; ++j) if (item3->GetSocket(j) != item2->GetSocket(j)) break; if (j != ITEM_SOCKET_MAX_NUM) continue; WORD bCount2 = MIN(ITEM_MAX_COUNT - item3->GetCount(), bCount); bCount -= bCount2; item3->SetCount(item3->GetCount() + bCount2); if (bCount == 0) break; } } item2->SetCount(bCount); } if (bCount > 0) item2->AddToCharacter(this, TItemPos(INVENTORY, pos)); else M2_DESTROY_ITEM(item2); item->SetCount(item->GetCount() - 1); } } else { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("소지품에 빈 공간이 없습니다.")); return false; } return true; } Should work like this: [Hidden Content]
  12. PythonApplicationProcedure.cpp Search for the function: LRESULT CPythonApplication::WindowProcedure(HWND hWnd, UINT uiMsg, WPARAM wParam, LPARAM lParam) Inside it, go over to the switch cases, and add the following: case WM_MOVE: if (hWnd == GetCapture()) Process(); break; case WM_CONTEXTMENU: return 0; break; After doing so, the client won't be freezed while the context menu is open (you can't even open it anymore) and, it will render while you move it. However, if you still keep the click pressed on the titlebar, the game will freeze.
  13. Somebody is exploiting the CharacterSelect function using a slot that's unoccupied. You can check it in server & set the phase to login to prevent it. game/src -> input_login.cpp -> void CInputLogin::CharacterSelect(LPDESC d, const char * data)
  14. Server is running, I can connect and do all the things I should be able to, however after starting the attack, only the auth will go down (Not crashing, only being stuck at "Connecting to server...").
  15. Actually, it is not in fact a small attack. And idk if i'm running on a virtual machine, for now it's a test vps bought from a hosting company which offers iso installation directly, so I just installed a 12.1 FreeBSD with that feature for it. Here's the output from ifconfig: vtnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=6c07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> ether 00:ce:b4:37:72:cd inet 160.20.145.45 netmask 0xffffff00 broadcast 160.20.145.255 inet6 fe80::2ce:b4ff:fe37:72cd%vtnet0 prefixlen 64 scopeid 0x1 media: Ethernet 10Gbase-T <full-duplex> status: active nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 groups: lo nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> I disabled pf, I can login and play normally, however, once I start the attack, the whole server will start lagging and, after a little bit will eventually kick my character and the whole login will break down, not even getting past "Connecting to server..."
  16. Running a layer7 attack via a public stresser, using a method called "HTTP-SOCKET", which is spamming GET requests to [Hidden Content] with 30 requests per ip, using around 2k ips with random geolocation. Here's my pf conf: # This is a minimalistic configuration with basic rate limiting # Change the value to reflect your public interface. You can see this with ifconfig. ext_if="vtnet0" # Ports used for services (ssh, http, https) service_ports="{ 22, 3306 }" # Ports game_ports="{20076, 20083, 20081, 20079, 20077 }" auth_ports="{20085}" icmp_types = "{ echoreq, unreach }" # table for abusive_hosts = Block IP´s. table <abusive_hosts> persist file "/usr/home/game/Firewall/abusive_hosts" # IP addresses that should override the firewall rules, such as your web server. table <whitelist> const { 127.0.0.1 } martians = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, \ 10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, \ 0.0.0.0/8, 240.0.0.0/4 255.255.255.255/32 \ ::/128 ::1/128 ::ffff:0:0/96 ::/96 100::/64 \ 2001:10::/28 2001:db8::/32 fc00::/7 fe80::/10 \ fec0::/10 ff00::/8 }" set block-policy drop set limit { states 100000, frags 20000, src-nodes 100000, table-entries 200000 } set loginterface $ext_if set skip on lo scrub on $ext_if reassemble tcp no-df random-id antispoof quick for { lo0 $ext_if } block in block in quick from <abusive_hosts> # Drop all Non-Routable Addresses block drop in quick on $ext_if from $martians to any block drop out quick on $ext_if from any to $martians pass out all keep state pass out on $ext_if all modulate state # Allow ping pass inet proto icmp all icmp-type $icmp_types keep state # Rate limits pass in on $ext_if proto tcp to any port $service_ports flags S/SA synproxy state \ (max-src-conn 30, max-src-conn-rate 15/5, overload <abusive_hosts> flush global) pass in on $ext_if proto tcp to any port $game_ports flags S/SA synproxy state \ (max-src-conn 30, max-src-conn-rate 15/5, overload <abusive_hosts> flush global) pass in on $ext_if proto tcp to any port $auth_ports flags S/SA synproxy state \ (max-src-conn 30, max-src-conn-rate 15/3, overload <abusive_hosts> flush global) pass in quick from <whitelist>
  17. Sorry, here's the tcpdump using your arguments & the port of the attacked channel. (tcpdump -i vtnet0 -n -vvv port 20085 in my case) [Hidden Content] And here is the tcpdump for every port besides the one of my ssh (in my case is 22 since it's a test server) [Hidden Content]
  18. I have direct access to the stresser and can always test it, I tried to block it myself but unfortunately failed. I even tried to install nginx & deny all connections but that didn't worked LOL. The attack is simply sending requests to [Hidden Content] where the ip is of course, the server's ip and the port being either a channel or the auth, won't matter as it will completely break the whole auth. Here's a tcpdump (using tcpdump -i vtnet0 tcp) log while attacking for 5 minutes: [Hidden Content] (pastebin alternative cuz the text is way longer then 500kb)
  19. Hello, As of recently, new methods of ddosing servers have been found out. The problem is, there isn't actually a "way to protect" for everybody. The new attacks are based on layer 7, which the freebsd's PF and IPFW does not support unfortunately. Other then creating a reverse proxy for the server, which could filter out the ips, is there any alternative method? After also testing on multiple servers, it seems that even the bigger servers have problems with it, if somebody decides to pay 100 euro for a stresser subscription with layer 7 methods, it can be bad. Any ideas?
  20. Hello metin2dev, I've been facing a bug since quite some time and I can't get my head around it. The bug is mainly happening only for the main character, for every other instance you can select them properly, however for the main chararacter, neither the select circle effect won't appear when you point the click on the character neither right clicking on it will have an effect. Here's a gif with the problem: [Hidden Content] The weird part is that I don't have any error in syserr related to it or to anything, as a matter of fact.
  21. Having the same problem too. Running Windows 10 21H2 build 19044.1645. It seems that on older versions it doesn't happen //Edit The problem seems to be from the settings of the graphics card driver. My solution was letting the application decide what to choose. In my case, i'm using NVIDIA. The fix is easy to do through the nvidia's control panel: Now, you can either use "Let the 3D Application decide" or "Use my preference emphasizing" and scroll to Quality.
  22. Hello metin2dev! You might've noticed that after using hamachi (if you still do, i recommend moving to localhost directly, since it's a outdated method anyway to use hamachi) that your internet speed went considerably down like it was being limited. The problem is from hamachi limiting the system while using their free version. You can fix this problem easily from cmd. First let's check the changed values AND if they're even modified. Open cmd with administrator and run the following command: netsh interface tcp show global If "Receive Window Auto-Tuning Level" is disabled, you need to enable it again. In order to do that, run the next command into the command line: netsh interface tcp set global autotuninglevel=normal Now, an optional step, you might want to enable "Receive-Side Scaling State" as well, hamachi might've changed this value too. We'll do it with the following command: netsh interface tcp set global rss=enabled After doing these steps you can do a speedtest and should see the differences before & after using hamachi.
  23. As it may look, it's probably from a leaked system, mostly from the biolog system from drakarys. The error is mainly from the notification system built in the biolog system. You might've messed the implementation steps. The core indicates a nullptr inside the ActiveAlert function. The problem is that we can't really help since it's a leaked system and we don't have access to it neither the permission to look into it.
  24. Unfortunately the link for the animated weapon expired. If somebody is kind enough, would you please give an updated one here? Thanks!
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.