SRL Archive - Scripts and Snippets

[RS3] DemiseSlayer [OGL]


DemiseScythe

2013-06-30 16:02:23

Meh

DemiseScythe

2013-06-30 16:03:23

Features and Bugs Fixes ready to be released in next version:

  • None so far.

[XoL]

2013-06-30 17:36:53

Wow congrats on release! Will check out :)

Sin

2013-06-30 19:14:44

Smoking Kills needs 130 combat right? I'll get it there and test it out ^^

Ian

2013-06-30 19:44:41

Grats on the release! :)

Justin

2013-06-30 19:58:16

Fantastic work on the release DemiseScythe!

Gala

2013-07-01 06:57:18

Nice work, happy to see you making scripts again.

[XoL]

2013-07-02 11:38:29

Can I just start this script at any random spot?

DemiseScythe

2013-07-02 12:44:30

Just go to the general area where the NPC is at as if you were legiting, the script should work regardless of location but the location in the Excel sheet is the recommended one. Feel free to try it out. I will released a new version of the script tonight.

[XoL]

2013-07-02 17:50:28

I had a cave crawlers task, went to cave crawlers in smoke dungeon but the script would just walk around the dungeon (well circle really) trying to click the cave crawlers but via the minimap (so it stands on top of them)

OGL works, so I must be doing something wrong with the script itself :p

Edit: In case I am an idiot
This is what I am doing

I open DemiseSlayerOGL.simba and press play, enter my rs user/pass then the script picks a world and it logs in at cave crawlers then circles around.

Edit Edit: I am an idiot, sorry.
I didn't bother to actually look at the script so I could notice the fact you have to enter the monster number you want to be killed… no wonder it kept trying to kill aby spectres lol

[XoL]

2013-07-02 19:00:45

Hmm so it completed the task but it didn't appear to loot anything o.o and it didnt use prayer

DemiseScythe

2013-07-02 19:14:41

It only restores prayer as of now and what it loots is extremely limited but you are free to customize it. I only got it looting charms and a few rares.

[XoL]

2013-07-02 19:17:14

Ahh I see, I see so I need to turn prayer on before and will do thanks!

DemiseScythe

2013-07-02 19:44:20

That works at least until I get praying online, I tank with a bunyip pouch and some monkfish all tasks so I haven't gotten around to this. Definitely worth training summoning, this script should provide the charms.
Collected all these while coding the script. Easily +30k kills.

[XoL]

2013-07-02 20:14:31

From: DemiseScythe
That works at least until I get praying online, I tank with a bunyip pouch and some monkfish all tasks so I haven't gotten around to this. Definitely worth training summoning, this script should provide the charms.
Collected all these while coding the script. Easily +30k kills.


Very nice!

Few problems I have noticed (Ignore my tone if it comes off bad in anyway, just trying to be constructive)
1) Attacks other peoples monsters (Doesn't happen often but does happen enough to notice, blue drags)
2) Slow to attack, very often people get the monster way before it does
3) Doesn't really have a sense of where it is (Just stands in one spot when it cant find a monster)
4) Abilities are kinda weird, it spams the 100% adren one even when it doesnt have 100% adren (Momentum is great for slayer fyi)
5) Right clicks every monster (even when you are stronger than it)
6) It works fine by itself, but when other people come into the mix is when it starts to struggle

Some suggestions:
1) Better prayer support (clicks quick pray/soul split flash etc.)
2) Have a reset point, meaning when it cant find monsters it walks back to a point in the middle of their spawn
3) Spin the camera a little more (A lot of monsters are just shy of the cameras view)

Hope some of that is helpful! I am using this on an account with maxed combat stats (90 prayer, 65 summoning)

DemiseScythe

2013-07-02 20:33:57

From: [XoL]
Very nice!

Few problems I have noticed (Ignore my tone if it comes off bad in anyway, just trying to be constructive)
1) Attacks other peoples monsters (Doesn't happen often but does happen enough to notice, blue drags)
2) Slow to attack, very often people get the monster way before it does
3) Doesn't really have a sense of where it is (Just stands in one spot when it cant find a monster)
4) Abilities are kinda weird, it spams the 100% adren one even when it doesnt have 100% adren (Momentum is great for slayer fyi)
5) Right clicks every monster (even when you are stronger than it)
6) It works fine by itself, but when other people come into the mix is when it starts to struggle

Some suggestions:
1) Better prayer support (clicks quick pray/soul split flash etc.)
2) Have a reset point, meaning when it cant find monsters it walks back to a point in the middle of their spawn
3) Spin the camera a little more (A lot of monsters are just shy of the cameras view)

Hope some of that is helpful! I am using this on an account with maxed combat stats (90 prayer, 65 summoning)


Dragon Tasks are annoying because of the goldfarming bots. I got to make it prioritize on killing the baby blues and then any adults if available, resource dungeon should work better. IsFightAt could be revised but the problem with dragons is that they are just too tall and their HP bar is proportionally offtarget. The Right-clicking to attack is by design but I could make give it a boolean to turn on 1clickattacking. It was a problem back with the color version where it would find the wrong NPC or non-NPC objects instead of the desired NPC but that is no longer a problem with OGL. The Attack can be optimized, tbh a lot of the waits are just to keep the CPU usage low but if that is not a problem, I can juice up the script. Use the world chooser, give it empty worlds as param to increase your chances of finding available NPCs. The ones not goldfarmed are not bad at all. I already fixed the standing around issue but the return part can only work when walking is coded. I'll do prayer support, tbh didn't think people would use it. However, it will only handle 1 type of prayer, the quickprayer so just do with that for now. I'll expand later on. As for the abilities, you did not set up the script right. All those booleans under the Worlds are meant to prevent that. You can also prevent spaming on non-dual weilding tasks by turning DualWeild off. New version can also turn off abilities completely for tasks in which magic/ranged is used. At least until I complete range+magic abilities. Have only filled Melee abilities.

I got a genius idea to reamp the attack function, tbh it should work nicely. Will work on these issues before I release the new version. Once I hit 75 Crafting and I get Slayer Rings I can get the Task getting part working as well as banking. Then the coding for the walking can begin. I am also 1 quest away from fairy rings now so that will also be done by then.

[XoL]

2013-07-02 20:42:41

From: DemiseScythe
Dragon Tasks are annoying because of the goldfarming bots. I got to make it prioritize on killing the baby blues and then any adults if available, resource dungeon should work better. IsFightAt could be revised but the problem with dragons is that they are just too tall and their HP bar is proportionally offtarget. The Right-clicking to attack is by design but I could make give it a boolean to turn on 1clickattacking. It was a problem back with the color version where it would find the wrong NPC or non-NPC objects instead of the desired NPC but that is no longer a problem with OGL. The Attack can be optimized, tbh a lot of the waits are just to keep the CPU usage low but if that is not a problem, I can juice up the script. Use the world chooser, give it empty worlds as param to increase your chances of finding available NPCs. The ones not goldfarmed are not bad at all. I already fixed the standing around issue but the return part can only work when walking is coded. I'll do prayer support, tbh didn't think people would use it. However, it will only handle 1 type of prayer, the quickprayer so just do with that for now. I'll expand later on. As for the abilities, you did not set up the script right. All those booleans under the Worlds are meant to prevent that. You can also prevent spaming on non-dual weilding tasks by turning DualWeild off. New version can also turn off abilities completely for tasks in which magic/ranged is used. At least until I complete range+magic abilities. Have only filled Melee abilities.

I got a genius idea to reamp the attack function, tbh it should work nicely. Will work on these issues before I release the new version. Once I hit 75 Crafting and I get Slayer Rings I can get the Task getting part working as well as banking. Then the coding for the walking can begin. I am also 1 quest away from fairy rings now so that will also be done by then.


Looking forward to the changes!! and yes after further inspection of the script I realized I was dumb and could edit the abilities :p

Do you need any rsgp or anything?

DemiseScythe

2013-07-02 20:52:36

From: [XoL]
Looking forward to the changes!! and yes after further inspection of the script I realized I was dumb and could edit the abilities :p

Do you need any rsgp or anything?


Donations are welcome and appreciated, but only for those who want to. My script is free to use for all SRL Member or above and will remain so for as long as OGL mode exists. I know it might seem a little basic for a combat script at the time and the requirements are a little high but it will keep evolving into the ultimate Slayer script. I have some clever things thought out for the walking procedure. Might do a video of a beta test of the Kalphite Hive navegation to show my followers.

[XoL]

2013-07-02 21:49:24

From: DemiseScythe
Donations are welcome and appreciated, but only for those who want to. My script is free to use for all SRL Member or above and will remain so for as long as OGL mode exists. I know it might seem a little basic for a combat script at the time and the requirements are a little high but it will keep evolving into the ultimate Slayer script. I have some clever things thought out for the walking procedure. Might do a video of a beta test of the Kalphite Hive navegation to show my followers.


Well then put me down for 25m :) More to come in the future I am just a bit short on GP due to my mule with 99% of my money getting banned :p

The Mayor

2013-07-03 04:31:13

I'll put in 25m too :)

[XoL]

2013-07-03 10:31:30

If I add items to your current loot list, will it slow the script down? I was planning on adding every item over 10k.

DemiseScythe

2013-07-03 13:03:46

From: [XoL]
If I add items to your current loot list, will it slow the script down? I was planning on adding every item over 10k.


It won't slow the script down. I only really added the good drops from Fire Giants. The problem is that you need to get the item dropped to code it unless you buy from the GE an equivalent item. Beware though that if you fill your inventory, the script shuts down. So looting common items will cause the script to stop midtask. Of course you will get a sound warning for that so if you are around, you can bank and then restart the script.

[XoL]

2013-07-03 23:34:27

Regarding the new script update
*Combat works significantly better

Problems:
1) Still slow (It will have half bar adren, and by the time it finds another monster it will be back down to empty)
2) Sometimes when it trys to just click on a monster it misses and stands next to it :p

Edit:
Just did a grotworms task it was actually surprisingly faster not lighting or anything but much much more accurate than it was with kurasks.

Edit Edit:
Just did a trolls task, I had to restart the script multiple times (It tends to just stall after a while and just stare at a troll with the cursor over the troll but refuses to actually click, then it adds to the kill counter :p)

DemiseScythe

2013-07-04 03:56:48

From: [XoL]
Regarding the new script update
*Combat works significantly better

Problems:
1) Still slow (It will have half bar adren, and by the time it finds another monster it will be back down to empty)
2) Sometimes when it trys to just click on a monster it misses and stands next to it :p

Edit:
Just did a grotworms task it was actually surprisingly faster not lighting or anything but much much more accurate than it was with kurasks.

Edit Edit:
Just did a trolls task, I had to restart the script multiple times (It tends to just stall after a while and just stare at a troll with the cursor over the troll but refuses to actually click, then it adds to the kill counter :p)


I will check the troll task to see what is going on. If you are complaining about the still slow part is because 99% of the idle time you see is because of the loot function. The only way to make it any faster is to relinquish loot by Settting Looting to False and switching the 3rd Counter to Slayer Exp. That should unlock the fastest combat experience. If all you care about is the charms, you can easily have a charming imp around. It loots all of your charms even before they are dropped. As for the misclicking with 1clickattack, that is a problem you have to put up with if you choose that attack method. Right-clicking still works almost perfect. The reason of having it right click originally was to be 100% sure that it had started an attack before moving into the combat loop. This is not reflection and I spent +4 hours playing around with it and found no real way of telling whether I'm in combat or not. It would had been easier with the old exp system but now that you only get hp experience once the monster is fully dead, I cannot really use that anymore. Try what I said above and see if it helps, tbh just switch back to right-clicking and deal with it. Afterall OGL is not reflection and there is only so much that can be done with it. Botting will never be as fast as legitting and don't worry too much about the adrenaline bar, just don't add any ultimate abilities and you'll be fine. Back in the day, you would only have a special attack every 25 seconds so give the system a break about it.

I'll add a fix about the Kill counter issue. Forgot to do it for this version. You could have also increased your looting list too much since the script wont resume until all available loot has been picked up, it is a bad idea to have it loot an increased amount of items. Keep in mind an uncut dstone has the same ID as an uncut sapphire so that can cause trouble and the script will stall until the uncut sapphire has disappeared. Items with the same shape share the same ID, so the same goes for Rube Bars looking like Bronze Bars. If you have it look for the Bar ID but the string only has 'Rune Bar' it will stall trying to find the rune bar until the bronze bar is gone from the floor. I would only loot items over 15k/Rune Scimitar, charms, effigies, half keys and rares like black masks, etc.

Ian

2013-07-04 04:04:07

From: DemiseScythe
The reason of having it right click originally was to be 100% sure that it had started an attack before moving into the combat loop. This is not reflection and I spent +4 hours playing around with it and found no real way of telling whether I'm in combat or not. It would had been easier with the old exp system but now that you only get hp experience once the monster is fully dead, I cannot really use that anymore.


If you don't have to be in a specific tab for the rest of the combat, you can go to the combat tab and there will be a green bar with an opponent interface there if you are in combat.

DemiseScythe

2013-07-04 04:16:28

From: BMWxi
If you don't have to be in a specific tab for the rest of the combat, you can go to the combat tab and there will be a green bar with an opponent interface there if you are in combat.


I thought about that but it needs to be in inventory tab to heal while finding a target. Not a big deal but thats how I died with Hellhounds one of the three times the other two being while looting. I can add make tab and checks for that and give it a try. I guess not being able to eat for a few ms wont be so bad. Ill consider this for the next version.

DemiseScythe

2013-07-04 22:59:02

Official Loot List:

Starved ancient effigy - effigy - Missing
Dragon chainbody - gon chain - 3324355460
Black mask - k mask - 1182878063
Palm tree seed - Palm - 541977946
Yew seed - Yew se - 2400692441, 4112152584, 3669097956
Magic seed - Magic se - 2009913236, 2246979275, 4230049813
Off-hand leaf-bladed sword - bladed - 3647042427
Amulet of ranging - f ranging - 621313628
Whip vine - p vine - 2997314643
Abyssal whip - Abys - 2729928444
Mystic robe top (light) - Mystic r - 3121211039
Mystic robe top (dark) - Mystic r - 834609455
Shield left half - left - 916924418
Dragon helm - gon helm - 3833579286
Mystic robe bottom (light) - Mystic r - 1852337515
Mystic robe bottom (dark) - Mystic r - 2014921743
Leaf-bladed sword - bladed - 3647042427
Rune 2h sword - ne 2h s - 844879681
Dragon spear - gon spear - 3461973061
Tooth half of a key - a key - 2468660364
Rune kiteshield - Rune ki - 3282698371
Rune chainbody - Rune ch - 1507366136
Granite maul - Granite - 2039998805
Granite helm - Granite - 1304627569
Rune battleaxe - Rune ba - 3062137454
Loop half of a key - a key - 2133821654
Rune warhammer - Rune w - 2196863880
Rune sq shield - ne sq - 1905315383
Rune full helm - ne fu - 3001022798
Rune longsword - ne lo - 4160504796
Rune pickaxe - ne pi - 1140866610
Dragon dagger - gon dag - 3040268712
Rune scimitar - ne sci - 3210455169
Vecna skull - Vecna - 789504508
Casket - Cask - 3327881684
Rune spear - une sp - 2080387902
Rune helm - ne he - 2254964944
Teleport crystal - rystal - 3864696379
Tiny elf crystal - rystal - 3864696379
Curved bone - d bone - 3663430427
Long bone - ng bone - 4198897803
Blood rune - Blood r - 1498249028
Law rune - Law r - 3754948404
Nature rune - Nature r - 1826273652
Death rune - Death r - 4266708750
Spin ticket - ticket - 4082858008
Blue charm - charm - 3759434362
Crimson charm - charm - 2984528207
Green charm - charm - 2950982353
Gold charm - charm - 585563216

Clean toadflax - Clean - Noted
Clean ranarr - Clean - Noted
Clean snapdragon - Clean - Noted
Clean torstol - Clean - Noted
Coal - Coal - Noted
Adamantite ore - Adamantite o - Noted
Pure essence - Pure - Noted
Battlestaff - Battlestaff - Noted
Air orb - Air o - Noted
Fire orb - Fire o - Noted
Runite ore - Runite o - Noted
Adamant bar - Adamant bar - Noted
Rune bar - Rune ba - Noted
Yew logs - Yew l - Noted
Saradomin brew - n brew - Noted


