Log in

View Full Version : Problems finding and clicking tripwire..



Brandon
08-19-2011, 07:03 PM
http://images2.wikia.nocookie.net/__cb20081123023856/runescape/images/f/fa/Tripwire.png

How in the world can I click that.. The tripwire that is.. Its extremely hard to see in safemode.. I tried colour but it failed to find it.. And it only works when the angle is changed about a million times. From bird's eye view its almost completely invisible. In OpenGl I can see it fine. Also even when its found, it get's misclicked like crazy due to the mouse being random even when I set the randomness to 0.. I tried SmartMouseClick aswell but it just fails so miserably. Such a thin wire :c Any help is appreciated. Its hard to click as a human.. botting is even harder..

P.S. Sometimes the wire blends with the ground depending on where it is.. Oh and reflection is even worse.. just clicks miserably in random spots hoping to get it.. by that time I already triggered it and got poisoned.. Combining reflection and color might work but its still extremely hard to find.. Reflection finds it but can't click it.. colour finds it rarely and stilll can't click it.

Drakan
08-19-2011, 07:16 PM
Models! unfortunately not in reflection yet, but thats the best way I see that getting done.

Tlachtli
08-19-2011, 07:57 PM
This may not be the most human-like way to do it, but for color only I would have it set the camera to North/Bird's eye, then use a DTM centered on the tripwire that finds points on the rocks and/or crossbows.

Your best bet may be to add antipoison and food to your script ;)

Brandon
08-19-2011, 08:43 PM
Ah shit.. I might aswell just run right over the wire and drink anti-poison LOL.. damn.. it really is ridiculously hard to click.. The DTM I made cannot find it.. just the slightest change in angle, makes this thing invisible to the eye and to smart's colour matching algorithms..

Coh3n
08-19-2011, 11:06 PM
clickNorth(true);
wireTile := tileToMS(point());
colInfo := getColorInfo();

searchBox := intToBox(wireTile.x - 20, wireTile.y - 20, wireTile.x + 20, wireTile.y + 20);
SMART_DrawBox(searchBox);

cts := getToleranceSpeed();
setToleranceSpeed(2);
setColorSpeed2Modifiers(colInfo.hue, colInfo.sat);

if (findColorTolerance(x, y, colInfo.color, searchBox.x1, searchBox.y1, searchBox.x2, searchBox.y2, colInfo.tol)) then
begin
mmouse(x, y, 0, 0);
getMousePos(x, y);

if (waitUptext()) then
mouse(x, y, 0, 0, true);
end;

setToleranceSpeed(cts);
setColorSpeed2Modifiers(0.2, 0.2);
I don't see why that wouldn't work. Use ACA to get the colInfo and just use a high tolerance if needed. You may need to put a loop around that as a failsafe.

Dynamite
08-19-2011, 11:10 PM
I would suggest the above ^
It's what I use in my fighter, find the tile that whatever you are clicking is on, then search a colour within the tile.

-Boom

Brandon
08-19-2011, 11:35 PM
It doesn't work... the wire is toooo thin.. The wire also doesn't always show.. U actually have to play in openGL to see it properly.. and colour finding doesn't work in OpenGL. I tried what Coh3n suggested.. it fails quite a lot and takes way to long to find the wire.. I put it in a repeat loop.. even added "didredclick".. it just never finds the wire no matter how much tolerance I put.. instead sometimes it just finds a colour and clicks the tile and bam.. I end up getting poisoned and losing HP..

Instead I just added antipoison to my script and just made the character purposefully walk over the wire then drink. Only solution that's effective.

Wrote the script because its like 1.4-1.8m an hr (probably less in pascal/simba/smart :c) guaranteed as all the stupid Grenwall bots are for rsbuddy and they are all VIP only.. Tom actually gave me the idea.. Decided to start writing it today.. Place is dead empty.. every world I go to is clean empty.. so good money =)
Script is like this so far: Its a Grenwall/Pawya Hunter.. I can't figure out how to do the boxtraps or figure out if the traps are already baited.. *sigh* such a hard script.. well for me :c
Another problem is finding if I failed the leaf trap.. when u fall in, u have to climb out using these wall rocks.. they have No ID..


program GrenwallPro;
{.include SRL\SRL\misc\SMART.SCAR}
{.include SRL\SRL.scar}
{.include reflection2\reflection.simba}
{.include SRL\SRL\Misc\PaintSmart.SCAR}


procedure declarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name :='';
Pass :='';
Pin :='';
Nick :='';
Active := True;
end;
end;

//Fill These In..
const
FoodToEat = 385; //Shark = 385;
HPToEatAt = 500; //Eats when HP Gets Below this Number;





////////////////////////////////////////////////////////////////////////////////
// //
// All Script Code Starts here //
// //
////////////////////////////////////////////////////////////////////////////////

