The only problem is that it seems that there is a problem with alerts not taking true names (an_orc_pawn00) but working fine with clean names (an orc pawn). i have commented the 2 areas this affects for easy fixing when the alert bug is tracked down.
Code: Select all
| track.mac Flexible bard song twister using timers by Shin Noir.
| Updated and coverted by Drax.
|
|
| Syntax: /macro track <run|add|edit|list> ["name"|key] ["description"|"name"] ["description"]
| Example: /macro track run
| Example: /macro track list
| Example: /macro track add "Some NPC Name" "Some Description"
| Example: /macro track edit 5 "Some NPC Name" "Some Description"
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#turbo 10
#define INIPATH "alert.ini" |Change this to point to your alert.ini
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sub Main
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/declare v1 global
/declare v3 global
/declare v20 global
/declare l0 global
/declare l1 global
/declare a array2
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/if "@Param0"=="add" {
/if "@Param1"=="" /call Syntax
/if "@Param2"=="" /call Syntax
/call ListKeys empty $zone
/if n $return==0 {
/echo No empty keys were found.
/endmacro
}
/ini "INIPATH" "$zone" "$int($return)" "@Param1"
/ini "INIPATH" "$zone" "i$int($return)" "@Param2"
/echo Added: Key: $int($return)
/echo - Name: @Param1
/echo - Desc: @Param2
} else /if "@Param0"=="run" {
/goto :Run
} else /if "@Param0"=="edit" {
/if n $strlen("@Param1")>3 /call Syntax
/if "@Param2"=="" /call Syntax
/if "@Param3"=="" /call Syntax
/ini "INIPATH" "$zone" "$int(@Param1)" "@Param2"
/ini "INIPATH" "$zone" "i$int(@Param1)" "@Param3"
/echo Updated: Key: $int(@Param1)
/echo - Name: @Param2
/echo - Desc: @Param3
} else /if "@Param0"=="list" {
/call ListKeys echo
} else {
/call Syntax
}
:Run
/call AlertSetup
:Loop
/if "@v1"!="$zone" /call AlertSetup |Zone Change Detected, Updating Alert list.
/call DoTracking
/goto :Loop
/return
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sub DoTracking
/for v3 1 to @a(0,0)
/if "$alert(@v3)"=="TRUE" /if @a(1,@v3)<3 /if "@a(0,@v3)"!=0 {
/if "@a(2,@v3)"!=0 {
/echo @a(0,@v3) is up. (@a(2,@v3))
} else {
/echo @a(0,@v3) is up.
}
/varset a(1,@v3) 3
}
/if "$alert(@v3)"=="FALSE" /if @a(1,@v3)>1 {
/varset a(1,@v3) 0 |If mob has been detected and now died, reset alert indicator.
/echo "@a(0,@v3) died."
}
/next v3
/return
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sub AlertSetup
|** Clear Alerts **|
/varset v1 "$zone"
/for v3 1 to 100
/varset a(0,@v3) 0 |Clear NPC name listing
/varset a(1,@v3) 0 |Clear Alert Status listing
/varset a(2,@v3) 0 |Clear Info Listing
/next v3
|** Get Alerts from alert.ini **|
/for v3 1 to 100
/if "$ini("INIPATH","$zone","@v3")"=="NOTFOUND" {
/varset a(0,0) $int($calc(@v3-1))
/goto :FoundItems
} else {
/varset a(0,@v3) "$ini("INIPATH","$zone","@v3")"
}
/next v3
:FoundItems
|** Set Alerts **|
/if @a(0,0)==0 {
/echo No NPC alerts set for $zone.
/goto :FinishedInfo
} else {
/for v3 1 to @a(0,0)
/alert clear @v3
|** changes "an orc pawn" to "an_orc_pawn" for alert setting **|
/varset v20 "@a(0,@v3)"
/varset l1 $int($strlen("@v20")-1)
/for l0 1 to @l1
| This was commented out as alert is not taking the true nemes for mobs, uncomment when fixed
| /if "$mid(@l0,1,"@v20")"==" " /varset v20 "$left(@l0,"@v20")_$right($int(@l1-@l0),"@v20")"
/next l0
/varset v20 "@v20"
|** Add alerts in "an_orc_pawn00" settings **|
|** Remove this when alert takes true names **|
/alert add @v3 npc "@v20"
|** uncomment these when alert takes true names **|
| /alert add @v3 npc "@v20""00"
| /alert add @v3 npc "@v20""01"
| /alert add @v3 npc "@v20""02"
| /alert add @v3 npc "@v20""03"
| /alert add @v3 npc "@v20""04"
| /alert add @v3 npc "@v20""05"
/doevents
/next v3
/echo @a(0,0) alerts for $zone set.
}
|** Get Info from alert.ini **|
/for v3 1 to @a(0,0)
/if "$ini("INIPATH","$zone","i@v3")"!="NOTFOUND" /varset a(2,@v3) "$ini("INIPATH","$zone","i@v3")"
/next v3
:FinishedInfo
/return
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sub ListKeys
/if "@Param0"!="echo" /if "@Param0"!="empty" {
/echo Syntax: /call ListKeys <echo|empty> <section>
/endmacro
} else /if "@Param1"=="" {
/echo Syntax: /call ListKeys <echo|empty> <section>
/endmacro
}
/varset l0 0
:Loop
/varadd l0 1
/if "@Param0"=="echo" {
/if "$ini("INIPATH","@Param1","$int(@l0)")"!="NOTFOUND" /echo Name: $ini("INIPATH","@Param1","$int(@l0)")
/if "$ini("INIPATH","@Param1","i$int(@l0)")"!="NOTFOUND" /echo Desc: i$int(@l0) :: Value: $ini("INIPATH","@Param1","$int(@l0)")
}
/if "@Param0"=="empty" /if "$ini("INIPATH","$zone","$int(@l0)")"=="NOTFOUND" /return $int(@l0)
/if n @l0<100 /goto :Loop
/return 0
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sub Syntax
/echo Syntax: /macro track <run|add|edit|list> ["name"|key] ["description"|"name"] ["description"]
/echo Example: /macro track run
/echo Example: /macro track list
/echo Example: /macro track add "Some NPC Name" "Some Description"
/echo Example: /macro track edit 5 "Some NPC Name" "Some Description"
/endmacro
/return
Code: Select all
#########################
# Alert.ini #
#########################
# By: Shin Noir #
# ShinNoir@hotmail.com #
#########################
#Alert Setup Example:
#
#Syntax:
#[Zone Name]
#<#>=<spawn name>
#<i#>=<spawn desc>
#
#[South Ro]
#1=an Ancient Cyclops
#i1=Jboots quest. Drops Ring of the Ancients
#
#[Dreadlands]
#1=Gorenaire
#2=Veltar
#i2=Used in a monk quest.
#
#[North Karana]
#1=Quillmane
#
#Note: Avoid using [] and " inside descriptions..
#Note: Partial names work too! "Ancient" for an Ancient Cyclops should be fine.
[Acrylia Caverns]
1=a Restless Burrower
2=Khati Sha the Twisted
3=Spiritist Andro Shimi
4=Spiritist Kama Rasan
5=An Evolved Burrower
[Ak'Anon]
[Akheva Ruins]
1=Dyn
2=Itraer
[Torden, The Bastion of Thunder]
1=Oreen Wavecrasher
i1=Can drop Belt of Thunderous Aurs (ft2 belt), rune, ornate, plus more!]
2=Riodhr Torrentwind
i2=Ornate, 25hp ranged priest, priest shoulders
3=Agnarr the Storm Lord
[Befallen]
[Beholders Maze]
[Black Burrow]
[Burning Woods]
[Butcherblock Mountains]
[Cabilis East]
[Cabilis West]
[Cazic Thule]
[Charasis]
[Chardok]
[Chardok, Halls of Betrayal]
[City of Mist]
[Cobalt Scar]
1=Kelorek
[Crushbone]
[Crypt of Dalnir]
1=Lumpy
2=Pankeeper
3=Imprecator
4=Revenant
5=Crusader
6=Blacksmith
7=The Kly
[Crypt of Nadox]
[Crystal Caverns]
[Dagnors Cauldron]
[Dawnshroud Peaks]
[Doomfire, The Burning Lands]
1=Blazzax the Omnifiend
2=Criare Sunmane
3=General Druav Flamesinger
4=General Reparm
5=Jaxoliz Dawneyes
6=Magmaton
7=Pyronis
8=Javonn the Overlord
9=Hebabbilys the Ragelord
10=Babnoxis the Spider Queen
11=Quavonis Firetail
12=Omni Magus Crato
13=Reaxnous the Chaoslord
14=Javonn the Overlord
15=Warlord Prollaz
[Dragon Necropolis]
1=Zlandicar
[Dreadlands]
1=Gorenaire
[Drunder, Fortress of Zek]
1=Tallon Zek
2=Rallos Zek the Warlord
3=Vallon Zek
[Dulak's Harbor]
[East Commonlands]
1=Griffon
[Eastern Karana]
[Eastern Wastes]
1=Kodiak
2=Rodrick
3=Gloridin
[Echo Caverns]
[Emerald Jungle]
[Erudin]
[Erudin Palace]
[Eruds Crossing]
[Eryslai, the Kingdom of Wind]
1=Baltaldor the Cursed
2=Constable Alranderisan
3=Gakamenial Fir'Disralsi
4=Xegony the Queen of Air
5=Inlokher the Warlord
6=Queen Silandria
7=Lossenmachar
8=Pherlondien Clawpike
9=Rinturion Windblade
10=Sigismond Windwalker
[Everfrost Peaks]
[The Feerrott]
1=A Tae Ew Crusader
i1=Drops decaying armor
[Felwithe]
[Field of Bone]
[Firiona Vie]
1=Champion
[Freeport East]
[Freeport North]
[Freeport West]
[Frontier Mountains]
1=Rockwolf
2=Slayer
3=Boogoog
4=Joojooga
5=Miklek
6=Prospector
7=Dustback
8=Slithinis
[Fungus Grove]
[Great Divide]
1=Blizzent
2=Shardwurm Broodmother
[Greater Faydark]
[Grieg's End]
[Grimling Forest]
[Gukta, Outpost of Marr]
[Gulf of Gunthak]
[Halas]
[Hate's Fury]
[Highhold Pass]
[Highpass Keep]
[Hollowshade Moor]
[Iceclad Ocean]
[Icewell Keep]
[Innothule Swamp]
[Jaggedpine Forest]
[Kael Drakkal]
1=The Avatar of War
2=The Idol of Rallos zek
3=The Statue of Rallos Zek
4=Derakor the Vindicator
5=King Tormax
[Kaesora]
[Kaladim North]
[Kaladim South]
[Karnor's Castle]
1=Verix
i1=Part of Veeshan's Peak key
2=Hangnail
3=Venril
4=Shwiatkiapo
5=Wulfware
6=Skeleton
7=Jailer
8=Turnkey
9=Warlord
[Katta Castellum]
1=Lcea Katta
[Kedge Keep]
[Kerafyrm's Lair]
[Kerra Island]
[Kithicor Forest]
[Kurn's Tower]
[Lair of Terris Thule]
[Lake of Ill Omen]
[Lake Rathetear]
[Lavastorm Mountains]
[Lesser Faydark]
[Lower Guk]
[Marus Seru]
[Mines of Nurga]
[Mistmoore Castle]
[Misty Thicket]
[Mons Letalis]
[Nagafen's Lair: The Caverns of Exile]
[Nagafen's Lair]
[Najena]
[Nektulos Forest]
[Neriak Third Gate]
1=Verina Tomb
i1=Enchanter Epic chick
[Neriak Commons]
[Neriak Foreign Quarter]
[Netherbian Lair]
[North Ro]
1=Sand Giant
2=Dorn B`Dynn
[North Karana]
[Oasis of Marr]
1=a Sand Giant
[Ocean of Tears]
[Oggok]
[Old Sebilis]
[Paineel]
[Paladul Caverns]
[Permafrost]
[Plane of Disease]
1=Grummus
[Plane of Fear]
[Plane of Growth]
[Plane of Hate]
[Plane of Innovation]
1=Xanamech Nexmirthafen
2=Manaetic Behemoth
[Plane of Justice]
[Plane of Knowledge]
[Plane of Mischief]
[Plane of Nightmare]
[Plane of Sky]
[Plane of Storms]
1=Bittrik the Unkempt
2=Dolshak the Ornery
3=Drormok Tok Vo'Lok
4=Falto, Lord of Thunder
5=Faruek the Bold
6=Grok
7=Gurebk, Lord of Krendic
8=Jeplak, lord of Srerendi
9=Krelk the Drifter
10=Laruken the Rigid
11=Ston`Ruak, Ancient of Trees
[Plane of Time]
[Plane of Torment]
1=Ta`Grusch the Abomination
2=Saryrn
3=The Keeper of Sorrows
4=Sorrowsong
[Plane of Tranquility]
[Plane of Valor]
1=Aerin`Dar
[Qeynos Aqueducts]
[Qeynos Hills]
[Qeynos North]
[Qeynos South]
[Ragrax, Stronghold of the Twelve]
1=Avatar of Earth
2=Essence of Earth
3=Guardian of the Twelve
4=Keeper of Earth
5=War Chieftan Awisano
6=War Chieftan Birak
7=War Chieftan Galronar
8=Warlord Gintolaken
[Mountains of Rathe]
1=Brother Zephyl
i1=Monk epic dude
2=Rharzar
i2=SK epic drake
3=Shardwing
i3=Bard epic drake
[Reef of Coirnav]
[Rivervale]
[Ruins of Lxanvom]
[Runnyeye]
[Sanctus Seru]
[Shadeweaver's Thicket]
[Shadow Haven]
[Shar Vahl]
[Sirens Grotto]
1=Shimmering Sea Spirit
i1=DotB dropper and such
[Skyfire Mountains]
1=Eldrig the Old
i1=Bard Epic Drake
2=Faerie of Dismay
i2=Various Kunark spell dropper
3=Felia Goldenwing
i3=Part of chanter epic (chanter charms him)
4=Guardian of Felia
i4=spell dropper
5=Talendor
6=Zordakalicus Ragefire
i6=Rage in Dragon form
[Skyshrine]
[Soluseks Eye]
[South Karana]
1=Quillmane
1i=MAGE EPIC kill@!
2=an escaped Splitpaw gnoll
2i=Quillmane trigger
3=Shaman Lenrel
4=Shaman Ren`Rex
5=High Shaman Grisok
6=High Shaman Phido
[South Ro]
1=Cyclops
2=Sand Giant
i1=Drops Jboots Ring
[Southern Karana]
[Splitpaw Lair]
1=Ishva Mal
i1=Can drop Robe of Ishva
[Ssraeshza Temple]
1=a Glyphed Covered Serpent
i1=Part of Cursed Cycle
2=Arch Lich Rhag`Zadune
i2=AL himself
3=Blood of Ssraeshza
i3=Trigger for emp (if he's up)
4=Commander Zazuzh
i4=Com1 or 2
5=Commander Zherozsh
i5=Com1 or 2
6=Disciple Yelwinz
i6=Drops Voice of the Serpent
7=Emperor Ssraeshza
i7=Big Man himself
8=High Priest of Ssraeshza
i8=HP
9=Vyzh'dra the Exiled
i9=Part of Cursed Cycle
10=Vyzh`dra the Cursed
i10=Cursed himself
11=Xerkizh the Creator
i11=XTC
[Steamfont]
[Stonebrunt Mountains]
[Surefall Glades]
[Swamp of No Hope]
[Temple of Droga]
[Temple of Solusek Ro]
[Temple of Veeshan]
1=Aaryonar
i1=Guardian of NToV
2=Casalen
i2=HoT named
3=Cekenar
i3=NToV item dropper
4=Dagarn the Destroyer
i4=NToV dragon
5=Dozekar the Cursed
i5=Tears holder in HoT
6=Eashen of the Sky
i6=Drake in NtoV
7=Essedera
i7=Named in HoT
8=Gozzrem
i8=WToV dragon
9=Grozzmel
i9=Named in HoT
10=Ikatiar the Venom
i10=Wyvern in NToV
11=Jorlleag
i11=NToV dragon
12=Krigara
i12=Named in HoT
13=Lady Mirenilla
i13=NToV dragon
14=Lady Nevederia
i14=NToV dragon
15=Lendiniara the Keeper
i15=ST key dropper, WToV dragon
16=Lepethida
i16=Named in HoT
17=Lord Feshlak
i17=NToV dragon
18=Lord Koi`Doken
i18=NToV dragon
19=Lord Kreizenn
i19=NToV dragon
20=Lord Vyemm
i20=NToV dragon
21=Sevalak
i20=NToV dragon
22=Tavekalem
i22=HoT named
23=Telkorenar
i23=WToV dragon
24=Meldikor the Windchaser
i24=HoT named
25=Vulak`Aerr
i25=Big man himself
26=Ymmeln
i26=HoT named
27=Zemm
i27=HoT named
28=Zlexak
i28=HoT named
[The Bazaar]
[The Deep]
[The Grey]
[The Hole]
[The Maiden's Eye]
[The Nexus]
[The Overthere]
1=Kurron Ni
[The Scarlet Desert]
[The Tenebrous Mountains]
[The Twilight Sea]
[The Umbral Plains]
[Thurgadin]
[Timorous Deep]
[Torgiran Mines]
[Tower of Frozen Shadow]
[Tower of Solusek Ro]
1=Arlyxir
2=Balrezu
3=Galremos
4=Instadis
5=Jiva
6=Naelizar
7=Quazlith
8=Rizlona
9=Solusek Ro
10=Xuzl
11=Veleroth
[Toxxulia Forest]
[Trakanon's Teeth]
1=Ebon Lotus
i1=Plant, drops Ropy Tendril, part of Hunter Cycle
2=Sigra
i2=Cat, drops Silken Cat Fur Girdle, part of Hunter Cycle
3=Trakansaurus Rex
i3=Raptor, drops Trakasaurs Tooth, part of Hunter Cycle
4=Stonebeak
i4=Bird, part of Hunter Cycle
5=Master Fasliw
i5=Monk, part of Hunter Cycle
6=Keeper Sepsis
i6=Necro, part of Hunter Cycle
7=Oracle Froskil
i7=Shaman, part of Hunter Cycle
8=Dreadlord Dekr
i8=SK, part of Hunter Cycle
9=Vessel Fryn
i9=Shaman, part of Hunter Cycle
10=Ffroaak
i10=Wizard, part of Hunter Cycle
11=Harbinger Josk
i11=Necro, part of Hunter Cycle
12=Knight Dragol
i12=Warrior, part of Hunter Cycle
13=Heirophant Ixyl
i13=Shaman, part of Hunter Cycle
14=Throkkok
i14=Warrior, part of Hunter Cycle
15=Doom
i15=Warrior, part of Hunter Cycle
16=Keeper Lasnik
i16=Wizard, drops Lasniks Staff, part of Forager Cycle
17=Crusader Zoglic
i17=SK, drops Iksar Ceremonial Breastplate, part of Forager Cycle
18=Dreadlord Fanrik
i18=SK, drops Grim Paldrons, part of Forager Cycle
19=Hangman
i19=Plant, drops Hangmans Noose, part of Forager Cycle
20=Champion Thenrin
i20=Warrior, drops Ghostly Robes, part of Forager Cycle
21=Harbinger Dronik
i21=Wizard, drops Iksar Hide Mask, part of Forager Cycle
22=Klok Denris
i22=Warrior, drops Korzanz Kitiourkl, part of Forager Cycle
23=Bloodeye
i23=Raptor, drops Trakanasaur Armors, part of Forager Cycle
24=Titail Sinok
i24=Monk, drops Meditative Blanket, part of Forager Cycle
25=Squire Glik
i25=Warrior, drops Gleaming Short Sword, part of Forager Cycle
26=Champion Arlek
i26=Warrior, drops Knobbed Warclub, part of Forager Cycle
27=Silvermane
i27=Cat, drops Sabertooth Amulet, part of Forager Cycle
28=Commander Sils
i28=Warrior, part of Forager Cycle
29=Thruke
i29=Ranger, part of Forager Cycle
30=Dragontail
i30=Bird, part of Forager Cycle
31=Flayhte
i31=Warrior, part of Forager Cycle
32=froglok Forager
33=froglok Hunter
[Umbral Plains]
1=Zelnithak
i1=Geraffe thingie drops a decent range FT slot
2=Tawro Icequake
i2=Spawns Spirit of Tawro who drops decent junk
3=Spirit of Tawro
i3=Spawned from killing Tawro Icequake, drops decent junk
4=Radir Fireshower
i4=Spawns Spirit of Radir, decent junk
5=Spirit of Radir
i5=Spawned from killing Radir Fireshower, decent junk
6=Doomshade
i6=Spawned by Darkmasters, good stuff
7=A Dark Master
i7=Spawns Doomshade when killed
8=Rumblecrush
i8=Good drops
[Unrest]
[Upper Guk]
1=a Froglok Gaz Squire
i1=Drops Runed Bone Fork
2=a Froglok Shin Lord
i2=Drops Ghoulbane for SK epic
3=a Froglok Summoner
i3=Drops Brazier of Elemental Summoning
4=an Ancient Croc
i4=Drops decent wis legs
[Veeshan's Peak]
[Vegarison, the Earthen Badlands]
1=Derugoak Bloodwalker
2=Galsinak Earthrumble
3=Glimmerstone
4=Peregrin Rockskull
5=Tantisala Jaggedtooth
6=The Living Earth
7=Tribal Leader Diseranon
[Veksar]
[Velketor's Labyrinth]
[Vex Thal]
1=Aten Ha Ra
2=Diabo Xi Va
3=Diabo Xi Xin
4=Va Xi Aten Ha Ra
[Wakening Land]
1=Wuoshi
i1=Green shaman dragon at druid portal
2=Rapticor
i2=Drops guts for Shackles
[Warrens]
1=King Gragnar
i1=Drops various goodies, mainly insta clicky darkness
[Warsliks Woods]
1=Grachnist The Destroyer
i1=Drops Gobby skull Earring
[West Commonlands]
[Western Karana]
[Western Wastes]
1=Sontalak
i1=Guard of ToV
2=Stronghorn
i2=Neat rhino
3=Tantor
i3=Neat Mammoth
4=Klandicar
i4=Dragon nec guardian
5=Scout Charisa
i5=Nice quest for SS bracer

