• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver
Resource icon

Release BotThought Includes 1.5

No permission to download
Joined
Jan 19, 2015
RedCents
153¢
wirlin submitted a new resource:

BotThought Includes - Simple War/Sk/Pally include

KissAssist annoyed me one day targeting and untargeting... so I made my own for the warrior... The SK and Pally parts havn't really been refined since lvl 110ish, but slip the discs into the IamSHD or IamPAL subs and it'll use them... Use with something like this FreeRange.mac and the tank will defend himself fairly well against anything that happens to attack him or the group.

[CODE title="FreeRange.mac"]|**
for WARRIORS, PALADINS(Probably works), SHADOWKNIGHTS(Probably works)
Needs EQBC...[/CODE]

Read more about this resource...
 
The include is basically all the discs and abilities...
Just add a #include BotThought.Inc at the top of your macro to use the subs from it in your own macro...
This GoldenRoamer one roams between several waypoints named Roamer1...Roamer2...Roamer3... murdering any npc that comes within range along the way and circles back to the first forever...
adjust the /declare TotalRoams line to the number of Roamer waypoints you want in your roaming circle...
Uses MQ2Nav for movements

[CODE title="GoldenRoamer.mac"]|**
Golden Roamer Stable Version 1.5 by Wirlin Feb 2020
for WARRIORS, PALADINS, and SHADOWKNIGHTS.

Start from Anywhere on the tank
Likes EQBC connected to all toons in group but doesn't need it.
Shrinks with Ring of the Ancients...

Works with Warriors, Paladins, and Shadow Knights.
This will eventually roam through all the waypoints named Roamer*...
TotalRoams is how many Roamer# waypoints to go through.
When it reaches the Roamer${TotalRoams} waypoint it goes to Roamer1 and circles again.

Killing anything that isn't on the do not kill list, civilian casualties are expected and authorized except where prohibited.
There is no do not kill list.
Switching from MoveUtils to Nav...
RoamerNumber is where it starts the loop from and can technically be any number = or smaller than TotalRoams to start with.
TotalRoams is how many total Roamer# waypoints to juggle
In the Sub for the Event NavReachedWaypoint can use ${RoamerNumber} to do certain things at a waypoint...
Such as call an item turnin Sub, or to check the progress of a quest and set the RoamerNumber to the Roamer# of the quest complete...

UsePullPath and AllHere aren't really functional yet so they have to be left set to 1.
If you use TotalSilence or whatever for MQ2Nav it won't load the WP coords right... has to echo the zone's waypoints to read them.
**|

#include BotThought.inc

#Event NavWPInit "[MQ2Nav] Roamer#1#: #*# (#2#)"
#Event NavReachedWaypoint "[MQ2Nav] Reached destination at: (#1#)"

Sub Main

/declare TotalRoams int outer 6
/declare UsePullPath bool outer 1
/declare RoamerNumber int outer 1
/declare AllHere bool outer 1
/declare rPath string outer wp Roamer${RoamerNumber}
/declare RoamWPNum[${TotalRoams}] string outer UNDEFINED ARRAY ELEMENT

/echo Starting on a ${TotalRoams} point circle of death and destruction.

/if ((!${Bool[${Plugin[MQ2EQBC]}]} || !${Bool[${Plugin[MQ2NAV]}]}) && ${UsePullPath}==1) {
/echo YOU NEED TO CONNECT TO EQBC SERVER.
/end
}

/if (${Me.Class.ID}==1 || ${Me.Class.ID}==3 || ${Me.Class.ID}==5) {
/call InitializeCommonClickies
/call Iam${Me.Class.ShortName}
/echo I know who I am. I am not a robot.
/delay 3s
} Else {
/echo I am not a fucking tanking class idiot.
/end
}
/delay 1s

| Trigger events to setup the path to follow

/nav listwp
/delay 1s
/doevents
/delay 2s


| /echo Getting my Shrink on.
| /call Shrink ${YourShrinkItem}
| /call StartBots

:MainLoop

/delay 3s ${Me.XTarget} || ${SpawnCount[los npc radius 180]}>0 || ${Me.Hovering}
/if (${Me.XTarget}) /call CombatCheck
/if (${Me.Hovering}) /call Death
/doevents
/if (${Me.Buff[Resurrection Sickness].ID} && ${Me.XTarget}==0 && ${SpawnCount[los npc radius 180]}==0) /call ${Me.Class.ShortName}BuffCheckLoop
/if (${SpawnCount[los npc radius 180]}>0 || ${Me.XTarget}>0) /call CombatCheck
/delay 3s ${Me.XTarget} || ${SpawnCount[los npc radius 180]}>0 || ${Me.Hovering}
/if (${Me.XTarget}==0) /call ${Me.Class.ShortName}BuffCheckLoop
/if (${SpawnCount[los npc radius 180]}>0 || ${Me.XTarget}>0) /call CombatCheck
/if (${Me.XTarget}==0 && ${SpawnCount[los npc radius 180]}==0 && ${AllHere}==1 && ${UsePullPath}==1 && !${Me.Moving}) /nav ${rPath}
/doevents