const
FruitBat = 12033;
FruitFall = 12423;
BoxTrap = 10008;
BoxTrapOpen = 19187;
BoxTrapClose = 28913;
BoxTrapFruit = 19192;
BoxTrapGrenwall = 28906;
BoxTrapCollapse = 10008;
Pawya = 12535;
Papaya = 5972;
GSpikes = 12539;
AntiPoison1 = 179;
AntiPoison2 = 177;
AntiPoison3 = 175;
AntiPoison4 = 2446;
Summoning1 = 12146;
Summoning2 = 12144;
Summoning3 = 12142;
Summoning4 = 12140;


procedure debug(s:string);
begin
writeln('['+TheTime+'] ' + s);
end;

procedure terminate(reason:string);
begin
debug('~ ERROR ~ ' + reason + '. Terminating!');
//PlaySound(IncludePath+'Reflection/Custom/Sounds/MorseCode.wav'); //Plays a sound to let us know the script terminated.
TerminateScript;
end;

Procedure LoginCheck;
begin
if not(R_LoggedIn) then LoginPlayer;
if (R_LobbyScreen) then
begin
LeaveLobby;
wait(5000);
LoginPlayer;
R_FindRandoms;
SetAngle(true);
R_MakeCompass('n');
end;
R_FindRandoms;
end;

Procedure PinCheck;
begin
wait(500);
if not R_OpenBankBooth then
repeat
LoginCheck;
R_OpenBankBooth;
until(R_BankScreen or R_Pinscreen);
R_InPin(Players[CurrentPlayer].Pin);
end;

Procedure HPCheck;
var
HPLevel: Integer;
begin
HPLevel:= R_GetMMLevels('hp');
Repeat
if(HPLevel < HPToEatAt) then
begin
if(R_BankScreen) then
begin
R_WithdrawItem(FoodToEat, false);
end;
wait(500);
R_ClickItemBy(FoodToEat, 'Eat');
debug('Eating Food Because Our HP is Low');
end;
Until(R_GetMMLevels('hp') = R_GetSkillLevel(3));
end;

function R_SortObjects(Objects: TRSOBJECTARRAY): TRSOBJECTARRAY;
var
i,i2, L: integer;
tpa: TPointArray;
begin

L := Length(Objects);
if L < 1 then Exit;
SetLength(TPA, L);
SetLength(Result, L);
for i := 0 to L-1 do
TPA[i] := Objects[i].Tile;
SortTPAFrom(TPA, R_GetMyPos);
for i := 0 to L-1 do
for i2 := 0 to L-1 do
if (TPA[i].x=Objects[i2].Tile.x) and (TPA[i].y=Objects[i2].Tile.y) then
Result[i] := Objects[i2];
end;

Procedure SummoningCheck; //MUST EDIT!! VALUES ARE WRONG!
var
SummoningPoints, SummoningMM: integer;
Obelisk, Sorted: TRSObjectArray;
ObjTile: TTile;
begin
SummoningMM:= 747;
SummoningPoints:= StrToInt(R_GetInterfaceText(SummoningMM, 5));

if(SummoningPoints < R_GetSkillLevel(15)) then
Repeat
Repeat
R_FindObjectsEx([29954, 29992], OBJ_INTERACTABLE, 10, Obelisk);
if(Not (Obelisk[0] = NULL_RSOBJECT)) then
break;
Until(Not (Obelisk[0] = NULL_RSOBJECT));

Sorted:= R_SortObjects(Obelisk);
ObjTile:= Sorted[0].Tile;
SmartClickMouse(R_TileToMS(ObjTile, 0).X, R_TileToMS(ObjTile, 0).Y, true);

if(SummoningPoints = R_GetSkillLevel(15)) then
break;
Until(SummoningPoints = R_GetSkillLevel(15));
debug('Summoning Points are Full');
end;

Procedure CheckBank;
var
BankItem: TBankItem;
begin
R_DepositAllBut([BoxTrap, Pawya, Papaya, FruitBat, FruitFall]);
//Withdraw Fruitbat Pouches..
if(R_ItemExistsInBank(FruitBat, BankItem) = false) then
begin
debug('Depositing All Items');
R_DepositAll(true);
terminate('No Fruitbat Pouches in Bank');
end else
if(R_CountItem(FruitBat) < 3) then
Repeat
debug('Withdrawing FruitBat Pouches');
if(R_CountItem(FruitBat) >= 3) then
break;
R_WithdrawItem(FruitBat, false);
wait(500);
Until(R_CountItem(FruitBat) >= 3);

//Withdraw Fruitbat Scrolls..
if(R_ItemExistsInBank(FruitFall, BankItem) = false) then
begin
debug('Depositing All Items');
R_DepositAll(true);
terminate('No Fruitfall Scrolls in Bank');
end else
if(R_CountItem(FruitFall) < 300) then
Repeat
if(R_CountItem(FruitFall) >= 300) then
break;
R_WithdrawX(FruitFall, (300 - R_CountItem(FruitFall)));
wait(500);
Until(R_CountItem(FruitFall) >= 300);

//Withdraw Summoning Potion..
if((R_ItemExistsInBank(Summoning4, BankItem) = false) and (R_ItemExistsInBank(Summoning3, BankItem) = false)) then
begin
debug('Depositing All Items');
R_DepositAll(true);
terminate('No Summoning Potion (3) and No Summoning Potion (4) found in Bank.');
end;

if(R_ItemExistsInBank(Summoning4, BankItem) = false) then
begin
debug('No Summoning Potion (4) found in Bank.');
debug('Using Summoning Potion (3) instead of (4).');
end else
Repeat
if(R_CountItem(Summoning4) >= 1) then
break;
R_WithdrawItem(Summoning4, false);
wait(500);
Until(R_CountItem(Summoning4) >= 1);

if((R_ItemExistsInBank(Summoning4, BankItem) = false) and (R_CountItem(Summoning4) < 1)) then
begin
if(R_ItemExistsInBank(Summoning3, BankItem) = true) then
Repeat
if(R_CountItem(Summoning3) >= 2) then
break;
R_WithdrawItem(Summoning3, false);
wait(500);
Until(R_CountItem(Summoning3) >= 2);
end;

if((R_CountItem(Summoning3) < 1) and (R_CountItem(Summoning4) < 1)) then
begin
debug('Depositing All Items');
R_DepositAll(true);
terminate('No Summoning Potion (3) and No Summoning Potion (4) in Inventory');
end;

//Withdraw Box-Traps..
if(R_CountItem(BoxTrap) <= 6) then
if(R_ItemExistsInBank(BoxTrap, BankItem) = false) then
begin
debug('Warning No BoxTraps In Bank!');
end else
Repeat
if(R_CountItem(BoxTrap) >= 6) then
break;
R_WithdrawX(BoxTrap, (6 - R_CountItem(BoxTrap)));
wait(500);
Until((R_CountItem(BoxTrap) >= 6));
if(R_CountItem(BoxTrap) < 4) then
begin
debug('Depositing All Items');
R_DepositAll(true);
terminate('Too Little Box Traps in Inventory!');
end;

//Withdraw Anti-Poisons..
if(R_CountItem(AntiPoison4) < 1) and (R_CountItem(AntiPoison3) < 1) and (R_CountItem(AntiPoison2) < 1) and (R_CountItem(AntiPoison1) < 1) then
begin
debug('No Anti-Poison Potions found in Invent');
end else
begin
if(R_ItemExistsInBank(AntiPoison4, BankItem) = false) then
begin
debug('No Anti-Poison (4) found in Bank');
if(R_ItemExistsInBank(AntiPoison3, BankItem) = false) then
begin
debug('No AntiPoison (3) found in Bank');
if(R_ItemExistsInBank(AntiPoison3, BankItem) = false) then
begin
debug('No AntiPoison (2) found in Bank');
if(R_ItemExistsInBank(AntiPoison2, BankItem) = false) then
begin
terminate('No Anti-Poisons Found in Bank!');
end else
begin
debug('Using Anti-Poison (1)''s! Hope you have high Agility!');
Repeat
if(R_CountItem(AntiPoison4) >= 1) then
break;
R_WithdrawItem(AntiPoison4, false);
wait(500);
Until(R_CountItem(AntiPoison4) >= 1);
end;
end else
Repeat
if(R_CountItem(AntiPoison2) >= 1) then
break;
R_WithdrawItem(AntiPoison2, false);
wait(500);
Until(R_CountItem(AntiPoison2) >= 1);
end else
Repeat
if(R_CountItem(AntiPoison3) >= 1) then
break;
R_WithdrawItem(AntiPoison3, false);
wait(500);
Until(R_CountItem(AntiPoison3) >= 1);
end else
Repeat
if(R_CountItem(AntiPoison4) >= 1) then
break;
R_WithdrawItem(AntiPoison4, false);
wait(500);
Until(R_CountItem(AntiPoison4) >= 1);
end;

//Withdraw Coins..
if(R_ItemExistsInBank(995, BankItem) = false) then
begin
terminate('Not Enough Coins to Take the Charter Boat.');
end else
Repeat
if(R_CountItem(995) >= 1600) then
break;
R_WithdrawX(995, (1600 - R_CountItem(995)));
wait(500);
Until(R_CountItem(995) >= 1600);
end;

Procedure CharterBoat; //EDIT!!
var
ShipDeck, SummoningPath: TPointArray;
OnDeck: TBox;
GangPlank: TRSObject;
ShipCaptains, Sorted: TNPCArray;
Child: TInterfaceChild;
begin
ShipDeck:= [Point(2809, 3438), Point(2808, 3434), Point(2804, 3430), Point(2804, 3426), Point(2803, 3422),
Point(2804, 3418), Point(2801, 3414), Point(2798, 3414)];
R_WalkPath(ShipDeck);
OnDeck.X1:= 2795; OnDeck.X2:= 2803; OnDeck.Y1:= 3416; OnDeck.Y2:= 3412;
if(R_SelfInBox(OnDeck)) then
R_FindNPCsMulti([4653, 4656], false, ShipCaptains);
Sorted:= R_SortNPCs(ShipCaptains);
Repeat
SmartMoveMouse(R_TileToMS(Sorted[0].Tile, Sorted[0].Height/2).x, R_TileToMS(Sorted[0].Tile, Sorted[0].Height/2).y);
wait(100);
SmartClickMouse(R_TileToMS(Sorted[0].Tile, Sorted[0].Height/2).x, R_TileToMS(Sorted[0].Tile, Sorted[0].Height/2).y, false);
wait(200);
R_ChooseOption('Charter');
wait(200);
if(R_ValidInterface(95)) then
break;
Until(R_ValidInterface(95));

