Party Bot (questions/answers)

Runes of Magic/Radiant Arcana (http://www.runesofmagic.com)
Post Reply
Message
Author
User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Party Bot (questions/answers)

#1 Post by lisa » Sun Nov 25, 2012 7:14 pm

Ok so I thought I had better make 1 single topic for party bot and any issues that people might be having trying to use it.

Firstly here are the current profile options with their descriptions.

Code: Select all

<!-- Party Bot options  -->
<option name="PARTY"				value="true" /> 
<option name="PARTY_ICONS"			value="true" /> 		<!-- For party leader to place "I" Icon on the target Mob -->
<option name="PARTY_INSTANCE"		value="true" /> 		<!-- For party bot to enable the killing of mobs with high HP  -->
<option name="ICON_FIGHT"			value="true" />			<!-- For party bot to only attack mobs with "I" Icon -->
<option name="PARTY_FOLLOW_NAME"	value="charname" /> 	<!-- For party bot name of character to follow -->
<option name="HEAL_FIGHT"			value="true" />  		<!-- For party bot if you want healer to also fight -->
If using partyhealer then have your profile skills set to how you want the skills used.
example
priest/scout

Code: Select all

	<skills_priest>	
		<skill name="PRIEST_SOUL_SOURCE"    	hotkey="MACRO" priority="110" inbattle="true" hpper="30" />
		<skill name="PRIEST_URGENT_HEAL"    	hotkey="MACRO" priority="100" hpper="75"  />
		<skill name="PRIEST_REGENERATE"     	hotkey="MACRO" priority="90"  hpper="80" />
		<skill name="PRIEST_ICE_BLADE"     		hotkey="MACRO" priority="80" />	
		<skill name="PRIEST_GRACE_OF_LIFE" 		hotkey="MACRO" priority="20" rebuffcut="60" inbattle="false" />
		<skill name="PRIEST_AMPLIFIED_ATTACK" 	hotkey="MACRO" priority="20" rebuffcut="60" inbattle="false" />
		<skill name="PRIEST_HOLY_AURA"      	hotkey="MACRO" priority="100" inbattle="true" hpper="24" />
		<skill name="PRIEST_MAGIC_BARRIER" 		hotkey="MACRO" priority="20" rebuffcut="60" inbattle="false" />
		<skill name="PRIEST_HEALING_SALVE"     	hotkey="MACRO" priority="95" />
		<skill name="PRIEST_EMBRACE_OF_THE_WATER_SPIRIT"     	hotkey="MACRO" priority="95" inbattle="false" />
	</skills_priest>
Follower commands look like this, in party chat.

Code: Select all

	--=== npc ===--
	--sell -- uses NPC as merchant to sell/buy
	--accept -- Accepts ALL quests
	--complete -- Completes ALL quests and then Accepts ALL quests
	--choiceoption -- uses specified choiceoption
	
	--=== quest ===--
	--"questname" -- returns state of specified quest
	
	--=== com ===--
	--nofollow --stops the char from following
	--follow -- makes the char follow
	--farm -- makes DPS kill anything in range
	--icon -- goes back to only killing in combat or when 1 icon on mob
	--portal -- requires Rock's userfunction and makes bot go through portal
	
	--=== code ===--
	--any lua code you like.
As an example, this code in a WP will tell the followers to go through nearest portal, requires Rock's userfunction

Code: Select all

sendPartyChat('com"portal"')
Adding this to leaders WP will make followers target your current target and use them as a merchant, buy and sell as set by the followers profile.

Code: Select all

sendPartyChat('npc"sell"')

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

Re: Party Bot (questions/answers)

#2 Post by lisa » Sun Nov 25, 2012 7:23 pm

--=== Party Bot not working? ===--

Ok firstly you need to work out why it isn't working as the code works 100% for me.

Start the bot with commandline, while in party and near the other party members.
there is a file called StartCommandLine.bat which you can just double click or you can type this on MM

Code: Select all

rom/bot path:commandline
This will start up the commandline interface.

--=== ===--
First test if the bot is actually getting the party info.

Code: Select all

PartyTable() table.print(partymemberpawn)
That should print the party info, including the bot.
Make sure you are near the other party members, any members out of memory range won't be detected.

--=== ===--
Then you can test if it is getting the party leaders name correctly

Code: Select all

print(getPartyLeaderName())
--=== ===--
Checking if other party members are within range, if they are it will print true, if not it will print false.

Code: Select all

print(checkparty())

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

Re: Party Bot (questions/answers)

#3 Post by lisa » Sun Nov 25, 2012 7:26 pm

Party chat monitoring

--=== ===--
you can check if it is sending party chats correctly

Code: Select all

sendPartyChat("just some text that will be printed in game party chat")
--=== ===--
Test if it is monitoring chat correctly

Code: Select all

eventParty()
Now type something with another party member in party chat, then do the next step.

Code: Select all

msg, name = checkEventParty() print(name.." said "..msg)
then stop the monitoring

Code: Select all

eventParty("stop")
Added in a code"" for party chat monitoring.
use this in game

examples

Code: Select all

code"GoThroughPortal()"
code"sendPartyChat('I love to party all night long')"
code"madman(true)"
code"madman()"

Code: Select all

function madman(_arg)
	function madtimed()
		if RoMScript("madman.Time") >= 1 then 
			player:clearTarget();
			printf("Running\n")
			yrest(4000)
		end	
	end
	if _arg then
		registerTimer("madman", secondsToTimer(1), madtimed);
	else
		unregisterTimer("madman");
	end
end

User avatar
Ego95
Posts: 564
Joined: Tue Feb 28, 2012 12:38 pm
Contact:

Re: Party Bot (questions/answers)

#4 Post by Ego95 » Wed Nov 28, 2012 7:27 pm

I didn't test it but which version is the right one? In this topic you use

Code: Select all

<option name="HEAL_FIGHT"
but in the Default profile it's called

Code: Select all

<option name="HEALER_FIGHT"

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

Re: Party Bot (questions/answers)

#5 Post by lisa » Wed Nov 28, 2012 7:47 pm

AlterEgo95 wrote:which version is the right one?
The code/options posted in this topic will be the latest, the default profile needs to be updated.
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: Party Bot (questions/answers)

#6 Post by rock5 » Thu Nov 29, 2012 12:13 am

I'd add it to my list of changes but I can't start my main pc at the moment. Hopefully I'll remember after I fix it.
  • 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: Party Bot (questions/answers)

#7 Post by lisa » Thu Nov 29, 2012 4:01 am

rock5 wrote:I'd add it to my list of changes but I can't start my main pc at the moment. Hopefully I'll remember after I fix it.
updated the default profile in 744, I did how ever have party options "on" which is different to what I used to have it.
They used to be commented out but I forgot to comment them out before commiting.
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: Party Bot (questions/answers)

#8 Post by rock5 » Thu Nov 29, 2012 11:53 am

I was going to re-adjust those settings in the profiles but I realized there is something I don't like that I want you to consider. A lot of people don't know about comments in xml files. They say something like "My bot wont attack some boss" and we tell them "change PARTY_INSTANCE to true in your profile". They look in their profile and see

Code: Select all

<!-- <option name="PARTY_INSTANCE"		value="false" /-->
They change the false to true but it still doesn't work. If we figure out that they haven't uncommented the line then we have to explain to them how to do it.

I'm considering changing it back to the way it used to be. Used to be if you add an option you set it to it's default value so it's the same as not setting it at all. What do you think? What are all the default values for the party options?

BTW, I got my main pc working, thank god! I thought I'd lost it. :D
  • 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: Party Bot (questions/answers)

#9 Post by lisa » Thu Nov 29, 2012 6:07 pm

rock5 wrote:BTW, I got my main pc working, thank god! I thought I'd lost it.
yay
rock5 wrote:What are all the default values for the party options?
Probably just set them all to false, so if people want to use in a party they just change it to true.
I agree with the comment, not commented observation =)
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
Ego95
Posts: 564
Joined: Tue Feb 28, 2012 12:38 pm
Contact:

