Stripped ProjectAlchemy Source Code

03/11/2011 19:04 denominator#1066
Yup got that part working, it now shows me the coords that I jumped to albeit it misses a coord or two. It still doesn`t actually follow the path and coords created though?



Thank you guys I really appreciate this, I have only been using the mining system from the proxy and it hasn`t botjailed me at all yet. I was using cooperative but it seems hooking clients is getting people botjailed where as proxies don`t seem to be affected o.0? The reason I haven`t really used the proxy for lvling is because I prefer it to hunt in a small area or in a "path" like coop has.

Code:
 
public static bool NewBot(Client C)
        { 
            int pathIndex;
            pathIndex = C.ActivePath.Points.Count - 1; 
            ushort pathX;
            ushort pathY;

            pathX = C.ActivePath.Points[pathIndex].Coord.X;
            pathY = C.ActivePath.Points[pathIndex].Coord.Y; 
            pathIndex--;
But I am still unsure as to where I put this? I tried to do all this before but I get to the end and never know where to put the last code lol. This should work I think so I will test it :)
03/11/2011 19:51 Henrique MD#1067
This is my code... its not really good but work...other thing is... one time record the new record doesn't restart the count of path...

Quote:
Mob monstro = GetClosestMonster(C);

if ((C.ActivePath != null) && (monstro == null))
{
if (C.LastJump.AddMilliseconds(C.JumpSpeed) < DateTime.Now)
{
ushort pathX;
ushort pathY;

if (pathIndex == 999999) //just to see if is the first time...to get the last record...the begin.
pathIndex = C.ActivePath.Points.Count - 1;

pathX = C.ActivePath.Points[pathIndex].Coord.X;
pathY = C.ActivePath.Points[pathIndex].Coord.Y;


if (!VerificaDistancia(C, pathX, pathY))
{
if (Calculations.ValidDmap(C.StaticMap, pathX, pathY))
{
Packets.CliJump(pathX, pathY, 156, C);
Packets.Jump(C, pathX, pathY, 137);
C.X = pathX;
C.Y = pathY;
Calculations.UpdateLocal(C);
C.LastJump = DateTime.Now;

if (pathIndex >= C.ActivePath.Points.Count - 1)
fimPath = true; //end of path = true
if (pathIndex <= 1)
fimPath = false; // end of path = false

if (fimPath) // use the var to see if will dec or inc...
pathIndex--;
else
pathIndex++;

}
}
}
if (monstro != null)
jump on him, atack him...
03/11/2011 20:23 denominator#1068
Restarting the count would need a return true; maybe? Like for hunt code to turn it on and off needs a return true;

Ok so I have it in place but with a few errors in fimpath and pathIndex, they tell me they do not exist in the current context? I thank you very very very much for this, I can study it and try to understand it a little more :) I am still learning and still using trial and error with a lot of things but sometimes I just get really tired of trying especially after several weeks of trying but failing lol.

Ok just fimPath now but unsure if I must put the same thing as pathIndex?

