Everything posted by fixthissite
-
yoyoyo
A few people have asked me things like where I went to school and how long have I've been programming, as well as why I'm here seeing how I don't bot nor play RuneScape anymore I'll keep this short: I've been programming for around 7 years, I've never attended school for programming (took a few free courses on a variety of subjects, although I tend to switch to studying independently) and some subjects I find most interesting include machine learning, in-depth decision making (logic and design) and resource monitoring. Here's a little explination of how I got here: A friend of mine requested some help with a script he was (attempting) to write. Helping him out actually sparked some interest. I asked him which site he was using, since I know that cheap mf wouldn't be scripting if he had to pay, so I dropped by. After losing 3 of my commonly used usernames, I was finally able to join, allowing me to check out the forums. I made a few (hopefully helpful) posts before deciding to write some articles on programming, which I'm current in the process of. This is what's keeping me here: My main interest right now, in relation to botting, would be decreasing the exhaust rate of certain clicking and path finding situations. Being an ex-RuneScape player myself, I've notice the duration of time a few humans may spend on the game is unbelievable. Seeing how reptuable people claim accounts don't get banned for just being logged in using a bot client, possibilities are most likely being exhausted too quickly, leading to a small cluster of possible choices within time. To me, this fits in perfectly with the "botting is alright, as long as you take breaks" theory. Variety is another important concept, although not as important as exhausting randomness. What questions me is why there isn't a script that allows you to choose multiple skills (or even quests and minigames), then set some conditions (or have some generated) to give the illusion that the bot has a schedule; the realistic nature may depend on how detailed the developer specifies the conditions. Those are the subjects I'm currently looking into, as well as a side-project that will hopefully contribute to finding techniques Jagex uses to scout bots. This is what's keeping me here. I can't make any promises as to how much I can contribute, but if you're interested in helping the cause, feel free to let me know. I'm also always willing to answer any questions you might have about a subject (assuming I understand it). Hoping to achieve API Designer rank to help improve and diversitise the tools scripters use to create scripts, so wish me luck! Thanks for the warm welcoming I've gotten so far, and sorry for the long post, considering I said I'd keep it short. Feel free to spark up a conversation with me about anything
-
Do you NEED to call myPlayer every time you want to reference your player?
That's what I'm doing right now. Not sure what inject methods are in the context of bot scripting, but I'm sure I'll come to realize it in the future when I stumble across them
- Test
-
Do you NEED to call myPlayer every time you want to reference your player?
A few AI tactics that I think might evolve bots to be more human-like, such as increasing the amount of possible paths taken, multi-tasking and an artificial conscience that lets the bot decide (with guidance from the user) when it should switch to a new skill, quest or market event. I also wanted to attempt a pretty crazy task, which would be logging bot information, sending it to a database to be analyzed by an artificial neural network that I've been thinking of the past week. Within time, I was hoping it would contribute to finding out how Jagex scouts for bots. I just want to make sure the foundation I'm building this on is as optimized as possible (I'm talking micro-optimization), since I know how these subjects can be pretty resource greedy at times, not to mention overhead from the synchronization required to bring all this together together. I'm not even sure if I could fit this all into your client, seeing how I haven't had the chance to profile an average bot, but it's worth a shot. I'm pretty keen when it comes to optimization, so hopefully I could make something of this Although I'm not building on the actual API (rather than a mock I've slowly been attempting to write; not planning on releasing it once it's finished or anything, the implementation is probably far from true anyways), I want to account for certain aspects one would need to using the real API And just a heads up, I might have quite a few more questions in the future that I'm not sure the community will be able to properly answer. Would you rather me post a topic or message you?
-
Do you NEED to call myPlayer every time you want to reference your player?
I had a feeling it was to lazily initialize something (not completely sure the purpose of a wrapper, but I have no doubts that it's essential), but is there at any point the adapter won't have a wrapper after setting it? Or is it just to prevent creating the wrapper before the user is called for? I understand it's not a HUGE difference, but I actually plan on using quite a bit of resources (CPU time wise in this case), and seeing how myPlayer isn't subject for inlining (on some JVMs), I was wondering if I could safely reference the object using my own variable. Thanks for the confirmation, by the way! EDIT: I understand HotSpot may inline the method if it hasn't been overriden yet, but I'm asking for a general case
-
Do you NEED to call myPlayer every time you want to reference your player?
I'm not trying to prevent it, I just don't want to use it myself. I would expect myPlayer to reference the instance immediately, but instead it wraps it for some reason, which I didn't want to struggle finding out why. I was hoping someone could either give me an explination of why the wrapping occurs, or confirm that it's safe to store the instance in my own variable and use my variable to reference it (to prevent performing the wrap each time, if it's not needed). I guess you can call it premature optimization, but I'm very curious as to why myPlayer requires a wrap rather than immediately reference the player instance
-
Do you NEED to call myPlayer every time you want to reference your player?
Each call to myPlayer performs some kind of wrap. Why is this wrap needed each call? Could I store the player somewhere to prevent multiple myPlayer calls, or would doing that result in the player not getting updated for some reason? I don't have an account, so I can't really test this out, so if someone could let me know I'd appreciate it
-
Not getting notified when someone quotes me
You're a hero, mate! Thanks
-
Not getting notified when someone quotes me
Is this purposeful? Do I need to follow a thread to receive notifications when someome quotes me? I've been using "like" to inform people once I've replied ro them soley due to my confusion on how getting notified on quotes work. Could someone fill me in on how I can get notifications when people quote me, without needing to follow a specific topic?
-
Thinking about making an RSPS - Need tips <
It's a pretty big task, if you're planning on taking it serious. An old acquaintance sends me (and everyone on his list) a long message containing fixes and updates almost everyday. I'm not a RSPS programmer, but I knew this guy from assisting him with teaching a small Java class. Compared to some of the other programmers I've met through the RSPS community, he wasn't that bad (although I wouldn't say he was all that good at the time either). After almost a year of receiving messages about updates and getting asked a few questions, I found his server on this site (Elveron), which doesn't look too bad by the images (haven't checked out the server though). I'm not sure how well of a programmer he is now, but that goes to show that dedication pays off. If you ask me, I think the hardest part would be originality. With the proper programming experience, fixing bugs and cleaning your environment will be the easiest part. You should take it slow and first try to think of ideas for a UNIQUE server that's actually worth playing. Marketing is also a pretty big aspect, and if you market the same material everyone else is marketing, you won't stand out. Like I mentioned, I haven't played Elveron, so I can't give you an opinion on the quality. If you want, I could try and get in touch with him so you can ask a few questions about what it's like running a server. Although, if you don't have the coding knowledge or have a really close friend that can program, I wouldn't bother. Unless you have top-notch leadership skills or cash to dish out, the developers might take over. If you do decide to create a server, I wish you luck, and you can always come to me for any programming questions you may have
-
Looking for a java programmer (Irc bot)
Are you still looking for this?
-
Kitty Kaster - Stun/Weaken/Curse Monk of Zamorak in Varrock Castle
Please attatch the source
-
How to get NPCs hitpoints
Why would you need to get the NPC's health maximum? I mean like I said, I don't know much about botting, but I personally don't see a reason for it, and apparently the API designers thought so too. Seems as if he should refer to the XY problem, and explain exactly what he wants to do.From playing RuneScape in the past, the only health related situations referred to eating and possibly running away (if your health is low or if the opponent's health is high). This is why I believe the actual amount of hitpoints was never added to the API, seeing how it seems to be a reasonable thing to add, and percentage was added instead. Plus, he never mentioned that he already checked the API, so as far as we know, he doesn't know it exists. I was giving a quick introduction. No need to be rude..
-
How to get NPCs hitpoints
You should really learn how to read the API documentation, which this site provides you in the navigation bar. I'm not a script developer, but as a programmer, I can dig into the API, find the NPC class's method summary and see that it inherits a getHealth() method (as Apaec mentioned) from Character.
-
Something I Have Been Working On
Nice
-
Something I Have Been Working On
Did you create the network framework yourself? Or did you use a third party framework?
-
Java Music Loader/Player class
Glad you found that information useful So, I messed with this for a bit, and I found a couple problems. Nothing huge, just a few minor things I found a bit unappealing: When the clip plays, apparently it plays on a background thread. This thread is not daemon, so unless we keep our calling thread alive, the music won't play. Although threads handling sound tend to be non-daemon, since sound isn't usually the main aspect of the application, this could definitely confuse people who aren't familiar with the API (it got me, that's forsure). You should at least mention this so people who reference this in the future don't need to ask. Since we can't make the thread non-daemon (without cheap tricks), I think allowing the client to optionally block the calling thread until the song has finished would be nice, but that's no big deal really. The second problem is when you play a clip one right after the other. The second and third time, it seems to cut off a bit in the beginning. A simple delay between stopping and starting the song (in the play method) fixed this for me. 200ms seemed reasonable, although I really wish Java's Sound API didn't require me to do all this /: Other than that, this was a really nice quick introduction into the Java Sound API for me. Thanks for sharing!
-
Java Music Loader/Player class
If lazy initialization isn't needed, you could actually replace your class for an enum. Heard it from Effective Java second edition: public enum MusicPlayer { PLAYER; //could use a better name private static MusicPlayer instance = new MusicPlayer(); private HashMap<String, Clip> clips = new HashMap<String, Clip>(); private int frameGap; private boolean mute; //... }Due to the nature of how enums are created, you don't need to worry about double-checked locking if you switch to a multithreaded environment. Also, serialization doesn't break the singleton design (when deserializing a class object, a new instance is constructed in memory. Enums prevent this, allowing you to simply discard the new object by overriding readResolve and returning the pre-existing instance.Enums are basically the future of the singleton design. I'm not a huge fan of the singleton pattern, other than maybe for logging, but hopefully this will come in handy for those who use it quite often. Thanks! I plan on staying, although I'm not much of a RuneScaper myself anymore (quit a few years ago). I've been helping friends with this scripts every now-and-then, so within time I'll hopefully be familiar enough with the API and botting aspects (like antiban) to release my own innovative scripts. Thanks for the warm welcome, much appreciated
-
Java Music Loader/Player class
Why did you declare clip outside of the try scope within the load method? And I'd personally use "pause" as the identifier for the stop method (nothing too different, just a bit more descriptive. "loop" also seems as if I'm looping the music player, rather than processing the song (although if that is the case, then please excuse me). I'm a bit confused as to why you put "clip.start()" in a while loop. Why must you repeatedly call "start()"? I haven't gone beyond the basics of audio streaming, so I'm not sure if there's something I'm not understanding. Not a fan of global state, so I probably won't use this, but I'm sure others could make great use of it. Also, not sure if you have anything against enums (not sure why you would), but they are definitely the way to go for singletons. If you could answer my questions, I would greatly appreciate it I'm new to the site, and you seem smart and reputable, so I would love to pick at your brain if you wouldn't mind; I'm always looking to learn new things
-
Seasoned Java Programmer looking for deeper insight into OSBot API
I'm looking for someone who's been around the block when it comes to the OSBot API. I don't need programming help, rather than a quick but detailed tour of the API. I'm new to the whole botting thing. All my code will be open source, so you would be helping the community by helping me You could also learn something in the mix. It's not that I don't know how to navigate documentation; I'd rather have someone who understand the bot-specific subjects like Paint, and the pros and cons of using SmartScript over Script. You'll get first dibs on anything I write (which I already have something in the mix, with what I've learned from the API documentation + decompiled code), and it'll be MUCH appreciated