Есть необходимость вытащить из пары сотен реплеев информацию кто каким героем играл. Нашел библиотеку на php, но с ней так и не смог разобраться. Там можно отследить героя, если он был выбран последним. Если кто то подскажет по какому принциу спец проги под доту определяют какой игрок кем играл и в каком порядке прокачивал способности - буду благодарен.

Принятый ответ

Информация для тех, кто в этой теме через поиск и в поисках информации. Ниже есть кусок кода, с помощью которого можна записать данные в реплей.
Пока что получилось записать только значения типа Integer.
function Trig_Untitled_Trigger_001_Actions takes nothing returns nothing

    local gamecache g = InitGameCache("Map.w3v")
    call StoreInteger(g, "Map", "winner", 1)
    call TriggerSyncStart()
    call SyncStoredInteger(g, "Map", "winner")
    call TriggerSyncReady()
    call FlushGameCache(g)
    set g = null
    
    call DisplayTextToForce( GetPlayersAll(),"Tried to store info")
    
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
29
2 года назад
0
Насколько я знаю, чтобы парсилось с реплея, надо сначала туда что-то записывать через функции в кэшем, по крайней мере я так делал в своей карте. У тебя реплеи с доты?
И если ты хочешь написать пасрер этого на пхп, я думаю тебе стоит обращаться к к фрилансерам за плату.
0
11
2 года назад
0
Насколько я знаю, чтобы парсилось с реплея, надо сначала туда что-то записывать через функции в кэшем, по крайней мере я так делал в своей карте. У тебя реплеи с доты?
И если ты хочешь написать пасрер этого на пхп, я думаю тебе стоит обращаться к к фрилансерам за плату.
Эх, жаль. Нет, реплеи не из доты. Брат карту делает, хотел помочь выгрузить статистику. Они хостят карту на ирине и все реплеи есть. Думал может как то про простому в реплее можно вытащить героя, а там увы такой информации кажись нет.
0
8
2 года назад
0
В реплее хранится очень много информации, собственно, по нему можно восстановить состояние игры в произвольный момент времени. Но с анализом есть очевидные проблемы - в реплее хранится не само состояние, а, в основном действия игроков. Поэтому, чтобы получить информацию можно записать специальным образом значения в кеш, что будет 100% видно и уникально при парсинге реплея.
Автоматически можно инфу собрать просто последовательно загружая реплеи и смотря пикнутых героев. Можно делать не вручную, а какими-то автоматическими средствами.
0
11
2 года назад
0
goodlyhero, в моих влажных мечтах я представил как использую готовый парсер и получаю просто список игроков которые играли и какими героями играли, а оказываеться все куда сложнее.
Буду думать как можно это дело провернуть не пересматривая все реплеи.
0
32
2 года назад
0
wetalq, всякие реплей сикер, или айкап умеют парсить репы, там сразу и чат и апм, и прочее.
0
11
2 года назад
0
quq_CCCP, с парсингом чата и апм проблем нет, тот парсер на PHP что я нашел это делать умеет. А вот вытащить героя которым играл игрок увы не получаеться. Буду копать документацию к парсеру.
0
32
2 года назад
0
wetalq, там передаётся ифа в геймкешь в виде id героя, давно есть список героев и че кто когда.
0
11
2 года назад
0
Информация для тех, кто в этой теме через поиск и в поисках информации. Ниже есть кусок кода, с помощью которого можна записать данные в реплей.
Пока что получилось записать только значения типа Integer.
function Trig_Untitled_Trigger_001_Actions takes nothing returns nothing

    local gamecache g = InitGameCache("Map.w3v")
    call StoreInteger(g, "Map", "winner", 1)
    call TriggerSyncStart()
    call SyncStoredInteger(g, "Map", "winner")
    call TriggerSyncReady()
    call FlushGameCache(g)
    set g = null
    
    call DisplayTextToForce( GetPlayersAll(),"Tried to store info")
    
endfunction
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.