Uncut dragonstone - ragons - ID Conflict
Dragonstone - ragons - ID Conflict
Rune arrows - ne ar - ID Conflict
Torstol seed - Torstol s - ID Conflict
Dwarf weed seed - f weed s - ID Conflict
Lantadyme seed - me se - ID Conflict
Onyx bolts - Onyx - ID Conflict


Crystal triskelion fragment - rystal - Special
Abyssal demon head - head - Special
Kurask head - head - Special
Basilisk head - head - Special
Ectoplasmator - Ecto - Special
Champion's scroll - Champion - Special


Purple, Red and Blue items will be looted as long as they are dropped along with any Black item. All items are comfirmed to be looted by my script except for the effigy since I still haven't had one of them drop.

[XoL]

2013-07-05 10:01:00

Is this in 1.1? or is that for the next update?

DemiseScythe

2013-07-05 10:46:28

From: [XoL]
Is this in 1.1? or is that for the next update?


The looting did not change since 1.0 but the above list will be added in 1.2 and will be permanent unless monster drops change. It is the most effective looting can be since adding further items will slow down the script. In addition, if all seeds share the same ID, they will become Red items as well.

[XoL]

2013-07-05 12:34:37

From: DemiseScythe
The looting did not change since 1.0 but the above list will be added in 1.2 and will be permanent unless monster drops change. It is the most effective looting can be since adding further items will slow down the script. In addition, if all seeds share the same ID, they will become Red items as well.


Just wondering but what will happen if the inventory is full of food and it sees an item on the ground it is supposed to pick up? (eat food, or just leave the item?)

DemiseScythe

2013-07-05 15:09:17

From: [XoL]
Just wondering but what will happen if the inventory is full of food and it sees an item on the ground it is supposed to pick up? (eat food, or just leave the item?)


It has a full inventory check. It eats if it can, else it teleports with the future intent to bank and go back to continue the task. The function itself is pretty much final and has all its failsafes in place, only thing left to do is to tweak the items and ids.

Look for the line that has GLH_Hitpoints(100); in the loot function. That command will eat regardless of hitpoints and return false if there isnt any food.

[XoL]

2013-07-14 07:04:18

Hows 1.2 coming along? So far I noticed 1.1 isn't bad it gets the job done if I am alone in the dungeon.

DemiseScythe

2013-07-14 09:54:26

From: [XoL]
Hows 1.2 coming along? So far I noticed 1.1 isn't bad it gets the job done if I am alone in the dungeon.


1.2 is definitely way superior to 1.1 in what it concerns combat. It attacks the closest NPC now, Loot has been completed, Misclicks have been dealt with and the NPC finding is much more efficient. There is an issue with the praying in the way it is coded right now, if the cycles messes up, you will turn prayer on when you kill the NPC and turn it off when you fight it again, this is a big issue and could get you identified as a bot so it is best to stay away from overhead prayers for now. The only solution to that I can think of is praying during the whole task. I don't need to pray for any of the tasks so I don't really see much use for this function. I still need to revise the check for the NPC being in combat. I can find it but it takes too long, if I reduce the time I only find it may be 1/10th so I will need to fix that soon.

I still need to improve all of the code for the previously working functions as only 4-5 have been optimized. There is a list of what is still to be done for version 1.2 to be released, I will try to get that done today and released it.

For 1.3 I plan to release a setup guide on the op thread so that it is easier for people to get the script working. I am almost at the stage where I can build the main functions to get the slayer script working alone, the only thing that worries me is Equipment changing for the fact that Main-hand Leaf and Off-hand Leaf Sword have the same sprite/ID but I do have some ideas planned for that.

Here is a quick preview of what the slaying engine will look like:

Once I implement these functions, the script will move into the path coding stage. The only problem is that the script will no longer be usable to do tasks manually as in 1.0 to 1.2 since only the tasks that are fully coded (Walk included) will work and the rest will be set to Manual until they are coded or Disabled.

Some small noteworthy changes for 1.2 is that Fungal Mages will no longer be supported as you cannot mage in the Lunar Spellbook required for NPC Contact. I will support either 100% ranged or melee although it will tank while ranging and not loot projectiles.

[XoL]

2013-07-14 19:42:47

Lol I am weirdly super excited for this haha

DemiseScythe

2013-07-14 20:05:40

From: [XoL]
Lol I am weirdly super excited for this haha


I am just waiting to get a Kalphite queen task from Sumona to finish the GLH_GetTask function and 1.2 will be ready for release. I could probably release GLH_CheckTask while I am at it, it grabs the current Task and sets how many kills are left. No more having to manually change the target ID and kills, just start the script at the task's location and the script will do the rest. Slayer Gem or Ring of Slaying is required in inv for this one.

Sin

2013-07-14 20:29:21

Any idea web walking and task getting will be implemented? Right meow it's just a glorified auto fighter :P

DemiseScythe

2013-07-14 20:49:30

From: Sin
Any idea web walking and task getting will be implemented? Right meow it's just a glorified auto fighter :P


It will not go from a task to another without banking so all the walkpaths will be the same for each task, thus no need for web walking. I must admit 50-60% of the path is shared by a few tasks, specifically those located in the same dungeon. All but the walking will be up for version 1.3 but I want to have version 1.2 out for a few days to see if people have any issues with the script. i can already make the script open a bank chest from anywhere in Runescape so it is just a matter of coding the system for Banking to be completed. My script is easily one of the most advanced Simba ps script written to date and it is still in development. Once all the functions in the preview are completed, the script will be autonomous. At the time, the delay is due to improving the script's speed since some functions are just too slow for my taste.

In the future, I can make it go from one task to another although some tasks will force banking.

Sin

2013-07-14 21:00:24

Okay this is awkward, I meant to type 'when', not web >_>
iPhone autocorrect FTL.

DemiseScythe

2013-07-14 21:09:35

From: Sin
Okay this is awkward, I meant to type 'when', not web >_>
iPhone autocorrect FTL.


I know, I can only go as fast as Runescape allows me. I've done 6+ tasks trying to get a rare Kalphite Queen task but I haven't yet, I am stuck until this happens but in the meanwhile, I managed to make Attacking faster for a plus. There updated the loot list in post 27 to resemble script version 1.2 loot list.

I really hope I get a Kalphite Queen task tonight so I can move on to more important functions.

[XoL]

2013-07-14 22:54:21

Ah yeah I hope you get it too! I have yet to get one either :/

Olly

2013-07-15 09:52:42

From: DemiseScythe
My script is easily one of the most advanced Simba ps script written to date and it is still in development


I wouldn't get too ahead of your yourself.. since it is ogl :p

[XoL]

2013-07-15 18:09:22

Eh I think it has the ability to become the most advanced script available easily

DemiseScythe

2013-07-15 18:43:47

From: [XoL]
Eh I think it has the ability to become the most advanced script available easily


Don't worry about it, what I do is just not appreciated enough.

In other news, I blew through 1100+ Slayer Points trying to get Queen task and didn't. I will continue trying to get it. Although if you or anyone can find the chat window for challenges, I will be able to use that instead. I need the window that has the "I prefer a regular assignment instead"

I revised the task list and Fairy Rings are not necessary anymore. The requirements as of now are Slayer Helm, Slayer Rings, Instant Kill and NPC Contact, as for Agility, 70 Agility is a must, but those under can just set the hellhound task to Cancel.

[XoL]

2013-07-15 20:05:29

From: DemiseScythe
Don't worry about it, what I do is just not appreciated enough.

In other news, I blew through 1100+ Slayer Points trying to get Queen task and didn't. I will continue trying to get it. Although if you or anyone can find the chat window for challenges, I will be able to use that instead. I need the window that has the "I prefer a regular assignment instead"

I revised the task list and Fairy Rings are not necessary anymore. The requirements as of now are Slayer Helm, Slayer Rings, Instant Kill and NPC Contact, as for Agility, 70 Agility is a must, but those under can just set the hellhound task to Cancel.


Sounds good getting those requirements as we speak, I know that the second slayer master gives the special task about 1/20 tasks but its a different special assignment would that matter?

If I get it do you just want pictures?

Even without it could it be released? and if either of us/anyone who uses it happens to get it update for a 1.21 update?

Sjoe

2013-07-15 20:22:13

Kevin is also working on a Slayer script, so you'll have some competition :)

DemiseScythe

2013-07-15 20:34:30

From: [XoL]
Sounds good getting those requirements as we speak, I know that the second slayer master gives the special task about 1/20 tasks but its a different special assignment would that matter?

If I get it do you just want pictures?

Even without it could it be released? and if either of us/anyone who uses it happens to get it update for a 1.21 update?


I need you to run this function:
  Writeln(ToStr(Length(GLH_TexturesExistArea([52107], IntToBox(132, 436, 385, 496)))));

In the main loop instead of GLH_FightNPC(TargetID, IDKills);

It should give you a number, the above function is to be run when the select an option screen appears:

The first "I need a new task" message will give a 4 for this function as well as the "Would you like tips?" message. The "I would like a regular task instead" message in which this option is 2. should give a 2 for this function theoretically since the messages are of different lengths. Any Slayer master works as this message is the same for them all. A screen of the chatbox with the option like the image above and the result for the above function should be plenty for me to release version 1.2.

You will also need a new DemiseOGL.simba which can be found here:

If there are any compiling errors, just // the line and proceed. These compatibility issues are fixed in the actual script.

The issue with these challenge task is that they cannot be canceled through points and the task is difficult itself so that would mean the task streak will have to be lost by canceling through the low level slayer master. I want to avoid accidentally accepting one of these.

[XoL]

2013-07-15 20:39:43

If I get it I will do this!
Hopefully I get one today, already did 4 tasks

DemiseScythe

2013-07-15 20:56:19

From: Sjoe
Kevin is also working on a Slayer script, so you'll have some competition :)


I agree although our approaches are entirely different. He is doing Kuradal while I am focusing on lower level tasks such as Sumona's. Also my walking approach will be unique in itself, I just need Brandon's fixed Angle function to be able to code it. It will use screen objects to navegate.
Magic seed drop =)

The Mayor

2013-07-15 21:14:40

From: DemiseScythe
It will use screen objects to navigate


Like ObjectDTM? or mainscreen objects?

[XoL]

2013-07-15 21:17:30

Oh I made this when you released 1.0, I just never bothered to upload it is the inventory I use.

I click the ovl myself when I am babysitting.

DemiseScythe

2013-07-15 21:18:43

From: The Mayor
Like ObjectDTM? or mainscreen objects?


Mainscreen objects including NPCs. If I know the current compass angle and the area I am in from the unique model in it, I will know in which direction to walk towards.

DemiseScythe

2013-07-15 21:24:55

From: [XoL]
Oh I made this when you released 1.0, I just never bothered to upload it is the inventory I use.

I click the ovl myself when I am babysitting.


Nice, I will have setup pictures for 1.2 and later versions. The charms are no necessary since 0.6. If it can eat to make space, it will. Also, I do not bother with antipoisons, ever since armour have get you 5k or higher hitpoints, the chances of dying from poisoning are like none. I don't use any for currently coded tasks, Kalphites/Caves. One pouch per task is enough, I suggest turning the Sum potions into 1 dose and withdrawing 1 dose and 1 pouch per task trip.


This setup works for every task except those that need special items such as gargs.

This is how combat works for Version 1.2: http://www.youtube.com/watch?v=Auct6BqPs78

It is a big upgrade from before although it still has issues when other players are around since I still haven't gotten around to get IsFightAt working.

[XoL]

2013-07-15 22:56:12

From: DemiseScythe


This is how combat works for Version 1.2: http://www.youtube.com/watch?v=Auct6BqPs78

It is a big upgrade from before although it still has issues when other players are around since I still haven't gotten around to get IsFightAt working.


Looks drastically better!

DemiseScythe

2013-07-16 06:32:13

From: [XoL]
Looks drastically better!


Thank you and I finally did it.



I got the function to work perfect now, I did need a small modification:

Writeln(ToStr(Length(GLH_TexturesExistArea([52107], IntToBox(132, 436, 458, 496)))));

GLH_GetTask; and GLH_CheckTask; are now fully coded. I will release 1.2 around 11-12 pm EST.

DemiseScythe

2013-07-16 10:54:50

Version 1.2 is finally out so have fun slaying.

Version 1.3 will not be released until after RS3 so please wait for the next update.

Edit:

I made another .zip file that now has an update on GLH_GetTask; to fix a bug. If your version has a while loop at line 629 then you have the correct version.

The experience is good and the loot is not bad either:


Well that didn't last long, the recent RS update broke my script because now health bars are placed at one's feet instead of ones heads. I am not sure if that is a bug or intended by Jagex but the fix is just a matter of cords.

Fix:
Replace line 777 on SlayerCombatOGL.simba with:
    Result := Length(GLH_TexturesExistArea([19635, 7395, 16065, 14790], IntToBox(215, 195, 315, 265))) > 0;

Edit:

Jagex fixed their own bug, HP bars are back to where they should, just reinstall the include from the download and the script should continue to work correctly.

[XoL]

2013-07-16 19:16:42

Hmm I don't know what seems to be going wrong, 1.1 worked for me but when I try 1.2 I get this error:

SRL Compiled in 16 msec
Loading SMART: http://world114.runescape.com/f5353458834331501508
Error: Exception: Access violation at line 43
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, SRL - Options Bitmap]

The Line I am getting the access violation at is a blank line in the class GLHook

var
GLImgPointer: Integer;

Procedure FreeGLImagePointer;
begin
FreeTarget(GLImgPointer);
end;

DemiseScythe

2013-07-16 20:08:34

From: [XoL]
Hmm I don't know what seems to be going wrong, 1.1 worked for me but when I try 1.2 I get this error:

SRL Compiled in 16 msec
Loading SMART: http://world114.runescape.com/f5353458834331501508
Error: Exception: Access violation at line 43
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, SRL - Options Bitmap]

The Line I am getting the access violation at is a blank line in the class GLHook

var
GLImgPointer: Integer;

Procedure FreeGLImagePointer;
begin
FreeTarget(GLImgPointer);
end;


{$Define GLHook}
{$include_once SRL/SRL.Simba}

Procedure GLHook_HideNavBar; //Allows exact MouseMovement in the OpenGL world. Forcefully remove the Mouse offset.
Begin
SRL_DisableNavBar; //Comment out to enable normal mouse movement. For testing..
End;

Procedure GLHook_ShowNavBar; //Resets the Navigation bar. Forcefully enable it and add the Mouse offset.
Begin
SRL_EnableNavBar;
End;

{$include_once GLHook/GLHookIDs.Simba}
{$include_once GLHook/GLCommunication.Simba}
{$include_once GLHook/Text.Simba}
{$include_once GLHook/Timing.Simba}
{$include_once GLHook/Chat.Simba}
{$include_once GLHook/Amount.Simba}
{$include_once GLHook/GameTab.Simba}

{$include_once GLHook/Flag.Simba}
{$include_once GLHook/Login.Simba}
{$include_once GLHook/Bank.Simba}

var
GLImgPointer: Integer;

Procedure FreeGLImagePointer;
begin
FreeTarget(GLImgPointer);
end;

Function GLHook_Setup(ProcessID: String): Boolean;
Begin
GLC_MSBox := IntToBox(MSX1 + SRL_NAVBAR_INGAME_X, MSY1 + SRL_NAVBAR_INGAME_Y, MSX2 + SRL_NAVBAR_INGAME_X, MSY2 + SRL_NAVBAR_INGAME_Y);
GLC_MMBox := IntToBox(MMX1 + SRL_NAVBAR_INGAME_X, MMY1 + SRL_NAVBAR_INGAME_Y, MMX2 + SRL_NAVBAR_INGAME_X, MMY2 + SRL_NAVBAR_INGAME_Y);
GLC_MIBox := IntToBox(MIX1 + SRL_NAVBAR_INGAME_X, MIY1 + SRL_NAVBAR_INGAME_Y, MIX2 + SRL_NAVBAR_INGAME_X, MIY2 + SRL_NAVBAR_INGAME_Y);
GLC_MCBox := IntToBox(MCX1 + SRL_NAVBAR_INGAME_X, MCY1 + SRL_NAVBAR_INGAME_Y, MCX2 + SRL_NAVBAR_INGAME_X, MCY2 + SRL_NAVBAR_INGAME_Y);

Result := GLHSetup(ProcessID);
{$IFNDEF SMART}
GLImgPointer := SetTargetArray(GLHGetImagePointer, 765, 553);
{$ENDIF}
AddOnTerminate('FreeGLImagePointer');
End;
That is how your GLHook.simba should look like, also you need to completely replace DemiseSlayerOGL.simba since the settings have changed including how SMART is loaded like Setup_GLHook(); instead of Setup_GLH(); In other words, 1.2 scripts and include are only compatible with each other. Try that and let me know if it works, keep in mind your action bar settings are useless as of 1.2 since I made a standard setup.

