Jump to content

[TOOL] Gilan's Encounter Counter (Beta Available) v1.0.2 update


Recommended Posts

Hello everyone,

 

I just got approval from the PokeMMO staff on Aug 30th for my app.

Please keep in mind this is a BETA release and only for Windows 64bit systems (32bit will come soon, and I want to get a MacOS version at some point). Expect bugs, crashes, it just plainly not working, etc.. I ask that you report these bugs back to me in the following format:

 

Description of issue (what happened, what were you doing, etc.):

Is the issue reproduceable (i.e. can you make it happen again)?

Anything in the debug folder? if so please make a https://pastebin.com of the debug files

Did the app spit out an error to you? (if so please screenshot it)

What PokeMMO client theme were you using?

What ui scaling is your client on?

 

I may reach out to you to gather additional details depending on the issue.

 

Here is the download linkhttps://www.mediafire.com/file/hr23yrqsr4tsz8s/GEC_Package.zip/file

Google Drive alternative link: https://drive.google.com/file/d/14pVF59IYXpthMCuCnjdm-zcHp4KxTijs/view?usp=sharing

 

v1.0.2 changelog

 

IF YOU ARE UPDATING: the process is the same as the first install, except this time it will ask you if you want to replace the files, select "replace all". Do not worry, this will not overwrite your save data.

 

Copy that zip file to your ./PokeMMO/data/mods folder and then perform an "Extract Here"

Example path to .exe file: ./PokeMMO/data/mods/Gilans Encounter Counter/GEC/GEC.exe

(if instead the folder in your mods folder is /GEC Package/ navigate into it and bring the Gilans Encounter Counter folder up one level)

You can create a desktop shortcut for the .exe file if you wish. If you want the tool to boot up with PokeMMO, create a batch file

 

CUSTOM THEMES YOU CAN DOWNLOAD:

Spoiler

Bear theme (only Expanded Mode):

unknown.png

 

 

Here is a video with installation instructions and a walkthrough of the app:

 

Hope you enjoy!

 

Want to make your own custom theme for my app? Check out my quick run through of how to do it

 

KNOWN BUGS (not yet fixed in downloadable version):

- Fullscreen mode unsupported at this time. (unsure if I will be able to fix this, as the Fullscreen mode for PokeMMO is not capturable, even by regular screenshot methods; and it prevents any window from being on top of it) Best suggestion is to just play in borderless window mode while using the encounter app.

- Safari Zone encounters don't always count properly. This is due to the "A wild X appeared!" text is not up on the screen for a long interval. Currently working on a fix for this

- Doesn't count Zorua species (will count as the species it is currently illusion'd as)

 

Fixed bugs and update in downloadable version:

- jre path location that exists in a personal user folder path will not work. If you don't see a black window pop up on startup, this is most likely the culprit. (prevents counting) I have a fix for this and will be implementing it very soon!

- Settings page is too tall and doesn’t scale with smaller screen sizes. You should be able to drag the settings page up and down which should trigger it snapping to the top or bottom. This will allow you to access the rest of the page. Will add a scroll feature in the future.

- If you use custom strings, my tool will not currently work for you. I am working on a fix. awkways has posted a workaround for the timebeing.

- Certain pokemon aren't being counted, while others are (and I'm not on 1.25x, 1.5x, or 1.75x ui scaling). This is likely due to my program being unnecessarily strict on image matching when the font rendering is slightly different (due to anti aliasing or something). I will relax the restrictions in the next update which should alleviate this issue. Also check if your antialiasing is set to "no antialiasing" (in Graphics) and High DPI Font is enabled (In Interface)

- The black window is still not showing up. Likely due to the PokeMMO main.properties listing a mod name that does not exist. A workaround on the user side can be to delete this mod name from the main.properties file. An code-side fix will be included in the update I will be pushing later this week.

 

-Gilan

Edited by Gilan
Update v1.0.2
Link to comment

After all these years we're getting the perfect encounter counter. That tabbing out thing even if it's something very small it's a big gamechanger to me, someone who likes to listen to music or watch videos in picture-in-picture mode while hunting and has to change it every few minutes, also not couting PVP and NPC battles. Finally we will not have to worry about these things, great work.

Link to comment

And other counters think something like adding a pokemon sprite on ur screen is an improvement. You're doing god's work son, keep it up. Also, whoever suggested the "embedded version" must be a genius <_>

Link to comment
13 minutes ago, Rottenko said:

Hopefully we'll be able to use this tool soon

I really do hope to wrap it all up within the next month. But, I am quite busy with work (we started going back into the office 3 days a week) and doing stuff irl with my friends.

Link to comment

Update on this. I had a major breakthrough today. I am now able to generate font in the exact same way as the PokeMMO client. Took me learning some Java, but I've got it working.

Unfortunately I'm passing the information back to Python by saving a ton of .png images (of the pokemon names rendered in the correct font style), will be looking into how to pass the information back in a cleaner way that doesn't use up disk space, but only memory.

 

