SCAR Code:
//Script name: CursedYOU v1.0
//Writer: Cheetahnub
//Thanks to: The Scar Noob
// Spaztaz666
//Description: Casts Confuse, Weaken, Curse and Crumble Undead.
//Instructions: Wear items with the lowest possible mage attack bonus(Full iron, d vambs, no ammy)
// and take your account(s) to a place where you can farshoot monsters such as the
// prison in port sarim.
// YOU HAVE TO PICK THE PINK COLOR FROM THE SPELL BUTTONS(The arrow in crumble undead, the brighter color in the curses)!!
// PUT THE COLOR ON LINE 68
//To Do List for next versions:
//
// ¤ Add MORE failsafes(Maybe)
program CursedYOU;
{.include srl/srl.scar}
{.include srl/srl/skill/magic.scar}
var
//--Booleans--//
MonsterFound :boolean;
//--Integers--//
xx, xy :integer;
Casted :integer;
TotalCasted :integer;
MonsterCount :integer;
AntiRandomTime :integer;
AntiBanTime :integer;
CursesReport :integer;
WeakensReport :integer;
ConfusesReport :integer;
CrumblesReport :integer;
TotalCastReport :integer;
//--Strings--//
Bar :string;
//---------EDIT THESE-------------//
const
MySRLId = ''; //Fill in your SRL-stats Id And Pass
MySRLPassword = '';
MonsterColor1 = 6380129 ; //Fill in the monster colors
MonsterColor2 = 9208204 ; //Fill in the monster colors
MonsterColor3 = 10392222 ; //Fill in the monster colors
MonsterName1 = 'omb'; //Fill in 3 parts of the monsters name(For example, now we´re cursing zombies)
MonsterName2 = 'ombi';
Monstername3 = 'ombie';
Compass = 'N'; //Where do you want the compass to point? N=North, E=East, W=West, S=South
RunDirection = 'S'; //Where to run if atatcked? N=North, E=East, W=West, S=South
CameraAngle = 'Up'; //What camera angle do you want to use? Up or Down
TimeToLook = 15; //How many seconds to look for a monster before stopping?
TimeToWait = 60; //How long breaks between each player in seconds? 60-90 RECOMMENDED
SpeedOfMouse = 9; //The speed of the mouse
Spell = 'Curse'; //What spell do you want to use? Curse, Weaken, Confuse or Crumble Undead
CursePink = 15533737; //YOU M_U_S_T PICK THIS COLOR FROM THE SPELL BUTTON!! THIS IS THE BRIGHTER COLOR(The color is same in all of the curse spells and crumble)!!
DoAntiBan = 150; //How many curses between antibans? 100-200 recommended
//--------------------------------//
//----------SETUP PLAYERS-------------//
procedure DeclarePlayers;
begin
HowManyPlayers := 3;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := ''; // 3-4 letters of username
Players[0].Active := True; // Is the player active?
Players[0].Integers[0] := 500; //How many curses to do? (DO NOT PUT TOO MANY)
Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := ''; // 3-4 letters of username
Players[1].Active := True; // Is the player active?
Players[1].Integers[0] := 500; //How many curses to do? (DO NOT PUT TOO MANY)
Players[2].Name := '';
Players[2].Pass := '';
Players[2].Nick := ''; // 3-4 letters of username
Players[2].Active := True; // Is the player active?
Players[2].Integers[0] := 500; //How many curses to do? (DO NOT PUT TOO MANY)
end;
//------------------------------//
//----------DONT TOUCH BELOW UNLESS YOU KNOW WHAT YOURE DOING---------//
//------------GETTING THE LEVEL + PROGGY---------//
function GetOurMageLevel: integer;
begin
GameTab(2);
result:= GetSkillLevel('Magic');
end;
//------------------------------------------------//
//------------PROGRESS REPORT-------------------//
procedure Proggy;
begin
WriteLn(' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤');
WriteLn(' ¤ CursedYOU BETA BY CHEETAHNUB ¤');
WriteLn(' ¤ REMEMBER TO POST THE PROGGIE ¤');
WriteLn(' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤');
WriteLn(' ¤ Current player: ' + (Players[CurrentPlayer].name) + '');
WriteLn(' ¤ Ran for ' + (timerunning) + '');
WriteLn(' ¤ Casted ' +IntToStr(TotalCasted)+ ' times');
WriteLn(' ¤ Casted ' +IntToStr(Casted)+ ' times on this character');
WriteLn(' ¤ ' +IntToStr(Players[CurrentPlayer].integers[0]-Casted)+ ' casts left on this character');
WriteLn(' ¤ Your magic level is: ' +IntToStr(GetOurMageLevel)+ '');
WriteLn(' ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤');
if MySRLId = '' then Writeln('OMG LEECHER GO GET SRL STATS OMG!!!!!!!!!1111oneone+shift')
ReportVars[0] := TotalCastReport;
ReportVars[1] := ConfusesReport;
ReportVars[2] := WeakensReport;
ReportVars[3] := CursesReport;
ReportVars[4] := CrumblesReport;
SendSRLReport;
CursesReport := 0;
WeakensReport := 0;
ConfusesReport := 0;
CrumblesReport := 0;
TotalCastReport := 0;
end;
//---------------------------------------------------------//
//----------------------MY SIG----------------------------//
procedure MySignature;
begin
Writeln(' _____ _ _ ___ ___ _______ _____ _ _ ___ _ _ _ _____ ')
Writeln(' | ___| | | | | | __| | __| |__ __| | _ | | | | | | \ | | | | | | | _ |')
Writeln(' | | | |_| | | |_ | |_ | | | |_| | | |_| | | |\ \ | | | | | | | |_| |')
Writeln(' | | | _ | | _| | _| | | | _ | | _ | | | \ \ | | | | | | | _ < ')
Writeln(' | |___ | | | | | |_ | |_ | | | | | | | | | | | | \ \| | | |__| | | |_| |')
Writeln(' |_____| |_| |_| |___| |___| |_| |_| |_| |_| |_| |_| \___| |______| |_____|')
Writeln('-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._')
Writeln('- CursedYOU _')
Writeln('-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._')
if MySRLId = '' then Writeln('OMG LEECHER GO GET SRL STATS OMG!!!!!!!!!1111oneone+shift')
end;
//---------------------------------------------------//
//----------------------FINDFASTRANDOMS------------//
function FindFastRandoms: Boolean; //By WT-Fakawi.
var
i: Integer;
begin
for i := 1 to 8 do
begin
case I of
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';
Players[CurrentPlayer].Active:= False;
Logout;
Exit;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
end;
Wait(1);
end;
end;
//--------------------------------------------------//
//------------------------ANTIRANDOMZ--------------//
procedure AntiRandomz;
begin
if AntiRandomTime > 20+random(5+random(10)) then
begin
AntiRandomTime := 0
FindNormalRandoms;
If FindFight then
begin
Writeln('Argh, darn fighting randoms, let´s hope RunBack works :/')
RunAwayDirection(RunDirection);
FFlag(10);
wait(1000+random(2234));
RunBack;
end;
end else exit;
end;
//-------------------------------------------------//
//-------------------------ANTIBANZ-----------------//
procedure AntiBanz;
begin
if Antibantime > DoAntiBan+random(25) then
begin
Writeln('Doing some antiban :)');
AntiBanTime := 0
case(random(16)) of
0: begin
HoverSkill('Magic',false); //Hovers magic and changes gametab
GameTab(random(14)+1);
end;
1: begin
case(random(3)) of
0: Bar := 'volume'; //Changes the sound settings randomly,
1: Bar := 'effect'; //this is something new I think lol
2: Bar := 'area';
end;
SetBar(Bar, random(5));
end;
2: HoverSkill('Magic', False); //Hovers magic
3: begin
HoverSkill('Magic', False); //Hovers magic and changes gametab
GameTab(random(14)+1);
end;
4: HoverSkill('Magic', False); //Hovers magic
5: RandomRClick; //boring
6: PickUpMouse; //boring
7: AlmostLogout; //boring
8: RandomMovement; //boring
9: begin
BoredHuman; //Normal BoredHuman + compass to the original setting
Wait(1000+random(500));
MakeCompass(Compass);
end;
10: begin
HoverSkill('Random', False);
case(random(2)) of //Hovers 2 or 3 skills,
0:HoverSkill('Random', False); //can´t get more random than this :D
end;
HoverSkill('Random', False);
end;
11: begin
HoverSkill('Strenght', False);
case(random(2)) of //Hovers Melee skills
0:HoverSkill('Attack', False);
end;
HoverSkill('Hitpoints', False);
end;
12: begin
GameTab(1); //"Checks the cb level"
wait(1500+random(1564));
end;
13: begin
HoverSkill('Magic', False); //Hovers magic and Almost logs out
AlmostLogout;
end;
14: begin
HoverSkill('Random', False); //Hovers hovers a random skill + magic
HoverSkill('Magic', False);
end;
15: begin
GameTab(1); //"Checks the cb level" and hovers a random combat skill
case(random(7)) of
0:HoverSkill('Strenght', False);
1:HoverSkill('Attack', False);
2:HoverSkill('Defence', False);
3:HoverSkill('Prayer', False)
4:HoverSkill('Hitpoints', False);
5:HoverSkill('Ranged', False);
7:HoverSkill('Magic', False);
end;
end;
16: begin
GameTab(Random(14)+1);
Wait(2000+random(5000));
end;
end;
Writeln('Stopped anti-banning');
end;
end;
//-----------------------------------------------//
//--------------COUNTS SPELLS FOR SRL STATS---------//
procedure CountSpells;
begin
case(Spell) of
'Curse': CursesReport := CursesReport + 1
'Weaken': WeakensReport := WeakensReport + 1
'Confuse': ConfusesReport := ConfusesReport + 1
'Crumble Undead': CrumblesReport := CrumblesReport + 1
end;
end;
//------------------------------------------------------//
//------------CHECKS IF THERE ARE ENOUGH RUNES----------//
function GotRunes :boolean;
begin
GameTab(7);
case(Spell) of
'Curse': begin
if (GetColor(666, 269) = CursePink) then
begin
Result := True;
Exit;
end;
end;
'Weaken': begin
if (GetColor(570, 258) = CursePink) then
begin
Result := True;
Exit;
end;
end;
'Confuse': begin
if (GetColor(618, 238) = CursePink) then
begin
Result := True;
Exit;
end;
end;
'Crumble Undead': begin
if (GetColor(594, 306) = CursePink) then
begin
Result := True;
Exit;
end;
end;
end;
end;
//--------------------------------------------------//
//-----------THE CURSE PROCEDURE-----------------//
Procedure Curse;
begin
if (not(LoggedIn)) then Exit;
repeat
if (not(LoggedIn)) then Exit;
MarkTime(MonsterCount)
if not(GotRunes) then
begin
Writeln('You do´nt have enough runes...')
Writeln('Logging out :(')
LogOut;
Exit;
end;
repeat //CURSING THINGY STARTS
if not(LoggedIn) then Exit;
GameTab(7);
cast(Spell)
if FindObjCustom(xx, xy,[MonsterName1, MonsterName2, MonsterName3], [MonsterColor1, MonsterColor2, MonsterColor3], 15) then //MONSTER SEARCH STARTS
begin
GetMousePos(xx, xy);
Mouse(xx, xy, 1, 1, false);
Wait(150+random(50));
if not ChooseOption('ttack') then Exit;//we didn't clicked monster
wait(1000+random(1234));
Casted := Casted + 1
TotalCasted := TotalCasted + 1
AntiRandomTime := AntiRandomTime + 1
AntiBanTime := AntiBanTime + 1
FindFastRandoms;
AntiRandomz;
CountSpells;
TotalCastReport := TotalCastReport + 1
end;
until(MonsterFound) or (TimeFromMark(MonsterCount) >= (TimeToLook*1000)) //MONSTER SEARCH ENDS
if TimeFromMark(MonsterCount) >= TimeToLook*1000 then
begin
Writeln('Didn´t find any monsters! Did you set the colors right?')
Writeln('Logging out :(')
LogOut;
Exit;
end;
if not(LoggedIn) then Exit;
FindFastRandoms;
AntiRandomz;
AntiBanz;
case(random(20)) of
0: begin
GetOurMageLevel; // Moved Proggy inside GetLevel and made this happen less often..Going to be changed later
Proggy;
end;
end;
until(Casted >= Players[CurrentPlayer].Integers[0]); //CURSING THINGY ENDS
end;
//--------------------------------------------//
//---------CHECK FOR ACTIVE PLAYERS------------//
{
returns nr of active players
if you use this then you can use it in a different way in your mainloop
and delete your current "procedure ActiveLeft;".
}
function ActivePlayersLeft: integer;
var
i, c: integer;
begin
for i := 0 To HowManyPlayers - 1 do//we look to every player
begin
if (Players[i].active = True) then Inc(c);//if player is active, then we increase the var by 1
end;
result:= c;
end;
//-------------------------------------------//
//--------PLAYER CHANGING----------------//
procedure ChangePlayer;
begin
GetOurMageLevel;
Logout;
Writeln('Taking a short antiban break')
Wait((TimeToWait*1000)+(random(10)*1000))
if (ActivePlayersLeft = 0) then
begin
Writeln('No more active players left, terminating script.');
TerminateScript;
Exit;
end;
NextPlayer(True);
Wait(3000+random(1234))
MakeCompass(Compass)
LowestAngle;
end;
//---------------------------------------------//
//-------------SETTING IT UP-------------//
procedure SetUp;
begin
ClearDebug;
MySignature;
ScriptID := '468';
SRLid:= MySRLId;
SRLpassword:= MySRLPassword;
MouseSpeed := SpeedOfMouse;
DeclarePlayers;
Wait(1000);
ActivateClient;
Wait(5000);
LoginPlayer;
Wait(1000+random(3000));
case(CameraAngle) of
'Up': HighestAngle;
'Down': LowestAngle;
end;
MakeCompass(Compass)
end;
//----------------------------------------//
//-------------MAIN LOOP-----------//
begin
SetUpSrl;
SetUp;
repeat
Casted := 0
GetOurMageLevel;
Curse;
ChangePlayer;
Until(ActivePLayersLeft = 0)
end.
//----------------------------------//