SCAR Code:
Program SyberiumsZammyMager;
{.include SRL\SRL.scar}
{.include SRL\SRL\skill\magic.scar}
{.include SRL\SRL\extended\xMapWalk.scar}
{ # ScriptName: Auto Monk of zamorak confuser/weakener/curser! }
{ # ScriptDefinition: Uses confuse/curse/weaken on monk of zammy. }
{ # Instructions: Start in varrock castle on the west side of mage cage!}
{ # Instructions Cont: Pick Color of zammy mage! IMPORTANT! }
{ # Credits: Me for making this! Junior-Helped with my stupid mistake =/, }
{ # Credits Cont: pwnaz0r-THANKS MAN!, Scuancy-MAN thanks for being a great}
{ tester! Ruroken for world switch idea,}
{ # Lastly have fun and auto safe and correctly!
{ IF the weaken isent working for you do the below instructions.
go to SRL\SRL\skill\magic.scar and replace there BMP with mine.
MAKE SURE U REMOVE THE {} {AROUND THE BMP!}
{ weaken := BitmapFromString(5, 6, 'z78DA33353171347632000143' +
'474B03335717080911C12F8E298BA912975E5333131713235C6A2' +
'0B2986A206C008F6C2631'); }
const
WichSpell = 2; // 0 for confuse, 1 for weaken, 2 for curse!
Howmanyto = 3000;// how many times to cast the above spells.
MSpeed = 25;
Mage1 = 4147116; //mage color(s) shoudent have to change these
Mage2 = 3949732;
Mage3 = 4278447;
StartPlayer = 0; // What player you start with.
NumberOfUsers = 1; // The Number of users you use.
Version = ('4.0') ;
Mem = ('no'); // yes to load member worlds, no for free worlds.
var
Howmany,cursegone,weakengone,confusegone,xcv,loads : integer;
attemptss : integer;
ZMage : array[0..2] of integer;
ZMageI : integer;
Chat, Name, ChatName: String;
PreferredWorlds: array[0..13] of integer;
PreferredWorldCounter :integer;
Handle, World:integer;
procedure DeclarePlayers;
begin
HowManyPlayers := NumberOfUsers;
NumberOfPlayers( HowManyPlayers );
CurrentPlayer := StartPlayer;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=True;
end;
function WelcomeToRuneScape:Boolean; // By WT-Fakawi
var Welcome,tx,ty:integer;
begin
Welcome := CreateBitmapMaskFromText('Welcome', UpChars);
Result:= FindBitmapMaskTolerance(Welcome, tx, ty, 250, 200, 530, 260, 10,10)
FreeBitmap(Welcome);
end;
procedure talkrnd;
begin
if (FindTalk) then
begin
FindTalk;
Findnormalrandoms;
end;
end;
Function FindFastRandoms: Boolean;
var
i: Integer;
begin
for i:=0 to 10 do
begin
case I of
0: If FindTalk then
begin
FindNormalRandoms;
end;
1: If FindDead then
Result := True;
2: If FindMod then
Result := True;
3: If FindMime then
Result := True;
4: If FindMaze then
Result := True;
5: If FindQuiz then
Result := True;
6: If FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
8: begin
talkrnd;
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
9: RC;
10: talkrnd;
end;
talkrnd;
end;
end;
procedure DeclareBMPS;
begin
cursegone := BitmapFromString(5, 5, 'z78DA33303230303032809' +
'016061686861036903630B44011C794C510C7228B218E62328638' +
'840400938E1D11');
weakengone := BitmapFromString(5, 6, 'z78DA3335317134763230' +
'323030303234343030B480901011FCE298B2982A71E9353533713' +
'1C1693E4416530D840D006BA02332');
confusegone := BitmapFromString(12, 7, 'z78DA33743430307434' +
'3032303030323404B22D2024448472714C596435B8CCC13401BF5' +
'DC4984C8939E4F90B97087E927817926A02B22C00E1A860F4');
end;
procedure randoms;
begin
if (FindFight) then
begin
Status('Climbing up stairs...')
if(FindObj3(x,y,'tair',610411,7)) then
begin
Mouse(x,y,3,3,true);
end;
begin
Sleep(15000+random(5000));
if(InChatMulti('evil','bored','vanish')) then
begin
wait(1000+random(500))
MakeCompass('E');
if(FindObj3(x,y,'tair',5395032,8)) then
begin
wait(1000+random(300));
Mouse(x,y,3,3,true);
wait(3000+random(400));
Mouse(126,182,3,3,true);
end;
Wait(10);
talkrnd;
end;
end;
end;
end;
Function ZCastOn(Spell, Monster: string; MonsterColor : Integer; Tolerance:
Integer): Boolean;
var
tx,ty : integer;
begin
tx := tx + random ( 40 );
ty := ty + random ( 40 );
if (not Cast(Spell)) then Exit;
ZMageI := random(3)
if (FindObj3(tx, ty, Monster, ZMage[ZMageI], Tolerance)) then
begin
Mouse(tx,ty, 0, 0, True);
Result := True;
end;
end;
Procedure ZammyMageColors;
begin
ZMage[0] := (Mage1);
ZMage[1] := (Mage2);
ZMage[2] := (Mage3);
end;
Function FindMage : Boolean;
begin
talkrnd;
ZMageI:=Random(3);
if(FindObj3(x, y, 'amora', ZMage[ZMageI], 7)) then
begin
MakeCompass('E');
writeln('Found Mage!');
Result := True;
Exit;
end
else
begin
Writeln('Finding Mage..');
MakeCompass('E');
Wait(300+random(300));
HighestAngle;
end;
result := False;
end;
Procedure LocateMage;
begin
if(FindMage) then
begin
MakeCompass('E');
Writeln('Found Mage1!')
Exit;
end
else
begin
repeat
Writeln('Trying to Find mage..')
FindMage;
Attemptss:=Attemptss + 1;
Until(FindMage) or (Attemptss>3);
if (Attemptss > 3) then
begin
Writeln('Dident find mage!')
Logout;
LoginPlayer;
Loads := Loads + 1;
if (Loads > 5) then
NextPlayer(False);
end;
end;
end;
Procedure zammymage;
var
Spell : String;
begin
case wichspell of
0: Spell:='Confuse';
1: Spell:='Weaken';
2: Spell:='Curse';
end;
FindFastRandoms;
talkrnd;
Wait(300+random(200));
ZMageI := random(3)
ZCastOn(Spell,'amora',ZMage[ZMageI],8);
talkrnd;
if(howmany>=howmanyto) then
NextPlayer(False);
end;
function StolenMage : Boolean;
begin
GameTab(7);
if(wichspell=0) and FindBitmap(confusegone,x,y) or (wichspell=1) and FindBitMap(weakengone,x,y) or (wichspell=2) and FindBitmap(cursegone,x,y) then
begin
xcv := xcv + 1;
Mouse(x,y,3,3,true);
Wait(100+random(100));
if(FindColorTolerance(x,y,Zmage[ZMageI],2,3,760,495,6)) then
begin
xcv := xcv + 1;
Mouse(x,y,3,3,True);
if (InChatMulti('enough','unes','cast') or InChatMulti('not','ody','spell')) then
begin
xcv := xcv + 1;
if(xcv = 3) then
begin
Result := true;
end else
Result := False;
end;
FreeBitmap(cursegone);
FreeBitmap(weakengone);
FreeBitmap(confusegone);
end;
end;
end;
Procedure DoChats;
Begin
SetChat('On', 1);
SetChat('Off', 2)
SetChat('On', 3);
End;
Procedure progress;
begin
// thanks hey321
writeln('[===============================================]')
writeln('[ Syberiums Zammy Mager ')
writeln('[ Completed ' +IntToStr(howmany)+ ' Zammy Mage Casts!')
writeln('[ Worked For ' +TimeRunning)
writeln('[Thank You for using my script! Post Proggies =]')
writeln('[==============================================]')
SRLrandomsreport;
end;
Procedure antiban1;
var DBANME : integer;
begin
writeln('Antiban1')
if (not(loggedIn)) then Exit;
DBANME := Random(100);
case DBANME of
1:Hoverskill('magic',False) ;
2:pickupmouse;
end;
end;
Procedure antiban2;
var DBANME1 : integer;
begin
writeln('AntiBan2')
if(not(LoggedIn)) then Exit;
DBANME1 := Random(100);
case DBANME1 of
1:ZCastOn('Weaken','amora',ZMage[ZMageI],5);
2:ZCastOn('Confuse','amora',ZMage[ZMageI],5);
end;
end;
Procedure click1;
begin
Mouse(698,297,5,5,true);
wait(300-random(80))
Mouse(698,297,0,0,true);
end;
Procedure click2;
begin
Mouse(685,267,5,5,true);
wait(300-random(80))
Mouse(685,267,0,0,true);
end;
Procedure click3;
begin
Mouse(652,254,5,5,true);
wait(300-random(80))
Mouse(652,254,0,0,true);
end;
Procedure missclick;
var
click : integer;
begin
click := random(15)
case click of
1:click1;
2:click2;
3:click3;
end;
end;
Function stolen : Boolean;
begin
if(InChatMulti('omeone', 'else' , 'ghting')) then
begin
Result := true;
TypeSend('Leave please.. i need exp') ;
end;
begin
if(InChatMulti('omeone', 'else' , 'ghting')) then
begin
TypeSend('Zomg u still here noob..');
Result := true;
end else
begin
Result := false;
end;
end;
end;
procedure jacked;
begin
if (stolen) then
begin
Writeln('Some one is fighting mage already!')
Logout;
LoginPlayer;
MakeCompass('E');
MakeCompass('E');
MakeCompass('E');
highestangle;
end;
end;
procedure norunes;
begin
if (StolenMage) then
begin
writeln('Ran out of runes, Logging out.');
Players[Currentplayer].active := False;
NextPlayer(False);
end;
end;
function GetChatMessage(Text: String): Boolean;
var
TX, TY: Integer;
Chat: String;
begin
if(IsTextInAreaEx(40, 415, 130, 415, TX, TY, ':', 0, SmallChars, False, True, 0, 0, 0))then
begin
Chat:= Lowercase(Trim(GetTextAtEx(TX + 8, 415, 0, SmallChars, False, False, 0, 1, 16711680, 40, False, TR_AllChars)));
if(Pos(Text, Chat) <> 0)then
begin
Result:= True;
end
end;
end;
function GetChatName(Name: String): Boolean;
var
I: Integer;
begin
ChatName:= Lowercase(Trim(GetTextAtEx(21, 415, 0, SmallChars, False, False, 0, 0, 0, 50, False, TR_AllChars)));
I:= Pos(':', ChatName);
if(I <> 0)then
begin
Delete(ChatName, I, I);
end
if(Pos(Name, ChatName) <> 0)then
begin
Result:= True;
end
end;
Function AutoRespond: Boolean;
var
Responce, Lvl: String;
RandomReply: Integer;
begin
OldLine:= TheLine;
TheLine:= Lowercase(Trim(GetTextAtEx(20, 415, 0, SmallChars, False, False, 0, 1, 16711680, 40, False, TR_AllChars)));
NewLine:= TheLine;
If(GetChatName(Players[CurrentPlayer].Name))then
Begin
Exit;
End
If(OldLine=NewLine)then
Begin
Exit;
end
if(GetChatMessage(Players[CurrentPlayer].Name)) or (GetChatMessage(Players[CurrentPlayer].Nick))then
begin
WriteLn(''+ChatName+': '+Chat);
RandomReply:= Random(10)+1;
Case (RandomReply) of
0 : Responce:= ('?');
1 : Responce:= ('what');
2 : Responce:= ('yes');
3 : Responce:= ('no');
4 : Responce:= ('what do you want');
5 : Responce:= ('me?');
6 : Responce:= ('Yah?');
7 : Responce:= ('who?');
8 : Responce:= ('wha?');
9 : Responce:= ('?');
10 : Responce:= ('???');
end
TypeSend(Responce+' '+Name);
Result:= True;
end
If(GetChatMessage('lol'))or (GetChatMessage('lolz')) or (GetChatMessage('lmao')) or (GetChatMessage('rofl')) or (GetChatMessage('haha'))then
Begin
WriteLn(''+ChatName+': '+Chat);
RandomReply:= Random(25)+1;
Case (RandomReply) of
0 : Responce:= ('hehe');
1 : Responce:= ('lolol');
2 : Responce:= ('lol');
3 : Responce:= ('haha');
4 : Responce:= ('hihi');
5 : Responce:= ('ghehe');
6 : Responce:= ('lmao');
7 : Responce:= ('lmfao');
8 : Responce:= ('rofls');
9 : Responce:= ('fun');
10 : Responce:= ('nice');
11 : Responce:= ('lolz');
12 : Responce:= ('yep');
13 : Responce:= ('hola');
14 : Responce:= ('wow');
15 : Responce:= ('hehe...');
16 : Responce:= ('rofl');
17 : Responce:= ('ghehehghehighhe');
18 : Responce:= ('cool');
19 : Responce:= ('...');
20 : Responce:= ('???');
21 : Responce:= ('wowzers');
22 : Responce:= ('grrr...');
23 : Responce:= ('rowr');
24 : Responce:= ('lolololololol');
25 : Responce:= ('ha ha ha!!!');
end
TypeSend(Responce);
Result:= True;
end
If(GetChatMessage('mage')) or (GetChatMessage('magic')) or (GetChatMessage('mag'))
And
(GetChatMessage('lvl')) or (GetChatMessage('level')) or (GetChatMessage('lvls')) or (GetChatMessage('levels'))then
Begin
WriteLn(''+ChatName+': '+Chat);
Lvl:= IntToStr(GetSkillLevel('magic'));
RandomReply:= Random(5)+1;
Case (RandomReply) of
0 : Responce:= ('i''m lvl '+Lvl+' mage');
1 : Responce:= ('level '+Lvl+' magic');
2 : Responce:= ('lvl '+Lvl+' magein!');
3 : Responce:= (+Lvl);
4 : Responce:= ('i''m level '+lvl);
5 : Responce:= (+Lvl+' here :P');
End
TypeSend(Responce);
Result:= True;
End
If(GetChatMessage('wat')) or (GetChatMessage('what')) and (GetChatMessage('doin')) or (GetChatMessage('doing'))then
Begin
WriteLn(''+ChatName+': '+Chat);
RandomReply:= Random(12);
Case RandomReply of
0 : Responce:= ('not much');
1 : Responce:= ('nothing');
2 : Responce:= ('bored');
3 : Responce:= ('aye?');
4 : Responce:= ('emmm..nothin');
5 : Responce:= ('nope');
6 : Responce:= ('huh');
7 : Responce:= ('playin rs.. der da der');
8 : Responce:= ('what');
9 : Responce:= ('....');
10 : Responce:= ('nothin');
11 : Responce:= ('dun worry about it');
End;
TypeSend(Responce);
Result:= True;
End;
If(GetChatMessage('hey')) or (GetChatMessage('hi')) or (GetChatMessage('hello')) or (GetChatMessage('wats up')) or (GetChatMessage('whats up')) or (GetChatMessage('yo'))then
Begin
WriteLn(''+ChatName+': '+Chat);
RandomReply:= random(9)+1;
Case RandomReply of
0 : Responce:= ('ello');
1 : Responce:= ('sup');
2 : Responce:= ('yo');
3 : Responce:= ('whats up everyone');
4 : Responce:= ('whats up');
5 : Responce:= ('welcome');
6 : Responce:= ('allo allo');
7 : Responce:= ('wat up');
8 : Responce:= ('y0o');
9 : Responce:= ('=P');
10 : Responce:= ('what is up');
End
TypeSend(Responce);
Result:= True;
End
End;
begin
SetupSRL;
ScriptID := '71';
ClearDebug;
DeclarePlayers;
CurrentPlayer := StartPlayer;
if(not(LoggedIn)) then LoginPlayer;
NickNameBMP:= CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
DoChats;
MouseSpeed := MSpeed + Random(3)
BenMouse:=False;
MakeCompass('E');
Highestangle;
ZammyMageColors;
MakeCompass('E');
MakeCompass('E');
MakeCompass('E');
FindMage;
LocateMage;
repeat
AutoRespond;
MouseSpeed := MSpeed + Random(3)
randoms;
talkrnd;
AutoRespond;
jacked;
norunes;
wait(600+random(200));
zammymage;
wait(200+random(100));
howmany:=howmany + 1;
progress;
antiban1;
antiban2;
FindFastRandoms;
AutoRespond;
until(howmany>=howmanyto);
NextPlayer(False);
writeln('dbuf 1');
end.
P.S if you want to use more then 1 player ur gonna have to add that yourself...if you don't know how look at wizzup?'s TUT and if after that you still got no idea, go buy a brain then try again
It worked fine for a loong time and recently as of yesterday it only does about 100 curses at a time.
I really would like to fix this in my free time but i'm not doing so hot in school and haven't the time to begin scripting.
Can't wait 'til this summer though.