SRL Archive - Outdated / Broken

[B2C]SpoonDemon by Travis


TravisV10

2007-08-31 18:48:53


I may start a tutorial island runner for this script! (of course, I will recommend you level up by yourself)
If anyone has snippets, or EXTREME snippets (some parts of the runner its self to get me started)… those would be appreciated!




Private Version


just updated!


Private Version: you may run as many players as you feel like!



{
[-]--------------------------------------------------------------------------[+]
[-]--------------------------------------------------------------------------[+]
[-] SpoonDemon V1.0 Private [+]
[-] by Born2Code AKA Travis [+]
[-] [+]
[-]--------------------------------------------------------------------------[+]
[-] Description/Startup Info [+]
[-]--------------------------------------------------------------------------[+]
[-] SpoonDemon is a script designed to level up your rs characters [+]
[-]from any wc level and change trees as your level goes up! SpoonDemon V0.1 [+]
[-]is basically RSDemon, but better. SD features an AutoResponder, SRL Random[+]
[-]solver, AntiBan, Ent Finder, All Tree Types, awesome walking, awesome [+]
[-]banking and tons more! [+]
[-] [+]
[-]~Startup Info [+]
[-] -Setup Constants and Players [+]
[-] -Position players at Draynor Bank [+]
[-] -Target RS Window [+]
[-] -32 bit low-detail settings [+]
[-] -Press play and enjoy SpoonDemon! [+]
[-] [+]
[-]--------------------------------------------------------------------------[+]
[-] Features [+]
[-]--------------------------------------------------------------------------[+]
[-]~Auto Responder! [+]
[-]~Ent Finder! [+]
[-]~Normal, Willow, YEW, and Oak chopper and banker! [+]
[-]~Easy proggie reporter and player report! [+]
[-]~Simple Setup! [+]
[-] [+]
[-]--------------------------------------------------------------------------[+]
[-] Coming Updates! [+]
[-]--------------------------------------------------------------------------[+]
[-]~Better Ent Finder! [+]
[-]~New axe getter (wc guide) [+]
[-] [+]
[-]--------------------------------------------------------------------------[+]
[-] Versions [+]
[-]--------------------------------------------------------------------------[+]
[-]~V1.0 First Full Release! - [+]
[-] The first non-beta release of script! [+]
[-] [+]
[-]--------------------------------------------------------------------------[+]
[-] Credits [+]
[-]--------------------------------------------------------------------------[+]
[-]~CharmZ Auto Responder Core Procedures [+]
[-]~Fourscape Oak Finding Procedures [+]
[-] [+]
[-]--------------------------------------------------------------------------[+]
[-]--------------------------------------------------------------------------[+]
}




Enjoy and post a proggie! :garfield:

EDIT: To everyone who has used my script before, this is the first REAL release. This release has Yew Chopping!

Smartzkid

2007-08-31 18:58:27

I'll look through it; one complaint: you really should fix that responder, copy the current chat message to a string, then check that against your 'triggers', don't continually get the current chat message; this will increase your efficiency exponentially.

Tails111

2007-08-31 19:20:14

Will try it out.. are you going to release the yews for free scripts also?

TravisV10

2007-08-31 19:49:50

@smartz - can you fix it for me? I have tried and am too confuzed! (please dont ask)

@Tails - Yes, the only restriction to non mems is multiplayer, but maybe I should restrict some locations. I am going to be adding optional locations

Tails111

2007-08-31 20:29:49

I think you should restrict total time the script can run, and locations…

Like MarkTime and after MarkTime = … then terminate script… Maybe like a 2 hour total run, but hide it so leechers can't take it out.

But Multiplayer is essential to SRL so I don't think that should be restricted…

I have a multi-cutter script for lumbridge (private.. not releasing) and I am wondering, how did you do the Tree walk thing on the minimap. I have tried to use a bitmap and AutoColorThis and all that but it wasn't finding it until I set the tolerance to 200 when it just found any random pixel that was slightly green.

Smartzkid

2007-08-31 20:36:12