What happens is that when I fix a bug, I get Brandon to fix it, I fix my include manually and Brandon fixes his public release, I just assume the users here would update their OGL include as well. Like if the waitoption for loot is taking over 5 seconds, your include is definitely outdated. Give me a couple minutes and I'll .zip my OGL simbas with the fixes.

http://puu.sh/3EFJ1.rar

That should be 100% compatible with my script.

[XoL]

2013-07-16 20:25:37

Thanks works great will post any issues I have!

[XoL]

2013-07-16 20:38:29

I seem to be getting this error once in a while


Error: Out Of Range at line 139
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, SRL - Options Bitmap]

Its in my Chat Class (here is what is highlighted)

If ((Line < 1) Or (Not InRange(LineNumber, 1, 9))) Then Exit;
If (Line < (9 - LineNumber)) Then Exit;
Line := (9 - LineNumber);

H := High(TextInfo[Line]); *********THIS LINE IS HIGHLIGHTED*********

For I := 0 To H Do
If (TextInfo[Line][I].Colour = Colour) Then
Result := Result + TextInfo[Line][I].Text;
End;

So far it happened twice after 20, 30 kills respectively.

DemiseScythe

2013-07-16 20:41:30

From: [XoL]
I seem to be getting this error once in a while


Error: Out Of Range at line 139
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, SRL - Options Bitmap]

Its in my Chat Class (here is what is highlighted)

If ((Line < 1) Or (Not InRange(LineNumber, 1, 9))) Then Exit;
If (Line < (9 - LineNumber)) Then Exit;
Line := (9 - LineNumber);

H := High(TextInfo[Line]); *********THIS LINE IS HIGHLIGHTED*********

For I := 0 To H Do
If (TextInfo[Line][I].Colour = Colour) Then
Result := Result + TextInfo[Line][I].Text;
End;

So far it happened twice after 20, 30 kills respectively.


Yup, Brandon fixed that one and a few more. Just replace your include with the one in the .rar above to fix the bugs.

[XoL]

2013-07-16 20:47:18

Thanks updated will let ya know if I experience anything else!

[XoL]

2013-07-17 18:38:13

So I have been getting this error, normally I just restart a few times and it won't break again but I have to do this every task

SRL Compiled in 0 msec
Paired with SMART[57068]
Error: Out Of Range at line 788
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, SRL - Options Bitmap]

This is in the slayerCombatOGL class

I, T: Integer;
ModelPoints: TPointArray;
begin
Result := False;
ModelPoints := GLH_ModelsExistArea(NPC[ID].NPCIDs, IntToBox(SSX1+125, SSY1+NPC[ID].HMod, SSX2-125, ***THIS IS THE LINE THAT IS HIGHLIGHTED **** SSY2+NPC[ID].HMod));
if (Length(ModelPoints) = 0) then
ModelPoints := GLH_ModelsExistArea(NPC[ID].NPCIDs, IntToBox(SSX1, SSY1+NPC[ID].HMod, SSX2, SSY2+NPC[ID].HMod));
if (Length(ModelPoints) > 0) then
begin

DemiseScythe

2013-07-17 20:51:13

From: [XoL]
So I have been getting this error, normally I just restart a few times and it won't break again but I have to do this every task

SRL Compiled in 0 msec
Paired with SMART[57068]
Error: Out Of Range at line 788
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, SRL - Options Bitmap]

This is in the slayerCombatOGL class

I, T: Integer;
ModelPoints: TPointArray;
begin
Result := False;
ModelPoints := GLH_ModelsExistArea(NPC[ID].NPCIDs, IntToBox(SSX1+125, SSY1+NPC[ID].HMod, SSX2-125, ***THIS IS THE LINE THAT IS HIGHLIGHTED **** SSY2+NPC[ID].HMod));
if (Length(ModelPoints) = 0) then
ModelPoints := GLH_ModelsExistArea(NPC[ID].NPCIDs, IntToBox(SSX1, SSY1+NPC[ID].HMod, SSX2, SSY2+NPC[ID].HMod));
if (Length(ModelPoints) > 0) then
begin


Yea, I noticed that one a few tasks after I released and I fixed it, I just never published the fix. That bug is actually related to GLH_CheckTask; so fix your function by replacing line 670 with this:

if GLH_WaitOptionMulti(['Kills', 'left'], 900) then

Also, perm block fungal mages or those grifo tasks whenever you can. It actually bans all Polypore creatures which include 3 non-supported tasks. You get three perm bans for the prize of 100 points and 1 ban slot.

Might release a new version tomorrow with other-player detection. I am still to build a world change function whenever another player comes by controlled by user defined boolean. It already detects isfightat, presense and if talked to by a player. Another thing I could do tomorrow is to add the whole task canceling part of the script, so when it gets a task at the end, it cancels with points until it gets a task my script can actually do. Ofc I'll add a temp boolean for those who do not want to use this atm.

[XoL]

2013-07-17 21:01:39

Thanks added the fix!

DemiseScythe

2013-07-17 21:20:38

From: [XoL]
Thanks added the fix!


No problem, I usually always have the fixes done by the time someone requests them. I don't think there are a lot of people that actually run my script. Some cannot get OGL installed, others simply don't like OGL and most just dislike me. It would be nice if it got a bit more use but it was originally intended as a private script so I cannot complain. I run my script as much as I can and already got close to 85 Slayer with over 3.1M Slayer xp. I aim to get 200M Slayer experience and I plan to bot all the way there which is why I take the time to make my code stable instead of using excessive failsafes. i can code all of the walking in a day so there isn't really that much left for me to do. I have already come up with NIS countermeasures to not only keep this script working but improve its efficiency by having a larger view area/client size. Btw just saw my Player Detection work for the first time. Its voice alert was clear, detection worked great and I was able to go from bed to desk and hop worlds in seconds. If you teamview from a mobile device to your computer, the sound is transmitted from the host to the guest and you can hear the warnings anywhere. I've heard my task finished warnings being over 15 miles away from my computer due to TV, it is great.

[XoL]

2013-07-17 22:30:54

Damn I will also use your script till 99 so you will get a lot of use from me! That is pretty intense looking forward to the newer updates as they come, so far I am using your script exclusively besides for my 10th task where I try Kevin's script or just kill the monster myself to get some extra slayer points in (I still need to buy a bunch of crap from the store)

DemiseScythe

2013-07-17 22:38:41

From: [XoL]
Damn I will also use your script till 99 so you will get a lot of use from me! That is pretty intense looking forward to the newer updates as they come, so far I am using your script exclusively besides for my 10th task where I try Kevin's script or just kill the monster myself to get some extra slayer points in (I still need to buy a bunch of crap from the store)


I do that but I get task from Shilo Master instead and +80% chance it is a task my script can do, else I legit it.

[XoL]

2013-07-17 23:58:08

Since I replaced line 670 I seem to be getting this error all the time (Same class, slayercombatOGL)


begin
Result := False;
ModelPoints := GLH_ModelsExistArea(NPC[ID].NPCIDs, IntToBox(SSX1+125, SSY1+NPC[ID].HMod, SSX2-125, SSY2+NPC[ID].HMod));
if (Length(ModelPoints) = 0) then
ModelPoints := GLH_ModelsExistArea(NPC[ID].NPCIDs, IntToBox(SSX1, SSY1+NPC[ID].HMod, SSX2, SSY2+NPC[ID].HMod));
if (Length(ModelPoints) > 0) then

Error: Out Of Range at line 788
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, SRL - Options Bitmap]

Le Jingle

2013-07-18 00:34:33

Very nice work and dedication to such a project, Viceless. :)

DemiseScythe

2013-07-18 09:01:42

From: [XoL]
Since I replaced line 670 I seem to be getting this error all the time (Same class, slayercombatOGL)


begin
Result := False;
ModelPoints := GLH_ModelsExistArea(NPC[ID].NPCIDs, IntToBox(SSX1+125, SSY1+NPC[ID].HMod, SSX2-125, SSY2+NPC[ID].HMod));
if (Length(ModelPoints) = 0) then
ModelPoints := GLH_ModelsExistArea(NPC[ID].NPCIDs, IntToBox(SSX1, SSY1+NPC[ID].HMod, SSX2, SSY2+NPC[ID].HMod));
if (Length(ModelPoints) > 0) then

Error: Out Of Range at line 788
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, SRL - Options Bitmap]


Do you have Slayer Gem or Ring of Slaying in your inventory when you hit play?

function GLH_CheckTask: Boolean;
var
I: Integer;
ItemPoints: TPointArray;
begin
Result := False;
ItemPoints := GLH_TexturesExistArea([43350, 73695], IntToBox(SIX1, SIY1, SIX2, SIY2));
if (Length(ItemPoints) > 0) then
begin
GLHook_ShowNavBar;
Mouse(ItemPoints[0].X, ItemPoints[0].Y, 0, 0, False);
GLHook_HideNavBar;
if GLH_WaitOptionMulti(['Kills', 'left'], 900) then
begin
Wait(550 + Random(50));
if GLH_FindBlackChatMessage('current') then
begin
for I := 1 to 37 do
begin
if GLH_FindBlackChatMessage(NPC[I].Name) then
begin
TargetID := I;
KillGoal := StrToInt(ExtractFromStr(GLH_GetBlackChatMessage, Numbers));
Result := True;
Exit;
end;
end;
end;
end;
end;
end;

Replace this entire function, may be the wait is not in the original function. Also in the main script, change the main loop to this:


if GLH_CheckTask then
begin
GLH_FightNPC;
GLH_GetTask;
end;


Other than that, just try to hold until I upload the next version of the script later today, I haven't gotten that error since the first night.

Version 1.3 is almost ready, I added a whole player detection system with automatic world hopping. It still needs testing but it should theoretically work. There are bug fixes and tweaks here and there aimed to smooth combat. I am only missing Task canceling which requires Ring of Slaying support. I am going to expand on GLH_GetTask; so that if it cannot get a task through NPC Contact, it visits Sumona with a Ring of Slaying and gets a task the old fashion way. This is necessary because you cannot use NPC contact to get a task after you have cancelled one because Sumona doesn't let you NPC chat if she is in the Main Screen. She just tells you to talk to her instead.

From: Le Jingle
Very nice work and dedication to such a project, Viceless. :)


Thank you and I hope you enjoy it.

[XoL]

2013-07-18 14:32:50

Ah I wish I could try those fixes but with the push of a new smart update that happened last night I cant seem to get anything working again >.< Cough would you possibly be able to upload your plugins folder?

DemiseScythe

2013-07-18 18:29:33

From: [XoL]
Ah I wish I could try those fixes but with the push of a new smart update that happened last night I cant seem to get anything working again >.< Cough would you possibly be able to upload your plugins folder?


Plugins Folder: http://puu.sh/3Gdc4.rar

Yes, stay away from new SMART until after RS3, I will then get my script to work with it and include all the necessary RS3 fixes. Turn autoupdate off to Simba, I do all my updates manually to prevent stuff like this from happening.

Brandon

2013-07-18 18:50:03

From: DemiseScythe
Plugins Folder: http://puu.sh/3Gdc4.rar

Yes, stay away from new SMART until after RS3, I will then get my script to work with it and include all the necessary RS3 fixes. Turn autoupdate off to Simba, I do all my updates manually to prevent stuff like this from happening.



Yeah.. I gotta finish the plugin though :( Been loafting on it so hard :l It's boring coding it now :(
Been staring at the same file for ages haven't written a single line lol.


Did you find a way for determining user setup though? Like everyone can have different setup :l

[XoL]

2013-07-18 18:58:37

Ah I have no idea what I have messed up, what got updated yesterday? Was it smart only?
If thats the case could you also send me your includes folder because mine got updated yesterday (More specifically the SPS and SRL folders, or just SRL if they didn't update SPS yesterday not sure)

DemiseScythe

2013-07-18 19:11:44

From: [XoL]
Ah I have no idea what I have messed up, what got updated yesterday? Was it smart only?
If thats the case could you also send me your includes folder because mine got updated yesterday (More specifically the SPS and SRL folders, or just SRL if they didn't update SPS yesterday not sure)


I'll do when I get home. You only need like three SRL files. Smartparams, globals and SRL.simba

@Brandon, if we put the rule to have all windows of a certain type being the same size, like the inventory showing max slots, it can be placed anywhere on the screen and I am sure with a texture, we can find the inv icon, then it is just a matter of doing something like AreaInv := IntToBox(x-?, y-?, x+?, y+?); where the ? Values will be constant 100% of the time but the actual box bounds are always relative to the user's set up. Can also be done like MIX1 := x-? And etc, the all functions that use MIX1 would not be broken nor require large modifications. Ill elaborate more on this with pics once I get back on my laptop.

[XoL]

2013-07-18 19:15:01

Thanks :)

If you guys are talking about NIS layout system they will give you presets, just have everyone use the "regular" rs default? I think most legit players would probably be using that one as well.

If you guys are talking about something else ignore my babbling :p

DemiseScythe

2013-07-18 19:30:22

From: [XoL]
Thanks :)

If you guys are talking about NIS layout system they will give you presets, just have everyone use the "regular" rs default? I think most legit players would probably be using that one as well.

If you guys are talking about something else ignore my babbling :p


Not everyone's screen is the same size, using relative offsets can allow people with big screens to use bigger areas

XoL: http://puu.sh/3Ghzi.rar There are the srl files that got overriten

DemiseScythe

2013-07-18 20:41:18

Version 1.3 is live now. I skipped some functions in order to get the bug fixes out there quick. I will keep working on the functions I am missing in the meanwhile and hopefully I can piece it all together soon.

[XoL]

2013-07-18 20:43:58

From: DemiseScythe
Version 1.3 is live now. I skipped some functions in order to get the bug fixes out there quick. I will keep working on the functions I am missing in the meanwhile and hopefully I can piece it all together soon.


Thanks :)!
Will update to 1.3! this is exciting so far 1.2 was near flawless besides for user error (my fault)

woah. Did you have a custom version of smart? It seems like its 5x faster, and looks different

DemiseScythe

2013-07-18 20:51:03

From: [XoL]
Thanks :)!
Will update to 1.3! this is exciting so far 1.2 was near flawless besides for user error (my fault)

woah. Did you have a custom version of smart? It seems like its 5x faster, and looks different


I have custom smart 8.1 revision 5.7 and it works very smooth. Probably why I tend to get less errors than others. Giving you my ogl include could have also speed things up since there are a lot of fixes there not released by Brandon.

I might just release two versions of my script from now on, a simple version the way Ive been releasing it and a full version which also contains my entire plugins folder, those three srl files needed for ogl, and the ogl include for those who prefer it. The second option basically installs OGL for those who cannot get it to work. It is an easy way for people to install and get this script running.

[XoL]

2013-07-18 20:59:58

Well I love it, will let you know how 1.3 is going for me after 1.2 finishes this task.

I just thought of this for 1.4, but instead of house tabs maybe make varrock tabs the preference again (With the completion of Easy Varrock Tasks and speaking to rat burgis) You can teleport a few steps from the GE, easy banking/less walking/fairy ring is nearby if you wanted to use them. Anyway just an idea, banking will be a cool addition.

E: Yeah thats a good idea, simplifies everything.

DemiseScythe

2013-07-18 21:07:17

The script banks at Burthope by default since it is the most efficient bank. Teleporting to the house is just intended to be a private place to cast NPC contact at, if people sit at varrock and see random players teleporting there every 35 minutes to cast NPC contact might suspect something. Test the banking procedure by calling GLH_Bank; from anywhere in RS, and the script will open a bank no matter what.

[XoL]

2013-07-19 00:38:28

So I am using 1.3 now, few things I noticed.

It seems a lot slower than 1.2, the reason for this is because it isn't really using the abilities as much (it uses them but much much slower) Which in turn eats more often/takes longer per task.

It seems like it can find monsters even better though!

DemiseScythe

2013-07-19 07:12:04

From: [XoL]
So I am using 1.3 now, few things I noticed.

It seems a lot slower than 1.2, the reason for this is because it isn't really using the abilities as much (it uses them but much much slower) Which in turn eats more often/takes longer per task.

It seems like it can find monsters even better though!


I did not change the abilities nor the eating function, it will eat every time your hp drops to yellow or it needs to make room to pick up an item, has been that way since 1.0. The only thing that changed is that it now checks if in combat but only if there are other players in the minimap. Post a picture of your ability bar.

