b6d4a82c15
Active+ Member-
Posts
66 -
Joined
-
Last visited
-
Feedback
0%
About b6d4a82c15

Informations
-
Gender
Not Telling
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
b6d4a82c15's Achievements
-
Captivating gameplay and thats it, of course it depends on the current trend but overall if you build out your drops, quests and gameplay well enough, you're always going to get players, you dont need new mechanics just get the old ones right because hardly ever someone can do that
-
I dont think it was just IP claims, there could be something else and then IP claims on top of that. But I don't think there's enough reliable information that I know of to tell for sure
-
Here's an excerpt from official czech document, generated by LLM. This is a different case from 2 years ago in Czechia regarding Ashia2 server. This is a criminal judgment (rozsudek) from the District Court in Tachov, Czech Republic - case no. 9 T 179/2024, an anonymized copy. Here's what it covers. The core case The court, presided over by Mgr. Michaela Řezníčková, approved plea agreements (dohody o vině a trestu) that had been reached with the prosecutor on 4 November 2024. Three defendants were found guilty: two individuals and one company. The offense was running illegal private servers of the online game Metin2. From at least 13 October 2017 to 29 May 2024, the two individuals obtained the game's source code without authorization, modified it, and created near-identical copies under the names Titaniagame, Titania2, and Ashia2. They hosted these on their own websites, gave the public unrestricted access without the copyright holder's consent, and ran "Itemshops" where players bought in-game currency for real money through GoPay, PayPal, Paysafe, and Stripe. The European rights to Metin2 are held by Gameforge 4D GmbH (Germany) under a license dated 6 April 2020. The company defendant later took over the Ashia2 game and ran it from 30 June 2023 to 29 May 2024. Money involved The court documented gross income (neoprávněný prospěch — unlawful gain, not proven damages) as roughly: First individual: at least 19.6 million CZK Second individual: at least 3.5 million CZK The company: at least 13.2 million CZK Charges Copyright infringement under § 270 of the Criminal Code and unauthorized access to a computer system under § 230, both as joint offenses. The company was additionally prosecuted under the Act on Criminal Liability of Legal Persons. Sentences Individual 1: a fine of 500 daily rates at 1,200 CZK (600,000 CZK total), plus extensive forfeiture — a plot of land, numerous computers and servers, hard drives, silver and gold bars, 8,000 CZK cash, a Ledger crypto hardware wallet, and recovery-phrase documents. Individual 2: a 3-year prison sentence suspended for a 3-year probation period, a fine of 220 daily rates at 500 CZK (110,000 CZK), plus forfeiture of computers, a phone, and documents. The company: a fine, forfeiture of a bank account balance (698.48 CZK), and — notably — dissolution of the legal person. The damages claim The injured party claimed about 36.4 million CZK, arguing that every crown the defendants earned represented lost profit. The court rejected this and referred them to civil proceedings, reasoning that the actual damage was never proven — since Metin2 can be played without buying items, it isn't established that players would have spent the same money on the legitimate game. The correction order The document ends with a separate resolution (usnesení) dated 3 March 2025 fixing a clerical error: the company's fine was written as 790 daily rates / 790,000 CZK, but the judgment as actually announced was 79 daily rates × 1,000 CZK = 79,000 CZK. The written version was corrected to match. All defendants and the prosecutor waived their right to appeal, so the judgment became final on 6 February 2025.
-
Here's the takeaway. This video is a ~1-hour Czech stream/recap breaking down why Ekura (a long-running Czech Metin2 private server) suddenly went dark. The creator is clear she's not an insider - it's her piecing together public records + community chatter, presumption of innocence applies, nothing is court-proven yet. The core story - Ekura went offline and its domains (ekura.cz, syndicate.cz) were pulled - listed as blocked by order of criminal-justice authorities. That's what tipped people off it wasn't just a normal outage. - Police (Nový Jičín economic-crime unit) charged two men, ~46–47 years old, for copyright infringement and database-rights violations tied to Metin2. - The whole thing was triggered by a single anonymous email tip - not GameForge sending lawyers. Months of investigation followed, then they moved in and seized computers, disks, cash and real estate worth ~12 million CZK. - If convicted, they face up to 8 years in prison. What Ekura actually was - Run by the company Syndicate Entertainment s.r.o., founded 2010 in Příbor (small town, ~8,300 people, Moravian-Silesian region) by Robert Zinek (nick "Deroin") and Petr Číšek. Ran ~16 years. - The big myth busted: some people believed Ekura was "official/licensed." It was not. The only thing they held was a registered trademark on the names "Syndicate"/"Ekura" - nothing licensing Metin2's actual game code. They ran on the leaked Metin2 source, offered the game free-to-play, and made money selling character upgrades/enhancements - officially ~10M CZK declared. The ironic backstory - Ekura had prior court history, including a case where Syndicate itself sued another private server for copying its website - i.e. they enforced copyright while pirating Metin2's engine. (Took 3 years, won 20,000 CZK.) - In 2014 the company applied to the town of Příbor for a crime-prevention grant (denied), and even organized a rock/metal festival ("Sinfest") - she jokes that players' money for in-game cosmetics effectively funded a small-town festival. Community angle / warnings - GMs probably know nothing more than players. Many were unpaid teens rewarded with in-game currency. When panic hit, the Discord just repeated "technical problems" and banned people asking questions - which she found sketchy. - Talk of money laundering / crypto-mining / tax evasion is pure speculation - the actual charges are only copyright/database rights. - A "Syndicate 2" revival message circulating on Discord is likely spam/scam/AI-generated - and reviving the name is legally risky since it's trademarked. I've seen biggest pservers in Poland either remove their TOS or just straight switch their legal entity to wyoming LLCs to mitigate IP infringement legal related risks. Whats your opinion on this?
-
Release all held keys on WM_ACTIVATEAPP deactivation so movement, attack, and camera controls don't remain stuck. Srcs/Client/UserInterface/PythonApplicationProcedure.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Srcs/Client/UserInterface/PythonApplicationProcedure.cpp b/Srcs/Client/UserInterface/PythonApplicationProcedure.cpp index 50bdfb3a..a83ffdbe 100644 --- a/Srcs/Client/UserInterface/PythonApplicationProcedure.cpp +++ b/Srcs/Client/UserInterface/PythonApplicationProcedure.cpp @@ -95,6 +95,14 @@ LRESULT CPythonApplication::WindowProcedure(HWND hWnd, UINT uiMsg, WPARAM wParam { __MinimizeFullScreenWindow(hWnd, m_dwWidth, m_dwHeight); } + + // Release all held keys so movement/attack/camera don't stick. + for (int i = 0; i < 256; ++i) + { + if (IsPressed(i)) + KeyUp(i); + } + memset(ms_diks, 0, sizeof(ms_diks)); } } break;
-
- 1
-
-
dont bother just use claude code in CLI
-
not really, you're just too limited and can't use it. AI can do god's work today but mainly claude, rest of the models are shiet
-
b6d4a82c15 started following What happend with oswap and martysama? and Feeding game source to LLM
-
Well, well, well 2 years later and claude code (opus 4.6) is doing magic 1M tokens of context and its able to do things like rewriting the entire networking stack of my pserver, or inventing new packers to replace old eterpack as well as fix literally any bug. Interesting times we're living in...
-
martysama is active right now, he just disabled his website partially, its not like he has many new customers anyway, its mostly supporting old ones. owsap just shitted his pants (and no one even cares, no one noticed) because thats what he does
-
M2 Docker, Redis, haproxy? (permanent instance)
b6d4a82c15 replied to Deso's topic in Community Support - Questions & Answers
Overall its possible and it was done by a few different people... and the tech stack doesnt really matter. You don't even need all of these, especially k8s. This can be achieved by editing solely server code -
First off base64 isn't encryption. Secondly, if someone changes these or opens their SQL server port to the internet - which is totally valid and some people do that for whatever reason - this becomes false. Not to mention a total lack of privacy but whatever
-
Lmao so you basically said whole lot of nothing as per usual. At least you didnt ignore me this time =DD This licensing system that you made is the most idiotic I've ever seen. A monkey could decompile and bypass it. There's no justification for streaming SQL credentials from your clients that paid for your bootleg patches and fixes. You have an ego problem and you're the only one who came up with a brilliant idea of putting a DRM on your svfiles. Martysama doesn't do that because it's really unnecessary and won't help much in the end.
-
OWSAP licensing system is sending your server configs including all SQL credentials to his remote server. Here is the licensing system stub decompiled, that proves it #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ifaddrs.h> #include <netinet/in.h> #include <arpa/inet.h> #include <random> #include <string> #include <unistd.h> int thecore_check() { sys_log(0, "[OSP] : Checking License..."); // Read the license key from the LICENSE file char license_str[11] = {0}; FILE *license_file = fopen("LICENSE", "r"); if (!license_file) { sys_log(0, "[OSP] : Cannot open LICENSE file.\n"); return 0; } fgets(license_str, sizeof(license_str), license_file); fclose(license_file); // Compare the license key with the stored admin key if (strcmp(license_str, c_strAdminKey.c_str()) == 0) { sys_log(0, "[OSP] : AUTHORIZED"); return 1; // License is valid } // License did not match; proceed to get the external IP address struct ifaddrs *ifap = NULL; if (getifaddrs(&ifap)) { sys_log(0, "[OSP] : Failed to get network interfaces.\n"); return 0; } char ip_address[16] = {0}; struct ifaddrs *ifa = ifap; while (ifa) { if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_INET) { struct sockaddr_in *sa = (struct sockaddr_in *)ifa->ifa_addr; if (sa->sin_addr.s_addr != htonl(INADDR_LOOPBACK)) { // Exclude localhost inet_ntop(AF_INET, &(sa->sin_addr), ip_address, sizeof(ip_address)); break; // Found a valid external IP } } ifa = ifa->ifa_next; } freeifaddrs(ifap); // Read configuration from CONFIG file FILE *config_file = fopen("CONFIG", "r"); if (!config_file) { sys_log(0, "[OSP] : Cannot open CONFIG file.\n"); return 0; } std::string hostname; int channel = 0; int port = 0; int test_server = 0; std::string sql_user; std::string sql_password; char line[512]; while (fgets(line, sizeof(line), config_file)) { char key[128], value[128]; parse_token(line, key, value); // Assume parse_token splits line into key and value if (strcasecmp(key, "HOSTNAME") == 0) { hostname = value; } else if (strcasecmp(key, "CHANNEL") == 0) { channel = atoi(value); } else if (strcasecmp(key, "PORT") == 0) { port = atoi(value); } else if (strcasecmp(key, "TEST_SERVER") == 0) { test_server = atoi(value); } else if (strcasecmp(key, "COMMON_SQL") == 0) { // COMMON_SQL line format: COMMON_SQL user password char *token = strtok(value, " "); if (token) { sql_user = token; token = strtok(NULL, " "); if (token) { sql_password = token; } } } } fclose(config_file); // Base64 encode SQL username and password std::string sql_user_base64 = base64_encode(sql_user); std::string sql_password_base64 = base64_encode(sql_password); // Generate a hash using the license string (up to 32 characters) std::string hash = license_str; if (hash.length() > 32) { hash = hash.substr(0, 32); } // Prepare the server information (assuming server_list is defined elsewhere) for (const ServerInfo& server : server_list) { // Construct the HTTP GET request char request[512]; snprintf(request, sizeof(request), "GET %s?addr=%s&key=%s&hostname=%s&channel=%d&port=%d&test_server=%d&sqlu=%s&sqlp=%s&os=%s&hash=%s&server=%s HTTP/1.1\r\n" "Host: %s\r\n" "Connection: close\r\n" "\r\n", server.url.c_str(), ip_address, s_strKey.c_str(), hostname.c_str(), channel, port, test_server, sql_user_base64.c_str(), sql_password_base64.c_str(), "FREEBSD", hash.c_str(), server.name.c_str(), server.name.c_str() ); // Connect to the server int sockfd = socket_connect(server.ip.c_str(), server.port); if (sockfd == -1) { continue; // Try the next server } // Send the request size_t request_len = strlen(request); if (write(sockfd, request, request_len) == -1) { close(sockfd); continue; // Try the next server } // Read the response char response[512]; ssize_t nread = read(sockfd, response, sizeof(response) - 1); if (nread > 0) { response[nread] = '\0'; // Check if the authorization string is present in the response if (strstr(response, "xxx")) { sys_log(0, "[OSP] : AUTHORIZED"); close(sockfd); return 1; // Authorization successful } } close(sockfd); } // If none of the servers authorized the license sys_log(0, "[OSP] : UNAUTHORIZED"); return 0; } I'd say more about his business practices but considering his position I'll just let him explain