//Choose Port Tyras..
while(R_ValidInterface(95)) do
begin
Child:= R_GetInterfaceChild(95, 12);
R_ClickInterface(Child, 1);
R_WaitInterfaceClose(95, 500);
end;

//Choose Click Continue..
while(R_ValidInterface(211)) do
begin
Child:= R_GetInterfaceChild(211, 3);
R_ClickInterface(Child, 1);
R_WaitInterfaceClose(211, 500);
end;

//Choose Okay..
while(R_ValidInterface(230)) do
begin
Child:= R_GetInterfaceChild(230, 2);
R_ClickInterface(Child, 1);
R_WaitInterfaceClose(230, 500);
end;

//Click Ladder to get off ship..
Repeat
R_FindObject(17409, OBJ_INTERACTABLE, 10, GangPlank);
if(Not (GangPlank = NULL_RSOBJECT)) then
break;
wait(500);
Until(Not (GangPlank = NULL_RSOBJECT));

if(Not (GangPlank = NULL_RSOBJECT)) then
Repeat
SmartMoveMouse(R_TileToMS(GangPlank.Tile, 0).x, R_TileToMS(GangPlank.Tile, 0).y);
if(R_isUpText('Cross')) then
SmartClickMouse(R_TileToMS(GangPlank.Tile, 0).x, R_TileToMS(GangPlank.Tile, 0).y, true);
Until(R_GetMyPos = Point(2142, 3122));

OnDeck.X1:= 2140; OnDeck.X2:= 2145; OnDeck.Y1:= 3123; OnDeck.Y2:= 3120;
if(R_SelfInBox(OnDeck)) then
debug('We have arrived at destination: Lleyta.');

SummoningPath:= [Point(2147, 3122), Point(2153, 3122), Point(2159, 3124), Point(2166, 3124), Point(2173, 3125),
Point(2180, 3128), Point(2184, 3131), Point(2184, 3135), Point(2179, 3136), Point(2177, 3136)];
R_WalkPath(SummoningPath);
OnDeck.X1:= 2175; OnDeck.X2:= 2180; OnDeck.Y1:= 3138; OnDeck.Y2:= 3134;
if(R_SelfInBox(OnDeck)) then
SummoningCheck;
end;

Procedure DodgeObstacles;
var
ObstaclePath: TPointArray;
Obstacles, Sorted: TRSObjectArray;
Child: TInterfaceChild;
Items: TInvItemArray;
InArea: TBox;
begin
ObstaclePath:= [Point(2182, 3141), Point(2185, 3147), Point(2188, 3153), Point(2188, 3160), Point(2188, 3162)];
R_WalkPath(ObstaclePath);

//Dense Forest Part 1..
Repeat
R_FindObjectsEx([3999], OBJ_INTERACTABLE, 10, Obstacles);
Sorted:= R_SortObjects(Obstacles);
if(Not(Sorted[0] = NULL_RSOBJECT)) then
break;
wait(500);
Until(Not (Sorted[0] = NULL_RSOBJECT));

Repeat
SmartMoveMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y);
if(R_isUpText('Enter')) then
begin
SmartClickMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y, true);
R_WaitToAnimate(1000);
R_WaitToStopAnimating(1000);
end;
if((R_GetMyPos = Point(2188, 3165)) or (R_GetMyPos = Point(2189, 3165))) then
break;
Until((R_GetMyPos = Point(2188, 3165)) or (R_GetMyPos = Point(2189, 3165)));

//Dense Forest Part2..
Repeat
R_FindObjectsEx([3939], OBJ_INTERACTABLE, 10, Obstacles);
Sorted:= R_SortObjects(Obstacles);
if(Not(Sorted[0] = NULL_RSOBJECT)) then
break;
wait(500);
Until(Not (Sorted[0] = NULL_RSOBJECT));

Repeat
SmartMoveMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y);
if(R_isUpText('Enter')) then
begin
SmartClickMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y, true);
R_WaitToAnimate(1000);
R_WaitToStopAnimating(1000);
end;
if((R_GetMyPos = Point(2187, 3168)) or (R_GetMyPos = Point(2188, 3168)) or (R_GetMyPos = Point(2189, 3168))) then
break;
Until((R_GetMyPos = Point(2187, 3168)) or (R_GetMyPos = Point(2188, 3168)) or (R_GetMyPos = Point(2189, 3168)));

