Stripped ProjectAlchemy Source Code

12/25/2010 19:31 denominator#361
Naw I mean logging into the actual game andf NOT hunting or anything else just logging into the game :) Also has anybody got a working mining system yet?
12/25/2010 20:55 gorgone#362
i m working on mining but the most is done from pro4never if u look in code u can find 2 important method isore inside Bot.c and DropItem in Items.c not difficolt to make a good function :))
12/25/2010 22:41 demon17#363
Quote:
Originally Posted by gorgone View Post
work on /speed <-- parameters move to attack 1000 or jump 1000 and try to find stable connection :I))
I can use speeds like:
action 100
update 100
jump 100
attack 50
hitstokill 1


For me now lvling is preaty easy . 3-5 hrs in 1 char with that speeds in low spawns .. ( to many dcs while hunt.) I got max Ko 2k+

But my internet sucks ... Still going down .. cant connect to my provider ect..

<Edit1> All my thanks gones to oelaboela .. ty for help
....
<Edit2> Cuz isnt my relase i cant host it .. ;) The owner have all my respect and I am not Leechet and I dont aprove leeching
....
<Edit3> Anyone got a working looting functionality? I still try to get work with only rares .. but seems to be imposible cuz dont know much cooding
12/25/2010 22:44 gorgone#364
sad but true in italy i play with ping around 800 ms so for not dch use 1000 on proxy, on monster distance use 7 and when use special xp spell 15 .. ://

sigh sigh i m cring my provider isn t good like ur :(

TRY THIS FOR PULL POTIONS

public static bool PullPotion(Client C)
{
int[] pot = new int[9] { 1000001, 1000000, 1000010, 1000020, 1000030, 1002000, 1002010, 1002020, 1002050 };
int vart;

foreach(Items.ItemInfo I in C.Inventory.Values)
{
//Console.WriteLine("In magazzino " + I.ID + " --- " + I.ToString()) ;
vart = (int)I.ID;
if ((Array.BinarySearch(pot,vart)>0) && C.LastJump < DateTime.Now)
{
Packets.UseItem(C, I.UID);
C.LastJump = DateTime.Now;//Didn't add this before botjail
return true;
}

}
return false;
}
12/26/2010 02:04 denominator#365
Ok changed this completely I am running alchemy on PC and laptop seperately lol. But again is there any way to make the login more stable instead of having to try to keep logging in? Twenty minutes to log a char in gets a bit monotinous lol.

Also I have no idea about the mining thing lmfao. So I will just have to do it manually with the /dcplayers command.
12/26/2010 07:18 tkblackbelt#366
Hey guys me and fashionzombie have been working on the botting and so far this is what we have.

-GUI
-autohunt
-paths
-autoloot
-just started auto miner
-autohp
-and dc on hp

I'm having a few problems with dcing while botting. First I'm not sure why its disconnects I've got the jumping distance good, so could it be because I have my guy set to jump directly onto a monster then attack it, Also sometimes my guy will get stuck on a monster and end up not being able to hit it, which I also beleave is being caused by jumping directly. Also If any of you guys that can program wanna work together and get this bot working good or need help I'm down with that. Heres a short clip of the progress.

edit: Also I started playing around with the packet sniffer and I'm learning alot about it but I have a couple questions about it.

Ok so heres a jump packet
25 00 1A 27 1D 4A 1D 00 23 03 FF 01 00 00 00 00
converts to
37 0 10010 1919517 0 803 211 0 0 0 0

so what I don't get is why do you invert the packettype, x, and y and when you get to the uid you don't invert the packets at all. Also in your source the jump packet has map id,jump type,x, and y pos at the end of the packet so why does it not show up in the packet sniffer. Also the offsets in the packet are those the index position where certain info is stored in the packet. Sorry for asking so many question I'm just really interested in this stuff and want to learn more about it. thanks xD


12/26/2010 10:54 gorgone#367
whoaa gratz mates !! i work on WPF interface is more pretty but yr is more complex :) anyway did u have try to attack aroud 200 i think is only the fast the problem ..
(but is only my opinion, to have an idea need /sniff records before Dch)

i noted me too isn t much stable and i work on /sniff to understood how this happen :(


pro4never ehehe do u see how many work on yr proxy ? u be proud of ur work !! thx again ehehh
12/26/2010 13:52 Klucha12#368
Why could find?
[Only registered and activated users can see links. Click Here To Register...]
12/26/2010 13:54 macavladu#369
Quote:
Originally Posted by Klucha12 View Post
Why could find?
[Only registered and activated users can see links. Click Here To Register...]
Check the 1st post
12/26/2010 14:45 OELABOELA#370
I've been working for ages on this speedhack, have lost tons of accounts. but still it isnt working. P4N, can't you just help me on this one? Its my last problem for a almost fully working private proxy.
12/26/2010 14:59 demon17#371
I think i quit boys and girls ... Still cant add looting to the bot .. I got borred by still looking my screen to see when met / DB is droped ...
I lost 2 dbs while i hunt ... Saw dropet . cant found it manualy .
12/26/2010 15:42 gorgone#372
i use a flag to detect if i m hunting or i m get item from ground...

when i shot and kill a monster i stop hunting until i cheak all items on ground i added a flag on client class so in main BOt i cheak on C.cheak_ground if is on i stop hunt and cheak all items with this

public static bool take_items (Client C) {

Items.GroundItem ogg = GetClosestItem(C);
while (ogg != null)
{
C.Cerca_oggetti_terra = true;
Coord XY = newCoord(ogg.X , ogg.Y);
if (Calculations.ValidDmap(C.StaticMap, XY.X, XY.Y))
{
Packets.CliJump(XY.X, XY.Y, 156, C);
Handler.Chat(C, " ", 2008);// I Left emty
C.X = XY.X;
C.Y = XY.Y;
C.UpdatedX = XY.X;
C.UpdatedY = XY.Y;

Calculations.UpdateLocal(C);
C.LastJump = DateTime.Now;
Packets.Jump(C, XY.X, XY.Y, 156);
System.Threading.Thread.Sleep(C.JumpSpeed);

Console.WriteLine("Find item at " + XY.X + " - " + XY.Y + " Oggetto codice " + ogg.ID);

Packets.PickItem(C, ogg);
C.LastJump = DateTime.Now;

ogg = GetClosestItem(C);

if (ogg != null) C.cheak_ground = true;
else C.Cerca_oggetti_terra = false;
}
}
return true;
}

for now i get all items from ground but is easy just add cheak items that u want to take ground and work is done :)))
12/26/2010 17:24 OELABOELA#373
Quote:
Originally Posted by gorgone View Post
i use a flag to detect if i m hunting or i m get item from ground...

