PDA

View Full Version : [Crafting] <AEROLIB>Unpowered orb crafter>



rune3132
12-29-2015, 06:50 PM
Hello guys


This script is really simple, all it does is craft Unpowered orbs.
All you need to do is start it at the clan wars bank chest, have molten glass and atlease 2 pipes in your first inv tab (the one with the inifinity symbol) and near the top.

This script gives around 80k xp/hr, which isn't too bad. The amazing thing is that the gp/xp is only around 2.5 gp/xp at the moment.

If you have any problems with the script or if i should include some more info on this page (First script i "publish") please tell me and i'll fix it right away.

Have fun

-Rune

Hoodz
12-29-2015, 07:01 PM
rune3132;

only 14 posts and already a script posted very nice job!

im going to give you a few tips, this is not to flame you but to help you :)

1. use some space between your procedure example:

// your code

Procedure mouseBoxHover(x1, y1, x2, y2: Integer; Dist: Integer);
var
PT : TPoint;
begin
getMousePos(pt.x,pt.y);
PT := randomPointBoxEx(pt,inttobox(x1,y1,x2,y2),Dist);
brakeMMouse(PT, 0, 0, True);
wait(randomRange(50,150));

end;
procedure customMouse(point: TPoint);
begin
case random(0, 6) of
0..2: BrakeMMouse(point, random(5), random(5), true);
3: BrakeMMouse(point, random(5), random(5), false);
4..5: MissMouse(point, random(5), random(5));
6: HumanMMouse(point, random(5), random(5));
end;
end;


//new code

Procedure mouseBoxHover(x1, y1, x2, y2: Integer; Dist: Integer);
var
PT : TPoint;
begin
getMousePos(pt.x,pt.y);
PT := randomPointBoxEx(pt,inttobox(x1,y1,x2,y2),Dist);
brakeMMouse(PT, 0, 0, True);
wait(randomRange(50,150));
end;

procedure customMouse(point: TPoint);
begin
case random(0, 6) of
0..2: BrakeMMouse(point, random(5), random(5), true);
3: BrakeMMouse(point, random(5), random(5), false);
4..5: MissMouse(point, random(5), random(5));
6: HumanMMouse(point, random(5), random(5));
end;
end;


2. ['Use', ' Glassblowing pipe', 'lassblowing pipe', 'Use Glassblowing pipe']
this line, if it finds the text Glassblow pipe, there is no need to check for the check lassblowing pipe.

3. While (FindDTM(MtG, x, y, mix1, miy1, mix2, miy2)) do
Possible infinite loop, if it somehow stops with crafting it keeps waiting for ever, you dont want that of course.

one last tip: enable the extension: parser.sex
if you have a hard time making good standards this will fix some for you. (parser -> format script)

finally, I want to say that you should keep going with this as this is not a bad first script at all!
you DONT want to see my first script which was wayyyy worse, just keep practicing and good luck.

rune3132
12-29-2015, 09:56 PM
Thanks alot man, i really do appreciate it. I'll make it look a little nice and fix the loop right away, i should probably have noticed that possible loop. But again, thanks alot, I really do appreciate you bothering to look at a noob like me's script. I use some of your scripts and i see you everywhere helping people, so please keep doing what you do.

deffailed
05-03-2016, 01:42 AM
Wow this script is amazing ! Getting 70 crafting for monkey maddnes 2 ! ;)

honeyhoney
05-03-2016, 09:55 AM
if FindDTM(UpO, x, y, 680, 425, mix2, miy2) then
run :=True;
if run = True then
openBank;
->

if FindDTM(UpO, x, y, 680, 425, mix2, miy2) then
openBank;

Here's a way to ensure loops timeout after a certain time (example is for 2-3 seconds):

TimeOut := GetTickCount64() + Random(2000, 3000);
while (TimeOut >= GetTickCount64()) do
begin
//loop
end;

EZ41
07-23-2016, 04:54 PM
used this for a few craft levels and I made some improvements. I added some failsafes, changed the banking method, improved antiban, and added support for making other glass items. I'll post it incase anyone wants to use it. @ OP: feel free to use and build on my work.

PS sorry, dunno how to attach files so I'll have to dump the code here.


program UOrbCrafter
{$DEFINE SMART}
{$I AEROLIB/AEROLIB.SIMBA}
var
GbP, MtG, UpO, x, y, Failed: Integer;
loop, run: boolean;
const
Username = '';
Password = '';

item = 'fishbowl'; // - Choose lamp,vial, fishbowl, orb, lens


{Have glassblowing pipe in first inv slot and molten glass
visible in bank, banks on a chest.
}

Procedure DeclarePlayer
begin
Me.Name := Username;
Me.Pass := Password;
Me.Member := True;
Me.Active := True;
end;

Procedure DTMSet
begin
GbP := DTMFromString('mPwEAAHicnc3BBoBAEMbx2eteerm99Q4lUV q7pVWHiJQeuD+7p0js8BufjzGFiHRKpEGNKuVWxd7CYcSMkLJH j437HQcu3DhTtyJggofFAIcFpTFslUXL9+gfeR+j1zzz6RB9') ;
MtG := DTMFromString('mkwEAAHicrc5NCoNQDEbRvKlTdyMiBVEUrE jR9VhaxR9E6ypcgHtxPV4xww7fByckEEJcEUmMyBMpYoQI4Ckf D0S6kyHHCxVKVaDj3qoWTBjRo8UHb9Taf3W+NBgw44dj36jGCk fsxc5Htz85AUchEe4=');
UpO := DTMFromString('mFQEAAHic42VgYMhiYmBIB+J8IC4E4hIgLo byc6FyKVCcDcR5QPwcqO81EL8A4idA/BiIHwDxPSB+COU/hcq/hao9d/w4kGQkCXMxkA5IswGCUQAAEVgTyw==');
addOnTerminate('FreeIt');
end;

Procedure FreeIt;
begin
freeDTM(GbP);
freeDTM(MtG);
freeDTM(UpO);
end;


Procedure Craft;
begin

if isBankOpen() then
exit;

if not GameTab(TAB_INV) then
begin
fTab(Tab_inv);
end;

if (waitXPBarChange(2000)) then
exit();