function InStr(SubStr, Str): boolean;
begin
result := false; //Not needed here, cut it out of your release code, but
//it's good practice to set your 'default' result, because
//for some types, SCAR's 'default' result isn't 0/''/null
if(pos(SubStr, Str) <> 0)then
result := true;
end;

procedure AutoRespond;
var
Responce, ChatStr, Level: String;
begin
ChatStr := GetNewChatMsg;
if(InStr(Players[CurrentPlayer].Name, ChatStr))then
begin
case Random(10 + 1) of //random(10 + 1), not random(10) + 1
0: Responce := 'wat';
1: Responce := 'what';
2: Responce := 'yeah';
{...}
end;
end;

if(InStr('wc', ChatStr) //notice one parenthesis missing here
or (InStr('woodcutting', ChatStr))
or (InStr('wcing', ChatStr))
or (InStr('cutting', ChatStr))) //and one extra here; that will combine the last four together, so it will only respond if it finds
and (InStr('lvl', ChatStr) //one of the above strings and one of the below strings. if this parenthesis wasn't here, it would
or (InStr('level', ChatStr)) //respond to any of the above and any of the below. the and would only join 'cutting' and 'lvl'
or (InStr('lvls', ChatStr)) //this
or (InStr('lvlz', ChatStr)) //and this aren't really needed, 'lvl' will catch both 'lvls' and 'lvlz'.
or (InStr('stats', ChatStr))
or (InStr('levels', ChatStr)))then
begin
Level := IntToStr(GetSkillLevel('woodcutting'));
case Random(7) of
1 : Responce:= ('I''m level ' + Level + ' over here!');
2 : Responce:= ('Only ' + Level + '... XD');
3 : Responce:= ('My lvl is ' + Level);
else
Responce := Level;
end;
end;

if(not(Responce = ''))then
begin
Inc(AutoRespondCount);
TypeSend(Responce);
end;
end;

TravisV10

2007-08-31 20:43:24

@Smartz - TYSM! (talked to u on msn)

@Tails - Just read some tuts. JAD told me how to do this in his… srl member tut? idk. Anyway, Tuts will help you out.

Tim0suprem0

2007-08-31 22:25:56

Better than RSdemon…? Looks interesting, I'll check it out and post a proggy :)

TravisV10

2007-08-31 23:19:57

From: tim0suprem0
Better than RSdemon…? Looks interesting, I'll check it out and post a proggy :)


Its better if it never gets lost. I guarantee within 1-2 months, this script will be flawless. I just need some snippets.

Bobarkinator

2007-09-01 00:45:15

I suggest using Nielsie's chat responder now that you're a member. Hopefully I will try and get a proggy.

Miitchyy

2007-09-01 05:37:01

You left your pass in ver 1.5, I was first view =D

Changed n Pming ya now.

Remarkable looking script, Haven't read it yet, Sounds good though.

EDIT:
Read the script, Looks pretty good, You attempted one of the longest deathwalks I've ever seen, Nice job :D
YOU BARELY EVER FREE YOUR BITMAPS!
YOU NEED TO FREE THEM BEFORE YOU RELOAD THEM TOO!
I must try this script later =]
Also it doesn't allow more then 3 players even though this is the private version?
Script size could be drastically reduced and You never implemented the things Smartz said

Harry

2007-09-01 08:07:31

Good idea! =] A suggestion for it is when you get 'Lost' to Lumby tell, just like what RSDemon does.

Tails111

2007-09-01 08:21:08

Also your ent Finder needs to do something other than just wait :P

function AmazingENT: boolean;
begin
if FindColorTolerance(x, y, 55769, 85, 15, 115, 15, 20) then
begin
Result := True;
Writeln('ENT Found. Waiting it out!');
Ents := Ents + 1;
Wait(10500 + random(3500));
end;
end;
If it finds the Ent it will just wait, generally when the ent is for you, you don't stop chopping. But if you continue to chop this will just wait the 10-13 seconds, most likely breaking your axe, have it run south or something and run back then wait so you stop chopping at the Ent.

the scar noob