Code:
Mob attack = GetClosestMonster(C); // Radius 18
                    //Coord To = Calculations.PullWeights(MakeCoord(C.X, C.Y), C.ActivePath[PathIndex]);
                    Items.GroundItem moneyloot = GetClosestMoney(C);
                    

                    if ((C.ActivePath != null) && (attack == null))
                    {
                        if (C.LastJump.AddMilliseconds(C.JumpSpeed) < DateTime.Now)
                        {
                            int pathIndex;
                            pathIndex = C.ActivePath.Points.Count - 1; 
                            ushort pathX;
                            ushort pathY;

                            if (pathIndex == 999999) //just to see if is the first time...to get the last record...the begin.
                                pathIndex = C.ActivePath.Points.Count - 1;

                            pathX = C.ActivePath.Points[pathIndex].Coord.X;
                            pathY = C.ActivePath.Points[pathIndex].Coord.Y;


                            if (!VerificaDistancia(C, pathX, pathY))
                            {
                                if (Calculations.ValidDmap(C.StaticMap, pathX, pathY))
                                {
                                    Packets.CliJump(pathX, pathY, 156, C);
                                    Packets.Jump(C, pathX, pathY, 137);
                                    C.X = pathX;
                                    C.Y = pathY;
                                    Calculations.UpdateLocal(C);
                                    C.LastJump = DateTime.Now;

                                    if (pathIndex >= C.ActivePath.Points.Count - 1)
                                        fimPath = true; //end of path = true
                                    if (pathIndex <= 1)
                                        fimPath = false; // end of path = false

                                    if (fimPath) // use the var to see if will dec or inc...
                                        pathIndex--;
                                    else
                                        pathIndex++;

                                }
                            }
                        }
                        if (attack != null)
03/11/2011 20:35 Henrique MD#1069
Quote:
public partial class Handler
{
static int pathIndex = 999999;
static bool fimPath = true;
At the begin of code... post it...
and other thing... you can implement this cood... its not how it could be using fuctions and other things... its a "GAMBIARRA" how we can this tipe of code in brazil...works but its not the best...
i have made some changes on the Verifica too... copy this its better, will not stop...trying to jump where cant...

Quote:
public static bool VerificaDistancia(Client C, ushort toX, ushort toY)
{
int distan = Calculations.Distance(C.X, C.Y, toX, toY);
if (distan > 6)
{

Chat(C, "Distancia > 6", 2008);
ushort novoX = C.X;
ushort novoY = C.Y;

Random r = new Random();
int imove = r.Next(1, 5);

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

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

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;
}
}
return true;
}
else
return false;
}
03/11/2011 20:52 denominator#1070
Ok I love you for this!!! I could see my char jumping around I think but he disconnected lol.
I try the "public static bool VerificaDistancia" and it tells me "verificou" doesn`t exist lol. So I put it like this at the top

Code:
static int pathIndex = 999999;
        static bool fimPath = true;
        static bool verificou = true;
03/11/2011 21:02 pro4never#1071
So just a sneak peek...

Blowfish is now working correctly... just need to switch to better sockets (I wrote my own... not a great idea :P) and we'll be ready for some testing.


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


Thread should be approved soon'ish.

Basically it's a massively configurable multi version proxy that will work from 5018-current patch.
03/11/2011 21:03 Henrique MD#1072
Quote:
Originally Posted by denominator View Post
Ok I love you for this!!! I could see my char jumping around I think but he disconnected lol.
I try the "public static bool VerificaDistancia" and it tells me "verificou" doesn`t exist lol. So I put it like this at the top

Code:
static int pathIndex = 999999;
        static bool fimPath = true;
        static bool verificou = true;
`lol.... i fogot to remove verificou, i don't know what i used for...but you can remove it =)... say me its working to you the path jumping....?
03/11/2011 21:12 denominator#1073
Ok I will remove it (if it doesn`t give me errors) lol. I will retest again but yes I think it is working but I shall test :D

Ok so he looks like he moves twice then it says invalid jump or something jump. I get error 10010 I think that is monster based error?