Re: Party Bot (questions/answers)

#10 Post by Ego95 » Thu Nov 29, 2012 8:07 pm

They change the false to true but it still doesn't work. If we figure out that they haven't uncommented the line then we have to explain to them how to do it.
Um...I remember of someone, who changed the values and thought "stupid thing, why don't you work" :oops: :lol:

dx876234
Posts: 188
Joined: Sat Jul 24, 2010 6:13 am

Re: Party Bot (questions/answers)

#11 Post by dx876234 » Wed Dec 12, 2012 4:34 pm

I'm using the party functionality, nice work!

I'm using it mostly to run/farm instances, what I really miss is a way to tell alts to buff up which also implies a way to specify what buff up is (by class) before attacking bosses.

Ive been thinking a little about it, it would be nice to "tag" skills in profile as "bossbuffs" and trigger buffing by party commands, trick would be to get them timed so all finish buffing together.

Also, buffing changes skills, like mages get 3s casts down to 1s by buffing, would this have implications for skills from database where cast times are specified?

-dx

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

Re: Party Bot (questions/answers)

#12 Post by lisa » Wed Dec 12, 2012 5:29 pm

dx876234 wrote:Ive been thinking a little about it, it would be nice to "tag" skills in profile as "bossbuffs" and trigger buffing by party commands, trick would be to get them timed so all finish buffing together.
That is a very interesting idea, what I used to do was create code to change specific skills autouse. This would make the bot use skills that it normally wouldn't use, like salvation and wave armor for priest.
Of course you would need to have them in profile skills section first in order to change it to autouse true.

Something like this for mage

Code: Select all

function bossskills(_active)
	if player.Class1 == 4 then --mage
		if _active ~= false then -- boss skills
			changeProfileOption("COMBAT_DISTANCE" , 200)
			changeProfileSkill("MAGE_PURGATORY_FIRE" , "AutoUse", false)
			changeProfileSkill("MAGE_FLAME" , "AutoUse", true)			
			changeProfileSkill("MAGE_FIREBALL" , "AutoUse", true)
		else -- trash skills
			changeProfileOption("COMBAT_DISTANCE" , 50) 
			changeProfileSkill("MAGE_PURGATORY_FIRE" , "AutoUse", true)
			changeProfileSkill("MAGE_FLAME" , "AutoUse", false)
			changeProfileSkill("MAGE_FIREBALL" , "AutoUse", false)
		end
	end
end
You got me thinking though of using party commands to tell the party bots to call functions. So you could have a userfunction much more elaberate than that code I just posted and tell the party bots to call it with a party command.

Could use it to call the gothroughportal() which would be good aswell, I might do some thinking on it today.

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
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Party Bot (questions/answers)

#13 Post by rock5 » Wed Dec 12, 2012 9:42 pm

Yeah, just as you have a function to set up skills, you could have a function to buffup for bosses. Doing the timing might be tricky. I don't think "tagging" the skills in the profile is a good idea because that would just add something extra for the bot to check during regular fights. The fact is setting up skills and buffs for boss fights only needs to be done at one point, just before the fight. So a specific function or userfunction is an ideal solution.

As to casting time, I believe the RC version deals with faster casting ok but the current 744 doesn't.
  • 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

dx876234
Posts: 188
Joined: Sat Jul 24, 2010 6:13 am

Re: Party Bot (questions/answers)

#14 Post by dx876234 » Thu Dec 13, 2012 9:21 am

Ye I think Lisa's suggestion would cover it pretty much, then it could be responsible for timing as well which will be class and user specific.

On funny idea would be to read the countdown in party chat and trigger buff function on each number....perhaps overkill

-dx

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

Re: Party Bot (questions/answers)

#15 Post by lisa » Thu Dec 13, 2012 7:30 pm

ok I think I may have finally worked out a way to turn a random specific string into a function call, never done it before.

The easy way would be to have specific names for functions and then call them using specific names like

Code: Select all

function party1() *************** end

if _command == "1" then party1() end
I find this very limiting and want people to be able to make any function of their own with any name and call it without doing specific calls like above code.

Ok so at the moment I have come up with this.

Code: Select all

function ilovetoparty() *************** end
you type in party chat

funct"ilovetoparty"

then the code does

Code: Select all

if _funct then funct = string.dump(_funct) assert(loadstring(funct)()) end
So what this does is turn the function itself into a string and then it executes that string as a function.

There is probably a better/easy way but at this stage I don't know it, still reading up on it.
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: Party Bot (questions/answers)

#16 Post by lisa » Thu Dec 13, 2012 11:32 pm

well I was kind of close lol

I ended up finding an example in bot.lua for loadstring and it turned out pretty simple.

Code: Select all

if _funct then 
local actionchunk = loadstring(_funct);
actionchunk();
end
So you could do in party chat

Code: Select all

funct"print('lol')"
and the party bots would print on their MM screens
lol


I might do some testing over the weekend if I get the time.
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: Party Bot (questions/answers)

#17 Post by lisa » Fri Dec 14, 2012 12:07 am

yup turned out very easy.
partycode1.jpg

Code: Select all

_action = string.match(_message,"code\"(.*)\"")

		elseif _action then
			local docode = loadstring(_action);
			if docode then docode() else sendPartyChat("Bad code, try again") end


have a test for yourself.
use this in game

code" "
be careful not to use any more " in the actual code

examples

Code: Select all

code"GoThroughPortal()"
code"sendPartyChat('I love to party all night long')"
code"madman(true)"
code"madman()"

Code: Select all

function madman(_arg)
	function madtimed()
		if RoMScript("madman.Time") >= 1 then 
			player:clearTarget();
			printf("Running\n")
			yrest(4000)
		end	
	end
	if _arg then
		registerTimer("madman", secondsToTimer(1), madtimed);
	else
		unregisterTimer("madman");
	end
end
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: Party Bot (questions/answers)

#18 Post by rock5 » Fri Dec 14, 2012 5:23 am

Interesting but it would always rely on the mm script having to support reacting to it. I'm not sure under what applications it could be used. I assume you have some ideas. How were you hoping to use it?
  • 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: Party Bot (questions/answers)

#19 Post by lisa » Fri Dec 14, 2012 6:04 am

rock5 wrote:I assume you have some ideas. How were you hoping to use it?
hmm long version or short version?

A while back we were looking at networking together a few MM and using them working together and passing info to each other, turned out to be a big strain on PC resources so the idea was scrapped.

With being able to pass code at will from 1 character to another we can now basically make multiple MM work together, it could get to the point that it would almost be like having other people playing the other characters, if you are good enough with the code and usage of course.

One of the big things for me when I did play was the absolute need for other players in order to successfully go through an entire instance run. The prospect of coding up for bots to be able to react in a different way to specific encounters was to massive to even start on it.

Changing which skills chars use, getting them to use specific buffs before a boss fight. You can even now tell the healer to use the self res and then res the other characters. Tell the bots to keep trying to loot until the corpse is gone, so many bots miss loot, tell them not to loot trash.
The options are now absolutely endless.

Ok as an example the instance HoS comes to mind.
it is 3rd or 4th boss that you need to click specific coloured crystals depending on a specific buff that you get, if you don't the boss stays immune to all damage until it gets to the point it rages and kills everyone.
With being able to pass code to other bots the entire HoS instance is now bottable, if you have 4+ chars.
You can now call a specific function when at the boss encounter that will make the bots monitor their buffs and then go and click the correct pillar to make the boss take damage, when boss goes active they then kill it.


another example
Last boss in DL
you need a magic dealer and phys dealer to kill the 2 mobs to make boss active, the mobs need to die with a specific time of each other. You can set up a function to make the characters target specific mobs and monitor the HP of both mobs and manage the kill to happen at roughly the same time. Complicated but doable.


Being able to actually make each MM do specific code when needed will make it possible to bot pretty much anything in the game, as long as your characters are ready for it, gear and lvl.

The calling of functions doesn't need to be complicated either, can easily set up a macro for it and just have it on skill bar when running the instances.


Ok so not everyone wants to run instances.
You could start up 5 chars all brand new, have 1 running a specific WP and the other 4 will be running partydps. The WP will have specific code to post at times like turning on and off loot, farming mobs, talking to NPC's and they would all work together as a "team".

I bet you are now thinking, "I wish I went with the short version" 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
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Party Bot (questions/answers)

#20 Post by lisa » Fri Dec 14, 2012 6:09 am

--=== short version ===--

1 character tells every single bot in party exactly what to do = awesomesauce.
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

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 1 guest