Jump to content

Jarvis101

Elite+
  • Content Count

    230
  • Joined

  • Last visited

Everything posted by Jarvis101

  1. Jarvis101

    Programmer ready for the next step.

    Why someone would want to tunnel vision themselves in with microsoft I have no idea -.-. I'd suggest learning opengl and it's variations. Once you get over the pipelines hurdle, it's actually pretty simple and very powerful.
  2. While it theoretically is possible by searching the memory for the values you're working off, you also need to consider the fact that #1 even if this is done, multiple results would come up, and you'd need a way to sift through it #2 you're assuming the memory values that you need to alter haven't changed, and #3 getting the memory dumps via code (Which is how you would need to do it in order to automate it), is much more complicated than just running a dbg program and looking at it manually. TL;DR : What you're asking for is a lot of work and would delay work on essential functions and algorithms which are still being developed.
  3. So I was checking out the requests forum and decided to write up some functions you can use for delayed and conditional skill usage. It was late when I wrote this so it could probably be made more efficient. * Notes - the program was written as standalone to debug - couts were used for debugging/place holding purposes. Remove them when applying. - I did not include any file streams as 1) i don't have access to source code, and 2) I'm sure you guys want to handle the usage of config files -will probably look better as a class and could probably use children, however it's late and I just want to get this posted. //Declaring my headers #include "stdafx.h" #include <iostream> #include <ctime> #include <string> //Declaring my namespace using namespace std; //Declaring my functions void TotTime(); // ******** This function needs to be copy and pasted for each skill that uses a timer, // then edited to match skill parameters void Timer(int seconds); void useSkill(); //function holding placeholder code for calling upon the function to use skills void SkillSlot1(); //determines how to use the skill in slot x. all skillslot functions other than 1 are //blank, copy paste code and edit as needed for other skills. void SkillSlot2(); //determines how to use the skill in slot x void SkillSlot3(); //determines how to use the skill in slot x void SkillSlot4(); //determines how to use the skill in slot x void SkillSlot5(); //determines how to use the skill in slot x void SkillSlot6(); //determines how to use the skill in slot x void SkillSlot7(); //determines how to use the skill in slot x void SkillSlot8(); //determines how to use the skill in slot x void FunctionThatUsesSkills(); //a function that determines when to use certain skills. Probably redundant bool shouldibeused(); //funcion that determines whether a skill should be used or not and returns a bool void attackspeed(); //probably a misdirecting function name. Used to delay the time between attacks void initvariables(); //initialization and/or loading of variables bool Totemdeath(); // A function to break the timer, and an example for totem death. //Declaring my public variables float atkspd; bool takeaction; float totemuptime; bool totemhasdied; bool checktotemdeath; //skill id's used to determine method of use in skillslotx() int skill[8]; //Main int _tmain(int argc, _TCHAR* argv[]) { initvariables(); //initialize variables and/or load configurations FunctionThatUsesSkills(); return 0; } //Functions void initvariables() { atkspd = 1; bool takeaction = true; totemuptime = 10; totemhasdied = false; skill[0] = 1; skill[1] = 0; skill[2] = 0; skill[3] = 0; skill[4] = 0; skill[5] = 0; skill[6] = 0; skill[7] = 0; } void FunctionThatUsesSkills() { bool Skill1params; // This variable is to dictate whether the situation warrents // the usage of a skill Skill1params = shouldibeused(); while (Skill1params == true) { SkillSlot1(); } } bool shouldibeused() { // An example of parameters you would use bool Incombat = true; // automatically assuming skill should be used if (Incombat = true) { return true; } else { return false; } } void SkillSlot1() { bool isaninstantskill; int skillcheck; skillcheck = skill[0]; //the latter variable (skill1) will need to be changed when copying this function // You would arrange the skill ID's to have instant id's to be numbered below non // instant ID's if (skillcheck == 0) { isaninstantskill = true; } else if (skillcheck == 1) { isaninstantskill = false; } else { cout << "error" << endl; } // End of determining type of skill, begin determining what to do with skill if (isaninstantskill == true) { while (takeaction = true) { takeaction = false; useSkill(); attackspeed(); } } else if (isaninstantskill == false) { // ******** This section of code needs to be edited to match skill parameters if (skillcheck == 1) { while(takeaction = true) { takeaction = false; useSkill(); TotTime(); //wait for next cast } } // ******** This section of code needs to be edited to match skill parameters } } void SkillSlot2(){} void SkillSlot3(){} void SkillSlot4(){} void SkillSlot5(){} void SkillSlot6(){} void SkillSlot7(){} void SkillSlot8(){} void useSkill() { cout << "this is the normal code to use a skill" << endl; } void TotTime() { checktotemdeath = true; for (float uptime = totemuptime; uptime!= 0; uptime--) //int uptime = x; where x is the time //inbetween casts { Timer(1); if(Totemdeath()==true) { break; } } takeaction = true; } bool Totemdeath() { if(checktotemdeath == true) { if(totemhasdied == true) { return true; } } else { return false; } } void attackspeed() { for (float uptime = atkspd; uptime!=0; uptime--) //int uptime = x; where x is the time inbetween casts { Timer(1); } takeaction = true; } void Timer(int seconds) { clock_t totemtimer; totemtimer = clock() + seconds * CLOCKS_PER_SEC; while (clock() < totemtimer) {} } Hope you guys can use this.
  4. Jarvis101

    New script monkey here with an idea

    The only way I could think of doing this would be to intercept the packets, and experimentally go through all the data in a sandbox environment until you know what's what. it's tedious and inefficient, and probably not of much help.
  5. Jarvis101

    Specific Skill at HP++++

    choosing skills based off mob hp is rather complex and is extraneous work for a program still in its alpha stages. For the moment, the most you'll probably see is an ability which would change skills based on mob rarity, as opposed to mob hp.
  6. Oh I understand what you're saying completely. My advice would be to have basic user options accessible through the gui, while leaving things such as variable parameters in a script which gets called upon by the program. This way advanced users can go through the variable list and tweak things how they want to at their own peril, while average users can stick to the functions which operate through the gui. Example : Player wants to increase the range the bot looks for items. You would have the search range on the bot allocated to a variable, and call upon that variable in say a script called "lootconfig.etc". A player could open lootconfig.etc, go to the line where the search range is allocated and alter the number to their preference. This method was widely used with the diablo 2 bots, where just about every parameter used was stored in scripts in order for people to even set up the bot they would need to go into the scripts and set up their preferences as the gui of the d2 bots left very little support aside from launch game window and start botting. Reference : D2NT
  7. Jarvis101

    Jarvis101 here

    I'm a coder and long time gamer, nice to meet you all. I hope to be of assistance to the development of this project.
  8. A simple solution as long as your coding is well organized. Simply put in a check function to see if there's anything to attack within a variable range before calling up the loot function. Also a user control function so they can edit the variable or turn on/off the feature would be good, and this can be done by using an if/else or switch statement when calling the check and referring the program look for the operating parameters in a config file.
  9. Hey guys, I've seen your bot on the OC forums and decided to donate my skills if you can find them helpful. I noticed you're looking for a way to handle pathing for your bot. I think there are multiple ways of going about this, but it all boils down to the map. PoE maps are randomized and this is why you can't build a simple pathing system. To put it bluntly, you need to know where you're going before you can go there. Now as far as I can see, this can be handled one of two ways. - Store all possible map variations in a database. - Piggy back on the work of PoE MapHack, or at least figure out how their getting the map data. Once you do this it's just simply a matter of utilize distinguishing features to determine which map you're on, then pull up a set of pre-coded coordinates to run off. Hope this helps.
×
×
  • Create New...