Down and Holy shit builder

Wolfborn

New member
Joined
Jun 1, 2013
Messages
145
Reaction score
5
Points
0
Location
Texas of course!
The other day I made 5 new accounts with 5 new toons and began leveling them up.
As they leveled I made downshts and holyshits for them.
Tedious and time consuming to say the least.
So on Sunday I set out to make some code that would create them for me.

I put together a macro that would inventory spells memmed and clickies worn.
Then took that information and made a little program in VB that would generate the Downshits and Holyshits.
At the moment it's pretty simple.
Detrimental spells get put in Holyshits.
Beneficial spells get put in Downshits.
Pet spells are handled with /target ${Me.Spawn.Pet.CleanName}
Targeted single and group spells are handled with /target ${Me.CleanName}
Discs are setup as Holyshits. Will need modification.

It does not check for duplicate spells such as some items have the same click effect.
It does not handle AA at the moment.
It generates generic code.
Clicky items are pretty much ready to go as generated.
Buffs may need mana checks modified
Nukes will need MobHPs and mana checked and possibly other conditions added

Definitely saves a ton of time and eliminate errors in syntax and spelling.

Shits generated from 100 SK.

Code:
Downshitif=${If[!${Select[${Zone.ID},151,202,203,219,344,345,463,33480,33113]} && !${Me.Moving} && ${Me.Standing} && !${Me.Invis},1,0]}
Downflag0=1
Downshit0=/if (!${Me.Buff[Grelleth's Skin].ID} && ${Me.PctMana}>30 && ${Cast.Ready[Grelleth's Skin]} && ${Spell[Grelleth's Skin].Stacks}) /casting "Grelleth's Skin" gem2
Downflag1=1
Downshit1=/if (!${Me.Buff[Steadfast Stance].ID} && ${Me.PctMana}>30 && ${Cast.Ready[Steadfast Stance]} && ${Spell[Steadfast Stance].Stacks}) /casting "Steadfast Stance" gem8
Downflag2=1
Downshit2=/if (!${Me.Buff[Might of Stone IV].ID} && ${Cast.Ready[Jade Speckled Earhoop]} && ${Spell[Might of Stone IV].Stacks}) /casting "Jade Speckled Earhoop" item
Downflag3=1
Downshit3=/if (!${Me.Buff[Guardian Circle I].ID} && ${Cast.Ready[Guise of Dark Lies]} && ${Spell[Guardian Circle I].Stacks}) /casting "Guise of Dark Lies" item
Downflag4=1
Downshit4=/if (!${Me.Buff[Might of Stone IV].ID} && ${Cast.Ready[Jade Inlaid Earhoop]} && ${Spell[Might of Stone IV].Stacks}) /casting "Jade Inlaid Earhoop" item
Downflag5=1
Downshit5=/if (!${Me.Buff[Myrmidon's Skill VI].ID} && ${Cast.Ready[Bubbling Shoulderpads]} && ${Spell[Myrmidon's Skill VI].Stacks}) /casting "Bubbling Shoulderpads" item
Downflag6=1
Downshit6=/if (!${Me.Buff[Illusionary Spikes VI].ID} && ${Cast.Ready[Vile Fin Cloak]} && ${Spell[Illusionary Spikes VI].Stacks}) /casting "Vile Fin Cloak" item
Downflag7=1
Downshit7=/if (!${Me.Buff[Prismatic Ward I].ID} && ${Cast.Ready[Gilded Bow of the Hunter]} && ${Spell[Prismatic Ward I].Stacks}) /casting "Gilded Bow of the Hunter" item
Downflag8=1
Downshit8=/if (!${Me.Buff[Knowledge of the Past X].ID} && ${Cast.Ready[Wrapping Antennae]} && ${Spell[Knowledge of the Past X].Stacks}) /casting "Wrapping Antennae" item
Downflag9=1
Downshit9=/if (!${Me.Buff[Knowledge of the Past IX].ID} && ${Cast.Ready[Band of Minimal Effort]} && ${Spell[Knowledge of the Past IX].Stacks}) /casting "Band of Minimal Effort" item
Downflag10=1
Downshit10=/if (!${Me.Buff[Baleful Rapacity].ID} && ${Cast.Ready[Twilight Breastplate of the Revenant]} && ${Spell[Baleful Rapacity].Stacks}) /casting "Twilight Breastplate of the Revenant" item
Downflag11=1
Downshit11=/if (!${Me.Buff[Expanding Mind VI].ID} && ${Cast.Ready[Snow Cord]} && ${Spell[Expanding Mind VI].Stacks}) /casting "Snow Cord" item


; holyflagX=1
; holyshitX=/if (${Target.PctHPs}<30 && ${Target.Fleeing} && ${Cast.Ready[PUT YOUR SNARE OR DARKNESS SPELL HERE]} && ${Target.Speed}<50) /casting "PUT YOUR SNARE OR DARKNESS SPELL HERE"
Holyflag0=1
Holyshit0=/if (${Target.PctHPs}<90 && ${Me.PctMana}>30 && ${Cast.Ready[Terror of Poira]}) /casting "Terror of Poira" gem1
Holyflag1=1
Holyshit1=/if (${Target.PctHPs}<90 && ${Me.PctMana}>30 && ${Cast.Ready[Dire Stricture]}) /casting "Dire Stricture" gem4
Holyflag2=1
Holyshit2=/if (${Target.PctHPs}<90 && ${Me.PctMana}>30 && ${Cast.Ready[Touch of Lanys]}) /casting "Touch of Lanys" gem5
Holyflag3=1
Holyshit3=/if (${Target.PctHPs}<90 && ${Me.PctMana}>30 && ${Cast.Ready[Demand for Power]}) /casting "Demand for Power" gem7
Holyflag4=1
Holyshit4=/if (${Target.PctHPs}<90 && ${Me.PctMana}>30 && ${Cast.Ready[Spike of Disease]}) /casting "Spike of Disease" gem11
Holyflag5=1
Holyshit5=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Final Breath]} && ${Me.CurrentEndurance}>188 && ${Melee.DiscID}==0) /casting "Final Breath" disc
Holyflag6=1
Holyshit6=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Withstand]} && ${Me.CurrentEndurance}>342 && ${Melee.DiscID}==0) /casting "Withstand" disc
Holyflag7=1
Holyshit7=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Last Gasp]} && ${Me.CurrentEndurance}>150 && ${Melee.DiscID}==0) /casting "Last Gasp" disc
Holyflag8=1
Holyshit8=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Rigor Mortis]} && ${Me.CurrentEndurance}>150 && ${Melee.DiscID}==0) /casting "Rigor Mortis" disc
Holyflag9=1
Holyshit9=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Last Breath]} && ${Me.CurrentEndurance}>120 && ${Melee.DiscID}==0) /casting "Last Breath" disc
Holyflag10=1
Holyshit10=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Defy]} && ${Me.CurrentEndurance}>274 && ${Melee.DiscID}==0) /casting "Defy" disc
Holyflag11=1
Holyshit11=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Renounce]} && ${Me.CurrentEndurance}>284 && ${Melee.DiscID}==0) /casting "Renounce" disc
Holyflag12=1
Holyshit12=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Gouging Blade]} && ${Me.CurrentEndurance}>338 && ${Melee.DiscID}==0) /casting "Gouging Blade" disc
Holyflag13=1
Holyshit13=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Undivided Acrimony]} && ${Me.CurrentEndurance}>431 && ${Melee.DiscID}==0) /casting "Undivided Acrimony" disc
Holyflag14=1
Holyshit14=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Final Gasp]} && ${Me.CurrentEndurance}>193 && ${Melee.DiscID}==0) /casting "Final Gasp" disc
Holyflag15=1
Holyshit15=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Crimson Blade]} && ${Me.CurrentEndurance}>3950 && ${Melee.DiscID}==0) /casting "Crimson Blade" disc
Holyflag16=1
Holyshit16=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Reflexive Rancor]} && ${Me.CurrentEndurance}>355 && ${Melee.DiscID}==0) /casting "Reflexive Rancor" disc
Holyflag17=1
Holyshit17=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Reprove]} && ${Me.CurrentEndurance}>294 && ${Melee.DiscID}==0) /casting "Reprove" disc
Holyflag18=1
Holyshit18=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Terminal Breath]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Terminal Breath" disc
Holyflag19=1
Holyshit19=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Scarlet Blade]} && ${Me.CurrentEndurance}>4088 && ${Melee.DiscID}==0) /casting "Scarlet Blade" disc
Holyflag20=1
Holyshit20=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Unbroken Acrimony]} && ${Me.CurrentEndurance}>446 && ${Melee.DiscID}==0) /casting "Unbroken Acrimony" disc
Holyflag21=1
Holyshit21=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Gashing Blade]} && ${Me.CurrentEndurance}>350 && ${Melee.DiscID}==0) /casting "Gashing Blade" disc
Holyflag22=1
Holyshit22=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Deflection Discipline]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Deflection Discipline" disc
Holyflag23=1
Holyshit23=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Leechcurse Discipline]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Leechcurse Discipline" disc
Holyflag24=1
Holyshit24=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Soul Guard]} && ${Me.CurrentEndurance}>1800 && ${Melee.DiscID}==0) /casting "Soul Guard" disc
Holyflag25=1
Holyshit25=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Ichor Guard]} && ${Me.CurrentEndurance}>1100 && ${Melee.DiscID}==0) /casting "Ichor Guard" disc
Holyflag26=1
Holyshit26=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Soul Shield]} && ${Me.CurrentEndurance}>3000 && ${Melee.DiscID}==0) /casting "Soul Shield" disc
Holyflag27=1
Holyshit27=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Respite]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Respite" disc
Holyflag28=1
Holyshit28=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Reprieve]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Reprieve" disc
Holyflag29=1
Holyshit29=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Rest]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Rest" disc
Holyflag30=1
Holyshit30=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Fearless Discipline]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Fearless Discipline" disc
Holyflag31=1
Holyshit31=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Malarian Carapace]} && ${Me.CurrentEndurance}>6853 && ${Melee.DiscID}==0) /casting "Malarian Carapace" disc
Holyflag32=1
Holyshit32=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Malarian Mantle]} && ${Me.CurrentEndurance}>6853 && ${Melee.DiscID}==0) /casting "Malarian Mantle" disc
Holyflag33=1
Holyshit33=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Umbral Carapace]} && ${Me.CurrentEndurance}>5618 && ${Melee.DiscID}==0) /casting "Umbral Carapace" disc
Holyflag34=1
Holyshit34=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Soul Carapace]} && ${Me.CurrentEndurance}>5040 && ${Melee.DiscID}==0) /casting "Soul Carapace" disc
Holyflag35=1
Holyshit35=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Gorgon Mantle]} && ${Me.CurrentEndurance}>5738 && ${Melee.DiscID}==0) /casting "Gorgon Mantle" disc
Holyflag36=1
Holyshit36=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Recondite Mantle]} && ${Me.CurrentEndurance}>5939 && ${Melee.DiscID}==0) /casting "Recondite Mantle" disc
Holyflag37=1
Holyshit37=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Bonebrood Mantle]} && ${Me.CurrentEndurance}>6147 && ${Melee.DiscID}==0) /casting "Bonebrood Mantle" disc
Holyflag38=1
Holyshit38=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Gorgon Carapace]} && ${Me.CurrentEndurance}>1979 && ${Melee.DiscID}==0) /casting "Gorgon Carapace" disc
Holyflag39=1
Holyshit39=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Sholothian Carapace]} && ${Me.CurrentEndurance}>2048 && ${Melee.DiscID}==0) /casting "Sholothian Carapace" disc
Holyflag40=1
Holyshit40=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Unholy Guardian Discipline]} && ${Me.CurrentEndurance}>4845 && ${Melee.DiscID}==0) /casting "Unholy Guardian Discipline" disc
Holyflag41=1
Holyshit41=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Grelleth's Carapace]} && ${Me.CurrentEndurance}>2120 && ${Melee.DiscID}==0) /casting "Grelleth's Carapace" disc
Holyflag42=1
Holyshit42=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Resistant Discipline]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Resistant Discipline" disc
Holyflag43=1
Holyshit43=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Unholy Aura Discipline]} && ${Me.CurrentEndurance}>900 && ${Melee.DiscID}==0) /casting "Unholy Aura Discipline" disc

