neowutran / ShinraMeter

Tera DPS Meter
https://neowutran.ovh/updates/?C=M;O=D
MIT License
114 stars 80 forks source link

DPS stops working once I change character #181

Closed Qarinna closed 7 years ago

Qarinna commented 8 years ago

Hello DPS works fine the first time I select character, but once I go back to character selection and select another one, it stops working. The new character is not detected (the logo of the guild doesn't change) and the new fight is not recorded. Any suggestions?

Gl0 commented 8 years ago

Anything in error.log? Relogged few times between my chars - seems working properly...

Qarinna commented 8 years ago

No, it is empty. The problem doesn't occur every time I change character, just sometimes. And seems to be more frequent when I change from windowed mode to full screen mode due to taskbar problems described and inability to find solution for now

Qarinna commented 8 years ago

Update. The problem happens even if i don' change character. Just the meter stops registering the next fights sometimes.

Gl0 commented 8 years ago

If you restart tera without restarting meter after problem occur, meter works?

Qarinna commented 8 years ago

Yes, just tested.

Gl0 commented 8 years ago

You are using raw sockets or winpcap mode?

Qarinna commented 8 years ago

I don't understand the question. I am using winpcap drivers, just reinstalled to be sure, but behavior is the same

Qarinna commented 8 years ago

Also since i reinstalled drivers, I notice that dps meter crashes too often. It crashed 2 times after 2 fights, saying pc is too slow to use dps meter

Gl0 commented 8 years ago

We have some thoughts about what can cause it. Try to use raw sockets mode, may be it helps with stops. "pc is too slow" - is different problem, but may have the same root - check background processes, may be something is eating your CPU.

Qarinna commented 8 years ago

With raw sockets the meter is not working all together. It detects my guild and characters, but no dps results during fights

neowutran commented 8 years ago

In your case if the meter crash / stop working, the most probable thing is that something is using all the CPU resource. ( The meter is configured to have the same priority as a screensaver, so even if he need CPU, the meter won't ask for more CPU )

Check what is burning your CPU ^^

Qarinna commented 8 years ago

The CPU might be used by the games in running, but it should be possible to adjust priority, id rather have little stuttering over having to restart tera again. Also it shouldnt return error and just crash. Other programs are not behaving in this way. I've never had a game crash due to cpu being overloaded. I mean, for me this is kinda flaw in the program itself and could be fixed.

Gl0 commented 8 years ago

We are planning to add some priority boost on capture thread, but not sure it helps if you have 100% CPU used. btw, if you run multiple tera windows - meter switch to every new window and stop working with old one.

Qarinna commented 8 years ago

No, i don't run multiple tera windows with the meter on, habit from older meters i've been using. But it sometimes happens that I run tera window, watch a movie or have some other game opened.

BTW what about the original problem of the thread? :D i tried open sockets but it didn't work, so i reverted back to winpcap and the meter sometimes stops randomly to work

neowutran commented 8 years ago

For raw socket, check the firewall. See wiki & batch script for that.

But everything is linked to the original problem =) CPU overloaded => meter can't access to CPU power => so we loose some packet => meter wait to receive the packet he excepted to receive, but since we loose it => infinite waiting = stop working

That is the most probable problem. With Gl0 we were talking about some idea that can help to stop the infinite waiting, but won't solve the problem directly.

Qarinna commented 8 years ago

I've been testing around, the meter doesn't work stable with raw socket, it works better with winpcap. I haven't had this problem for week already, but still i am unable to identify the root of the problem. In any case I think the thread can be closed now.

Gl0 commented 8 years ago

Recheck, whether it happens after 1.28. Added "unfreeze" workaround, that stops waiting for missing data after 300 buffered packets, and trying to parse all queue.