• 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

Idea - Farm Style Quest Loop or Version of KISS?

Status
Not open for further replies.
Joined
Dec 31, 2005
RedCents
1,008¢
Hi All,

I'm a recently returned redguide member as I recently started playing EQ again. In my return, I've started using KISS as the current universal bot. As I'm pretty impressed with its capabilities for various roles, I've been using it to bot 3-4 characters in general xp grinding. While I was grinding xp, I had an idea of using KISS or rather a modified or updated version to do quest flagging while running. There are various quests where your'e just supposed to kill X number of a particular mob or gather X number of a drops etc.
One such quest that came to mind was the Thinning quests in HoT. I would set up camp say for the dogs and snakes, get the quest on each character, bring them back to the camp, start KISS on each with a pullertank option on one and the rest normal assist. As a group, we'd kill 4 of each dog and snake, I'd /endmacro on each char, individually run them over to the quest mob, hail them, select exp (or faction if that's what you're doing), then I hit a hotkey that /say thin, /pause 10, /say snakes which gives the quest back in my journal. Run the champ back to the camp and restart KISS again.
My thought is would it be possible to have a "Quest" loop that you could add to the end of the starting launch such as "/macro kissassist pullertank hotthinsnakes" or something that makes sense. The loop would check to see if the particular quest is in the journal yet or not, if not it would move the character from their current location to the quest mob, do the quest flagging and return to the starting location and resume normal KISS activities but watching for the quest status changes. As the quest requirements are completed and ready for turn in or report in points, follow suit to quest mob again, do the hails or turn ins etc, then re-flag the quest and return to start location yet again repeating the process.
This might seem like a stretch but there are lots of repeatable quests throughout the levels this might be done to. My particular example for HoT would be absolutely perfect with the current Heroic character options to level them up as the quest xp along with the farm xp is a pretty nice sweet spot as a group. It could also be used for characters higher level that can solo the area's. As something I would NOT do myself but using certain movement plugins can make open other quest options as well to the concept above.
I'm not sure I'm up for the undertaking to code above but thought it might be a good idea contribution towards things already in place.

Thanks,

Rustycat
 
So you want every quest in the game to be coded in to KISS?

I don't foresee that happening but I could be wrong (not likely though).

And welcome back to the forums.
 
So you want every quest in the game to be coded in to KISS?

I don't foresee that happening but I could be wrong (not likely though).

And welcome back to the forums.

Oh, I don't foresee anything of that magnitude just happening. It's a suggestion although EQ maybe too long in the tooth to put the effort for such a thing. In other games such as WoW, they have a master bot program that you load and unload the unique quests. In the case of MQ2, my thought would be to have a loop that checks for a quest file (something like a .inc) that fills in the variables on the macro that would then check status and react under the specified requirements for the quest loaded. Then from the macro standpoint, the quests would be controlled with external files and could be like an add on rather than part of the actual macro. Redguides could have "Official" quest files and then the community could also contribute for various quests. Again, this is all conceptual and suggestion that could have huge longer term potential.

Thanks for the welcome back! I have been having more fun returning in the past few weeks than I have in a long time. I missed all this from back when!
 
All I can Say is Kiss 9 March 2016
 
Last edited:
All I can Say is Kiss 9 March 2015

Wow, already something on the table. That's awesome! Of course, now I don't feel like I contributed any thoughts on the matter. LOL

Maybe I can offer to do quest research or something to help!
 
So you want every quest in the game to be coded in to KISS?

Well... hang on there....
You wouldn't need all the quests, just the repeatables. That narrows it down quite a bit.
And you don't want all the repeatables, just the kill/collect quests with a narrow scope (Within one zone, probably within one camp of one zone),
that narrows the list down even further.
Now if we just start making some universal bots starting from the most useful/ most rewarding/ easiest to automate quests, and work our way down, you could have a nice repository of useful macros.
 
/shrug. If it's that easy then jump on it.

I personally don't see a use for any of this considering quest lockouts and whatnot. When I do progression I just use /chase and the crap is done. When I want xp I set up camp somewhere and enjoy the xp gains.

Group missions/HAs is where something to automate would be extremely useful imo. Get a pathing file for each instance and have kiss read from that to automate it.
 
SO....What we REALLY need, is a program like kampfire (http://www.redguides.com/community/showthread.php/36001-KampFire-v1-0-Official-Release!) that you could enter all the pertinent information (account, password, toonname, class, level) into for each /all accounts.
Then be able to choose what plugins, macros, addons, etc. to use on each toon.
Then choose groups complete with role and merc settings.
Then choose zones to hunt, loot to hunt for, quests to complete, level to attain, AA's to buy, Achievements to achieve , etc.
After that is set (and maybe a setting area for networking multiple computers and which account where), a PLAY button to start it all, and it would just do everything for you as you go to sleep or work or whatever . Buying and meming spells/abilities. Runing across zones to other zones. Killing, looting, hailing, clicking, trading, buying, selling, etc. everything it needs to in order to accomplish your defined goal(s).

---------Sorry, had too say it --------:p

Seriously though, other than the HA's I can't see automating many as they just aren't worth it. Besides, what's the fun in fully automating the game unless you're the one writing the scripts.
 
Last edited:
Sorry, I didn't mean to pull this thread off the tracks, or belittle Rustycats' idea. And rereading the posts, I guess I could see some used for faction work if one needs it.... faction work sux.
 
SO....What we REALLY need, is a program like kampfire (http://www.redguides.com/community/showthread.php/36001-KampFire-v1-0-Official-Release!) that you could enter all the pertinent information (account, password, toonname, class, level) into for each /all accounts.
Then be able to choose what plugins, macros, addons, etc. to use on each toon.
Then choose groups complete with role and merc settings.
Then choose zones to hunt, loot to hunt for, quests to complete, level to attain, AA's to buy, Achievements to achieve , etc.
After that is set (and maybe a setting area for networking multiple computers and which account where), a PLAY button to start it all, and it would just do everything for you as you go to sleep or work or whatever . Buying and meming spells/abilities. Runing across zones to other zones. Killing, looting, hailing, clicking, trading, buying, selling, etc. everything it needs to in order to accomplish your defined goal(s).

---------Sorry, had too say it --------:p

Seriously though, other than the HA's I can't see automating many as they just aren't worth it. Besides, what's the fun in fully automating the game unless you're the one writing the scripts.

I'll take the fun jab as this is an exaggeration of my intent. I suppose if everyone was just going to buy heroic champs, there's less interest. I don't belittle the effort required to pull it off by anymeans but it's not unattainable either. I mean, it was worth the effort to complete the follow list of quest macro's here on RedGuide:

-------
Bone chips - full auto - Quickly level a new character with the bone chip quest. Requires a high lvl wizard.
Bone chips - Full Auto - FAST as possible mods - Quickly level a new character with the bone chip quest. Requires a high lvl wiz or dru.
Bone Chips Full Auto - Fellowship - Quickly level a new character with the bone chip quest.
Bonechips Revised - Quickly level a new character with the bone chip quest.
PL.mac - Quickly level a new character with the bone chip quest. Requires high lvl wizard or druid.
Enchanter Dead Hills 2.0 (beta) - Automate the event, "Into the Hills" with an enchanter as puller.
CotF HA - Into the Hills v3 (Full Auto) - A revision to William12's Into the Hills script with updated waypoints.
Into the Hills All Tanks V2 - Automate the event, "Into the Hills" with any tank pulling.
Into the Hills Ranger, War, SK - Automate the event, "Into the Hills" with a Ranger pulling.
Into the Hills SK V 2.0 - Automate the event, "Into the Hills" with a SK pulling.
12th Anniversary Augment quest macro - Safe Version - For the "Glowing Lena Fete Rune" quest, this will locate the quest groundspawn items and walk you to each/pick them up and auto-inventory them. It does not use any warping.
Cleric Epic 1.0 - CampRageFire.mac - Camps Zordak Ragefire in SolB so you don't have to.
CotF HA - Death Peace v2 (Full Auto) - Automate the 3rd HA, "Death Peace" from Skulk the MadAxe.
CotF HA - Disrupting the Ritual (Full Auto) - Automate "Disrupting the Ritual"
CotF HA - Scouting Ahead v2 (Full Auto) - A cleaned up version of William12's Scouting Ahead SK file for all tanks. New waypoints, pauses for more reliable looting, med breaks.
Hatching a Plan instance flipping - Runs the "Hatching a Plan" quest in order to powerlevel lower toons.
Scouting Ahead SK V1.0 - Automate the event, "Scouting Ahead" with a Shadowknight as tank.
tut.mac - Finish Tutorial A - Automates and completes the tutorial.
------------------

If the effort to do all these above was worth doing, how could my simple in comparison idea be so far fetched? :/
 
As far as good xp the bone chip quests are virtually dead, the rest all look to be instanced/HA type (which most agree to be good to automate).

And your idea isn't far fetched, just possibly dangerous to the user. Instance zones = no complaining players.
Many of the good/easy/repeatable quests fall in higher traffic areas.

And the way xp is dished out how long are those quests truly viable (unless factioning)?
I took a ftp Druid from lvl 1 to lvl 80, no gear other than loots till he could wear the Elegant Defiant Armor set, no PL or buffs other than from his cleric merc, (didn't even get his spells other than snares and DS....meleed all), no quest. Did it in less than 100 played hours. just did a quick setup in KA, and let him run, moving to new zones as needed ( used very few hot zones).
Because its that easy I don't foresee anybody with the ability to make the macros to spend the time making a series of them unless they like to do that sort of thing for fun.

and yes, just a slight jest...
 
Really to do the snakes and dogs in HOT shouldn't be too bad, you can look at the into the hills mac for some guidance but you could do it with a lot less you just have the leader/puller check everyones quests every x pulls and if everyone is done their quests he sends /mqp to the rest of the group then /navigate x,y /target soandso and /hail and /say the commands then /navigate back to the camp spot.

The problem with this macro and the reason why its unlikely someone here will make it is that HOT courtyard is a semi high traffic area with all of the people that run to do the daily, you sitting a box team afk in this spot for several days might get you noticed and it's more of a nono. This coupled with the fact that HOT is fairly old content and you could get similar or better exp with just regular afk group somewhere where no one goes such as a tier 3 or 4 rof zone or any voa zone or HOT zone.

I think if you go look at into the hills you could make this macro and if you get it started people here will help you do it.

It's really easy to just setup 3 characters + 3 apprentice mercs with KISS and let them go to town in a out of the way zone.
 
just a thought on feasability....

drawing up X task to be an include/ini file , with defined check off sections (IE at this point groups sets up camp here, puller does what ever till X thing is met, check off... next section run to X dude and talk, check off, ect ect) such that the quest subsection can be checked in a loop, to see what is suppose to happen after each fight/stage of quest is reached.

Then folks can work on making their own include/ini quest file, while not having to re-write a bot macro in the process for handling the toon.... but rather just what X designated toon needs to do at each stage, with a mechanism for loading them as needed ( so as to not bloat the main macro with unneeded code for 50+ quests) something like

Rich (BB code):
/bc quest bonechips once toonname step5
-------------------------
	/if (${ChatText.Find[quest]} && ${DoQuest}) /call Quest ${ChatText.Arg[2]} ${ChatText.Arg[3]} ${ChatText.Arg[4]} ${ChatText.Arg[5]}
	
.......

Sub Quest(QName,Var2,Puller,Stage)
	/declare a			int local
	/declare b			int local
	/declare QPuller	int local 99999
	/declare QStep		int local 1
	/declare QStage		int local 1
	/varset QPuller ${Spawn[${Puller}].ID}
	/if (!${Bool[${Ini[${QName}]}]}) {
		/echo no such Quest exists!
		/if (${Bool[${Plugin[MQ2EQBC].Name}]}) {
            /BC [+y+]No such Quest file as [+g+]${Var2} [+y+] creating default
			}
		/call CreateQuestIni
		/return
		} else /ini ${Ini[${QName}]}
	/varset QPuller ${Spawn[${Puller}].ID}
	/for a 1 to ${MaxSteps}
		/call EvaluateCondition "${${QStage}Condition${i}}"
		/if (${Macro.Return}) /call ExecuteStuff ${QStage} ${i}
	/next a

then put in a series of conditions (if puller do this...) and or call subsections (change it to an inc, possibly with an ini for fine tuning for instance) so it looks for and loads an include, then calls up subsections as each stage of X task is done, like what Blitter does. X section of task is repeated ( IE play path Quest1 ) until X condition(s) is met (advance to stage 2, or step 2) ect ect.


--shrugs--

just tossing out random brain farts. May be too complicated for most folks to utilize, but it sounds like a nice challenge to set up, and would open up a sebsection for the main bot program ( folks could do more then share INI)

Sort of a "build your own quest routine" kit
 
Okay... so I took the last 48 hours to dust off some stuff and figure out things I honestly have no clue about. This piece of code is still in a test stage but it's a start of at least one way to go. It's far from completed project and is just the first part of the idea but I will be working on it further but wanted to share thus far.

Currently it is assumed you are in House of Thule anywhere in the open courtyard entrance area so you have clear pathing to Ruppoc. You target your mainassist and start the macro just as if you were going to XP grind. The macro saves the mainassist target to use later then runs you to Ruppoc and hails him. If you have completed the dog and snakes quest requirements, it will accept the reward for faction and xp then close the task window. It then reacquires the dog and snakes quest and closes the task window again for you. After that it turns back to the location you started from and returns to it, faces to the north, targets your mainassist and launches your bot macro. The current launch format should work with any of your bot of your chosing with .ini set up accordingly for the character in use. With it targeting the mainassist when you launch it, it is lined up for kissassist.mac specifically just as you were going to launch already.

Rich (BB code):
#turbo

| dogsandsnakes.mac
| This testing assumes MQ2Reward, and MQ2MoveUtils are loaded. This is the start of a marco to 
|set up camp in House of Thule south wall courtyard to grind xp while doing Ruppoc Rockhoppers  
|"Thinning Out Their Numbers: Rotdogs and Snakes" quest.
|__________________________________________________________________________________________________

Sub Main

|Declaring some variables

	/declare ${Me.Name}QueststartingX int local ${Me.X}
	/declare ${Me.Name}QueststartingY int local ${Me.Y}
	/declare ${Me.Name}Mainassist string local ${Target.Name}

| Targeting Quest Giver and then moving to him

	/target Ruppoc
	/delay ${Math.Rand[30]}

| Move to Quest Giver 

	/moveto loose
	/moveto dist 15
	/moveto ID

| Gives time for character to reach quest gaiver

	/delay 90

| Hail Ruppoc to accept XP reward completing quest if completed and get quest again to return to camp.

	/hail
	/delay ${Math.Rand[30]}

| Checks to see if we have quest completed and if so accepts the XP reward

	/if (${Window[RewardSelectionWnd].Open}) /reward 2 1
	/delay ${Math.Rand[30]}

| After reward check is complete, re-acquires quest Rotdog and Snake quest

	/say snakes
	/delay 25

	/windowstate TaskWnd close
	/delay 20

| Returns to start position from what macro started

	/moveto loose
	/moveto dist 0
	/moveto loc ${${Me.Name}QueststartingY}, ${${Me.Name}QueststartingX}
	/delay 100
	/face heading 0

|
| Restart bot program after returning to camp, comment out whichever macro's you are not using and 
|remove comment out on the one you are or add another customer line, your pick.
|__________________________________________________________________________________________________

	/target ${${Me.Name}Mainassist}
	/mac kissassist

|	/mac raiddruid
|	/mac modbot

/return

As mentioned already, this is not a complete project at all but the first step towards a larger goal. Now that at least some idea of work flows for this type of quest I have a list of to do's over time.

* Do a zone check to insure you are launching from the zone where the quest begins
* Do a target check to ensure you are assisting a player characters as your main assist and not an NPC, pet or other non-player type
* Further expand on the random delays and actions to be less bot obvious
* Consider auto-adjusting timer for moving to and from Ruppoc for the delays so less time idle at those stages.
* Do a task check to see if the quest is already acquired and if so and incomplete, bypass the motions completely and go immediately to bot launcher loop.
* Further explore the MQ2Reward plug in to insure proper rewards to be selected on other quests with multi choice rewards
* Structure subs for each kind of interaction separately with calls and use of variables pull for .ini files or some sort for future use on other quests
* Considerations on how to use existing macro bots as .inc's with questing module format. (would allow multi function and personal preference although I pretty hooked with KISS myself)
* Figure out how to track stage completions or task status to automatically initiate turn in and reacquiring quest.

I'm sure there other things but it's late and thats where my brain is set for now on the coding.

Current usage:

I load up my group of characters and get them set up in a camping position in House of Thule's south wall. (right hand side is safer due to the one snake spawn on the left when you enter). If the group is higher level and clears quickly, hedge your camp closer to the entrance area so there is less distance to travel and adjust delay time to travel to Ruppoc accordingly(currently anyhow). Target the character that is intended to be the MainAssist and launch macro. I'm using a AHK hotbutton to launch the macro manually launches the macro in each window session. Since I currently either play the puller character or the tank character manually while everyone else is bot (because we're not supposed to be AFK MQ2'n), all stage completions should be aligned for the group and I start the macro's according through each session. While the bots all run through the motions, I take the character I'm controlling over and do the turn in as well and everyone is back to camp and ready to go before I'm done.

Hope you guys like!

Rustycat
 
Moveto commands are sketchy at best and a good way to get stuck behind a tree or a rock. Use a movement and distance check before hailing the guy or you risk hailing him while stuck somewhere. Also you don't need 3 /moveto commands, they can be condensed in to 1 as /moveto ID loose 15. AdvPath might be a better option.

Good first draft tho. It'll be interesting to see where you plan on taking this.
 
Thank you Riot, I'll definitely be cleaning up the move commands and tweaking that in general. I considered using the AdvPath but I'm undecided that's the route I want to go. I'm envisioning a top down filing system that will include a general ini file, character ini file, and a sub folder that contains quest specific files. Launching the macro would be something like /mac questing ruppocsnakes. The quest ini's would control the locations, movements NPC names etc unique to the quest. The character ini would control things like which bot program to use, what rewards to accept, etc. I don't know on a lot still. Trying not to get lost in the forest and miss the tree's still. I have ideas, lots of ideas. LOL
 
Id probably go with Advpath myself, would take some work setting up but would be much more stable and predictable than move to or in many cases navigation issues.
 
I did some work on this last night while I was doing some easy TS farming stuff. I've successfully taken all the sub routines and moved them into a separate .inc file and changed the sections that were all in sequence for the moving, hailing and moving again into individual subroutines. The movement is still set up using the /moveto command lists although I added some additional checkpoint locations. I've put efforts in making the locations with random coordinate factors so as the character repeats the movement to and from the quest giver, it's different every time. I've mixed up rand delays at each point along with facing changes to general directions to the next /moveto so it appears less automated from the outside appearance.

I'm not posting up the pieces of this step yet as I'm in agreement that using mq2advpath plugin will add stability and some catch all's. I could use some assistance on some details on how to handle a few things with it. First, is there a way to randomize the exact coordinate's for each checkpoint so it is a little different each time the same character runs the path and also so if multiple characters are there they are running exactly the same together throwing the red flag up they're bots? Or maybe the path coordinates are set but when they're pulled for the next move they get a random adder to it through the play calls. Also, is there a problem with random /delays between moving to next checkpoints to again add more human like behavior? Second, does every path require a separate .ini file or can you put multiple paths with labels for each movement section of a quest? Third, how hard would it be to have the path .ini wrote dynamically to a generic named ini (aka ${Me.Name}questtemppath.ini) from within the sub just prior to calling the movements and then delete the file after the character completes the path.

This last part is for a bigger scope aspect to minimize the number of files required for a each quest wrote. The file structure for the bigger picture is to have a subfolder "/quests" with the top level macro to pull all the quest inc and ini's files into so it doesn't clutter up the macro folder and quicker finding things if needed down the road. If I can write the advpath ini's dynamically, I can put the information within the unique quest's .inc file for each path for each movement unique to the quest in question.

***************
Current file structure goal within the macro folder:


/questing.mac
/quests/<quest_charactername.ini> *there would be an unique file for each character with labeled sections for each quest such as bot launcher info., flag selections for taskwindows, etc.
/quests/<questname.inc> (ie. ruppocsnakes.inc) *there would be a new .inc for each quest created with all it's requirements.
/quests/<questtemppath.ini>

***************
File structure I'm trying to avoid:


/questing.mac
/quests/<quest_charactername.ini>
/quests/<questname.inc> (ie. ruppocsnakes.inc) *there would be a new .inc for each quest created with all it's requirements.
/quests/<ruppocsmovetoquestgiver.ini>
/quests/<ruppocsreturntocamp.ini> *or however many paths are required to the quest as some have many stages to go through.
...
...
...


Thanks already for the various feedbacks and suggestions thus far and hopefully for the additional from this specific post you can provide! I'm really enjoying this challenge I've created for myself now.

Rustycat

- - - Updated - - -

Fast update on this... Essentially I have made great strides on the larger scope idea that spawned me starting the macro above. In doing so, I've got myself bogged down in that larger scope concept which is going to take a tremendous amount of effort. I fully intend to keep working at that but I want to finish the basic macro I started above in its stand-alone format and share. I "should" have that stand alone version posted later tonight or tomorrow.

In the case of this specific macro "ruppocsnakes.mac", there's only a small area to run it in with a very small amount of pathing required. I've opt'd to NOT use MQ2AdvPath on the standalone design however I've come up with little different design to the movement I originally did that should yield better end results. This being such a controlled environment for this task, there's essentially no concerns for getting stuck between the motions required. The larger scope macro that is quest oriented to be able to add other quests to it and will have The macro will launch and self-repeat once configured. Once started, you will have to /endmacro yourself to stop the loop process of it running. The larger scope quest macro will be doing zone, target, and ini checks while. The standalone will require you to do initial setup to get going.

- - - Updated - - -

I am having some struggles with something I had thought I figured out to finish this and just frankly getting frustrated with myself. I'm passing a variable value to an ini file under the characters name. I want to be able to pull from the ini file back into the variable at a later time. I tried something like this but I think I've got it all wrong.

Rich (BB code):
	/declare ${Me.Name}RuppocStage int outer

	/varset ${${Me.Name}RuppocStage} ${Ini[ruppocsankes.ini,${Me.Name},stage]}

	/echo ${${Me.Name}RuppocStage}

	/if (${${Me.Name}RuppocStage}=8) {
		/echo Task Complete!
		/call ruppocsnakes
	}
	/if (${${Me.Name}RuppocStage}=0}) {
		/call inisettings
		/echo Need to start quest
	}

This has hung me up last night and today. Well that and the fact I had to go to Lowe's and get a new dryer and install that. Joy it is. Anyhow, any suggestions guys? I'm sure I'm just missing something out of lack of experience here.
 
Last edited:
Started the Ruppocsnakes.mac own thread here for those watching and closing this thread to avoid the clutter and cross chat. Any further questions or comments, please use the macro thread going forward. Thank you!

RuppocSnakes.mac
 
Idea - Farm Style Quest Loop or Version of KISS?
Status
Not open for further replies.

Users who are viewing this thread

Back
Top
Cart