//Dense Forest Part3..
Repeat
R_FindObjectsEx([3998], OBJ_INTERACTABLE, 10, Obstacles);
Sorted:= R_SortObjects(Obstacles);
if(Not(Sorted[0] = NULL_RSOBJECT)) then
break;
wait(500);
Until(Not (Sorted[0] = NULL_RSOBJECT));

InArea.X1:= 2186; InArea.X2:= 2190; InArea.Y1:= 3172; InArea.Y2:= 3172;
Repeat
SmartMoveMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y);
if(R_isUpText('Enter')) then
begin
SmartClickMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y, true);
R_WaitToAnimate(1000);
R_WaitToStopAnimating(1000);
end;
if(R_SelfInBox(InArea)) then
break;
Until(R_SelfInBox(InArea));

ObstaclePath:= [Point(2190, 3178), Point(2199, 3177), Point(2206, 3178), Point(2213, 3175), Point(2216, 3170), Point(2271, 3169)];
R_WalkPath(ObstaclePath);

//Dense Forest Part 4..
Repeat
R_FindObjectsEx([3939], OBJ_INTERACTABLE, 10, Obstacles);
Sorted:= R_SortObjects(Obstacles);
if(Not(Sorted[0] = NULL_RSOBJECT)) then
break;
wait(500);
Until(Not (Sorted[0] = NULL_RSOBJECT));

Repeat
SmartMoveMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y);
if(R_isUpText('Enter')) then
begin
SmartClickMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y, true);
R_WaitToAnimate(1000);
R_WaitToStopAnimating(1000);
end;
if((R_GetMyPos = Point(2216, 3166)) or (R_GetMyPos = Point(2217, 3166)) or (R_GetMyPos = Point(2218, 3166))) then
break;
Until((R_GetMyPos = Point(2216, 3166)) or (R_GetMyPos = Point(2217, 3166)) or (R_GetMyPos = Point(2218, 3166)));

//Dense Forest Part5..
Repeat
R_FindObjectsEx([3938], OBJ_INTERACTABLE, 5, Obstacles);
Sorted:= R_SortObjects(Obstacles);
if(Not(Sorted[0] = NULL_RSOBJECT)) then
break;
wait(500);
Until(Not (Sorted[0] = NULL_RSOBJECT));

Repeat
SmartMoveMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y);
if(R_isUpText('Enter')) then
begin
SmartClickMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y, true);
R_WaitToAnimate(1000);
R_WaitToStopAnimating(1000);
end;
if((R_GetMyPos = Point(2216, 3163)) or (R_GetMyPos = Point(2217, 3163)) or (R_GetMyPos = Point(2218, 3163))) then
break;
Until((R_GetMyPos = Point(2216, 3163)) or (R_GetMyPos = Point(2217, 3163)) or (R_GetMyPos = Point(2218, 3163)));

//Dense Forest Part6..
Repeat
R_FindObjectsEx([3939], OBJ_INTERACTABLE, 5, Obstacles);
Sorted:= R_SortObjects(Obstacles);
if(Not(Sorted[0] = NULL_RSOBJECT)) then
break;
wait(500);
Until(Not (Sorted[0] = NULL_RSOBJECT));

InArea.X1:= 2215; InArea.X2:= 2217; InArea.Y1:= 3160; InArea.Y2:= 3158;
Repeat
SmartMoveMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y);
if(R_isUpText('Enter')) then
begin
SmartClickMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y, true);
R_WaitToAnimate(1000);
R_WaitToStopAnimating(1000);
end;
if(R_SelfInBox(InArea)) then
break;
Until(R_SelfInBox(InArea));

R_WalkToTile(Point(2219, 3156), 0, 0);
if(R_TileOnMS(Point(2220, 3155), 0)) then
SmartClickMouse(R_TileToMS(Point(2220, 3155), 0).x, R_TileToMS(Point(2220, 3155), 0).y, true);
if(R_GetMyPos = Point(2220, 3155)) then
debug('Tackling the Tripwrite Obstacle. :c');
R_WalkToTile(Point(2220, 3148), 2, 1);

//Drink Anti-Poison..
Child:= R_GetInterfaceChild(748, 4);
if(R_ItemExistsEx([AntiPoison1, AntiPoison2, AntiPoison3, AntiPoison4], Items)) then
begin
if(Child.TextureID = 1801) then
Repeat
R_ClickItemBy(Items[0].ID, '');
R_WaitToAnimate(1000);
R_WaitToStopAnimating(1000);
if(Child.TextureID = 1208) then
break;
Until(Child.TextureID = 1208);
end;

ObstaclePath:= [Point(2220, 3150), Point(2226, 3146), Point(2231, 3149)];
R_WalkPath(ObstaclePath);

//Dense Forest Part 7..
Repeat
R_FindObjectsEx([3937], OBJ_INTERACTABLE, 10, Obstacles);
Sorted:= R_SortObjects(Obstacles);
if(Not(Sorted[0] = NULL_RSOBJECT)) then
break;
wait(500);
Until(Not (Sorted[0] = NULL_RSOBJECT));

