revision 587, It's a party - break out the streamers.

For changelogs and discussion related to a specific revision.
Message
Author
User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

revision 587, It's a party - break out the streamers.

#1 Post by lisa » Wed Mar 30, 2011 4:53 am

Ok I have added in my party bot into the current revision.
The bot will functional exactly the same as it did previously unless you add in some options to your character profiles.

A few things to know about how this works.

Basically you will want 1 character to Lead the party and this will be the only character to actual use a normal WP. This character will place a raid icon on the target to be killed and therefore needs to be the party leader. A tank or high HP dps character would be best for this position.

Another party member can be a pure healer (doesn't do any damage)

Another party member can be DPS but can also self heal (won't heal others).

I have set it up farely simply for usage.
All characters should have their usual skills set in their profile and also have this option

Code: Select all

<option name="PARTY"	value="true" />
The party leader should also have

Code: Select all

<option name="PARTY_ICONS"	value="true" />
This will let it know to assign the raid icon for kill targets, If only using leader and 1 healer then you don't need this.

DPS and leader can use this code if you are killing mobs with high HP, instances or elites.

Code: Select all

<option name="PARTY_INSTANCE"	value="true" />
It will negate the usual check for high HP and therefore not ignore targets of high HP.

At the moment I use the follow command for all non-leader bots, I may look at moveinrange later but for not it uses follow.

Code: Select all

<option name="PARTY_FOLLOW_NAME"    value="Charname" /> 
Add this to profile for characters who arn't the leader, Charname is the name of the character you want it to follow. If this option isn't used or if mispelt then it will follow the first party member on it's screen by default. If only leader and 1 follower you wouldn't need to add this.

That is pretty much it for profile options required to make party bot work.


+_+_+_+_+_+_+_+_+_+_+_+
Party Leader
+_+_+_+_+_+_+_+_+_+_+_+

Add the options as described already, this character will use a normal WP file that tells it where to go and what to do. You don't need to add anything special to an existing WP for it to work.


+_+_+_+_+_+_+_+_+_+_+_+
Pure Healer
+_+_+_+_+_+_+_+_+_+_+_+

very important for a healer to be started before the leader starts it's WP.
Also very very important all party members to be very close to the healer when it is started, it will read from memory who is in party and their names and such. If member is out of range or not in party then it may error but deffinately won't heal or buff the member that was out of range.
The healer doesn't need much for it to work, I have attached a WP called partyhealer.xml if you use this WP then it will follow the designated player and it will check buffs and heal all party members, including itself. I have it set for priest skills at this stage.


+_+_+_+_+_+_+_+_+_+_+_+
DPS
+_+_+_+_+_+_+_+_+_+_+_+

This character should be nearby when others are started, it will only attack mobs with the raid icon I on it, which is set by the leader. It will use the skills in it's profile and behave normally except it will follow designated character and only kill what it's told to kill by party leader, follow is only used when out of combat, so it will move normally during combat.
I attached the WP partydps.xml


Check out classes/party.lua for details on how healing and following currently works.

For now that is pretty much all you need to know to make it work.
Please post any sugguestions or problems as a reply to this topic.
Thanks

Edit I forgot to mention some other things I added.

I added in a venue for people to customise what happens at stick counter points.
If you create a userfunction and have all or any functions called

Code: Select all

function unStick3()
function unStick6()
function unStick9()
Then that code will be performed at the number, ie 3 will be at 3 unsticks, 6 for 6 and 9 for 9. If you don't have a user function with any of these names then it will do what it always does.

There is also an addition of a function to get party member names and also a function for raid icon usage.

Code: Select all

GetPartyMemberName(1)
will return the name of the first party member, this is the character directly under the player avatar. can use 1-5 to get whole party. I haven't tested it for a raid size as yet.

Raid icon detection is like this

Code: Select all

local icon = pawn:GetPartyIcon()
if icon == 1 then
can be numbers from 1-8 (i think 8 is max I'll double check later)
So you can check if any pawn has an icon ie mob, npc, player.

Thanks to Rock5 for making up those functions, they are awesome =)
Last edited by lisa on Wed Mar 30, 2011 12:53 pm, edited 1 time in total.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
Tsutomu
Posts: 77
Joined: Thu Mar 24, 2011 1:50 am

Re: revision 587, It's a party - break out the streamers.

#2 Post by Tsutomu » Wed Mar 30, 2011 5:28 am

Great stuff.

Edit: Unfortunatelly it messed up rombot, it works no good anymore. It goes back and forth through waypoints not stopping to fight mobs, tries to go through walls and just before update it was working fine.
I was updating from 584 - 587, are there any changes that can do this kind of stuff?
Maybe some yrest at end of waypoint or stmhne, don't know why, it's just messed up almost completely useless.

User avatar
Tsutomu
Posts: 77
Joined: Thu Mar 24, 2011 1:50 am

Re: revision 587, It's a party - break out the streamers.

#3 Post by Tsutomu » Wed Mar 30, 2011 6:45 am

I have uncommented two lines on line 1894 or smthng.

Code: Select all

		if( angleDif > math.rad(15) ) then
			--keyboardRelease( settings.hotkeys.MOVE_FORWARD.key );
			--keyboardRelease( settings.hotkeys.MOVE_BACKWARD.key );
But it continues to wander around like a chicken with cut-off head.

I think i need him to pause a bit when reached waypoint...but can't really find the code.

Ok, what happens is this:
When out of fight (TRAVEL mode) or no interesting mobs near it works good, not pausing not returning. But when i use it in instance for.ex.or where i have mobs, it comes to the waypoint no.10, continues to waypt.no.11 then in the middle it gets target and returns to mobs to kill them.
Like it's hardly registering mobs, or it needs a bit of time for that, so it keeps going until it registers there are mobs near, and then it comes back to kill them, then continuing with waypt 11. :/

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: revision 587, It's a party - break out the streamers.

#4 Post by lisa » Wed Mar 30, 2011 7:22 am

Can you test something for me.
right click rom folder, then bring down the tortoise menu and click update to revision.
Click revision and put in 586
change drop down menu to fully recursive.

Then try your waypoint again.

There may have been something that changed from 584-586 that may have caused the issue which will make it easier to narrow down. If it works perfectly at 586 then we know it was a change I made 586-587.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: revision 587, It's a party - break out the streamers.

#5 Post by rock5 » Wed Mar 30, 2011 7:29 am

Sounds like it is only responding to aggro. Are you sure you don't have the waypoint type set to 'run'? It seems to be working fine for me. It targets the mobs as soon as they come in range.

There was a change that has the bot no longer pause at waypoints but I'm not sure why it would cause you troubles.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: revision 587, It's a party - break out the streamers.

#6 Post by lisa » Wed Mar 30, 2011 7:37 am

I think I found the issue, there are 2 checks for if mob is elite and I only took care of 1 of them. So the second check is saying the mob is to strong and therefore doesn't try to kill it.

That's my guess but it should have posted in MM

Code: Select all

Target is to strong. More HP then player.MaxHP * settings.profile.options.AUTO_ELITE_FACTOR
or
"Target is to strong. More HP then player.MaxHP * settings.profile.options.AUTO_ELITE_FACTOR, aggro, but not from that target"
Might also be to do with the not stopping at waypoint anymore aswell, not sure.

Any results from testing with 586 yet?
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

squeekthegeek
Posts: 25
Joined: Mon Nov 08, 2010 1:50 pm

Re: revision 587, It's a party - break out the streamers.

#7 Post by squeekthegeek » Wed Mar 30, 2011 9:42 am

Hi, awesome addition.

One thing I found is that healer and dps dont loot. I am running Dungeon of Dalanis as it is quick to get mementos. However, only the party leader loots and mementos are lootable once per party member unlike regular drops.

Thanks for the help :D
Last edited by squeekthegeek on Wed Mar 30, 2011 8:21 pm, edited 2 times in total.

User avatar
Tsutomu
Posts: 77
Joined: Thu Mar 24, 2011 1:50 am

Re: revision 587, It's a party - break out the streamers.

#8 Post by Tsutomu » Wed Mar 30, 2011 9:47 am

Revision 585 working fine, 586 not working good.

What's changed in rev586? Would like to use 587 without those changes...
Well some changes i might leave, i think what's causing problem is a lack of pause on waypoint.

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: revision 587, It's a party - break out the streamers.

#9 Post by lisa » Wed Mar 30, 2011 9:48 am

squeekthegeek wrote:Hi, awesome addition.

One thing I found is that healer and dps dont loot. I am running Dungeon of Dalanis as it is quick to get mementos. However, only the party leader loots and mementos are lootable once per party member unlike regular drops.

Thanks for the help :D
The dps should still be looking aslong as it goes with normal looting rules, if it was attacking it and it dies then it should try to loot it. 1 thing that might hinder that is if another character is looting it aswell. You get that server error saying loot something error, which in english means someone else is looting atm and you can't.

As for the healer is never actually targets the mob so it doesn't try to loot at this stage. I think implementing rock5's lootbodies after leaving combat might be a way to hand this.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: revision 587, It's a party - break out the streamers.

#10 Post by lisa » Wed Mar 30, 2011 9:51 am

Tsutomu wrote:Revision 585 working fine, 586 not working good.

What's changed in rev586? Would like to use 587 without those changes...
Well some changes i might leave, i think what's causing problem is a lack of pause on waypoint.
Ahh ok, well the second elite factor does still need to be fixed, as for the new addition in 586 it is to do with not stopping at waypoints. Maybe have it as a profile option. might be the way to go.
I'll have a look at it and see what I can come up with and if it works I'll commit it soon, just doing some daily's as party atm lol
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
Tsutomu
Posts: 77
Joined: Thu Mar 24, 2011 1:50 am

Re: revision 587, It's a party - break out the streamers.

#11 Post by Tsutomu » Wed Mar 30, 2011 9:55 am

nice to see additions are used in a variety of manners :)))

i'm aso interested -squeekthegeek- how do you avoid the jump attack of DoD 1st?

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: revision 587, It's a party - break out the streamers.

#12 Post by lisa » Wed Mar 30, 2011 10:16 am

revision 588

Ok changed the no stop at WP to be a profile option.

Add this to make it not stop, if this option isn't in profile then it will stop as before.

Code: Select all

<option name="WP_NO_STOP" value="true" />
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: revision 587, It's a party - break out the streamers.

#13 Post by rock5 » Wed Mar 30, 2011 10:33 am

lisa wrote:revision 588

Ok changed the no stop at WP to be a profile option.

Add this to make it not stop, if this option isn't in profile then it will stop as before.

Code: Select all

<option name="WP_NO_STOP" value="true" />
If Tsutomu is the only one who has reported a problem, I wouldn't have changed the bot. I would have tried finding out why he is having an issue. And if I did add a profile option I would have made the default not to pause. The way you have implemented it, Tsutomu, who is having problems can run the bot as-is but everyone else who doesn't have this problem has to add the option to their profile.

Oh well. If we figure out what is wrong with Tsutomus setup we can always change it back.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: revision 587, It's a party - break out the streamers.

#14 Post by lisa » Wed Mar 30, 2011 11:14 am

I also had an issue with the movement and waypoints.
I thought it might need some more looking into.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: revision 587, It's a party - break out the streamers.

