mboost-dp1

Detect events i log fil


Gå til bund
Gravatar #1 - inckie
23. jul. 2014 15:42
Har et spil som skriver alle events til en chat log.

Jeg kunne rigtig godt tænke mig at lave et program som læser denne filen og reagere på bestemte events i spillet.

Problemet er at chat log filen kun bliver opdateret i et bestemt interval.

Jeg har dog fundet ud af at man kan trigger skrivning til log fil, ved at slå "log chat" fra.

Jeg har derfor bare lavet en macro inde i spillet som slår chatlog fra også til igen i et loop (det sker ca. 1 gang i sekundet).

Dog giver det et nyt problem at slå log fra/til hele tiden. da SWG så tilføjer følgende entries hver gang, det gør ca. at log filen vokser alt for hurtigt.


[Spatial] Current chat log file size: 104 KB
[Spatial] Chat logging ON


Jeg har derfor prøvet at lege med noget kode, som læser første linje, sletter den og echo'er den. Det var hvertfald meningen, men problemet her, er at nogle gange får jeg kun halve linjer, fordi jeg formoder at SWG ikke har skrevet linjen færdig.

Se koden her: http://pastebin.com/PCPHdtJ2
Gravatar #2 - inckie
23. jul. 2014 17:22
For lige at glatte helt ud hvad jeg forsøger:

Læse en log fil, hvor nyeste chat linjer siden sidste write, bliver skrevet på én gang i et bestemt interval
Matche hver linje med regex for at trigger bestemte events
Undgå er filen bliver kæmpe stor og svær at håndtere. (gode ideer ønskes)

ps. spillet køre på Linux via Wine
Gravatar #3 - inckie
26. jul. 2014 08:30
Min løsning blev at output appended data med tail.
En gang i mellem låser jeg filen og truncater den og låser den op igen.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login