The reason this is so important is that it is vital for being able to handle any theme (quite literally was impossible without generating the font correctly). I learned that font rendering is extremely complicated and no one renders font the same way.

 

But, long story short, I am now 100% confident that I can make this omni-theme compatible 🙂

 

If anyone reads this and is pretty good at Java coding, I'd love to speak with you...

Link to comment
On 7/17/2021 at 4:53 AM, awkways said:

And other counters think something like adding a pokemon sprite on ur screen is an improvement. You're doing god's work son, keep it up. Also, whoever suggested the "embedded version" must be a genius <_>

Imagine being so salty that you shit on other peoples work instead of just being happy people are trying to improve the PokeMMO experience and their own skillsets at the same time.

EDIT: On a more positive note, the counter looks amazing so far! I'm excited to give it a try once it's released!

Edited by kuplion
Link to comment
7 hours ago, DonEzio said:

Hello,

it seems that i can't dm you but i'm interested in your project.

 

Have a nice day

PM’d you on forums. You should be able to PM me back, my inbox is only 75% full.

 

Link to comment
On 7/21/2021 at 8:25 PM, Gilan said:

Question for the Chinese community (if you know an individual who plays on the Chinese client and uses a Chinese ROM, could you please ask them?)

 

Can I use the Chinese names here https://m.bulbapedia.bulbagarden.net/wiki/List_of_Chinese_Pokémon_names

As the pokemon names? Is only simplified used, or is traditional used, or both might be used?

@Riesz or @Mikyii might be able to help answer that. 

Edited by EricRasp
Link to comment

@Gilan you could refer to https://wiki.52poke.com/zh-hans/主页

 

We stick to this site instead of Bulbapedia when we do the translation. I guess this site is widely used in China.

 

The site supports searching using English, but the work could be tedious if u plan to input all names inside.

 

As for traditional or simplified, I believed most people uses simplified, while traditional is another option offered by game to cater for Hong Kong, Taiwan and people who prefers it

Link to comment
12 hours ago, Riesz said:

@Gilan you could refer to https://wiki.52poke.com/zh-hans/主页

 

We stick to this site instead of Bulbapedia when we do the translation. I guess this site is widely used in China.

 

The site supports searching using English, but the work could be tedious if u plan to input all names inside.

 

As for traditional or simplified, I believed most people uses simplified, while traditional is another option offered by game to cater for Hong Kong, Taiwan and people who prefers it

this helped thank you.

 

Ok, I think I have English, Chinese Simplified & Traditional, Japanese, Korean, German, and French taken care of.

 

@anyone

If I'm not mistaken, Spanish & Portuguese use the English names, correct?

Link to comment
8 hours ago, Gilan said:

this helped thank you.

 

Ok, I think I have English, Chinese Simplified & Traditional, Japanese, Korean, German, and French taken care of.

 

@anyone

If I'm not mistaken, Spanish & Portuguese use the English names, correct?

I can confirm Spanish uses the English names.

Link to comment
Posted (edited)

little update since it's been a week.

 

I've got the actual back-end detect encounter code in a good place. I think basically if you don't try to intentionally break it, it will work as expected.

It conforms to different themes really well, and will detect if you are using an icon mod for npc/pvp battle detection.

Currently, I'm only supporting English, however, there's a lot of work already done on getting the other languages accounted for, so support is coming (I just have to properly handle Chinese/Japanese/Korean characters, since themes can specifically define a different font size to use for those). 

There's also a difference between ROM language and Client language. Currently I do not handle Client Language, and just assume the Client Language will be English (important for "Shiny" and encounter detection since I look for "Lv.", which in different languages can be something else, like "Nv." in spanish).

 

I've also worked a bit on bringing the cpu load of the program to as low as it can be. This past weekend I had tested it on my eldest machine (an i5-3570k + GTX 660), and noticed that cpu usage was too high for my liking. I've optimized it down to ~3% usage on average on that machine as reference. On my current, best machine (an i9-9900k + RTX 2080ti), the usage is ~1% on average.

 

Since I use a Java application to render font in the same way as the PokeMMO client, it requires a Java Runtime Environment. Luckily, your PokeMMO folder should contain an "jre" folder. I can piggyback off of that jre which saves a lot of file size (over 40mb). The current size of my Encounter Counter project is ~30mb in size. I expect that to increase when I convert it to a ".exe" program, as it will package in all of the python libraries that I use. So, high-ball estimate is maybe in the ballpark of 100mb? We'll see, I wouldn't bet money on that number in either direction.

 

As for what I am currently working on... it's the front-end ui, specifically the settings ui. Here's a mock up of what I have in photoshop, and I am currently in the process of getting the interaction code written for it:

 

image.thumb.png.217bcb6951311bf13bc7bc08c312d4ea.png

 