Bottom line is it saves time and frustration.

How to use:
1. Put the shitsBuilder.mac macro in your /macro folder.
2. Copy the ShitsBuilder.exe to the folder of your choice. (PM me for source code)
3. Log in the toon you want to generate shits for.
4. Mem only the spells you want to use. Both damage and buffs.
5. Equip the items you want to fire. ie.. equip epic for macro and it will be clicked from inventory.
6. Run the macro /mac ShitsBuilder
7. Run ShitsBuilder.exe, select the TOON_SERVER_Shits.ini file from the /macro folder
8. Click the MAKE MY SHITS button.
9. Go to your /macro folder and find the new file, TOON_SERVER_Shits.txt
10. Copy paste the shits into your SERVER_TOON.ini file in the root MQ2 folder
11. Check all the lines for duplicates, correct numbers ie.. downshit0=XXX, downshit1=XXX, auras and mana/mobHP level checks.
12. Go have fun :)

Not sure what the policy is on giving out exe
I've put it here but if it's against some policy, let me know and I'll take it down.
If you prefer I can send you the code to compile yourself.

EDIT:
Latest version uploaded.
 

Attachments

  • ShitsBuilder.mac
    6.4 KB · Views: 159
  • ShitsBuilder.exe
    165 KB · Views: 167
