Different style combine macro -- any mistakes here?

Need help with a macro you are writing? Ask here!

Moderator: MacroQuest Developers

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Different style combine macro -- any mistakes here?

Post by JP5 » Thu Aug 19, 2004 12:28 am

Need pointers on obvious mistakes.

Main things I need to know are:
- How is this.

Code: Select all

		/itemnotify ${FindItem[${RecipeItem[1]}].InvSlot} leftmouseup
		/notify QuantityWnd QTYW_SliderInput newvalue 1
		/notify QuantityWnd QTYW_Accept_Button leftmouseup
		/notify enviro ContainerSlot1 leftmouseup
Will it work, and will it work when only one item is left in the "stack"?

Will be testing myself tomorrow.

Suggestions welcome on code. It is well-organized so you will not have a problem seeing flow of macro.

Code: Select all

|User Initiated Combines
|  by: JP5  on Wednesday, August 18, 2004 08:39 PM
|
|Usage: /macro combine [# of items in combine]
|  Requires setting RecipeItem[n] to the ingredients of the recipe.
|  Combines at request. use Ctrl+n to combine.
|  Press esc a few times, and open the enviro container before you start combines.
|
|  This combines items the old fashioned way!



#event CombineNow "#*#[MQ2] Combine#*#"


|--------------------------------
| Sub Main
|--------------------------------
Sub Main

/declare MaxItems int outer
/if (${Defined[Param0]}) {
	/varset MaxItems ${Param0}
	} else {
	/echo Usage: /macro brew [# of items in combine]
	/endmacro
	}



/deletevar RecipeItem
/declare RecipeItem[10] string outer

|--------------------------------
|       Note: Edit Recipe Items
|--------------------------------
/varset RecipeItem[1] "Short Beer"
/varset RecipeItem[2] "Short Beer"
/varset RecipeItem[3] "Cask"
/varset RecipeItem[4] "Malt"
/varset RecipeItem[5] "Malt"
/varset RecipeItem[6] "Malt"
/varset RecipeItem[7] "Water Flask"
/varset RecipeItem[8] "Water Flask"
/varset RecipeItem[9] "Yeast"
/varset RecipeItem[10] UNUSED
|--------------------------------
|       No more editing
|--------------------------------

/custombind delete CombineNow
/custombind add CombineNow
/custombind set CombineNow /echo Combine
/bind CombineNow clear
/bind CombineNow ctrl+n

/itemnotify pack1 rightmouseup
/itemnotify pack2 rightmouseup
/itemnotify pack3 rightmouseup
/itemnotify pack4 rightmouseup
/itemnotify pack5 rightmouseup
/itemnotify pack6 rightmouseup
/itemnotify pack7 rightmouseup
/itemnotify pack8 rightmouseup


| User initiated tasks start here.
:doevents
	/doevents
	/delay 1
	/goto :doevents

/return


|--------------------------------
| Sub Event_CombineNow
|--------------------------------
Sub Event_CombineNow
	/echo Requesting Combine.
	/call PlaceInContainer
/return


|--------------------------------
| Sub PlaceInContainer
|--------------------------------
Sub PlaceInContainer

	/if (${MaxItems}>=1) {
		/itemnotify ${FindItem[${RecipeItem[1]}].InvSlot} leftmouseup
		/notify QuantityWnd QTYW_SliderInput newvalue 1
		/notify QuantityWnd QTYW_Accept_Button leftmouseup
		/notify enviro ContainerSlot1 leftmouseup
		}
		
	/if (${MaxItems}>=2 {
		/itemnotify ${FindItem[${RecipeItem[2]}].InvSlot} leftmouseup
		/notify QuantityWnd QTYW_SliderInput newvalue 1
		/notify QuantityWnd QTYW_Accept_Button leftmouseup
		/notify enviro ContainerSlot2 leftmouseup
		}
		
	/if (${MaxItems}>=3) {
		/itemnotify ${FindItem[${RecipeItem[3]}].InvSlot} leftmouseup
		/notify QuantityWnd QTYW_SliderInput newvalue 1
		/notify QuantityWnd QTYW_Accept_Button leftmouseup
		/notify enviro ContainerSlot3 leftmouseup
		}
		
	/if (${MaxItems}>=4) {
		/itemnotify ${FindItem[${RecipeItem[4]}].InvSlot} leftmouseup
		/notify QuantityWnd QTYW_SliderInput newvalue 1
		/notify QuantityWnd QTYW_Accept_Button leftmouseup
		/notify enviro ContainerSlot4 leftmouseup
		
	/if (${MaxItems}>=5) {
		/itemnotify ${FindItem[${RecipeItem[5]}].InvSlot} leftmouseup
		/notify QuantityWnd QTYW_SliderInput newvalue 1
		/notify QuantityWnd QTYW_Accept_Button leftmouseup
		/notify enviro ContainerSlot5 leftmouseup
		}
		
	/if (${MaxItems}>=6) {
		/itemnotify ${FindItem[${RecipeItem[6]}].InvSlot} leftmouseup
		/notify QuantityWnd QTYW_SliderInput newvalue 1
		/notify QuantityWnd QTYW_Accept_Button leftmouseup
		/notify enviro ContainerSlot6 leftmouseup
		}
		
	/if (${MaxItems}>=7) {
		/itemnotify ${FindItem[${RecipeItem[7]}].InvSlot} leftmouseup
		/notify QuantityWnd QTYW_SliderInput newvalue 1
		/notify QuantityWnd QTYW_Accept_Button leftmouseup
		/notify enviro ContainerSlot7 leftmouseup
		}
		
	/if (${MaxItems}>=8) {
		/itemnotify ${FindItem[${RecipeItem[8]}].InvSlot} leftmouseup
		/notify QuantityWnd QTYW_SliderInput newvalue 1
		/notify QuantityWnd QTYW_Accept_Button leftmouseup
		/notify enviro ContainerSlot8 leftmouseup
		}
		
	/if (${MaxItems}>=9) {
		/itemnotify ${FindItem[${RecipeItem[9]}].InvSlot} leftmouseup
		/notify QuantityWnd QTYW_SliderInput newvalue 1
		/notify QuantityWnd QTYW_Accept_Button leftmouseup
		/notify enviro ContainerSlot9 leftmouseup
		}
		
	/if (${MaxItems}==10) {
		/itemnotify ${FindItem[${RecipeItem[10]}].InvSlot} leftmouseup
		/notify QuantityWnd QTYW_SliderInput newvalue 1
		/notify QuantityWnd QTYW_Accept_Button leftmouseup
		/notify enviro ContainerSlot9 leftmouseup
		}
		
	/notify enviro Container_Combine
	/echo Combining now.
		
/return


User avatar
aChallenged1
a grimling bloodguard
a grimling bloodguard
Posts: 1804
Joined: Mon Jun 28, 2004 10:12 pm

Post by aChallenged1 » Thu Aug 19, 2004 7:49 am

Code: Select all

   /if (${MaxItems}>=#) { 
      /itemnotify ${FindItem[${RecipeItem[#]}].InvSlot} leftmouseup
That is a lot of repetition of nearly the exact same thing over and over with the only thing changing being the number.

To me this screams for something like an incrementing counter
Psuedocode ideas for you.

Code: Select all

/declare x INT outer
/varset x 1
/if n!10 {n=n+1}, {n=1}
Fuck writing MQ2 macros. Go with IS scripts; IS Rules!

User avatar
blueninja
a grimling bloodguard
a grimling bloodguard
Posts: 541
Joined: Thu Aug 28, 2003 7:03 am
Location: Göteborg, Sweden

Post by blueninja » Thu Aug 19, 2004 8:57 am

To pick up one spiderling silk:

Code: Select all

/nomodkey /ctrl /itemnotify ${FindItem[=Spiderling silk].InvSlot} leftmouseup 

User avatar
blueninja
a grimling bloodguard
a grimling bloodguard
Posts: 541
Joined: Thu Aug 28, 2003 7:03 am
Location: Göteborg, Sweden

Post by blueninja » Thu Aug 19, 2004 9:04 am

One more thing. Instead of making the custombind /echo I would make it set a global variable, then in your mainloop see if that variable is set and if it is, it would combine, then reset the variable after combine.

User avatar
aChallenged1
a grimling bloodguard
a grimling bloodguard
Posts: 1804
Joined: Mon Jun 28, 2004 10:12 pm

Post by aChallenged1 » Thu Aug 19, 2004 10:15 am

Ok, here's my take on this. I may be a bit off, as I'm still learning and such.

Code: Select all

|User Initiated Combines 
|  by: JP5  on Wednesday, August 18, 2004 08:39 PM 
|  Mod: aChallenged1 Thursday, August 19, 2004 10:15 AM
| 
|Usage: /macro combine [# of items in combine] 
|  Requires setting RecipeItem[n] to the ingredients of the recipe. 
|  Combines at request. use Ctrl+n to combine. 
|  Press esc a few times, and open the enviro container before you start combines. 
| 
|  This combines items the old fashioned way! 



#event CombineNow "#*#[MQ2] Combine#*#" 


|-------------------------------- 
| Sub Main 
|-------------------------------- 
Sub Main 

/declare MaxItems int outer
/declare ItemCount int outer
 
/if (${Defined[Param0]}) { 
   /varset MaxItems ${Param0} 
   } else { 
   /echo Usage: /macro brew [# of items in combine] 
   /endmacro 
   } 



/deletevar RecipeItem 
/declare RecipeItem[10] string outer 

|-------------------------------- 
|       Note: Edit Recipe Items 
|-------------------------------- 
/varset RecipeItem[1] "Short Beer" 
/varset RecipeItem[2] "Short Beer" 
/varset RecipeItem[3] "Cask" 
/varset RecipeItem[4] "Malt" 
/varset RecipeItem[5] "Malt" 
/varset RecipeItem[6] "Malt" 
/varset RecipeItem[7] "Water Flask" 
/varset RecipeItem[8] "Water Flask" 
/varset RecipeItem[9] "Yeast" 
/varset RecipeItem[10] UNUSED 
|-------------------------------- 
|       No more editing 
|-------------------------------- 

/custombind delete CombineNow 
/custombind add CombineNow 
/custombind set CombineNow /echo Combine 
/bind CombineNow clear 
/bind CombineNow ctrl+n 

/itemnotify pack1 rightmouseup 
/itemnotify pack2 rightmouseup 
/itemnotify pack3 rightmouseup 
/itemnotify pack4 rightmouseup 
/itemnotify pack5 rightmouseup 
/itemnotify pack6 rightmouseup 
/itemnotify pack7 rightmouseup 
/itemnotify pack8 rightmouseup 


| User initiated tasks start here. 
:doevents 
   /doevents 
   /delay 1 
   /goto :doevents 

/return 


|-------------------------------- 
| Sub Event_CombineNow 
|-------------------------------- 
Sub Event_CombineNow 
   /echo Requesting Combine. 
   /call PlaceInContainer 
/return 


|-------------------------------- 
| Sub PlaceInContainer 
|-------------------------------- 
Sub PlaceInContainer

   /for ItemCount 1 to ${MaxItems}
   :NextItem

      /if (${MaxItems}>=${ItemCount}) {
         /nomodkey /ctrl /itemnotify ${FindItem[${RecipeItem[${ItemCount}]}].InvSlot} leftmouseup
         /notify enviro ContainerSlot[${ItemCount}] leftmouseup
         
             /if (${ItemCount} ! ${MaxItems}) {
             /next ItemCount
             goto :NextItem
             }
      }
   /notify enviro Container_Combine
   /echo Combining now.

/return
Fuck writing MQ2 macros. Go with IS scripts; IS Rules!

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Post by JP5 » Thu Aug 19, 2004 4:38 pm

Another version from me.
Fixed bracket matching, did another version of a /for /next count. Added an auto drop function (change this to delete, or autoinventory, or whatever your purpose is).

Working on ini support now.

Code: Select all

|User Initiated Combines
|  by: JP5 Thursday, August 19, 2004 01:36 PM
|
|Usage: /macro combine [# of items in combine]
|  Requires setting RecipeItem[n] to the ingredients of the recipe.
|  Combines at request. use Ctrl+n to combine.
|  Press esc a few times, and open the enviro container before you start combines.
|
|  This combines items the old fashioned way!


#event CannotCombine "You cannot combine these items in this container type!"

|--------------------------------
| Sub Main
|--------------------------------
Sub Main

/declare MaxItems int outer
/declare CToggle int outer 0

/if (${Defined[Param0]}) {
	/varset MaxItems ${Param0}
	} else {
	/echo Usage: /macro brew [# of items in combine]
	/endmacro
	}

/declare RecipeItem[10] string outer

|--------------------------------
|       Note: Edit Recipe Items
|--------------------------------
|** This will be ini set soon, with a ${Param1} for the recipe name.
/varset RecipeItem[1] Bottle
/varset RecipeItem[2] Bottle of Milk
/varset RecipeItem[3] Malt
/varset RecipeItem[4] UNUSED
/varset RecipeItem[5] UNUSED
/varset RecipeItem[6] UNUSED
/varset RecipeItem[7] UNUSED
/varset RecipeItem[8] UNUSED
/varset RecipeItem[9] UNUSED
/varset RecipeItem[10] UNUSED
**|
|--------------------------------
|       No more editing
|--------------------------------

/custombind delete CombineNow
/custombind add CombineNow
/custombind set CombineNow /varset CToggle 1
/bind CombineNow clear
/bind CombineNow \

| User initiated tasks start here.
:loop
	:cursor
		/if (${Cursor.ID}) {
			/drop
			/goto :cursor
			}			
	/if (${CToggle}==1) {
		/call PlaceInContainer
		/goto :loop
		} else {
		/goto :loop
		}


/return

|--------------------------------
| Sub PlaceInContainer
|--------------------------------
Sub PlaceInContainer

|aChallenged1's code
|**
   /for ItemCount 1 to ${MaxItems}
   :NextItem

      /if (${MaxItems}>=${ItemCount}) {
         /nomodkey /ctrl /itemnotify ${FindItem[${RecipeItem[${ItemCount}]}].InvSlot} leftmouseup
         /notify enviro ContainerSlot[${ItemCount}] leftmouseup
         
             /if (${ItemCount} ! ${MaxItems}) {
             /next ItemCount
             goto :NextItem
             }
      }
   /notify enviro Container_Combine leftmouseup
   /echo Combining now.

/return
**|

| JP5 code based off aChallenged1
| Same, but with /for /next -- new arrangement

/declare i int local
/for i 1 to ${MaxItems}
	/nomodkey /ctrl /itemnotify ${FindItem[${RecipeItem[${i}]}].InvSlot} leftmouseup
	/notify enviro ContainerSlot${i} leftmouseup
/next i

/delay 0.5
/notify enviro Container_Combine leftmouseup
/echo Combining.
/varset CToggle 0
/return


Sub Event_CannotCombine
/varset CToggle 0
/echo Make sure you have enough of each ingredient. Combine not successful.
/return

User avatar
aChallenged1
a grimling bloodguard
a grimling bloodguard
Posts: 1804
Joined: Mon Jun 28, 2004 10:12 pm

Post by aChallenged1 » Thu Aug 19, 2004 4:54 pm

Tested the new version yet? I just threw my section together, hoping I didn't miss anything. It was not tested, and I should have noted that.
Fuck writing MQ2 macros. Go with IS scripts; IS Rules!

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Post by JP5 » Thu Aug 19, 2004 5:07 pm

aChallenged1 -- the /for /next was a good idea, so I read it over and simplified it a little bit though, and the simplified version worked fine.

Here is how I am presenting my combine.ini support:
This code is most of Sub Main.

Code: Select all

/declare RecipeName string outer
/declare MaxItems int outer
/declare CToggle int outer 0

/if (${Defined[Param0]}) {
	/varset MaxItems ${Param0}
	} else {
	/echo Usage: /macro brew [# of items in combine] [recipe name in combine.ini]
	/endmacro
	}

/if (${Defined[Param1]}) {
	/varset RecipeName ${Param1}
	} else {
	/echo Usage: /macro brew [# of items in combine] [recipe name in combine.ini]
	/endmacro
	}

/declare RecipeItem[10] string outer
| INI READING IS HERE
/declare i int local
/for i 1 to ${MaxItems}
	/varset RecipeItem[${i}] ${Ini[combine.ini,${RecipeName},ing${i}]}
/next i
Example combine.ini:

Code: Select all

[recipe1]
ing1=bottle of milk
ing2=bottle
ing3=malt

[recipe2]
ing1=bottle
ing2=fresh fish
ing3=grapes
ing4=water flask

[recipe3]
ing1=malt
ing2=malt
ing3=malt
ing4=cask
ing5=yeast
ing6=water flask
ing7=water flask
ing8=short beer
ing9=short beer

[recipe4]
ing1=barley
ing2=cask
ing3=hops
ing4=malt
ing5=yeast

[recipe5]
ing1=cask
ing2=dwarven ale
ing3=elven wine
ing4=gnomish spirits
ing5=mead
If you type /macro 6 recipe5, you will most likely get an error because there are only 5 ingredients in recipe5, and RecipeItem[6] will be Undefined.

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Post by JP5 » Thu Aug 19, 2004 5:08 pm

On second thought, perhaps I should define the number of ingredients in the ini instead of having it set as Param0.

So it would look like this:

Code: Select all

[recipe1]
MaxItems=3
ing1=malt
ing2=bottle of milk
ing3=bottle

User avatar
aChallenged1
a grimling bloodguard
a grimling bloodguard
Posts: 1804
Joined: Mon Jun 28, 2004 10:12 pm

Post by aChallenged1 » Thu Aug 19, 2004 7:04 pm

Yeah, set it in each recipe or you're asking for trouble.

Looking good, I think it will be a hit!
Fuck writing MQ2 macros. Go with IS scripts; IS Rules!

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Post by JP5 » Fri Aug 20, 2004 12:10 am

Update:

Thanks to Override's auto tradeskill macros, I've found a way to notify the combine button of inventory type combine items. And it's very easy to set this in the ini. Thanks Override ;)

Here is his code for doing this:

Code: Select all

   /varset Container ${Ini[jc.ini,${RecipeName},Cont,Enviro]}

   /if (${Container.Equal[Enviro]}) {
        /varset PackCode Enviro
   } else {
        /varset PackCode ${FindItem[=${Container}].InvSlot}
       
      /if (${PackCode.Equal[NULL]}) {
         /echo Could not find container ${Container}
         /varset EndingVar 2
         /return
      }
      | pack1 = 22, ... , pack8 = 29
      /varset PackCode pack${Math.Calc[${PackCode}-21].Int}
   } 
The ini file will look something like this:
[recipe1]
cont=Jewelry Kit
num=3
ing1=malt
ing2=bottle of milk
ing3=bottle

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Post by JP5 » Fri Aug 20, 2004 12:20 am

aaaannnnd.....
Here is the macro with the new code implemented.

I'm going to start using this now that it's in near final form. Any suggestions and corrections are very welcome, as I will put this in Macro Depot 3.0 forum soon, and will want it working in top condition.

Code: Select all

#turbo 30
|** event ideas
#event Help "#*#[MQ2] Help#*#"
#event ChangeRecipeName "#*#[MQ2] Recipe #1#"
#event Ini "#*#[MQ2] Change combine.ini #1#,#2#,#3#"
#event ChangeDropType "#*#[MQ2] DropType #1#"
**|

#event CannotCombine "You cannot combine these items in this container type!"

|--------------------------------
| Sub Main
|--------------------------------
Sub Main
/declare CToggle int outer 0
/declare Combine string outer
/declare ItemDropPref string outer
/declare RecipeName string outer
/declare MaxItems int outer

/if (${Defined[Param0]}) {
	/varset RecipeName ${Param0}
	/varset MaxItems ${Ini[combine.ini,${RecipeName},num]}
	} else {
	/echo Usage: /macro combine [recipe name in combine.ini]
	}

/varset ItemDropPref ${Ini[combine.ini,settings,dropitemtype]}

/if (${Ini[combine.ini,${RecipeName},contname].Equal[enviro]}) {
	/varset Combine enviro
	} else {
	/varset Combine pack${Math.Calc[${FindItem[=${Ini[combine.ini,${RecipeName},contname]}].InvSlot}-21]}
	}

/declare RecipeItem[10] string outer

/declare i int local
/for i 1 to ${MaxItems}
	/varset RecipeItem[${i}] ${Ini[combine.ini,${RecipeName},ing${i}]}
/next i

/custombind delete CombineNow
/custombind add CombineNow
/custombind set CombineNow /varset CToggle 1
/bind CombineNow clear
/bind CombineNow \

| User initiated tasks start here.
:loop
	:cursor
		/if (${Cursor.ID}) {
			/docommand /${ItemDropPref}
			/goto :cursor
			}			
	/if (${CToggle}==1) {
		/call PlaceInContainer
		/goto :loop
		} else {
		/goto :loop
		}


/return

|--------------------------------
| Sub PlaceInContainer
|--------------------------------
Sub PlaceInContainer
	
	/declare i int local
	/for i 1 to ${MaxItems}
		/nomodkey /ctrl /itemnotify ${FindItem[${RecipeItem[${i}]}].InvSlot} leftmouseup
		/notify enviro ContainerSlot${i} leftmouseup
	/next i
	
	/delay 0.5
	/combine ${Combine}
	/echo Combining.
	/varset CToggle 0
/return


Sub Event_CannotCombine
	/varset CToggle 0
	/echo Make sure you have enough of each ingredient. Combine not successful.
/return

User avatar
aChallenged1
a grimling bloodguard
a grimling bloodguard
Posts: 1804
Joined: Mon Jun 28, 2004 10:12 pm

Post by aChallenged1 » Fri Aug 20, 2004 7:04 am

Short and sweet, looking good.

Now then... here we go...

1. I don't see a means for putting items into inventory after combine. Is it there and I'm missing it? *ItemDropPref *?

2. What about a toggle for those who want to destroy combine results? This part is fun, gotta be sure to watch so that you don't destroy items like "Corking Device." *ItemDropPref *??

3. Might want to add a string for tool1, tool2, I don't think any combine uses 3 tools, to differentiate between merchant bought items IngN and tools. Might make the destroy option easier.

I might be off on this part, but it looks like a continuous loop...
CODE wrote::loop
:cursor
/if (${Cursor.ID}) {
/docommand /${ItemDropPref}
/goto :cursor
}
/if (${CToggle}==1) {
/call PlaceInContainer
/goto :loop
//if CToggle was true here sends to ":loop"
} else {
/goto :loop
//if Ctoggle was false it still sends to ":loop"
}


/return

|--------------------------------
| Sub PlaceInContainer
|--------------------------------
Sub PlaceInContainer

/declare i int local
//shouldn't this be declared at the top?
/for i 1 to ${MaxItems}
/nomodkey /ctrl /itemnotify ${FindItem[${RecipeItem[${i}]}].InvSlot} leftmouseup
/notify enviro ContainerSlot${i} leftmouseup
/next i

/delay 0.5
/combine ${Combine}
/echo Combining.
/varset CToggle 0
/return
//always returns to where sub was called (ie :Loop)
Sorry about using quote vs code, but I can't ever get it to do other colors within code.

The above are the sleep in eyes observations of a very tired person older than most on this board, twice as old as some.
Fuck writing MQ2 macros. Go with IS scripts; IS Rules!

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Post by JP5 » Fri Aug 20, 2004 11:20 am

Code: Select all

 /goto :loop //if CToggle was true here sends to ":loop"
} else {
/goto :loop //if Ctoggle was false it still sends to ":loop"
} 

Code: Select all

 /if (${CToggle}==1) {
/call PlaceInContainer
/goto :loop //if CToggle was true here sends to ":loop"
} else {
/goto :loop //if Ctoggle was false it still sends to ":loop"
} 
That's true, but if CToggle is 1, it first /call PlaceInContainer, then goes to :loop. :loop is a checking loop, it's supposed to be continuously checking for CToggle changes. If I didn't have a /goto :loop after } else {, the macro would end.

Code: Select all

 /declare i int local //shouldn't this be declared at the top?
"local". I'm in a habit of declaring my indexes for /for /next just above the /for /next code, so that it's more apparent that I remembered to /declare it. It makes no different if I declare a global variable at the top: "/declare i int outer" or if I declare it locally, once per Sub routine.

Here is how I am currently dropping/destroying/autoinventorying items. It's pretty ineffective... I would make it better but ${Item[itemname].ID} and shit hasn't been working for me (I'm not familiar with item).

Code: Select all

/varset ItemDropPref ${Ini[combine.ini,settings,dropitemtype]}
.............
:loop
/if (${Cursor.ID}) {
    /docommand /${ItemDropPref}
    }
This refers to
[Settings]
dropitemtype=thisisreturnedwiththeabovecode

in my combine.ini.


If anyone knows how to find the Item ID of [someitem], please tell me.

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Post by JP5 » Fri Aug 20, 2004 12:11 pm

I tested this macro, and it is completely useless. They included an inherant delay in combines that is EXACTLY the same as using the new tradeskill interface window. /sigh. Now I have to find ways to exploit them more as revenge.