• 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
Simple experimental environment (Forge, Kiln, etc) combine macro

Release Simple experimental environment (Forge, Kiln, etc) combine macro 2-9-2018

No permission to download
Joined
Sep 20, 2005
RedCents
1,793¢
This is something I threw together to do combines until the recipe is learned. It handles salvage by picking up each item in the container adding what is missing. You only have to change the number of items to make the combine and the name of each component used in the combine. Any issues let me know.

Thanks to Maskoi for the combine notify button info and how to drop the item into the right spot

Rich (BB code):
| Simple environment (forge, kiln, etc) experimental combine macro
| envcombine.mac
| 2012-02-13 by Sym


#Event LearnedRecipe "You have learned the recipe #*#"

Sub Main

| change IC value to how many items to combine
    /declare IC int outer 3
    /declare Item[${IC}] string outer
    
    
| /varset name of each item, must match # above    
    /varset Item[1] Grande Wormwood
    /varset Item[2] Water Flask
    /varset Item[3] Bottle    

| nothing else to edit past here    
    
    /declare a int   
    :Start
        /doevents
        /for a 1 to ${IC}
            /nomodkey /itemnotify enviro${a} leftmouseup
            /delay 2
            /if (${Cursor.ID}) {
                /nomodkey /itemnotify enviro${a} leftmouseup
                /delay 2
            } else {
                /if (${FindItem[=${Item[${a}]}].InvSlot} > 0) {
                    /nomodkey /ctrl /itemnotify ${FindItem[=${Item[${a}]}].InvSlot} leftmouseup
                    /delay 2 ${Cursor.ID}
                    /nomodkey /itemnotify enviro${a} leftmouseup
                } else {
                    /beep
                    /e You are missing ${Item[${a}]}
                    /endm
                }
            }
            /delay 2
        /next a
        /notify ContainerCombine_Items Container_Combine leftmouseup
        /delay 1s ${Cursor.ID}
        :ClearCursor
            /autoinv
            /delay 5 !${Cursor.ID}
        /if (${Cursor.ID}) /goto :ClearCursor
        /delay 5
    
    /goto :Start
/return


sub Event_LearnedRecipe 
    /beep
    /e You have learned how to make this, you can use combine.mac now instead
    /beep
/return
 
Tried this today. Came back with invalid item slot 'enviro1'

Any clues please?

I have had problems using this with portable tradeskill containers, such as sewing kit. Using the stationary ones (loom) worked. I don't remember the exact error it gave me but what you are seeing does strike me as familiar.
 
I wasn't able to get this macro to work as written. It wouldn't do the combine, but I was able to modify it to work for me.

Changes:

/notify ContainerCombine_Items Container_Combine leftmouseup to /notify ContainerWindow Container_Combine leftmouseup





Rich (BB code):
| Simple environment (forge, kiln, etc) experimental combine macro
| envcombine.mac
| 2012-02-13 by Sym


#Event LearnedRecipe "You have learned the recipe #*#"

Sub Main

| change IC value to how many items to combine
    /declare IC int outer 5
    /declare Item[${IC}] string outer
    
    
| /varset name of each item, must match # above    
    /varset Item[1] Raxil Fish
    /varset Item[2] Allspice
    /varset Item[3] Butter
    /varset Item[4] Cup of Flour
    /varset Item[5] Lemon


| nothing else to edit past here    
    
    /declare a int   
    :Start
        /doevents
        /for a 1 to ${IC}
            /nomodkey /itemnotify enviro${a} leftmouseup
            /delay 2
            /if (${Cursor.ID}) {
                /nomodkey /itemnotify enviro${a} leftmouseup
                /delay 2
            } else {
                /if (${FindItem[=${Item[${a}]}].InvSlot}>0) {
                    /nomodkey /ctrl /itemnotify ${FindItem[=${Item[${a}]}].InvSlot} leftmouseup
                    /delay 2 ${Cursor.ID}
                    /nomodkey /itemnotify enviro${a} leftmouseup
                } else {
                    /beep
                    /e You are missing ${Item[${a}]}
                    /endm
                }
            }
            /delay 2
        /next a
        /notify ContainerWindow Container_Combine leftmouseup
        /delay 2s ${Cursor.ID}
        :ClearCursor
            /autoinv
            /delay 5 !${Cursor.ID}
        /if (${Cursor.ID}) /goto :ClearCursor
        /delay 5
    
    /goto :Start
/return


sub Event_LearnedRecipe 
    /beep
    /e You have learned how to make this, you can use combine.mac now instead
    /beep
/return
 
What if you need 2 or more of the same item for a recipe?

Would you do as follows and it will pick up 2 or more and put it into the container un-stacked?

Rich (BB code):
/varset Item[1]  Water Flask

/varset Item[2]  Water Flask

/varset Item[3]  Water Flask
 
yes, that worked for me with another recipe.
Change /declare IC int outer 5 to have the numerical value of how many items, and then do just as you listed


Testing this out on different tradeskill types, the /notify ContainerWindow Container_Combine leftmouseup doesn't always work =/ I'll keep messing with it and post
 
I don't have any lined up at the moment, but last time I made about 150 jars of green dye I could have used something like this. Some containers don't have anything but a combine button.
 
puts everyting into the oven/forge/kiln etc, but does not hit combine. i've tried /notify ContainerCombine_Items Container_Combine leftmouseup and /notify ContainerWindow Container_Combine leftmouseup but no dice =\
 
This is kinda funny...

I tried this today with a brewer who had a skill of nearly 0 and wanted to go straight to Minotaur Hero's Brew and I discovered something interesting. It appears if you have large bags (30+ slots) and the short beer is in your top slots, you'll drink it - Yes, even with leftmouseup. I typed the command in directly (/nomodkey /ctrl /itemnotify ${FindItem[=Short Beer].InvSlot} leftmouseup) and sure enough, it drank it instead of picking 1 up.

After a minute, I remembered something odd about bag positions from long long ago (about the time bag sizes increased) and decided to put the short beet at the bottom of the bag. Then I discovered the line (/delay 5 !${Cursor.ID}) was flying past and the bottles weren't being added to inventory. Instead, the macro would try to incorporate them into the recipe. The simple fix for this was take out the condition (make it just /delay 5).

AWESOME macro.
 
I originally started writing my own macro, but then thought surely someone else has this already... but I wanted to be able to use the same macro for different recipes between different chars, as well as simply allowing a bit of easy flexibility without editing the macro

I also sort of fixed the error where occasionally the combine button never gets pressed - something happens with the UI elements and the ContainerCombine_Items window just fails to be seen (i could get this to occur when i opened and closer a random bag (not 100% of the time) and if i had the experimental window open before the macro was started (again not 100% of the time) ) Really not sure on the underlying issue.

Now you can just use the macro if you know the items you have and have them in your bags, just stand near the kiln/pottery wheel/oven etc and spell it out for the macro.

Also, if you happen to move away from the kiln/forge etc while it's running, it seems to crash EQ (not sure why, as if you start it too far away it'll fail to work but it'll work that out itself in a few cycles

Rich (BB code):
| Simple environment (forge, kiln, etc) experimental combine macro
| envcombine.mac
| 2012-02-13 by Sym
|Modified by Rooster to allow parameters to be passed ie. the environmental container type and recipe to the macro. 
|Usage /macro envcombine "pottery" "Water Flask" "Block of Clay" "Block of Clay" "Block of Clay"

#Event LearnedRecipe "You have learned the recipe #*#"
#Event WrongItems	"You cannot combine these items in this container type!"

Sub Main
	/declare CleanedUp int outer 0
    /declare ItemCount int outer ${Math.Calc[${Macro.Params}-1]}
    /declare Item[${ItemCount}] string outer
    /declare combiner string outer ${Param0}
    
    /declare ii int 0 local
		/for ii 1 to ${ItemCount}
		/declare Item${ii} string outer "${Param${Math.Calc[${ii}].Int}"
	/next ii
    
    /declare i int 0 local
			/for i 1 to ${ItemCount}
			/echo setting ingredient ${i} -- ${Param${Math.Calc[${i}].Int}}
			/varset Item[${i}] ${Param${Math.Calc[${i}].Int}}
	/next i
       
    /declare a int 
      
    :Start
        /doevents
	/if (!${Window[ContainerCombine_Items]}) /call Cleanup
        /for a 1 to ${ItemCount}
            /nomodkey /itemnotify enviro${a} leftmouseup
            /delay 2
            /if (${Cursor.ID}) {
                /nomodkey /itemnotify enviro${a} leftmouseup
                /delay 2
            } else {
                /if (${FindItemCount[=${Item[${a}]}]} > 0) {
					/nomodkey /ctrl /itemnotify "${Item[${a}]}" leftmouseup
                    /delay 2 ${Cursor.ID}
                    /nomodkey /itemnotify enviro${a} leftmouseup
                } else {
                    /beep
                    /echo You are missing ${Item[${a}]}
                    /end
                }
            }
            /delay 2
        /next a
        /notify ContainerCombine_Items Container_Combine leftmouseup
        /delay 1s ${Cursor.ID}
        :ClearCursor
            /autoinv
            /delay 2s !${Cursor.ID}
        /if (${Cursor.ID}) /goto :ClearCursor
        /delay 1s
    
    /goto :Start
/return

Sub Cleanup
	/varcalc CleanedUp ${CleanedUp}+1
	/if (${CleanedUp}>5) {
		/echo Cleaned up too many times, double check that you're close enough to the environemntal container to open it maybe?
		/end
	}
		/cleanup
		/delay 2s
		/itemtarget ${combiner} 
		/click left item
		/if (${Ground.Distance}>18) {
			/echo Too far away from container, move closer and restart...ending macro
			/end
		}
		/delay 1s
		/notify TradeskillWnd COMBW_ExperimentButton leftmouseup
		/delay 1s
	/return

Sub Event_LearnedRecipe 
    /beep
    /echo You have learned how to make this, you can use combine.mac now instead
    /beep
/return

Sub Event_WrongItems 
    /beep
    /echo Something is wrong with the recipe or the macro!
	/call Cleanup
    /beep
/return
 
Last edited:
Redbot updated Simple experimental environment (Forge, Kiln, etc) combine macro with a new update entry:

Rooster's update

I originally started writing my own macro, but then thought surely someone else has this already... but I wanted to be able to use the same macro for different recipes between different chars, as well as simply allowing a bit of easy flexibility without editing the macro

I also sort of fixed the error where occasionally the combine button never gets pressed - something happens with the UI elements and the ContainerCombine_Items window just fails to be seen (i could get this to occur when i...

Read the rest of this update entry...
 
philter of unlife why are you so neglected as a server staple...
thought for sure this would have been in one of the macros to auto make already..
 
Release Simple experimental environment (Forge, Kiln, etc) combine macro

Users who are viewing this thread

Back
Top
Cart