Parse chat, Auction tool.... question...

Macro requests from before the user variable changes that broke all macros

Moderator: MacroQuest Developers

DrMadd
a lesser mummy
a lesser mummy
Posts: 43
Joined: Tue Jun 03, 2003 1:03 pm

Parse chat, Auction tool.... question...

Post by DrMadd » Tue Sep 02, 2003 4:44 pm

Ok... here is my lil idea and I THINK it an be done...

A macro that does this,

Runs while you are in trader mode in bazaar, watches the /auctions and any time it sees WTB <name> that matches what you have for sale in trader mode, it tells the person who was looking for it

I'm selling <item> for <howmuch its selling for in trader mode>


This would DEFINATLY have to be something you sat and watched as it would be easily detected and /petitioned....


MaDd

Shin Noir
a ghoul
a ghoul
Posts: 90
Joined: Tue Aug 05, 2003 8:18 pm

Post by Shin Noir » Thu Sep 04, 2003 8:23 pm

Another suggestion\way of maybe going through this is creating an auction detector that wrote notes on who did what.

Ex:

Code: Select all

/mac Detect.mac "Fungus Covered tunic" "Flowing Black" "Mold" "FBSS"
then any auctions with the keywords above.. let's say these auctions were said.

blah blah1 auctions, 'WTB Fungus Covered Tunic"
blah blah2 auctions, "uhm rawr Want To Sell this thing called Fungus covered tunic 45k OBO"
blah blah3 auctions, "PC Flowing Black Silk Swatch?"
blah blah4 auctions, "PC FBSS!?"

all these would be picked up in the filter, and not neccessarily a bad thing.
If you wrote the detect to write the results into a log, you could simply open the log later and maybe read stuff like:

Code: Select all

[Fungus Covered Tunic]
(11:32pm 8/8/03) blah blah1 auctions, "WTB Fungus Covered Tunic"
(11:42pm 8/8/03) blah blah2 auctions, "uhm rawr WTS Fungus covered tunic 45k OBO"
[Flowing Black Silk Swatch]
(12:42pm 8/8/03)blah blah3 auctions, "PC Flowing Black Silk Swatch?"
[FBSS]
(1:42pm 8/8/03)blah blah4 auctions, "PC FBSS!?"
You could then go through the log later, see all the spam pertaining to each search criteria, and contact the person accordingly. Sure you'd see both WTS and WTB's, but this is off the top of my head the easiest way to detect all auctions for a certain item.

Having it autotell the guy is probably no good, You're better off just contacting them later and asking if they're still selling\buying the item.

Another thing you could easily implement is an anti-spam detector, if X person spams the same msg 20 times the duration you run the macro, you could have it log every person's name you see auction and not let it log the same person twice for the same item.

kagonis
a hill giant
a hill giant
Posts: 228
Joined: Sat May 24, 2003 8:48 pm

Post by kagonis » Thu Sep 04, 2003 8:27 pm

It could easily be made by reading your bzr_playername_#.ini file or whatever its called.
Allthough, I wouldnt use this.
If you send a tell like a split second to someone that WTB something, they are gonna know something is wrong.
If you are sending a tell to someone, and then not even replying to their tells, they are gonna something is wrong.

But its all up to you :)

DrMadd
a lesser mummy
a lesser mummy
Posts: 43
Joined: Tue Jun 03, 2003 1:03 pm

Post by DrMadd » Fri Sep 05, 2003 10:27 am

how do you read from ini file in Macroquest?

kagonis
a hill giant
a hill giant
Posts: 228
Joined: Sat May 24, 2003 8:48 pm

Post by kagonis » Fri Sep 05, 2003 2:18 pm

This code is untested..

Code: Select all

#define BZRFILE "c:\everquest\BZR_Myname_#.ini"

Sub Main
	/for l0 0 to 7
		/if "$pack($int($l0))"=="TRUE" /if "$pack($int($l0),name)"=="Trader's Satchel" /call ReadContent $int($l0)
	/next l0
/return

Sub ReadContent
	/if n $strlen($p0)==0 {
		/echo Syntax: /call ReadContent <pack#>
		/endmacro
	}
	/for l0 0 to $ini($calc($pack($p0,slots)-1))
		/if "$item($p0,$l0,name)"!="NULL" {
			/varset l1 "$item($p0,$l0,name)"
			/varset l2 $int($count("$l1"))
			/if "$l1"~~"$l3" /goto :Skip
			/varset l3 "$l3 $l1"
			/call CalcPrice $ini("$BZRFILE","ItemToSell","$l1")
			/echo Selling: $l1 x $l2 for $return each
			:Skip
		}
	/next l0
/return

Sub CalcPrice
	/if n $strlen($p0)==0 {
		/echo Syntax: /call CalcPrice <copper>
		/endmacro
	}
	/if n $mid($int($calc($strlen("$p0")-1)),1,"$p0"")>0 /varset l0 "$mid($int($calc($strlen("$p0")-1)),1,"$p0"")cp"
	/if n $mid($int($calc($strlen("$p0")-2)),1,"$p0"")>0 /varset l0 "$mid($int($calc($strlen("$p0")-2)),1,"$p0"")sp $l0"
	/if n $mid($int($calc($strlen("$p0")-3)),1,"$p0"")>0 /varset l0 "$mid($int($calc($strlen("$p0")-3)),1,"$p0"")gp $l0"
	/if n $mid($int($calc($strlen("$p0")-4)),1,"$p0"")>0 /varset l0 "$left($int($calc($strlen($p0)-3),"$p0")pp $l0"
/return "$l0"

Valerian
a grimling bloodguard
a grimling bloodguard
Posts: 709
Joined: Sun Jul 28, 2002 3:29 am

Post by Valerian » Fri Sep 05, 2003 2:54 pm

uh oh... I see a few new parms incoming... how about $eqpath $mqpath $logpath and $macropath?

EDIT: New parms now in CVS.