Merchant Inventory

Every EverQuest related project needs an EverQuest forum! talk about anything you like... EverQuest related of course.

Moderator: MacroQuest Developers

User avatar
Fippy
a snow griffon
a snow griffon
Posts: 499
Joined: Tue Jul 16, 2002 10:42 am

Merchant Inventory

Post by Fippy » Tue Sep 10, 2002 12:05 pm

I just had a thought. Right now whilst reading a post by the L12 where he's making fun of merchant macros. Anyway I am rambling so i'll get to the point now. What was the point. I dunno. Is there a point? oh yeah, my thought. Now what was it. Damn I drink too much. No that wasnt my point. Thats why I forgot it. Oh yeah. I remember merchants. Could we use MQ to check merchants stock. Get What they have and the value. Then shove it in a file with his name,, Zone, and loc. So tradeskillers could have a yellow (white ? in US) pages of merchants.

Would it be usefull?
Can it be done?

fippy

User avatar
rizwank
Huggle Police
Huggle Police
Posts: 524
Joined: Tue Jul 23, 2002 12:07 am
Contact:

Post by rizwank » Tue Sep 10, 2002 12:16 pm

if you are talking about tradesupplies, www.eqtraders.com has THE guide for that. Or how to farm mercahnts.. EQ traders has all you want there


but being able to check inventory across a zone.. no i dont think so.

User avatar
Fippy
a snow griffon
a snow griffon
Posts: 499
Joined: Tue Jul 16, 2002 10:42 am

Post by Fippy » Tue Sep 10, 2002 12:42 pm

I realize that you need to visit each merchant and EQTraders does have a lot of info but it is sorta chaotic. My vision was sort of a 'damn I need some Kiola sap and I am in South Karana where is the nearest vendor ?'. So I go to to www. eqyellowpages.com and search for Kiola sap vendors.

Since the vendors do change sometimes then checking them would be someting to do after a patch and if it could be automated then you could be up to date pretty quickly.

Maybe a script for each zone that walks a path around all the vendorss??

Fippy

User avatar
rizwank
Huggle Police
Huggle Police
Posts: 524
Joined: Tue Jul 23, 2002 12:07 am
Contact:

Post by rizwank » Tue Sep 10, 2002 2:27 pm

theres no ability to "list" whats on a vendor unless you /click merchant 0, 1,2,3 and get it out of the logs..
Nearest to SK seems to be EC
grapes, bottle, cask, kiola sap, short beer, mead, fish wine, red wine white wine, brandy, shotglass - Innkeep Calen (3rd inn, loc 315, 488), Innkeep Fenia ("orc camp inn", loc 1020, 3725), Innkeep Leo (2nd inn, loc -318, 2979), Innkeep Elora (1st Inn, loc -188, 67)

http://www.eqtraders.com/location/brewing.htm

EQ traders rocks too much to dismiss it so quickly.

User avatar
L124RD
Site Admin
Site Admin
Posts: 1343
Joined: Fri Jun 14, 2002 12:15 am
Location: Cyberspace
Contact:

Post by L124RD » Tue Sep 10, 2002 7:40 pm

Salutations,
oh... whe! i get to post a macro! lol... From IRC-20020707a and i don't think it still works but... *sigh*

Code: Select all

| - merchinventory.mac -
| does an inventory on the merchant!
| don't have merchant open when you run it
| syntax:
|  /macro merchinventory.mac merchant


#turbo
#chat tell
#chat say

#define STR_MERCHANTNAME a(0,0)
#define INT_MERCHANTOPEN a(0,1)
#define STR_MERCHANTTELL a(0,2)
#define INT_MERCHANTCURITEM a(0,3)
#define INT_CURRENTWORD a(0,4)
#define INT_MAXWORDS a(0,5)
#define STR_COPPERWORD a(0,6)
#define STR_SILVERWORD a(0,7)
#define STR_GOLDWORD a(0,8)
#define STR_PLATINUMWORD a(0,9)
#define bVAR_TEMP a(0,10)
#define INT_COPPER a(0,11)
#define INT_SILVER a(0,12)
#define INT_GOLD a(0,13)
#define INT_PLATINUM a(0,14)
#define STR_PER a(0,15)
#define bVAR1_TEMP a(0,16)
#define bVAR2_TEMP a(0,17)
#define INT_MERCHANTITEMNUM a(0,18)
#define INT_FORLOOP v1
#define bVAR_ITEM_ a(
#define _NAME ,0)
#define _VALUE ,1)

sub main
 /filter name add calculate
 /filter name add $p0
 /varset STR_MERCHANTNAME $p0
 /varset INT_MERCHANTITEMNUM -1
 /call getready
 :getstatsloop
  /varset STR_MERCHANTNAME $p0
  /varcalc bVAR_TEMP $INT_MERCHANTITEMNUM+1
  /varset INT_MERCHANTITEMNUM $bVAR_TEMP
  /varset INT_MERCHANTCURITEM $INT_MERCHANTITEMNUM
  /if n $INT_MERCHANTITEMNUM==12 /varset INT_MERCHANTCURITEM 10
  /if n $INT_MERCHANTITEMNUM==14 /varset INT_MERCHANTCURITEM 10
  /if n $INT_MERCHANTITEMNUM==16 /varset INT_MERCHANTCURITEM 10
  /if n $INT_MERCHANTITEMNUM==18 /varset INT_MERCHANTCURITEM 10
  /if n $INT_MERCHANTITEMNUM==20 /varset INT_MERCHANTCURITEM 10
  /if n $INT_MERCHANTITEMNUM==22 /varset INT_MERCHANTCURITEM 10
  /if n $INT_MERCHANTITEMNUM==24 /varset INT_MERCHANTCURITEM 10
  /if n $INT_MERCHANTITEMNUM==26 /varset INT_MERCHANTCURITEM 10
  /if n $INT_MERCHANTITEMNUM==28 /varset INT_MERCHANTCURITEM 10
  /if n $INT_MERCHANTITEMNUM==13 /varset INT_MERCHANTCURITEM 11
  /if n $INT_MERCHANTITEMNUM==15 /varset INT_MERCHANTCURITEM 11
  /if n $INT_MERCHANTITEMNUM==17 /varset INT_MERCHANTCURITEM 11
  /if n $INT_MERCHANTITEMNUM==13 /varset INT_MERCHANTCURITEM 11
  /if n $INT_MERCHANTITEMNUM==19 /varset INT_MERCHANTCURITEM 11
  /if n $INT_MERCHANTITEMNUM==21 /varset INT_MERCHANTCURITEM 11
  /if n $INT_MERCHANTITEMNUM==23 /varset INT_MERCHANTCURITEM 11
  /if n $INT_MERCHANTITEMNUM==25 /varset INT_MERCHANTCURITEM 11
  /if n $INT_MERCHANTITEMNUM==27 /varset INT_MERCHANTCURITEM 11
  /if n $INT_MERCHANTITEMNUM==29 /varset INT_MERCHANTCURITEM 11
  /if n $INT_MERCHANTITEMNUM==12 /click left merchant down
  /if n $INT_MERCHANTITEMNUM==14 /click left merchant down
  /if n $INT_MERCHANTITEMNUM==16 /click left merchant down
  /if n $INT_MERCHANTITEMNUM==18 /click left merchant down
  /if n $INT_MERCHANTITEMNUM==20 /click left merchant down
  /if n $INT_MERCHANTITEMNUM==22 /click left merchant down
  /if n $INT_MERCHANTITEMNUM==24 /click left merchant down
  /if n $INT_MERCHANTITEMNUM==26 /click left merchant down
  /if n $INT_MERCHANTITEMNUM==28 /click left merchant down
  /varset STR_MERCHANTTELL 
  /delay 1
  /click left merchant $INT_MERCHANTCURITEM
  /varset t0 300
  :waitfortell
   /doevents
   /if n $t0==0 /goto :done
   /if "$STR_MERCHANTTELL"=="" /goto :waitfortell 
  :countloop
   /if $arg($INT_MAXWORDS,"$STR_MERCHANTTELL")!="" {
    /varcalc INT_MAXWORDS $INT_MAXWORDS+1
    /goto :countloop
   }
   /call calc_value
   /call calc_name
  /varset bVAR1_TEMP "Item in slot $INT_MERCHANTITEMNUM is"
  /varset bVAR2_TEMP "$bVAR1_TEMP has a value of $bVAR_ITEM_$INT_MERCHANTITEMNUM_VALUE copper"
  /varset bVAR_TEMP "$bVAR2_TEMP and is$bVAR_ITEM_$INT_MERCHANTITEMNUM_NAME"
  /echo $bVAR_TEMP
 /goto :getstatsloop
:done
 /filter name remove calculate
 /filter name remove $p0
/return    

sub event_chat 
 /if "$p0"~~"say" /if "$p1"~~"$STR_MERCHANTNAME" /if "$p2"~~"$char(name)" /varset INT_MERCHANTOPEN 1 
 /if "$p0"~~"tell" /if "$p1"~~"$STR_MERCHANTNAME" /varset STR_MERCHANTTELL "$p2"
/return

sub getready
 /target $STR_MERCHANTNAME
 /if $target(distance)<=2 /goto :continue
 /sendkey down up
 :closeenoughloop
  /face $STR_MERCHANTNAME
  /doevents
  /if $target(distance)>=2 /goto :closeenoughloop
 /sendkey up up
 :continue
 /face $STR_MERCHANTNAME
 /press u
 :waitmerchantloop
  /doevents
  /if n $INT_MERCHANTOPEN==0 /goto :waitmerchantloop
/return

sub calc_value
  :findcopperloop
   /if $arg($STR_COPPERWORD,"$STR_MERCHANTTELL")!="copper" {
    /if $arg($STR_COPPERWORD,"$STR_MERCHANTTELL")!="" {
     /varcalc STR_COPPERWORD $STR_COPPERWORD+1
     /goto :findcopperloop
    }
   }
  :findsilverloop
   /if $arg($STR_SILVERWORD,"$STR_MERCHANTTELL")!="silver" {
    /if $arg($STR_SILVERWORD,"$STR_MERCHANTTELL")!="" {
     /varcalc STR_SILVERWORD $STR_SILVERWORD+1
     /goto :findsilverloop
    }
   }
  :findgoldloop
   /if $arg($STR_GOLDWORD,"$STR_MERCHANTTELL")!="gold" {
    /if $arg($STR_GOLDWORD,"$STR_MERCHANTTELL")!="" {
     /varcalc STR_GOLDWORD $STR_GOLDWORD+1
     /goto :findgoldloop
    }
   }
  :findplatloop
   /if $arg($STR_PLATINUMWORD,"$STR_MERCHANTTELL")!="platinum" {
    /if $arg($STR_PLATINUMWORD,"$STR_MERCHANTTELL")!="" {
     /varcalc STR_PLATINUMWORD $STR_PLATINUMWORD+1
     /goto :findplatloop
    }
   }

  /if $STR_COPPERWORD!=$INT_MAXWORDS {
   /varcalc STR_COPPERWORD STR_COPPERWORD-1
  }
  /if $STR_COPPERWORD==$INT_MAXWORDS {
   /varcalc STR_COPPERWORD 0-1
  }
  /if $STR_SILVERWORD!=$INT_MAXWORDS {
   /varcalc STR_SILVERWORD $STR_SILVERWORD-1
  }
  /if $STR_SILVERWORD==$INT_MAXWORDS {
   /varcalc STR_SILVERWORD 0-1
  }
  /if $STR_GOLDWORD!=$INT_MAXWORDS {
   /varcalc STR_GOLDWORD $STR_GOLDWORD-1
  }
  /if $STR_GOLDWORD==$INT_MAXWORDS {
   /varcalc STR_GOLDWORD 0-1
  }
  /if $STR_PLATINUMWORD!=$INT_MAXWORDS {
   /varcalc STR_PLATINUMWORD $STR_PLATINUMWORD-1
  }
  /if $STR_PLATINUMWORD==$INT_MAXWORDS {
   /varcalc STR_PLATINUMWORD 0-1
  }
  /varcalc INT_COPPER $arg($STR_COPPERWORD,"$STR_MERCHANTTELL")
  /varcalc INT_SILVER $arg($STR_SILVERWORD,"$STR_MERCHANTTELL")
  /varcalc INT_GOLD $arg($STR_GOLDWORD,"$STR_MERCHANTTELL")
  /varcalc INT_PLATINUM $arg($STR_PLATINUMWORD,"$STR_MERCHANTTELL")
  /varcalc bVAR_ITEM_$INT_MERCHANTITEMNUM_VALUE 0+0
  /if n $STR_COPPERWORD!=-1 {
   /varcalc bVAR_TEMP $bVAR_ITEM_$INT_MERCHANTITEMNUM_VALUE+$INT_COPPER
   /varcalc bVAR_ITEM_$INT_MERCHANTITEMNUM_VALUE 0+$bVAR_TEMP 
  }
  /if n $STR_SILVERWORD!=-1 {
   /varcalc bVAR_TEMP $bVAR_ITEM_$INT_MERCHANTITEMNUM_VALUE+$calc($INT_SILVER*10)
   /varcalc bVAR_ITEM_$INT_MERCHANTITEMNUM_VALUE 0+$bVAR_TEMP 
  }
  /if n $STR_GOLDWORD!=-1 {
   /varcalc bVAR_TEMP $bVAR_ITEM_$INT_MERCHANTITEMNUM_VALUE+$calc($INT_GOLD*100)
   /varcalc bVAR_ITEM_$INT_MERCHANTITEMNUM_VALUE 0+$bVAR_TEMP
  }
  /if n $STR_PLATINUMWORD!=-1 {
   /varcalc bVAR_TEMP $bVAR_ITEM_$INT_MERCHANTITEMNUM_VALUE+$calc($INT_PLATINUM*1000)
   /varcalc bVAR_ITEM_$INT_MERCHANTITEMNUM_VALUE 0+$bVAR_TEMP 
  }
/return

sub calc_name
  :findperloop
   /if $arg($STR_PER,"$STR_MERCHANTTELL")!="per" {
    /if $arg($STR_PER,"$STR_MERCHANTTELL")!="" {
     /varcalc STR_PER $STR_PER+1
     /goto :findperloop
    }
   }
  /if n $STR_PER==$INT_MAXWORDS {
   /varset STR_PER 0
   :findfortheloop
    /if $arg($STR_PER,"$STR_MERCHANTTELL")!="for"
     /if $arg($STR_PER,"STR_MERCHANTTELL")!="" {
      /varcalc STR_PER $STR_PER+1
      /goto :findfortheloop
     }
    }
    /varcalc STR_PER $STR_PER+1
   }
  /varset bVAR_ITEM_$INT_MERCHANTCURITEM_NAME 
  /for INT_FORLOOP $calc($STR_PER+1) to $calc($INT_MAXWORDS-1)
   /varset bVAR1_TEMP $arg($INT_FORLOOP,"$STR_MERCHANTTELL")
   /varset bVAR_TEMP "$bVAR_ITEM_$INT_MERCHANTITEMNUM_NAME $bVAR1_TEMP"
   /varset bVAR_ITEM_$INT_MERCHANTITEMNUM_NAME "$bVAR_TEMP"
  /next INT_FORLOOP
/return

User avatar
rizwank
Huggle Police
Huggle Police
Posts: 524
Joined: Tue Jul 23, 2002 12:07 am
Contact:

Post by rizwank » Tue Sep 10, 2002 7:47 pm

SO MANY CAPS, MY EYES ARE HURTING

User avatar
L124RD
Site Admin
Site Admin
Posts: 1343
Joined: Fri Jun 14, 2002 12:15 am
Location: Cyberspace
Contact:

Post by L124RD » Tue Sep 10, 2002 7:53 pm

Salutations,
the caps are variables... lol...