This is a little program I wrote that can be used to auto pot in 12Sky 2 all versions, and does not rely on finding/ modifying memory addresses or use the built in (disabled) auto pot feature of the game. Please read all the notes and comments in the code before posting questions!
Who is this for?
This is for people who know how to use these types of programs and don't want to use the memory hacks to enable the client's auto pot, either because they are afraid that using the client's auto pot might become detectable, or because they don't want to try to find new memory addresses after every patch.
This is not a hack, it is a bot. It is not a bot like the gold sellers use that runs around leveling you up and farming gold for you while you sleep. It is a bot that does essentially the same thing the auto pot memory hack does, but without using memory addresses or any part of the client to work. It is also less likely to be detectable in the future IMO.
Before you start flaming me and saying "this iz w0rthles cuz therez alredy a way 2 hax the mem0ry and uze da aut0 potz in teh game!!!!!!", this is just an ALTERNATIVE method of doing the same thing, and is more customizable (you don't have to choose to pot at 75%, 50% or 25%, you can make it pot at ANY point), and more features could easily be added to it, such as auto buff and automatically going to your inventory and refilling a pill slot if it becomes empty, given that it finds pills in your inventory to replace them with. The possibilities are literally limitless with a little effort.
The advantages of using this program instead of memory hacks:
- Undetectable (as far as I can tell) because it's not part of the 12Sky 2 client (I implemented anti detection measures as well just to be safe). It could become detectable if you modify it wrong though.
- They cannot use patches to make it stop working. With 12Sky 2 client's auto pot, the code that allows it to work even with hacks could possibly be removed in a future patch.
- Does not rely on memory addresses, so it is not affected by patches that change HP/ MP memory addresses.
- Very reliable and very fast response time.
The disadvantages of using this program instead of memory hacks:
- May not work properly in situations with heavy lag.
As I say in the notes, those who don't know how to compile and run this should not be using it anyway. We don't need every 12 year old who searches Google for 12sky 2 bots and winds up here knowing how to use it. For those who know how to use it, please don't post what program is needed to run this. All I'm going to say about it is that it's programmed using Pascal programming, and i would be mentally scarred if you post how to use it in public
Code:
program AutoPot;
{------------------------------- NOTES ---------------------------------}{
- Read this entire notes section and all of the comments inside the
code before posting questions in the forum! Just about everything
you need to know to run this is right here in this file (except how
to compile and run it, which I don't want anyone who knows to reveal).
- Make sure you specify the client window before running!
- Don't forget to set your Health and Chi keys in here where commented.
- If it does not work after specifying the client window, try tweaking
colors and coordinates. Do not tweak colors and coordinates unless
it is not working and you know what you are doing!
- This is NOT intended to be used in PvP, and probably wouldn't help
much in PvP anyway. This also may not be very effective for fighting
bosses that take away too much of your health at a time. The primary
purpose of this is for grinding, though it could be easily modified
to suit purposes such as boss hunting.
- This does NOT make you death-proof in PvE or any other form of combat.
If you attempt to fight monsters that are too high level for it to
keep up with their damage, or they can hit harder than your total HP,
you WILL die. I'm not responsible for your exp loss if you're lvl 90
trying to grind lvl A3 monsters or fight high level bosses.
- This program eats HP and Chi pills when needed ONLY. It does NOT auto
attack enemies; it does NOT pick up drops; it does NOT buff/ rebuff;
it does NOT solve the in-game antibot captcha for you; it does NOT
currently have a way to know if your pill slots are empty (you will
die once all the pills in your HP pill slot run out unless you manually
restock them).
- This program knows if you are in the process of moving from one map to
another, this way it doesn't think something is wrong with your health
and start spamming the pill keys. It gives adequate time for the new
map to load and then resumes monitoring your health and chi bars.
- This program knows if your character has died and stops trying to use
pills until you respawn. It will resume monitoring 9 seconds after you
respawn, giving you time to use your health/ chi restoration skill if
desired. If you don't use some method to manually heal before the 9
seconds runs out, it will auto heal you before your respawn
invincibility runs out.
- To increase or decrease the amount of damage you take before using a
pill, find the line that says:
HP_Result := FindColor(X, Y, Health, 135, 0, 200, 40);
Changing the number 135 to 150 for example will make you use a pill
when your Health bar is at about 50%. Likewise, lowering the number
will have the opposite effect. It works the same way with
"Chi_Result := FindColor()". Do not modify any of the other numbers
in those lines unless you know what you're doing and need to modify
them for whatever reason.
- Modify the delay timers (such as Wait (100);) at your own risk -
some of them are there so that after a pill is taken, it waits 1/10th
of a second or so before checking the meter again. This gives the
screen just enough time to update after the pill has been taken before
running another check. Without the delay timers, you may find that it
will make you take 2 pills instead of 1. I spent a lot of time adjusting
these timers so that there is the absolute minimum delay without taking
2 pills at a time. Be warned that lowering these timers to try and get
a faster response time may cause you to waste a lot more pills than
needed!
- The delay timers with random timings attached to them, such as
Wait(100 + Random(100)); are there so as not to set bot flags within
the game. The fact that each time it fires it waits a random amount
of time, rather than being on exact timings all the time, simulates
human-like behavior rather than perfectly timed machine behavior and
makes it less detectable.
- Do not ask me how to run this program. If you don't know how, you
probably shouldn't be using it anyway.
- Do not come to me directly asking for help if you have problems with
this program. Post your questions in the forums. Please do not post
questions asking people how to run this if you do not know.
- Please don't ask me to build custom programs for you - the answer
will be no!
- Please don't ask me how to hack the game or how to program - Google
is your friend!
- Feel free to modify this program and add more features, as long as
you share them with the community. Don't redistribute this outside
this forum!
- Please don't tell people how to run this program or what tools are
needed - if they don't know how, they shouldn't be using it!
- Do not redistribute this program with instructions on what tools are
needed to use it. The more people who start using it, the higher
the likelihood ALT1, MAYN, Aeria, etc will start trying to find
ways to stop it!
- I am not responsible if your account gets suspended or permanently
banned for using this. It should be undetectable unless you modify
this program the wrong way and cause it to do something to flag
autoer detection. If you tell people who know your in-game name
about this, you will almost certainly be banned.
- If I catch people posting in the forums or otherwise telling laymen
what tools to use to compile and run this application, I will not
release anything else here. Don't even give hints. THIS IS ONLY
INTENDED TO BE USED BY THE FEW PEOPLE WHO WILL KNOW HOW TO RUN IT!!
{------------------------------------------------------------------------}
procedure SetUpScript;
begin
ClearDeBug;
ActivateClient;
end;
const Health = 4337886; // Health bar color
const Chi = 14560330; // Chi bar color
const MapLoad = 0; // Color to look for when new map is loading
const Died = 0; // Color to look for in Health bar when dead
const HPPill = '1'; // Key to eat HP Pill
const ChiPill = '2'; // Key to eat Chi Pill
var hc: Integer;
function HealthCheck: Integer;
var X, Y: Integer;
var HP_Result: Boolean; // Return true/ false depending on if HP bar color is seen
var MP_Result: Boolean; // Return true/ false depending on if Chi bar color is seen
var CheckMapLoad: Boolean; // Return true/ false depending on if a new map is loading
var Dead: Boolean; // Return true/ false depending on if it determines you died
begin
Wait(100); // Wait 100 ms for screen to refresh, otherwise it will use 2 pills at a time
CheckMapLoad := FindColor(X, Y, MapLoad, 38, 4, 38, 4); // Check to see if new map is loading
if (CheckMapLoad = true) then
begin // If a new map is loading, wait 10 seconds for the map to load before continuing
WriteLn('Waiting for map to load...');
Wait(10000);
WriteLn('Ready');
end;
if (CheckMapLoad = false) then // If a new map is not loading, continue...
begin
Dead := Findcolor(X, Y, Died, 57, 12, 57, 12); // Check to see if your character died
if (Dead = true) then
begin // Wait for respawn before continuing
WriteLn('Fuck, you died!');
Wait(1000);
WriteLn('Waiting for respawn...');
Wait(11000);
WriteLn('Ready');
Wait(9000 + Random(1000));
end;
if (Dead = false) then // If a new map is not loading and your character is not dead, start checking HP and Chi
begin
HP_Result := FindColor(X, Y, Health, 135, 0, 200, 40); // Find out if HP is good
if (HP_Result = false) then
begin
Result := 1; // If HP color is not found, return 1
end;
if (HP_Result = true) then // As long as HP is OK, check Chi
begin
MP_Result := FindColor(X, Y, Chi, 100, 0, 200, 40); // Find out if Chi is good
if (MP_Result = false) then
begin
Result := 2; // If Chi color is not found, return 2
end;
end;
end;
end;
end;
begin
SetUpScript;
while (True) do
begin
hc := 0; // Make hc default to 0
hc := HealthCheck; // hc is set to 0, 1 or 2 depending on what HealthCheck returned
if (hc = 1) then // If HealthCheck didn't see Health bar color and returned 1, press HP key
begin
Wait(50 + Random(20));
KeyDown(GetKeyCode(HPPill)); // Press key specified for HP pill
Wait(100 + Random(100)); // Adds a random interval before release
KeyUp(GetKeyCode(HPPill)); // Release key after 100-200 ms
//WriteLn('Took HP Pill'); // Writes this in debugger window if uncommented
end;
if (hc = 2) then // If HealthCheck didn't see Chi bar color and returned 2, press Chi key
begin
Wait(50 + Random(20));
KeyDown(GetKeyCode(ChiPill)); // Press key specified for Chi pill
Wait(100 + Random(100)); // Adds a random interval before release
KeyUp(GetKeyCode(ChiPill)); // Release key after 100-200 ms
//WriteLn('Took Chi Pill'); // Writes this in debugger window if uncommented
end;
end;
end.






. Copy and paste the script into SCAR and save it as AutoPot.scar or whatever you want (has to end in .scar though).