Prayer := False; {Do Not Use}
Summoning := True;

These are the only two things that can slow the combat ability, summoning will lose some seconds as will prayer.

Also keep in mind the abilities work best while dual weilding. I expect the user to dual weild on all tasks but Dragons and Basilisks. The abilities work slower on those because they lack dual weild but the rest should work fairly fast. Prayer slows the script down more than it helps. I am inclined to scrap the code as I did with poison healing. They are just not worth it. Summoning I need to fix because if you have less than 3 summoning points, you will notice the mouse moving around the summoning. Need to make that more efficient like if it doesnt have any summoning supplies left, it should set summoning off for the remainder of the task, It can always be set to user settings in between tasks but will save a lot of time.

The abilities have an intentional wait because there are combo attacks, if you cast an ability right after, you wasted your previous effort. I'll look into it so only Thereshold abilities have a long wait while basics are almost immidiate.

[XoL]

2013-07-19 10:09:50

From: DemiseScythe
I did not change the abilities nor the eating function, it will eat every time your hp drops to yellow or it needs to make room to pick up an item, has been that way since 1.0. The only thing that changed is that it now checks if in combat but only if there are other players in the minimap. Post a picture of your ability bar.

Prayer := False; {Do Not Use}
Summoning := True;

These are the only two things that can slow the combat ability, summoning will lose some seconds as will prayer.

Also keep in mind the abilities work best while dual weilding. I expect the user to dual weild on all tasks but Dragons and Basilisks. The abilities work slower on those because they lack dual weild but the rest should work fairly fast. Prayer slows the script down more than it helps. I am inclined to scrap the code as I did with poison healing. They are just not worth it. Summoning I need to fix because if you have less than 3 summoning points, you will notice the mouse moving around the summoning. Need to make that more efficient like if it doesnt have any summoning supplies left, it should set summoning off for the remainder of the task, It can always be set to user settings in between tasks but will save a lot of time.

The abilities have an intentional wait because there are combo attacks, if you cast an ability right after, you wasted your previous effort. I'll look into it so only Thereshold abilities have a long wait while basics are almost immidiate.


I actually want to retract my previous statement, it appears the world I was on was just super laggy so it made it seem everything was super slow.

DemiseScythe

2013-07-19 18:46:16

Alright, glad to hear.



First Abyssal Demons task and first two whips =)

[XoL]

2013-07-19 19:16:27

From: DemiseScythe
Alright, glad to hear.



First Abyssal Demons task and first two whips =)


Wow you are pushing the play button a lot, very nice!

[XoL]

2013-07-20 23:10:48

So I noticed in places where the NPCs are a little spread apart it tends to stand there and just circle the camera waiting for something to come into view, some solutions I was thinking of were (A: having a re-locate function, meaning it just goes back to the center of said npc spawn..would probably have to be hard coded or B: Making the camera check other angles it only seems to go right to left but if you included down and up movements the scope is far larger)

Anyway just some suggestions for finding npcs :)

DemiseScythe

2013-07-21 00:30:44

From: [XoL]
So I noticed in places where the NPCs are a little spread apart it tends to stand there and just circle the camera waiting for something to come into view, some solutions I was thinking of were (A: having a re-locate function, meaning it just goes back to the center of said npc spawn..would probably have to be hard coded or B: Making the camera check other angles it only seems to go right to left but if you included down and up movements the scope is far larger)

Anyway just some suggestions for finding npcs :)


That won't come until walking but the client is actually looking for NPC dots while it spins as well as NPCs. Just coded Daggs and they are much tougher than I remember. I wouldn't last more than 40 kills with an inventory of monks so that would mean 4-5 trips per task and I am almost maxed with good gear. I figured however that praying ranged does reduce the damage I take significantly, thus I will not scrape prayer since there is really an use for it. I will get prayer working with turning on prayers before the task and turning them off after the task is over. For that relocate, I need Brandon to stop playing unbottable games and code the plugin to get cords. Of course, I am not going to rush him so there is nothing else I can do but wait.



Also, Looting must be turned off for Dagg task so I will need to invent a function to handle special rules for a few tasks.

[XoL]

2013-07-21 00:54:06

From: DemiseScythe
That won't come until walking but the client is actually looking for NPC dots while it spins as well as NPCs. Just coded Daggs and they are much tougher than I remember. I wouldn't last more than 40 kills with an inventory of monks so that would mean 4-5 trips per task and I am almost maxed with good gear. I figured however that praying ranged does reduce the damage I take significantly, thus I will not scrape prayer since there is really an use for it. I will get prayer working with turning on prayers before the task and turning them off after the task is over. For that relocate, I need Brandon to stop playing unbottable games and code the plugin to get cords. Of course, I am not going to rush him so there is nothing else I can do but wait.



Also, Looting must be turned off for Dagg task so I will need to invent a function to handle special rules for a few tasks.


Ah yeah all these agro npcs (dags/hell hounds) are really tough, I normally just hardcore babysit them.
Good luck :)

[XoL]

2013-07-21 10:18:33

Today I noticed the script only fights kalphite soldiers, perhaps add workers to the possibility of being killed (Much faster task)

DemiseScythe

2013-07-21 11:18:25

From: [XoL]
Today I noticed the script only fights kalphite soldiers, perhaps add workers to the possibility of being killed (Much faster task)


Their experience is too small, you are free to add them yourself though since it's open source.

[XoL]

2013-07-21 15:30:29

From: DemiseScythe
Their experience is too small, you are free to add them yourself though since it's open source.


As in slayer xp? Lol up until this point I though every monster you killed gave you the same xp… awk

DemiseScythe

2013-07-21 16:02:10

From: [XoL]
As in slayer xp? Lol up until this point I though every monster you killed gave you the same xp… awk


Slayer experience is relative to hp experience. The more hp a monster has, the more slayer experience it gives thus it is not good slayer xp/hr to do the low level alternatives of slayer tasks. Try it out legit and see for yourself.

I just unlocked Dust Devils. Only need to code them now. Then three to four more quests and I'll be able to code Cave Horrors, Terror Dogs and Warped Tortoises. Then all the Able/Botable tasks will have been coded.

Fixing prayer would be next forcing prayer for Dags with Ranged and Hellhounds with Melee. Prayer will be turned off for the remaining tasks but users will be able to enable protection prayers at will for the remaining tasks.

After that I might add fixes for RS3 but other than that, I think my script will be on hold for a couple months. I need to study for an exam and work on some side projects. I consider my script reliable enough to hold it in its state for a while. I can get 1M slayer xp every three days with little effort and runing time. I do have a few misc bug fixes to apply as a timeout with the looting function. I will also apply fixes to the currently working portion of the script during this period but the new functions will not come until late September if at all. My script is already automated to a comfortable state. If anyone wishes to use a fully automated one, they should seek Kevin's script. Afterall, he claims his gets 50k slayer xp/hr which is considerably higher than what my script can and will ever get. I don't know if I will ever get my script fully automated but if I do, it will not be anytime soon.

I might code Jungle and Desert Strykes but only tanking their specials, I am yet to see if this is efficient.

Ashaman88, please leave the post as it is, I am direct quoting him unless you rather I use an actual forum quotes. He is the one making the claim, not me. I personally cannot get such experience per hour legitting unless I cannon so he must be doing some kind of neat tricks to get that high. I am not breaking any rules and thus your editing is power abuse. Post the rule I am breaking or stop it before I go up the power chain.

Desert Strykewyrms are Botable now. I will also add Jungle Strykewyrms IDs. I also need to make it loop Hexcrest and Sights.

[XoL]

2013-07-21 20:31:52

I see, I am looking forward to the next/last update whichever comes first.

From this point the script at 1.3 is pretty reliable but like you mentioned in the post above if you implement those things it will be perfect for my kind of use!

Thanks again!

Mjordan

2013-07-22 14:07:48

@[XoL], So is this still working after the RS3 update? I had no idea we had a slayer script here now. It's my last 99 and I've been trying to legit it, but it's such a pain. This has made my day haha!

DemiseScythe

2013-07-22 15:25:52

From: Mjordan
@[XoL], So is this still working after the RS3 update? I had no idea we had a slayer script here now. It's my last 99 and I've been trying to legit it, but it's such a pain. This has made my day haha!


You got to walk and withdraw supplies manually but other than that, you just hit play and it does everything and gets a new task once you are done. It plays some .wav to let you know the task is finished, then you withdraw more supplies, walk to next task and hit play again. It is not autonomous but it sure beats legitting slayer. I am trying to obtain new plugins from Brandon to fix it and get it working for RS3.

[XoL]

2013-07-22 15:30:56

What demise said, yeah slayer is a pain. Its not 100% automatic but its still 100000x better than doing it yourself :p Works with most tasks as well, there is another slayer script available by kevin too (its in the junior members section)

footballjds

2013-07-22 16:02:44

From: DemiseScythe
You got to walk and withdraw supplies manually but other than that, you just hit play and it does everything and gets a new task once you are done. It plays some .wav to let you know the task is finished, then you withdraw more supplies, walk to next task and hit play again. It is not autonomous but it sure beats legitting slayer. I am trying to obtain new plugins from Brandon to fix it and get it working for RS3.


so it's basically an all-in-one fighter?

DemiseScythe

2013-07-22 16:09:46

From: footballjds
so it's basically an all-in-one fighter?


No, all in one fighters do not grab tasks and they work for any NPC, this script only works for your slayer task.

footballjds

2013-07-22 17:23:12

From: DemiseScythe
No, all in one fighters do not grab tasks and they work for any NPC, this script only works for your slayer task.


so the only benefit of this versus an autofighter is it doesn't work for all slayer monsters but it will get you a new task?

[XoL]

2013-07-22 18:53:49

From: footballjds
so the only benefit of this versus an autofighter is it doesn't work for all slayer monsters but it will get you a new task?


Why are you trying to start an argument here? Its been stated time and time again she will eventually add walking etc. All in one fighters don't specifically react to certain monsters whereas this one does, currently in the version that is out it can get tasks/kill the exact amount of that monster/loot valuables that those certain slayer tasks would drop, literally all you have to do is move your character to the spot the next monster is at.

DemiseScythe

2013-07-22 23:47:10

Lets just keep things peaceful everyone. I looked at RS3 and there isn't much to change to make my script functional. As soon as Brandon releases the new ogl plugin, I will update my script shortly after. I will go with the new standard 1024x768 resolution although my laptop screen will probably force me to use 1366x718 since it is widescreen. I will however allow users to use whatever setup they prefer and feed my script the x1,y1,x2,y2 cords of each interphase and it should work with that. My script only needs a Minimap, Inventory, Chat And the bounds of the stats+abilities box. The mainscreen will be considered the biggest rectangle on the screen that doesn't have an interphase on it. Ill elaborate on this with a picture tomorrow, there are some simple rules in regards to interphase dimensions but it is straight forward.

footballjds

2013-07-23 09:53:10

From: [XoL]
Why are you trying to start an argument here? Its been stated time and time again she will eventually add walking etc. All in one fighters don't specifically react to certain monsters whereas this one does, currently in the version that is out it can get tasks/kill the exact amount of that monster/loot valuables that those certain slayer tasks would drop, literally all you have to do is move your character to the spot the next monster is at.


I'm not trying to, and it takes two to argue so even if i was it'd go nowhere.

From: DemiseScythe
Lets just keep things peaceful everyone. I looked at RS3 and there isn't much to change to make my script functional. As soon as Brandon releases the new ogl plugin, I will update my script shortly after. I will go with the new standard 1024x768 resolution although my laptop screen will probably force me to use 1366x718 since it is widescreen. I will however allow users to use whatever setup they prefer and feed my script the x1,y1,x2,y2 cords of each interphase and it should work with that. My script only needs a Minimap, Inventory, Chat And the bounds of the stats+abilities box. The mainscreen will be considered the biggest rectangle on the screen that doesn't have an interphase on it. Ill elaborate on this with a picture tomorrow, there are some simple rules in regards to interphase dimensions but it is straight forward.


sounds like fun, :p

masterBB

2013-07-23 09:59:37

From: DemiseScythe
I will go with the new standard 1024x768 resolution


The resoltion which was decided on is under discusion. It seem to become smaller to support laptops. Current idea of the setup would look similar to:


I suggest waiting one day till all the srl devs have agreed ;)

DemiseScythe

2013-07-23 10:00:18



This is more or less what it should look like but as you can see, there is a lot of wasted space here and there so there is still room for moving around the interphases further to achieve the maximum Mainscreen size possible.

DemiseScythe

2013-07-23 10:33:52

From: masterBB
The resoltion which was decided on is under discusion. It seem to become smaller to support laptops. Current idea of the setup would look similar to:


I suggest waiting one day till all the srl devs have agreed ;)
You should EDIT 3D WORLD on that account to get your player in the center of the mainscreen box.

True but as I said, People can use whatever interphase they wish and just enter the corner cords of each of those boxes in addition to the cords of their player and my script will be able to handle everything else. I got 15 inch laptop computer and I can run 1366 x 718 comfortably. People can use the official one if they wish, they just got to input all the interphase cords into the settings. I am offering compatibility while allowing Devs to use what they think is best for everyone.

I'm personally going to use this setup from now on:

I only use my own scripts, OGL code and the color functions I do use, either don't need to cords or allow me to enter my own x1, y1, x2, y2 cords which should mean there is not problems for me. =)

I find it very space efficent.

footballjds

2013-07-23 11:01:55

From: masterBB
The resoltion which was decided on is under discusion. It seem to become smaller to support laptops. Current idea of the setup would look similar to:


I suggest waiting one day till all the srl devs have agreed ;)


that's disgusting, why would you chop the top? :p

demise, is it possible to get info from OGL about the menus and there coords?

DemiseScythe

2013-07-23 11:06:24

From: footballjds
that's disgusting, why would you chop the top? :p

demise, is it possible to get info from OGL about the menus and there coords?


I won't be able to tell until I get the new plugin but I should be able to detect the "Bag" icon over the inventory and then generate the bounds from that the same way bounds are generated for ChooseOption.

Brandon

2013-07-23 13:55:10

From: DemiseScythe
I won't be able to tell until I get the new plugin but I should be able to detect the "Bag" icon over the inventory and then generate the bounds from that the same way bounds are generated for ChooseOption.


The current one already does this.. Gets the bounds of anything. That's how the ChooseOptions worked as well as the chatbox and log in. I don't think I'd remove such a thing..

Just moving everything to lape and ditching pascal script. I CBA to write two includes again and export a Lape dll, PS dll. It's obviously way faster for Lape to handle and easier to handle.

[XoL]

2013-07-23 14:57:43

From: DemiseScythe
You should EDIT 3D WORLD on that account to get your player in the center of the mainscreen box.

True but as I said, People can use whatever interphase they wish and just enter the corner cords of each of those boxes in addition to the cords of their player and my script will be able to handle everything else. I got 15 inch laptop computer and I can run 1366 x 718 comfortably. People can use the official one if they wish, they just got to input all the interphase cords into the settings. I am offering compatibility while allowing Devs to use what they think is best for everyone.

I'm personally going to use this setup from now on:



I only use my own scripts, OGL code and the color functions I do use, either don't need to cords or allow me to enter my own x1, y1, x2, y2 cords which should mean there is not problems for me. =)

I find it very space efficent.


That is basically what I am using now too, tbh its the most eye room least clutter while maintaining functionality.

DemiseScythe

2013-07-26 00:03:24

I will have a working version of my script by tomorrow. It will not be automatic in interphase identification as of the first release but that is being worked on and eventually it will work no matter what your setup is. The only difference with respect to 1.3 is that it will need user input for interphase bounds(x1, y1, x2, y2). It does have a few extra tasks such as Daggs, Deserts and Jungles. I'll add more on this tomorrow.

Edit:

Actually the script is going to take too long to fix. I do not mind the work but I am running out of time. I am not sure if it will make a come back or not, it all depends how it things go for me irl. Script moderator, feel free to put this thread in the outdated/broken section. I will reach 200M slayer xp one day, but my goal will probably have to wait for a good while. Sorry to the few who were counting on this script. Hopefully Kevin does a great job getting his to work with RS3 once SRL6 comes out and you all can bot to 99 Slayer.

masterBB

2013-08-08 10:19:10

Re-opened as requested by @DemiseScythe;

DemiseScythe

2013-08-08 18:49:56

From: masterBB
Re-opened as requested by @DemiseScythe;


Thank you.

I will upload Version 2.0 tomorrow after I am done cleaning up the thread, the script and ironing out some bugs.