Repeat
SmartMoveMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y);
if(R_isUpText('Enter')) then
begin
SmartClickMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y, true);
R_WaitToAnimate(1000);
R_WaitToStopAnimating(1000);
end;
if((R_GetMyPos = Point(2234, 3150)) or (R_GetMyPos = Point(2234, 3149)) or (R_GetMyPos = Point(2234, 3148))) then
break;
Until((R_GetMyPos = Point(2234, 3150)) or (R_GetMyPos = Point(2234, 3149)) or (R_GetMyPos = Point(2234, 3148)));

//Dense Forest Part8..
Repeat
R_FindObjectsEx([3938], OBJ_INTERACTABLE, 10, Obstacles);
Sorted:= R_SortObjects(Obstacles);
if(Not(Sorted[0] = NULL_RSOBJECT)) then
break;
wait(500);
Until(Not (Sorted[0] = NULL_RSOBJECT));

Repeat
SmartMoveMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y);
if(R_isUpText('Enter')) then
begin
SmartClickMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y, true);
R_WaitToAnimate(1000);
R_WaitToStopAnimating(1000);
end;
if((R_GetMyPos = Point(2237, 3150)) or (R_GetMyPos = Point(2237, 3149)) or (R_GetMyPos = Point(2237, 3148))) then
break;
Until((R_GetMyPos = Point(2237, 3150)) or (R_GetMyPos = Point(2237, 3149)) or (R_GetMyPos = Point(2237, 3148)));

//Dense Forest Part9..
Repeat
R_FindObjectsEx([3939], OBJ_INTERACTABLE, 10, Obstacles);
Sorted:= R_SortObjects(Obstacles);
if(Not(Sorted[0] = NULL_RSOBJECT)) then
break;
wait(500);
Until(Not (Sorted[0] = NULL_RSOBJECT));

InArea.X1:= 2240; InArea.X2:= 2240; InArea.Y1:= 3151; InArea.Y2:= 3147;
Repeat
SmartMoveMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y);
if(R_isUpText('Enter')) then
begin
SmartClickMouse(R_TileToMS(Sorted[0].Tile, 0).X, R_TileToMS(Sorted[0].Tile, 0).Y, true);
R_WaitToAnimate(1000);
R_WaitToStopAnimating(1000);
end;
if(R_SelfInBox(InArea)) then
break;
Until(R_SelfInBox(InArea));

ObstaclePath:= [Point(2243, 3154), Point(2242, 3159), Point(2240, 3165), Point(2236, 3171), Point(2232, 3176),
Point(2227, 3181), Point(2220, 3186), Point(2214, 3191), Point(2211, 3197)];
R_WalkPath(ObstaclePath);

if(R_TileOnMS(Point(2209, 3200), 0)) then
begin
SmartMoveMouse(R_TileToMS(Point(2209, 3200), 0).x, R_TileToMS(Point(2209, 3200), 0).y);
SmartClickMouse(R_TileToMS(Point(2209, 3200), 0).x, R_TileToMS(Point(2209, 3200), 0).y, true);
R_WaitToMove(1000);
end;

if(R_GetMyPos = Point(2209, 3200)) then
debug('Tackling Obstacle: Leaves.');

if(R_GetMyPos = Point(2209, 3200)) then
Repeat
R_FindObjectsEx([3925], OBJ_INTERACTABLE, 10, Obstacles);
Sorted:= R_SortObjects(Obstacles);
if(Not (Sorted[0] = NULL_RSOBJECT)) then
break;
Until(Not (Sorted[0] = NULL_RSOBJECT));

InArea.X1:= 2207; InArea.X2:= 2221; InArea.Y1:= 3205; InArea.Y2:= 3208;

if(Not (Sorted[0] = NULL_RSOBJECT)) then
Repeat
SmartMoveMouse(R_TileToMS(Sorted[0].Tile, 0).x, R_TileToMS(Sorted[0].Tile, 0).y);
if(R_isUpText('Jump')) then
SmartClickMouse(R_TileToMS(Sorted[0].Tile, 0).x, R_TileToMS(Sorted[0].Tile, 0).y, true);

//Need a way to detect if I'm in the Leaf Pits or not..
Until(R_SelfInBox(InArea));

HPCheck;

ObstaclePath:= [Point(2208, 3210), Point(2205, 3216), Point(2200, 3222), Point(2199, 3226)];
R_WalkPath(ObstaclePath);
end;

Procedure TrapPawyas;
var
Trap1, Trap2, Trap3, Trap4, Trap5: TPoint;
Child: TInterfaceChild;
Item: TInvItem;
CastOption: string;
begin
Trap1:= Point(2198, 3228);
Trap2:= Point(2200, 3228);
Trap3:= Point(2200, 3225);
Trap4:= Point(2197, 3225);
Trap5:= Point(2199, 3226);

