• 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 MQ2Farmtest

@deathlock it's possible that you had a radius or zradius issue, where one or both were too small to find more mobs.

For discs, it's currently just generalized and there is no set routine or logic designed to know if something is an active disc. You can use the
INI:
RemoveDisc#=Name of Disc
to remove a disc you don't want the character to use from the lineup. The plugin is just getting the highest level disc on every timer and storing those as "Best for this timer" it's doesn't nessesarily know what to do with it or when.

I do have plans to revisit and refine this plugin a bit more once I've got MQ2BerZerker farther along. While coding the MQ2BerZerker I'm creating utility functions that will serve to assist me in the creation of better logic for this plugin, and perhaps other combat assisting plugins in the future.


Code:
[General]
Debugging=false
useLogOut=false
useEQBC=false
useMerc=false
CastDetrimental=false
RemoveDisc1=Leechcurse Discipline
RemoveDisc2=Krellnakor Mantle Rk. III
RemoveDisc3=Spite of Kra`Du Rk. III
RemoveDisc4=Cursed Guardian Discipline Rk. III
RemoveDisc5=Impenitent Influence Rk. III
RemoveDisc6=Deflection

[Pull]
ZRadius=10000
Radius=10000
PullAbility=Refute for Power
[Health]
HealAt=10
HealTill=70
[Endurance]
MedEndAt=0
MedEndTill=20
[Mana]
MedAt=10
MedTill=20

Am I removing the Discs right? they still seem to be firing.
 
Code:
[General]
Debugging=false
useLogOut=false
useEQBC=false
useMerc=false
CastDetrimental=false
RemoveDisc1=Leechcurse Discipline
RemoveDisc2=Krellnakor Mantle Rk. III
RemoveDisc3=Spite of Kra`Du Rk. III
RemoveDisc4=Cursed Guardian Discipline Rk. III
RemoveDisc5=Impenitent Influence Rk. III
RemoveDisc6=Deflection

[Pull]
ZRadius=10000
Radius=10000
PullAbility=Refute for Power
[Health]
HealAt=10
HealTill=70
[Endurance]
MedEndAt=0
MedEndTill=20
[Mana]
MedAt=10
MedTill=20

Am I removing the Discs right? they still seem to be firing.


FIXED: Sorry to bother.

Code:
[General]
Debugging=false
useLogOut=false
useEQBC=false
useMerc=false
CastDetrimental=True

