lichifeng/recanalyst2

分析《帝国时代2》记录的游戏文件。

0.1.0 2017-12-07 07:55 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:20:21 UTC


README

Packagist License Build Status Gitter chat

开发中,请勿使用!!!

RecAnalyst2 是一个用于分析《帝国时代2》记录游戏的 PHP 包。RecAnalyst2 是从

它支持以下记录游戏文件:RecAnlyst

  • 《国王的时代》
  • 《征服者》
  • 《UserPatch》
  • 《失落帝国》
  • HD 版本(可选扩展)

并读取以下数据:

  • 游戏设置
  • 玩家
  • 聊天消息
  • 研究和时代升级时间
  • 地图数据(地形,海拔)
  • 初始单位
  • 成就(仅限 UserPatch)
  • 贡品

一个小型演示应用程序托管在 http://idlebeaver.ninja/recanalyst

许可证 - 致谢 - 贡献 - 要求 - 安装 - 配置 - 用法示例 - API 文档 - 限制

$rec = new \RecAnalyst\RecordedGame('recorded_game.mgx2');
$rec->mapImage()->save('minimap.png');
foreach ($rec->players() as $player) {
    printf("%s (%s)", $player->name, $player->civName());
}

许可证

GPL-3. 查看 COPYING.

致谢

最初从 Biegleux 的作品中分支出来
v2.1.0 © 2007-2010 biegleux <biegleux@gmail.com>
原始项目主页
原始项目文档

另请参阅 references.md.

贡献

RecAnalyst 正在寻找贡献者。请参阅 问题列表 中的错误或缺失功能,并通过打开 PR 来帮助实现它们!

RecAnalyst 是一个开放的开源项目

做出重大和有价值贡献的个人将获得对项目的提交访问权限,以便按其意愿进行贡献。这个项目更像是一个开放维基,而不是一个标准受保护的开源项目。

有关更多信息,请参阅 贡献指南

要求

RecAnalyst 与 PHP 5.6+ 和 PHP 7 兼容。需要安装 Imagick 或 GD 扩展来生成地图图像。

安装

使用 Composer

composer require recanalyst/recanalyst

配置

RecAnalyst 随带翻译和研究和文明图像文件。

如果您正在使用 Laravel 与 RecAnalyst,请向下滚动以了解 Laravel 集成

RecAnalyst 包含一个基本翻译器类,适用于独立使用。默认情况下,RecAnalyst 使用来自《帝国时代2:高清版》的英语语言文件。

RecAnalyst 包含在 resources/images 文件夹中的文明、单位和研究图标。如果您正在独立使用 RecAnalyst,并希望使用这些图标,可以将该文件夹复制到您的项目中。然后,您可以通过以下方式引用不同类别的图标

Laravel

将 RecAnalyst 服务提供者添加到您的 config/app.php

'providers' => [
    RecAnalyst\Laravel\ServiceProvider::class,
],

RecAnalyst 将自动为您的 Laravel 应用配置选择适当的翻译。

请将文明和研究中心图标复制到您的 public 文件夹。

php artisan vendor:publish --tag=public

您可以通过以下方式参考不同类别的图标:

API 文档

要开始,以下 使用示例 可能会有所帮助。

完整的 API 文档可在 https://goto-bus-stop.github.io/recanalyst/doc/v4.2.0 查找。

限制

在编写自己的 RecAnalyst 应用程序时,以下是一些需要考虑的事项:

  • 成就数据仅在多人游戏 UserPatch 1.4 (.mgz) 游戏中可用。它不会被保存在单人游戏录制中,也不会在任何其他游戏版本中保存。
  • 除了在游戏开始时,RecAnalyst 不能用于找到任何时间点的游戏状态。这是因为 AoC 存储了一个动作列表,要重建特定时间点的游戏状态,游戏必须完全模拟。请参阅 #1
  • 很少情况下,帝国时代在游戏结束时无法保存投降动作。在这种情况下,RecAnalyst 无法确定玩家的 resignTime 属性。请参阅 #35