| Ghetto Magelo v 1.2 -vsab
| v 1.0
| - Create a "Reports" folder under your macros folder. The "magelo will go there"
| v 1.1
| - fixed stat report by including it in quotes
| - no longer says mana as that triggers autobot to report mana...
| v 1.2
| - Cobbled together inventory dumps etc as well some extra stats (from showbonuses.mac)
| TODO: The caps for stats have changed somewhat in 7 years... they are way too low now.
Sub Main()
/call ReportStat
/return
Sub ReportStat
/outputfile Inventory
/outputfile spellbook
/outputfile missingspells
/melee save
| first thing I do is report my status to /bc
/dgt all ${Me.Name} : Lvl ${Me.Level} (${Me.PctExp} %) ${Me.AAPointsTotal} AA ${Me.AAPoints} unspent AA. HP ${Me.MaxHPs} AC ? M ${Me.MaxMana}
/declare a int local 1
| Change to /declare b int local 4 if you want the "Special" tab included
/declare b int local 3
/declare AAcnt int local 0
/declare MageloIniFile string local Reports\\${Me.Name}_GhettoMagelo.txt
/ini ${MageloIniFile} Summary Stats "${Me.Name} : Lvl ${Me.Level} (${Me.PctExp} %) ${Me.AAPointsTotal} AA ${Me.AAPoints} unspent AA. HP ${Me.MaxHPs} AC ? Mana ${Me.MaxMana}"
/call DumpGems ${MageloIniFile}
/call DumpStats ${MageloIniFile}
/call DumpInventory ${MageloIniFile}
/declare AALevelStr string local
| don't need to do this bit really, it's irrelevant but it doesn't break it.
/if (${Window[AAWindow].Child[CanPurchaseFilter].Checked}) /nomodkey /notify AAWindow CanPurchaseFilter leftmouseup
/delay 10
:Loop
/if (${Window[AAWindow].Child[List${b}].List[${a}].Length}) {
/varset AALevelStr ${Window[AAWindow].Child[List${b}].List[${a}, 2]}
/if (${AALevelStr.Arg[1,"/"]}>0) {
| This should list something like "AA1=Planar Power|10|20" If you have Planar power 10/20
/ini ${MageloIniFile} AAIHave AA${AAcnt} "${Window[AAWindow].Child[List${b}].List[${a}]}|${AALevelStr.Arg[1,"/"]}|${AALevelStr.Arg[2,"/"]}"
/varcalc AAcnt ${AAcnt}+1
}
/varcalc a ${a}+1
/goto :Loop
}
/if (${b}>1) {
/varcalc b ${b}-1
/varset a 1
/goto :Loop
}
/call DumpAA ${MageloIniFile}
/mqlog Finished dump to file:${MageloIniFile}
/return
Sub DumpAA(MageloIniFile)
/declare a int local 1
/declare b int local 5
/declare AAcnt int local 1
/ini ${MageloIniFile} AAtoBuy AACount 0
/declare AALevelStr string local
/if (${Window[AAWindow].Child[CanPurchaseFilter].Checked}) /nomodkey /notify AAWindow CanPurchaseFilter leftmouseup
/delay 10
:Loop
/if (${Window[AAWindow].Child[List${b}].List[${a}].Length}) {
/varset AALevelStr ${Window[AAWindow].Child[List${b}].List[${a}, 2]}
/if (${AALevelStr.Arg[1,"/"]}<${AALevelStr.Arg[2,"/"]}) {
/ini ${MageloIniFile} AAtoBuy AA${AAcnt} "${Window[AAWindow].Child[List${b}].List[${a}]}|M|${b}"
/varcalc AAcnt ${AAcnt}+1
}
/varcalc a ${a}+1
/goto :Loop
}
/if (${b}>1) {
/varcalc b ${b}-1
/varset a 1
/goto :Loop
}
/ini ${MageloIniFile} AAtoBuy AACount ${Int[${Math.Calc[${AAcnt} -1]}]}
/return
Sub DumpGems(MageloIniFile)
/declare slot int local 1
/for slot 1 to 12
/ini ${MageloIniFile} MySpells Gem${slot} "${Me.Gem[${slot}].Name}"
/next slot
/return
Sub DumpInventory(MageloIniFile)
/declare ItemLinks int local 1
/declare inv int local 0
/declare aug int local 0
/declare tmpLine string
/for inv 0 to 22
/varset tmpLine
/if (${InvSlot[${inv}].Item.ID} ) {
/varset tmpLine ${InvSlot[${inv}].Name} -- ${InvSlot[${inv}].Item.Name}
/if (${ItemLinks}) {
/varset tmpLine ${tmpLine} -- http://eq.magelo.com/item/${InvSlot[${inv}].Item.ID}
}
/for aug 1 to 5
/if (${Me.Inventory[${inv}].Item[${aug}].ID} ) {
/varset tmpLine ${tmpLine} ( ${Me.Inventory[${inv}].Item[${aug}]}
/if (${ItemLinks}) {
/if (${Me.Inventory[${inv}].Item[${aug}].ID} ) /varset tmpLine ${tmpLine} -- http://eq.magelo.com/item/${Me.Inventory[${inv}].Item[${aug}].ID}
}
/varset tmpLine ${tmpLine} )
}
/next aug
} else {
/varset tmpLine ${InvSlot[${inv}].Name} -- EMPTY
}
/mqlog ${tmpLine}
/ini ${MageloIniFile} Inventory Slot${inv} "${tmpLine}"
/next inv
/return
Sub DumpStats(MageloIniFile)
/ini ${MageloIniFile} Currency Cash "${Me.Platinum}pp ${Me.Gold}g ${Me.Silver}s"
/ini ${MageloIniFile} Currency "Marks of Valor" ${Me.AltCurrency[Marks of Valor]}
/ini ${MageloIniFile} Currency "Remnants of Tranquility" ${Me.AltCurrency[38]}
/declare statValue int local 0
/mqlog
/mqlog Stats Bonuses:
/mqlog --------------
/mqlog HP: +${Me.HPBonus}
/varset statValue ${Me.HPBonus}
/ini ${MageloIniFile} Stats HPBonus "+${Me.HPBonus}"
/ini ${MageloIniFile} Stats ManaBonus " +${Me.ManaBonus}"
/ini ${MageloIniFile} Stats EnduranceBonus "+${Me.EnduranceBonus}"
/ini ${MageloIniFile} Stats HpRegen "+${Me.HPRegenBonus} / 45"
/ini ${MageloIniFile} Stats HAGI ${Me.HeroicAGIBonus}
/ini ${MageloIniFile} Stats HCHA ${Me.HeroicCHABonus}
/ini ${MageloIniFile} Stats HDEX ${Me.HeroicDEXBonus}
/ini ${MageloIniFile} Stats HINT ${Me.HeroicINTBonus}
/ini ${MageloIniFile} Stats HSTA ${Me.HeroicSTABonus}
/ini ${MageloIniFile} Stats HSTR ${Me.HeroicSTRBonus}
/ini ${MageloIniFile} Stats HWIS ${Me.HeroicWISBonus}
| TODO: Mana regen
/if (${Me.AltAbility[Expansive Mind]} == 25) {
/mqlog Mana Regen: +${Me.ManaRegenBonus} / 20
} else /if (${Me.AltAbility[Expansive Mind]} == 20) {
/mqlog Mana Regen: +${Me.ManaRegenBonus} / 19
} else /if (${Me.AltAbility[Expansive Mind]} == 15) {
/mqlog Mana Regen: +${Me.ManaRegenBonus} / 18
} else /if (${Me.AltAbility[Expansive Mind]} == 10) {
/mqlog Mana Regen: +${Me.ManaRegenBonus} / 17
} else /if (${Me.AltAbility[Expansive Mind]} == 5) {
/mqlog Mana Regen: +${Me.ManaRegenBonus} / 16
} else {
/mqlog Mana Regen: +${Me.ManaRegenBonus} / 15
}
| TODO: Offensive bonuses
/mqlog
/mqlog Offensive Bonuses:
/mqlog ------------------
/ini ${MageloIniFile} Stats Haste "${Math.Calc[${Me.AttackSpeed}-100].Int}%"
/if (${Me.AltAbility[Enhanced Aggression]} == 25) {
/mqlog Attack: +${Me.AttackBonus} / 300
} else /if (${Me.AltAbility[Enhanced Aggression]} == 20) {
/mqlog Attack: +${Me.AttackBonus} / 290
} else /if (${Me.AltAbility[Enhanced Aggression]} == 15) {
/mqlog Attack: +${Me.AttackBonus} / 280
} else /if (${Me.AltAbility[Enhanced Aggression]} == 10) {
/mqlog Attack: +${Me.AttackBonus} / 270
} else /if (${Me.AltAbility[Enhanced Aggression]} == 5) {
/mqlog Attack: +${Me.AttackBonus} / 260
} else {
/mqlog Attack: +${Me.AttackBonus} / 250
}
/ini ${MageloIniFile} Stats "Accuracy" "+${Me.AccuracyBonus} / 150"
/ini ${MageloIniFile} Stats "Damage Shield" "+${Me.DamageShieldBonus} / 30"
/ini ${MageloIniFile} Stats "Strikethrough" "+${Me.StrikeThroughBonus}% / 35"
/ini ${MageloIniFile} Stats "Combat Effects" "+${Me.CombatEffectsBonus} / 100?"
| TODO: Defensive bonuses
/mqlog
/mqlog Defensive Bonuses:
/mqlog ------------------
/ini ${MageloIniFile} Stats Avoidance "+${Me.AvoidanceBonus} / 100"
/ini ${MageloIniFile} Stats Shielding "+${Me.ShieldingBonus}% / 35%"
/ini ${MageloIniFile} Stats Spellshield "+${Me.SpellShieldBonus}% / 35%"
/ini ${MageloIniFile} Stats "Stun Resist" "+${Me.StunResistBonus}% / 35%"
/ini ${MageloIniFile} Stats "DoT Shielding" "+${Me.DoTShieldBonus}% / 35%"
/return