Stripped ProjectAlchemy Source Code

03/06/2011 01:27 kimbola#1051
p4n we need new releases

and basically some way to fix DC issues , specially with FS ( 1022 error every time )

maybe you could talk with IamHawkness to see how he managed the DC issues , seems he have a solution.

Besides that , the source is great and much can be done , we need more releases and improvement

thanks
03/06/2011 21:28 pro4never#1052
Umm dc issues related to attacking means you are not using my coding. I removed ALL botting functionality from the proxy. if you are getting dc'd it means YOU (or whoever you got your code from) coded things wrong and it's causing you to get kicked off the server.

Examples of problems would be.

-Attacking a mob out of range
-Attacking too fast
-Using wrong coords for self (Ie saying you are at 400 500 when you're at 500 400 or w/e in the attack packet)
-Attacking with an invalid type
-Attacking an invalid mob/doesn't exist.


I know why things go wrong in the proxy, I just never had any desire to really fully stabilize things. If I was releasing more stuff it would just be examples (IE: there's a user interface, it has a few buttons! You can use them to learn how to code your own UI into the proxy) or 'it has some hunting functionality! This is some ideas on how to handle looting/hunting/mining" but it wouldn't be some full ready to use bot that is coded perfectly. just ideas for people to base stuff off.
03/07/2011 02:09 jonathan55866#1053
It says its ready for connections i got the database right and i am logged in on the ac ci put in the character folder. and everything. still saying 0
03/07/2011 02:29 pro4never#1054
Sounds like you aren't directing the connections to the proxy... You can't already be logged in. You have to use a loader to direct your client to connect to your own computer on the proxy ports (by default 5000/5001/5002 but you can change them in program.cs) and then log in using the conquerloader or w/e.

It has to handle ALL connection aspects between you and the conquer servers or it will not work.

That and the database is not used at all in the base version I posted.
03/07/2011 02:31 jonathan55866#1055
Loader? i got all the MYSQL and navicat all done and my acc in the DB
03/07/2011 02:50 pro4never#1056
You need to use conquerloader or some similar program to change what conquer is connecting to to force it to connect to your own computer (IE: The proxy).

The sql/navicat/database does NOTHING currently. It's not being used by the proxy for anything.
03/07/2011 02:50 jonathan55866#1057
And how would i do that? i can pay you for helping me just a little.... please i want to learn but i need help with just this part to gt it on

here are some screen shots

[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]
03/07/2011 03:15 pro4never#1058
No...

You need to use visual studio or some C# editor to edit the project files. You have to actually BUILD IT before it creates a new .exe for you to run. You cannot just open the .cs files in notepad and have it work...


You also need to download conquerloader from this site and edit the settings to connect back to the proxy and use that instead.

You are simply not doing this right.

What is it you're looking to learn? I sometimes do a bit of coding/guiding for cash.
03/07/2011 03:28 jonathan55866#1059
Just how to make a bot, a simple one i can build off too become good

hey pro can you PM me please quickk

I dont think its stripped. look what i found

case "/hunt":
{
if (!C.RunBot)
C.RunBot = true;
UpdateStats(C);
C.Hunting = !C.Hunting;
Chat(C, "Hunting = " + C.Hunting, 2011);
break;
}
case "/loot":
{
switch (Cmd[1])
{
case "all":
{

and

Chat(C, "Unknown Command: " + Cmd[0] + " /hunt /loot all/money /mining /cyc 1 /speed attack/loot/jump ## are main cmds!", 2011);
Console.WriteLine("Unknown command: " + Cmd[0]);
break;
}
03/09/2011 05:53 Henrique MD#1060
Triple Post %%%
03/09/2011 08:03 pro4never#1061
#reported for triple posting


Please use the edit button in the future ^^

The commands are all still in there as are the packets, calculations and loads of other things but the botting code itself is removed.
03/10/2011 00:16 Henrique MD#1062
Quote:
public static bool VerificaDistancia(Client C, ushort toX, ushort toY)
{
int distan = Calculations.Distance(C.X, C.Y, toX, toY);
if (distan > 10)
{
Chat(C, "Distancia > 10", 2008);
ushort novoX = C.X;
ushort novoY = C.Y;

if (C.X < toX)
novoX = (ushort)(novoX + 3);
else
novoX = (ushort)(novoX - 3);

if (C.Y < toY)
novoY = (ushort)(novoY + 3);
else
novoY = (ushort)(novoY - 3);

if (C.LastJump.AddMilliseconds(C.JumpSpeed) < DateTime.Now)
{
if (Calculations.ValidDmap(C.StaticMap, novoX, novoY))
{
Packets.CliJump(novoX, novoY, 156, C);
Packets.Jump(C, novoX, novoY, 137);
C.X = novoX;
C.Y = novoY;
C.UpdatedX = C.X;
C.UpdatedY = C.Y;

Calculations.UpdateLocal(C);
C.LastJump = DateTime.Now;
}
else
{
Chat(C, "Posicao do mapa inválida! Fazendo Random Jump!", 2008);
RandomJump(C);
}
}
return true;
}
else
return false;
}
Hello guys, i'm using path record(activepath), i just created an index and make the bot go in the coord, try get closestmonster, atack and back to the coord of path that the character was and sometimes coz he is finding closestmonster he stay very far from the original and if i make he jump to there will dc, then i created this function just to make he come jumping 3 by 3... well, i know that it's not a really good function yet, but works fine... i got something from here and from caio_bola or kimbola, dont remember...now just trying to help others =)...

Conquest monster name offset it's this...
Quote:
Mob M = new Mob(UID, Mesh, ReadUInt16(Data, 80), ReadUInt16(Data, 82), Client.Map);
M.Dir = Data[84];
M.Name = ReadString(Data, 209, ReadByte(Data, 208));//209 name / 208 lenght
If someone need a path record bot i can help =) my path recording func its working good(not best but good)
03/11/2011 18:33 denominator#1063
I have no idea exactly how to add/use this code

Code:
public static bool VerificaDistancia(Client C, ushort toX, ushort toY)
{
int distan = Calculations.Distance(C.X, C.Y, toX, toY);
if (distan > 10)
{
Chat(C, "Distancia > 10", 2008);
ushort novoX = C.X;
ushort novoY = C.Y;

if (C.X < toX)
novoX = (ushort)(novoX + 3);
else
novoX = (ushort)(novoX - 3);

if (C.Y < toY)
novoY = (ushort)(novoY + 3);
else
novoY = (ushort)(novoY - 3);

if (C.LastJump.AddMilliseconds(C.JumpSpeed) < DateTime.Now)
{
if (Calculations.ValidDmap(C.StaticMap, novoX, novoY))
{
Packets.CliJump(novoX, novoY, 156, C);
Packets.Jump(C, novoX, novoY, 137);
C.X = novoX;
C.Y = novoY;
C.UpdatedX = C.X;
C.UpdatedY = C.Y;

Calculations.UpdateLocal(C);
C.LastJump = DateTime.Now;
}
else
{
Chat(C, "Posicao do mapa inválida! Fazendo Random Jump!", 2008);
RandomJump(C);
}
}
return true;
}
else
return false;
}
I have it saved with no errors but how do I use /record because when I type /record and jump to a spot then another spot etc then hit /record to stop recording then hit /hunt my char just stands there and does not move in the path that I tried to set???
03/11/2011 18:40 OELABOELA#1064
Quote:
Originally Posted by denominator View Post
I have no idea exactly how to add/use this code

Code:
stuff...
I have it saved with no errors but how do I use /record because when I type /record and jump to a spot then another spot etc then hit /record to stop recording then hit /hunt my char just stands there and does not move in the path that I tried to set???
When you type /record and you jump, it actually adds the poses to C.activepath, but it won't show that it did.

So ill make a mini-tut on how to add that.

First of do the following:
Code:
Open up Packet->Handler.cs in your Visual C#
Then we want to find the point that it records the point as example if we jump. So we search for..
Code:
Client.ActivePath.Points.Add
You should find something like this..
Code:
 if (Client.Recording)
                                        {
                                            if (Client.Hunting)
                                            {
                                                Client.Hunting = false;
                                                Handler.Chat(Client, "Do not record while hunting! Stopped bot", 2011);
                                            }
                                            ushort PID = (ushort)(Client.ActivePath.Points.Count);
                                            Client.ActivePath.Points.Add(new _Point(PID, Handler.MakeCoord(ToX, ToY)));
                                        }
Now you have to add
Code:
Handler.Chat(Client, "added " + ToX + "," + ToY, 2011);
under the part
Code:
Client.ActivePath.Add(...)

Congratz, if you did it right it will show you what pos x,y has been added if you are recording.
03/11/2011 18:58 Henrique MD#1065
Quote:
Originally Posted by denominator View Post
I have no idea exactly how to add/use this code

Code:
public static bool VerificaDistancia(Client C, ushort toX, ushort toY)
{
int distan = Calculations.Distance(C.X, C.Y, toX, toY);
if (distan > 10)
{
Chat(C, "Distancia > 10", 2008);
ushort novoX = C.X;
ushort novoY = C.Y; ////novoY = newY

if (C.X < toX)
novoX = (ushort)(novoX + 3);
else
novoX = (ushort)(novoX - 3);

if (C.Y < toY)
novoY = (ushort)(novoY + 3);
else
novoY = (ushort)(novoY - 3);

if (C.LastJump.AddMilliseconds(C.JumpSpeed) < DateTime.Now)
{
if (Calculations.ValidDmap(C.StaticMap, novoX, novoY))
{
Packets.CliJump(novoX, novoY, 156, C);
Packets.Jump(C, novoX, novoY, 137);
C.X = novoX;
C.Y = novoY;
C.UpdatedX = C.X;
C.UpdatedY = C.Y;

Calculations.UpdateLocal(C);
C.LastJump = DateTime.Now;
}
else
{
Chat(C, "Posicao do mapa inválida! Fazendo Random Jump!", 2008);
RandomJump(C);
}
}
return true;
}
else
return false;
}
I have it saved with no errors but how do I use /record because when I type /record and jump to a spot then another spot etc then hit /record to stop recording then hit /hunt my char just stands there and does not move in the path that I tried to set???
No, sorry. This code is for you come more near, look... the code..

Quote:
if (distan > 10)
ushort novoX = C.X; //novoX = newX
ushort novoY = C.Y;

if (C.X < toX)
novoX = (ushort)(novoX + 3);
else
novoX = (ushort)(novoX - 3);

if (C.Y < toY)
novoY = (ushort)(novoY + 3);
else
novoY = (ushort)(novoY - 3);
this will make u come to your position... if you are far from then and come jumping 3by3 to the position... its like a code to see if your jump will be so long, then he comes just jumping 3by3 until come more near to can jump without dc...


Path Record Idea:
Will show you how i made the path record, im actually dont using the random jump fuction coz i dont like cant control where my char is going...

Let's see the idea first:
1. You hit "/record"
2. then you jump in this coords
Quote:
1. 10, 10
2. 20, 20
3. 30, 30
4. 40, 40
5. 50, 50
3. you hit "/record" now, then the alchemy save it for you on the array of path...

What to do now? we are in the 5. coords(the 50, 50)
we need to start jumping back from the end to the begin...(5.;4.;3.;2.;1.).
let's get the last coord of the path that we recorded...
Quote:
C.ActivePath.Points.Count // this show us how many points we have on the activepath
we need to get the last point in the record first, but it's an array then we need an Index to get the point of activepath...
Quote:
int pathIndex;
pathIndex = C.ActivePath.Points.Count - 1;
" - 1" coz we have 5 counts but the index start from "0" the index of the coords will be (1. 10,10) = 0 ; (2. 20,20) = 1 ........ (5. 50,50) = 4 in my case pathIndex will be 4;

Now i get this last coord that i recorded the (50,50) using the index to find in the array of pathpoints..
Quote:
ushort pathX;
ushort pathY;

pathX = C.ActivePath.Points[pathIndex].Coord.X;
pathY = C.ActivePath.Points[pathIndex].Coord.Y;
now i jump in this pathX, pathY see if has some closestMonster, if no, then i dec the pathIndex
Quote:
pathIndex--;
until i be in the pathIndex = 0, then i back jumping until the pathIndex be = ActivePath.Points.Count - 1;

try to work now... try to do you logic...
keep in mind that you need to jump in the path...see if there is a monster near you, if has, you need to jump to him, attack him, then back to the last path that you was...

if you dont get it working... or get so many difficults i can post my code... but it's not good right now... it's more complicated that need to be... but worked for 3H in my warrior without get DC or stop...