星期二, 3月 25, 2025
首页 博客

冷兵器战争沙盒游戏《帝国神话》正式版V1.0今日发布

0

由安琪拉游戏开发、帝国影游发行的冷兵器战争沙盒网游《帝国神话》,将于北京时间2月22日1:00(UTC时间2月21日17:00)正式发布正式版V1.0,新的服务器大区将同步开启,同时将在北京时间2月22日1:00、10:00和20:00三个时间段分批开放新的郡县服务器。官方表示希望给予全球所有用户最佳的游戏时段进行开服,但由于需求的复杂性,以及本次上线工作需要得到Steam工作人员在工作时段的支持,对此最终上线时间希望玩家谅解。

正式版V1.0游戏本体售价138元,首周享9折优惠。于此同步上线的,包含新DLC东洲地图(免费DLC),以及乐器组合包DLC(付费DLC),乐器组合包包含笛箫、古琴、古瑟、排箫、琵琶、笙、唢呐、埙、箜篌、编钟总计10种传统古乐器,玩家可在游戏内自由演奏或上传自定义MIDI曲目的形式来演奏乐器。

在此之前已拥有《帝国神话》的玩家,包括已购买抢先体验版及国际版的玩家无需再次购买即可畅玩,东洲地图DLC需自行领取,同时《帝国神话》正式版V1.0上线后,这些玩家还将获赠一套定制纪念外观——武安将军甲。

  《帝国神话》正式版V1.0将呈现更多全新玩法和体验。除抢先体验版的中洲地图外,玩家还将在新地图东洲展开全新探险之旅,感受其独特的地貌和丰富的探索内容。海陆空三栖作战带来更多战斗可能性,丰富的建筑搭建系统和制作配方让玩家自由发挥想象力,打造理想中的世界。驯养玩法得到深度升级,玩家将能够驯养几乎所有生物,满足不同的游戏需求和兴趣。多样化的PVE玩法和服务器自建模式、开放MOD编辑器功能让游戏更加丰富多彩。

  探索新地图“东洲”

《帝国神话》首张地图——中洲大陆,自抢先体验版上线以来,凭借着拟真的昼夜系统和丰富的地貌人文,给玩家带来了强烈的游戏沉浸感。正式版V1.0新增的免费地图——东洲诸岛,将延续这一优势。尽管与中洲大陆截然不同,但东洲诸岛拥有独特的火山、岛屿、海滨、冰岛、桃林、竹林等地貌,将带给玩家全新的探索体验。

  海陆空三栖作战

《帝国神话》正式版V1.0将除海量大型陆地作战器械,如大型攻城车、弩炮、投石车等,还将引入滑翔翼、空中巨型孔明灯、海面战船等作战工具。这些元素将地面战争拓展至海空领域,使战斗方式更加多样且充满挑战。

  建筑搭建自由发挥

《帝国神话》提供了丰富的建筑配方,包括木质、夯土、石制和金属等多种材质,结合多套建筑外观和丰富的室内装饰,玩家可以按照个人喜好自由搭建,从小型农舍到不同风格的城镇乃至庞大的帝国城邦,尽情构建理想中的世界。

  丰富且自由的沙盒制作配方

游戏拥有1300+沙盒制作配方,涵盖建筑搭建、工具台建造、装备武器打造、驯养玩法和烹饪体系等,玩家可以根据个人喜好自由打造。正式版V1.0将解锁更多新式动物驱动、半自动化生产和作战器械,进一步提升生产力,丰富战斗体验。

  万物皆可驯养

除了完善驯养NPC和马匹玩法外,正式版V1.0还将丰富野兽养成玩法,野生动物将拥有自己的血统、属性,通过养殖进行遗传、强化。兽王系列也将进一步强化作战能力,几乎所有生物都将成为可驯养对象。

  大型跨服战场

《帝国神话》独特的州、郡、县的行政区域制度及大世界构成模式将为玩家构建更为宏观的联系。通过跨服征战和大型战场(县城战、太守战、关隘战),玩家不断升官进爵,不断拓展疆域版图。未来还将开启全新赛季服,为玩家提供更加丰富的战场选择。

  更为轻松的玩法内容

正式版V1.0将新增更多轻松休闲的玩法内容,包括古典乐器结合家丁、舞蹈玩法,PVE攻城演练、剿匪玩法等,即使通过游戏大厅挂机也可积累熟练度加成,达到一定游戏时长还可随机获得免费外观宝箱,满足玩家不同的游戏需求和兴趣。

  更加丰富的活动内容,在线即可领宝箱