2007-09-01 08:44:29

Seems nice script, thx for s haring, maybe other SRL Member can work on it, it has great potential, so we can have a nice script SRL only?
From: Tails111
Also your ent Finder needs to do something other than just wait :P

function AmazingENT: boolean;
begin
if FindColorTolerance(x, y, 55769, 85, 15, 115, 15, 20) then
begin
Result := True;
Writeln('ENT Found. Waiting it out!');
Ents := Ents + 1;
Wait(10500 + random(3500));
end;
end;
If it finds the Ent it will just wait, generally when the ent is for you, you don't stop chopping. But if you continue to chop this will just wait the 10-13 seconds, most likely breaking your axe, have it run south or something and run back then wait so you stop chopping at the Ent.


Agreed!
Mouse( MCx, MCy, 2, 2) should solve it Or MouseFindFlag or so ;):spot:

TravisV10

2007-09-01 09:13:04

@Bob - will do ty!

@Kevin - TYSM! I feel very unprofessional and stupid now

@hy - Yeah, I am working on if you axe is lost, its gets a new one from the tutor!

@Tails - It was just a temporary one. I will be finding a better one over this long weekend

@scar noob - This would be a great multi project! If people could help me out with some walking procedures, like port sarim or pond willows or more yews, then this script would rock and progress faster!

Tails111

2007-09-01 09:33:43

No reason to go to Pond willows, too many RS Demon or iBot or Chinese People there… But Yes I see how that could be better.

An idea for the ent finder might be after you click the tree, and the screen moves it finds the exact some color around the original coordinates and if it finds that color changed then move, because when an ent comes the tree gets brighter.

TravisV10

2007-09-01 09:39:53

From: Tails111
No reason to go to Pond willows, too many RS Demon or iBot or Chinese People there… But Yes I see how that could be better.

An idea for the ent finder might be after you click the tree, and the screen moves it finds the exact some color around the original coordinates and if it finds that color changed then move, because when an ent comes the tree gets brighter.


Im going to use JuKKa's "wireless" one for a few version and see how well it runs.

TravisV10

2007-09-01 09:49:15

I may start a tutorial island runner for this script! (of course, I will recommend you level up by yourself)
If anyone has snippets, or EXTREME snippets (some parts of the runner its self to get me started)… those would be appreciated!

Tails111

2007-09-01 11:57:43

Well if you are going all the way as to add a tut runner then I recommened just adding a chicken fighter :P

But the script will be huge, and possibly quite laggy, take a lot at one of the other working Tut runners, they have a ton of DTMs and stuff.

But hey go for it.

Smartzkid

2007-09-01 12:07:53

MouseFindFlag(MMCX, MMCY, 1, 1);

For avoident.

TravisV10

2007-09-01 12:12:19

@tails - chicken fighter MUCH later if I can get a tut runner.

@smartz - kk

Harry

2007-09-01 20:47:53

So…. did you get the Tell Home Snipplet yet, or do you want me to MSN it to you?

Harry

2007-09-01 20:58:24

Gah. I was chopping Bank -> Oaks, it clicked on Oak on MM then just sat there, checked scar and say the error :\ I think it is SRL's fault.

SRL Compiled in 156 msec
__________________
| | __
|______ _____| |__|
| |__ _______ __ _____ _________
| | |/__\ \ \ / / |/ ______/
| | / ___ \ \ / /| | \______
| | | | | \ \/ / | |\_____ \
| | | |___| \ / | |______/ /
|_____|__|________/\__\__/ |__|\_______/
SpoonDemon | Version V1.0
Will now SpoonDemonize 0 players…
Found Oak using DTM #2
Matching: 0/9
Ent Avoidment started
[Runtime Error] : divide by Zero in line 80 in script C:\Program Files\SCAR 3.11\includes\SRL/SRL/Core/Mouse.scar

TravisV10

2007-09-01 20:58:40

… Tele Home is in srl

shaunthasheep

2007-09-01 21:01:50

From: born2code
@smartz - can you fix it for me? I have tried and am too confuzed! (please dont ask)

