Giter Club home page Giter Club logo

phpsc2replay's Introduction

Parser and analyzer library for StarCraft II replay files

Alpha preview version.

To compile you need:
 * cmake
 * the boost c++ libraries (version >= 1.41)
 * libmpq (version >= 0.4.2, if you use the latest bleeding edge, be sure to set the NEW_LIBMPQ cmake flag to ON)

Feedback really appreciated!

phpsc2replay's People

Contributors

zsol avatar cconger avatar lvirkama avatar

Watchers

James Cloos avatar

Forkers

matthiaslantsch

phpsc2replay's Issues

Misinterpret Player as Observer

What steps will reproduce the problem?
1. This only occurs in the latest version (Revision 5bbf12d4bf)

The parser tends to recognize second player as Observer. Already double 
confirmed. 

Original issue reported on code.google.com by [email protected] on 13 Aug 2010 at 9:18

Chatlog of non playerhost games is wrong

What steps will reproduce the problem?
1. If a third hosts a game the chatlog is parsed wrong. Messages aren't stored 
with the corresponding author. Correctly the hoster is not visible in the file 
if not playerhost, that might be the problem.

Original issue reported on code.google.com by [email protected] on 8 Sep 2010 at 3:08

Does not work with Bzip2

What steps will reproduce the problem?
1. Have a host that does not support Bzip2 such as DreamHost

What is the expected output? What do you see instead?
Nothing is outputted other than the HTML.

What version of the product are you using? On what operating system?
1.1, using it on Linux Debian.

Please provide any additional information below.
It doesn't work at all without the Bzip2, and there is no alternative to it. 
What is the purpose of the Bzip2?

Original issue reported on code.google.com by [email protected] on 17 Oct 2010 at 11:19

Empty action on beta 2on2 replay

What steps will reproduce the problem?
1. Download 
http://www.fragster.de/download/60/demos-replays-starcraft-2-2on2/4481/sc2-esl-2
on2-cup-finale-13-juli/ 
2. Parse the 3rd replay (on Tarsonis Assault)
3.

What is the expected output? What do you see instead?

Zerg player myFEELooSeRE: An "empty" action is created after 54 seconds:

00:53   trains a Drone
00:54   
01:09   trains an Overlord

What version of the product are you using? On what operating system?

It's a SC2 Beta replay parsed on v1.00

Please provide any additional information below.

Debug info from timestamp 54:

DEBUG L2: Timestamp: 54, Frames: 0, Type: 3, Global: 0, Player ID: 5 
(DerFrodo), Event code: B1 Byte: 00001A3B
DEBUG L2: Timestamp: 54, Frames: 3, Type: 1, Global: 0, Player ID: 1 
(myFEELooSeRE), Event code: AC Byte: 00001A42

Selection Change
Player 1
Time 869
Deselected Count: 2
Number of New Unit Types 1
1 x 0x007601
TOTAL: 1
0x007601 -> 0x374
DEBUG L2: Timestamp: 54, Frames: 0, Type: 1, Global: 0, Player ID: 1 
(myFEELooSeRE), Event code: 0B Byte: 00001A52

DEBUG L2: Timestamp: 54, Frames: 0, Type: 3, Global: 0, Player ID: 5 
(DerFrodo), Event code: B1 Byte: 00001A75

DEBUG L2: Timestamp: 54, Frames: 0, Type: 3, Global: 0, Player ID: 5 
(DerFrodo), Event code: B1 Byte: 00001A7C

DEBUG L2: Timestamp: 54, Frames: 0, Type: 3, Global: 0, Player ID: 5 
(DerFrodo), Event code: B1 Byte: 00001A83

DEBUG L2: Timestamp: 54, Frames: 0, Type: 1, Global: 0, Player ID: 3 (Aristeo), 
Event code: AC Byte: 00001A8A

Selection Change
Player 3
Time 869
Deselected Count: 1
Number of New Unit Types 1
2 x 0x00B301
TOTAL: 2
0x00B301 -> 0x340
0x00B301 -> 0x354
DEBUG L2: Timestamp: 54, Frames: 3, Type: 3, Global: 0, Player ID: 5 
(DerFrodo), Event code: B1 Byte: 00001A9E

DEBUG L2: Timestamp: 54, Frames: 2, Type: 1, Global: 0, Player ID: 1 
(myFEELooSeRE), Event code: AC Byte: 00001AA5

Selection Change
Player 1
Time 874
Deselected Count: 1
Number of New Unit Types 1
1 x 0x008601
TOTAL: 1
0x008601 -> 0x32C
DEBUG L2: Timestamp: 54, Frames: 0, Type: 1, Global: 0, Player ID: 1 
(myFEELooSeRE), Event code: 0B Byte: 00001AB5

DEBUG L2: Timestamp: 54, Frames: 0, Type: 1, Global: 0, Player ID: 5 
(DerFrodo), Event code: AC Byte: 00001AD8

Selection Change
Player 5
Time 874
Deselected Count: 1
Number of New Unit Types 1
1 x 0x008601
TOTAL: 1
0x008601 -> 0x32C
DEBUG L2: Timestamp: 54, Frames: 3, Type: 1, Global: 0, Player ID: 1 
(myFEELooSeRE), Event code: 0B Byte: 00001AE8

DEBUG L2: Timestamp: 55, Frames: 3, Type: 1, Global: 0, Player ID: 1 
(myFEELooSeRE), Event code: 0B Byte: 00001B0C

Original issue reported on code.google.com by [email protected] on 29 Sep 2010 at 7:10

Parsing is faulty

What steps will reproduce the problem?
1. Upload a lengthy replay (usually breaks around the 50 min mark)
2. phpsc2replay only parses up to about 12 minutes
3. Most data is lost

What is the expected output? What do you see instead?
Expected output: Information for the whole duration of the replay
What I see: Premature end of output (only parses like 12 minutes of the replay)

What version of the product are you using? On what operating system?
Latest (1.3) Linux Server with Bzip2, PHP, etc installed.

Please provide any additional information below.
These replays are from the Official release of StarCraft II. No beta replays 
were used.

It also happened on the test website provided.

I attached a replay that causes an error.

Original issue reported on code.google.com by [email protected] on 24 Dec 2010 at 10:29

Attachments:

Missing map hashes

I found the following missing map hashes (from version 16605 and 16561).
If I understand your code, the whole block is duplicated, when only the maphash 
changed (and not the map name). Maybe we could handle it better to avoid such 
duplicates ?

I can help you with this if you want.
------
"High Ground" c687f2019d8727efd7643baaf374a6cfd17426d9fcadbf3c7e68add8fabfc0e6
"Shakuras Plateau" 
147b0b1af57211e9dadbe715baff82e1393b8994dc7e0abce6d66401fbe3c673
Delta Quadrant e22873b1c653920390a0a9792afa05dae7ef6b425285023d0aed40ba08b316d9
Toxic Slums  32d145b82695942fb39203c0369d8b0af321fcdb83771b9e8f4b05c902bfe1f9
Lost Temple 58558f452af5ccf36c2eb1a6f55f510b4779b21fb0c316cceca38a69c5ffb3d1
"Monsoon"  7478eedd1db831d9549ce9e6480aaebe6f64b507417f33ff5d26dc2b55c2a2e8
 "Tarsonis Assault" 404c0b66d28ee67c93de133ca3e6043293def1413feb0b4304fbf655b268db02
Jungle Basin   a6633d28c194b94e0dfbb163bcf6e3b307d4be0ac45d0f2c469b52cc17923c05
Sand Canyon  c8f51b300a4c67e6f7f74f1414492df7494e4f39e40d81909b250f6ac9b30811
"Megaton" c10c18ee4ed6c9d947049eb36bab3ea92b9d63eb76a858e8a7c55009887f3ff7
Dig Site   d603d8b766deaab29c40cc8fba443e7d098a8541ed4fdc0620869d557612081b
Lava Flow  094049180812d81a8315152a1c86571ee59989197f05da673506bddc13c1536b
"Typhon"    320cd118d6c04b15e07d14a7c8dea3ae8cf72aa5637b47c68ad7ee7d13b8302a
"Monlyth Ridge"   
dec3f2d368017bb2deb6e168a517325dd2ee6ff6e5e8f159724836987ee170bf
"High Ground"   c687f2019d8727efd7643baaf374a6cfd17426d9fcadbf3c7e68add8fabfc0e6



Original issue reported on code.google.com by [email protected] on 12 Oct 2010 at 3:09

Violating PHP license?

Nothing serious but I guess you are violating the PHP license:

  4. Products derived from this software may not be called "PHP", nor
     may "PHP" appear in their name, without prior written permission
     from [email protected].  You may indicate that your software works in
     conjunction with PHP by saying "Foo for PHP" instead of calling
     it "PHP Foo" or "phpfoo"

(http://www.php.net/license/3_01.txt)

I had the same issue with Warcraft III parser ;)

Original issue reported on code.google.com by [email protected] on 7 Aug 2010 at 3:45

Parser incorrectly identifies 2vs2 teams

What steps will reproduce the problem?
1. See attached replay
2. Parse