Last edited:
  • Love
Reactions: EQDAB
Nicely done. I was trying to do the same thing all inside MQ but couldn't quite get it done.
 
Spent some time working on getting Discs working.

It works but greatly increases the workload on the user.
Going through 40 discs deciding which ones to keep, modifying the END checks ets.. it takes a bit but at least they are all there and spelled correctly.

Latest version is in first post.

If you've used the first version. Delete all files and download fresh.
Also delete the files generated with the first version
SERVER_TOON_Shits.ini
SERVER_TOON_Shits.txt

I threw in a few tid bits at the end of the file to help with modifying the shits.
Makes it easy to copy paste such as ${Target.Named} etc...
Maybe even find some you didn't know existed.

Output from 100 SK

Code:
Downshitif=${If[!${Select[${Zone.ID},151,202,203,219,344,345,463,33480,33113]} && !${Me.Moving} && ${Me.Standing} && !${Me.Invis},1,0]}
Downflag0=1
Downshit0=/if (!${Me.Buff[Grelleth's Skin].ID} && ${Me.PctMana}>30 && ${Cast.Ready[Grelleth's Skin]} && ${Spell[Grelleth's Skin].Stacks}) /casting "Grelleth's Skin" gem2
Downflag1=1
Downshit1=/if (!${Me.Buff[Steadfast Stance].ID} && ${Me.PctMana}>30 && ${Cast.Ready[Steadfast Stance]} && ${Spell[Steadfast Stance].Stacks}) /casting "Steadfast Stance" gem8
Downflag2=1
Downshit2=/if (!${Me.Buff[Might of Stone IV].ID} && ${Cast.Ready[Jade Speckled Earhoop]} && ${Spell[Might of Stone IV].Stacks}) /casting "Jade Speckled Earhoop" item
Downflag3=1
Downshit3=/if (!${Me.Buff[Guardian Circle I].ID} && ${Cast.Ready[Guise of Dark Lies]} && ${Spell[Guardian Circle I].Stacks}) /casting "Guise of Dark Lies" item
Downflag4=1
Downshit4=/if (!${Me.Buff[Might of Stone IV].ID} && ${Cast.Ready[Jade Inlaid Earhoop]} && ${Spell[Might of Stone IV].Stacks}) /casting "Jade Inlaid Earhoop" item
Downflag5=1
Downshit5=/if (!${Me.Buff[Myrmidon's Skill VI].ID} && ${Cast.Ready[Bubbling Shoulderpads]} && ${Spell[Myrmidon's Skill VI].Stacks}) /casting "Bubbling Shoulderpads" item
Downflag6=1
Downshit6=/if (!${Me.Buff[Illusionary Spikes VI].ID} && ${Cast.Ready[Vile Fin Cloak]} && ${Spell[Illusionary Spikes VI].Stacks}) /casting "Vile Fin Cloak" item
Downflag7=1
Downshit7=/if (!${Me.Buff[Prismatic Ward I].ID} && ${Cast.Ready[Gilded Bow of the Hunter]} && ${Spell[Prismatic Ward I].Stacks}) /casting "Gilded Bow of the Hunter" item
Downflag8=1
Downshit8=/if (!${Me.Buff[Knowledge of the Past X].ID} && ${Cast.Ready[Wrapping Antennae]} && ${Spell[Knowledge of the Past X].Stacks}) /casting "Wrapping Antennae" item
Downflag9=1
Downshit9=/if (!${Me.Buff[Knowledge of the Past IX].ID} && ${Cast.Ready[Band of Minimal Effort]} && ${Spell[Knowledge of the Past IX].Stacks}) /casting "Band of Minimal Effort" item
Downflag10=1
Downshit10=/if (!${Me.Buff[Baleful Rapacity].ID} && ${Cast.Ready[Twilight Breastplate of the Revenant]} && ${Spell[Baleful Rapacity].Stacks}) /casting "Twilight Breastplate of the Revenant" item
Downflag11=1
Downshit11=/if (!${Me.Buff[Expanding Mind VI].ID} && ${Cast.Ready[Snow Cord]} && ${Spell[Expanding Mind VI].Stacks}) /casting "Snow Cord" item


; holyflagX=1
; holyshitX=/if (${Target.PctHPs}<30 && ${Target.Fleeing} && ${Cast.Ready[PUT YOUR SNARE OR DARKNESS SPELL HERE]} && ${Target.Speed}<50) /casting "PUT YOUR SNARE OR DARKNESS SPELL HERE"
Holyflag0=1
Holyshit0=/if (${Target.PctHPs}<90 && ${Me.PctMana}>30 && ${Cast.Ready[Terror of Poira]}) /casting "Terror of Poira" gem1
Holyflag1=1
Holyshit1=/if (${Target.PctHPs}<90 && ${Me.PctMana}>30 && ${Cast.Ready[Dire Stricture]}) /casting "Dire Stricture" gem4
Holyflag2=1
Holyshit2=/if (${Target.PctHPs}<90 && ${Me.PctMana}>30 && ${Cast.Ready[Touch of Lanys]}) /casting "Touch of Lanys" gem5
Holyflag3=1
Holyshit3=/if (${Target.PctHPs}<90 && ${Me.PctMana}>30 && ${Cast.Ready[Demand for Power]}) /casting "Demand for Power" gem7
Holyflag4=1
Holyshit4=/if (${Target.PctHPs}<90 && ${Me.PctMana}>30 && ${Cast.Ready[Spike of Disease]}) /casting "Spike of Disease" gem11
Holyflag5=1
Holyshit5=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Final Breath]} && ${Me.CurrentEndurance}>188 && ${Melee.DiscID}==0) /casting "Final Breath" disc
Holyflag6=1
Holyshit6=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Withstand]} && ${Me.CurrentEndurance}>342 && ${Melee.DiscID}==0) /casting "Withstand" disc
Holyflag7=1
Holyshit7=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Last Gasp]} && ${Me.CurrentEndurance}>150 && ${Melee.DiscID}==0) /casting "Last Gasp" disc
Holyflag8=1
Holyshit8=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Rigor Mortis]} && ${Me.CurrentEndurance}>150 && ${Melee.DiscID}==0) /casting "Rigor Mortis" disc
Holyflag9=1
Holyshit9=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Last Breath]} && ${Me.CurrentEndurance}>120 && ${Melee.DiscID}==0) /casting "Last Breath" disc
Holyflag10=1
Holyshit10=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Defy]} && ${Me.CurrentEndurance}>274 && ${Melee.DiscID}==0) /casting "Defy" disc
Holyflag11=1
Holyshit11=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Renounce]} && ${Me.CurrentEndurance}>284 && ${Melee.DiscID}==0) /casting "Renounce" disc
Holyflag12=1
Holyshit12=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Gouging Blade]} && ${Me.CurrentEndurance}>338 && ${Melee.DiscID}==0) /casting "Gouging Blade" disc
Holyflag13=1
Holyshit13=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Undivided Acrimony]} && ${Me.CurrentEndurance}>431 && ${Melee.DiscID}==0) /casting "Undivided Acrimony" disc
Holyflag14=1
Holyshit14=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Final Gasp]} && ${Me.CurrentEndurance}>193 && ${Melee.DiscID}==0) /casting "Final Gasp" disc
Holyflag15=1
Holyshit15=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Crimson Blade]} && ${Me.CurrentEndurance}>3950 && ${Melee.DiscID}==0) /casting "Crimson Blade" disc
Holyflag16=1
Holyshit16=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Reflexive Rancor]} && ${Me.CurrentEndurance}>355 && ${Melee.DiscID}==0) /casting "Reflexive Rancor" disc
Holyflag17=1
Holyshit17=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Reprove]} && ${Me.CurrentEndurance}>294 && ${Melee.DiscID}==0) /casting "Reprove" disc
Holyflag18=1
Holyshit18=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Terminal Breath]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Terminal Breath" disc
Holyflag19=1
Holyshit19=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Scarlet Blade]} && ${Me.CurrentEndurance}>4088 && ${Melee.DiscID}==0) /casting "Scarlet Blade" disc
Holyflag20=1
Holyshit20=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Unbroken Acrimony]} && ${Me.CurrentEndurance}>446 && ${Melee.DiscID}==0) /casting "Unbroken Acrimony" disc
Holyflag21=1
Holyshit21=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Gashing Blade]} && ${Me.CurrentEndurance}>350 && ${Melee.DiscID}==0) /casting "Gashing Blade" disc
Holyflag22=1
Holyshit22=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Deflection Discipline]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Deflection Discipline" disc
Holyflag23=1
Holyshit23=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Leechcurse Discipline]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Leechcurse Discipline" disc
Holyflag24=1
Holyshit24=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Soul Guard]} && ${Me.CurrentEndurance}>1800 && ${Melee.DiscID}==0) /casting "Soul Guard" disc
Holyflag25=1
Holyshit25=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Ichor Guard]} && ${Me.CurrentEndurance}>1100 && ${Melee.DiscID}==0) /casting "Ichor Guard" disc
Holyflag26=1
Holyshit26=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Soul Shield]} && ${Me.CurrentEndurance}>3000 && ${Melee.DiscID}==0) /casting "Soul Shield" disc
Holyflag27=1
Holyshit27=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Respite]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Respite" disc
Holyflag28=1
Holyshit28=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Reprieve]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Reprieve" disc
Holyflag29=1
Holyshit29=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Rest]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Rest" disc
Holyflag30=1
Holyshit30=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Fearless Discipline]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Fearless Discipline" disc
Holyflag31=1
Holyshit31=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Malarian Carapace]} && ${Me.CurrentEndurance}>6853 && ${Melee.DiscID}==0) /casting "Malarian Carapace" disc
Holyflag32=1
Holyshit32=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Malarian Mantle]} && ${Me.CurrentEndurance}>6853 && ${Melee.DiscID}==0) /casting "Malarian Mantle" disc
Holyflag33=1
Holyshit33=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Umbral Carapace]} && ${Me.CurrentEndurance}>5618 && ${Melee.DiscID}==0) /casting "Umbral Carapace" disc
Holyflag34=1
Holyshit34=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Soul Carapace]} && ${Me.CurrentEndurance}>5040 && ${Melee.DiscID}==0) /casting "Soul Carapace" disc
Holyflag35=1
Holyshit35=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Gorgon Mantle]} && ${Me.CurrentEndurance}>5738 && ${Melee.DiscID}==0) /casting "Gorgon Mantle" disc
Holyflag36=1
Holyshit36=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Recondite Mantle]} && ${Me.CurrentEndurance}>5939 && ${Melee.DiscID}==0) /casting "Recondite Mantle" disc
Holyflag37=1
Holyshit37=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Bonebrood Mantle]} && ${Me.CurrentEndurance}>6147 && ${Melee.DiscID}==0) /casting "Bonebrood Mantle" disc
Holyflag38=1
Holyshit38=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Gorgon Carapace]} && ${Me.CurrentEndurance}>1979 && ${Melee.DiscID}==0) /casting "Gorgon Carapace" disc
Holyflag39=1
Holyshit39=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Sholothian Carapace]} && ${Me.CurrentEndurance}>2048 && ${Melee.DiscID}==0) /casting "Sholothian Carapace" disc
Holyflag40=1
Holyshit40=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Unholy Guardian Discipline]} && ${Me.CurrentEndurance}>4845 && ${Melee.DiscID}==0) /casting "Unholy Guardian Discipline" disc
Holyflag41=1
Holyshit41=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Grelleth's Carapace]} && ${Me.CurrentEndurance}>2120 && ${Melee.DiscID}==0) /casting "Grelleth's Carapace" disc
Holyflag42=1
Holyshit42=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Resistant Discipline]} && ${Me.CurrentEndurance}>200 && ${Melee.DiscID}==0) /casting "Resistant Discipline" disc
Holyflag43=1
Holyshit43=/if (${Me.PctEndurance}<30 && ${Me.CombatAbilityReady[Unholy Aura Discipline]} && ${Me.CurrentEndurance}>900 && ${Melee.DiscID}==0) /casting "Unholy Aura Discipline" disc