Child:= R_GetInterfaceChild(747, 3);
Repeat
R_ClickItemBy(FruitBat, 'Summon');
if(Child.TextureID = 1802) then
begin
debug('FruitBat Summoned.');
break;
end;
Until(Child.TextureID = 1802);

SmartMoveMouse(Child.X, Child.Y);
if(Not R_isUptext('Cast')) then
begin
Repeat
R_ClickInterface(Child, 2);
R_ChooseOption('Select');
Until(R_ValidInterface(880));

while(R_ValidInterface(880)) do
begin
if(R_ValidInterface(880) = false) then
break;
Child:= R_GetInterfaceChild(747, 9);
R_ClickInterface(Child, 1);
wait(500);
Child:= R_GetInterfaceChild(747, 6);
R_ClickInterface(Child, 1);
end;
end;
SmartMoveMouse(Child.X, Child.Y);
if(R_isUptext('Cast')) then
begin
CastOption:= 'Cast';
end else
CastOption:= 'Fail';

//Lay Traps..
If(R_TileOnMS(Trap1, 0)) then
begin
SmartMoveMouse(R_TileToMS(Trap1, 0).x, R_TileToMS(Trap1, 0).y);
if(R_isUpText('Walk')) then
begin
SmartClickMouse(R_TileToMS(Trap1, 0).x, R_TileToMS(Trap1, 0).y, false);
R_ChooseOption('Walk');
if(R_GetMyPos = Trap1) then
R_ClickItemBy(BoxTrap, 'Lay');
R_WaitToStopAnimating(3000);
if(R_ItemExists(Papaya, Item)) then
//R_ClickItemBy(Papaya, 'Use'); //Use with Box trap..
end else
debug('Shit some noob is in our spot. Spot1');
end;

If(R_TileOnMS(Trap2, 0)) then
begin
SmartMoveMouse(R_TileToMS(Trap2, 0).x, R_TileToMS(Trap2, 0).y);
if(R_isUpText('Walk')) then
begin
SmartClickMouse(R_TileToMS(Trap2, 0).x, R_TileToMS(Trap2, 0).y, false);
R_ChooseOption('Walk');
if(R_GetMyPos = Trap2) then
R_ClickItemBy(BoxTrap, 'Lay');
R_WaitToStopAnimating(3000);
end else
debug('Shit some noob is in our spot. Spot2');
end;

If(R_TileOnMS(Trap3, 0)) then
begin
SmartMoveMouse(R_TileToMS(Trap3, 0).x, R_TileToMS(Trap3, 0).y);
if(R_isUpText('Walk')) then
begin
SmartClickMouse(R_TileToMS(Trap3, 0).x, R_TileToMS(Trap3, 0).y, false);
R_ChooseOption('Walk');
if(R_GetMyPos = Trap3) then
R_ClickItemBy(BoxTrap, 'Lay');
R_WaitToStopAnimating(3000);
end else
debug('Shit some noob is in our spot. Spot3');
end;

If(R_TileOnMS(Trap4, 0)) then
begin
SmartMoveMouse(R_TileToMS(Trap4, 0).x, R_TileToMS(Trap4, 0).y);
if(R_isUpText('Walk')) then
begin
SmartClickMouse(R_TileToMS(Trap4, 0).x, R_TileToMS(Trap4, 0).y, false);
R_ChooseOption('Walk');
if(R_GetMyPos = Trap4) then
R_ClickItemBy(BoxTrap, 'Lay');
R_WaitToStopAnimating(3000);
end else
debug('Shit some noob is in our spot. Spot4');
end;

If(R_TileOnMS(Trap5, 0)) then
begin
SmartMoveMouse(R_TileToMS(Trap5, 0).x, R_TileToMS(Trap5, 0).y);
if(R_isUpText('Walk')) then
begin
SmartClickMouse(R_TileToMS(Trap5, 0).x, R_TileToMS(Trap5, 0).y, false);
R_ChooseOption('Walk');
if(R_GetMyPos = Trap5) then
R_ClickItemBy(BoxTrap, 'Lay');
R_WaitToStopAnimating(3000);
end else
debug('Shit some noob is in our spot. Spot5');
end;
end;

Procedure CheckFloor;
var
TrapsF, Sorted: TRSObjectArray;
GroundItems: TGroundItemArray;
begin
R_FindObjectsEx([BoxTrap, BoxTrapClose, BoxTrapFruit, BoxTrapGrenwall, BoxTrapCollapse], 1, 10, TrapsF);
Sorted:= R_SortObjects(TrapsF);
SmartClickMouse(R_TileToMS(Sorted[0].Tile, 0).x, R_TileToMS(Sorted[0].Tile, 0).y, false);
R_ChooseOptionMulti(['Dismantle', 'Lay', 'Check'])

R_FindGroundItemsEx([Pawya, Papaya, 211], 10, GroundItems);
SmartClickMouse(R_TileToMS(GroundItems[0].Tile, 0).x, R_TileToMS(GroundItems[0].Tile, 0).y, false);
R_ChooseOption('Take');
end;

