Page 1 of 3 123 LastLast
Results 1 to 25 of 68

Thread: ~ EmPick ~

  1. #1
    Join Date
    Mar 2009
    Location
    Norway
    Posts
    493
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default ~ EmPick ~

    emPick!

    emPick is a pickpocking that is made to easily support all NPCs and banks in the whole world of runescape. While not all are added yet, I will add NPCs and locations on request. This script is depending on the NPC part of reflection to be functional as well as inventory part.

    Current version: v1.31 at 02.21.2011
    Status: Should be working, not maintained

    (04.09.2011) I believe the script is now broken, and so I am hereby allowing anyone to do whatever they want to with this script. That means should you want to post a fixed/improved version of this current script, you are very welcome to do so! :-)


    Current features:
    • Pickpocks Master Farmers and other NPCs at various locations. Check line 6 + in script to find list
    • Eats any food! (Keep food in bank slot 1)
    • Banks!
    • Anti-random
    • Anti-ban
    • Detailed progress reports
    • Breaks


    IF YOU WANT TO ADD YOUR OWN NPCS AND LOCATIONS, FOLLOW THESE STEPS:
    Step 1: Make up a name for the location, say 'AMF' for Ardougne Master Farmer.
    Step 2: Set Loc := 'AMF'
    Step 3: Make the path starting from bank and ending at NPC location.
    Step 4: Add the path to LoadPath. Just add
    Simba Code:
    'AMF':
    begin
            SetLength(Result,<TILEPATHLENGTH>);
            Result := [<TILEPATHHERE>];
            end;
    Step 5: Go to function GetTarget at line 514 and add
    Simba Code:
    'AMF':
          Result := eGetNPC('Master Farmer');
    do the case statement.
    Step 6: Go to function BankOpen at line 638 and add
    Simba Code:
    'AMF': result := OpenBank('nab',true,true);
    to the case.

    Known bugs:
    • Clicking may sometimes be too slow, so that the NPC moves away. This may result in talking to a vendor or attempting to steal from a market stall, causing market guard to attack. However, combat detection should prevent death.


    Proggies:
    Progress Report:
    -~EmPick Proggie report v1.30-~-~-
    Script runtime: 7 hour(s), 40 minute(s), 56 second(s).
    Next break: 51 minute(s), 9 second(s).
    Total picks: 3316
    Total stuns: 648
    Pick/Stun ratio: 5.11728395061728
    Total XP Gained: 148354
    Total XP/Hour: 19310.7060019401
    Total GP Stolen: 0
    Total seeds stolen: 5762
    Total food eaten: 553 Trout
    -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-

    enoyhs:
    Progress Report:
    -~EmPick Proggie report v1.30-~-~-
    Script runtime: 4 hour(s), 5 minute(s), 6 second(s).
    Next break: 33 second(s).
    Total picks: 1757
    Total stuns: 535
    Pick/Stun ratio: 3.28411214953271
    Total XP Gained: 77798
    Total XP/Hour: 19044.0741440604
    Total GP Stolen: 0
    Total seeds stolen: 3095
    Total food eaten: 371 Trout
    -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
    Last edited by Emaziz; 09-04-2011 at 06:18 PM.

  2. #2
    Join Date
    Dec 2010
    Posts
    808
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Some of your logic is intriguing
    I fixed some of your standards, I saw some little things, I am going to check with someone else before I post full

    Simba Code:
    { Name: EmPickpock
    { Author: Emaziz
    { Version: 0.70
    { How-to: Fill in DeclarePlayers with username and password, nothing else is
    {         required at the moment as it detects all food and health and stuff
    {         automatically. :)
    {]]-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-[[}

    {.include SRL\SRL\misc\SMART.SCAR}
    {.include SRL\SRL.scar}
    {.include reflection\reflection.simba}
    {}
    var
      Level, XP: integer;
      NPCTarget: TNPC;
      FoodName: string;
      TargetHitDamage: integer;
      GoldStolen, PrevGold, StartGold: integer;
      ExpGained: integer;
      StartXP: integer;


    const
    World = 68;
    Signed = True;
    Members = True; // Duh!

    procedure DeclarePlayers;
    begin
      HowManyPlayers := 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;
      with Players[0] do
        begin
          Name :='';
          Pass :='';
          Nick :='';
          Level[SKILL_HITPOINTS] := 10;
          Active := True;
          Strings[0] := 'Pike';
          Integers[0] := 0; // Wanted EXP, 0 is continue 'til stopped.
          Integers[1] := 70; // Amount of lifepoints your food heals
          Booleans[1] := True; // Wanna take breaks?
          Integers[2] := 50; // How many minutes between each break. +- 5 minutes.
          Integers[3] := 10; // How many minutes to break for. +- 5 minutes.
          Loc := 'DMF'; // Location as to where to pickpock, check valid locations at line 22+
        end;
    end;

    // DO NOT CHANGE THE FOLLOWING CONSTS \\
    const
      XP_Man = 8;
      XP_Farmer = 14.5;
      XP_Warrior = 26;
      XP_Guard = 46.8;
      XP_MasterFarmer = 43;
      DMG_Man = 10;
      DMG_Farmer = 0;
      DMG_Warrior = 0;
      DMG_Guard = 30;
      DMG_MasterFarmer = 30;

    //\\\\\\\\\\\\\\\\\\///////////////////\\

    function LoadPath(Path:String;Bank:Boolean): TTileArray;
    begin
      if (not Bank) then
        begin
          case Path of
          'DMF':
            begin
              SetLength(Result, 2);
              Result := [Tile(3092, 3243), Tile(3080, 3250)];
            end;
          'VPG':
            begin
              SetLength(Result, 8);
              Result := [
                Tile(3167, 3489), Tile(3177, 3489), Tile(3185, 3489),
                Tile(3195, 3487), Tile(3196, 3480), Tile(3197, 3471),
                Tile(3200, 3459), Tile(3212, 3462)];
            end;
          end;
        end;
      if (Bank) then
        begin
          case Path of
          'DMF':
            begin
              SetLength(Result, 2);
              Result := [Tile(3080, 3250), Tile(3092, 3243)];
            end;
          'VPG':
            begin
              SetLength(Result, 9);
              Result := [
                Tile(3212, 3463), Tile(3212, 3457), Tile(3202, 3457),
                Tile(3197, 3465), Tile(3195, 3474), Tile(3191, 3482),
                Tile(3188, 3487), Tile(3179, 3487), Tile(3172, 3488)];
            end;
          end;
        end;
      writeln('Loaded path');
    end;

    procedure Terminate;
    begin
      writeln('Terminating script...');
      TerminateScript;
    end;

    procedure Walk(Bank : boolean);
    begin
      R_MakeCompass('N');
        case Bank of
          True: // To bank
            WalkPath(LoadPath(Players[CurrentPlayer].Loc,True));
          False: // To target NPCs
            begin
              WalkPath(LoadPath(Players[CurrentPlayer].Loc,False));
            end;
        end;
      writeln('Done walking');
    end;

    function IsFood(Item: TInvItem):boolean;
    begin
      Result := False;
      if Item.Name = Players[0].Strings[0] then
        Result := True;
    end;

    function GetTargetHitDMG: integer;
    begin
      Result := -1;
        case NPCTarget.Name of
          'Guard': Result := DMG_Guard;
          'Master Farmer': Result := DMG_MasterFarmer;
        end;
      if Result = -1 then
        writeln('Returned -1 as HitDMG, why???');
    end;

    function GetTargetXP: Extended;
    begin
      Result := -1;
      case NPCTarget.Name of
        'Guard': Result := XP_Guard;
        'Master Farmer': Result := XP_MasterFarmer;
      end;
      if Result = -1 then
        writeln('Returned -1 as XP...');
    end;

    function PickFailed: boolean;
    begin
      Result := True;
      if (PrevGold <> GoldStolen) then
        begin
          Result := False;
          PrevGold := GoldStolen;
        end;

    end;

    //Procedure Eat, eats first food available in inventory
    procedure Eat;
    var
    i: integer;
    begin
    for i := 1 to 28 do
      begin
      if (IsFood(GetInvItemAt(i))) then
        begin
          R_ClickItem(i,True,'');
          wait(1000);
          i := 29;
        end;
      end;
    end;

    {*******************************************************************************
    function InChatMulti(Text: TStringArray; var OutPut: string): Boolean;
    By: IceFire908
    Description: Grabs Last Chat Line and performs checks on occurence of text
    *******************************************************************************}

    function InChatMulti(Text: TStringArray; var OutPut: string): Boolean;
    var
      s: string;
      I: Integer;
    begin
      S := GetBlackChatMessage;
      for I := High(Text) downto 0 do
      begin
        Result := (Pos(Text[I], s) > 0);
        if (Result) then
        begin
          OutPut := Text[I];
          Exit;
        end;
      end;
    end;

    //Procedure CheckEat, checks whether LP is high enough to fail a pickpock without dying, eats if isn't.
    procedure CheckEat;
    begin
      if R_GetMMLevels('hp') <= TargetHitDamage then
        begin
          Eat;
          writeln('Eating once...');
        end
        else
        begin
        writeln('Did not have to eat.');
        end;
    end;

    //Function GetGold, returns amount of coins there is in inventory.
    function GetGold: integer;
    var
      G: TInvItem;
    begin
      Result := 0;
      if R_ItemNameExists(G,'Coins') then
        begin
          Result := G.StackSize;
        end;
    end;

    procedure AntiBan;
    var
      a: integer;
    begin
      a := random(150);
      LevelUp;
      case a of
        0: HoverSkill('thieving',false);
        1: PickUpMouse;
        2: RandomMovement;
        3: HoverSkill('thieving',false);
        4: HoverSkill('random',false);
      end;
    end;

    function eGetNPC(npc:string): TNPC;
    var
    A: TNPCArray;
    begin
      A := GetNPCs(npc);
      try
        Result := A[0];
      except
        Result := NULL_NPC;
      end;
    end;

    //Function GetTarget, finds and stores the NPC according to Players[].Loc
    function GetTarget: TNPC;
    begin
      case Players[CurrentPlayer].Loc of
        'VPG':
          Result := eGetNPC('Guard');
        'DMF':
          Result := eGetNPC('Master Farmer');
      end;
      TargetHitDamage := GetTargetHitDMG;
    end;

    //Function IsCloseToTarget, checks whether distance from target is less or equal to 10;
    function IsCloseToTarget: boolean;
    begin
      Result := False;
      if DistanceFrom(NPCTarget.Tile) <= 10 then
        begin
          Result := True;
        end;
    end;

    //Function PickTarget, pickpocks the target NPC if pickpockable.
    function PickTarget: boolean;
    var TP: TPoint;
        S: string;
    begin
      writeln('Picking...');
      PrevGold := GoldStolen;
      NPCTarget := GetTarget;
      if (NPCTarget = NULL_NPC) then
      begin
        writeln('Could not find target!');
        Walk(False);
        Exit;
      end;
      TP := TileToMs(NPCTarget.Tile, NPCTarget.Height);
      MMouse(TP.x,TP.y,0,0);
      ClickMouse2(True);
      LevelUp;
      AntiBan;
      if (InChatMulti(['een','unned'],s)) then
        begin
        wait(500+random(500));
        end;
      wait(100+random(1000));
    end;

    //Procedure BankOpen, opens the corrent bank according to Players[].Loc
    procedure BankOpen;
    begin
      case Players[CurrentPlayer].Loc of
        'VPG': OpenBankNPC;
        'DMF': OpenBank('db',true,true);
      end;
    end;

    //Procedure DepositStuff, deposits everything but coins
    procedure DepositStuff;
    begin
      if (R_BankScreen) then
        DepositAll
        else
        writeln('Tried to deposit stuff whilst bank was closed!');
    end;

    //Function WithdrawFood, withdraws 'All' of first slot in bank, which should be food
    procedure WithdrawFood;
    begin
      if (R_BankScreen) then
        Withdraw(0,0,14)
        else
        writeln('Tried to withdraw food whilst bank was closed!');
    end;

    procedure PrintStats;
    begin
      writeln('-~-~-~-~-~-~-~-~-~-~-~-~-~-~-');
      writeln('Gold stolen: ' + IntToStr(GoldStolen));
      writeln('-~-~-~-~-~-~-~-~-~-~-~-~-~-~-');
    end;

    //Function HasFood, checks whether there is anything eatable in inventory.
    function HasFood: boolean;
    var i: integer;
    begin
    result := False
    for i := 2 to 28 do
      begin
      if (IsFood(GetInvItemAt(i))) then
        begin
          result := True;
        end;
      end;
    end;

    procedure MainLoop;
    begin
      while (true) do
      begin
        BankOpen;// Opens bank
        DepositStuff; // Deposits anything but coins.
        WithdrawFood; // Withdraws item from slot 1
        CloseBank; // Closes bank
        Walk(False); // Walks to pickpocking place
        while (HasFood) do
          begin
            CheckEat; // Checks if LP is too low to risk a fail, eats if it is
            PickTarget; // Pickpockets the target
            GoldStolen := GetGold - StartGold; // Updates gold stats
          end;
        writeln('Returning to bank');
        Walk(True); // Walks to bank
        PrintStats; // Prints stats
        if (StartXP + ExpGained > Players[0].Integers[0]) then
          begin
            Players[0].Active := False;

            break;
          end;
      end;
      if AllPlayersInactive then Terminate;
    end;


    begin
      Smart_Server := World;
      Smart_Members := Members;
      Smart_Signed := Signed;
      DeclarePlayers;
      SetupSRL;
      SetupReflectionEx(False);
      LogInPlayer;
      SetAngle(True);
      StartGold := GetGold;
      GoldStolen := GetGold - StartGold;
      PrevGold := GoldStolen;
      while ( true ) do
        MainLoop;
    end.

    -Boom

  3. #3
    Join Date
    Oct 2010
    Posts
    1,255
    Mentioned
    0 Post(s)
    Quoted
    15 Post(s)

    Default

    Quote Originally Posted by Dynamite View Post
    Some of your logic is intriguing
    I fixed some of your standards, I saw some little things, I am going to check with someone else before I post full

    -Boom
    I think you should take it to PM's and edit out the script.

    He said he wants to learn and 'fixing' his script and posting it back in the thread isn't the best way to do it.

    I don't know how the community is on this type of thing, but if it was my script, a personal message would be appreciated.

    If you give suggestions, then he can fix the certain item and learn, instead of having everything already done already.
    I'm back

  4. #4
    Join Date
    Mar 2009
    Location
    Norway
    Posts
    493
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by smurg View Post
    I think you should take it to PM's and edit out the script.

    He said he wants to learn and 'fixing' his script and posting it back in the thread isn't the best way to do it.

    I don't know how the community is on this type of thing, but if it was my script, a personal message would be appreciated.

    If you give suggestions, then he can fix the certain item and learn, instead of having everything already done already.
    Thanks Smurg, you're absolutely correct

  5. #5
    Join Date
    Aug 2008
    Location
    Finland
    Posts
    2,851
    Mentioned
    3 Post(s)
    Quoted
    2 Post(s)

    Default

    Trying this now. I see you have absolutely no randomness in your waits, I don't know how the script works but I added some

    Simba Code:
    //Function PickTarget, pickpocks the target NPC if pickpockable.
    function PickTarget: boolean;
    var TP: TPoint;
    begin
      RunEnergy(40+random(30));
      if (NeedToEat) then Exit;
      NPCTarget := GetTarget;
      DetectPick;
      if (NPCTarget = NULL_NPC) then
      begin
        debug('Could not find target!');
        Walk(False);
        Exit;
      end;
      DetectPick;
      if not (TileOnMS(NPCTarget.Tile,NPCTarget.Height)) then
        WalkToTile(NPCTarget.Tile,1,4);
      TP := TileToMs(NPCTarget.Tile, NPCTarget.Height);
      MMouse(TP.x,TP.y+10,0,10);
      wait(50 + Random(20));
      DetectPick;
      if R_IsUpText('ickpocket') then
        begin
          ClickMouse2(True);
          Wait(200 + Random(50));
          DetectPick;
          wait(100 + Random(50));
          DetectPick;
          wait(100 + Random(50));
        end
        else
        begin
          ClickMouse2(False);
          if R_ChooseOption('Pickpock') then
          begin
            Wait(200 + Random(50));
            DetectPick;
            wait(100 + Random(50));
            DetectPick;
            wait(100 + Random(50));
          end;
        end;
      AntiBan;
      wait(100 + Random(50));
      while (IsPicking) do
        begin
        wait(50 + Random(50));
        DetectPick;
        end;
    end;

  6. #6
    Join Date
    Mar 2009
    Location
    Norway
    Posts
    493
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by marpis View Post
    Trying this now. I see you have absolutely no randomness in your waits, I don't know how the script works but I added some
    The DetectPick procedure is only a detection procedure and does no interaction with the client so randomness between those calls should not be neccessary. Also because of all the functions being called in-between the picks, you'd need a super computer to actually perform all the tasks precisely every 600ms + as long as the picking animation lasts. But of course, it doesn't hurt

  7. #7
    Join Date
    Jan 2010
    Location
    Finland
    Posts
    49
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I still don't believe the randomness is that important (though obviously it's better to be safe than sorry), I ran the sudoku solver at ~180 SpH with no randomness at 200 MouseSpeed for hours, IMO it's the player reports which get you banned and it doesn't matter if you have a 50ms wait randomness.

    You can use Me.InFight to check for being stunned aswell and smaller uptext's 'ickp' is sufficient (edit: in color, I dont know about ref), that's what I use in my thiever.

  8. #8
    Join Date
    Mar 2009
    Location
    Norway
    Posts
    493
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by silor View Post
    I still don't believe the randomness is that important (though obviously it's better to be safe than sorry), I ran the sudoku solver at ~180 SpH with no randomness at 200 MouseSpeed for hours, IMO it's the player reports which get you banned and it doesn't matter if you have a 50ms wait randomness.

    You can use Me.InFight to check for being stunned aswell and smaller uptext's 'ickp' is sufficient (edit: in color, I dont know about ref), that's what I use in my thiever.
    Thanks for the tip I've thought of changing the detection system into checking the inventory instead, that way I'd get 100% accurate seed info. Maybe I will use Me.InFight then, but the current system detects every stun perfectly

  9. #9
    Join Date
    Jun 2009
    Posts
    147
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Hi, I love the script and it seems very ambitious... I had this running for about 40 minutes at the Draynor Master Farmers but I think there is some things you should take into consideration:

    Simba Code:
    //Procedure CheckEat, checks whether LP is high enough to fail a pickpock without dying, eats if isn't.
    function NeedToEat: boolean;
    begin
      Result := False;
      if R_GetMMLevels('hp') <= TargetHitDamage then
        begin
          debug('Need to eat!');
          result := True;
        end
    end;

    I don't really like this function as it consistently eats at a very low hp (30) which is really predictable and botlike and it also causes a lot of problems when the bot misclicks and either attacks a market guard or steals from the stall while the guard was there.

    While I'm not as familiar with scripting as I would like I think this would work, but forgive me if its wrong:


    Simba Code:
    //Procedure CheckEat, checks whether LP is high enough to fail a pickpock without dying, eats if isn't.
    function NeedToEat: boolean;
    begin
      Result := False;
      if R_GetMMLevels('hp') - Random (330) <= TargetHitDamage then
        begin
          debug('Need to eat!');
          result := True;
        end
    end;

    Which would make it randomly eat from LP 360 to 30.

    Also, when it does get attacked by market guards, it doesn't realize this and continues trying to pickpocket, maybe you could have a failsafe to read the chat log to see if you are getting the message "You can't do this while in combat" and have the bot run to the bank.

    EDIT: I hope you are still updating this, its an awesome script and I will post proggies when I can, but I only have one P2P account so it won't be very long :P
    Live simply so that others may simply live.

  10. #10
    Join Date
    Aug 2010
    Posts
    351
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    It never ate any food. I let the hp get down to about 100 to see if it would eat the food that was in my inventory, but it never did so I terminated the script before the character died.

    good script though.

  11. #11
    Join Date
    Mar 2009
    Location
    Norway
    Posts
    493
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    @final_result: I always eat only when i have to when pickpocking.
    I may add an option to eat earlier tho if it makes you feel safer.

    Have you ever seen the bot attack a market guard or steal from the stall? That shouldn't be possible. :/ anyway I'll add a combat failsafe then. Looking forward for some proggies

    Quote Originally Posted by wondersueak View Post
    It never ate any food. I let the hp get down to about 100 to see if it would eat the food that was in my inventory, but it never did so I terminated the script before the character died.

    good script though.
    It only eats when it has to, to make sure it wont waste any. If you are pickpocking master farmers it wont eat until you Are below 31 lp

    EDIT: New version v1.20 is up. Combat detection and unpredictable food eating added.
    Last edited by Emaziz; 01-31-2011 at 11:13 AM.

  12. #12
    Join Date
    Aug 2010
    Posts
    351
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I was pickpocketing varrock east guards.

    Thanks!

  13. #13
    Join Date
    Jun 2009
    Posts
    147
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Emaziz View Post
    @final_result: I always eat only when i have to when pickpocking.
    I may add an option to eat earlier tho if it makes you feel safer.

    Have you ever seen the bot attack a market guard or steal from the stall? That shouldn't be possible. :/ anyway I'll add a combat failsafe then. Looking forward for some proggies



    It only eats when it has to, to make sure it wont waste any. If you are pickpocking master farmers it wont eat until you Are below 31 lp

    EDIT: New version v1.20 is up. Combat detection and unpredictable food eating added.
    It happens when the Master Farmer is moving and so is the market guard, it will click on the market guard instead, I can prevent this by equipping a unloaded weapon, but when the Master Farmer is in very close proximity to the stall, it doesn't always rightclick and check for uptext, so sometimes it clicks the stall, causing the guard to attack the bot.

    I suppose some people do it, but the majority eat earlier and it does seem botlike to me.

    EDIT: You forgot to upload the new version :P
    Last edited by final_result; 02-01-2011 at 01:32 AM.
    Live simply so that others may simply live.

  14. #14
    Join Date
    Jan 2008
    Posts
    223
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    definately will be testing once i get high enough thieveing for MF (:
    http://i55.tinypic.com/2w5rek0.jpg

    P3rs0nal1ty -- Formerly known as Donkey60000

  15. #15
    Join Date
    Mar 2009
    Location
    Norway
    Posts
    493
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by final_result View Post
    It happens when the Master Farmer is moving and so is the market guard, it will click on the market guard instead, I can prevent this by equipping a unloaded weapon, but when the Master Farmer is in very close proximity to the stall, it doesn't always rightclick and check for uptext, so sometimes it clicks the stall, causing the guard to attack the bot.

    I suppose some people do it, but the majority eat earlier and it does seem botlike to me.

    EDIT: You forgot to upload the new version :P
    Lol >_> i uploaded then removed in order to apply a hotfix, which i obviously forgot. Will upload once i get home today

  16. #16
    Join Date
    Mar 2009
    Location
    Norway
    Posts
    493
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by donkey60000 View Post
    definately will be testing once i get high enough thieveing for MF (:
    You can also pickpock men at edgeville

    (sorry for double post, quoting on iPhone is a pain in the ass)

    EDIT:

    Now v1.20 is uploaded! I totally forgot it >_> LANing with 7 friends all day. Age of Empires for the win
    Last edited by Emaziz; 02-01-2011 at 10:22 PM.

  17. #17
    Join Date
    Nov 2007
    Posts
    326
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Good script. I'm really happy you added the health option to eat food, to make it more human like. However, is there anyway that you can force the script to make sure that it never has a full inventory? When watching the script, it often fills up invent space and then only eats a piece of food AFTER you get the message that you can't pick because of invent space. It would be nice if you could make it always have one spot open.

    Also..could you slap in a bank pin?

    p.s. I just ran the v1.20 script and it is stuck. I'll try again, but it was having problems getting out of the bank screen.
    Last edited by IPwnz; 02-03-2011 at 02:30 AM. Reason: forgot something

  18. #18
    Join Date
    Mar 2009
    Location
    Norway
    Posts
    493
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by IPwnz View Post
    Good script. I'm really happy you added the health option to eat food, to make it more human like. However, is there anyway that you can force the script to make sure that it never has a full inventory? When watching the script, it often fills up invent space and then only eats a piece of food AFTER you get the message that you can't pick because of invent space. It would be nice if you could make it always have one spot open.

    Also..could you slap in a bank pin?

    p.s. I just ran the v1.20 script and it is stuck. I'll try again, but it was having a lot of problem getting out of the bank screen.
    I checked it out and it seems to fail to detect inventory items, aka food. Reflection is broken? Anyways this is a busy day so I won't be able to fix it yet.

  19. #19
    Join Date
    Nov 2007
    Posts
    326
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Your Eat function tries to calculate what type of food was eaten incorrectly, you need to move the food name finding piece earlier in the function. Something like:

    Simba Code:
    function Eat: boolean;
    var
    i: integer;
    begin
    Result := False;
    for i := 1 to 28 do
      begin
      if (IsFood(GetInvItemAt(i))) then
        begin
          FoodName := GetInvItemAt(i).Name;
          R_ClickItem(i,True,'');
          FoodEaten := Foodeaten + 1;
          debug('Ate ' + FoodName);
          Result := True;
          i := 29;
        end;
      end;
      wait(100);
    end;
    Last edited by IPwnz; 02-03-2011 at 02:43 AM. Reason: changed code tags to SIMBA tags

  20. #20
    Join Date
    Mar 2009
    Location
    Norway
    Posts
    493
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by IPwnz View Post
    Your Eat function tries to calculate what type of food was eaten incorrectly, you need to move the food name finding piece earlier in the function. Something like:

    Simba Code:
    function Eat: boolean;
    var
    i: integer;
    begin
    Result := False;
    for i := 1 to 28 do
      begin
      if (IsFood(GetInvItemAt(i))) then
        begin
          FoodName := GetInvItemAt(i).Name;
          R_ClickItem(i,True,'');
          FoodEaten := Foodeaten + 1;
          debug('Ate ' + FoodName);
          Result := True;
          i := 29;
        end;
      end;
      wait(100);
    end;
    Except that the food isn't eaten within the very millisecond it's clicked. So it still works

    EDIT: Since inventory reflection detection seems to be working again I've uploaded the version with combat detection and quicker eating when inventory is full. Cheers
    Last edited by Emaziz; 02-03-2011 at 09:17 AM.

  21. #21
    Join Date
    Feb 2011
    Posts
    14
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Thumbs up Amazing

    Works very well in master farmer spot and easy to use for 1st time user like me i'll use this over night today

  22. #22
    Join Date
    Mar 2009
    Location
    Norway
    Posts
    493
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by oxu24 View Post
    Works very well in master farmer spot and easy to use for 1st time user like me i'll use this over night today
    Thanks for feedback, remember to copy the proggie

  23. #23
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    [Error] (197:6): Unknown identifier 'R_ItemNameExists' at line 196
    Compiling failed.


    Can't run

  24. #24
    Join Date
    Mar 2009
    Location
    Norway
    Posts
    493
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by wand2658 View Post
    [Error] (197:6): Unknown identifier 'R_ItemNameExists' at line 196
    Compiling failed.


    Can't run
    Getting tired of reflection developers changing name on the functions..

    Fixed.

  25. #25
    Join Date
    Jun 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Misclicks sometimes, otherwise really good.

    -~EmPick Proggie report v1.30-~-~-
    Script runtime: 1 hour(s), 44 minute(s), 7 second(s).
    Next break: 5 minute(s), 23 second(s).
    Total picks: 468
    Total stuns: 273
    Pick/Stun ratio: 1.71428571428571
    Total XP Gained: 21021
    Total XP/Hour: 12112.0687585528
    Total GP Stolen: 0
    Total seeds stolen: 839
    Total food eaten: 165 Tuna
    -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-

Page 1 of 3 123 LastLast

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
  •