Как посмотреть на повтор Starcraft 2?
Я заинтересован в создании парсера для собственного удовольствия с помощью PHP. Что мне нужно знать? Какие у вас есть предложения? Как даже открыть воспроизведение Starcraft 2 с помощью PHP?
3 ответов
файл воспроизведения SC на самом деле является архивным файлом MPQ. Этот архив MPQ содержит несколько разных файлов (например, a .сжатый файл.)
внутри этого архива находятся отдельные файлы для каждого из типов данных в архиве MPQ. (Например есть один файл для игровых событий и другой для событий пользовательского интерфейса).
существует достаточное количество документации в интернете о том, как иметь дело с файлами MPQ. Теперь отдельные файлы в MPQ немного сложнее.
Если вы хотите получить информацию из повтора (кто были игроки и на какой карте они играли), вы можете использовать эти инструменты. (Я предполагаю, что Unix, как веб-сервер).
1) Скачать и построить libmpq и mpq-tools (https://libmpq.org/ )
2) запустите следующие скрипты
вы можете запустить их из вызова system (), а затем выполнить несколько команд разделения, чтобы получить игроков и гонку.
сохраните это как info.sh - ... Запускайте его как команду shell и передать файл воспроизведения в качестве аргумента.
#!/bin/bash
# Save this file as info.sh
# This extracts the individual files from the MPQ archive (the replay
# file)
mpq-extract -e > /dev/null
cat file000000.xxx | strings | ruby info.rb
вот сценарий ruby. Сохраните это как информацию.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)]
надеюсь, что это помогает!
взгляните на http://code.google.com/p/phpsc2replay/
Я думаю, что это может быть именно то, что вы ищете. Жаль, что я не нашел его месяц назад.
как даже открыть воспроизведение Starcraft 2 с помощью PHP?
С любой из функций файловой системы PHPhttp://us.php.net/manual/en/ref.filesystem.php
поскольку большинство повторов SC2 кажутся довольно маленькими по размеру, вы, вероятно, могли бы уйти с file_get_contents()
чтобы получить весь файл в виде строки.