Celtic Heroes

The Official Forum for Celtic Heroes, the 3D MMORPG for iOS and Android Devices

Project WIP: Bosses Timers, Discord Messages, External WebSite Timers etc... in game

#1
I wanted to share with you a project I was working in the past days. The main idea of the project is to avoid to go to another app or website to check the timers or send a message on Discord, but the project include more features like quick copy all the timers to post them in clan chat or quick copy a single timer and import the timers of an external website(in this case I used Flo because the clan uses it). The best way I found to do these things it was to build an overlay using an android app called Tasker.

All the features are showed in this video https://streamable.com/myyvt2
Timeline video and explanation:
00:00 - 00:02 The overlay can be closed to not cover the view(it has transparency to not completely cover the view), a small icon will appears to open it again
00:02 - 00:20 You can quickly copy all the timers and post them in the chat, the timers will be sorted based on the remaining time to spawn
00:20 - 00:43 You can copy a single timer and post it in chat
00:43 - 01:00 You can edit any timer and write the remaining time to spawn
01:00 - 01:10 You can quickly reset the timer to the max time spawn
01:10 - 01:21 You can set the timer to "unknown", the three question marks(???), when you do not know a timer
01:21 - 01:41 You can quickly send all the timers to a discord channel
01:41 - 02:00 You can send a custom message to a discord channel
02:00 - 02:30 You can import the timers from an external website, in this case Flo and you could share them in discord
02:30 - 03:15 The timers background colour change based on how many minutes are left(green > 15, orange < 15, yellow < 10, red < 5, blue = unknown)
03:15 - 03:30 Another import from external website
03:30 - 03:48 Another custom message to discord

FAQs
-When it will be available?
The Tasker project will never be available to the public because it will not works on other smartphones without a deep explanation on how to set it up
-If it will not be available, then why share it?
I shared the project to show to the people who know how to use Tasker that they can do something similar and to give an idea to a mobile developer
-Tasker, Tasker and Tasker... are you the Tasker's owner or collaborator and you want to sell the product here or did they sponsor you?
No. I'm not the Takser owner or one of them collaborator, I used Tasker because I already used it in some of my projects and it is the most powerful tool I could find
-Everyone can build an overlay like this with Tasker?
No. You can build some parts of it, but you still need to know what is a variable and the "if else" statement. To build some complex parts like the sorting, the Discord or import from external web site you need to have knowledge of JavaScript, how a web server works, HTML, CSS, JSON and other web technologies
-Did you collaborate with Flo for your project or did they sponsor it?
No. I did not collaborate with them, as I previously said I chose Flo just because the clan is using it
-The import from external websites works with other websites?
No. The import is made by downloading the page and parsing the data, every website has a different format of page and you should rewrite the parsing's logic for every website. If the websites create a standard and release an API, it can be done
-Can you edit the timers of an external website from the overlay?
Yes, but it is complex to build and I decided not to for this prototype
-Only the timers showed in the video are available?
No. You can set any timer you want, but it requires to add code. With Tasker I could not find a dynamic way to add timers.
-Why only Discord, what about WeChat?
The same features showed with Discord can be implemented with WeChat
-What does WIP means
Work in progress
-I would like to try it, can you send only to me the project? We have a website for timers, would like to collaborate or share the project?
No. I already mentioned the reasons why I will not share the projects to the public. If enough websites owner or devs ask the project, I could share the source code on GitHub.
-What is the future of the project?
At the moment I have not the knowledge to build a mobile app, next year I will have it and maybe I will build an app and release it. Some features like importing from external websites will not be available, the idea is to create my own website, in this way I can manage all the things. Some websites like Flo have some bugs, eg: when the boss is 60 mins due it does not appear on their website, having my own website will allow me to quickly fix bugs.
-There are a lot of English grammar errors in this post and I could not understand some parts
I'm not a native English speaker, I'm sorry if there are grammar errors. If you could not understand something, please leave a comment and I will try to explain it in different words
-My question is not here
Please leave a comment and I will try to reply

Question for CH devs
I played this game many years but I never found something similar to my project, tools like this are not allowed to be used in game?

This is how the overlay looks:
Image


Update 1
I started to build a lighter version that will have all in one file and will not need to be set up, maybe just the position of the overlay. It will look a bit different from the previous version because I am building it all in HTML and JS and I will have to do all manually. The older version required to refresh the entire scene to update any element, the new one will not. Flo and external websites will not be integrated in the public version since the maintenance will be impossible. Discord will be integrated, but it will need to be set up.