/goto :MainLoop

/return
/end


Sub Event_NavWPInit(string Line, int RoNum, string WPCoords)

/varset RoamWPNum[${RoNum}] ${WPCoords}
/delay 1
/if (${RoNum}==${TotalRoams}) {
/echo The gods have finished laying out our path for us.
/doevents flush NavWPInit
}
/doevents
/delay 1
/return


Sub Event_NavReachedWaypoint(string Line, string NowCoords)

| Maybe capture the loc of the waypoint it is going to and do a distance check to it before adding 1 to the ${RoamerNumber}...That Worked.
| So that I can use /nav target dist=75 to approach new targets for pulling.

/if (${Spawn[group clr].PctMana}<40 || ${Spawn[group pc enc].PctMana}<40 || ${Me.PctEndurance}<20) {
/echo Rest Mode for a minute.
/noparse /bcga //if (${Me.Standing}) /sit
/delay 60s ${Me.XTarget}
}

/if (${NowCoords.NotEqual[${RoamWPNum[${RoamerNumber}]}]}) {
/delay 3s
/echo Back to the path.
/return
}

/echo Arrived at ${RoamerNumber}

/if (${RoamerNumber}==3) {
/echo Waypoint 3 reached. Taking a short smoke break.
/if (${Me.PctEndurance}<80 && !${Me.XTarget} && !${Me.Combat}) /sit
/delay 20s ${Me.XTarget}
/echo Ok. Back to work.
}

/if (${TotalRoams}>${RoamerNumber}) {
/varcalc RoamerNumber ${RoamerNumber}+1
/varset rPath wp Roamer${RoamerNumber}
/delay 1s
/if (!${Navigation.PathExists[${rPath}]}) /goto :FinishedRoaming
/echo Starting towards checkpoint ${RoamerNumber}
/return
}
/if (${TotalRoams}==${RoamerNumber}) {
/varset RoamerNumber 1
/echo Waiting for bitches and their buffing.
/delay 5s ${Me.XTarget}
/varset rPath wp Roamer${RoamerNumber}
/delay 30s ${Me.XTarget}
/if (!${Navigation.PathExists[${rPath}]}) /goto :FinishedRoaming
/echo Starting towards the last checkpoint ${RoamerNumber}
/return
}

:FinishedRoaming
/echo finished roaming
/end




Sub StartBots
/echo Preparing the robots to take over civilization.
/bcg //Target ${Me.Name}
/delay 2s
/bcg //mac kissassist
/call ${Me.Class.ShortName}BuffCheckLoop
/echo Refueling the robots and warming up the engines.
/delay 30s
/bcg //chase 1
/delay 15s
/echo The robots are fueled and fired up.
/echo Let The Slaughter Begin.
/delay 1s
/return

Sub RunTask

/nav ${rPath}
/delay 2s ${Me.XTarget} || ${SpawnCount[los npc radius 180]}>0 || ${Me.Hovering} || ${Navigation.Active}==FALSE
/return




Sub OldMovementStuff

/if (${CurrentSpot}==1) /MoveTo loc ${Path[1]}
:MovementLoops
/if (${AllHere}==0 && ${Me.XTarget}==0 && ${SpawnCount[los npc radius 180]}==0) {
/MoveTo loc ${Path[${Math.Calc[${CurrentSpot}-1]}]}
/delay 5
/call GroupRangeCheck
/goto :MovementLoops
}
/if (${CurrentSpot}==18) /echo anyone stuck on the fucking walls?
/if (${CurrentSpot}==35) {
/call ${Me.Class.ShortName}BuffCheckLoop
/delay 5s ${Me.XTarget}>0
}
/if (${CurrentSpot}>140) {
/echo My map says there is treasure buried here.
/call CombatCheck
/return
}
/if (${SpawnCount[los npc radius 180]}>0 || ${Me.XTarget}>0) /call CombatCheck
/delay 5
/if (${SpawnCount[los npc radius 180]}==0 && ${Me.XTarget}==0 && !${Me.Moving}) /MoveTo loc ${Path[${CurrentSpot}]}
/delay 1s ${Me.XTarget}>0
/if (${MoveTo.Broken} || ${Me.XTarget}>0) /call CombatCheck
/if (${Me.Moving} && (${Me.XTarget}>0 || ${SpawnCount[los npc radius 180]}>0)) /goto :MovementLoops
/if (${SpawnCount[los npc radius 180]}==0 && ${Me.XTarget}==0 && ${AllHere}==1 && ${MoveTo.Stopped}) /goto :ReadyToMove
} Else {
/call CombatCheck
}
/goto :MovementLoops

:ReadyToMove
/delay 6s ${Me.XTarget}>0
/call GroupRangeCheck
/if (${AllHere}==0 || ${Me.XTarget}>0 || ${SpawnCount[los npc radius 180]}>0) /goto :MovementLoops
/echo Setting next waypoint.
/varcalc CurrentSpot ${CurrentSpot}+1
/goto :MovementLoops
/return
[/CODE]
 
Release BotThought Includes

Users who are viewing this thread

Back
Top
Cart