Looks nice P4N, I started looking into the GUI for alchemy but gave up fairly quickly. I understand either GUI or console but not when they are together lol.
03/11/2011 21:29 pro4never#1074
Quote:
Originally Posted by denominator View Post
Ok I will remove it (if it doesn`t give me errors) lol. I will retest again but yes I think it is working but I shall test :D

Ok so he looks like he moves twice then it says invalid jump or something jump. I get error 10010 I think that is monster based error?

Looks nice P4N, I started looking into the GUI for alchemy but gave up fairly quickly. I understand either GUI or console but not when they are together lol.
Yahh this one me and obel have been working on is purely windowsform. There is no console part of it. I wrote that textbox custom so it scrolls text much like a console window and uses WriteLine.

We have a similar setup for loot actions and proxy log. That way it will do something like...

"attacking monster uid: Z at X/Y"
"looting Meteor at X/Y"

etc
03/11/2011 21:36 denominator#1075
I think I prefer windowsform but when first learning it`s all about the friggin console. Or at least it was for me lol. I mean yes it is relatively a simpleish language to learn but still trying to get my head around human talk and computer talk well I get massive confliction from it all the time and scream at the computer things like "BUT YOU SHOULD BE F*&$ING WORKING!!!" But the computer/prog says no lmfao.


Ok it`s still giving the invalid jump thing, I am in pheasants whether that makes any difference at all? I am so close yet soooooo far away lol. I read in an earlier post that maybe to stop the invalid jump I need to use cyclone? But how?
03/11/2011 23:41 Henrique MD#1076
Quote:
Originally Posted by denominator View Post
I think I prefer windowsform but when first learning it`s all about the friggin console. Or at least it was for me lol. I mean yes it is relatively a simpleish language to learn but still trying to get my head around human talk and computer talk well I get massive confliction from it all the time and scream at the computer things like "BUT YOU SHOULD BE F*&$ING WORKING!!!" But the computer/prog says no lmfao.


Ok it`s still giving the invalid jump thing, I am in pheasants whether that makes any difference at all? I am so close yet soooooo far away lol. I read in an earlier post that maybe to stop the invalid jump I need to use cyclone? But how?
i didn't make the loot part, then is probaly that the invalid jump is something like you are in the path recorded coords and try to jump to a far item, or back from to the item to the coords of path and this is so far, giving you DC... by the way i work on alchemy just with my warrior....an other thing is the character jump in the monster.X +1, coz if you jump at the same coords of the monster, its sure that you are in a bot....
03/11/2011 23:47 denominator#1077
Tested without the looting implemented but still disconnects after two jumps? I do not mind the bot being obvious :) I will be using it in a quiet area with disconnect on all players hehe. I am interested at the +1 away from monsters though so my rage hits all the mobs properly lol.

Ok I took a nooby trojan to grotto and the pathfinder seems to path find BUT it doesn`t attack the monsters now? I have now commented out the pathfinding and the hunting works again o.0 P4N what am I doing wrong?!?!
03/12/2011 02:40 Henrique MD#1078
Quote:
public static bool NewBot(Client C)
{
if (C.Mining)
Mining.startMining(C);

if (C.Hunting)
Hunting.startHunting(C);

return true;

}
huting:
Quote:
public class Hunting
stuff...if need ask me
im using on my ninja to test and its working perfect...
jumping an distance bigger then 7 its not a good idea if you arent in FS.

Make the bot just one part... see if its working perfect... the do the next part...

1. try to make he jump in a closestmonster and attack... if working without dc... you that this part its perfect(or good)...

2. try to implement pathrecord or randomJump... if you start get DC now, then the problem its here...

3. implement loot.

don't try to make all thing at the same time... coz if you start get DCs will not now where is the problem
03/12/2011 07:14 carlosptordaz#1079
I've seen in a private server conquer the character of the space dragon, gives cp in large quantities in all the explanations that your giving me I could create or add such a function is this character not so much but to get cp dragon ball super gems or who takes
03/12/2011 16:26 denominator#1080
Many many thanks for this Henrique I will give it a try, hahahahahahahahahahahaha@me for wondering what I had messed up on, I just sat there with a blank face for AGES wondering why the mining that I readded kept saying needs a return value. I put in a return value and no matter where I put it I was told no. I pondered and continued to look as hard as I could to see what I had done wrong.

It actually HELPS when I realise it`s supposed to friggin say "public static VOID startMining" I had forgotten the Void part rofl@me but I figured it out eventually. I knew it was only a silly mistake which is why I never started asking why it failed :) Ok about to test it out now.

Ok I wish there was more than just thanks on here! That coding will actually help me to get better at programming believe it or not because it gives me a better sense of how everything is supposed to work in the proxy, I added in a looting system as well just to see if I could put it in there without getting errors or if I did get errors I could rectify them which I did. Really really appreciate it and yes it seems to work fine THANK YOU!


Ok got loot working, now how to prioritise it over hunting? Basically if money/items are around ignore monsters and hunt money/items first. Also another thing if the monster drops gold and an item the bot only picks the one thing up and ignores everything else dropped by the mob. Then the char jumps to start attacking next monster.

Hmm getting pretty frustrated with it now >.> It loots when it feels like it but doesn`t loot everything.