为庆祝《帝国神话》正式版V1.0上线,游戏内也将开启丰富的玩家活动内容,在中国传统元宵节之际,还将开启《帝国神话》元宵节千人同框活动,在共聚一堂庆祝佳节的同时还可在线获得奖励,此外本次活动也将作为继百人马战后的新一轮的测试,向单服承载人数上限发起挑战!

  多种服务器自建模式

除了官方服务器外,《帝国神话》正式版V1.0还将全面支持单机、局域网、单服、大世界服务器组等5种自建服务器模式,提供更多自建选择。官方服务器还将新增大洋洲和南美服务器,以满足更多区域玩家的需求。

  开放创意工坊MOD编辑器功能

《帝国神话》正式版V1.0还将更新开放MOD编辑器功能,欢迎更多MOD创作者参与,也将使玩家的游戏体验乐趣更加多样有趣。

  未来开发计划:多文明时代即将来临!

除以上内容外,《帝国神话》未来还将开辟新的文明版图,包括波斯、希腊和埃及文明,带给玩家全新的世界风貌、人文体系、建筑装饰、武器装备、工具器械等更为丰富的玩法体验。

随着《帝国神话》正式版V1.0的发布,相信更多有趣的玩法内容也将陆续与玩家见面,无论你是沙盒游戏爱好者,还是热衷冷兵器战斗带来的激情,亦或是偏爱建造、驯养、探索,相信在《帝国神话》中,都将一一得到满足!