if waitFindDTM(GbP, x, y, inttobox(MIX1, MIY1, MIX2, MIY2),50,400) then
begin
HumanMMouse(Point(x, y), 6, 6);
if waitUpTextMulti(['Use', ' Glassblowing pipe', 'Use Glassblowing pipe'], 500) then
FastClick(Mouse_LEFT);
if FindDTM(MtG, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
HumanMMouse(Point(x, y), 6, 6);
if waitUpTextMulti(['Use', 'Glassblowing pipe', ' Molten', 'glass'], 500) then
FastClick(Mouse_LEFT);
sleep(750+random(500));
end;
end else
exit;
end;


Procedure mouseBoxHover(x1, y1, x2, y2: Integer; Dist: Integer);
var
PT : TPoint;
begin
getMousePos(pt.x,pt.y);
PT := randomPointBoxEx(pt,inttobox(x1,y1,x2,y2),Dist);
brakeMMouse(PT, 0, 0, True);
wait(randomRange(50,150));

end;

procedure customMouse(point: TPoint);
begin
case random(0, 6) of
0..2: BrakeMMouse(point, random(5), random(5), true);
3: BrakeMMouse(point, random(5), random(5), false);
4..5: MissMouse(point, random(5), random(5));
6: HumanMMouse(point, random(5), random(5));
end;
end;

procedure openBank
var
TPA: TPointArray;
ATPA: T2DPointArray;
color: TColEx;
I: Integer;
location: TPoint;
begin

//Bank has already been opened
if(isBankOpen()) then
begin
exit;
end;

color.create(3425887, 21, 0.04,0.09);
if (not color.findAllIn(AREA_MS, TPA)) then
begin
loop := false;
exit;
end;

ATPA := FloodFillTPA(TPA);
if (length(ATPA) <= 0) then
begin
loop := false;
exit;
end;

SortATPAFromFirstPoint(ATPA, Point(275, 155));
for I:= 0 to high(ATPA) do
begin
if(length(ATPA[I]) < 36) then
continue;
location := MiddleTPA(ATPA[I]);
customMouse(location);
if (waitUpTextMulti(['ank', 'ast'], 300)) then
begin
fastClick(MOUSE_LEFT);
break;
end;
end;
sleep(random(900,1200));
end;

Procedure banking;
var
g: Timer;
begin
if isBankOpen() then
if getCurrentBankTab() <> 0 then
SwitchBankTab(0);

begin
if (getinvcount > 1) then
if not interactSlot(2+random(6), 'Deposit-All') then
exit;

sleep(500+random(500));

if FindDTM(MtG, x, y, msx1, msy1, msx2, msy2) then
begin
HumanMMouse(Point(x, y), 5, 5);
if WaitUpTextMulti(['Withdraw', 'Molten ', 'glass'], 400) then
FastClick(Mouse_Right);
waitOption('Withdraw-All ', 250);
end else
begin
WriteLn('Ran out of supplies, logging off.');
CloseInterface();
LogoutPlayer();
TerminateScript;
end;
end;
CloseInterface();
end;

Procedure Antiban;
begin
case Random(310) of
0..150:
if pointInBox(getMousePnt(), intToBox(1, 1, 766, 505)) then
begin
MMouseOffClient('random');
end else
exit;

201..210:
if pointInBox(getMousePnt(), intToBox(1, 1, 766, 505)) then
begin
HoverSkill(SKILL_CRAFTING, false);
FTab(TAB_INV);
MMouseOffClient('Random');
end else
exit;

211..300:
if pointInBox(getMousePnt(), intToBox(1, 1, 766, 505)) then
begin
Wait(RandomRange(2000, 4000));
PickUpMouse;
HumanRandomMouse();
end else
exit;

301..310:
if pointInBox(getMousePnt(), intToBox(1, 1, 766, 505)) then
begin
CheckMovingObjs(True);
end else
exit;

end;
end;

Procedure doInterface;
var
TimeOut:Integer;
begin




case item of
'vial': gaussMouseBox(371, 77, 401, 132, Mouse_Move);
'fishbowl': gaussMouseBox(99, 197, 136, 251, Mouse_Move);
'orb': gaussMouseBox(198, 191, 223, 252, Mouse_Move);
'lamp': gaussMouseBox(275,79, 316,136 , Mouse_Move);
'lens': gaussMouseBox(275, 191, 316, 259, Mouse_Move);
End;


Wait(RandomRange(100, 250));
if WaitUpText('ake', 400) then
begin
FastClick(Mouse_RIGHT);
WaitOption('Make X', 200);
Wait(RandomRange(1000, 1500));

case random(49) of
0..10: TypeSend('123');
11..19: TypeSend('66');
20..29: TypeSend('33');
30..39: TypeSend('99');
40..49: TypeSend('44');
50..59: TypeSend(inttostr(randomrange(27,999)));
end;


end else
begin
inc(Failed);
if (Failed > 5) then
Failed := 0;
exit;
end;

TimeOut := GetTickCount64() + Random(78000, 100000);
while (FindDTM(MtG, x, y, mix1, miy1, mix2, miy2)) and(TimeOut >= GetTickCount64()) do
begin
if ContinueChat(False) then
begin
exit;
end else;
antiban;
end;
wait(randomrange(250, 500));
exit;
end;

Procedure MainLoop;
var
findPipe:array of Tpoint;
begin
if isLoggedIn then
setAngle(ANGLE_HIGH);
repeat

if (anySlotActivated() or isUpTextMulti(['Use','olten','lassblowing'])) then
begin
mouseBox(AREA_MS, MOUSE_RIGHT);
waitOption('Cancel', 200);
end;

MouseSpeed := RandomRange(15, 22);

FindDTMs(gbp, findPipe, mix1, miy1, mix2, miy2);

if not(length(findPipe) > 0) or not (FindDTM(mtg, x,y, 680, 425, mix2, miy2)or not (FindDTM(gbp, x,y, mix1, miy1, mix2, miy2))) then
openBank;

if isBankOpen() then
Banking;

if isInvFull and (FindDTM(mtg, x,y, mix1, miy1, mix2, miy2)) then
Craft;

doInterface;
until not isLoggedIn;
end;

begin
InitAL();
DTMSet;
DeclarePlayer;
LoginPlayer(false);

while isLoggedIn() do
Mainloop;
end;