What is the expected output? What do you see instead?
Two teams of two players. Instead see two teams, one of 1 player, one of 3 
players.

What version of the product are you using? On what operating system?
Newest release of phpsc2replay on 32bit debian testing


Original issue reported on code.google.com by [email protected] on 3 Nov 2010 at 10:26

Attachments:

Selection Event Unit Type Collisions

First, thanks (everyone) for open sourcing code and sharing your insights on 
this project; they create an invaluable asset for the Starcraft community.

----

What steps will reproduce the problem?
1. Upload attached file with debug on at:

http://kuukkeli.ath.cx/ooaemkee/SC2Replay/upload_file.php

2. Inspect Byte: 00000167

Selection Change
Player 2
0x001301 -> 0x0730
DEBUG L2: Timestamp: 5, Frames: 0, Type: 1, Global: 0, Player ID: 2 
(ShadesofGray), Event code: AC Byte: 00000167

3. Inspect Byte: 0000398C

Selection Change
Player 1
0x001301 -> 0x0298
DEBUG L2: Timestamp: 393, Frames: 22, Type: 1, Global: 0, Player ID: 1 
(Zephid), Event code: AC Byte: 0000398C

What is the expected output? What do you see instead?

I would expect different Unit Type codes. Instead I see that both player 2's 
Egg and player 1's tech lab (on a factory) have the same Unit Type Id which 
cannot be correct.

What version of the product are you using? On what operating system?

I am using the currently live version of the product on the website linked.

Please provide any additional information below.

I have also run it locally on a reimplementation I created in python which 
(with the same logic as in the repo) produced the same error (as you would 
expect).

I have not currently located other instances of this conflict but I have 
noticed that many units like eggs and morphing or burrowing units can 
correspond to half a dozen different Unit Type Ids if you try to pin it down. 
When I first encountered these issues I started a new map which demonstrates 
what I'm talking about and is attached as well.

This only appears to be an issue with the selection event. I've been unable to 
figure out the issues so far and am hoping that someone brighter than I could 
perhaps solve it.

Original issue reported on code.google.com by [email protected] on 6 Jan 2011 at 3:11

Attachments:

Wrong Team Size

What steps will reproduce the problem?
1.
2.
3.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 14 Oct 2010 at 11:59

Numevents

I think you have a bug with addPlayerAbility and $numevents for zergs players.

For exemple in this replay phpsc2replay return:
- Drone :: x53
- Overlord ::  x11
- Zergling x 2 :: x 26
- Roach :: x 23

In fact in this game i just made 18 drones, 6 overlords, 5 zerlings and 10 
roachs. I try to fix this bug but for now i can't understand why.

I think it's link to the larva production system because only zerg bug and the 
queen number is correct.

Do you have an idea?

Original issue reported on code.google.com by [email protected] on 26 Mar 2011 at 6:13

Attachments:

Copy-paste'd issue in sc2replayutils.php

        0x0A0303 => array('desc' => 'researches Ground armor level 1', 'name' => 'Ground weapons L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 100, 'gas' => 100),
        0x0A0304 => array('desc' => 'researches Ground armor level 2', 'name' => 'Ground weapons L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
        0x0A0305 => array('desc' => 'researches Ground armor level 3', 'name' => 'Ground weapons L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 225, 'gas' => 225),

...should be:

0x0A0303 => array('desc' => 'researches Ground armor level 1', 'name' => 
'Ground armor L1', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 
'min' => 100, 'gas' => 100),
        0x0A0304 => array('desc' => 'researches Ground armor level 2', 'name' => 'Ground armor L2', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 175, 'gas' => 175),
        0x0A0305 => array('desc' => 'researches Ground armor level 3', 'name' => 'Ground armor L3', 'type' => SC2_TYPEUPGRADE, 'subtype' => SC2_SUBTYPECREATE, 'min' => 225, 'gas' => 225),

Original issue reported on code.google.com by [email protected] on 1 Sep 2010 at 10:31

Missing method

function getGamePublic() { return $this->gamePublic; }

Could you add this to the sc2replay.php class? :)

Original issue reported on code.google.com by [email protected] on 30 Aug 2010 at 10:45

Incorect map name

Hello,

First many thanks for the tool :)

In the file sc2replayutils.php the map name "Kulas Ravine" is used for two 
different code.

Regards,
Christophe

Original issue reported on code.google.com by [email protected] on 18 Aug 2010 at 12:52

Use UnitData.xml to populate sc2replayutils.php

One of the great feature of phpsc2replay is the informations provided in 
sc2replayutils.php :
for each ability, we have 'min', 'gas' and 'sup'.

These values are handled manually, but we could avoid making changes at each 
StarCraft patch by using the UnitData.xml that is located in 
./Mods/Liberty.SC2Mod/Base.SC2Data on ./GameData/

We may provide a parser of this file and generate one file per patch named (for 
example) unitdata.v11.php
Then, every usage of phpsc2replay can refer to it to get the data you want.
Moreover, the "id" attribute of CUnit is unique. Maybe there is a logic in the 
matching between this and the ability code in replays ?

Extract of the XML : 
    <CUnit id="Ultralisk">
        <DeathRevealRadius value="3"/>
        <Race value="Zerg"/>
        <Mob value="Multiplayer"/>
        <LifeStart value="600"/>
        <LifeMax value="600"/>
        <LifeArmor value="1"/>
        <LifeRegenRate value="0.2734"/>
        <LifeArmorName value="Unit/LifeArmorName/ZergGroundArmor"/>
        <Speed value="2.25"/>
        <SpeedMultiplierCreep value="1.3"/>
        <Acceleration value="1000"/>
        <LateralAcceleration value="46.0625"/>
        <Food value="-6"/>
        <AttackTargetPriority value="20"/>
        <DamageDealtXP value="1"/>
        <DamageTakenXP value="1"/>
        <KillXP value="150"/>
        <Radius value="1"/>
        <SeparationRadius value="1"/>
        <InnerRadius value="0.75"/>
        <CargoSize value="8"/>
        <ScoreMake value="800"/>
        <ScoreKill value="1600"/>
        <ScoreResult value="BuildOrder"/>
        <SubgroupPriority value="12"/>
        <MinimapRadius value="1"/>
        <FlagArray index="PreventDestroy" value="1"/>
        <FlagArray index="UseLineOfSight" value="1"/>
        <FlagArray index="TurnBeforeMove" value="1"/>
        <FlagArray index="AISplash" value="1"/>
        <TurningRate value="360"/>
        <PlaneArray index="Ground" value="1"/>
        <Collide index="Ground" value="1"/>
        <Sight value="9"/>
        <AbilArray Link="stop"/>
        <AbilArray Link="attack"/>
        <AbilArray Link="move"/>
        <AbilArray Link="BurrowUltraliskDown"/>
        <CardLayouts>
            <LayoutButtons Face="Move" Type="AbilCmd" AbilCmd="move,Move" Row="0" Column="0"/>
            <LayoutButtons Face="Stop" Type="AbilCmd" AbilCmd="stop,Stop" Row="0" Column="1"/>
            <LayoutButtons Face="MoveHoldPosition" Type="AbilCmd" AbilCmd="move,HoldPos" Row="0" Column="2"/>
            <LayoutButtons Face="Attack" Type="AbilCmd" AbilCmd="attack,Execute" Row="0" Column="4"/>
            <LayoutButtons Face="MovePatrol" Type="AbilCmd" AbilCmd="move,Patrol" Row="0" Column="3"/>
            <LayoutButtons Face="BurrowDown" Type="AbilCmd" AbilCmd="BurrowUltraliskDown,Execute" Row="2" Column="4"/>
        </CardLayouts>
        <Attributes index="Armored" value="1"/>
        <Attributes index="Biological" value="1"/>
        <Attributes index="Massive" value="1"/>
        <EditorCategories value="ObjectType:Unit,ObjectFamily:Melee"/>
        <GlossaryCategory value="Unit/Category/ZergUnits"/>
        <GlossaryPriority value="180"/>
        <CostCategory value="Army"/>
        <CostResource index="Minerals" value="300"/>
        <CostResource index="Vespene" value="200"/>
        <GlossaryStrongArray value="Marine"/>
        <GlossaryStrongArray value="Zealot"/>
        <GlossaryStrongArray value="Zergling"/>
        <GlossaryWeakArray value="Marauder"/>
        <GlossaryWeakArray value="Immortal"/>
        <KillDisplay value="Always"/>
        <WeaponArray Link="KaiserBlades"/>
        <WeaponArray Link="Ram"/>
        <Fidget>
            <ChanceArray index="Anim" value="50"/>
            <ChanceArray index="Idle" value="50"/>
        </Fidget>
        <TauntDuration index="Cheer" value="5"/>
    </CUnit>

Original issue reported on code.google.com by [email protected] on 9 Oct 2010 at 10:02

Attachments:

Winner detection bugs

What steps will reproduce the problem?
1. Parse any of the 2 attached replays

What is the expected output? What do you see instead?
The expected output is one of the players having the win flag set.

What version of the product are you using? On what operating system?
current repository version (with teamAttrib fix)

Please provide any additional information below.
In the first replay one player leaves and the other should be the winner.
In the second replay all buildings of one player are destroyed and the other 
should be the winner.

replays are from before 1.2.0

Original issue reported on code.google.com by [email protected] on 13 Jan 2011 at 3:50

Attachments:

Dupliate entries in build order in almost every replay

Run the upload_file.php demo on the attached replay file.
Pretty much every replay yields these same results, though :(

18 sec  trains a Probe (090E00)  
18 sec  trains a Probe (090E00)  

320 sec     lifts off (Factory) (080500)
320 sec     lifts off (Factory) (080500)

348 sec     researches Cloaking field (090600)
348 sec     researches Cloaking field (090600)

514 sec     lifts off (Factory)
514 sec     lifts off (Factory)
515 sec     lands (Factory)
(just one of the "two" factories landing after the factory/starport swap)

I presume this has to do with some structure not getting reset correctly, or 
maybe some offset repeating itself, or being misaligned when parsing the replay 
file? 

Got any good ideas? :)

Original issue reported on code.google.com by [email protected] on 30 Aug 2010 at 10:44

Attachments:

Unit selections and hotkeys not exposed

When parsing a replay, selection changes and hotkey events are accounted for in 
the APM calculation, but not exposed anywhere.

This makes deeper analysis impossible for client code.

Original issue reported on code.google.com by [email protected] on 9 Mar 2011 at 6:56

Missing type in sc2replayutils.php $depHashes

Some elements  at the end of the array in $depHashes are missing '"type" => 
SC2_DEPMAP'.

Also, I found some map hashes not present in your file. How do you handle 
multiple hashes for the "same map" (ie same name) ?

Original issue reported on code.google.com by [email protected] on 11 Oct 2010 at 2:43

  • Merged into: #20

cannot parse 1 replay of mine

What steps will reproduce the problem?
1. upload the attached file to your upload_file.php demo
2. various details like apm, buildings, units, etc. are not parsed

What is the expected output? What do you see instead?
Some Details are not parsed correctly

What version of the product are you using? On what operating system?
I tried a your script on linux with apache2, on windows with xampp, and your 
upload_file.php demo. Always the same output.

Please provide any additional information below.
Keep up the good work :)

