• 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

shadow haven faction

Guide12

New member
Joined
Jan 23, 2007
RedCents
fixed this so no warping at all.
If you need to improve your shadow haven faction or just like improving faction here you go. no i'm not the original writer of this mac I have just modified it so that it works again.

PLEASE NOTE FOLLOWING PLUGIN REQUIRED. MQ2DOORS. AQUIRED FROM REDQUEST
HTML:
http://www.redguides.com/community/showthread.php?t=15350

faction.mac
Rich (BB code):
|  SH Faction Macro 
|  by Guide12
|  
| Make sure you place the included files in there right spots. ie the commonsubs.inc 
| amys's trade skills macs is placed in the /macros/common folder the .ini file just 
| goes in the macros folder
|
|  Start this macro from inside the room with Steaon (Alchemy guy) in SH. 
|   
|  Fully automated Shadow Haven faction script. 
| 
|  
|  
#turbo 40 
 
#include common/CommonSubs.inc

Sub Main 
   /declare Filename string outer sh.ini
  
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Call Read INI for locations array
|                    
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    /call ReadINIA ${Filename} "bazaar" 
    /if (!${Defined[LocArray]}) { 
       /echo No Loc Array Created...
       /endmacro 
    } 
  

:MainLoop 
   /doevents 

| ------------------------------------------------------------------- 
| 1. Make sure we're close enough to Steaon. 
| 2. Give Steaon the items from Gearo. 
| 3. Get item from Steaon to take to Gearo. 
| ------------------------------------------------------------------- 
  

| -------------------------- 
| Get the stuff from Steaon. 
| -------------------------- 
/toggledoors on
/target Steaon 
/face nolook 
    /If (${Cursor.ID}) { 
      /click left target 
      /delay 1s 
      /nomodkey /notify GiveWnd GVW_Give_Button leftmouseup 
      /delay 1s 
   } 
/delay 5 
/say I will make a trip to the bazaar 
   /delay 2s 
   /keypress ESC 


| --------------------------- 
| Run to Gearo in the Bazaar. 
| --------------------------- 
   /delay 2s
   /call movement 11 20 0
   /face loc 311.58,680.07,-99.62
   /delay 3
   /keypress forward hold
   /delay 4s
   /keypress forward 
   /delay 3s
   
   /call movement 1 5 0
   
|  ---------------------------------------------- 
| 1. Give Gearo the item from Steaon 
| 2. Get item from Gearo to take back to Steaon. 
| ---------------------------------------------- 
   /delay 1s 
/target gearo 
/face nolook 
    /If (${Cursor.ID}) { 
      /click left target 
      /delay 1s 
      /nomodkey /notify GiveWnd GVW_Give_Button leftmouseup 
      /delay 1s 
   } 
/delay 5 
/say I will take the gems 
   /delay 2s 
   /keypress ESC 


| ------------------------- 
| Run back to Steaon in SH. 
| ------------------------- 
   /call movement 6 10 0
   /face loc -160.48,-353.08,2.91 
   /keypress forward hold 
   /delay 4s 
   /keypress forward 
   /delay 3s
   /toggledoors on
   /call movement 21 34 0

| ---------------------------------- 
| Rinse, Repeat, until we /endmacro. 
| ---------------------------------- 
   /goto :MainLoop 
/return

sh.ini
Rich (BB code):
[bazaar] 
Value=34
LOC1=-145.00,-335.00 
LOC2=-143.66,-298.64 
LOC3=-103.97,-266.55 
LOC4=2.01,-276.98   
LOC5=5.22,-19.54   
LOC6=5.22,-19.54  
LOC7=2.01,-276.98   
LOC8=-103.97,-266.55  
LOC9=-143.66,-298.64   
LOC10=-148.00,-351.00 
 
LOC11=265.36,1560.09
LOC12=240.06,1530.55
LOC13=242.98,1388.55
LOC14=301.02,1323.80
LOC15=290.09,1170.29
LOC16=154.10,1064.15
LOC17=148.31,1005.44
LOC18=58.84,878.39
LOC19=61.63,734.86
LOC20=294.99,728.24

LOC21=305.00,795.00
LOC22=293.46,740.52
LOC23=91.44,734.10
LOC24=81.82,636.44
LOC25=63.78,637.99
LOC26=67.48,872.11
LOC27=153.90,991.02
LOC28=163.13,1080.16
LOC29=304.12,1157.51
LOC30=287.46,1359.32
LOC31=243.27,1391.57
LOC32=243.24,1534.30
LOC33=265.05,1555.58
LOC34=265.64,1560.38

macros/common/commonsubs.inc
Rich (BB 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 
         /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_RecipeList listselect ${Window[TradeskillWnd].Child[COMBW_RecipeList].List[${ItemTo}]} 
	   /delay 2 
	   /nomodkey /notify TradeskillWnd COMBW_RecipeList leftmouseup ${Window[TradeskillWnd].Child[COMBW_RecipeList].List[${ItemTo}]}

           /varset Checkrecipe ${Window[TradeskillWnd].Child[COMBW_RecipeList].List[${ItemTo}]}

|--- Its not in Favorites.. so lets type it in and do a search
      /if (!${Checkrecipe}) {

           /delay 1m ${Window[TradeskillWnd].Child[COMBW_SearchButton].Enabled}  
           /nomodkey /notify TradeskillWnd COMBW_SearchButton leftmouseup 
           /delay 10 
	   /nomodkey /notify TradeskillWnd COMBW_RecipeList listselect ${Window[TradeskillWnd].Child[COMBW_RecipeList].List[${ItemTo}]} 
	   /delay 2 
	   /nomodkey /notify TradeskillWnd COMBW_RecipeList leftmouseup ${Window[TradeskillWnd].Child[COMBW_RecipeList].List[${ItemTo}]}
           /varset Checkrecipe ${Window[TradeskillWnd].Child[COMBW_RecipeList].List[${ItemTo}]}

|--- Search could not find it either so lets do a old school combine
           /if (!${Checkrecipe}) {
                /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 
      } 
   /next loopctr 
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub DoCombine
|
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub DoCombine
        /call ClearCursor 
    :Loop 
	/nomodkey /notify TradeskillWnd CombineButton leftmouseup 
        /delay 2s ${Cursor.ID} 
        /if (${Cursor.Name.Equal[unfired idol]}) { 
         /echo Destroying ${Cursor.Name} 
         /destroy 
         /delay 5 
          } 

        /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}-21].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
 
Last edited:
Re: shadow haven faction w/ warp

Warping in the bazaar in a macro is fucking BEGGING for a ban.
 
shadow haven faction

Users who are viewing this thread

Back
Top
Cart