Tradeskill Macros Revisited

Has anyone tried just taking the whole leftmouse thing out of the macros?
 
Yeah working on it, having a hard time figuring it out.

Beginning to suspect thats not the issue from what I am seeing though
 
Well, assuming they worked before, that's all you should have to do - get rid of leftmouseup, only on the listselects. Which would be only in buy.inc & commonsubs.inc.

Here is a copy of them corrected for it. See where it gets you.

EDIT: Causes CTD with the new listselect code in place.
 

Attachments

  • NewTS.zip
    43 KB · Views: 72
Last edited:
Getting rid of the leftmouseup after the listselect in the buy.inc gets rid of the double purchase lines but still getting CTD in the commonsubs.inc :(

This after adding in a delay to make sure the recipe lookup window is ready. The first 3 letters are added to the recipe window and then it crashes.
 
Last edited:
HTW will have this fixed with next compile. Should be on the 9th. Then we'll be able to go about our ways using the TS macs as they are in the first post.
 
I have edited mine to work, but it uses the old method of opening container and moving all the items. I'm in class til about 2 but check back and I'll edit in the code for my commonsubs.inc
 
Before running the mac try this (just a bypass) :
- do the recipes in the macros
- add them in your favorites recipes.

That would prevent the search for the recipe that makes it crash.
 
HTW will have this fixed with next compile. Should be on the 9th. Then we'll be able to go about our ways using the TS macs as they are in the first post.

Fixed how? This was a change made to the core MQ2 Compile code.
 
@Maskoi
htw is just that good m'friend. I've already talked to him and he said it wouldn't take a lot of work to do it and will do it on patch day this week since he'll have to push a new compile anyway. As to the change in the core coding for MQ2, it wasn't a major change that was required. So him changing it back to the way it was won't break it. As long as he's been doing this I really don't think he even needs the source anymore but gets it anyway just to be a bit lazy on his part lol. Mind you, I could be wrong on that part.

@hosto
Will give that a shot and if it works, will be nifty until the fix is done. The biggest thing that made these macros so godlike is the fact they are self automated. So while we can use a slight loop hole, providing it works, it defeats the purpose of the macro. Besides, if we boast the ONLY working self automated TS macs in the cheat community, that only work with OUR compile, then we'll get more members, more funding and even more benefits.
 
@Maskoi
htw is just that good m'friend. I've already talked to him and he said it wouldn't take a lot of work to do it and will do it on patch day this week since he'll have to push a new compile anyway. As to the change in the core coding for MQ2, it wasn't a major change that was required. So him changing it back to the way it was won't break it. As long as he's been doing this I really don't think he even needs the source anymore but gets it anyway just to be a bit lazy on his part lol. Mind you, I could be wrong on that part.

Its got nothing to do with htw's skills, we all know he is the man. It has to do with a another source code deviation from the original. As a coder it a total pain in the ass. I have had to make sure Shambot works on both compiles since I want everyone to be able to use it, here and at Macroquest2.com. I have a spent a LOT of time debugging my MMOBugs version to make it works on the MQ2 Vanilla compile.

You are asking htw to take a step backward for MMOBugs audience. The devs at macroquest made that change because it was broken. Wouldn't it make more sense to fix and post the corrected macros. We have a lot people here that post these kind of things just like I did for the boomerrang macro.
 
Its got nothing to do with htw's skills, we all know he is the man. It has to do with a another source code deviation from the original. As a coder it a total pain in the ass. I have had to make sure Shambot works on both compiles since I want everyone to be able to use it, here and at Macroquest2.com. I have a spent a LOT of time debugging my MMOBugs version to make it works on the MQ2 Vanilla compile.

You are asking htw to take a step backward for MMOBugs audience. The devs at macroquest made that change because it was broken. Wouldn't it make more sense to fix and post the corrected macros. We have a lot people here that post these kind of things just like I did for the boomerrang macro.
No worries, it was a 'worst cast' comment, for a short-term solution. I haven't even had a chance to take a look at it yet, beyond doing the simple change to the macro that should have allowed it to continue working - certainly should not cause a CTD.

Regardless of where the issue is, I'm sure we can get it resolved properly.

htw
 
Actually what might be nice for the wiki and anyone coding is the differences between the 2 compiles related to macros MMOBugs vs MQ2 kind of list.

There may not be many. The one that comes to mind is the String TLO is still active in MMOBugs and inactive in the MQ2.
 
Last edited:
It couldn't have been broken due to many other members on this site using it prior to the coding change. As to the shamanbot macro, it doesn't use the tradeskill containers so it shouldn't be affected by the change. And for the record before any assumptions or anything of that nature start flying around, I'm not wanting to pull any attention away from the main MQ2 site as that would be counter-productive. It just tends to be helpful for us (mmobugs) to have something noone else does. And again, I must reiterate the fact I've already talked to htw about it and he said it wouldn't need much work at all to fix that one minor change. Your shamanbot worked before the change and after. Not sure why you're all that worried about it. /end conversation.
 
Here is my commonsubs.inc, I'm pretty sure it should bypass the new system and just open the container and combine from there. I didn't extensively test it (although I did use brewing.mac or brew.mac with it originally) but I believe it should work. If not, oh well, it is only 2 days until the patch comes anyway, and my apologies for wasting everyone's time ;)

Code:
|
| CommonSubs.inc
|
| 1 APR 2006: fixed Clear cursor
|             fixed the EVENT Container in use 
|             fixed The NEW UI - Favorite recipe selection
|
| 26 MAR 2006: Moved Salvage and Readini Sub to here
|              Changed some redundant coding
|              Changed clear cursor to A_Druid_00 clear cursor code
|              Added /nomodkey to all /notify statements
|
#event CombineError "#*#There was no place to put that#*#" 
#event CombineError "#*#You cannot combine these items in this container type!#*#" 
#event CombineError "#*#did not accept these items#*#" 
#event CombineError "#*#You are missing#*#" 
#event Advance "#*#You can no longer advance #*#" 
#event ContUsed "#*#Someone else is using that. Try again later.#*#" 
#event End "#*#can not afford#*#" 
#Event Skillup "#*#become better at#*#" 
#Event Salvage "You failed the combine, but you managed to recover #*#" 


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Type input string "Recipe" into search box in new tradeskill interface, 
| click search and select the first recipe returned in the search results. 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub ChooseRecipe 
         /delay 1s
         /nomodkey /notify TradeskillWnd COMBW_SearchTextEdit leftmouseup 
         /delay 5 
         /echo Searching for Recipe
         /call Type "${ItemTo}"

|--- First Check to see if Recipe is in favorites
 	/nomodkey /notify TradeskillWnd COMBW_ExperimentButton leftmouseup

	                 /varset NewUI 2
               /call OLDUICOMBINE
               /nomodkey /notify ${PackCode} Container_DoneButton Leftmouseup
               /return
               } else {
                     /call DoCombine
                     }
        } else {
              /call DoCombine
              }
    /nomodkey /notify TradeskillWnd COMBW_CloseButton Leftmouseup
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Type out the input string.   
| 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
Sub Type(InStr) 
   /echo trying to enter Recipe Desired
   /declare char string local 
   /declare loopctr int local 
   /for loopctr 1 to ${InStr.Length} 
      /varset char ${InStr.Mid[${loopctr},1]} 
      /if (!${char.Length}) { 
         /nomodkey /keypress space chat 
      } else { 
         /nomodkey /keypress ${char} chat 
      } 
   /delay 2s
   /next loopctr 
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub DoCombine
|
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub DoCombine
        /call ClearCursor 
    :Loop 
	/nomodkey /notify TradeskillWnd CombineButton leftmouseup 
        /delay 2s ${Cursor.ID} 
        /call ClearCursor 

      	/doevents 
        /delay 2
      /if (${EndingVar}==1) /goto :Loop
      /varset EndingVar 1 

    /return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Clear Cursor