Original issue reported on code.google.com by [email protected] on 28 Dec 2010 at 6:21

Attachments:

game events are not being parsed

What steps will reproduce the problem?
1. upload attached file
2. see how it's parsed

What is the expected output? What do you see instead?
game events are not being parsed

What version of the product are you using? On what operating system?
1.3

Please provide any additional information below.
team size is 2v2, but the real team size is 1v1, tried to parse it on v1.2 as 
well and game events were parsed correctly, but the teams were messed up

Original issue reported on code.google.com by [email protected] on 29 Nov 2010 at 5:51

Attachments:

build failure

sh-3.2# make
[ 10%] Building CXX object CMakeFiles/ReplayAnalyzer.dir/src/info.cpp.o
[ 20%] Building CXX object CMakeFiles/ReplayAnalyzer.dir/src/messageevents.cpp.o
[ 30%] Building CXX object CMakeFiles/ReplayAnalyzer.dir/src/mpq.cpp.o
[ 40%] Building CXX object CMakeFiles/ReplayAnalyzer.dir/src/mpqimpl.cpp.o
[ 50%] Building CXX object CMakeFiles/ReplayAnalyzer.dir/src/player.cpp.o
[ 60%] Building CXX object CMakeFiles/ReplayAnalyzer.dir/src/replay.cpp.o
[ 70%] Building CXX object CMakeFiles/ReplayAnalyzer.dir/src/syncevents.cpp.o
Linking CXX static library Debug/repad.a
[ 80%] Built target ReplayAnalyzer
Scanning dependencies of target detailsparser
[ 90%] Building CXX object 
tools/CMakeFiles/detailsparser.dir/detailsparser.cpp.o
Linking CXX executable detailsparser
Undefined symbols:
  "boost::program_options::detail::cmdline::set_options_description(boost::program_options::options_description const&)", referenced from:
      boost::program_options::basic_command_line_parser<char>::options(boost::program_options::options_description const&)in detailsparser.cpp.o
  "boost::program_options::validate(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*, int)", referenced from:
      boost::program_options::typed_value<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::xparse(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) constin detailsparser.cpp.o
  "vtable for boost::program_options::variables_map", referenced from:
      boost::program_options::variables_map::~variables_map()in detailsparser.cpp.o
  "boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const", referenced from:
      vtable for boost::program_options::typed_value<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>in detailsparser.cpp.o
  "typeinfo for boost::program_options::value_semantic_codecvt_helper<char>", referenced from:
      typeinfo for boost::program_options::typed_value<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>in detailsparser.cpp.o
  "boost::program_options::options_description::m_default_line_length", referenced from:
      _main in detailsparser.cpp.o
      _main in detailsparser.cpp.o
  "boost::program_options::abstract_variables_map::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const", referenced from:
      boost::program_options::variables_map::operator[](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) constin detailsparser.cpp.o
  "boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)", referenced from:
      _main in detailsparser.cpp.o
  "boost::program_options::detail::cmdline::set_positional_options(boost::program_options::positional_options_description const&)", referenced from:
      boost::program_options::basic_command_line_parser<char>::positional(boost::program_options::positional_options_description const&)in detailsparser.cpp.o
  "boost::program_options::to_internal(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > boost::program_options::to_internal<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)in detailsparser.cpp.o
  "boost::program_options::store(boost::program_options::basic_parsed_options<char> const&, boost::program_options::variables_map&, bool)", referenced from:
      _main in detailsparser.cpp.o
  "boost::program_options::arg", referenced from:
      boost::program_options::typed_value<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::name() constin detailsparser.cpp.o
      boost::program_options::typed_value<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::name() constin detailsparser.cpp.o
  "boost::program_options::operator<<(std::basic_ostream<char, std::char_traits<char> >&, boost::program_options::options_description const&)", referenced from:
      _main in detailsparser.cpp.o
  "boost::program_options::positional_options_description::add(char const*, int)", referenced from:
      _main in detailsparser.cpp.o
  "boost::program_options::options_description_easy_init::operator()(char const*, char const*)", referenced from:
      _main in detailsparser.cpp.o
      _main in detailsparser.cpp.o
  "boost::program_options::detail::cmdline::run()", referenced from:
      boost::program_options::basic_command_line_parser<char>::run()  in detailsparser.cpp.o
  "boost::program_options::variables_map::variables_map()", referenced from:
      _main in detailsparser.cpp.o
  "boost::program_options::notify(boost::program_options::variables_map&)", referenced from:
      _main in detailsparser.cpp.o
  "vtable for boost::program_options::value_semantic_codecvt_helper<char>", referenced from:
      boost::program_options::value_semantic_codecvt_helper<char>::value_semantic_codecvt_helper()in detailsparser.cpp.o
      boost::program_options::value_semantic_codecvt_helper<char>::~value_semantic_codecvt_helper()in detailsparser.cpp.o
  "boost::program_options::positional_options_description::positional_options_description()", referenced from:
      _main in detailsparser.cpp.o
  "boost::program_options::detail::cmdline::cmdline(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)", referenced from:
      boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char**)in detailsparser.cpp.o
  "boost::program_options::options_description::options_description(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)", referenced from:
      _main in detailsparser.cpp.o
  "boost::program_options::options_description::add_options()", referenced from:
      _main in detailsparser.cpp.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [tools/detailsparser] Error 1