Procedure TeleportCamelot;
begin
PathToBank:= [Point(2757, 3476), Point(2758, 3473), Point(2762, 3470), Point(2764, 3467), Point(2765, 3464), Point(2770, 2460),
Point(2772, 3456), Point(2775, 2452), Point(2778, 3448), Point(2783, 3444), Point(2789, 3440), Point(2791, 3436),
Point(2797, 3432), Point(2804, 3433), Point(2809, 3438), Point(2809, 3441)]
end;

begin
end.

Coh3n
08-19-2011, 11:39 PM
Can you post a picture of the wire in Safe mode?

Also, try taking a look at SuperUser's hunting script. It does box trapping so you may be able to use some stuff from there.

TomTuff
08-20-2011, 12:00 AM
Ahhh that FUCKING wire no one likes! (excuse the profanity..)

Set the camera to north (or east depending on which wire) so that it shows and use a TPA of the color. But honestly the chances of succeeding the pass are so low bring antipoison anyways.

KingKong
08-20-2011, 03:35 AM
Uh, look for the uptext of the wire or something while moving the mouse within the tile?

tls
08-20-2011, 05:18 AM
The wall rocks are probably a wallobject type. Try using object composites(model ID) for the boxes. Also for the tripwire you are going to have to try moving the compass until it is visible.

Brandon
08-20-2011, 05:33 AM
The wall rocks are probably a wallobject type. Try using object composites(model ID) for the boxes. Also for the tripwire you are going to have to try moving the compass until it is visible.

I tried using RSBot/RSBuddy to see the ID of the Wall Rocks.. Nope.. Nothing. Simba Uses Object Finding to find Models no? We do R_FindObject then do Object.ModelID? I can't get the ID of the object so finding the Model ID is not an option.

Capricorn
08-20-2011, 06:18 AM
P.S. Sometimes the wire blends with the ground depending on where it is.. Oh and reflection is even worse.. just clicks miserably in random spots hoping to get it.. by that time I already triggered it and got poisoned.. Combining reflection and color might work but its still extremely hard to find.. Reflection finds it but can't click it.. colour finds it rarely and stilll can't click it.

Why are you having it click in random spots

Wouldn't be hard to do, get the middle of the tile, mouse the cursor in a 15x15 px box and right click it once uptext appears

KingKong
08-20-2011, 06:48 AM
Why are you having it click in random spots

Wouldn't be hard to do, get the middle of the tile, mouse the cursor in a 15x15 px box and right click it once uptext appears

Thats what i said, and its probably the best way to go about it in simba as of nowl

Echo_
08-20-2011, 11:45 AM
Test this out, it worked for me on your picture.

program new;
{$I SRL/SRL.scar}

var
x, y: Integer;

function FindObjArea(var x, y: Integer; text: string; col, tol: Integer; center: Boolean): Boolean;
var
TPA: TPointArray;
i: Integer;
begin
if (center) then
begin
FindColorsSpiralTolerance(MSCX, MSCY, TPA, col, MSX1, MSY1, MSX2, MSY2, tol);
end else
begin
FindColorsTolerance(TPA, col, MSX1, MSY1, MSX2, MSY2, tol);
end;
if (GetArrayLength(TPA) <> 0) then
begin
repeat
MMouse(TPA[i].x, TPA[i].y, 0, 0);
Wait(200 + Random(100));
if(IsUpText(text)) then
begin
Result := True;
x := TPA[i].x;
y := TPA[i].y;
end else
begin
Inc(i);
end;
until (i = GetArrayLength(TPA)) or Result;
end;
end;

begin
SetupSRL;
FindObjArea(x, y, '', 3031874, 0, True);
end.

Brandon
08-20-2011, 03:44 PM
Test this out, it worked for me on your picture.


FindObjArea(x, y, 'Step', 4475214, 0, True);
SmartClickMouse(x,y, true);

That's what I changed it too.. it finds two different tripwires though but the thing is the script can use both of them to get to the destination so its ok. Ty a lot for that. Still gotta use anti-poison though cuz apparently at 95 agility, I still fail it..

And for coh3n it looks like this in safemode (really no point of me taking a pic at brid's eye view cuz these ones are at 0 to halfway, full bird's eye view is just almost nothing there):
1160411605
1160611607

tls
08-20-2011, 08:55 PM
Dude if you got anti poison just run through it.

PotentPK
08-20-2011, 09:30 PM
Even if you have like 99 agility you take damage from it half the time. It's really dumb...

Yeah, you can also get poisoned from it.

Zyt3x
08-20-2011, 10:32 PM
Best bet would be to search for the rocks and then clicking in the middle of them I'd guess...

Capricorn
08-20-2011, 11:01 PM
And for coh3n it looks like this in safemode (really no point of me taking a pic at brid's eye view cuz these ones are at 0 to halfway, full bird's eye view is just almost nothing there):


That's why I suggested just randomly movign your mouse in a box area, that's what I did legit.