:duh:

Miitchyy

2007-09-01 21:38:23

xP Don't feel unprofessional, I left one of my passes in a script once before, Now I change my account's passes once they reach a certain level.

I'ma read ver 2 now :P

Looks good, Perhaps make it wait a little bit before it gets the tree points so it avoids thinking you have an ent when your moving towards the tree

TravisV10

2007-09-01 21:48:30

Almost finished with alpha tut runner!

RudeBoiAlex

2007-09-02 07:17:59

you got in w00t :p
ill test soon :)

Macrosoft

2007-10-29 16:10:45

ok so a suggestion/snippet

not sure if you already have this in your script but i have my script reset itself with lumb home tele. If it cant do lumb home tele, the player becomes inactive, but then becomes active again when the time needed to cast the spell has past

Function NoneActive: Boolean;
begin
begin
for n:=0 to HowManyPlayers - 1 do
begin
If(Players[n].Active) then
begin
result:=False;
Exit;
end;
end;
n:=n+1;
end;
Result:=True;
end;


Function ReActivatePlayers: Boolean;
begin
NoneActive;
if(NoneActive) then
begin
for CurrentPlayer:=0 to HowManyPlayers - 1 do
begin
if(Players[CurrentPlayer].Booleans[1]) then
begin
If(GetSystemTime - STime[CurrentPlayer]>=LumbMins[CurrentPlayer] * 6000) then
Players[CurrentPlayer].Active:=True;
end;
CurrentPlayer:=CurrentPlayer+1;
end;
end;
If(NoneActive)then
Result:= False
else
begin
Wait(60000);//waits an extra minute because rs doesnt return seconds
Result:= True;
end;
end;

Procedure NextPlayerCycle;
begin
logout;
a:=0;
Stime[CurrentPlayer]:=GetSystemTime;
Players[CurrentPlayer].Active:=False;
repeat
begin
a:=a+1;
If(CurrentPlayer>HowManyPlayers - 1) then
CurrentPlayer:=0
else
CurrentPlayer:=CurrentPlayer + 1;
if(a=HowManyPlayers) then
begin
ReActivatePlayers;
if(ReActivatePlayers) then a:=0
end else
begin
ProgressReport;
TerminateScript;
end;
end;
until(Players[CurrentPlayer].Active);
TarCollected[CurrentPlayer]:=0;
LoginPlayer;
PlayerUsed[CurrentPlayer]:=True;
TimesSwitched:= TimesSwitched + 1;
end;

i also have a procedure that sets the nicks for u

{*******************************************************************************
Procedure SetUserNicks(Active: Boolean);
By: Macrosoft
Description: Will set the nickname for all the players in your script. If Active is set as false,
then if a player's username cannot be used to make a nickname, the player will become not active.
*******************************************************************************}

Procedure SetUserNicks(Active: Boolean);

var
counter: integer;
n, a, x, NameLength: integer;
cName: array of char;
nName: array[0..2] of char;
begin
a:=GetArrayLength(Players);
for n:= 0 to a-1 do
begin
Counter:=2;
x:=0
NameLength:=Length(Players[n].Name);
SetArrayLength(cName, NameLength + 1);
repeat
begin
cName[Counter-1]:=StrGet(Players[n].Name, Counter);
if(cName[Counter-1] = ' ')then
begin
x:=0;
Counter:=Counter+1;
end else
begin
nName[x]:=cName[Counter-1];
x:=x+1;
end;
Counter:=Counter+1;
end;
until(Counter=NameLength + 2) or (x=3);
if(Counter=NameLength + 2)then
begin
writeln('Nickname can not be made from the username: ' + Players[n].Name);
if(Active=False) then
begin
writeln(Players[n].Name + ' is no longer active');
Players[n].Active:=False;
end;
end else
begin
Players[n].Nick:= nName[0] + nName[1] + nName[2];
writeln(Players[n].Name + ' s nickname has been set to: ' + Players[n].Nick);
end;
end;
end;

well thats all i have that might help

cant wait to try it out;)