; Helpful flags and checks: ${Me.Pet.ID} - Checks if you have pet. (${Me.Pet.Name.Find[familiar]}) /pet get lost - Gets rid of Flappy. ${Target.Named} - TRUE if target is Named mob. 
; ${Target.Speed}>25 - How fast is target moving. ${Target.Fleeing} - TRUE if target is running from you. ${Me.PctAggro}<100 - How much aggro do I have. ${Me.SecondaryPctAggro}<100 - How much aggro does the next one in line have.
; ${SpawnCount[npc radius 30 zradius 10]}<3 - How many mobs are close to me. ${SpawnCount[npc named radius 50]}>0 - Is there a Named mob near you. ${Me.Aura[Arcane Distillect].Lenght} - Check for Aura.
; ${Select[${Target.Body.Name},Summoned,Undead]} - Is mob summoned or undead. ${FindItemCount[CLASS 3 Wood Silver Tip Arrow]}>100 - Do I have 100 or more arrows. $(Me.Levitating) - Am I levitating. 
; /if (${Cursor.Name.Find[Summoned: Large Modulation Shard]}) /autoinventory - If there is a Mod Rod on my cursor, shake it off! ${Me.State.Equal[SIT]} - Am I sitting. ${Me.State.Equal[STAND]} - Am I standing. 
; /multiline ; /casting Spirit of Wolf ; /bc SOW Incoming! - Send chat to EQBC. ${Melee.AggroMode} - Am I set in Aggro=1. ${Me.CurrentMana} - How many points of mana do I have. ${Me.CurrentEndurance} - how many points of END do I have. 
; ${Me.CurrentHPs} - How many HP do I have now. ${Me.Gem[Spirit of Wolf]} - Do I have SOW memmed(returns gem num, anything but 0 is TRUE). ${Target.Distance3D} What is the real distance(counting Z axis also)
; ${Group.Member[X].PctHPs}< 60 - is group memeber X below 60% health. ${Group.Member[X].Spawn.ID} - is there a group member X. ${Me.Grouped} - Am I in a group. ${Me.Hovering} - Am I dead.
 
