i would like a macro to count guild members in a zone..
/ guilds
<guild 1> (8)
<guild 2> (6)
<guild 3> (1)
maybe a total (15)
to quickly get a overview of witch guild is present in the zone.
Moderator: MacroQuest Developers

Code: Select all
| guilds.mac - lists guilds in zone by blueninja
#turbo
Sub Main
/declare curid local
/declare previd local
/declare guilds array2
/declare guildcount global
/varset curid 0
/varset guildcount 0
:spawnloop
/varset previd @curid
/varset curid $searchspawn(pc,id:@curid,next)
/if n @curid==@previd /goto :breakout
/if n @curid==0 /goto :breakout
/call AddGuild "$spawn(@curid,guild)"
/goto :spawnloop
:breakout
|searchspawn won't find you so do that manually
/call AddGuild "$spawn($char(id),guild)"
/call ShowGuilds
/return
Sub ShowGuilds
/declare counter local
/for counter 0 to $calc(@guildcount-1)
/echo @guilds(@counter,0) has $int(@guilds(@counter,1))
/next counter
/return
Sub AddGuild(guildname)
/if "@guildname"==NULL /return
/declare counter local
/for counter 0 to @guildcount
:searchloop
/if "@guilds(@counter,0)"=="@guildname" {
/varadd guilds(@counter,1) 1
/return
}
/next counter
/varset guilds(@guildcount,0) "@guildname"
/varset guilds(@guildcount,1) 1
/varadd guildcount 1
/return