There doesn't seem to be a lot of people using Simba for non-RS stuff, would this be the right place to post questions for that? In the giant essay below I had to remove some links to threads on here, and just put the thread/post ID instead so you can follow it yourself if you want.
I'm still in the planning stages for the bot I'm working on, but I've got a few questions to help prepare myself for the process. The amount of hours I've put in to color detection scripts on Scar Divi... whew, so I'm mostly looking for a little guidance to help me get settled with Simba as it seems a hell of a lot more active.
1. What are the, if they exist, core functionality libraries that would be useful for games outside of RS? For instance, the group detection functions found [LINK EXPUNGED, ?p=1391764] will be incredibly useful for my applications, especially ClusterTPA to find a specific group of similar pixels. However, a library that does inventory detection/map navigation/OCR for chatbox in rs wouldn't be useful to me because it's specific to RS. OCR is definitely a functionality that would be really helpful in general though, reading text is crucial. I see functions like rs_GetUpText, etc that probably aren't useful to me, but LoadSystemFont makes me think I could load another font to detect? Any suggestions here would be lovely.
2. A little specific, but does anyone know a way to efficiently track HUD elements? Specifically, for a game where HUD elements jostle around a bit because they're a part of the world rather than a fixed thing like the inventory + map in RS. A HUD element that doesn't have fixed X/Y coordinates could make life more difficult because I'd have to scan a larger all-encompassing box that guarantees the radar is inside of it, decreasing the performance of the bot. Or, the alternative, find an efficient way to track the elements I need so I can scan a smaller box for the relevant information.
On that same note, how CPU intensive is simba? Is there something of a "tickrate" in how often the screen can be captured and analyzed for your next action? I was thinking of building my bot with this [LINK EXPUNGED t=113549] method of analyzing the screen along with a littany of inputs to determine what to do next. For instance, to compare it to rs, if some function I write isTraveling() returns true whenever I'm in the process of walking from point A to point B, I wouldn't want to interrupt the bot by clicking somewhere else on the map until that function returns false once I've reached my destination. However, the ability to do this scan+react thing depends entirely on how often I can analyze the screen for such input. In RS, scanning once every second or so would be fine, but for a bot for something like CSGO you need split second decisions so the bot would need to be able to analyze the full screen multiple times a second. I don't plan to be that extreme, but it would help to know just how intensive simba is, what "tickrate" I can update my calculations, and how well I can optimize it to maximize my ability to react as quickly as possible. That's why being able to track the HUD elements would be better than scanning a larger area, assuming the tracking doesn't consume more resources than scanning the larger area in the first place.
3. Is there a way to detect a certain bitmap with transparency? For instance, finding an X that moves around on the screen. I want to find just the X, but that X can be placed on top of all sorts of other things. So if I were to capture a bitmap of the X, it would include all the extra bits I'd rather cut out. There's probably just something I'm missing about the basic functionality, surely this isn't actually a problem, but I haven't figured it out yet.
Any help is greatly appreciated, thanks
has anybody made multithreaded scripts?
has anyone ever made something to detect groups of pixels in certain patterns? Like a group of pixels that resembles a filled circle, another group resembles a line or curved line, a hollow circle, a box, etc. Detecting shapes and things of that sort would be interesting and potentially useful. Would definitely be paired with the ClusterTPA functions of SRL.
Is there any kind of live-debugging library for things? Like a script that has a live interpreter and lets me put in various commands, like trying to detect a specific color and then have it draw on top of my client all the detected pixels. Like, for every pixel that gets detected, have it highlight it in white to get a little feedback and help me debug things live. Right now I'm taking a lot of screenshots of various scenarios and testing for consistency of detection with that before building it into a live system.
does simba have a way to force close a program? Like if I have a status detector that errors out and doesn't know what's going on, or detects that something bad is happening, have it force close the game.