Few suggestions.

Code:
${Group.Member[X].PctHPs}< 60

Kind of useless in the setting that you have it in since group member slots change every grouping. Group.Member relies on the group member slot to get the data not the group member name or the group member id. It needs to look like
Code:
${Group.Member[${Group.Member[name]}].PctMana}
or whatever. Unless you create a loop going from 1-5 checking hit points and mana. Go 0-5 if you want to include yourself since you're always group member #0.

Same thing with
Code:
${Group.Member[X].Spawn.ID
. You'll either need a loop to check everyone's ID or use
Code:
${Group.Member[${Group.Member[name]}].ID}
. You don't even need to put Spawn.ID , just ID.

Majority of people use
Code:
${Me.Dead}
instead of
Code:
${Me.Hovering}
to do a death check. I've yet to see
Code:
${Me.Hovering}
used inside of a macro.

Code:
${Me.State.Equal[SIT]} ${Me.State.Equal[STAND]}
easily replaced with
Code:
${Me.Sitting}
and
Code:
${Me.Standing}

Code:
${Target.Body}
seems to be hit or miss. If you're using it for something that needs to be accurate, it might not always be so.

Code:
${SpawnCount[npc radius 30 zradius 10]}<3
won't tell you how many mobs are close to you but
Code:
${SpawnCount[npc radius 30 zradius 10]}
will.

Code:
${SpawnCount[npc named radius 50]}>0
same with this one. just use
Code:
${SpawnCount[npc named radius 50]}

Code:
${Me.Aura[Arcane Distillect].Lenght}
can be replaced with
Code:
${Me.Aura.Equal[auraname]}

Code:
${FindItemCount[CLASS 3 Wood Silver Tip Arrow]}>100
should be trimmed way down to
Code:
${FindItemCount[Silver Tip]}>100
. Partial names work for FindItemCount unless = is used then exact name is needed.

Code:
/if (${Cursor.Name.Find[Summoned: Large Modulation Shard]}) /autoinventory
can be slimmed down to
Code:
 ${Cursor.Name.Find[shard]} or [modulation shard].

Code:
${Me.CurrentMana} ${Me.CurrentHPs} ${Me.CurrentEndurance}
are all replaced by
Code:
${Me.PctMana} ${Me.PctHPs} ${Me.PctEndurance}
. I haven't seen a single macro out there that bases triggers off of actual hit point/mana/endurance numbers. Everything is based off of percentages since they're all constantly changing numbers that vary based on your specific buffs/gear/LAA/AA/group setting/etc. Only thing CurrentXX is really useful for is HUDs imo.

Your defined condition must not exceed 255 characters, or it will cause the plugin to crash.

I don't know if that applies only to the downshit/holyshits or just the downshitif/holyshitif though. Keep it short and simple.
 
  • Like
Reactions: EQDAB
No problem. Great idea you had with this program.


Sent from my Windows Phone using Tapatalk
 
New version with some improvements.
Compatible with existing ini and macro files. Only need the new exe.
File is in top post.

Updated to correct a problem with trying to create a DataTable that already existed if you clicked the INI Select button a second time before clicking Write SHITS button.
Now you can select a new INI file if you didn't get the right one or want to process more than one before closing the program.

Added some check boxes to allow processing SPELLS, CLICKIES, DISCS or any combination of the three.
If you just loaded up on new spells, just process spells etc...

Added a check box for Pure Caster.
Won't generate Holyshits but instead generates Downshits setup for casters.
Does not process DISCS when Pure Caster is checked.


Code:
Downflag0=1
Downshit0=/if ${Me.CombatState.Equal[COMBAT]} && ${Me.PctMana}>30 && (${Target.PctHPs}<90 && ${Cast.Ready[Fickle Magma]}) /casting "Fickle Magma" gem1

Big indicator to show successful writing of shits file.

Sometime in the near future I will implement automatic selection of Caster or Melee and process files accordingly.

Suggestions and comments are welcome.

-Wolf
 
  • Like
Reactions: EQDAB
Excellent.

Btw on a bard it generates the ini file but the exe crashes when it tries to add it to the program.

I had to edit the ini to remove spells.
 
  • Like
Reactions: EQDAB
How hard would it be to check the bags for clickies?
 
  • Like
Reactions: EQDAB
I'll dig into the bard issue when I get home tomorrow.

should not be a problem to dig into bags for clickies.

-Wolf
 
  • Like
Reactions: EQDAB
@Burdsjim:
I tried it on both of my bards. lvl 70 and 100.
I could not replicate your error.
Can you send me your Toon_Server_Shits.ini file?
I'll run it in the source to debug.

Thanks

-Wolf
 
Updated to fix problem with crash.
Changed delimiter character from comma to caret ^ due to some spells having a comma in the name, causing crash.
Added section to get clickies from inventory. Some potions are also listed along with their spell names so might be a little useful but be careful. That functionality has not been tested.
Tested with up to 32 slot bags and item in top slot.

Detects pure casters and skips holyshits and discs.
Detects PB AE spells and sets up for mob number check.
Detects Lifetap and adds to Holyshits section. (failed to do this in the past)

Added lines to separate the different sections.
ie:
---- SPELL DOWNSHITS ----
---- CLICKABLE ITEMS ON CHARACTER ----
---- CLICKABLE ITEMS IN INVENTORY ----

Should make it easier to work with the files.
Fixed a few mistakes.
Added version detection to make sure proper version ini is used.

Tested on 100 Mage, 100 SHM, 100 SK, 100 Bard, 100 RNG, 100 CLR, 55 Warior, 76 SK, 76 WIZ, 76 SHM, 96 Wiz, 87 RNG

Delete old files as they are not compatible with new version.
New version is in original post.

-Wolf
 
Good stuff! I will test this tonight when I get home.
Does it work with Shmy epic by chance?
 
Good question!

Honestly, all the clickies I looked at on my toons were self target, beneficial type so I didn't add checks for spell type on items.
It will pick up just about anything that is clickable including potions, anchor transport devices, illusion masks etc.. I just need to make more checks to see where they should be categorized.

It does quite well on most things. I just did my lvl 77 SK and basically just cut and pasted, changed some mana and mob hp numbers and it's rocking.

I'll check that out and make updates.

-Wolf
 
I love this shitsbuilder wolf, thanks so much for it. Are you putting out a new version? Someone mentioned you were updating it soon with a newer version. Just curious if you are or the person who told me was talking out of their ass. Lol
 
This is amazing, thank you for writing this!
 
I'm still learning how warriors work. So far I know that Last Stand is my replacement for Stonewall (last time I played, Stonewall was the tanking disc). I use flash of anger when that goes down... what are the other tanking discs? Would really appreciate it if a seasoned tank could step in and help me catch up.

I have my holyshits set up now to run Last Stand and Fortitude using the builder. However, how would I program it to use last stand, then flash of anger, then whatever should come next?

Code:
holyshit0=/if (${Target.Named} && ${Melee.AggroMode} && ${Me.CombatAbilityReady[Fortitude Discipline]}) /casting "Fortitude Discipline" disc

holyshit1=/if (${Target.Named} && ${Melee.AggroMode} && ${Me.CombatAbilityReady[Flash of Anger]}) /casting "Flash of Anger

Thanks!
 
I'm still learning how warriors work. So far I know that Last Stand is my replacement for Stonewall (last time I played, Stonewall was the tanking disc). I use flash of anger when that goes down... what are the other tanking discs? Would really appreciate it if a seasoned tank could step in and help me catch up.

I have my holyshits set up now to run Last Stand and Fortitude using the builder. However, how would I program it to use last stand, then flash of anger, then whatever should come next?

Code:
holyshit0=/if (${Target.Named} && ${Melee.AggroMode} && ${Me.CombatAbilityReady[Fortitude Discipline]}) /casting "Fortitude Discipline" disc

holyshit1=/if (${Target.Named} && ${Melee.AggroMode} && ${Me.CombatAbilityReady[Flash of Anger]}) /casting "Flash of Anger

Thanks!

You want it to use Flash of Anger while last stand is running ?

Code:
holyshit1=/if (${Target.Named} && ${Me.ActiveDisc.Name.Equal[Last Stand Dicipline]} && ${Melee.AggroMode} && ${Me.CombatAbilityReady[Flash of Anger]}) /casting "Flash of Anger"
Would use Flash of Anger only when last stand is on.