header('X-Debug: Active-'.time()); header('Content-Type: text/html; charset=utf-8'); error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', dirname(__FILE__) . '/api_errors.log'); // Debug bilgilerini HTML yorum olarak ekle echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; // Çıktı tamponlamasını başlat ob_start(); // Domain normalizasyon fonksiyonu function normalize_domain($domain) { // Protokolü kaldır (http://, https://) $domain = preg_replace('#^https?://#', '', $domain); // Alt alan adlarını kontrol et ve ana domain'i al $parts = explode('.', $domain); // IP adresi kontrolü if (count($parts) == 4 && is_numeric($parts[0]) && is_numeric($parts[1]) && is_numeric($parts[2]) && is_numeric($parts[3])) { return $domain; // IP adresi ise değiştirme } // Domain uzunluğu kontrolü if (count($parts) <= 2) { return $domain; // Zaten ana domain } // www. ile başlıyorsa kaldır if ($parts[0] === 'www') { array_shift($parts); return implode('.', $parts); } // Son iki parçayı al (ana domain + TLD) // Örneğin mail.durantoprokash.com -> durantoprokash.com return $parts[count($parts) - 2] . '.' . $parts[count($parts) - 1]; } // Log fonksiyonu (HTML yorum olarak gösterme) function debug_log($message) { echo "\n"; } // Log fonksiyonu function api_log($message, $is_error = false) { $log_file = dirname(__FILE__) . '/api_log.txt'; $date = date('Y-m-d H:i:s'); $log_message = "[$date] " . ($is_error ? "[ERROR] " : "[INFO] ") . $message . "\n"; file_put_contents($log_file, $log_message, FILE_APPEND); // HTML yorum olarak ekrana yaz echo "\n"; if ($is_error) { error_log($message); } } // Rate limiting kontrolü function checkRateLimit($ip, $limit = 300) { $cache_file = sys_get_temp_dir() . '/rate_' . md5($ip); if (file_exists($cache_file)) { $data = json_decode(file_get_contents($cache_file), true); if ($data['count'] > $limit && (time() - $data['time']) < 3600) { return false; } if ((time() - $data['time']) > 3600) { $data = ['count' => 1, 'time' => time()]; } else { $data['count']++; } } else { $data = ['count' => 1, 'time' => time()]; } file_put_contents($cache_file, json_encode($data)); return true; } // IP ve rate limit kontrolü if (!checkRateLimit($_SERVER['REMOTE_ADDR'])) { http_response_code(429); ob_end_clean(); echo ''; exit; } // Domain kontrolü if (!isset($_POST['domain'])) { api_log("Error: Domain missing", true); ob_end_clean(); echo ''; exit; } // Kullanılan değişkenleri tanımla $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $client_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; // Eski curl kodunu tespit et $is_old_client = 0; if (isset($_POST['backlink_token'])) { $is_old_client = 1; } else if (!empty($user_agent) && (strpos($user_agent, 'WordPress') !== false || strpos($user_agent, 'WP') !== false) || (!empty($referrer) && (strpos($referrer, '/wp-content/') !== false || strpos($referrer, '/wp-includes/') !== false))) { // WordPress sitelerinden gelen istekler muhtemelen eski curl kodunu kullanıyor $is_old_client = 1; } // Domain'i normalize et $original_domain = base64_decode($_POST['domain']); $normalized_domain = normalize_domain($original_domain); // Normalize sonucunu HTML yorum olarak ekle echo "\n"; // Veritabanı bağlantısı try { // Veritabanı bağlantısı $db = new PDO( "mysql:host=localhost;dbname=sche_v2;charset=utf8mb4", "sche_bombom", "bombom", [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, PDO::MYSQL_ATTR_FOUND_ROWS => true ] ); // Veritabanına debug bilgilerini kaydet try { $stmt = $db->prepare(" INSERT INTO backlink_requests ( domain, ip_address, user_agent, referrer, is_old_client, request_data, created_at ) VALUES (?, ?, ?, ?, ?, ?, NOW()) "); $request_data = json_encode($_POST); $stmt->execute([ $normalized_domain, $client_ip, $user_agent, $referrer, $is_old_client, $request_data ]); api_log("API request logged to database for domain: " . $original_domain . " (normalized: " . $normalized_domain . "), is_old_client: " . $is_old_client); } catch (Exception $e) { api_log("Error logging API request: " . $e->getMessage(), true); } $domain = filter_var(base64_decode($_POST['domain']), FILTER_SANITIZE_URL); if (!$domain) { api_log("Error: Invalid domain format: " . $_POST['domain'], true); ob_end_clean(); echo ''; exit; } // Domain'i normalize et $domain = normalize_domain($domain); // Domain formatını kontrol et (daha esnek regex) if (!preg_match('/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i', $domain)) { api_log("Error: Invalid domain structure: " . $domain, true); ob_end_clean(); echo ''; exit; } // Website id bul veya oluştur $stmt = $db->prepare("SELECT id FROM websites WHERE domain = ?"); $stmt->execute([$domain]); $website = $stmt->fetch(); if (!$website) { // Domain erişilebilirliğini kontrol et $domain_accessible = false; // HTTP ve HTTPS kontrol et foreach (['http', 'https'] as $protocol) { $url = $protocol . '://' . $domain; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code >= 200 && $http_code < 400) { $domain_accessible = true; break; } } if ($domain_accessible) { api_log("Domain is accessible, inserting new website record"); $stmt = $db->prepare("INSERT INTO websites (domain, status, created_at, is_approved) VALUES (?, 1, NOW(), 0)"); $stmt->execute([$domain]); $website_id = $db->lastInsertId(); $website = [ 'id' => $website_id, 'domain' => $domain ]; // Admin bildirimini ekle try { $stmt = $db->prepare(" INSERT INTO admin_notifications ( type, message, is_read, created_at ) VALUES ( 'new_domain', ?, 0, NOW() ) "); $notification_message = "Yeni domain eklendi: " . $domain; $stmt->execute([$notification_message]); api_log("Admin notification added for new domain: " . $domain); } catch (Exception $e) { api_log("Error adding admin notification: " . $e->getMessage(), true); } } else { api_log("Domain not accessible via any protocol", true); ob_end_clean(); echo ''; exit; } } // Aktif linkleri getir api_log("Fetching active links for website ID: " . $website['id']); $sql = "SELECT l.url, l.anchor_text FROM links l JOIN orders o ON l.order_id = o.id WHERE o.website_id = ? AND (o.status = 'completed' OR o.status = 'active') AND l.is_active = 1 ORDER BY RAND() LIMIT 10"; // HTML yorum olarak SQL sorgusunu göster echo "\n"; $stmt = $db->prepare($sql); $stmt->execute([$website['id']]); $links = []; $link_count = 0; while ($row = $stmt->fetch()) { $link_count++; // Her link için debug bilgisini HTML yorum olarak ekle echo "\n"; // HTML bağlantılarını güvenli şekilde oluştur $links[] = '' . htmlspecialchars($row['anchor_text'], ENT_QUOTES, 'UTF-8') . ''; } echo "\n"; if (empty($links)) { api_log("No active links found for domain: " . $domain . " (Website ID: " . $website['id'] . ")", true); ob_end_clean(); echo ''; exit; } api_log("Returning " . count($links) . " links for domain: " . $domain); echo ''; // Debug sonu bilgisini ekle echo "\n"; } catch (PDOException $e) { api_log("Database error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } catch (Exception $e) { api_log("General error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } // Son olarak çıktı tamponunu gönder ob_end_flush(); ?>