As you can see, there are all the ROM languages there (I can detect the client language automatically). You can select the tool mode; embedded, widget, or expanded. You can toggle which count to display. You can have custom themes of the encounter counter itself, so if you want it to better blend in to your PokeMMO themes, you can do so (you'll have to make these yourself, though, or get Theme creators to also create for this app). You can also have multiple profiles. I'd like to think that you'd either make profiles for individual characters or specific time periods (like if you want to keep track on a yearly basis or something). Then, down below, each profile can have multiple hunts. These hunts I think should represent either going for a specific shiny and end when you get that shiny, or represent shorter time periods (like monthly hunts). Of course, you can decide what they represent to your heart's desire. Note, if you "Archive" a hunt, it just means that it's no longer selectable and is no longer displayed. The data will still be there. However, if you delete a Profile, it will remove all the data permanently. Finally, at the bottom, you have a "Dump All Data" button which can be used to generate a ".csv" file data dump which contains detailed data from the tool. Should be useful if you want to visualize your data or something 🙂 

 

I'm getting really close to an initial Beta-Version release to get some test subjects to help me find bugs. Until next time! 🙂 

Edited by Gilan
Link to comment

I'm just amazed of how you are thinking in every detail of a somewhat simple task that is keeping track of how many pokemon have you encounter since your last shiny, since you're being ambicious I might ask if you have think in a way to keep track on egg hunts using the same program, it doesn't have to be automatic if I'm understanding correctly you could just add another hunt and do a +60 everytime you hatch a full box, but as I said it would be really cool if we could be able to do that within the same program. Currently I just use a windows sticky note for that xD

 

Thank you ❤️

 

Edited by Pecaeme
Link to comment
17 minutes ago, Pecaeme said:

I'm just amazed of how you are thinking in every detail of a somewhat simple task that is keeping track of how many pokemon have you encounter since your last shiny, since you're being ambicious I might ask if you have think in a way to keep track on egg hunts using the same program, it doesn't have to be automatic if I'm understanding correctly you could just add another hunt and do a +60 everytime you hatch a full box, but as I said it would be really cool if we could be able to do that within the same program. Currently I just use a windows sticky note for that xD

 

Thank you ❤️

 

I have thought about it. An automatic egg hatching tracker is actually a planned feature later on. I think I'll be able to make it.

Basically, I can find the eggs on the screen, and I can detect if your PC is open. If the PC is open don't do anything (since we can't tell if the egg was swapped for a pokemon in the PC). If the PC isn't open, then if the number of egg icons on screen decrease, that means one hatched, so count that. I don't think I'll support tracking the species of the egg hatched, and will simply label it as "EggHatch".

I think that's the basic logic to get it to work.

 

Also, you'll be able to edit the # of encounters in a hunt directly, so on the first release, you can at least keep track of it manually in the settings. These manually added or subtracted encounters will be listed as "Undefined" species (I may make it so subtracting encounters just subtracts from the most recent timestamped encounters).

Link to comment
Posted (edited)

Update time again.

 

Since the last update I gave, I've basically just been working on coding the settings UI, which involved quite a lot, as it represents a ton of core functionality of my tool.

 

There was a week in between, where I didn't really work at all on this project due to my actual job.

 

What I've done:

  • Fully coded the settings screen
    • You can select your ROM's language (it defaults to english, and if you fail to properly set it the encounter detection won't work properly)
      • Currently, non-CJK languages are actually supported due to needing to handle specific CJK settings
    • You can switch your Tool mode between embedded, widget, and expanded
    • You can switch which counts are displayed on the tool, either the Current Hunt or the Total
    • You can change the Tool's theme, yes themes are supported
      • There is a default theme, which is what was originally shown off
      • I have also created a theme for the Redesign concept theme: 

80knl0g.png

  •  
    • You can create and delete profiles, and easily switch between them
    • You can create and archive hunts under each profile, and easily switch between them
    • You can dump all encounter data to a csv
  • Speaking of data, all encounters are recorded using Excel time formatting, so you have when exactly you encountered monsters (useful for if you want to create visualizations or something)
  • Auto-saving of encounter data occurs every 10 seconds or when the application cleanly exits. If it crashes due to an error, or you force quit it via Window's program manager, it won't save properly.
  • Severely changed NPC/PVP battle detection. I got concerned due to performance hits. I put the detection code on a separate computing thread and retroactively remove an encounter if it gets discovered it was in fact a pvp/npc battle.
  • Also part of the battle detection and Expanded mode, I load monster icons from either a default repository (gen 5 icons), or from the active icon mod you are using, if you are using one. Does not support layering of icon mods. If an icon is missing from the mod, it will fill in with the default repository's version.
  • Random bug fixes

 

Stuff I still need to do:

  • Fix a bug with PokeMMO theme loading
  • Split rendering of ROM monster names and Client strings (Lv. and Shiny)
  • Render "0123456789," in top-left info box font style to be used in "embedded" mode
  • Optimize NPC/PVP battle detection (this is a really hard problem)
  • Clean up code. I've been focusing on getting everything to work and my code has gotten quite messy. This will be a focus after I get it out for beta release.

Probably forgetting a ton of things that I did, and some stuff that I still need to do...

At this point, I can see the light at the end of the tunnel for getting a beta release out there. Of course, it is all dependent on if Darkshade gives the OK after reviewing my code (which there's a lot of).

Edited by Gilan
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.