when i shot and kill a monster i stop hunting until i cheak all items on ground i added a flag on client class so in main BOt i cheak on C.cheak_ground if is on i stop hunt and cheak all items with this

public static bool take_items (Client C) {

Items.GroundItem ogg = GetClosestItem(C);
while (ogg != null)
{
C.Cerca_oggetti_terra = true;
Coord XY = newCoord(ogg.X , ogg.Y);
if (Calculations.ValidDmap(C.StaticMap, XY.X, XY.Y))
{
Packets.CliJump(XY.X, XY.Y, 156, C);
Handler.Chat(C, " ", 2008);// I Left emty
C.X = XY.X;
C.Y = XY.Y;
C.UpdatedX = XY.X;
C.UpdatedY = XY.Y;

Calculations.UpdateLocal(C);
C.LastJump = DateTime.Now;
Packets.Jump(C, XY.X, XY.Y, 156);
System.Threading.Thread.Sleep(C.JumpSpeed);

Console.WriteLine("Find item at " + XY.X + " - " + XY.Y + " Oggetto codice " + ogg.ID);

Packets.PickItem(C, ogg);
C.LastJump = DateTime.Now;

ogg = GetClosestItem(C);

if (ogg != null) C.cheak_ground = true;
else C.Cerca_oggetti_terra = false;
}
}
return true;
}

for now i get all items from ground but is easy just add cheak items that u want to take ground and work is done :)))
Your code is in one word...
MESSY
12/26/2010 17:50 gorgone#374
is an idea mate u can re write it better :)


public static bool take_items (Client C) {

//start to lookinfor item in ground

Items.GroundItem ogg = GetClosestItem(C);
while (ogg != null)
{
// if object near me isn t null so is interesting item i go to take it
// stop hunting
// look flag -> go to take item
C.cheak_ground= true;


Coord XY = newCoord(ogg.X , ogg.Y);
// cheak
//goto not work for me i dk why so i used this is normal client jump

if (Calculations.ValidDmap(C.StaticMap, XY.X, XY.Y))
{
Packets.CliJump(XY.X, XY.Y, 156, C);
Handler.Chat(C, " ", 2008);// I Left emty
C.X = XY.X;
C.Y = XY.Y;
C.UpdatedX = XY.X;
C.UpdatedY = XY.Y;

Calculations.UpdateLocal(C);
C.LastJump = DateTime.Now;
Packets.Jump(C, XY.X, XY.Y, 156);
System.Threading.Thread.Sleep(C.JumpSpeed);
//wait untile i get ground after jump

Console.WriteLine("Find item at " + XY.X + " - " + XY.Y + " ITEM ID " + ogg.ID);
// take item from ground
Packets.PickItem(C, ogg);
C.LastJump = DateTime.Now;
// restart to look around again if near me there are other rare item
ogg = GetClosestItem(C);

if (ogg != null) C.cheak_ground = true;
else C.cheak_ground = false;
}
}
return true;
}



I hope is more undertable ehehe
12/26/2010 18:22 OELABOELA#375
Quote:
Originally Posted by gorgone View Post
is an idea mate u can re write it better :)

YOUR CODE
I hope is more undertable ehehe
Code:
public static bool take_items (Client C) {

//start to lookinfor item in ground 

Items.GroundItem ogg = GetClosestItem(C); 
while (ogg != null)
{
   C.cheak_ground= true;
   Coord XY = newCoord(ogg.X , ogg.Y);
   if (Calculations.ValidDmap(C.StaticMap, XY.X, XY.Y))
     {
        Packets.CliJump(XY.X, XY.Y, 156, C);
          Packets.Jump(C, XY.X, XY.Y, 137);//<----------CHANGE THIS TO 137 , this will make it jump instead of FS shifting
            Packets.CliJump(XY.X, XY.Y, 156, C);
             C.X = XY.X;
             C.Y = XY.Y;
             C.UpdatedX = XY.X;
             C.UpdatedY = XY.Y;
          System.Threading.Thread.Sleep(C.JumpSpeed);
          Console.WriteLine("Picking up item at " + XY.X + " - " + XY.Y + " ITEM ID " + ogg.ID);
          Packets.PickItem(C, ogg);
          C.LastJump = DateTime.Now; 
          C.lastLoot = DateTime.Now;
            ogg = GetClosestItem(C);
      
              if (ogg != null) C.cheak_ground = true;
               else C.cheak_ground = false;
       } 
    }
return true;
}
I optimized the code somewhat for ya, and fixed the jumping