SRL Archive - Discussions and Debates

SRL AIO Fighter (SRL Member+ Project)


J J

2013-01-13 16:43:02

Hey,

Thanks everyone for participating in the topics so far. At the moment the poll is at 10 for AIO Fighter and 7 for Slayer. I realise there are still a few days of voting left, but after talking with a few people and reading through the responses I think the decision of making an AIO Fighter seems to be a good one.

However, if you decide to work on a monster like Lesser demons and include banking, you are technically also working on a Slayer script :) The biggest goal of this project might actually be to work together in an organized way. We won't achieve anything if we aren't able to work structured and as a team.


Script Contents
I've been thinking a lot about this and I think I've got a good view of what needs to be done to make this script succesful. We need to make it as easy as possible to use for the users.

  • Action bar
    • Detecting if it's open or closed
    • Detecting the keys that the user has assigned
    • Detecting what actions are in each slot
    • Getting adrenaline percentage
    • More?
  • Combat tab
    • Being able to read Target name
    • Being able to read target hp percentage
    • Being able to read our hp percentage
  • Inventory
    • Being able to detect multiple types of
      • Potions
      • Food
      • Etc.
    • Switching tabs, detecting tabs
  • Prayer
    • Detecting if prayers are on/off
    • Being able to turn them on/off
    • Knowing prayer points
  • Monster detection
    • Pretty much the core of the script, every monster is unique but by using techniques such as TPA, ATPA, MMToMS, etc. we can detect them properly
  • Banking
    • Walking to the bank, and back to the spot
    • Banking loot
    • Withdrawing food
  • More? ;) Suggest

Team collaboration
This is one of the most important things and without good teamwork this project is doomed to fail. We will be hosting the project on code.google and you can PM me or post here to be added to the project as a comitter. The google project link: http://code.google.com/p/srl-aio-fighter/

@masterBB has made a DTM tool which is very useful. DTM's should be saved to the computer and loaded using his tool.
I've made a Log procedure which will save certain things in a log. I would highly advice, or nearly make it mandatory to add proper debug to your functions.

Here is an example, I tried to automatically assign KeyBinds to the right key and use an ability from the bar straight after. Code is available on the project at code.google. This has been saved in a log named AIO Fighter log (01-11-13 at 02 09 58 PM).
[00:00:00]: GetTypedMessage –> Black text: ??
[00:00:00]: GetTypedMessage –> Full text: ??
[00:00:00]: GetActionBar –> User pressed enter, toggling action bar to reset
[00:00:02]: GetTypedMessage –> Black text: ??[Press Enter to Chat]
[00:00:02]: GetTypedMessage –> Full text: ??[Press Enter to Chat]
[00:00:02]: GetActionBar –> Did we manage to get the Action Bar working? True
[00:00:02]: GetKeyBinds –> Slot #0 : Z
[00:00:02]: GetKeyBinds –> Slot #1 : W
[00:00:02]: GetKeyBinds –> Slot #2 : T
[00:00:02]: GetKeyBinds –> Slot #3 : X
[00:00:02]: GetKeyBinds –> Slot #4 : U
[00:00:02]: GetKeyBinds –> Slot #5 : J
[00:00:02]: GetKeyBinds –> Slot #6 : F
[00:00:02]: GetKeyBinds –> Slot #7 : 8
[00:00:02]: GetKeyBinds –> Slot #8 : 9
[00:00:02]: GetKeyBinds –> Slot #9 : 0
[00:00:02]: GetKeyBinds –> Slot #1 0 : -
[00:00:02]: GetKeyBinds –> Slot #1 1 : T
[00:00:02]: GetTypedMessage –> Black text: ??[Press Enter to Chat]
[00:00:02]: GetTypedMessage –> Full text: ??[Press Enter to Chat]
[00:00:02]: GetTypedMessage –> Black text: ??[Press Enter to Chat]
[00:00:02]: GetTypedMessage –> Full text: ??[Press Enter to Chat]
[00:00:02]: GetActionBar –> Did we manage to get the Action Bar working? True
[00:00:03]: UseAbility –> Did we manage to use the ability in slot #3 ? True


Participants @masterBB; @Le Jingle; @Sin; @xtrapsp; @Ashaman88; @Shatterhand; @Wardancer; @Justin; @tehq; @J J;

Conclusion and summary
If you want to contribute to this project please PM me or MasterBB your Gmail account so one of us can add you. You can also post it here as it will get public anyways.
If you think there is anything missing, feel free to suggest something!

masterBB

2013-01-13 16:50:26

I also want to add that we think that freedom under the scripters is very important. We won't force you to do anything. There will be a few standard functions which will be required by every location/script, but apart from those it is up to you how to solve your problems. If you've made something you think could be used by other locations as well don't hesitate to add it as a global function.

Note that everyone will be commiter and thus has access to the git repo without having to ask for our permission to change anything you want. We asume that since everyone is a SRL member or higher that every one can be trusted with this privilege.

I think I will be done with the framework to the point where you can add scripts this weekend.

Would love to hear from you guys!

Le Jingle

2013-01-13 16:57:23

Nice to see this thread! I know I already private messaged about joining the project, as well as I've been added to the google code project (I've yet to explore that). I'm posting because I am quite keen on helping out (I tend to specialize with the item portion, ex. detecting food, saving it to the computer, etc.)

So I would indeed like to participate.

Couple questions:
- What about a section dedicated to finding monsters on the MainScreen / detecting where proper monsters are / that sorta stuff?
- What about banking / walking, is that included in this script?
- Is this the proposed / dedicated thread for the project? (And would other means of communication be good / useful - if so what, as well as assigning portions to single / multiple people, also dates or time frames for sections of code)
- Do we use git at all? or is this project solely on google code? answered enough for my concern above

Hope that isn't too much of a bombardment of questions :s

Nonetheless, excited for the project,
Lj!

J J

2013-01-13 17:04:33

Hey LJ,

- What about a section dedicated to finding monsters on the MainScreen / detecting where proper monsters are / that sorta stuff?

-> Just added it right when you posted. I think we should work on generic functions where just the color, tolerance and CTS2 modifiers will have to be changed aswell as more specific functions for some monsters.
Can also use MMToMS to detect if there are any monsters around you and if they are in range :)


- What about banking / walking, is that included in this script?

–> Yes, everything related to a Fighting script can be added. Such as looting, banking the loot, grabbing food from the bank, etc. I also just added that right when you posted, but it's still good to explain it more in depth.

- Is this the proposed / dedicated thread for the project? (And would other means of communication be good / useful - if so what, as well as assigning portions to single / multiple people, also dates or time frames for sections of code)
–> Yes, the script framework and total idea is not thought out completely yet, so until then there won't be an actual list of people and displaying what they are working on. But once it's done I think I'll add something like that to the first post so we won't get duplicates. Duplicates aren't bad though, but still :P

Communication.. I've been thinking about a Skype group or using IRC. Or both. Skype is probably most commonly used by most of the people participating and group chats on there work well. Would be a good way to keep contact and ask for help or suggestions, etc.

- Do we use git at all? or is this project solely on google code?
–> I thought about using GitHub but by using Google Code we can have multiple owners so we don't have to rely on one person to add the changes. I think Google Code is fine and easily usable (using it for the first time myself). Might make a mini tutorial to set it up - or someone else could make it with more experience :)

EDIT: Some major sniping and posting 1 minute after something is updated/posted seems to be going on hehe :)

masterBB

2013-01-13 17:05:33

From: Le Jingle

- What about banking / walking, is that included in this script?
- Is this the proposed / dedicated thread for the project? (And would other means of communication be good / useful - if so what, as well as assigning portions to single / multiple people, also dates or time frames for sections of code)
- Do we use git at all? or is this project solely on google code? answered enough for my concern above

Hope that isn't too much of a bombardment of questions :s

Nonetheless, excited for the project,
Lj!


Hi,

[INDENT] - What about a section dedicated to finding monsters on the MainScreen / detecting where proper monsters are / that sorta stuff?[/INDENT]

Yes, we will have some global functions. But basically we will create a script for every location. If you have functions that should be added to the core, feel free to do so. We want a strong core so as few as possible methods are done double.

[INDENT] - What about banking / walking, is that included in this script?[/INDENT]

If you want you can add it. It isn't required for every location. Banking is optional. For slay monsters I suggest adding banking so we could teleport to the next slayer location when we are done with a certain master.

[INDENT] - Is this the proposed / dedicated thread for the project? (And would other means of communication be good / useful - if so what, as well as assigning portions to single / multiple people, also dates or time frames for sections of code)[/INDENT]

This is indeed the dedicated thread for this project. On the google code project every is able to write 'wiki' pages about what they want to do, or they can report issues about what they are missing.

Sin

2013-01-13 17:48:51

I've pm'd my GMail to you JJ.


Function ActionBarClosed(Open:Boolean):Boolean;
begin
Result := (GetColor(11,331)) = 10000536;
if Open and Result then
Mouse(508,331,3,3,mouse_Left);
end;

As for the HPPercent issue, I did some testing and 1% of the total health is approximately 0.83 pixels.
I found this out by getting the max spot where green ends up at at full health, and the lowest spot green ends up at.
Subtracted the two, then divided by 100.

xtrapsp

2013-01-13 19:13:04

Hi all, been a busy day. Good to see everyone is catching up with one another!

I will be adding to the project scope etc and updating it with what you guys have posts (alas it is midnight here and I left my home at 7am yesterday, hence the busy day).

Don't know where I'l come into this but hopefully it'l be soon, I have a few ideas to make this easier for us, such as a logging system we can all view.

I don't quite know yet, I'l speak to you all tomorrow morning.


2013, Rise of Simba

Ashaman88

2013-01-13 19:44:44

No offense, but I think we have a couple of good autofighters - I know shatters works amazingly…. I know this may end up with more features/locations, but still idk. I'll try to help out now and then, but I'm thinking my next project will be slaying it up. Good luck!

xtrapsp

2013-01-13 19:46:44

From: Ashaman88
No offense, but I think we have a couple of good autofighters - I know shatters works amazingly…. I know this may end up with more features/locations, but still idk. I'll try to help out now and then, but I'm thinking my next project will be slaying it up. Good luck!


It's only a bit of fun! Stop pooping on our parade and let me sleep! :P

Ashaman88

2013-01-13 19:49:09

From: xtrapsp
It's only a bit of fun! Stop pooping on our parade and let me sleep! :P


haha sorry if I came across negative - I do think group projects are great! Except for school that is…then they usually suck

Le Jingle

2013-01-13 19:51:45

Possible Suggestion = form for script. (conjuring up possible idea)

I was somewhat stale upon first reaction for the cmb script especially without banking for ea. location. I guess that hasn't changed much since there are decent auto fighters (narcle, shatterhand, more?), but then again, I'm all for reinventing the wheel and/or possible more. :)

masterBB

2013-01-13 19:52:38

From: Ashaman88
No offense, but I think we have a couple of good autofighters - I know shatters works amazingly…. I know this may end up with more features/locations, but still idk. I'll try to help out now and then, but I'm thinking my next project will be slaying it up. Good luck!


This will include slaying. It is not a bot where you enter a few colors and it will fight. This bot will be able to fight many NPCs. When all the slayer monsters off a certain master are made it will just take task after task.

Le Jingle

2013-01-13 21:28:48

From: masterBB
This will include slaying. It is not a bot where you enter a few colors and it will fight. This bot will be able to fight many NPCs. When all the slayer monsters off a certain master are made it will just take task after task.


Good point, the slayer portion/addition isn't too far a stretch from what's being done here. (in my opinion)

Sjoe

2013-01-13 23:02:07

Good luck with this!
Looks great already

xtrapsp

2013-01-14 07:21:52

If anyone needs a free semi-high level account (F2P) then give me a buzz :)

Shatterhand

2013-01-14 07:37:34

Some ideas:

- Reading our health on the attack bar isnt that good, not accurate (as Sin said too), better to read the numbers next to the mini map.

- Finding the monsters: Im sure we cant do an AIO function which would accepts the colors/tols/uptexts. Some monsters will need different techniques of TPA ordering/sizing/excluding/filtering.

- Another important thing is to avoid detecting a fighting monster, because its 100% you wont get any xp from them and legit players can easily catch you. My current best solution for this is to find all the hp bars on main screen (except our character's) and exclude those areas (making a box around them) for the FindMonster's area. This isnt that accurate cause at different angles the monster's size is different.

- Looting: I dont know if you want this or not, but this would be the hardest to make it AIO. Even with something like MMToMS there will be so many color matches.

EDIT:
And some problems to solve
- Detecting the death of a monster. Finding the red hp bar isnt working well if more people are fighting too around. Looking at the target bar on attack tab: sometimes when you kill a monster with another player together, the monster dies and the bar still has some health for some time.
-> The best solution would be to detect our monster we are fighting with, so we can look for the red hp bar at that area. I already tried finding our fight by getting percentages of all the hp bars and matching with the percentage on the attack tab, but its not accurate at all.

xtrapsp

2013-01-14 08:20:05

From: Shatterhand
Some ideas:

- Reading our health on the attack bar isnt that good, not accurate (as Sin said too), better to read the numbers next to the mini map.

- Finding the monsters: Im sure we cant do an AIO function which would accepts the colors/tols/uptexts. Some monsters will need different techniques of TPA ordering/sizing/excluding/filtering.

- Another important thing is to avoid detecting a fighting monster, because its 100% you wont get any xp from them and legit players can easily catch you. My current best solution for this is to find all the hp bars on main screen (except our character's) and exclude those areas (making a box around them) for the FindMonster's area. This isnt that accurate cause at different angles the monster's size is different.

- Looting: I dont know if you want this or not, but this would be the hardest to make it AIO. Even with something like MMToMS there will be so many color matches.

EDIT:
And some problems to solve
- Detecting the death of a monster. Finding the red hp bar isnt working well if more people are fighting too around. Looking at the target bar on attack tab: sometimes when you kill a monster with another player together, the monster dies and the bar still has some health for some time.
-> The best solution would be to detect our monster we are fighting with, so we can look for the red hp bar at that area. I already tried finding our fight by getting percentages of all the hp bars and matching with the percentage on the attack tab, but its not accurate at all.


The only thing I can suggest is making a global DB which loads in sections?

if fighting abyss then load only certain lists of the db?

Kyle Undefined

2013-01-14 10:04:49

So basically it's a Combat MSI? That would be cool, since we never really got one implemented. Good luck guys, I'm sure you'll make it awesome :)

cause

2013-01-15 19:25:28

From: Shatterhand
Some ideas:

- Reading our health on the attack bar isnt that good, not accurate (as Sin said too), better to read the numbers next to the mini map.

- Finding the monsters: Im sure we cant do an AIO function which would accepts the colors/tols/uptexts. Some monsters will need different techniques of TPA ordering/sizing/excluding/filtering.

- Another important thing is to avoid detecting a fighting monster, because its 100% you wont get any xp from them and legit players can easily catch you. My current best solution for this is to find all the hp bars on main screen (except our character's) and exclude those areas (making a box around them) for the FindMonster's area. This isnt that accurate cause at different angles the monster's size is different.

- Looting: I dont know if you want this or not, but this would be the hardest to make it AIO. Even with something like MMToMS there will be so many color matches.

EDIT:
And some problems to solve
- Detecting the death of a monster. Finding the red hp bar isnt working well if more people are fighting too around. Looking at the target bar on attack tab: sometimes when you kill a monster with another player together, the monster dies and the bar still has some health for some time.
-> The best solution would be to detect our monster we are fighting with, so we can look for the red hp bar at that area. I already tried finding our fight by getting percentages of all the hp bars and matching with the percentage on the attack tab, but its not accurate at all.


Couldn't you use the Exp counter? Know before hand the total exp you expect to receive from fighting the monster (assuming single combat zones…hmmm) the monster and then fight until you receive that exp? Would speed up the fighting if you aren't waiting for the healthbar to disappear over the slain monster.

Wardancer

2013-01-15 21:03:25

That seems like a great project. How far are you in? I'd like to help, but being a new member I'm not particularly confident in my scripting skills. I'm sure I could manage to get it to work, but the actual efficiency of the script might be sub par (not speed wise but memory management wise, that's an issue I have with some of my scripts).

Le Jingle

2013-01-16 02:04:37

@Wardancer; still in early development, I'd recommend giving it a shot as I tend to like more minds than less overlooking each other in a group project.

Shatterhand

2013-01-16 03:34:11

From: cause
Couldn't you use the Exp counter? Know before hand the total exp you expect to receive from fighting the monster (assuming single combat zones…hmmm) the monster and then fight until you receive that exp? Would speed up the fighting if you aren't waiting for the healthbar to disappear over the slain monster.

EOC = you only get xp after you kill a monster, but like 3 seconds or so. Red hp bar comes immediately, would be a lot faster.

EDIT: Added my method of monster finding, also added Debug.simba and Mouse.simba.

xtrapsp

2013-01-16 04:56:01

Just had a chance to catchup on the script :)

Noticed shatterhand added some cockroach part? If It's ok I'l start adding too it :D

J J

2013-01-16 10:25:59

From: Kyle Undefined
So basically it's a Combat MSI? That would be cool, since we never really got one implemented. Good luck guys, I'm sure you'll make it awesome :)

Yeah, sort of :) Thanks!

From: Shatterhand
EOC = you only get xp after you kill a monster, but like 3 seconds or so. Red hp bar comes immediately, would be a lot faster.

EDIT: Added my method of monster finding, also added Debug.simba and Mouse.simba.

Indeed, pre-EOC you got xp drops straight away, but nowadays it is after the kill. Thanks for the additions.

From: xtrapsp
Just had a chance to catchup on the script :)

Noticed shatterhand added some cockroach part? If It's ok I'l start adding too it :D

Yeah, feel free to commit!

I'm a a bit busy myself this week and next week because next week I have my second examweek. So this week I have to spend extra time studying. I'll think about a way to communicate and keep eachother motivated and updated with the work. I'm thinking about a Skype group, but there might be something better?

cause

2013-01-18 22:17:25

From: Shatterhand
EOC = you only get xp after you kill a monster, but like 3 seconds or so. Red hp bar comes immediately, would be a lot faster.

EDIT: Added my method of monster finding, also added Debug.simba and Mouse.simba.


Ah ok, sorry, uninformed post!

TomTuff

2013-01-19 04:23:42

From: Le Jingle
Good point, the slayer portion/addition isn't too far a stretch from what's being done here. (in my opinion)


The infrastructure for a slayer script is/would be enormous compared to an autofighter.

Unless you want to walk everywhere, you need to figure out teleports. Not everyone has access to the same teleports, and depending on what teleports you have unlocked different locations for different monsters would be best. Basically what I'm saying is that you would need to figure what teleports everyone can use, and where to go based off that. Next comes the issue of gear. You wouldn't use the same gear for say a banshee task as you would for dust devils or iron dragons. Different monsters require different gear (just off the top of my head, antifire shield for dragons, rock hammer for gargoyles), so you have to be able to get those items from the bank, and if the user doesn't have it, you have to be able to go back to the slayer master to get it.

I won't go on, as I'm sure you get the point, but these are just the first problems when I tried to lay out infrastructure for a slayer script way back when we had reflection.

Slayer is similar to dungeoneering in terms of scripting - an enormous project, but manageable with a dedicated and knowledgeable group…

Shatterhand

2013-01-19 05:08:22

From: TomTuff
The infrastructure for a slayer script is/would be enormous compared to an autofighter.

Unless you want to walk everywhere, you need to figure out teleports. Not everyone has access to the same teleports, and depending on what teleports you have unlocked different locations for different monsters would be best. Basically what I'm saying is that you would need to figure what teleports everyone can use, and where to go based off that. Next comes the issue of gear. You wouldn't use the same gear for say a banshee task as you would for dust devils or iron dragons. Different monsters require different gear (just off the top of my head, antifire shield for dragons, rock hammer for gargoyles), so you have to be able to get those items from the bank, and if the user doesn't have it, you have to be able to go back to the slayer master to get it.

I won't go on, as I'm sure you get the point, but these are just the first problems when I tried to lay out infrastructure for a slayer script way back when we had reflection.

Slayer is similar to dungeoneering in terms of scripting - an enormous project, but manageable with a dedicated and knowledgeable group…

Well you are absolutely right. We are making an AIO fighter first and once its ready then we can just expand the project slowly into an AIO slayer script.

All we need is to make a huge item database, make DTMs and uptexts for them. We could have a form with more tabs, and user could set up the default mage/range/melee gear. Each monster could have its unique item which has priority 1 over the default item.

With the teleporting, we could have another tab where user could tick the teleport methods. If the script cant find the runes/charges for the teleport then it would turn that method off runtime.

But of course this would need a lot of work…

TomTuff

2013-01-19 05:17:28

From: Shatterhand
All we need is to make a huge item database, make DTMs and uptexts for them. We could have a form with more tabs, and user could set up the default mage/range/melee gear. Each monster could have its unique item which has priority 1 over the default item.


That's all :D! But really, I hope this happens. I'll put off slayer as long as possible in hopes that it does.

J J

2013-01-24 04:43:28

From: TomTuff
That's all :D! But really, I hope this happens. I'll put off slayer as long as possible in hopes that it does.

I would personally also rather work on a good AIO Fighter than sort of lean towards a Slayer script for some monsters. But people are free to do what they want. I've been pretty busy the last few days learning for my exams and also making them. Got my last one tomorrow and because I passed all ones from last semester I got a week off (that week is meant to do exams from other semesters).

Hoping to get everything sorted out this weekend so everyone can work on something and we can communicate and keep track of everything.

Shatterhand

2013-01-31 06:29:57

Any progress on this? :)
I dont really understand the framework structure and I dont want to be the first adding a monster.

xtrapsp

2013-01-31 07:01:58

I haven't heard anything since I said I was crammed with work xD

J J

2013-01-31 07:04:47

From: Shatterhand
Any progress on this? :)
I dont really understand the framework structure and I dont want to be the first adding a monster.

I'm going to PM all participants to get their Skype names if I haven't got them yet and make a Skype group chat. That way we can communicate easily and ask questions, etc. I've been busy with some other stuff lately but I really want to work on this with everyone :)


From: xtrapsp
I haven't heard anything since I said I was crammed with work xD

Hmm everything that has happened can be seen at the code.google project really.. :P

xtrapsp

2013-01-31 07:35:25

From: J J
I'm going to PM all participants to get their Skype names if I haven't got them yet and make a Skype group chat. That way we can communicate easily and ask questions, etc. I've been busy with some other stuff lately but I really want to work on this with everyone :)



Hmm everything that has happened can be seen at the code.google project really.. :P


it'd be nice to have a semi-regular update log though ;)

Le Jingle

2013-01-31 20:08:42

Ah I'll have to download skype then, curses. (#irc all day)

anywho, I'll see what I can do here, would be nice to be able to contribute.

Gucci

2013-02-01 00:11:23

Hopefully this kicks off soon, I'll help whenever I can