|
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub ClearCursor 
/declare x int local 
:auto_inv 
/if (${Cursor.ID}) { 
  /if (${Cursor.Container}) { 
    /for x 1 to 8 
    /if (!${InvSlot[pack${x}].Item.Container}) /nomodkey /itemnotify pack${x} leftmouseup 
    /next x 
  } else { 
    /timed 5 /autoinventory 
  } 
  /goto :auto_inv 
} 
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub OLD UI COMBINE
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub OLDUICOMBINE
   /echo recipe not found yet .. Going old school

   /call OpenPacks
   /call cleanPack "${Container}"

    :Begin
       /doevents
       /if (${EndingVar}==1) {
       /call ClearCursor 
       /for i 1 to 10 
       /call AddComp "${Component[${i}]}" ${i} 
       /next i
       /delay ${Math.Calc[${DelayMult}*1]}s
       /call OldDoCombine 
       /doevents
       /goto :Begin
}
/return


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Movement Sub
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sub Movement(Start,Finish,Door)
  /declare Location int inner
  /for Location ${Start} to ${Finish}
     :MoveLoop
     /face nolook loc ${LocArray[${Location}]}
     /if (${Math.Distance[${LocArray[${Location}]}]}>4) {
        /nomodkey /keypress forward hold
        /face nolook loc ${LocArray[${Location}]}

        /if (${Location}==${Door}) {
        /nomodkey /keypress USE
        /nomodkey /keypress USE
         }
     }
     /if (${Math.Distance[${LocArray[${Location}]}]}<=4) {
        /nomodkey /keypress forward
        /goto :next
     }
     /goto :MoveLoop
     :next
  /next Location
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Add Components
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
sub AddComp(CompName, PackSlot) 
   /if (${CompName.Equal[NOTFOUND]}) /return 

   /if (!${FindItem[=${CompName}].ID}) { 
      /echo Could not find ${CompName} in inventory 
      /beep 
      /varset EndingVar 2
      /return 
    } 

   :Loop 
      /nomodkey /ctrl /itemnotify ${FindItem[=${CompName}].InvSlot} leftmouseup 

      /if (!${Cursor.ID}) { 
         /delay ${Math.Calc[${DelayMult}*1]}s
         /goto :Loop 
      } 

   /if (${PackCode.Equal[Enviro]}) { 
      /nomodkey /itemnotify ${InvSlot[enviro${PackSlot}]} leftmouseup 
   } else { 
      /nomodkey /itemnotify in ${PackCode} ${PackSlot} leftmouseup 
   }
   /doevents    
   /return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Do the Combine
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
sub OldDoCombine 
/combine ${PackCode} 
/doevents 
/delay ${Math.Calc[${DelayMult}*1]}s
/delay 5s ${Cursor.ID} 
/Call ClearCursor
/doevents 
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Read INI file for Loc array
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sub ReadINIA(FileName,SectionName) 
   /echo Attempting to Read Section "${SectionName}" Zone Information from ${FileName}... 

    
   /if (${Ini[${FileName},${SectionName},-1,NO].Equal[NO]}) { 
      /echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro... 
 
      /return
   } 
   /declare nValues     int local 
   /declare nArray      int local  0 

