Как мне посмотреть реплей Starcraft 2? - PullRequest
7 голосов
/ 04 октября 2010

Я заинтересован в создании парсера для собственного удовольствия с использованием PHP.Что мне нужно знать?Какие предложения вы бы мне предложили?Как мне открыть реплей Starcraft 2, используя PHP?

Ответы [ 3 ]

12 голосов
/ 27 октября 2010

Файл воспроизведения SC на самом деле является архивным файлом MPQ.Этот архив MPQ содержит несколько разных файлов (например, ZIP-файл).

Внутри этого архива имеются отдельные файлы для каждого типа данных в архиве MPQ.(Например, существует один файл для игровых событий, а другой - для событий пользовательского интерфейса).

В Интернете имеется достаточно документации о том, как обращаться с файлами MPQ.Теперь отдельные файлы в MPQ немного сложнее.

Если вы хотите получить информацию из воспроизведения (кем были игроки и на какой карте они играли), вы можете использовать эти инструменты.(Я предполагаю, что Unix-подобный веб-сервер).

1) Скачать и собрать libmpq и mpq-tools (https://libmpq.org/)

2) Запустить следующие сценарии

Вы можете запустить их из системного вызова (), а затем выполнить несколько команд разделения, чтобы получить игроков и расу.

Сохраните это как info.sh.Запустите его как командную оболочку и передайте файл воспроизведения в качестве аргумента.

#!/bin/bash

# Save this file as info.sh

# This extracts the individual files from the MPQ archive (the replay
# file)


mpq-extract -e $1 > /dev/null
cat file000000.xxx | strings | ruby info.rb

Вот скрипт ruby.Сохраните это как info.rb

# This *kinda* extracts the file info from a header file.  I don't
# really know how it works yet, so I'm just extracting strings.
#
# Save this file as info.rb

lines = STDIN.readlines
puts "%s:%s|%s:%s" % [(lines[0].strip), (lines[1].strip), (lines[2].strip), (lines[3].strip)]

Надеюсь, это поможет!

2 голосов
/ 27 ноября 2010

Взгляните на http://code.google.com/p/phpsc2replay/

Я думаю, это может быть именно то, что вы ищете.Мне бы очень хотелось, чтобы я нашел его месяц назад.

1 голос
/ 04 октября 2010

Как мне открыть реплей Starcraft 2, используя PHP?

С любой из функций файловой системы PHP http://us.php.net/manual/en/ref.filesystem.php

Так как большинство повторов SC2 кажутся довольно маленькими по размеру, вы, вероятно, можете воспользоваться file_get_contents() для получения всего файла в виде строки.

...