What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

Trinity - Monk Class

Hey Giles,

I say this everytime, but its for a good reason! Great job and keep up the great work!

I think this used be in the older versions but is it possible to prioritize casting sweeping winds before casting mantras (for the doubled effect) especially for mantra of conviction. I have been noticing in the more recent version that (especially with large trash packs) it will cast the mantra first once it gets to about 50% spirit, which usually leaves no spirit left to cast sweeping winds (unless you have the 4 piece bonus). Just wanted to confirm what i was seeing and see if it was intended.
Oh and to note this is mostly happening with trash packs. It seems to be working as usual for elites.
 
Last edited:
hi giles, is it possible for it to cast mantra if it detects that the SW combo is up and breath of heaven is up? rather than waiting till spirit is full to cast it.
 
Hi I have a monk with Inna's set so sweeping wind only cost 5 mana, is there a way to keep the effect up on every mob?
 
Hi I have a monk with Inna's set so sweeping wind only cost 5 mana, is there a way to keep the effect up on every mob?

Check the "A walkthrough of changing skill activation criteria" sticky thread right here on these forums. You can also see my reply I just made a few minutes ago on how to change sweeping winds to "always cast".
 
I've been using DB for a week now and using this great plugin since the start. Works great out of the box, but here are my current tweaks, hope this will help to improve the plugin.

First, my "Mantra Spam" approach
Why have a single rule for casting? You need to save energy to cast Blinding Flash and Sweeping wind, but once SW is up you just need to save enough for Breath of Heaven (25BoH+50 of the mantra = 75, or 50%)
My first version looked like this:
Code:
if (!bOOCBuff && hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) && 
	// Spam a lot more if you already have sweeping winds
	// playerStatus.dCurrentEnergyPct >= 0.75 && playerStatus.dCurrentEnergy >= 85 &&
	((playerStatus.dCurrentEnergyPct >= 0.75 && playerStatus.dCurrentEnergy >= 85) ||
	(playerStatus.dCurrentEnergyPct >= 0.5 && playerStatus.dCurrentEnergy >= 75 && GilesHasBuff(SNOPower.Monk_SweepingWind)) )&&
	// end mod
	(iElitesWithinRange[RANGE_30] >= 1 || iAnythingWithinRange[RANGE_30] >= 3) && 
	GilesUseTimer(SNOPower.Monk_MantraOfConviction))
{
	return new GilesPower(SNOPower.Monk_MantraOfConviction, 0f, vNullLocation, iCurrentWorldID, -1, 0, 0, USE_SLOWLY);
}
Some runs later I coded an even more aggressive approach and downed the saved energy a little more if Health is high. So in the end, if SW is down, the bot will save energy for BF+SW+mantra (10+75+50=135) to ensure SW can be cast, then while is up, will spam it saving just 15 energy if health is above 80%, and 25 (the full cost of Breath of Heaven) if the Health is below.
Code:
if (!bOOCBuff && hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) && 
	( playerStatus.dCurrentEnergy >= 135 ||
	( GilesHasBuff(SNOPower.Monk_SweepingWind) && (playerStatus.dCurrentEnergy >= 75 || ( playerStatus.dCurrentEnergy >= 65 && playerStatus.dCurrentHealthPct <= 0.8 ) ) ) ) &&
	(iElitesWithinRange[RANGE_30] >= 1 || iAnythingWithinRange[RANGE_30] >= 3) && 
	GilesUseTimer(SNOPower.Monk_MantraOfConviction))
{
	return new GilesPower(SNOPower.Monk_MantraOfConviction, 0f, vNullLocation, iCurrentWorldID, -1, 0, 0, USE_SLOWLY);
}
I think the other mantras could benefit from that too.

Also, note that I removed here the % energy checks, see below for my thoughts on that.

I have seen my monk die more than once while surrounded by mobs while potions, the heal and the invul are in cd, but blinding flash is ready to cast. In the current code there is a part to cast it while life is under 40%, but still requires sweeping winds to be ready, so it won't be cast if you don't have a LOT of energy. Casting BF when below 25%hp if there's anything in range may be not optimal SW-wise, but having to do a corpse run is worse.
For clarity, I added a separate entry for the defensive cast, (so don't replace the BF entry with this one, just add this after the original one).
Code:
// Blinding Flash as a DEFENSE
if (!bOOCBuff && playerStatus.dCurrentEnergy >= 10 && hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) &&
playerStatus.dCurrentHealthPct <= 0.25 && iAnythingWithinRange[RANGE_15] >= 1 &&
GilesUseTimer(SNOPower.Monk_BlindingFlash) && PowerManager.CanCast(SNOPower.Monk_BlindingFlash))
{
	return new GilesPower(SNOPower.Monk_BlindingFlash, 11f, vNullLocation, iCurrentWorldID, -1, 1, 0, USE_SLOWLY);
}

I noticed that in the Breath of Heaven code, it requires 30 energy to cast, while the skill itself cost 25. It would make sense to make it 35 (25+10 backup for serenity), but not 30...
Code:
 // Breath of heaven when needing healing or the buff