Current Bugs left to Fix:

Player Detection seems to be broken although it worked on tests.
Check Task must support the Slayer Gem as well, not just the Ring of Slaying.
Prayer must be made task specific as well as Looting instead of Global booleans.

Sneak peak from the first working RS3 version, V1.9: http://www.youtube.com/watch?v=-5URJ0TrL3k

Combat Abilities were broken on that version but have since been fixed speeding up combat considerably.

Brandon

2013-08-10 03:28:59

From: DemiseScythe
Thank you.

I will upload Version 2.0 tomorrow after I am done cleaning up the thread, the script and ironing out some bugs.

Current Bugs left to Fix:

Player Detection seems to be broken although it worked on tests.
Check Task must support the Slayer Gem as well, not just the Ring of Slaying.
Prayer must be made task specific as well as Looting instead of Global booleans.

Sneak peak from the first working RS3 version, V1.9: http://www.youtube.com/watch?v=-5URJ0TrL3k

Combat Abilities were broken on that version but have since been fixed speeding up combat considerably.




Here.. I just got around to adding the make angle, make height, and a couple others like login, etc.. to the include I have.. BEFORE you copy these, it is wise to do a diffcheck on each of them or back up your include to make sure these ones don't mess it up. Especially diffcheck the last file. They all work with what I have but that's cuz I have other files and stuff that needs pushing. Just too lazy atm.

Make Compass and Make Compass Height. Don't worry about anything about the Cache. If you get "Cache" errors, just remove those. You need the latest include to use them and I haven't released it because the latest include uses the Dev version of Smart.

{$include_once GLX/GLXCore.Simba}
{$include_once GLX/Cache.Simba}

type FloatPoint = record
X, Y: Single;
end;

Function FloatPoint.Create(X, Y: Single): FloatPoint;
Begin
Self.X := X;
Self.Y := Y;
Result := Self;
End;

Function ShortestArcDeg(Angle, Target: Single): Single;
Begin
If (abs(Target - Angle) < 180) Then
Begin
Result := Target - Angle;
Exit;
End;

If (Target > Angle) Then
Begin
Result := Target - Angle - 360;
Exit;
End;
Result := Target - Angle + 360;
End;

Function ShortestArcRad(Angle, Target: Single): Single;
Begin
If (abs(Target - Angle) < PI) Then
Begin
Result := Target - Angle;
Exit;
End;

If (Target > Angle) Then
Begin
Result := Target - Angle - PI * 2;
Exit;
End;
Result := Target - Angle + PI * 2;
End;

Function GL_GetMinimapBounds: TBox;
var
I: Integer;
Background, Corners: glTextureArray;
Begin
If (UseSysCache) Then
Begin
I := SysCache.Contains(CACHE_MINIMAP);
if (I <> -1) Then
Begin
Result := SysCache[I].Area;
Exit;
End;
End;

Background := glGetTextures(3786240);
Corners := glGetTextures(386460);
If (Length(Background) < 1) or (Length(Corners) < 1) Then Exit;

For I := 0 To High(Background) Do
If (PointInBox(Point(Corners[0].X, Corners[0].Y), Background[I].Bounds)) then
Begin
Result := Background[I].Bounds;
If (UseSysCache) Then
SysCache.CacheMinimap(Result);
Exit;
End;
End;

Procedure GL_GetMapCoords(var TL, BL, BR, TR: FloatPoint);
var
T: FloatPoint;
X, Y: Array[0..3] of single;
begin
GLXMapCoords(X, Y);
TL := T.Create(X[0], Y[0]);
BL := T.Create(X[1], Y[1]);
BR := T.Create(X[2], Y[2]);
TR := T.Create(X[3], Y[3]);
end;

Function GL_GetLocalPos: TPoint;
var
Player: TPoint;
TL, BL, BR, TR: FloatPoint;
PPX, PPY, PPZ: Double;
TVX, TVY, BVX, BVY: Double;
Begin
If (Not GL_LoggedIn) Then Exit;
GL_GetMapCoords(TL, BL, BR, TR);
Player := MiddleBox(GL_GetMinimapBounds);

TVX := TR.X - TL.X;
TVY := TR.Y - TL.Y;
BVX := BL.X - TL.X;
BVY := BL.Y - TL.Y;
PPX := Player.X - TL.X;
PPY := Player.Y - TL.Y;
PPZ := (TVX * BVY) - (TVY * BVX);
Result.X := Round(((PPX * BVY) - (PPY * BVX)) * 512.0 / PPZ);
Result.Y := Round(((PPY * TVX) - (PPX * TVY)) * 512.0 / PPZ);
End;

Function GL_MakeCompass(Angle: Single; Tolerance: Integer = 5): Boolean;
var
T: Timer;
Left: Boolean;
AngleDistance: Single;
CurrentAngle: Integer;
Begin
CurrentAngle := GLXCompassDeg;
If ((CurrentAngle < 0) or (Not GL_LoggedIn)) Then
Exit;

Angle := FixD(Angle);
T.Start();

While ((Abs(ShortestArcDeg(CurrentAngle, Angle)) > Tolerance) and (T.TimeElapsed() < 10000)) do
Begin
AngleDistance := CurrentAngle - Angle;
Left := ((AngleDistance > 0) and (abs(AngleDistance) <= 180)) or ((AngleDistance < 0) and (abs(AngleDistance) > 180));
if (Left) Then
KeyDown(VK_LEFT)
Else
KeyDown(VK_RIGHT);

CurrentAngle := GLXCompassDeg;
Result := Abs(ShortestArcDeg(CurrentAngle, Angle)) <= Tolerance;
If (Result) Then
Begin
If (Left) Then
KeyUp(VK_LEFT)
Else
KeyUp(VK_RIGHT);
Break;
End;
Wait(RandomRange(16, 20));
End;

If (Left) Then
KeyUp(VK_LEFT)
Else
KeyUp(VK_RIGHT);
Result := Abs(ShortestArcDeg(CurrentAngle, Angle)) <= Tolerance;
End;

Function GL_MakeCompassHeight(Height: Integer; Tolerance: Integer = 4): Boolean;
var
T: Timer;
Up: Boolean;
CurrentHeight: Integer;
Begin
CurrentHeight := GLXCompassHeightDeg;
If ((CurrentHeight < 0) or (Not GL_LoggedIn)) Then
Exit;

T.Start();
If (Height <= 5) Then Height := RandomRange(5, 7);

While((abs(CurrentHeight - Height) > Tolerance) and (T.TimeElapsed() < 10000)) do
Begin
Up := Height > CurrentHeight;
If (Up) Then
KeyDown(VK_UP)
Else
KeyDown(VK_DOWN);

CurrentHeight := GLXCompassHeightDeg;
Result := abs(CurrentHeight - Height) <= Tolerance;
If (Result) Then
Begin
If (Up) Then
KeyUp(VK_UP)
Else
KeyUp(VK_DOWN);
Break;
End;
Wait(RandomRange(5, 10));
End;

If (Up) Then
KeyUp(VK_UP)
Else
KeyUp(VK_DOWN);
Result := Abs(CurrentHeight - Height) <= Tolerance;
End;


Login player:

type TPlayer = record
Name: String;
NickName: String;
Pass: String;
Pin: String;
World: TIntegerArray;
end;


Function GL_LoginToLobby(Player: TPlayer): Boolean;
var
I, J: Integer;
T: Timer;
Area: TBox;
Text: glTextArray;
Textures: glTextureArray;
Label
Start;
Begin
Result := (GL_LoggedIn or GL_LobbyScreen);
If (Result) Then Exit;

Start:
T.Start();
Repeat
If (GL_RSReady) Then Break;
If (T.TimeElapsed() > 180000) Then
Begin
WriteLn('It has been 3 minutes and Runescape is not yet ready... Terminating.');
TerminateScript;
End;
Wait(RandomRange(1000, 2000));
Until(False);

T.Reset();
WriteLn('Welcome to Runescape.');
Textures := glGetTextures([76466, 76453]);
If (Length(Textures) < 1) Then Exit;

For I := 0 To 1 Do
Begin
If (I = 0) Then
Area := glTextureBounds(Textures[0], Textures[1])
Else
Area := glTextureBounds(Textures[2], Textures[3]);

Text := glCharsToTexts(glGetChars(Area), 2, 5);
If (Length(Text) > 0) Then
Begin
Mouse(Text[0].Bounds.X2, (Text[0].Bounds.Y1 + Text[0].Bounds.Y2) div 2, 2, 3, MOUSE_LEFT);
While(Length(Text) > 0) Do
Begin
Text := glCharsToTexts(glGetChars(Area), 2, 5);
TypeByte(VK_BACK);
Wait(25 + Random(20));
End;
End;

Wait(Random(300));

If (I = 0) Then
Begin
WriteLn(Capitalize(Player.Name));
TypeSend(Player.Name);
End Else
TypeSend(Player.Pass);
Wait(800 + Random(50));
End;

T.Start();
Repeat
If (T.TimeElapsed() > 60000) Then
Goto Start;

If (GL_LobbyScreen) Then
Break;
Until(False);
Result := True;
End;


Fix to the text functions.. There is a bug in lape where it checks the second part of the and statement even when the first part fails. Thus I had to use an extra if statement..


Changes to text functions:

{$loadlib GLX}
{$include_once GLX/Internals.Simba}
//OffsetOf - PtrUInt(@(CStruct(nil + 1)^.Y)) - 1;

type
GL_DEBUG_MODE = (GL_MODE_NONE, GL_MODE_TEXTURES, GL_MODE_MODELS, GL_MODE_FONTS, GL_MODE_HUD);


type glTexture = record
ID: Integer;
ColourID: Integer;
X, Y: Integer;
Bounds: TBox;
end;

type glModel = record
ID: Cardinal;
TID: Integer;
X, Y: Integer;
end;

type glChar = record
Colour: Cardinal;
X, Y: Integer;
Letter: Char;
Shadow: Boolean;
Translate: Array[0..2] of Single;
Bounds: TBox;
end;

type glText = record
Text: String;
Bounds: TBox;
end;

type glTextEx = record
Text: Array Of String;
Areas: Array Of TBox;
Colours: Array Of Integer;
end;


type
glCharArray = array of glChar;
glTextArray = array of glText;
glTextExArray = array of glTextEx;
glModelArray = array of glModel;
glTextureArray = array of glTexture;

Procedure Pointer.Inc(Size: Int64);
Begin
Self := Self + Size;
End;

Function glTextureBounds(var A, B: glTexture): TBox;
Begin
Result := IntToBox(A.Bounds.X1, A.Bounds.Y1, B.Bounds.X2, B.Bounds.Y2);
If (Result.X1 > Result.X2) Then
Begin
Result.X1 := B.Bounds.X1;
Result.X2 := A.Bounds.X2;
End;

If (Result.Y1 > Result.Y2) Then
Begin
Result.Y1 := B.Bounds.Y1;
Result.Y2 := B.Bounds.Y2;
End;
End;

Procedure glDebug(Mode: GL_DEBUG_MODE; HudID: Cardinal = 0; X1, Y1, X2, Y2: Integer = 0);
Begin
GLXDebug(Ord(Mode), HudID, X1, Y1, X2, Y2);
End;

Procedure glDebug(Mode: GL_DEBUG_MODE; HudID: Cardinal; Area: TBox); overload;
Begin
GLXDebug(Ord(Mode), HudID, Area.X1, Area.Y1, Area.X2, Area.Y2);
End;

