rogiel/star-replay

PHP版的星际争霸II回放解析器

0.1.5 2016-08-19 16:36 UTC

This package is not auto-updated.

Last update: 2024-09-20 22:14:44 UTC


README

这个库允许您使用PHP读取星际争霸II回放文件。

提供了一个面向对象的API来浏览回放上所有可用的元数据和事件。

特性

  • 读取所有公共游戏版本的.SC2Replay文件(数据来自s2protocol
  • 游戏事件:使用PHP 5生成器流式传输事件
  • 懒解析:只解析您需要的结构

安装

推荐使用Composer安装此库。

composer require "rogiel/star-replay"

此库使用php-mpq来解析和提取回放中的压缩信息。

示例

use Rogiel\StarReplay\Replay;
use Rogiel\StarReplay\Event\Game\CameraSaveEvent;

$replay = new Replay('test.SC2Replay');

echo "Version: " . $replay->getHeader()->getVersion() . "\n";
echo "Map: " . $replay->getMatchInformation()->getTitle() . "\n";
echo "Players:\n";
foreach($replay->getPlayers() as $id => $player) {
	echo "\tPlayer ".$id.": ".$player->getName()."\n";
}

echo "Camera hotkeys:\n";
foreach($replay->getGameEvents() as $timestamp => $event) {
	if($event instanceof CameraSaveEvent) {
		$player = $replay->getPlayers()->getPlayer($event->getHeader()->getUserID());
		echo "\tPlayer ". $player->getName() ." saved a new camera #". $event->getWhich() ." at point ". $event->getTarget() ."\n";
	}
	// since we are using generators, the events will stream linearly from begining to end
}