if (!bOOCBuff && (playerStatus.dCurrentHealthPct <= 0.6 || !GilesHasBuff(SNOPower.Monk_BreathOfHeaven)) && hashPowerHotbarAbilities.Contains(SNOPower.Monk_BreathOfHeaven) &&
GilesUseTimer(SNOPower.Monk_BreathOfHeaven) &&
playerStatus.dCurrentEnergy >= [COLOR="#FF0000"]25[/COLOR] && PowerManager.CanCast(SNOPower.Monk_BreathOfHeaven))
...


In many places in the monk code you have things like this (this one is from the mantra of conviction short buff):
Code:
playerStatus.dCurrentEnergyPct >= 0.75 && playerStatus.dCurrentEnergy >= 85
Am I missing something here or this is just redundant? As I understand the code above can be replaced with:
Code:
playerStatus.dCurrentEnergy >= 112.5
and it will do the same, right? (75% of 150 spirit =112.5 spirit). Also here the numbers didn't match in this particular example, may it be that you reduced the second value to improve spam and forgot to modify the %?
I think the code will be a lot cleaner and easy to maintain/read without the % checks, and also I think (didn't have time to actually test it, sorry) the % checks will cause strange behaviors with Exalted Soul saving a lot more spirit than needed.
But again, maybe I'm missing something and that double check needs to be there for some reason.


Sorry for the long post :)
 
I want my monk to use Tempest Rush 24/7, Since tempest rush is also an attack i use it to kill mobs. It also gives me a 25% movement speed boost with allows me to clear maps VERY fast. Basically I would like my monk to use tempest rush more than only "out of combat" if that's possible.
no response in almost a week? just wondering if this would be do-able so the monk would be a better botting choice
 
no response in almost a week? just wondering if this would be do-able so the monk would be a better botting choice

What's your build? I need to see what other abilities are being used ABOVE tempest rush first. I want to be careful not to just make tempest rush "#1 priority" and cause it to ignore every single monk ability no matter what, because it'd make your monk pretty useless depending what other skills you relied on.
 
Hi giles, may i know why is there a playerStatus.dCurrentEnergyPct >= 0.55 && playerStatus.dCurrentEnergy >= 82.5 comparison? because i dont understand why is there a need.

is it possible to use only current energy as the comparison
 
Last edited:
Hi giles, may i know why is there a playerStatus.dCurrentEnergyPct >= 0.55 && playerStatus.dCurrentEnergy >= 82.5 comparison? because i dont understand why is there a need.

is it possible to use only current energy as the comparison

The fixed value is for people with basic amounts of spirit. The percentage is to cover people that have lots of items giving extra spirit - which ensures they save up a bit more (since they have the spirit for it).

It probably is redundant and can be removed. One is the percentage of total, one is the actual value of spirit - you're free to remove either of the checks, and/or alter the values of both.

And I'm always open to any changes to skills that "work well for everyone" - that I can put into Trinity for all to benefit from in future updates :D

(I'm afraid monks haven't had much attention from me lately)
 
ok thanks. i have been using the Monk cyclone build with your plugin since you started this project. till now i think i can say the monk section for the cyclone build is 99% done the 1% will have to depend on the persons gear and behaviours on evading pools etc which is much harder to achieve.
 
1.) Improve unstucking.

2.) Improve use of cyclone strike, seven sided strike. Activates too far away from enemies even with long range rune on cyclone strike.

3.) Improve avoidance, will sit in desecrate for an extra second. Will stand and won't attack after avoiding certain affixes.

4.) Add a button/toggle for Inna's set, use sweeping wind at 5 spirit.

5.) Should prioritize Plaguers'(Herald of pesitlence, ect.) first. Then succubus.

6.) Should use cyclone strike as part of the avoidance. The bot is too eager to attack while a molten explosion, ice clusters, or desecrate is occuring causing him to tele straight into it.
Instead, should cyclone strike them out of it.

7.) If surrounded by too many mobs and cannot move, simply attack or tempest rush out of it, not try to keep avoiding with no where to go.

8.) At least acknowledge that fire chain is there and won't sit in it.

9.) Uses tempest rush randomly while facing elites, using it 3 times in a row... draining all my spirit.
Should use it for avoidence or to collect an emergency health globe.

Just a few things I've thought of while babysitting it.
 

Attachments

In 1.6 trinity, the monk not using the blinding flash at every cd! I had like 5 mobs on me, and not used!
 
Glad to see my changes to the monk code are included in 1.6 ^^
 
holy shit Giles, I think you've done it. This is the first time ever I've botted a whole run with my 120k dps glass cannon monk and NO death. I think I might be in love.

Just a quick thing though, the new Inna set feature doesn't seem to be working "well", it uses sweeping wind when flash is up. But when flash is down.. it doesn't seem to use it often.. Not sure if it's a bug or the way it's designed in 1.6.

Either way, awesome job!!
 
In 1.6, the monk Mantra of conviction too much so make it not enough spirit for use seven sided strike
 
Back
Top