Results 1 to 11 of 11

Thread: Scripting Help - Auto Fighter

  1. #1
    Join Date
    Jul 2007
    Posts
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Scripting Help - Auto Fighter

    Hello,

    I don't know what's wrong with this script. I use SCAR Divi 3.12 with SRL 4.

    The error is:

    [Runtime Error] : Out Of Range in line 54 in script C:\...

    SCAR Code:
    {.SCRIPT INFO:
    # SCRIPTNAME  = ULTIMATE AUTO FIGHTER
    # AUTHOR      = DAVIDEMON
    # DESCRIPTION = RUNESCAPE AUTO FIGHTER
    # VERSION     = 1.0
    # DATE        =
    # COMMENTS    =
    /SCRIPT INFO}


    PROGRAM AUTOFIGHTER;

    {.INCLUDE SRL/SRL.SCAR}
    {.INCLUDE SRL/SRL/SKILL/FIGHTING.SCAR}

    {- VARIABLES -}

    VAR

    KILLED, KILLED2        : INTEGER;
    CHARACTERSTARTTIME     : INTEGER;
    ANCHOVIE, HERRING      : INTEGER;
    LOBSTER, PIKE, SALMON  : INTEGER;
    SARDINE, SHRIMP        : INTEGER;
    SWORDFISH, TROUT, TUNA : INTEGER;
    FOODTOEAT              : INTEGER;
    X, Y                   : INTEGER;

    {- CONSTANTS -}

    CONST

    COLOR1                 = 858228;
    COLOR2                 = 858759;
    COLOR3                 = 857453;
    MONSTERNAME            = 'CHICKEN';
    KILLMONSTERFOR         = 60;
    EATFOOD                = 'NO';
    EATHP                  = 10;
    RUNHP                  = 5;
    RUNDIRECTION           = 'E';
    MYSRLID                = '';
    MYSRLPASSWORD          = '';

    {- DECLARE PLAYERS -}

    PROCEDURE DECLAREPLAYERS;
    BEGIN
    HOWMANYPLAYERS          :=0;
    NUMBEROFPLAYERS(HOWMANYPLAYERS);
    CURRENTPLAYER           :=0;
    SRLID                   := MYSRLID
    SRLPASSWORD             := MYSRLPASSWORD

    PLAYERS[0].NAME         := '';
    PLAYERS[0].PASS         := '';
    PLAYERS[0].NICK         := '';
    PLAYERS[0].ACTIVE       := TRUE;
    PLAYERS[0].SKILL        := 'STRENGTH';
    PLAYERS[0].STRINGS[0]   := 'LOBSTER'
    PLAYERS[0].INTEGERS[0]  := 0;
    PLAYERS[0].INTEGERS[1]  := 0;

    WRITELN('USING '+ INTTOSTR(HOWMANYPLAYERS) +' PLAYERS');
    END;

    {- RANDOM EVENTS -}

    FUNCTION FINDFASTRANDOMS: BOOLEAN;
    VAR
    I: INTEGER;
    BEGIN
    FOR I:=0 TO 7 DO
    BEGIN
    CASE I OF
    0: IF SOLVECHATRANDOM THEN
    RESULT := TRUE;
    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: BEGIN
    IF NOGAMETAB THEN
    BEGIN
    RESULT := TRUE;
    PLAYERS[CURRENTPLAYER].LOC := 'NO GAMETAB';
    LOGOUT;
    EXIT;
    END;
    END;
    7: RC;
    END;
    WAIT(1);
    END;
    END;

    {- ANTIBAN -}

    PROCEDURE ANTIBAN;
    BEGIN
    IF(NOT(LOGGEDIN))THEN
    EXIT;
    CASE RANDOM(20) OF

    0: PICKUPMOUSE;

    1: PICKUPMOUSE;

    5: PICKUPMOUSE;

    6: CASE RANDOM(4) OF
    0: TYPESEND('COMBAT LVL?');
    1: TYPESEND('STR LVL?');
    2: TYPESEND('ATT LEVEL?');
    3: TYPESEND('DEF LEVEL?');
    END;
    END;
    END;

    {- FIND RANDOMS -}

    FUNCTION FINDRANDOMS: BOOLEAN;
    BEGIN
    IF FINDFASTRANDOMS OR
    FINDNORMALRANDOMS THEN
    BEGIN
    RESULT := TRUE;
    END ELSE
    BEGIN
    RESULT := FALSE;
    END;
    FINDTALK
    ANTIBAN;
    SRLRANDOMSREPORT;
    END;

    PROCEDURE LOADFOODDTM;
    BEGIN
    ANCHOVIE := DTMFROMSTRING('78DA6314646060106540018A2A560CFF81342' +
    '310FF07024625204388010D302291409A1548081050C30D24E408' +
    'A89102123244A8E1C2AD86058801723A0682'); {ANCHOVIE}

    HERRING := DTMFROMSTRING('78DA6314606060106740019D79990CFF81342' +
    '310FF07024679208393010D302291405A0948881050C30724E408' +
    'A8610312D204D4F0020921FC6A002366075E'); {HERRING}

    LOBSTER := DTMFROMSTRING('78DA631465606000612470268D81E13F90660' +
    '4E2FF40C0A80C647032A001462412484B020936026AA481840201' +
    '350240429A801A76202145400D379010C0AF06000AEF0759'); {LOBSTER}

    PIKE := DTMFROMSTRING('78DA63146660601065400131B5E10CFF81342' +
    '310FF0702463920839D010D302291405A1148F0115003B2479680' +
    '1A5E20214F400D2B909023A006E41621026A407EE7C6AF0600156' +
    'B077E'); {PIKE}

    SALMON := DTMFROMSTRING('78DA631464606010674001678C1918FE03694' +
    '620FE0F048CF2400607031A60442281B41290E027A0461448C813' +
    '50C307241408A86123C21C905B8409A81101123CF8D50000EAB20' +
    '75B'); {SALMON}

    SARDINE := DTMFROMSTRING('78DA6314646060106340019D79990CFF81342' +
    '310FF070246903C0F031A60442281B42C901024A0460848481250' +
    'C30D24A408A8E10712C2F8D500001BEE0756'); {SARDINE}

    SHRIMP := DTMFROMSTRING('78DA63146660601061400133D31818FE03694' +
    '620FE0F048CD2400617031A60442281B412901026A0460248C813' +
    '50C34B841A564C3763A801B9971BBF1A00DE490721'); {SHRIMP}

    SWORDFISH := DTMFROMSTRING('78DA63146160601060400133D36632FC07D28' +
    'C40FC1F081859800C450634C0884402693E20C147408D30906023' +
    'A0461A48F01050A304244408A89101125204D408010951FC6A006' +
    '8A107E3'); {SWORDFISH}

    TROUT := DTMFROMSTRING('78DA63146260601067400179F1D10CFF81342' +
    '310FF07024679208383010D302291405A0948F01350230A24E409' +
    'A86123428D0890E0C1AF0600FB85072F'); {TROUT}

    TUNA := DTMFROMSTRING('78DA6314616060906240019D79990CFF81342' +
    '310FF0702467920838B010D302291405A1948881350230A241408' +
    'A8610312F204D48810E11E4E2021865F0D0041A40798'); {TUNA}
    END;

    {- AUTO RETALIATE -}

    PROCEDURE AUTORETALIATE(RETALIATE:BOOLEAN);
    BEGIN
    GAMETAB(1);
    IF RETALIATE THEN
    BEGIN
    IF NOT FINDCOLOR(X, Y, 1777020, 624, 385, 719, 396) THEN
    BEGIN
    MOUSE(666, 381, 8, 8, TRUE);
    END;
    END;
    IF NOT RETALIATE THEN
    BEGIN
    IF FINDCOLOR(X, Y, 1777020, 624, 385, 719, 396) THEN
    BEGIN
    MOUSE(666, 381, 8, 8, TRUE);
    END;
    END;
    END;

    {- CHOOSE SKILL -}

    PROCEDURE CHOOSESKILL(SKILL:STRING); //PURE IDEA FROM TARA
    BEGIN
    WRITELN('CHOOSING SKILL TO TRAIN...');
    CASE SKILL OF
    'PURE': BEGIN
    IF PLAYERS[CURRENTPLAYER].LEVEL[2]<15 THEN SKILL:='STRENGTH' ELSE
    IF PLAYERS[CURRENTPLAYER].LEVEL[1]<30 THEN SKILL:='ATTACK' ELSE
    IF PLAYERS[CURRENTPLAYER].LEVEL[2]<25 THEN SKILL:='STRENGTH' ELSE
    IF PLAYERS[CURRENTPLAYER].LEVEL[1]<40 THEN SKILL:='ATTACK' ELSE
    SKILL:='STRENGTH';
    END;
    'EVEN': BEGIN
    IF PLAYERS[CURRENTPLAYER].LEVEL[1]>PLAYERS[CURRENTPLAYER].LEVEL[2] THEN
    BEGIN
    IF PLAYERS[CURRENTPLAYER].LEVEL[2]>PLAYERS[CURRENTPLAYER].LEVEL[3] THEN
    SKILL:='DEFENSE' ELSE SKILL:='STRENGTH';
    END ELSE
    BEGIN
    IF PLAYERS[CURRENTPLAYER].LEVEL[1]>PLAYERS[CURRENTPLAYER].LEVEL[3] THEN
    SKILL:='DEFENSE' ELSE SKILL:='ATTACK';
    END;
    END;
    END;
    CASE SKILL OF
    'ATTACK':    SETFIGHTMODE(1);
    'STRENGTH':  SETFIGHTMODE(2);
    'DEFENSE':   SETFIGHTMODE(4);
    END;
    END;

    PROCEDURE CHOOSESKILLS;
    BEGIN
    IF (NOT(LOGGEDIN)) THEN EXIT;
    GAMETAB(1);
    BEGIN
    CHOOSESKILL(LOWERCASE(PLAYERS[CURRENTPLAYER].SKILL));
    END;
    IF (FINDRANDOMS = TRUE) THEN
    BEGIN
    NEXTPLAYER(TRUE);
    END;
    AUTORETALIATE(TRUE);
    SETCHAT('OFF', 1);
    SETCHAT('OFF', 2);
    SETCHAT('OFF', 3);
    SETCHAT('OFF', 4);
    SETRUN(TRUE);
    END;

    {- HIGHEST ANGLE -}

    PROCEDURE HSHIGHESTANGLE;
    BEGIN
    KEYDOWN(38);
    WAIT(3000 + RANDOM(100));
    KEYUP(38);
    END;

    PROCEDURE STATSDEPLAYER;

    VAR ACTIVE: STRING;
    VAR I: INTEGER;
    BEGIN
    IF PLAYERS[CURRENTPLAYER].ACTIVE=TRUE THEN
    ACTIVE:='IN USE'
    ELSE
    ACTIVE:='NOT IN USE';
    ADDTOREPORT('  PLAYER NAME         : '+ PLAYERS[CURRENTPLAYER].NAME);
    ADDTOREPORT('  PLAYER NUMBER       : '+INTTOSTR(CURRENTPLAYER));
    ADDTOREPORT('  ACTIVE       : '+ ACTIVE);
    IF ( PLAYERS[CURRENTPLAYER].WORKED > 0 ) THEN
    ADDTOREPORT('  WORKED       : '+ INTTOSTR(PLAYERS[CURRENTPLAYER].WORKED) +' MIN.');

    GETALLLEVELS;

    FOR I := 0 TO HOWMANYPLAYERS - 1 DO
    BEGIN
    IF PLAYERS[I].ACTIVE = TRUE THEN ACTIVE:='T' ELSE ACTIVE:='F';
    ADDTOREPORT( ' ' + INTTOSTR (I) + ' : NICK : ' + PLAYERS[I].NICK + ' = ' + ACTIVE
    +'. - LVL : '
    +' '+INTTOSTR(PLAYERS[I].LEVEL[1])+
    +' '+INTTOSTR(PLAYERS[I].LEVEL[2])+
    +' '+INTTOSTR(PLAYERS[I].LEVEL[3])+
    +' '+INTTOSTR(PLAYERS[I].LEVEL[8])+'. '
    +'W : '+INTTOSTR(PLAYERS[I].WORKED)+' MIN. '
    +'K : '+ INTTOSTR(PLAYERS[I].INTEGERS[0]) +' '+ MONSTERNAME +'S. '
    +'ATE : '+ INTTOSTR(PLAYERS[I].INTEGERS[1]) +' '+ PLAYERS[I].STRINGS[0] +'. ');
    END
    END;

    PROCEDURE REPORTDEPROGRESS;

    BEGIN
    CLEARREPORT;
    SRLRANDOMSREPORT;
    ADDTOREPORT(' ');
    ADDTOREPORT('  WORKED FOR '+ TIMERUNNING);
    ADDTOREPORT('  KILLED TOTAL OF '+INTTOSTR(KILLED2)+' '+ MONSTERNAME +'S.');
    STATSDEPLAYER;
    END;

    {- FINDING THE MONSTER -}

    PROCEDURE WHEREISTHEMONSTER;
    VAR
    I: INTEGER;
    DIR: STRING;
    BEGIN
    IF (NOT(INFIGHT)) THEN
    BEGIN
    CASE RANDOM(4) + 1 OF
    1: DIR := 'NSWE';
    2: DIR := 'WENS';
    3: DIR := 'SEWN';
    4: DIR := 'EWNS';
    END;
    FOR I := 1 TO 4 DO
    MAKECOMPASS(STRGET(DIR, I));
    WRITELN('ROTATING COMPASS, LOOKING FOR MONSTER...');
    END;
    END;

    {- FOOD EATING -}

    PROCEDURE FOODEATING;
    BEGIN
    CASE LOWERCASE(PLAYERS[CURRENTPLAYER].STRINGS[0]) OF
    'ANCHOVIE': FOODTOEAT :=  ANCHOVIE;
    'HERRING': FOODTOEAT :=  HERRING;
    'LOBSTER': FOODTOEAT :=  LOBSTER;
    'PIKE': FOODTOEAT :=  PIKE;
    'SALMON': FOODTOEAT :=  SALMON;
    'SARDINE': FOODTOEAT :=  SARDINE;
    'SHRIMP': FOODTOEAT :=  SHRIMP;
    'SWORDFISH': FOODTOEAT :=  SWORDFISH;
    'TROUT': FOODTOEAT :=  TROUT;
    'TUNA': FOODTOEAT :=  TUNA;
    END;
    IF (NOT(LOGGEDIN)) THEN EXIT;

    IF (FINDDTM(FOODTOEAT, X, Y, 548, 205, 734, 461)) THEN
    BEGIN
    MMOUSE(X, Y, 0, 0);
    GETMOUSEPOS(X, Y);
    IF FINDCOLORTOLERANCE(X, Y, 3703002, 42, 8, 120, 21, 70) THEN
    BEGIN
    GETMOUSEPOS(X, Y);
    MOUSE(X, Y, 0, 0, FALSE);
    CHOOSEOPTION('AT');
    END ELSE
    EXIT;
    END;
    END;

    {- HP CHECK -}

    PROCEDURE HPCHECK;
    VAR
    TIMETOEAT: INTEGER;

    BEGIN
    MARKTIME(TIMETOEAT);
    BEGIN
    IF (EATFOOD = 'YES') THEN
    BEGIN
    GETHP;
    IF (GETHP <= EATHP) THEN
    GAMETAB(4);
    BEGIN
    FOODEATING;
    BEGIN
    PLAYERS[CURRENTPLAYER].INTEGERS[1] := PLAYERS[CURRENTPLAYER].INTEGERS[1] + 1;
    END;
    BEGIN
    IF (GETHP < RUNHP) THEN
    BEGIN
    STATUS('RUNNING BECAUSE LOW HP');
    RUNAWAYDIRECTION(RUNDIRECTION);
    BEGIN
    NEXTPLAYER(FALSE);
    END;
    END;
    FINDRANDOMS;
    END;
    END;
    END;
    END;
    END;

    {- FIGHTING -}

    FUNCTION FIGHTING(NAME: STRING; COLOR, MAXTOL, MAXTIME: INTEGER): BOOLEAN;
    VAR
    BOX: TBOXARRAY;
    TOLERANCE, TIME: INTEGER;
    BEGIN
    RESULT := FALSE;
    MARKTIME(TIME);
    IF(FINDCOLORSKIPBOXARRAYTOLERANCE(X, Y, COLOR, MSX1, MSY1, MSX2, MSY2, TOLERANCE, BOX)) THEN
    BEGIN
    MMOUSE(X, Y, 0, 0);
    WAIT(50 + RANDOM(250));
    IF(ISUPTEXT(NAME))THEN
    BEGIN
    RESULT := TRUE;
    GETMOUSEPOS(X, Y);
    CASE RANDOM(2) OF
    0: BEGIN
    MOUSE(X, Y, 0, 0, FALSE);
    CHOOSEOPTION('TTACK');
    EXIT;
    END;

    1: BEGIN
    MOUSE(X, Y, 0, 0, TRUE);
    EXIT;
    END;
    END;
    END ELSE
    BEGIN
    SETLENGTH(BOX, LENGTH(BOX) + 1);
    BOX[LENGTH(BOX) - 1].X1 := X - 5;
    BOX[LENGTH(BOX) - 1].Y1 := Y - 5;
    BOX[LENGTH(BOX) - 1].X2 := X + 5;
    BOX[LENGTH(BOX) - 1].Y2 := Y + 5;
    EXIT;
    END;
    END ELSE
    TOLERANCE := TOLERANCE + 1;
    WAIT(50);
    END;

    {- ATTACK! -}

    PROCEDURE ATTACK;
    VAR
    MONSTERCOLORS: ARRAY[0..2] OF INTEGER;
    I: INTEGER;
    TIMETOKILL: INTEGER;

    BEGIN
    IF (NOT (LOGGEDIN)) THEN
    EXIT;
    MONSTERCOLORS[0] := COLOR1;
    MONSTERCOLORS[1] := COLOR2;
    MONSTERCOLORS[2] := COLOR3;

    MARKTIME(TIMETOKILL);
    KILLED := 0;
    REPEAT
    IF (INFIGHT) THEN
    EXIT;
    FOR I := 0 TO 2 DO
    BEGIN
    IF(FIGHTING(MONSTERNAME, MONSTERCOLORS[I], 5, 2000))THEN
    BEGIN
    WAIT(1000 + RANDOM(500));
    OUTFIGHT;
    KILLED := KILLED + 1;
    KILLED2 := KILLED2 + 1;
    REPORTVARS[0] := REPORTVARS[0] + 1;
    PLAYERS[CURRENTPLAYER].INTEGERS[0] := PLAYERS[CURRENTPLAYER].INTEGERS[0] + 1;
    END;
    END;
    WAIT(10);
    IF (FINDRANDOMS = TRUE) THEN
    BEGIN
    NEXTPLAYER(TRUE);
    END;
    IF (EATFOOD = 'YES') THEN
    BEGIN
    HPCHECK;
    END;
    UNTIL (((GETSYSTEMTIME-CHARACTERSTARTTIME)/1000)>(KILLMONSTERFOR * 60));
    END;

    {- SETUP -}

    PROCEDURE SETUP;
    BEGIN
    SETUPSRL;
    SCRIPTID := '269';
    WAIT(100);
    LOADFOODDTM;
    DECLAREPLAYERS;
    IF(NOT(LOGGEDIN))THEN LOGINPLAYER;
    END;

    {- SETUP 2 -}

    PROCEDURE SETUP2;
    BEGIN
    CHOOSESKILLS;
    HIGHESTANGLE;
    END;

    {- MAIN LOOP -}

    BEGIN
    SETUP;
    KILLED2 := 0;
    REPEAT
    CHARACTERSTARTTIME:=GETSYSTEMTIME;
    IF(NOT(LOGGEDIN))THEN LOGINPLAYER;
    SETUP2;
    ATTACK;
    WHEREISTHEMONSTER;
    IF (((GETSYSTEMTIME-CHARACTERSTARTTIME)/1000)>(KILLMONSTERFOR * 60)) THEN
    BEGIN
    WAIT(5000 + RANDOM(1000));
    NEXTPLAYER(TRUE);
    END;
    REPORTDEPROGRESS;
    UNTIL(FALSE);
    END.

    If you can help me I would appreciate it, and this is NOT my first script!

    And credits to HyperSecret as I used his DTM food thingies.

  2. #2
    Join Date
    Sep 2007
    Posts
    1
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Spamming is not an acceptable way to raise post count

    uhm i don't really know i just downloaded scar

    screw jagex they are so mean

    it's called freedom of expression

    they think you sold the 1 mill so that goes against real world trading

    kool what is a virtual machine

    did u get banned because dude are you freakin stupid.....wat ur mama dropped u in the head as a baby or what. DuH!!!!!
    Sticky: Attention Spammers and Leechers...
    RAM

  3. #3
    Join Date
    Jul 2007
    Posts
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Ok...? Waiting for peeps to help me... Lol

  4. #4
    Join Date
    Jan 2007
    Location
    USA
    Posts
    1,782
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    How Many players has to be at least 1.

    Join the fastest growing merchanting clan on the the net!

  5. #5
    Join Date
    Jul 2007
    Posts
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Ok thanks... I didn't realise!! TY TY TY

  6. #6
    Join Date
    May 2007
    Location
    baltimore, md
    Posts
    836
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    Please turn off your caps lock key when you script it makes it extremely annoying to read.

  7. #7
    Join Date
    Jul 2007
    Posts
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    oh soz... i like caps!

  8. #8
    Join Date
    Jul 2007
    Posts
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    It doesn't work for some reason... can someone fix it for me, i keeps clicking on the inventory tab. this is a similar problem i had with hypersecrets secret autofighter.

  9. #9
    Join Date
    Jan 2007
    Location
    USA
    Posts
    1,782
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by DaviDemon View Post
    It doesn't work for some reason... can someone fix it for me, i keeps clicking on the inventory tab. this is a similar problem i had with hypersecrets secret autofighter.
    FindNormalRandoms is probably your problem. It checks inventory.

    Join the fastest growing merchanting clan on the the net!

  10. #10
    Join Date
    Sep 2007
    Location
    Michigan
    Posts
    3,862
    Mentioned
    2 Post(s)
    Quoted
    1 Post(s)

    Default

    SCAR Code:
    Players[0].name         := '';
    Players[0].pass         := '';
    Players[0].nick         := '';

    Make sure u fill those in, especially nick
    check http://www.villavu.com/forum/showthr...?t=5906?t=6804
    It has a list of all the tuts

    And that script you posted is HyperSecrets, I'm very familiar with it.

  11. #11
    Join Date
    Jul 2007
    Posts
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    That's because I used it, I gave credits didnt i? how do I change find normal randoms?

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •