EQ2BotCommander Reborn

wired203

Active Member
I have done a full re-write of EQ2BotCommander to make it more usefull. Features include

Easy to Setup UPLink Connections
Run/End EQ2bot on all sessions
Hard Pause EQ2bot on all sessions
Follow MT
EQ2Quest Integration
Invite(Select Target and hit button will accept the invite 2 seconds after it's clicked)
EQ2afkalarm integration
Hail Target(Will hail the masters target)
AutoDisarm integration
Revive(Selects first revive option on ALL PC's)
MezMode(Eq2bot Integration)
Pre-Heal(EQ2bot Integration for all healers pre-heals/wards)
Jump


Gate (To your home city for all chars)
Call GH (Guild hall call for all chars)
Mentor (Select your mentoree and press the button, Integrated from Automentor)
Shadow(Shadows the target at a distance of 2)

Uplink settings.

Please let me know what you like/dislike about it. I set all buttons to be color coded so you know when options are currently running.

Posted this late last night and forgot to mention special thanks to Valerian, Nuprecon, Primalz, and Cybertech for help/tips on this project.
 

Attachments

Last edited:

wired203

Active Member
Your Welcome, I have been thinking about how I coded it. WIll be really busy for a week or so but I figured out a way to make the code smaller and easier to manage. So far would still be all the same functionality however just cleaner coded.
 

Valerian

ISX Specialist
this has been committed to SVN. If you don't have write access to the SVN yet Wired, you should talk to Amadeus about getting it (he will need login/password info from you).
 

mistrornge

Active Member
I have tried inire's eq2botcommand5 and i cannot get it started. The reason is simple, the "Start Uplinks" button is below the level that is clickable on the UI. The UI needs to be extended below the button for it to be clickable for me.
 

Valerian

ISX Specialist
I have tried inire's eq2botcommand5 and i cannot get it started. The reason is simple, the "Start Uplinks" button is below the level that is clickable on the UI. The UI needs to be extended below the button for it to be clickable for me.
tried resetting the UI? right click the window titlebar and select Reset
 

mistrornge

Active Member
Hit "Reset Position" and it shifted the position on the screen but didn't extend the bottom of the UI down below the "Start Uplinks" button
 

bob_the_builder

Well-Known Member
Any chance you could integrate a manastone usage script with the bot commander?
Just use the script info that Jigga wrote but change the Bear Whistle to

Me.Inventory[Manastone]:Use


Personally though Id say add it to your custom class ISS so it always runs

Like this:

if ${Me.ToActor.Health}>60 && ${Me.ToActor.Power}<50
Me.Inventory[Manastone]:Use


Bob
 
Last edited:

Herculezz

ISX Specialist
I have a custom version of the eq2botcommander that helps me out tremendously with 5 boxing my toons. Anyone is welcome to use it.

here is a screenie.



Added Features:

Wiz Port / Druid Port - Ability to have your Wiz/Lock or Druid Cast their portal
Click Port - Button to open portal on all toons
Port - Button and Text Entry to choose which zone on the portal and confirm it to zone. You enter the number as its listed from top to bottom.
Evac - Cast evac spell.(Currently only setup for wiz or druid)
Zone - button to have all toons click on zone outs for most instances.
Repair - Opens Repair screen on Target (Not Fully Implemented, Doesnt Click Repair All yet.)
Accept Reward - Button to accept the quest reward window screen (This feature of isxeq2 is currently broken so just makes the quest reward window dissapear without actually accepting the reward)
H - Hails current target and will select the options 1,2,or 3 as you click the buttons (Thanks to another member for this, P.S. Don't remember who but will eidt and add later)
 

Attachments

wired203

Active Member
hrmm needs some editing to make it more user friendly, I need to re-install notepad++ onto the netbook and dig in. Could use more tabs, I have been considering making a version too that runs a script local with no UI to make it overall smarter (since you could get current toons class etc).

I also need to take a look at that new ogre script, could be handy getting all the tells pulled to the main window. Biggest problem is trying to create high usefullness while still maintaining a small enough footprint so you don't cover too much usable window.
 

Herculezz

ISX Specialist
Yea agreed I just threw that together to help me out and make things easier for me but if you can tear it up and make it even better with a smaller screen That would be great.
Also a thought I have not added it yet but a Send Pet button would be nice to have it send eq2execute pet attack or whatever on the target the MT is targeting.
 
Last edited:

bjcasey

ISX Specialist
How would I go about adding a "Reacquire Kill Target" button to eq2botcommander?

So far here is what I have, but I don't know how to have it relay it to all active sessions.

EQ2Bot Noteworthy Code:

Code:
function ReacquireKillTargetFromMA()
{
	variable int NextKillTarget
	CurrentAction:Set[Reacquiring KillTarget from ${MainAssist} in 0.5 seconds...]
	wait 5

	if ${Actor[${MainAssistID}](exists)}
	{
		if !${Actor[${MainAssistID}].InCombatMode}
		{
			Debug:Echo["ReacquireKillTargetFromMA() FAILED [MainAssist is no longer in combat mode]"]
			return FAILED
		}

		if ${Actor[${MainAssistID}].Target(exists)}
		{
			NextKillTarget:Set[${Actor[${MainAssistID}].Target.ID}]
			if (${NextKillTarget})
			{
				if ${Actor[${NextKillTarget}].Type.Find[NPC]} && !${Actor[${NextKillTarget}].IsDead}
				{
					KillTarget:Set[${NextKillTarget}]
					Debug:Echo["KillTarget now set to ${Actor[${MainAssistID}]}'s target: ${Actor[${KillTarget}]} (ID: ${KillTarget})"]
					return OK
				}
				else
				{
					Debug:Echo["ReacquireKillTargetFromMA() FAILED [MainAssist's target was not valid]"]
					return FAILED
				}
			}
			else
			{
				Debug:Echo["ReacquireKillTargetFromMA() FAILED [MainAssist's target ID was zero]"]
				return FAILED
			}
		}
		else
		{
			;Debug:Echo["ReacquireKillTargetFromMA() FAILED [MainAssist does not currently have a target]"]
			return FAILED
		}
	}
	else
	{
		Debug:Echo["ReacquireKillTargetFromMA() FAILED [MainAssist doesn't exist!]"]
		return FAILED
	}

	Debug:Echo["ReacquireKillTargetFromMA() FAILED"]
	return FAILED
}
My added EQ2BotCommander UI Code:

Code:
<Button Name='Reacquire'>
								<X>5%</X>
								<Y>140</Y>
								<Width>90</Width>
								<Height>20</Height>
								<Text>Re-Target</Text>
								<AutoTooltip>Re-targets the MA's target</AutoTooltip>
								<OnLeftClick>Script[EQ2Bot]:QueueCommand[call ReacquireKillTargetFromMA]

</OnLeftClick>
							</Button>
 

bjcasey

ISX Specialist
I have a custom version of the eq2botcommander that helps me out tremendously with 5 boxing my toons. Anyone is welcome to use it.

here is a screenie.



Added Features:

Wiz Port / Druid Port - Ability to have your Wiz/Lock or Druid Cast their portal
Click Port - Button to open portal on all toons
Port - Button and Text Entry to choose which zone on the portal and confirm it to zone. You enter the number as its listed from top to bottom.
Evac - Cast evac spell.(Currently only setup for wiz or druid)
Zone - button to have all toons click on zone outs for most instances.
Repair - Opens Repair screen on Target (Not Fully Implemented, Doesnt Click Repair All yet.)
Accept Reward - Button to accept the quest reward window screen (This feature of isxeq2 is currently broken so just makes the quest reward window dissapear without actually accepting the reward)
H - Hails current target and will select the options 1,2,or 3 as you click the buttons (Thanks to another member for this, P.S. Don't remember who but will eidt and add later)
What is the usage/scenarios for the Double Click button/text box?
How does zone work? I've found a few instances where it doesn't work and was wondering if it was something that I needed to modify with something to make it work.
 

Kannkor

Ogre
Repair - Opens Repair screen on Target (Not Fully Implemented, Doesnt Click Repair All yet.)
I posted code that will target/repair all on menders and guild menders. It's on the forums here. Feel free to use it. You would need to queue the function.

Accept Reward - Button to accept the quest reward window screen (This feature of isxeq2 is currently broken so just makes the quest reward window dissapear without actually accepting the reward)
It's not broken.. you are merely using it incorrectly.
You are using the command to ACCEPT the quest, where you should be using the command to RECEIVE the quest rewards.

relay all RewardWindow:Accept
That will Accept a quest OR make a reward window disappear (bad).

relay all RewardWindow:Receive
Will RECEIVE the quest reward (aka click OK).

hehe.. On my custom Uplink commander (eq2botcommander) I have 4 tabs totaling over 80-100 buttons.. Of which 60 or so are used the others are for expansion.. lol. Most of which just queue functions in my bot script (not eq2bot).
 

bjcasey

ISX Specialist
I posted code that will target/repair all on menders and guild menders. It's on the forums here. Feel free to use it. You would need to queue the function.



It's not broken.. you are merely using it incorrectly.
You are using the command to ACCEPT the quest, where you should be using the command to RECEIVE the quest rewards.

relay all RewardWindow:Accept
That will Accept a quest OR make a reward window disappear (bad).

relay all RewardWindow:Receive
Will RECEIVE the quest reward (aka click OK).

hehe.. On my custom Uplink commander (eq2botcommander) I have 4 tabs totaling over 80-100 buttons.. Of which 60 or so are used the others are for expansion.. lol. Most of which just queue functions in my bot script (not eq2bot).
I know both of those as I saw your responses in other thread and have already added them to my own version of eq2botcommander.

Re-read what my questions were in my previous post please and thanks for taking the time to try to answer them.
 

Herculezz

ISX Specialist
What is the usage/scenarios for the Double Click button/text box?
How does zone work? I've found a few instances where it doesn't work and was wondering if it was something that I needed to modify with something to make it work.
The zone works only for those zones that actually have a widget to click in order to exit some do not. Thats all SoE.

The Double Click button and text box is used for items in the world you need to DoubleClick on on all bots like for quest clickies for example it basically takes whatever you have in the text box and adds it to: Actor["Text Here"]:DoubleClick

Which will click on items in the world. I use the radar to get the exact name fo the items.
 

Deugar

Active Member
Would this command work

I want to stop autoattacks on all the bots when i press the pause key.

function StartPauseEQ2Bot()
{
if ${Pause} == FALSE
{
Pause:Set[TRUE]
UIElement[EQ2Bot Commander].FindChild[GUITabs].FindChild[Main].FindChild[StartEQ2Bot].Font:SetColor[FFFF0000]
Relay all Script[EQ2Bot]:Resume
Relay all eq2execute /autoattack 1
}
else
{
Pause:Set[FALSE]
UIElement[EQ2Bot Commander].FindChild[GUITabs].FindChild[Main].FindChild[StartEQ2Bot].Font:SetColor[FF32CD32]
Relay all Script[EQ2Bot]:pause
Relay all "Press ${forward}"
Relay all "Press ${strafeleft}"
Relay all eq2execute /autoattack 0
}

}
 

MrObvious

Senior Member
I got a guild strategist for my guild hall for moving my bots around. Any way to get a button added to Bot Commander to hail the Strategist and hit the option to go to the rally point? I can post screenies if you need the dialog.
 

MrObvious

Senior Member
One other BotCommander request, that may be somewhere and I am just not aware. One of the most frustrating things is to move 6 toons across and zone and find out there was a straggler way back. Any way to have some kind of alarm sent to the BotCommander when a group member is out of range?
 

mistrornge

Active Member
Agreed that is rather aggravating to look up after running across the zone to find one of your DPS is still back where you started. No idea how that could be made to work though.
 

bob_the_builder

Well-Known Member
Agreed that is rather aggravating to look up after running across the zone to find one of your DPS is still back where you started. No idea how that could be made to work though.
Using the eq2stayfollow is a really nice way to keep the bots together.

My problem is though I do not unerstand how to implement it into eq2botcommander. Say I want to highlight myself in the group F1 and then run click a button in eq2botcommander and have it start the eq2stayfollow on all of the bots to follow my F1 toon name. And then unclick the box and they stop following. Since eq2stayfollow is a seperate script I do not understand enough to pass it through from botcommander to the eq2stayfollow.

But if anyone has enough knolledge to add that code piece in for eq2stayfollow it would work pretty well.

Bob
 

grimson

Active Member
The zone works only for those zones that actually have a widget to click in order to exit some do not. Thats all SoE.

The Double Click button and text box is used for items in the world you need to DoubleClick on on all bots like for quest clickies for example it basically takes whatever you have in the text box and adds it to: Actor["Text Here"]:DoubleClick

Which will click on items in the world. I use the radar to get the exact name fo the items.

Would it be possible to have eq2bot tell other bots to double click my target instead of having to type the name of what I want them to click in the box every time?

:)
 

insanitywiz

Senior Member
Would it be possible to have eq2bot tell other bots to double click my target instead of having to type the name of what I want them to click in the box every time?

:)
It is possible, but sometimes not desired because what you want to click on can not be targeted.
 

bjcasey

ISX Specialist
Few additions for Sentinel's Fate.

Double-click the teleporter pads used for transportation around Odus. ***

XML
Code:
<Button Name='odusporter'>
								<X>5%</X>
								<Y>200</Y>
								<Width>90</Width>
								<Height>20</Height>
								<Text>Use Odus Porter</Text>
								<AutoTooltip>Double clicks the teleporter pads in Odus</AutoTooltip>
								<OnLeftClick>Script[EQ2BotCommander]:QueueCommand[call odusporter]</OnLeftClick>
							</Button>
ISS
Code:
function odusporter()
{
	relay all Actor[dock]:DoubleClick
}
Double click the door to zone into and out of the Hole

XML
Code:
<Button Name='zonehole'>
								<X>55%</X>
								<Y>200</Y>
								<Width>90</Width>
								<Height>20</Height>
								<Text>Zone Hole</Text>
								<AutoTooltip>Zones into the Hole</AutoTooltip>
								<OnLeftClick>Script[EQ2BotCommander]:QueueCommand[call zonehole]</OnLeftClick>
							</Button>
ISS
Code:
function zonehole()
{
	relay all Actor[hole]:DoubleClick
}
*** I haven't been able to figure out how to have it right click instead of double click and select a destination. Currently, my additions will automatically port you to the top choice.
 

Noob536

Member
Code:
#ifndef _Eq2Botlib_
	#include "${LavishScript.HomeDirectory}/Scripts/EQ2BotCommander.iss"
#endif

function main(string name)
{
	if (${Me.ToActor.WhoFollowing(exists)})
	{
		wait 20
	}
	else
	{
		eq2execute follow ${name}
		wait 20
	}
}

Edit: don't really need eq2bot commander lib if that's the whole script in the file.
Might wanna put it in a loop too if the intention is to keep it following if a toon gets off follow too /shrug

Edit again...
might wanna relay the stopfollow command too if you want all the toons to stop follow and not just the one with eq2botcommander going.
 
Last edited:

Hendrix

Well-Known Member
havnt followed the convo, but you can do something like while (1) and you will be in that loop until you manually end the script.
 

bob_the_builder

Well-Known Member
Got it all working with help from IRC channel, thx y'all !!

And to post in case anyone wants to add it to theirs:

new stayfollow.iss
Code:
variable string FollowName

function main(string FollowName)
{
announce "Stay Follow on ${Target}"
do
	{
		if (${Me.ToActor.WhoFollowing(exists)})
		{
			wait 20
		}
		else
		{
			eq2execute follow ${FollowName}
			wait 20
		}
	}	
while 1
}
EQ2BotCommander.iss

Code:
function StayFollow()
{
	if ${Following} == FALSE
	{
		Following:Set[TRUE]
		UIElement[EQ2Bot Commander].FindChild[GUITabs].FindChild[Main].FindChild[StayFollow].Font:SetColor[FF32CD32]
		Relay "all other" Run stayfollow ${Target}
	}
	else
	{
		Following:Set[FALSE]
		UIElement[EQ2Bot Commander].FindChild[GUITabs].FindChild[Main].FindChild[StayFollow].Font:SetColor[FFFF0000]
		Relay all EQ2Execute /stopfollow
		Relay "all other" announce "I have stopped following"
		Relay all EndScript stayfollow
	}
}
EQ2BotCommander.xml

Code:
<Button Name='StayFollow'>
<X>5%</X>
<Y>190</Y>
<Width>90</Width>
<Height>20</Height>
<Text>StayFollow</Text>
<AutoTooltip>Always Follows Target</AutoTooltip>
<OnLeftClick>Script[EQ2BotCommander]:QueueCommand[call StayFollow]</OnLeftClick>
<Font><Color>FFFF0000</Color></Font>
</Button>
 
Last edited:

MrObvious

Senior Member
I would think there would be some agreed upon improvements that would be nice to include in the standard offering. The box to put the name of the item to click, stayfollow, etc. Might be nice if people wouldn't at least mind sharing their script in a zip file post here. Honestly, I don't want to make a ton of tweaks myself, I am sure there a lot of great ideas out there.
 

insanitywiz

Senior Member
There is a more advanced eq2botcommander then the SVN one here on the forums, in this thread somewhere I think actually, however it doesn't have any of the newer additions.

The problem with it is that there are just so many things that people tweak for their specific setup, and at least for me, it's never a "finished" product. If I ever get around to cleaning out my temp tab, then I may post mine, but there are alot of things I'm always trying to improve, some of which I figure out, some I don't.
 

Tamorus

Well-Known Member
Really would love someone to post an update to this script or multiple updates depending on group spec.....I still run the default and to be honest it works fine....everything else I have written into my own script...but it would be nice to be able to see everyones interpretation of this uber script!
 

Eq2hax

Active Member
My current Eq2BotCommander showing 3 of my Tabs.

I just wanted to point out to anyone new that this can be very useful and is quite easy to add your own buttons.

Cant show 2 of my tabs but currently I have over 100 useful buttons.
 

Attachments

MrObvious

Senior Member
My current Eq2BotCommander showing 3 of my Tabs.

I just wanted to point out to anyone new that this can be very useful and is quite easy to add your own buttons.

Cant show 2 of my tabs but currently I have over 100 useful buttons.
Holy crap, that is a lot of buttons. I know I have probably missed it already posted, but can you walk through the steps to add a button that

1. Clicks on a target
2. Selects a menu option by number

I think I can figure out how to call specific spells, but would love a little primer on this. I'm going to have to learn how to do this.. :D
I haven't done much programming for about 18 years, we will see if I still have the knack.

Update: Ok, read through both the function script and UI script. It looks pretty simple to add a button. I will have to figure out which functions I want to add first and try that.
 
Last edited:

MrObvious

Senior Member
Thanks for the examples above in the thread. I got several of my most needed functions working, and it wasn't that difficult at all.
 

bob_the_builder

Well-Known Member
So I am trying to add in to my eq2botcommander to stop the eq2autofollow and then set them to auto attack. I have this but doesn't seem to be doing the trick. Any help appreciated.

Code:
function AutoAttack()
{
 if ${AutoAttack} == FALSE
 {
  AutoAttack:Set[FALSE]
  UIElement[EQ2Bot Commander].FindChild[GUITabs].FindChild[Main].FindChild[AutoAttack].Font:SetColor[FF32CD32]
  Script[EQ2Bot].Variable[RetainAutoFollowInCombat]:Set[TRUE]
  Script[EQ2Bot].Variable[NoAutoMovementInCombat]:Set[TRUE]
  Script[EQ2Bot].Variable[NoAutoMovement]:Set[TRUE]
  Script[EQ2Bot].Variable[AutoMelee]:Set[FALSE]
  LavishSettings[EQ2Bot].FindSet[Character].FindSet[General Settings]:AddSetting[Auto Melee,FALSE]    
  LavishSettings[EQ2Bot].FindSet[Character].FindSet[EQ2BotExtras]:AddSetting["NoAutoMovement",TRUE]    
  LavishSettings[EQ2Bot].FindSet[Character].FindSet[EQ2BotExtras]:AddSetting["NoAutoMovementInCombat",TRUE]	 	
  LavishSettings[EQ2Bot].FindSet[Character].FindSet[EQ2BotExtras]:AddSetting[RetainAutoFollowInCombat,TRUE]
  Script[EQ2Bot].VariableScope.EQ2Bot:Save_Settings
  Relay all EndScript position
 }
else
 {
  AutoAttack:Set[TRUE]	
  UIElement[EQ2Bot Commander].FindChild[GUITabs].FindChild[Main].FindChild[AutoAttack].Font:SetColor[FFFF0000]
  Script[EQ2Bot].Variable[RetainAutoFollowInCombat]:Set[FALSE]
  Script[EQ2Bot].Variable[NoAutoMovementInCombat]:Set[FALSE]
  Script[EQ2Bot].Variable[NoAutoMovement]:Set[FALSE]
  Script[EQ2Bot].Variable[AutoMelee]:Set[TRUE]
  LavishSettings[EQ2Bot].FindSet[Character].FindSet[General Settings]:AddSetting[Auto Melee,TRUE]		
  LavishSettings[EQ2Bot].FindSet[Character].FindSet[EQ2BotExtras]:AddSetting["NoAutoMovement",FALSE]   
  LavishSettings[EQ2Bot].FindSet[Character].FindSet[EQ2BotExtras]:AddSetting["NoAutoMovementInCombat",FALSE]	  
  LavishSettings[EQ2Bot].FindSet[Character].FindSet[EQ2BotExtras]:AddSetting[RetainAutoFollowInCombat,FALSE]
  Script[EQ2Bot].VariableScope.EQ2Bot:Save_Settings
  Relay all EndScript stayfollow
  Relay "all other" Run position
 }
}
 

wolfppo

Active Member
Got it all working with help from IRC channel, thx y'all !!

And to post in case anyone wants to add it to theirs:

new stayfollow.iss
Code:
variable string FollowName

function main(string FollowName)
{
announce "Stay Follow on ${Target}"
do
	{
		if (${Me.ToActor.WhoFollowing(exists)})
		{
			wait 20
		}
		else
		{
			eq2execute follow ${FollowName}
			wait 20
		}
	}	
while 1
}
EQ2BotCommander.iss

Code:
function StayFollow()
{
	if ${Following} == FALSE
	{
		Following:Set[TRUE]
		UIElement[EQ2Bot Commander].FindChild[GUITabs].FindChild[Main].FindChild[StayFollow].Font:SetColor[FF32CD32]
		Relay "all other" Run stayfollow ${Target}
	}
	else
	{
		Following:Set[FALSE]
		UIElement[EQ2Bot Commander].FindChild[GUITabs].FindChild[Main].FindChild[StayFollow].Font:SetColor[FFFF0000]
		Relay all EQ2Execute /stopfollow
		Relay "all other" announce "I have stopped following"
		Relay all EndScript stayfollow
	}
}
EQ2BotCommander.xml

Code:
<Button Name='StayFollow'>
<X>5%</X>
<Y>190</Y>
<Width>90</Width>
<Height>20</Height>
<Text>StayFollow</Text>
<AutoTooltip>Always Follows Target</AutoTooltip>
<OnLeftClick>Script[EQ2BotCommander]:QueueCommand[call StayFollow]</OnLeftClick>
<Font><Color>FFFF0000</Color></Font>
</Button>
How would I add that script to the botcommander script?

Cut and paste?
 

maxpoint

Active Member
Would anyone mind throwing up a couple of their setups ? I would love to have some more functionality to look over and see what I can do with mine.
 

bob_the_builder

Well-Known Member
Here is mine if you want to load it and check it out. Has a tab for Defiler and Inq so I can make them do certain things in battle, use certain wards/reactives and debuff modes. Going to add a Troubador one here shortly. The main tab has some follow buttons and the Misc tab has end scripts and such.

If you have any suggestions let me know I like suggestions and like adding more functionality if it seems lke a decent addition.
 

Attachments

Kevinshp

Well-Known Member
hello all

do you need interspace and isxeq2 running on the main computor? If so I run 6 toons on 6 comps so 5 comps have interspace and the main one that I play from doesn't. Interspace only allows 5 comps per sub. I also just wanted a basic understanding of how this works from reading here sounds great and coud make 6 box questing faster.

Thanks
 

bjcasey

ISX Specialist
Yes, Innerspace must be running on all computers. This program creates a link to every computer you want it to and allows you to send commands through isx to make other computers do things that you want.
 

btr2trvl

Active Member
Bob both your botcommander and your inq setup eq2bot that was in the svn are faded for me. None of the other classes are and original botcommander wasn't. Any ideas how to make them orignal opacity?
 
Top Bottom