make[1]: *** [tools/CMakeFiles/detailsparser.dir/all] Error 2
make: *** [all] Error 2

Original issue reported on code.google.com by [email protected] on 28 Aug 2010 at 4:12

Foreign character names causing trouble with parsing players

What steps will reproduce the problem?
1. Load the attached file into phpsc2replay (I was informed the names are in 
Russian, I'm assuming this is the main issue since it has been working fine 
with english only names.)

What is the expected output? What do you see instead?
Some data such as the version and length parse fine but the array returned by 
getPlayers() is empty.

What version of the product are you using? On what operating system?
phpsc2replay v1.20 on Windows 7 using PHP 5.2.14

Please provide any additional information below.
Is this something that is supposed to work, or something that just isn't 
implemented and will it be implemented in the future.

Original issue reported on code.google.com by [email protected] on 4 Nov 2010 at 10:23

Attachments:

Building the C++ lib is not possible on windows

So it seems that building this stuff on windows is hard at best. I actually 
haven't managed to build it because of some weird linking errors with libmpq.

I'm not sure how many people would actually use this part on Windows, so if 
you're interested, make a comment below. If enough people are interested, I'll 
try to figure something out.

Original issue reported on code.google.com by [email protected] on 4 Sep 2010 at 1:26

map hash mix up

What steps will reproduce the problem?
1. parse a german "lost temple -> verschollener tempel" replay


What is the expected output? What do you see instead?
Expected: Lost Temple. Instead: Toxic Slums.

What version of the product are you using? On what operating system?
Newest version. Linux root server (debian).

Please provide any additional information below.
checked the parser output using this site:
http://kuukkeli.ath.cx/ooaemkee/SC2Replay/upload_file.php
checked the replay using a hex editor -> localized map name is "verschollener 
tempel" (lost temple).

The map hashes seem to be mixed up. Replay in question attached. I can't check 
the replay starting the sc2 game, since i don't own the game. I'm just one of 
the tech-admins on our site responsible for our implementation of your awesome 
sc2 parser.

Original issue reported on code.google.com by [email protected] on 26 Oct 2010 at 4:21

Attachments:

The following replay does not parse.

Replay does not parse with v1.3 + 1.2 patch. Replay does not parse using 
http://kuukkeli.ath.cx/ooaemkee/SC2Replay/upload_file.php (assuming v1.4 here)

Output from sample script is simply:
Peak memory usage: 786432 bytes
Page generated in 15 ms.


Original issue reported on code.google.com by [email protected] on 31 Jan 2011 at 8:59

Attachments:

Fail to parse one race

What steps will reproduce the problem?
Parse attached replay

What is the expected output? What do you see instead?
Parse fails at about 1/3rd of the replay. Also, one of the players' race is 
incorrect.

Original issue reported on code.google.com by [email protected] on 24 Jan 2011 at 8:53

wrong server

When I send a replay, I see that information from the server is wrong
Example: Sending a replay of the LA server, it appears that the server is U.S.
i am using phpsc2replay 1.10

Original issue reported on code.google.com by [email protected] on 17 Oct 2010 at 3:52

can't parse properly: doesnt get the team size, real team size, realm and some others on

What steps will reproduce the problem?
1. upload a valid sc2 files (bug happens on every rep I've uploaded so far)

What is the expected output? What do you see instead?
The first weired things is this "Map name" then I can't get the team 
sizes and race coloru apm box in the table are empty

What version of the product are you using? On what operating system?
1.30 on Windows 7, php ver 5.3.2
same happens on Windows 2003 server

Please provide any additional information below.

Thank you for you appreciable work!

Original issue reported on code.google.com by [email protected] on 26 Nov 2010 at 4:09

Error in Parsing

What steps will reproduce the problem?
1. Upload through upload_file.php on 64-bit Linux with php v5.2.9 

What is the expected output? What do you see instead?
Should extract file data but all fail with error message similar to "Error 
reading the replay.details file". 

What version of the product are you using? On what operating system?
Current on Linux x86_64 with php 5.2.9.  

Please provide any additional information below.
I ran this fine on a local server with Windows Vista 64 and php 5.2.13.  In 
doing some debugging I traced the variation down to the results of

$temp1 = ($seed & 0xFFFF) << 0x10;

in the function initCryptTable.  

e.g for a $seed value of 2143124 the vista install returns $temp1 value of 
-1282146304 while linux 64 returns 3012820992.   

Is this due to the problem of php being unable to handle unsigned integers over 
2^31?  It seems to me that the Linuc machine actually hadled the shift 
correctly while the Vista machine returned a signed integer result but the 
Vista machine is extracting file data without a problem?

Original issue reported on code.google.com by [email protected] on 11 Jun 2010 at 5:22

Wrong Team Size with Replay

What steps will reproduce the problem?
1. Upload Replay
2. Submit
3. See results

What is the expected output? What do you see instead?
Replay is clearly a 1v1, yet team size says 2v2.

What version of the product are you using? On what operating system?
1.1

Please provide any additional information below.
When starting a custom game, you have a choice of 1v1 or 2v2, etc... This game 
here was selected as 2v2, but it was just a 1v1 with 2 empty slots. The problem 
here is, reading team size seems to cause some inaccuracies in these 
situations. Maybe consider counting players instead of parsing for team size.

Original issue reported on code.google.com by [email protected] on 14 Oct 2010 at 12:02

Attachments:

Wrong teamAttrib for custom 1v1

What steps will reproduce the problem?
1. Parse a custom 1v1 game

What is the expected output? What do you see instead?
teamAttrib should be 1v1 but is 2v0

What version of the product are you using? On what operating system?
current repository version

Please provide any additional information below.
When commenting out lines 305-308 in sc2replay.php the parsing works just as 
expected. I would suggest checking that part if it does actually make any sense.

Original issue reported on code.google.com by [email protected] on 13 Jan 2011 at 3:43

Make parse-errors friendlier

Parse errors currently manifest themselves as ugly "unpack" messages. This 
needs work; either in the form of prefixing read operations with @, or 
something else (with less overhead).

Original issue reported on code.google.com by [email protected] on 19 Jan 2011 at 6:53

Debug Info

There are some debug info which appears in non-debug mode. It would be good to 
add 

if ($this->debug)

on line 497 in mpqfile.php for next release.

Original issue reported on code.google.com by [email protected] on 28 Oct 2010 at 5:28

insertChatLogMessage() in MPQFile class is broken

Timestamp is not calculated properly and the function will likely be buggy if 
the chat log is originally empty.

If the chatlog is not empty, the message is inserted properly but the timestamp 
generated will be dodgy.

Original issue reported on code.google.com by [email protected] on 10 Aug 2010 at 8:55

Errors parsing games since Patch 1.1

As of Patch 1.1 events in Replay Files aren't parsed properly.
Error on the upload Script: 
Version: 1.1.0.16561

Warning: unpack() [function.unpack]: Type C: not enough input, need 1, have 0 
in /opt/lampp/htdocs/ooaemkee/SC2Replay/mpqfile.php on line 87

Warning: unpack() [function.unpack]: Type C: not enough input, need 1, have 0 
in /opt/lampp/htdocs/ooaemkee/SC2Replay/mpqfile.php on line 87

Original issue reported on code.google.com by [email protected] on 23 Sep 2010 at 4:53

Does not parse the whole replay

What steps will reproduce the problem?
1. Try to Parse the replay

What is the expected output? What do you see instead?
I expected replay analysis of the whole replay. Just first 423 seconds were 
returned.

What version of the product are you using? On what operating system?
1.10,  Mac OS X

Please provide any additional information below.
Replay file is attached.

Original issue reported on code.google.com by [email protected] on 14 Oct 2010 at 2:41

Attachments:

Duplicates events

What steps will reproduce the problem?
1. Parse the file using your great parser
2. For instance, have a look to oGsTheWinD events in the early game. According 
to the parser, 6  Overlords in the row have been trained... which is not 
possible at this moment of the game.


What is the expected output? What do you see instead?
I looked at the replay and of course, only 1 Overlord has been trained.
This is probably due to the keyboard spam... or else :)
It doesn't thappen only for this replay.


What version of the product are you using? On what operating system?
Latest atm: 1.3
MacOS X 10.6.5

Please provide any additional information below.
This is not useful, but thanks for your parser. This is a great tool.



Also, do you think it could be possible to get the supply limit (what we have 
in the top right of the screen In Game) in the same way we hame the time line ?

Thanks!

Original issue reported on code.google.com by [email protected] on 17 Dec 2010 at 11:14

Attachments:

Does not work for v 1.2.0 replays

What steps will reproduce the problem?
1. Update SC2 to 1.2.0
2. Play Game
3. Upload Replay!
;-)

Works perfectly for all of my files up until 1.2.0, then crashes and scrolls 
errors. Thanks for all the hard work. (I know 1.2.0 is not supported yet, but I 
figured I'd add the issue)

Original issue reported on code.google.com by [email protected] on 12 Jan 2011 at 5:57

Server IDs for BNET Url's

I am posting my findings here in response to a discussion thread asking for a 
way to determine the bnet server #

Quote: 

Example, European server URL: 
http://eu.battle.net/sc2/eu/profile/203342/1/srsRAZERnAni/ 
Example Russian server URL 
http://eu.battle.net/sc2/eu/profile/160089/2/GrAsE/ 
The difference in URL here is "1" or "2" before player name. Is this info 
stored in replay? 
URL for 1st example: http://sc2rep.ru/show.php?id=1073 
URL for 2nd example: http://sc2rep.ru/down.php?id=1111 

=========================================
I am not 100% sure about this, but I am fairly confidant that the "server" 
identifier is located at $player[1][2]

I added the following to lines 213 of sc2replay.php to extract this information 
to be stored in the $playerArray

$p["server"] = $player[1][2];

This has worked for all the replays that I have been able to test so far. 

Original issue reported on code.google.com by [email protected] on 9 Sep 2010 at 3:26

Color Additions

public static $colorIndices = array(1 => "Red", 2=> "Blue", 3=> "Teal", 4=> 
"Purple", 5=> "Yellow", 6 => "Orange", 7=> "Green", 8=> "Pink");

should be changed to:

in sc2replay.php

public static $colorIndices = array(1 => "Red", 2=> "Blue", 3=> "Teal", 4=> 
"Purple", 5=> "Yellow", 6 => "Orange", 7=> "Green", 8=> "Light Pink", 9=> 
"Violet", 10=> "Light Gray", 11=> "Dark Green", 12=> "Brown", 13=>"Light 
Green", 14=>"Dark Grey", 15=>"Pink");

to include all possible user color selections.

Original issue reported on code.google.com by [email protected] on 29 Aug 2010 at 9:05

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.