[DiscRemove]
RemoveDisc1=Leechcurse Discipline
RemoveDisc2=Krellnakor Mantle Rk. III
RemoveDisc3=Spite of Kra`Du Rk. III
RemoveDisc4=Cursed Guardian Discipline Rk. III
RemoveDisc5=Impenitent Influence Rk. III
RemoveDisc6=Deflection
 
TargetDist=3,1040,875,255,0,255 , ${If[${Farm.TargetID},${Spawn[${Farm.TargetID}].Distance} ,]}

Does not seem to work for the HUD. The distance number never shows up.

This plugin is great. Once I remove disc's from being used.

I gotta be honest.. I start up my Kissassist, have my group do the same, then /Farm on and we destroy things. I love you can call out a specific mob to find and kill. Full or partial name. I did wish there was a way to declare more then one mob, that would be icing on the cake.
 
@ChatWithThisName

Is there a way to permanently add mobs to ignore?

/ignorethis & /ignorethese work, but they do not retain the information. when you use it the next day.
 
Last edited:
Seems like with just a little bit more work this could be a pulling plugin.
How good would that be?
 
Has this been fixed to not fire rogue covenant?

Sic fixed a copy when we talked about it before but I'm unsure if the change was pushed out to rg or not. Mine no longer works after patch.
 
Hey Chat, if you'd be able to make it so it stops and fights something that agro's you while you're pathing to your next mob that'd be awesome, or a toggle for it. Thanks
 
TargetDist=3,1040,875,255,0,255 , ${If[${Farm.TargetID},${Spawn[${Farm.TargetID}].Distance} ,]}

Does not seem to work for the HUD. The distance number never shows up.

I would also like to request something if possible.

When in farm mode and you are running to a mob that is pretty far away and you pick up a mob on extended target, running to said mob..... Can you make the toon stop running to the previously targeted mob and kill the one that aggro'd along the way. I have lost many a group members as the tanks runs and runs and ignores mobs on extended target. The worst part is, if he manages to kill the mob he was running at and aggros more mobs... He will run back to the first aggro'd mob while the rest of the group dies from the newly aggro'd mobs.

I know that was winded and I apologize. Morale of the story, if you could kill anything that popped on extended target first, so it is safe to proceed to the next mob would be awesome and save me a lot of deaths.

Thank you for reading!
 
Thanks Chat for this awesome plugin. Seems the problem with Toadwart still existing, my war just sits after killing some mobs. When trying the command /farm on it returns nothing. Like what happened to Toadwart, unloading and loading the plugin fixed the problem.

Just wanted to add, i used it in conjunction with MQ2War, is there any conflicts?
 
Last edited:
Redbot updated MQ2Farmtest with a new update entry:

Refactor/Cleanup/BugFixes

- PCHAR to char*
- remove pulsing variable.
- Replace TargetIt #define with function.
- VOID to void
- remove void as a parameter
- RemoveCommand for /permignore added.
- Added function Moving(PSPAWNINFO pSpawn) to avoid the plugin spam sitting when the character moves manually.
- move most if not all commands to their own line following an if statement.
- Removed commented out plugin API calls.
- change char var[MAX_STRING] parameters to use char*
- Changed atob to do a case insensitive...

Read the rest of this update entry...
 
@ChatWithThisName

Really enjoying this plugin.

One feature I think would be fantastic is a "/farm UsePet" command that included pet class logic to send pet in to kill targeted mobs. Right now my mage is trying to melee or cast (while still kinda moving, so less effective than usual). Sending the pet in would fix all those issue and speed the farming along.

Thanks bud.
 
Something really odd is going on in Qinimi with this plugin AND the farm.mac.

I verified the mesh is good, my radius is set to 3000, zradius 1000 (I've had both of those numbers as high as 10000 in other zones without issues), castdetrimental is off, I've done a /farm farmmob clear to try to clear any filters, and it'll attack anything that agros it just fine. But it won't roam around killing like it was before. Super odd. I'm going to move to a different zone and see if that clears it up.

I'm seeing this behavior right now with BOTH the plugin and the mac in this spot.
 
Changing to a different GoD zone didn't fix the issue.
 
^^^^^^

All the above was fixed by restarting my computer and updating MQ2. No idea why it would just stop working, but the old power off, power on trick worked.

Side note, can someone remind me of the syntax to have mq2farmtest farm a type of mob rather than just by name? I was previously given syntax that allowed me to kill a mob of a certain race, even if the names didn't match. That was really useful. Now, I'm trying to find out if the same can be done for undead mobs whose names don't match.

Thanks!
 
^^^^^^

All the above was fixed by restarting my computer and updating MQ2. No idea why it would just stop working, but the old power off, power on trick worked.

Side note, can someone remind me of the syntax to have mq2farmtest farm a type of mob rather than just by name? I was previously given syntax that allowed me to kill a mob of a certain race, even if the names didn't match. That was really useful. Now, I'm trying to find out if the same can be done for undead mobs whose names don't match.

Thanks!
/farm farmmob "race Human"
 
New issue.

What happens if the race is two words? I can't find a syntax that seems to work.
Sum1,

I tried to see if I could figure this out as well. I tried "race 'Dark Elf'"; race "Dark Elf"; "race Dark%Elf"; "race Dark_Elf"; "race Dark*" and a few other ways....

I even tried some TLO stuff, but of course I don't know how or what the plugin is evaluating, like this: "race ${Spawn[${Farm.TargetID}].Race.ID}=6" where 6= Dark Elf and the plugin just sat there with nothing found (I was sitting right in front of a Dark Elf warrior).

I am sure it is a simple fix, just need to get Chat or Sic aware so they can make the minor change.
 
If there is an issue with selecting a race of multiple words then the issue would reside in the core functionality of MQ2 since It just uses spawnsearch.


In the logic the decision for what to kill is set here.
C++:
else if (!MyTargetID) {
        GemIndex = 0;
        MyTargetID = SearchSpawns(searchString); <~~~~~~~~~~~~~~Here
        Mob = (PSPAWNINFO)GetSpawnByID(MyTargetID);
    }

and "searchString" is set using the following.
C++:
void UpdateSearchString()
{
    sprintf_s(searchString, MAX_STRING, "npc noalert 1 radius %i zradius %i targetable loc %f %f %f %s", Radius, ZRadius, AnchorX, AnchorY, AnchorZ, FarmMob);
}

So let's say that we're searching for "race dark elf" according to the users input.
radius is 1000
zradius is 300
and our "anchor" (start location) is 1, 2, 3
then we would effectively be doing

Then the result for the plugins search, and the result for a Spawn TLO query is the same.
Code:
/echo ${Spawn[npc noalert 1 radius 1000 zradius 300 targetable loc 1 2 3 race dark elf].Name}

The snippet of code that gets the race from the search is

C++:
else if (!_stricmp(szArg, "race")) {
            GetArg(szArg, szRest, 1);
            strcpy_s(pSearchSpawn->szRace, szArg);
            szRest = GetNextArg(szRest, 1);
        }

Since GetArg uses a space to determine the seperation of arguments, and the number of arguements for race is unknown, it appears that it only supports a single word race. It's plausbile that I'm incorrect and there's a way to do multiple word races, but I'm not currently aware of the method needed to do so.
 
Last edited:
If there is an issue with selecting a race of multiple words then the issue would reside in the core functionality of MQ2 since It just uses spawnsearch.


In the logic the decision for what to kill is set here.
C++:
else if (!MyTargetID) {
        GemIndex = 0;
        MyTargetID = SearchSpawns(searchString); <~~~~~~~~~~~~~~Here
        Mob = (PSPAWNINFO)GetSpawnByID(MyTargetID);
    }

and "searchString" is set using the following.
C++:
void UpdateSearchString()
{
    sprintf_s(searchString, MAX_STRING, "npc noalert 1 radius %i zradius %i targetable loc %f %f %f %s", Radius, ZRadius, AnchorX, AnchorY, AnchorZ, FarmMob);
}

So let's say that we're searching for "race dark elf" according to the users input.
radius is 1000
zradius is 300
and our "anchor" (start location) is 1, 2, 3
then we would effectively be doing

Then the result for the plugins search, and the result for a Spawn TLO query is the same.
Code:
/echo ${Spawn[npc noalert 1 radius 1000 zradius 300 targetable loc 1 2 3 race dark elf].Name}

The snippet of code that gets the race from the search is

C++:
else if (!_stricmp(szArg, "race")) {
            GetArg(szArg, szRest, 1);
            strcpy_s(pSearchSpawn->szRace, szArg);
            szRest = GetNextArg(szRest, 1);
        }

Since GetArg uses a space to determine the seperation of arguments, and the number of arguements for race is unknown, it appears that it only supports a single word race. It's plausbile that I'm incorrect and there's a way to do multiple word races, but I'm not currently aware of the method needed to do so.
CWTN,

Thanks for the explanation!
 
If there is an issue with selecting a race of multiple words then the issue would reside in the core functionality of MQ2 since It just uses spawnsearch.


In the logic the decision for what to kill is set here.
C++:
else if (!MyTargetID) {
        GemIndex = 0;
        MyTargetID = SearchSpawns(searchString); <~~~~~~~~~~~~~~Here
        Mob = (PSPAWNINFO)GetSpawnByID(MyTargetID);
    }

and "searchString" is set using the following.
C++:
void UpdateSearchString()
{
    sprintf_s(searchString, MAX_STRING, "npc noalert 1 radius %i zradius %i targetable loc %f %f %f %s", Radius, ZRadius, AnchorX, AnchorY, AnchorZ, FarmMob);
}

So let's say that we're searching for "race dark elf" according to the users input.
radius is 1000
zradius is 300
and our "anchor" (start location) is 1, 2, 3
then we would effectively be doing

Then the result for the plugins search, and the result for a Spawn TLO query is the same.
Code:
/echo ${Spawn[npc noalert 1 radius 1000 zradius 300 targetable loc 1 2 3 race dark elf].Name}

The snippet of code that gets the race from the search is

C++:
else if (!_stricmp(szArg, "race")) {
            GetArg(szArg, szRest, 1);
            strcpy_s(pSearchSpawn->szRace, szArg);
            szRest = GetNextArg(szRest, 1);
        }

Since GetArg uses a space to determine the seperation of arguments, and the number of arguements for race is unknown, it appears that it only supports a single word race. It's plausbile that I'm incorrect and there's a way to do multiple word races, but I'm not currently aware of the method needed to do so.

Is this something we need to get input from @eqmule or @brainiac on? Can this functionality be added?
 
I'm wondering if there are any future plans to build this more/combine it with the "Hunter Tank" feature you have on your class plugins. I like using the app, and after finagling with some of the settings can make it do most of the work I want it to (almost put in a bug request, but just realized my zradius was too low for somethings). I wish there was a feature that let you hunt any mob in the camp radius like the "Hunter Tank" setting in the class plugins. While not impossible to make this app do something similar by simply changing the name of which mob you are farming, it would be a nice feature for camping a zone-wide drops like the Gnome Illusion clickie in Brell's Temple, or the Dwarf Illusion clickie in Convorteum. With this you could also see the camp radius on the map to make sure you are covering the whole zone, or simply the portion you want to farm. By having a similar class plugin window you could also have an easy-to-use interface for "Ignore" settings. Of course I could wait for the class plugin to be released for my primary class (Bard), but that could be awhile and I think this plugin has some real nice features.
 
I'm wondering if there are any future plans to build this more/combine it with the "Hunter Tank" feature you have on your class plugins. I like using the app, and after finagling with some of the settings can make it do most of the work I want it to (almost put in a bug request, but just realized my zradius was too low for somethings). I wish there was a feature that let you hunt any mob in the camp radius like the "Hunter Tank" setting in the class plugins. While not impossible to make this app do something similar by simply changing the name of which mob you are farming, it would be a nice feature for camping a zone-wide drops like the Gnome Illusion clickie in Brell's Temple, or the Dwarf Illusion clickie in Convorteum. With this you could also see the camp radius on the map to make sure you are covering the whole zone, or simply the portion you want to farm. By having a similar class plugin window you could also have an easy-to-use interface for "Ignore" settings. Of course I could wait for the class plugin to be released for my primary class (Bard), but that could be awhile and I think this plugin has some real nice features.
Farm farmmob clear
 
No worries. I replied on my phone and my phone was being sketch. Farmmob is only if you want to use a specific mob to farm (or type of mob based on a spawnsearch), if you want to kill anything you can use /farm farmmob clear so that it will attack anything since it's not looking for anything specific.

I don't personally have intentions to expand on the plugin at this time. I'm not really sure what expansions would be needed for the plugin as to my knowledge it's working okay.

This was my first plugin, and so it might not be as refined as some of the class plugins are, but the class plugins use a lot of similar logic to accomplish like results.
 
You should only have to do a "/farm farmmob clear" if you've previously set a farmmob, iirc. If you're running it out of the box you shouldn't need to do that.
 
Is there or can there be an option that will stop the autosit when waiting? this disrupts the forage plugin and there is no ned to sit in a gray zone. It seems that the sit while waiting on mobs from this plug in and the stand to forage from the MQ2AutoForage fight each other and constantly sit/stand preventing both from working smoothly.
 
Last edited:
Release MQ2Farmtest

Users who are viewing this thread

Back
Top
Cart