ko-vasilev / Hearthstone-Collection-Tracker

A plugin for Hearthstone Deck Tracker that allows to keep track on pack sets
75 stars 47 forks source link

Detect collection with the same method of "Innkeeper" #67

Open Ansem93 opened 8 years ago

Ansem93 commented 8 years ago

Hi, can you change the way HCT detect the library, with the method used by innkeeper? It's by far easier and faster!

flatluigi commented 8 years ago

This would be fantastic, honestly. Innkeeper imports it basically instantaneously and I'd much prefer that to sitting there for 5 minutes as this imports card by card.

NvrBst commented 8 years ago

I would like to upvote this req. The innkeeper program's import is so accurate and instant (i assume the users card collection must be dumped to a log file somewhere at startup?), often times even with 150ms the collection tracker detection method thinks my gold cards are non-gold, and even gives me a card or two I don't have; at this point I typically just accept the couple card errors by HCT.

riQQ commented 8 years ago

Innkeeper reads this data from memory. It's technically against their TOS.

NvrBst commented 8 years ago

Well TOS's are deliberately made so vague that "technically" reading the games log files are against the TOS. Heck, the antivirus I have running can get me banned! That said any program that can be done via pen and paper has pretty much been ok'ed (aka gathering your card collection). With no hook/injection, reading data from RAM is pretty much identical to reading data from HDD.

With a company like curse using this method, so much of the hearthstone user base will be using it that no one should be worried about using this medium for their own applications (as long as the application is not doing something you can't do with pen and paper).

I can understand keeping the old method as an option incase people are scared about the new method, but, maybe an optional "read collection from memory" checkbox could be considered (if HCT doesn't adopt, and other plugins/programs do, then HCT could go the way of the dodo given the distinct advantages the new method has over what HCT is currently doing); if the method is faster and more accurate then I don't see why not. My only concern would be doing it in a robust enough way so it continues to work even after version updates (which should be possible, this is a concern even for the current method btw)...

culinko commented 8 years ago

I personally wouldn't want this even as an option (rather create a fork with the other method instead). I use HDT and its plugins just because they only use logs and some image recognition and everything was acknowledged by Blizzard as fine to use. If you add this even as an option that will be disabled by default, Blizzard could no longer see this plugin (or even HDT itself) as fine to use. They won't ban anyone for it, but I would certainly not want to piss Blizzard off. On the other hand, it's certainly possible that Blizzard will add more logging in the near future, so reliable collection detection will no longer be an issue.

Ansem93 commented 8 years ago

IF cure team use this method, I think that they are 100% sure that is not bannable, otherwise blizzard would have already told them to not advertise it in their streaming

culinko commented 8 years ago

Blizzard never acknowledged their method as being 'okay'. On the other hand, Blizzard has acknowledged Deck Tracker as being okay and they also want people to send them output_log.txt, if they encounter bugs (yong_woo called on people to help him supply their logs concerning specific bugs). Saying something is 100% if Blizzard never acknowledged that memory reading is okay in their book is just foolish.

NvrBst commented 8 years ago

Keep in mind blizzard has never acknowledged HDT as being okay, and probably never will. Blizzard can't say somethings ok when they don't own it (they'd probably get very mad at any employee who tries). I think if you look around the two quotes you'll run into is "anything you can do with pen and paper is fine" and "it's not against the TOS but we can't say it's ok", neither talking about logs/memory/packets/screenscraping/etc specifically. If YongWoo ever asked for ?HDT log? files (why wouldn't he just ask for the hearthstone log files?), then I'm sure he'd of asked for them even if HDT was reading memory.

Again no one should be worried about reading memory, it's hardly different than reading log files or reading data from the screen really. I'd be very surprised if any real programmer (blizzard or not) would have serious moral issues with one method and not the other.

culinko commented 8 years ago

Yong Woo asked for output_log.txt, which is not enabled by default and you need to create the same file Hearthstone Deck Tracker creates for the logging to be enabled. This is what I meant in my previous post.

ko-vasilev commented 8 years ago

Sure it would be a blast feature, but I'm not sure I'm able to implement it. Duplicates #52