It will require some days or weeks since in these days I am a bit busy. I will have to "translate" the old version in an new version written only in HTML, CSS and JS. New features will be added like the possibility to create dynamically the timers instead of having fixed timers and directly from the overlay to eliminate, edit or delete the type of timers(eg I have a 170 edl timer and to change it into a 200 edl timer I have to write more code in the old version, in the new one it will not be necessary).
Currently when I have free time I work on the view(the HTML) and then I will do the logic. I chose to write all in an unique file and the only library imported will be jquery, the reason is because in this way everyone can use it. For devs the code will be less readable but for users the experience will be easier.

This is a preview of how it looks at the moment
Image
Last edited by BrandonH on Fri Aug 28, 2020 1:40 pm, edited 1 time in total.

Re: Project WIP: Bosses Timers, Discord Messages, External WebSite Timers etc... in game

#6
BrandonH wrote:
Bash wrote:That's a really good workaround. I'm not too familiar with android. Is Tasker an API or a standalone app?

Standalone app with a lot of plugins

I looked a little into it and it seems like Tasker has its own simplified scripting language that lets you send GET and POST requests to Flo? I don't think that would be against the rules since it's not actually interacting with CH at all. They're more worried about people reverse engineering the client / protocol and adding stuff like this directly to the client

Re: Project WIP: Bosses Timers, Discord Messages, External WebSite Timers etc... in game

#8
Bash wrote:
BrandonH wrote:
Bash wrote:That's a really good workaround. I'm not too familiar with android. Is Tasker an API or a standalone app?

Standalone app with a lot of plugins

I looked a little into it and it seems like Tasker has its own simplified scripting language that lets you send GET and POST requests to Flo? I don't think that would be against the rules since it's not actually interacting with CH at all. They're more worried about people reverse engineering the client / protocol and adding stuff like this directly to the client

The overlay does not interact with the client, it is like having two apps opened in split view but in this case an app is on another. Tasker can handle GET and POST but with Flo it does not work because it requires JS and when you do an HTTP Request with Tasker, it does not use JS. I used a Tasker's plugin to auth in Flo and to save some tags attributes.

Re: Project WIP: Bosses Timers, Discord Messages, External WebSite Timers etc... in game

#9
BrandonH wrote:
Bash wrote:
BrandonH wrote:Standalone app with a lot of plugins

I looked a little into it and it seems like Tasker has its own simplified scripting language that lets you send GET and POST requests to Flo? I don't think that would be against the rules since it's not actually interacting with CH at all. They're more worried about people reverse engineering the client / protocol and adding stuff like this directly to the client

The overlay does not interact with the client, it is like having two apps opened in split view but in this case an app is on another. Tasker can handle GET and POST but with Flo it does not work because it requires JS and when you do an HTTP Request with Tasker, it does not use JS. I used a Tasker's plugin to auth in Flo and to save some tags attributes.


Another similar example is FB messenger - it keeps the little bubble on your screen at all times, and tapping it opens up the overlay over whatever else you are doing. Various screen recorders occasionally do the same (on android at least).
Have questions about anything? PM me!
Alternatively, you can occasionally find me online in Sulis.
Go team #WorldSkillsUSA2019!
Harbinger of cold hard logic and reason.
Check out the player-run Celtic Heroes Database!: celticheroesdb.com!

Re: Project WIP: Bosses Timers, Discord Messages, External WebSite Timers etc... in game

#10
BrandonH wrote:
Bash wrote:
BrandonH wrote:Standalone app with a lot of plugins

I looked a little into it and it seems like Tasker has its own simplified scripting language that lets you send GET and POST requests to Flo? I don't think that would be against the rules since it's not actually interacting with CH at all. They're more worried about people reverse engineering the client / protocol and adding stuff like this directly to the client

The overlay does not interact with the client, it is like having two apps opened in split view but in this case an app is on another. Tasker can handle GET and POST but with Flo it does not work because it requires JS and when you do an HTTP Request with Tasker, it does not use JS. I used a Tasker's plugin to auth in Flo and to save some tags attributes.

You shouldn't have to use javascript. Flo has a weird way of doing it and uses GET requests to reset time. A GET request sent to "https://celticheroes.us/index.php/clicked?id=5" where the id parameter represents each boss (4 is sreng, 5 is Snorri, 12 is unox, etc). If you send a request there along with the cookie storing the session it will reset the time.

Who is online

Users browsing this forum: No registered users and 45 guests