Function glGetTextures: glTextureArray;
var
Size, I: Cardinal;
Ptr: Pointer;
Begin
Result := [];
Ptr := GLXTextures(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
Result[I] := glTexture(Ptr^);
Ptr.Inc(sizeof(glTexture));
End;
End;

Function glGetTextures(ID: Integer): glTextureArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
J := 0;
Result := [];
Ptr := GLXTextures(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if (Integer(Ptr^) = ID) then
begin
Result[J] := glTexture(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glTexture));
End;
SetLength(Result, J);
End;

Function glGetTextures(IDs: TIntegerArray): glTextureArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
J := 0;
Result := [];
Ptr := GLXTextures(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if (IDs.Contains(Integer(Ptr^))) then
begin
Result[J] := glTexture(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glTexture));
End;
SetLength(Result, J);
End;

Function glGetTextures(Area: TBox): glTextureArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
J := 0;
Result := [];
Ptr := GLXTextures(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if (PointInBox(Point(Integer((Ptr + sizeof(Integer) * 2)^), Integer((Ptr + sizeof(Integer) * 3)^)), Area)) then
begin
Result[J] := glTexture(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glTexture));
End;
SetLength(Result, J);
End;

Function glGetTextures(ID: Integer; Area: TBox): glTextureArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
J := 0;
Result := [];
Ptr := GLXTextures(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if ((Integer(Ptr^) = ID) and (PointInBox(Point(Integer((Ptr + sizeof(Integer) * 2)^), Integer((Ptr + sizeof(Integer) * 3)^)), Area))) then
begin
Result[J] := glTexture(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glTexture));
End;
SetLength(Result, J);
End;

Function glGetTextures(IDs: TIntegerArray; Area: TBox): glTextureArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
J := 0;
Result := [];
Ptr := GLXTextures(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if (IDs.Contains(Integer(Ptr^)) and (PointInBox(Point(Integer((Ptr + sizeof(Integer) * 2)^), Integer((Ptr + sizeof(Integer) * 3)^)), Area))) then
begin
Result[J] := glTexture(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glTexture));
End;
SetLength(Result, J);
End;

Function glGetTextures(ID, ColourID, Tolerance: Cardinal): glTextureArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
J := 0;
Result := [];
Ptr := GLXTextures(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if ((Integer(Ptr^) = ID) and (SimilarColors(Integer((Ptr + sizeof(Integer))^), ColourID, Tolerance))) then
begin
Result[J] := glTexture(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glTexture));
End;
SetLength(Result, J);
End;

Function glGetTextures(IDs, ColourIDs, Tolerances: TIntegerArray): glTextureArray; overload;
var
Size, I, J, K: Cardinal;
Ptr: Pointer;
Begin
J := 0;
Result := [];
Ptr := GLXTextures(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
For J := 0 To High(IDs) Do
If ((IDs[J] = Integer(Ptr^)) and (SimilarColors(Integer((Ptr + sizeof(Integer))^), ColourIDs[J], Tolerances[J]))) then
begin
Result[K] := glTexture(Ptr^);
Inc(K);
Break;
end;
Ptr.Inc(sizeof(glTexture));
End;
SetLength(Result, K);
End;

Function glGetTextures(ID, ColourID, Tolerance: Cardinal; Area: TBox): glTextureArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
J := 0;
Result := [];
Ptr := GLXTextures(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if ((Integer(Ptr^) = ID) and (SimilarColors(Integer((Ptr + sizeof(Integer))^), ColourID, Tolerance)) and (PointInBox(Point(Integer((Ptr + sizeof(Integer) * 2)^), Integer((Ptr + sizeof(Integer) * 3)^)), Area))) then
begin
Result[J] := glTexture(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glTexture));
End;
SetLength(Result, J);
End;

Function glGetTextures(IDs, ColourIDs, Tolerances: TIntegerArray; Area: TBox): glTextureArray; overload;
var
Size, I, J, K: Cardinal;
Ptr: Pointer;
Begin
J := 0;
Result := [];
Ptr := GLXTextures(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
For J := 0 To High(IDs) Do
If ((IDs[J] = Integer(Ptr^)) and (SimilarColors(Integer((Ptr + sizeof(Integer))^), ColourIDs[J], Tolerances[J])) and (PointInBox(Point(Integer((Ptr + sizeof(Integer) * 2)^), Integer((Ptr + sizeof(Integer) * 3)^)), Area))) then
begin
Result[K] := glTexture(Ptr^);
Inc(K);
Break;
end;
Ptr.Inc(sizeof(glTexture));
End;
SetLength(Result, K);
End;

Function glGetModels: glModelArray;
var
Size, I: Cardinal;
Ptr: Pointer;
Begin
Result := [];
Ptr := GLXModels(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
Result[I] := glModel(Ptr^);
Ptr.Inc(sizeof(glModel));
End;
End;

Function glGetModels(ID: Cardinal): glModelArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
Result := [];
Ptr := GLXModels(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if (Cardinal(Ptr^) = ID) then
begin
Result[J] := glModel(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glModel));
End;
SetLength(Result, J);
End;

Function glGetModels(IDs: TCardinalArray): glModelArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
Result := [];
Ptr := GLXModels(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if (IDs.Contains(Cardinal(Ptr^))) then
begin
Result[J] := glModel(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glModel));
End;
SetLength(Result, J);
End;

Function glGetModels(Area: TBox): glModelArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
Result := [];
Ptr := GLXModels(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if (PointInBox(Point(Integer((Ptr + sizeof(Integer) * 2)^), Integer((Ptr + sizeof(Integer) * 3)^)), Area)) then
begin
Result[J] := glModel(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glModel));
End;
SetLength(Result, J);
End;

Function glGetModels(ID: Cardinal; Area: TBox): glModelArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
Result := [];
Ptr := GLXModels(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if ((Cardinal(Ptr^) = ID) and (PointInBox(Point(Integer((Ptr + sizeof(Integer) * 2)^), Integer((Ptr + sizeof(Integer) * 3)^)), Area))) then
begin
Result[J] := glModel(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glModel));
End;
SetLength(Result, J);
End;

Function glGetModels(IDs: TCardinalArray; Area: TBox): glModelArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
Result := [];
Ptr := GLXModels(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if (IDs.Contains(Cardinal(Ptr^)) and (PointInBox(Point(Integer((Ptr + sizeof(Integer) * 2)^), Integer((Ptr + sizeof(Integer) * 3)^)), Area))) then
begin
Result[J] := glModel(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glModel));
End;
SetLength(Result, J);
End;

Function glGetChars: glCharArray;
var
Size, I: Cardinal;
Ptr: Pointer;
Begin
Result := [];
Ptr := GLXFonts(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
Result[I] := glChar(Ptr^);
Ptr.Inc(sizeof(glChar));
End;
End;

Function glGetChars(Area: TBox): glCharArray; overload;
var
Size, I, J: Cardinal;
Ptr: Pointer;
Begin
J := 0;
Result := [];
Ptr := GLXFonts(Size);
SetLength(Result, Size);

For I := 0 To Size - 1 Do
Begin
if (PointInBox(Point(Integer((Ptr + sizeof(Integer))^), Integer((Ptr + (sizeof(Integer) * 2))^)), Area)) then
begin
Result[J] := glChar(Ptr^);
Inc(J);
end;
Ptr.Inc(sizeof(glChar));
End;
SetLength(Result, J);
End;

Function glRemoveTextShadows(var Chars: glCharArray): glCharArray;
var
I, J: Integer;
begin
J := 0;
SetLength(Result, length(chars));
For I := 0 To High(chars) do
begin
if ((I <= High(Chars) - 1) and (Chars[I].X - Chars[I + 1].X = 1)) then
Inc(I);
Result[J] := Chars[I];
Inc(J);
end;
SetLength(Result, J);
end;

Function glGetCharSpacing(var glChars: glCharArray): Integer;
var
I, W, S: Integer = 0;
Begin
Result := 0;
glChars := glRemoveTextShadows(glChars);

For I := 0 To High(glChars) do
begin
W := abs(glChars[I].Bounds.X2 - glChars[I].Bounds.X1);
S := round(abs(glChars[I + 1].Translate[0] - (glChars[I].Translate[0] + W)));
if ((I < High(glChars)) and (S >= Result)) then
Result := S;
end;
End;

Function glCharsToText(var glChars: glCharArray; MinHSpacing, MinVSpacing: Integer = 5): TStringArray;
var
I, W: Integer;
Str: String;
begin
glChars := glRemoveTextShadows(glChars);
For I := 0 To High(glChars) do
begin
Str := Str + glChars[I].Letter;
W := abs(glChars[I].Bounds.X2 - glChars[I].Bounds.X1);

if (I < High(glChars)) then
if (abs(round(glChars[I + 1].Translate[0] - (glChars[I].Translate[0] + W))) >= MinHSpacing) then
Str := Str + ' ';

if ((I < High(glChars)) and abs(glChars[I + 1].Y - glChars[I].Y) >= MinVSpacing) then
Str := Str + '\r\n';
end;

ExplodeWrap('\r\n', Trim(Str), Result);
end;

Function glCharsToTexts(var glChars: glCharArray; MinHSpacing, MinVSpacing: Integer = 5): glTextArray;
var
I, J, W, H, K: Integer;
Even: Boolean;
NewLine: Boolean = True;
begin
glChars := glRemoveTextShadows(glChars);
Even := (Length(glChars) mod 2) = 0;
For I := 0 To High(glChars) do
begin
If (NewLine) then
begin
SetLength(Result, J + 1);
Result[J].Bounds.X1 := round(glChars[I].Translate[0] + glChars[I].Bounds.X1);
Result[J].Bounds.Y1 := round(glChars[I].Translate[1] + glChars[I].Bounds.Y1);
NewLine := False;
end;

Result[J].Text := Result[J].Text + glChars[I].Letter;
W := abs(glChars[I].Bounds.X2 - glChars[I].Bounds.X1);
H := abs(glChars[I].Bounds.Y2 - glChars[I].Bounds.Y1);

if (I < High(glChars)) then
if (abs(round(glChars[I + 1].Translate[0] - (glChars[I].Translate[0] + W))) >= MinHSpacing) then
Result[J].Text := Result[J].Text + ' ';

if ((I <= High(glChars)) and abs(glChars[I + 1].Y - glChars[I].Y) >= MinVSpacing) then
begin
Result[J].Bounds.X2 := round(glChars[I].Translate[0] + glChars[I].Bounds.X2);
Result[J].Bounds.Y2 := round(glChars[I].Translate[1] + glChars[I].Bounds.Y2);
NewLine := True;
Inc(J);
end;
end;
end;

Function glCharsToTextEx(var glChars: glCharArray; MinHSpacing, MinVSpacing: Integer = 5): glTextExArray;
var
I, J, K, W, H: Integer = 0;
NewIndex, NewLine: Boolean = True;
begin
glChars := glRemoveTextShadows(glChars);
For I := 0 To High(glChars) do
begin
W := abs(glChars[I].Bounds.X2 - glChars[I].Bounds.X1);
H := abs(glChars[I].Bounds.Y2 - glChars[I].Bounds.Y1);

if (NewLine) then
begin
SetLength(Result, J + 1);
SetLength(Result[J].Text, 1);
SetLength(Result[J].Areas, 1);
Result[J].Areas[0].X1 := round(glChars[I].Translate[0] + glChars[I].Bounds.X1);
Result[J].Areas[0].Y1 := round(glChars[I].Translate[1] + glChars[I].Bounds.Y1);
NewLine := False;
end;

Result[J].Text[0] := Result[J].Text[0] + glChars[I].Letter;
if ((I < High(glChars)) and round(abs(glChars[I + 1].Translate[0] - (glChars[I].Translate[0] + W))) >= MinHSpacing) then
Result[J].Text[0] := Result[J].Text[0] + ' ';

if ((I <= High(glChars)) and abs(glChars[I + 1].Y - glChars[I].Y) >= MinVSpacing) then
begin
Result[J].Areas[0].X2 := round(glChars[I].Translate[0] + glChars[I].Bounds.X1 + W);
Result[J].Areas[0].Y2 := round(glChars[I].Translate[1] + glChars[I].Bounds.Y1 + H);
NewLine := True;
Inc(J);
K := 0;
end;
end;
end;


Function glCharsToTextAdv(var glChars: glCharArray; MinHSpacing, MinVSpacing: Integer = 5): glTextExArray;
var
I, J, K, L, W, H: Integer = 0;
NewIndex, NewLine: Boolean = True;
begin
glChars := glRemoveTextShadows(glChars);
For I := 0 To High(glChars) do
begin
W := abs(glChars[I].Bounds.X2 - glChars[I].Bounds.X1);
H := abs(glChars[I].Bounds.Y2 - glChars[I].Bounds.Y1);

if (NewLine) then
begin
SetLength(Result, J + 1);
SetLength(Result[J].Text, L + 1);
SetLength(Result[J].Areas, K + 1);
SetLength(Result[J].Colours, K + 1);
Result[J].Colours[K] := glChars[I].Colour;
Result[J].Areas[K].X1 := round(glChars[I].Translate[0] + glChars[I].Bounds.X1);
Result[J].Areas[K].Y1 := round(glChars[I].Translate[1] + glChars[I].Bounds.Y1);
NewLine := False;
end;

Result[J].Text[L] := Result[J].Text[L] + glChars[I].Letter;
if ((I < High(glChars)) then
if (round(abs(glChars[I + 1].Translate[0] - (glChars[I].Translate[0] + W))) >= MinHSpacing) then
Result[J].Text[L] := Result[J].Text[L] + ' ';

if ((I <= High(glChars)) and abs(glChars[I + 1].Y - glChars[I].Y) >= MinVSpacing) then
begin
Result[J].Areas[K].X2 := round(glChars[I].Translate[0] + glChars[I].Bounds.X1 + W);
Result[J].Areas[K].Y2 := round(glChars[I].Translate[1] + glChars[I].Bounds.Y1 + H);
NewLine := True;
Inc(J);
K := 0;
end else
if ((I < High(glChars)) and (glChars[I + 1].Colour <> glChars[I].Colour)) then
begin
Result[J].Areas[K].X2 := round(glChars[I].Translate[0] + glChars[I].Bounds.X1 + W);
Result[J].Areas[K].Y2 := round(glChars[I].Translate[1] + glChars[I].Bounds.Y1 + H);
Inc(K);
Inc(I);

Result[J].Text[L] := Result[J].Text[L] + glChars[I].Letter;
W := abs(glChars[I].Bounds.X2 - glChars[I].Bounds.X1);
H := abs(glChars[I].Bounds.Y2 - glChars[I].Bounds.Y1);
SetLength(Result[J].Areas, K + 1);
SetLength(Result[J].Colours, K + 1);
Result[J].Colours[K] := glChars[I].Colour;
Result[J].Areas[K].X1 := round(glChars[I].Translate[0] + glChars[I].Bounds.X1);
Result[J].Areas[K].Y1 := round(glChars[I].Translate[1] + glChars[I].Bounds.Y1);
end;
end;
end;



For the Lape bug, it looks like this:


If ((I < High(Chars)) And (Some <> Something)) then //acts as an or statement.. I = High(chars) fails, lape checks the and statement and executes the next line.. Fail..
writeln('meh');


If ((I < High(Chars)) Then I = HIgh(char) fails and thus the next statement does not run. This is correct.
If (Some <> Something) Then
writeln('meh');

masterBB

2013-08-10 06:35:09

From: Brandon
Fix to the text functions.. There is a bug in lape where it checks the second part of the and statement even when the first part fails. Thus I had to use an extra if statement..


"bug"

{B+} to turn short circuit boolean evalutation on.

Brandon

2013-08-10 12:26:19

From: masterBB
"bug"

{B+} to turn short circuit boolean evalutation on.



Lol this has to be the most ridiculous thing I have ever heard. You have to enable how the language should work by default? In no case should the second statement be checked. It is an and statement not an or. It's not like it's lisp or something.

DemiseScythe

2013-08-10 12:33:37

@Brandon

GL_MakeCompassHeight(5); makes the angle low but it takes too long after it has moved the camera to finish the function.



I do not understand why the angle is 168 degrees when low and 110 at the highest.

I tried inputing all types of numbers into that function but I couldn't make it go to high angle nor any other angle except low. Basically no matter what I input, it makes the camera the lowest it can and then it waits for 10 seconds. May be my GLXCompassHeightDeg; function is broken?

For the GL_MakeAngle function, the only thing it does is wait for some time and then exit leaving SMART spining in one direction indefinitely even after the script terminated. Only 180 works fine, else it does what I just said.

Brandon

2013-08-10 12:43:09

From: DemiseScythe
@Brandon

GL_MakeCompassHeight(5); makes the angle low but it takes too long after it has moved the camera to finish the function.



I do not understand why the angle is 168 degrees when low and 110 at the highest.

I tried inputing all types of numbers into that function but I couldn't make it go to high angle nor any other angle except low. Basically no matter what I input, it makes the camera the lowest it can and then it waits for 10 seconds. May be my GLXCompassHeightDeg; function is broken?



Dunno what you've done but the lowest angle in the game is 8. The highest for me is 65.

DemiseScythe

2013-08-10 12:47:34

From: Brandon
Dunno what you've done but the lowest angle in the game is 8. The highest for me is 65.




It only works for 0 and 180, for any other angle it just waits and then spins in one direction indifintely.

Edit:

Okay, tested the GLXCompassHeightDeg again and now I am between 9 and 67. So now MakeAngle works just fine. Going to test MakeCompass again.

Brandon

2013-08-10 12:52:21

From: DemiseScythe


It only works for 0 and 180, for any other angle it just waits and then spins in one direction indifintely.



No. The compass angle is also dependent on camera height. This is the angle of the camera itself. Where the camera looks at. It is euler angles. Pitch, Yaw, Roll. If your camera is at its highest or lowest point the angles are different.

Try it. Put the camera at height then ask for compass angle. Put the camera at mid, get compass angle. Put it at lowest and get the angle. I'll fix that later I guess. I didn't expect anyone to be playing at an angle inbetween since SRL played at highest all the time.

DemiseScythe

2013-08-10 12:55:46

From: Brandon
No. The compass angle is also dependent on camera height. This is the angle of the camera itself. Where the camera looks at. It is euler angles. Pitch, Yaw, Roll. If your camera is at its highest or lowest point the angles are different.

Try it. Put the camera at height then ask for compass angle. Put the camera at mid, get compass angle. Put it at lowest and get the angle. I'll fix that later I guess. I didn't expect anyone to be playing at an angle inbetween since SRL played at highest all the time.


Make Angle works now, idk why it was just messing up but I am using 70 for high and 9 for low angle, I only need low angle for objects which are hard to see in high. Give me some time to check the compass again. Compass worked 9/10 times, it would be nice if when it didnt make the angle right, it wouldn't spin around uncontrolably.

Brandon

2013-08-10 12:57:58

From: DemiseScythe
Make Angle works now, idk why it was just messing up but I am using 70 for high and 9 for low angle, I only need low angle for objects which are hard to see in high. Give me some time to check the compass again.



Yeah I just tested it.. It is working sometimes :S But remember there is a second parameter as a tolerance if you wish to change its behaviour.


GL_MakeCompass(90, 10); I guess.. However, 3 works fine for me :S I gotta fix it at lowest height. I think the math might be messed up.

I also added another function to the plugin:

glXSetColourCapture(False); //Gives max FPS by disabling copying colours to smart. If disabled, you would need to re-enable to use Simba's colour functions. I haven't used Simba's colour stuff yet so I always keep mine disabled for max FPS. I'll wait on the new smart to release anything more.

DemiseScythe

2013-08-10 13:12:53

From: Brandon
Yeah I just tested it.. It is working sometimes :S But remember there is a second parameter as a tolerance if you wish to change its behaviour.


GL_MakeCompass(90, 10); I guess.. However, 3 works fine for me :S I gotta fix it at lowest height. I think the math might be messed up.

I also added another function to the plugin:

glXSetColourCapture(False); //Gives max FPS by disabling copying colours to smart. If disabled, you would need to re-enable to use Simba's colour functions. I haven't used Simba's colour stuff yet so I always keep mine disabled for max FPS. I'll wait on the new smart to release anything more.


Thank you, I got GL_MakeCompass working perfectly. Turning keyboard camera sensibility to min increases the accuracy but it only works when the camera is at its highest, I'll make sure to make the camera angle the highest before calling it since RS3 automatically lowers the camera over time.

Brandon

2013-08-10 14:17:48

From: DemiseScythe
Thank you, I got GL_MakeCompass working perfectly. Turning keyboard camera sensibility to min increases the accuracy but it only works when the camera is at its highest, I'll make sure to make the camera angle the highest before calling it since RS3 automatically lowers the camera over time.



No. I refuse to allow it to be broken.. I was pretty damn sure the Euler angles worked during the beta. Not sure wth changed.. Kasi can confirm it too :S Oh well.. I can't find a relation between the Euler angles and the compass anymore :S Well I don't have that much time to look into it so..

This will definitely work 100% for Compass Angle regardless of Camera height. You can also try the GL_GetLocalPos now. It should work too since I fixed the stupid Create function. Lape can't tell the difference between a parameter vs. structure member. Example:

Self.X := X; //X is a parameter but also a member. Should assign parameter to Member but it doesn't.. Changing it fixed the LocalPosition function so you can try walking again.

In Minimap.Simba, change the Create function to:


type FloatPoint = record
X, Y: Single;
end;

Function FloatPoint.Create(__X, __Y: Single): FloatPoint; //The __X is needed. Might be a lape bug. Perhaps that's why position was also broken.
Begin
Self.X := __X;
Self.Y := __Y;
Result := Self;
End;


And change the angle functions to the following.. If the Euler angles aren't working then screw it. Just gotta grab the angle like the old plugin did.. Aka via texture angles. In this case, instead of grabbing the compass texture, we just grab the map texture's angles. Works just fine and 100% accurate as well; regardless of height.


Procedure GL_OldCompass(var DA, RA: Integer);
var
TL, BL, BR, TR: FloatPoint;
Begin
If (Not GL_LoggedIn) Then Exit;
GL_GetMapCoords(TL, BL, BR, TR); //Compass angle is the same as the map angle.
RA := Round(FixRad(ArcTan2(TR.Y - TL.Y, TR.X - TL.X)));
DA := Round(FixD(Degrees(RA)));
End;

Function GL_MakeCompass(Angle: Single; Tolerance: Integer = 5): Boolean;
var
T: Timer;
Left: Boolean;
AngleDistance: Single;
CurrentAngle, RA: Integer;
Begin
GL_OldCompass(CurrentAngle, RA); //Find the angle the map is rotated.
If ((CurrentAngle < 0) or (Not GL_LoggedIn)) Then
Exit;

Angle := FixD(Angle);
T.Start();

While ((Abs(ShortestArcDeg(CurrentAngle, Angle)) > Tolerance) and (T.TimeElapsed() < 10000)) do
Begin
AngleDistance := CurrentAngle - Angle;
Left := ((AngleDistance > 0) and (abs(AngleDistance) <= 180)) or ((AngleDistance < 0) and (abs(AngleDistance) > 180));
if (Left) Then
KeyDown(VK_LEFT)
Else
KeyDown(VK_RIGHT);

GL_OldCompass(CurrentAngle, RA);
Result := Abs(ShortestArcDeg(CurrentAngle, Angle)) <= Tolerance;
If (Result) Then
Begin
If (Left) Then
KeyUp(VK_LEFT)
Else
KeyUp(VK_RIGHT);
Break;
End;
Wait(RandomRange(16, 20));
End;

If (Left) Then
KeyUp(VK_LEFT)
Else
KeyUp(VK_RIGHT);
Result := Abs(ShortestArcDeg(CurrentAngle, Angle)) <= Tolerance;
End;

DemiseScythe

2013-08-10 15:00:10

From: Brandon

type FloatPoint = record
X, Y: Single;
end;

Function FloatPoint.Create(__X, __Y: Single): FloatPoint; //The __X is needed. Might be a lape bug. Perhaps that's why position was also broken.
Begin
Self.X := __X;
Self.Y := __Y;
Result := Self;
End;


Well the angle works more accurately now and GL_GetLocalPos is comfirmed working.

Paired with SMART[17040]
{X = 371, Y = 302}
Successfully executed.

These bugs lol, thank you so much for fixing this function.

Would be cool if there were global cords but I can still use these to check if the Player has sucessfully enter a cave or passed an obstable.

Also, idk if this has been brought to your attention but chooseoption should move the mouse outside the bounds to get rid of the box if the option isn't found.

DemiseScythe

2013-08-11 15:07:54

Version 2.0 is now released. Probably won't be able to put much work into the script from now on but it should be enough for people to bot 99 Slayer.

[XoL]

2013-08-13 17:25:29

Ah yes, this is what I have been waiting for :)

[XoL]

2013-08-16 15:34:48

Hmm, I am sure this is a stupid error but
[Error] C:\Simba\DemiseSlayerGLX.simba(2:1): Unable to register function Function GLXMap(var Width, Height: Integer; var X, Y: array[0..3] of Single): Pointer; at line 1
Compiling failed.
–

I replaced my folder with yours, not sure what the cause of that is.

Mark

2013-08-16 16:38:53

From: [XoL]
Hmm, I am sure this is a stupid error but
[Error] C:\Simba\DemiseSlayerGLX.simba(2:1): Unable to register function Function GLXMap(var Width, Height: Integer; var X, Y: array[0..3] of Single): Pointer; at line 1
Compiling failed.
–

I replaced my folder with yours, not sure what the cause of that is.


have you selected the lape interpreter im just about to test this out myself

[XoL]

2013-08-16 20:48:53

From: CRU1Z1N
have you selected the lape interpreter im just about to test this out myself


I have not, I kind of just assumed it was automatically set as the interpreter :p Will do that.

[XoL]

2013-08-16 21:58:15

After switching to lape I get this error:
Exception in Script: Unknown declaration "Client" at line 40, column 19 in file "C:\Simba\Includes\GLX\Misc\Graphics.Simba"

DemiseScythe

2013-08-17 00:10:06

You need Simba 1.00 set to Lape interpreter. Make sure you have both things done. Ask in irc for the link to the Simba buildbot and download the latest working build. I'll check back on this again tomorrow.

[XoL]

2013-08-17 09:25:23

Hmm so I used build 465 built by master (The builds above it, would keep crashing)
I changed the interpreter to Lape but this is the error I am getting now
Failed to initialise the interpreter: Unknown Interpreter 3!

DemiseScythe

2013-08-17 14:52:56

From: [XoL]
Hmm so I used build 465 built by master (The builds above it, would keep crashing)
I changed the interpreter to Lape but this is the error I am getting now
Failed to initialise the interpreter: Unknown Interpreter 3!


http://l0.lt/builders/master/builds/472

This is the build I have installed so you must use 472+

[XoL]

2013-08-17 16:27:45

Hmm no idea, I installed the 472 one and installed your folder correctly but I still get this error (I changed to lape as well)
[Error] C:\Simba\DemiseSlayerGLX.simba(2:1): Unable to register function Function GLXMap(var Width, Height: Integer; var X, Y: array[0..3] of Single): Pointer; at line 2
Compiling failed.

DemiseScythe

2013-08-17 17:44:49

From: [XoL]
Hmm no idea, I installed the 472 one and installed your folder correctly but I still get this error (I changed to lape as well)
[Error] C:\Simba\DemiseSlayerGLX.simba(2:1): Unable to register function Function GLXMap(var Width, Height: Integer; var X, Y: array[0..3] of Single): Pointer; at line 2
Compiling failed.


Change to Lape, close Simba, then open script, check if it is still in Lape and run. Sometimes the settings do not save. I recommend, installing from scratch on a clean folder. Uninstall Simba from your system and install onto a different folder or to C://Simba/ if you deleted that folder so that there are no old files in it. Then open Simba and switch it to Lape, close it, open it again and make sure it is still in Lape, last unzip my file and run my script, it should open without problem. Let me know if that works, else I'll have to repack the include with my files because may be I applied a fix to it.

[XoL]

2013-08-18 14:10:16

Will try when I get back home, sorry for delayed response wasn't near a computer.

DemiseScythe

2013-08-18 14:49:28

From: [XoL]
Will try when I get back home, sorry for delayed response wasn't near a computer.


Don't forget to let me know if it doesn't work so I can repack the script. I still have a lot of bugs to fix like infinite loops but I should be able to release 2.1 in about a week or two.

[XoL]

2013-08-18 22:46:16

I still am getting an error, I may have residual crap but I thought I deleted everything >.<

Mark

2013-08-19 09:01:19

From: [XoL]
I still am getting an error, I may have residual crap but I thought I deleted everything >.<

hey man hit me up when your online ill help you out getting all this to load correctly over TV or wateva best suits yourself

[XoL]

2013-08-19 14:54:32

Send you a PM, thanks!
Awaiting response
–

So I tried to re-install again, this time I got everything working besides making the interperator stay as Lape (keeps changing back to pascalscript, unless I change it in advanced settings and don't look at it in simple settings)

When I did that it compiles but I get a smart error now lol sorry..


** Smart Cannot Spawn Clients **
Successfully executed.

DemiseScythe

2013-08-19 19:58:01

From: [XoL]
Send you a PM, thanks!
Awaiting response
–

So I tried to re-install again, this time I got everything working besides making the interperator stay as Lape (keeps changing back to pascalscript, unless I change it in advanced settings and don't look at it in simple settings)

When I did that it compiles but I get a smart error now lol sorry..


** Smart Cannot Spawn Clients **
Successfully executed.


Posted Version 2.1 so please try to install this version with settings file and all. Let me know if it works.

[XoL]

2013-08-19 23:43:35

Lol I have no idea what is going on…
** Smart Cannot Spawn Clients **
Successfully executed.


I will try to find all traces and remove it tomorrow and do a fresh re-install.

DemiseScythe

2013-08-20 00:26:47

From: [XoL]
Lol I have no idea what is going on…
** Smart Cannot Spawn Clients **
Successfully executed.


I will try to find all traces and remove it tomorrow and do a fresh re-install.


Post Program and Features screencapture that shows your Items starting with the letter J.

You MUST not have Java 6 installed.
You MUST not have Java 7 64-bit installed.
You MUST not have a JDK installed.
You MUST have Java 7 JRE installed.

If you want to keep those, you need to do extra steps but it is much simpler to uninstall them. The error you are getting has nothing to do with Simba nor my script but with your Java installation. Only time I get that error is when my wifi switch is off but it tells you to check the connection which is slightly different than what you have.

[XoL]

2013-08-20 10:47:48

Ah well I do have Java 7 64 bit installed, I will uninstall and get 32bit and I have a JDK will remove.

[XoL]

2013-08-20 11:03:52

So when I removed all of that it still didn't work, but I found the problem my firewall (Windows firewall) was somehow blocking smart from starting… Sorry I didn't look there first, I just assumed since it worked for all previous versions of Simba it would work for this one too, I need to create an allow exception and we should be good to go!

[XoL]

2013-08-20 11:48:55


So it starts up and everything but it really isn't doing much after that, any suggestions?

DemiseScythe

2013-08-20 12:01:08

From: [XoL]

So it starts up and everything but it really isn't doing much after that, any suggestions?


I would need to see your client with debug mode on to see if the areas are working together, find me in IRC and ask me to TeamView with you, I'll get it running smooth, your chat mode must be in the first tab as it uses the chatbox to get the TargetID. Other than the bounds, your inventory is kind of high, nothing I can't easily fix. I might have to leave soon to pick something up but should be here for the next several hours other than that.

To everyone, I posted a 2.0+ Combat video that includes a little Walking from the Mark II edition on the Op. Should be worth checking ^.^

PS. [XoL], it only supports 1 dose Summoning Potions as stated in op, you should decant all your Sum pots into 1 dose.

[XoL]

2013-08-20 12:06:25

I have to go to my university in a bit to drop some stuff off, but I will be back in a couple hours.
Thanks, and 2.1 walking video is awesome, nice job! looking forward to seeing that in a future update

Silentcore

2013-08-20 21:31:44

From: [XoL]
Lol I have no idea what is going on…
** Smart Cannot Spawn Clients **
Successfully executed.


I will try to find all traces and remove it tomorrow and do a fresh re-install.


Try opening Simba first as Admin and then open the script. This is all i can tell you since it once did the same for me and it did the same.

[XoL]

2013-08-20 22:13:31

From: Silentcore
Try opening Simba first as Admin and then open the script. This is all i can tell you since it once did the same for me and it did the same.


Ah I figured that out was my firewall, I downloaded a program that fixes security holes and it messed with my firewall settings -.-

Thanks though, and thanks demise for helping me get the script running today!

[XoL]

2013-08-21 19:36:56

Sorry demise, you said something yesterday about recognizing inventory spaces how do I go about doing that again? (Accidentally closed out of our conversation)

DemiseScythe

2013-08-21 19:48:45

From: [XoL]
Sorry demise, you said something yesterday about recognizing inventory spaces how do I go about doing that again? (Accidentally closed out of our conversation)


Wrtieln(GL_InvCount); with inventory full, you get a number back, then enter that into GL_InvFull; in inventory.simba

[XoL]

2013-08-21 20:31:29

Thanks! lol (dumb suggestion ahead) for the next release you should leave the red boxes, they make the script look "fancier" but not sure about the effects of paint on cpu usage.

DemiseScythe

2013-08-21 21:29:22

From: [XoL]
Thanks! lol (dumb suggestion ahead) for the next release you should leave the red boxes, they make the script look "fancier" but not sure about the effects of paint on cpu usage.


I like the boxes, if you don't simply turn Debug off.

[XoL]

2013-08-21 21:51:57

How exactly does one turn it on >.<, it was on when you were helping me fix the script but when I overwrote everything it turned off

DemiseScythe

2013-08-22 11:22:05

From: [XoL]
How exactly does one turn it on >.<, it was on when you were helping me fix the script but when I overwrote everything it turned off


Right button on SMART

There are only three, the original Disable SMART button, middle should always be ON and right one shows and hides the paint.

[XoL]

2013-08-22 11:49:31

From: DemiseScythe
Right button on SMART

There are only three, the original Disable SMART button, middle should always be ON and right one shows and hides the paint.


Thanks demise!
The script is working great (Fixed the inventory thing turns out it was 29). I get around 100-200k slayer xp/day just because I seem to forget to move my character to the next task :p

DemiseScythe

2013-08-22 14:17:49

From: [XoL]
Thanks demise!
The script is working great (Fixed the inventory thing turns out it was 29). I get around 100-200k slayer xp/day just because I seem to forget to move my character to the next task :p


No problem and good luck with Slayer, I averaged 300-350k per day. Got 5.5M Slayer xp off my script and three 99's soon to be 4. Got charms for 99 Summoning so that would be another 99. That value differs from player to player, was 29 for you, might be different for others. Too bad no one else uses my script. Their lost though.

[XoL]

2013-08-22 19:05:35

Lol I love this script.. works pretty well and is made for simba which is the biggest plus of all time.

DemiseScythe

2013-08-22 20:23:46

get 99 and post a pic with the cape on

[XoL]

2013-08-22 23:49:30

Eventually lol, will do. Still got a long ways to go.

[XoL]

2013-08-23 14:33:18

Lol can't wait for walking to eventually come out, yesterday I got like 300k xp! Just touched 1m slay xp from this script

DemiseScythe

2013-08-23 15:44:33

The walking is mostly cording so it isn't reliable enough for release but anyone can add their own walking paths if they wish.

[XoL]

2013-08-23 15:58:57

What would I have to change to make the script not use the slayer ring to get a new task (Instead just tele home, and stay there)

DemiseScythe

2013-08-23 17:24:05

From: [XoL]
What would I have to change to make the script not use the slayer ring to get a new task (Instead just tele home, and stay there)


In the Main Loop in the main script comment out GetTask;

[XoL]

2013-08-23 18:37:27

Thank you :)

DemiseScythe

2013-08-23 23:34:07

From: [XoL]
Thank you :)


Glad you got the script working and running fine. You are the only reason I released it after the RS3 re-amp. It should work long enough to get you 99 Slayer. I am done with this project because one can only take so much and I don't feel like dealing with kids.

[XoL]

2013-08-24 00:05:29

From: DemiseScythe
Glad you got the script working and running fine. You are the only reason I released it after the RS3 re-amp. It should work long enough to get you 99 Slayer. I am done with this project because one can only take so much and I don't feel like dealing with kids.


Well thanks for the update, really do appreciate it! :)

footballjds

2013-08-26 10:59:18

From: DemiseScythe
Glad you got the script working and running fine. You are the only reason I released it after the RS3 re-amp. It should work long enough to get you 99 Slayer. I am done with this project because one can only take so much and I don't feel like dealing with kids.


eyyy, don't give up!!! I'll send you a box of cookies

DemiseScythe

2013-08-27 22:38:24

From: footballjds
eyyy, don't give up!!! I'll send you a box of cookies


Didn't give up, I finished this script. It walks to all tasks except for 4 which I haven't gotten around to. It equips, banks, walks and fights. There isn't anything else I can do to my personal version. The semi automatic version is enough to bot this skill. I am just not motivated at all to release further upgrades to it.


Paired with SMART[5008]
Kills: 1
Kills: 2
Kills: 3
Kills: 4
Kills: 5
Kills: 6
Kills: 7
Kills: 8
Kills: 9
Kills: 10
Kills: 11
Kills: 12
Kills: 13
Kills: 14
Kills: 15
Kills: 16
Kills: 17
Kills: 18
Kills: 19
Kills: 20
Kills: 21
Kills: 22
Kills: 23
Kills: 24
Kills: 25
Kills: 26
Kills: 27
Kills: 28
Kills: 29
Kills: 30
Kills: 31
Kills: 1
Kills: 2
Kills: 3
Kills: 4
Kills: 5
Kills: 6
Kills: 7
Kills: 8
Kills: 9
Kills: 10
Kills: 11
Kills: 12
Kills: 13
Kills: 14
Kills: 15
Kills: 16
Kills: 17
Kills: 18
Kills: 19
Kills: 20
Kills: 21
Kills: 22
Kills: 23
Kills: 24
Kills: 25
Kills: 26
Kills: 27
Kills: 28
Kills: 29
Kills: 30
Kills: 31
Kills: 32
Kills: 33
Kills: 34
Kills: 35
Kills: 36
Kills: 37
Kills: 38
Kills: 39
Kills: 40
Kills: 41
Kills: 42
Kills: 43
Kills: 44
Kills: 45
Kills: 46
Kills: 47
Kills: 48
Kills: 49
Kills: 50
Kills: 51
Kills: 52
Kills: 53
Kills: 54
Kills: 55
Kills: 56
Kills: 57
Kills: 58
Kills: 59
Kills: 60
Kills: 61
Kills: 62
Kills: 63
Kills: 64
Kills: 65
Kills: 66
Kills: 67
Kills: 68
Kills: 69
Kills: 70
Kills: 71
Kills: 72
Kills: 73
Kills: 74
Kills: 75
Kills: 76
Kills: 77
Kills: 78
Kills: 79
Kills: 80
Kills: 81
Kills: 82
Kills: 83
Kills: 84
Kills: 85
Kills: 86
Kills: 87
Kills: 88
Kills: 89
Kills: 90
Kills: 91
Kills: 92
Kills: 93
Kills: 94
Kills: 95
Kills: 96
Kills: 97
Kills: 98
Kills: 99
Kills: 100
Kills: 101
Kills: 102
Kills: 103
Kills: 104
Kills: 105
Kills: 106
Kills: 107
Kills: 108
Kills: 109
Kills: 110
Kills: 111
Kills: 112
Kills: 113
Kills: 114
Kills: 115
Kills: 116
Kills: 117
Kills: 118
Kills: 119
Kills: 120
Kills: 121
Kills: 122
Kills: 123
Kills: 124
Kills: 125
Kills: 126
Kills: 127
Kills: 128
Kills: 129
Kills: 130
Kills: 131
Kills: 132
Kills: 133
Kills: 134
Kills: 135
Kills: 136
Kills: 137
Kills: 138
Kills: 139
Kills: 140
Kills: 141
Kills: 142
Kills: 143
Kills: 144
Kills: 145
Kills: 146
Kills: 147
Kills: 148
Kills: 149
Kills: 150
Kills: 151
Kills: 152
Kills: 153
Kills: 154
Kills: 155
Kills: 156
Kills: 157
Kills: 158
Kills: 159
Kills: 160
Kills: 161
Kills: 1
Kills: 2
Kills: 3
Kills: 4
Kills: 5
Kills: 6
Kills: 7
Kills: 8
Kills: 9
Kills: 10
Kills: 11
Kills: 12
Kills: 13
Kills: 14
Kills: 15
Kills: 16
Kills: 17
Kills: 18
Kills: 19
Kills: 20
Kills: 21
Kills: 22
Kills: 23
Kills: 24
Kills: 25
Kills: 26
Kills: 27
Kills: 28
Kills: 29
Kills: 30
Kills: 31
Kills: 32
Kills: 33
Kills: 34
Kills: 35
Kills: 36
Kills: 37
Kills: 38
Kills: 39
Kills: 40
Kills: 41
Kills: 42
Kills: 43
Kills: 44
Kills: 45
Kills: 46
Kills: 47
Kills: 48
Kills: 49
Kills: 50
Kills: 51
Kills: 52
Kills: 53
Kills: 54
Kills: 55
Kills: 56
Kills: 57
Kills: 58
Kills: 59
Kills: 60
Kills: 61
Kills: 62
Kills: 63
Kills: 64
Kills: 65
Kills: 66
Kills: 67
Kills: 68
Kills: 69
Kills: 70
Kills: 71
Kills: 72
Kills: 73
Kills: 74
Kills: 75
Kills: 76
Kills: 77
Kills: 78
Kills: 79
Kills: 80
Kills: 81
Kills: 82
Kills: 83
Kills: 84
Kills: 85
Kills: 86
Kills: 87
Kills: 88
Kills: 89
Kills: 90
Kills: 91
Kills: 92
Kills: 93
Kills: 94
Kills: 95
Kills: 96
Kills: 97
Kills: 98
Kills: 99
Kills: 100
Kills: 101
Kills: 102
Kills: 103
Kills: 104
Kills: 105
Kills: 106
Kills: 107
Kills: 108
Kills: 109
Kills: 110
Kills: 111
Kills: 112
Kills: 113
Kills: 114
Kills: 115
Kills: 116
Kills: 117
Kills: 118
Kills: 119
Kills: 120
Kills: 121
Kills: 122
Kills: 123
Kills: 124
Kills: 125
Kills: 126
Kills: 127
Kills: 128
Kills: 129
Kills: 130
Kills: 131
Kills: 132
Kills: 133
Kills: 134
Kills: 135
Kills: 136
Kills: 137
Kills: 138
Kills: 139
Kills: 140
Kills: 141
Kills: 142
Kills: 143
Kills: 144
Kills: 145
Kills: 146
Kills: 147
Kills: 148
Kills: 149
Kills: 150
Kills: 151
Kills: 1
Kills: 2
Kills: 3
Kills: 4
Kills: 5
Kills: 6
Kills: 7
Kills: 8
Kills: 9
Kills: 10
Kills: 11
Kills: 12
Kills: 13
Kills: 14
Kills: 15
Kills: 16
Kills: 17
Kills: 18
Kills: 19
Kills: 20
Kills: 21
Kills: 22
Kills: 23
Kills: 24
Kills: 25
Kills: 26
Kills: 27
Kills: 28
Kills: 29
Kills: 30
Kills: 31
Kills: 32
Kills: 33
Kills: 34
Kills: 35
Kills: 36
Kills: 37
Kills: 38
Kills: 39
Kills: 40
Kills: 41
Kills: 42
Kills: 43
Kills: 44
Kills: 45
Kills: 46
Kills: 47
Kills: 48
Kills: 49
Kills: 50
Kills: 51
Kills: 52
Kills: 53
Kills: 54
Kills: 55
Kills: 56
Kills: 57
Kills: 58
Kills: 59
Kills: 60
Kills: 61
Kills: 62
Kills: 63
Kills: 64
Kills: 65
Kills: 66
Kills: 67
Kills: 68
Kills: 69
Kills: 70
Kills: 71
Kills: 72
Kills: 73
Kills: 74
Kills: 75
Kills: 76
Kills: 77
Kills: 78
Kills: 79
Kills: 80
Kills: 81
Kills: 82
Kills: 83
Kills: 84
Kills: 85
Kills: 86
Kills: 87
Kills: 88
Kills: 89
Kills: 90
Kills: 91
Kills: 92
Kills: 93
Kills: 94
Kills: 95
Kills: 96
Kills: 97
Kills: 98
Kills: 99
Kills: 100
Kills: 101
Kills: 102
Kills: 103
Kills: 104
Kills: 105
Kills: 106
Kills: 107
Kills: 108
Kills: 109
Kills: 110
Kills: 111
Kills: 112
Kills: 113
Kills: 114
Kills: 115
Kills: 116
Kills: 117
Kills: 118
Kills: 119
Kills: 120
Kills: 121
Kills: 122
Kills: 123
Kills: 124
Kills: 1
Kills: 2
Kills: 3
Kills: 4
Kills: 5
Kills: 6
Kills: 7
Kills: 8
Kills: 9
Kills: 10
Kills: 11
Kills: 12
Kills: 13
Kills: 14
Kills: 15
Kills: 16
Kills: 17
Kills: 18
Kills: 19
Kills: 20
Kills: 21
Kills: 22
Kills: 23
Kills: 24
Kills: 25
Kills: 26
Kills: 27
Kills: 28
Kills: 29
Kills: 30
Kills: 31
Kills: 32
Kills: 33
Kills: 34
Kills: 35
Kills: 36
Kills: 37
Kills: 38
Kills: 39
Kills: 40
Kills: 41
Kills: 42
Kills: 43
Kills: 44
Kills: 45
Kills: 46
Kills: 47
Kills: 48
Kills: 49
Kills: 50
Kills: 51
Kills: 52
Kills: 53
Kills: 54
Kills: 55
Kills: 56
Kills: 57
Kills: 58
Kills: 59
Kills: 60
Kills: 61
Kills: 62
Kills: 63
Kills: 64
Kills: 65
Kills: 66
Kills: 67
Kills: 68
Kills: 69
Kills: 70
Kills: 71
Kills: 72
Kills: 73
Kills: 74
Kills: 75
Kills: 76
Kills: 77
Kills: 78
Kills: 79
Kills: 80
Kills: 81
Kills: 82
Kills: 83
Kills: 84
Kills: 85
Kills: 86
Kills: 87
Kills: 88
Kills: 89
Kills: 90
Kills: 91
Kills: 92
Kills: 93
Kills: 94
Kills: 95
Kills: 96
Kills: 97
Kills: 98
Kills: 99
Kills: 100
Kills: 101
Kills: 102
Kills: 103
Kills: 104
Kills: 105
Kills: 106
Kills: 107
Kills: 108
Kills: 109
Kills: 110
Kills: 111
Kills: 112
Kills: 113
Kills: 114
Kills: 115
Kills: 116
Kills: 117
Kills: 118
Kills: 119
Kills: 120
Kills: 121
Kills: 122
Kills: 123
Kills: 124
Kills: 125
Kills: 126
Kills: 127
Kills: 128
Kills: 129
Kills: 130
Kills: 131
Kills: 132
Kills: 133
Kills: 134
Kills: 135
Kills: 136
Kills: 137
Kills: 138
Kills: 139
Kills: 140
Kills: 141
Kills: 142
Kills: 143
Kills: 144
Kills: 1
Kills: 2
Kills: 3
Kills: 4
Kills: 5
Kills: 6
Kills: 7
Kills: 8
Kills: 9
Kills: 10
Kills: 11
Kills: 12
Kills: 13
Kills: 14
Kills: 15
Kills: 16
Kills: 17
Kills: 18
Kills: 19
Kills: 20
Kills: 21
Kills: 22
Kills: 23
Kills: 24
Kills: 25
Kills: 26
Kills: 27
Kills: 28
Kills: 29
Kills: 30
Kills: 31
Kills: 32
Kills: 33
Kills: 34
Kills: 35
Kills: 36
Kills: 37
Kills: 38
Kills: 39
Kills: 40
Kills: 41
Kills: 42
Kills: 43
Kills: 44
Kills: 45
Kills: 46
Kills: 47
Kills: 48
Kills: 49
Kills: 50
Kills: 51
Kills: 52
Kills: 53
Kills: 54
Kills: 55
Kills: 56
Kills: 57
Kills: 58
Kills: 59
Kills: 60
Kills: 61
Kills: 62
Kills: 63
Kills: 64
Kills: 65
Kills: 66
Kills: 67
Kills: 68
Kills: 69
Kills: 70
Successfully executed.

Everytime the counter resets, my script has started a new task. I left that overnight and it did 6 tasks before running into one of the 4 it cannot do at this time. Upon examination, I aparently got logged out from the 6 hour timer thing in the middle of a supported task. I guess I could have gone longer but haven't added a 6hourfix on my script.

[XoL]

2013-08-29 02:35:06

Lol is it possible for you to release this copy of it? our acc setups are near identical

DemiseScythe

2013-08-29 07:59:34

From: [XoL]
Lol is it possible for you to release this copy of it? our acc setups are near identical


It is not just interphase setup, you also need same quest and bank setups, something difficult to replicate.

Sjoe

2013-08-29 10:01:05

From: DemiseScythe
It is not just interphase setup, you also need same quest and bank setups, something difficult to replicate.


Did u delete the download file on OP? Wanted to try it out now I got OpenGL working

DemiseScythe

2013-08-29 13:02:28

From: Sjoe
Did u delete the download file on OP? Wanted to try it out now I got OpenGL working


I'll fix link tonight.

Sjoe

2013-08-29 13:07:37

From: DemiseScythe
I'll fix link tonight.


thanks!

DemiseScythe

2013-08-29 18:58:14

From: Sjoe
thanks!


Upped, my private version broke because they changed the banking graphics. Only need to create my own bankscreen function though and it will be all fixed up. My walks will also be messed up, got to test them all.

Sjoe

2013-08-29 19:04:38

From: DemiseScythe
Upped, my private version broke because they changed the banking graphics. Only need to create my own bankscreen function though and it will be all fixed up. My walks will also be messed up, got to test them all.


I'll try it out tomorrow :)

EDIT: Are the include files the uptodate version of Brandon's?

DemiseScythe

2013-08-29 20:09:49

From: Sjoe
I'll try it out tomorrow :)

EDIT: Are the include files the uptodate version of Brandon's?


Brandon's files but for SMART 8.2 and with fixes applied. The other includes are just Lite versions of my slayer script, I believe they are all at version 2.1. You can try with your include but I only guarantee it to work with the included includes and plugins. I can work just fine on SMART 8.2 so I see no point in updating to 8.3. Brandon's include has been broken several times by updates. GL_MMBounds, GL_LoggedIn, and now GL_BankScreen are broken by updates and Brandon is usually busy to fix them and/or publish the fix.

Brandon

2013-09-01 17:03:33

From: DemiseScythe
Brandon's files but for SMART 8.2 and with fixes applied. The other includes are just Lite versions of my slayer script, I believe they are all at version 2.1. You can try with your include but I only guarantee it to work with the included includes and plugins. I can work just fine on SMART 8.2 so I see no point in updating to 8.3. Brandon's include has been broken several times by updates. GL_MMBounds, GL_LoggedIn, and now GL_BankScreen are broken by updates and Brandon is usually busy to fix them and/or publish the fix.


Updated the include.. I added 6hour fix, fixed all the stuff you just mentioned. More accurate detection functions for bank, inv, login, lobby, smart, graphics, etc..
Cached all interfaces.

Difference in speed for cached vs. non-cached interfaces:

Cached: 1000 runs in 650ms.
Non-Cached: 1000 runs in 23 minutes.

DemiseScythe

2013-09-08 11:54:38

Does anyone still use this? I am pretty sure the current version might be broken. I shall post V2.3 tomorrow after I finish botting to 99. It will have new features but no walking.

[XoL]

2013-09-08 14:02:54

From: DemiseScythe
Does anyone still use this? I am pretty sure the current version might be broken. I shall post V2.3 tomorrow after I finish botting to 99. It will have new features but no walking.


I use it on occasion, been busy with college but I will try to use it more often!

DemiseScythe

2013-09-10 12:42:38

Finally, I've reached my first goal. After a few more 99s, I'll go for 200M Slay xp.


Ashaman88

2013-09-10 13:17:14

From: DemiseScythe
Finally, I've reached my first goal. After a few more 99s, I'll go for 200M Slay xp.



Very nice congrats! Pretty much all bot?

DemiseScythe

2013-09-10 13:31:08

From: Ashaman88
Very nice congrats! Pretty much all bot?


Minus 35k xp I legited and 200-300k from lamps, yes.

Sjoe

2013-09-10 13:37:03

grats :)

DemiseScythe

2013-09-10 14:23:13

From: Sjoe
grats :)


Ty and ty to Ashaman. I need to upload V2.3 tonight after class.


[XoL]

2013-09-11 09:21:20

Very impressive hopefully I am next, but I have a long way to go and classes are getting in my way :(

[XoL]

2013-09-12 17:19:11

Whats new for 2.3? Looking forward to seeing it :D

DemiseScythe

2013-09-12 19:38:55

From: [XoL]
Whats new for 2.3? Looking forward to seeing it :D


A lot of bug fixes and tweaks, the best new feature is Ranged support mostly because I want 99 Ranged. I am more busy than I thought due to classes, so upload will happen on Saturday afternoon.


[XoL]

2013-09-12 21:27:47

Exciting looking forward to the release, I will try to run at least 4 hours a day starting saturday..I want 99.

[XoL]

2013-09-16 00:16:33

Sorry for bothering demise but is 2.3 ready to be put up?

DemiseScythe

2013-09-17 10:49:59

From: [XoL]
Sorry for bothering demise but is 2.3 ready to be put up?


Will not be releasing anymore into SRL because of personal issues with the way things work around nowdays. However, there will be a way to obtain the full featured DemiseScythe 3.0 Mark II version soon with walking and all.

[XoL]

2013-09-17 12:36:56

Ok just hmu with the details when you get it up, I am interested.