#15 Post by rock5 » Wed Mar 30, 2011 11:34 am

lisa wrote:I also had an issue with the movement and waypoints.
I thought it might need some more looking into.
Ah. It's strange. The only effect the changes should have is when arriving at a waypoint successfully it wont stop. If it gets aggro or targets a mob it should react as normal, ie. stop and fight.

There's probably one thing you can try if you haven't already. I commented out a 'in battle' check because it looked like it wasn't necessary. Maybe it is. try un-commenting it and see if that makes a difference. It's around line 1936 of player.lua.
  • Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
  • I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
  • How to: copy and paste in micromacro
    ________________________
    Quote:
    • “They say hard work never hurt anybody, but I figure, why take the chance.”
          • Ronald Reagan

squeekthegeek
Posts: 25
Joined: Mon Nov 08, 2010 1:50 pm

Re: revision 587, It's a party - break out the streamers.

#16 Post by squeekthegeek » Wed Mar 30, 2011 11:37 am

Tsutomu wrote:i'm aso interested -squeekthegeek- how do you avoid the jump attack of DoD 1st?


well i didnt have any problem with avoiding the Leap because the boss was dead before he had the time to do it.

I think what could be done to avoid it would be to check when he does cast it then load waypoints list that would bring the players to the edges of the room.

i beleive when waypoints are loaded, it picks the closest one so it might be a problem if tanking it on an edge already. so perhaps a coordinates check to see where the character actualy is and load a different path.

