ParadiseAigo / Tekken-7-Player-Displayer

See your opponent's name before accepting the match and more...
MIT License
38 stars 10 forks source link

"Steam didn't give us a name" #5

Closed Loemnk closed 2 years ago

Loemnk commented 3 years ago

Hi,

first of all thank you for working on this program, so we can actually avoid toxic players :)

I've been using this since yesterday, but it seems to worky only very rarely.

I know in the known Issues you write that not finding the name of the player can happen, but only 1 in 5 times.

This does not seem to be the case for me, I'm lucky if I get a name after 10 times encountering a player in queue.

Anyways thx again for working on this.

Cheers

ParadiseAigo commented 3 years ago

Thanks for the feedback!

Okay, I'm surprised that it's that bad for you. So I have been using this program for a while now and this is usually how it goes: the first request that I get almost always fails to fill the address in the process that I read from to get the name, but after that the success rate is very high.

Here are a few ideas. I don't know if you play on wifi or if the people that you got are, because I think that makes it more likely to fail but I'm not sure. Secondly, sometimes when you accept a request, the request disconnects immediately (this is a problem in the game), in those cases you also don't get to see the name. Finally, and I'm not sure about this at all, but the way it matches you up with someone is this: a Steam server asks you if you want to play with someone, and if you accept, the server then sends a second request to your opponent that contains your name and asks them if they want to play you, so in other words if you are the first person to get the request the address that I use fails to be filled, so if this is true it's a 50% chance.

In any case I'll try to find a better address; one that is more reliable. Thanks again for letting me know.

Loemnk commented 3 years ago

Thank you for getting back to me so quickly.

I have close to zero programming knowledge so please dismiss anything stupid I say, but I know there is other people who did this before, like this one : https://github.com/BuffJulia/Tekken-7-Blacklist I can't tell you how well this one worked since I discovered it after it was already out of date and the owner seems to not update it anymore, but maybe there is a hint in there.

I also have an older cheat engine table that I got from a reddit user back in season 2 and 3 that worked pretty well in showing the names, if you want I could send that your way. It obviously does not work anymore, but the offsets for the pointers are still there, should that help.

P.S.: I don't play on wifi, I also made sure that my nat type is open, my connections are pretty good most of the time.

ParadiseAigo commented 3 years ago

Okay, thanks. I may have found a better way to do it but it's going to take some time to code it into the program. In the meantime, if you want you can send me your older cheat table you have from season 2 and 3 like you said the offsets might be useful. You can send it here: ParadiseAigo@hotmail.com

ParadiseAigo commented 3 years ago

New release (called v1.1.0)! You can still expect the first one to fail (not always though), but after that it should be much better. Now if the program doesn't get the name but it does get the steam id and if it doesn't happen to find the Steam id in the list of people you played against, it will say "New (not in list)" and the person will be saved ofcourse if you play against them.

Loemnk commented 3 years ago

Ok, this is really weird.

I've seen you do some changes the last few days and wanted to try them out immediately, so I build those myself using Visual Studio with the commits from feburary 6th and 7th and it worked really well! Except for the first time(which is normal), the names showed up every time without fail, even though it seemed to sometimes carry over the name of the last person I fought. I know because the country code changed but the name stayed the same. But other than that, it worked really well.

Now with release v1.1.0 I'm sorry to say that it does not work at all. EDIT: Getting the Message "Failed to get any info" every time

I've tried for 30 minutes and not single name showed up I also got very few matches, using the latest release, probably just a coincidence though.

Oh, also the GUI Spits out this error code continuously (latest release and the ones I built myself).

Error code

EDIT:

Did some more testing and every build above the yellow line fails to show any name.

The ones before work fine in showing the name.

testing

ParadiseAigo commented 3 years ago

Error 299 in this case means it wasn't able to read from the Tekken process. The cause of this error can be very hard to find. I know if you try to use 32 bit program (this program) to read the process in memory of a 64 bit program (Tekken) it will give you this error. But you obviously compiled the program correctly into a 64 bit because you say it worked at first.

Also the program now still uses the same name address to figure out the name of the opponent (hasn't changed since the first release). But what has changed is that it's able to get the steam id (example: 76561197960265729) of the opponent before the match almost 100% of the time. This means that you won't see their name, but after you play with them they will be saved in the .txt file, and when you get them again you will see their name that was saved in the .txt file.

I'll do some more testing later.

Just in case here is a picture showing how to create a 64-bit exe in Visual Studio:

git64bit

ParadiseAigo commented 3 years ago

I think I should mention something, I didn't at first because I thought it was obvious, but this program has nothing to do with whether or not you get matched with someone, it only reads from the process to give you info that was "hidden", it doesn't change the logic of the game.

And, regarding the 299 error, this is an error that can be caused by something outside the program, so getting it doesn't necessarily mean that the program is broken. The simplest thing you can do is try restarting the program or even your computer. Check task manager, and make sure there are no instances of the program still running before you restart the program.

Loemnk commented 3 years ago

I'm aware that this program is only for showing hidden information and does not actually change any function, sorry if it seemed like I thought it was.

As for the error code, I tried a lot of stuff, restarting pc, closing down almost every program, just to make sure if it conflicted with something, starting the program in Admin mode, no change.

This was also not a problem in release 1.0.0, the GUI Console worked fine and did not show the 299 Error, I really don't know what could have changed.

Voidryuu commented 3 years ago

Hello,

I got the same error as you Loemnk when trying the program on another computer. The problem was that the steam api module name was different on my computer. I added a fix so that it will work for both. (It will be available in the next release.)

And thanks for your feedback btw ^^

Loemnk commented 3 years ago

As of v1.1.2 the program functions exactly like ParadiseAigo described in the comments above The error code is gone, names(steamID's) get added to the text file and names show up like they should.

I will open another issue, should I notice any other bugs.

Thank you two again for putting your valuable time into this.

Loemnk commented 3 years ago

Hey, I finally had some time to play again and test this more, and since you kept this open I'm just gonna post this here.

I noticed that before accepting a match, multiple names show up in the console and the name telling you who you are about to fight is not always correct, but it seems to be always one of the multiple names that show up before accepting a match.

It's not really a problem, since I still see all the names.

Just wanted to let you know in case this is not intended.

Cheers