|~~~~~~~~~~~~~~~~~~~~~~ Locs ~~~~~~~~~~~~~~~~~
   /Varset nValues ${Ini[${FileName},${SectionName},Value]}
   /echo ${nValues} Locs
   :MakeArraylo 
   /if (!${nValues}) /return
   /if (${nValues}) { 
      /echo Declaring Loc Array... 
      /declare LocArray[${nValues}]  string outer
   }
   /for nArray 1 to ${nValues}
      /varset LocArray[${nArray}] ${Ini[${FileName},${SectionName},Loc${nArray}]}
      /echo  loc ${nArray} defined ${LocArray[${nArray}]}

   /next nArray



   /echo "${SectionName}" Zone Information Read Successfully from ${FileName}... 

/return 


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
|Sub Event Container being used 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub Event_ContUsed 
/echo Container in use. Waiting 1 Minute, or until no PCs are nearby and trying again. 
/delay 1m ${SpawnCount[pc radius 50]}<=1
/doevents 
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event Combine error
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_CombineError
    /varset EndingVar 2
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event End
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub Event_End
    /call Ending
/return

Sub Ending
    /echo macro ending
    /end 
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub READ Ini File
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub ReadIni(RecipeName) 

    /echo Running ${RecipeName} recipe 

   /if (${Ini["${Filename}","${RecipeName}",-1,"NOTFOUND"].Equal["NOTFOUND"]}) { 
        /echo Recipe ${RecipeName} not found 
        /endmacro 
    } 

   /varset Container ${Ini[${Filename},${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}-22].Int} 
   }  

    /for i 1 to 10 
        /varset Component[${i}] ${Ini[${Filename},${RecipeName},Comp${Math.Calc[${i}-1].Int},NOTFOUND]}

    /next i 
    /return 


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event Salvage
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub Event_Salvage

        /if (${NewUI}==2) /call cleanPack "${Container}"

/return
 
MMOBugs does have something no one else does their plugins. I think you are missing my entire point. I am talking about compatibility. Its not about trade skill containers. Its about any EQ macro that uses the 'listselect'. If you followed the threads about it on the mq2 forums you might understand it a little more.

Someone wrote a macro using a very specific listselect in the options > chatfilters and it didn't work. They posted about it at MQ2 and the devs thought it wasn't working as intended and fixed it. While there are some deviations I bet the MMOBugs compile mirrors the source code other than what htw customizes for us.

Its not about the work involved either. htw just has change some lines in the source code and recompile. I am sure it very minimal.

Fixing the macros is a hell of lot easier than taking a step backward with an entire compile by switching it back.

Also the CTD issue with the tradeskill macros was because of the changes to the way EQ interacted with the Kiln, Forge Etc. I don't think listselect is causing the CTD. At least it didn't for any of the macros I was using before the patch and I changed them. e.g. the automated boomerang mac.

I will test htw changes later tonight to help hunt down any errors with these macs.
 
Last edited:
I am using FF's commonsubs.inc file, it is not crashing for me so far..

Poison skill 30 now!
 
This is getting somewhat offtrack and... well, stupid. Let's not argue about what htw can and cannot do or will and will not do. If you want to create a debate, take it to PM's with that person. Keep this about errors in the mac itself (if any).
 
Last edited:
@Fraggy:
The commonsubs.inc you posted works. Although using it makes the macro somewhat slow as far as typing in the recipe it's looking for, which in turn causes it to go to the old school method. Which really isn't that bad. I just ran the potter mac with the old commonsubs.inc and was still ctd. Not sure if htw implemented that change or not so until I know, I say everyone should use your commonsubs.inc.
 
POOF! The TS macros are no longer broken! DL the ones from HTWs post a page or 2 back and you'll be set!