i'll look into when i get back home :)

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: revision 587, It's a party - break out the streamers.

#17 Post by lisa » Wed Mar 30, 2011 12:39 pm

rock5 wrote:
lisa wrote:I also had an issue with the movement and waypoints.
I thought it might need some more looking into.
Ah. It's strange. The only effect the changes should have is when arriving at a waypoint successfully it wont stop. If it gets aggro or targets a mob it should react as normal, ie. stop and fight.

There's probably one thing you can try if you haven't already. I commented out a 'in battle' check because it looked like it wasn't necessary. Maybe it is. try un-commenting it and see if that makes a difference. It's around line 1936 of player.lua.
First off I like the idea of continually moving thru waypoints, I think it means we will have to be more careful where the waypoint is placed as it continues on a curve instead of straight lines but I still think it is a good move in most cases. I wouldn't use it for an instance.

I had a thought which may solve the issue, I think the problem is the key is still being pressed and the bot starts the fight and it is still pressing the key. I was thinking along the lines of at the start of the function CPlayer:fight() to release keys, all 4 keys. This would mean no matter what it was doing before hand it won't have any keys still pressed down constantly and normal moving in range would happen after that.

I know I have had issues before where I got an error and even after MM has stopped the key is still being pressed and bot is running up a cliff wall for hours, which means MM isn't holding the key down it says the keys down until it says to release the key.

What do you think?
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
Tsutomu
Posts: 77
Joined: Thu Mar 24, 2011 1:50 am

Re: revision 587, It's a party - break out the streamers.

#18 Post by Tsutomu » Wed Mar 30, 2011 1:18 pm

I think you're right Lisa, it seems like key_W is beying pressed and it stops to be pressed after a while in combar couple of seconds...
Your suggestion might work. Will try it too.

User avatar
Tsutomu
Posts: 77
Joined: Thu Mar 24, 2011 1:50 am

Re: revision 587, It's a party - break out the streamers.

#19 Post by Tsutomu » Wed Mar 30, 2011 1:49 pm

I have put this in CPlayer:fight()

Code: Select all

	keyboardRelease( key.VK_W );
	keyboardRelease( key.VK_A );
	keyboardRelease( key.VK_S );
	keyboardRelease( key.VK_D );
and it works, stopping the character, but only too late, like half a second later than it should be. He sometimes even goes to next waypoint :/ picking up 6 mobs :) He can kill'em alright but what if we don't want that to happen.

I think this code might have to be put somewhere before fight() like when he finds a mob?
That's in player.lua in Classes, i'll look into it.

User avatar
Tsutomu
Posts: 77
Joined: Thu Mar 24, 2011 1:50 am

Re: revision 587, It's a party - break out the streamers.

#20 Post by Tsutomu » Wed Mar 30, 2011 4:18 pm

This has solved my issues: (i also kept the one in the CPlayer:fight() function if it is needed sometimes because we're not finding enemies just precaution)

Code: Select all

if( bestEnemy == nil ) then
							bestEnemy = obj;
							bestScore = currentScore;
						elseif( currentScore > bestScore ) then
							bestEnemy = obj;
							bestScore = currentScore;
						end
						-- release all keyboard presses
						keyboardRelease( key.VK_W );
						keyboardRelease( key.VK_A );
						keyboardRelease( key.VK_S );
						keyboardRelease( key.VK_D );
					end
				end
			end
		end
	end
EDIT: Also, keep your variable onlyaggro = false or it will be unpredictable too... which worked fine in 585 with any setting now only works good with onlyaggro=false

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest