The Spec Soul Tree Calculator: Assassin (23) / Riftstalker (22) / Bladedancer(21) :: Rift :: ZAM Buffs: Virulent Poison - 20% change on weapon attacks to deal 54 Water DMG ~1hr Leeching Poison - 20% chance on weapon attacks to deal 39 Water DMG +65 Heal ~1hr Combat Preparation - +40 Dexterity ~1hr Stalker Phase - +15% DMG when using Shadow Warp or Shadow Assault; ~Infinite Planebound Resilience - +42 Endurance ~1hr *False Blade - +5% Dodge ~1min duration; Finisher *Guarded Steel - +50% armor ~1min; Finisher *Dauntless Strike - +5% Crit ~1min duration; Finisher *Deadly Dance - +105% DMG x 3 CP moves; Finisher The Good: Stealth while moving around if no DoT is on player and player is out of combat. Cast's Weapon Barrage if target is casting a spell. Will open from stealth using Paralyzing Strike, else will Savage Strike for single targets, Rift Disturbance for AoE along with Twin Strike. Will use Riftstalker Warps. It will use finishers in order of +5 Dodge, +50% Armor, +5% Crit, and Deadly Strike if you are above 80% HP and the mob is above 20% HP. Uses CP left on the target to heal if the target is below 20% HP and you are below 80% HP. Will spam savage Strike if you are going to use CP's to heal. Uses the following for avoidance: Poison Malice if there is more then 1 mob attacking, Side Steps if there is more then 1 mob attacking + you are below 70% HP, and uses Planar Refuge if you are below 60% HP. Know Issues: It will re-stealth before looting / skinning. Unknown how to fix this issue as I do not know where looting code is. Weapon Barrage fires off incorrectly missing the interrupt or being cast when nothing is interrupt-able. //- NOTE: if fighting a caster mob it will save WB for when the mob casts, if it is not fighting a castable mob it will fire it off if it wants to. - \\ Need to do: Fix known issues. Add more DoT's to the list. Up-To Date Files: View attachment 502 View attachment 503 All updates will be marked in ORANGE text ---------- Update 1: Uploaded files for public test Update 2: Fixed error that was preventing using Paralyzing Strike as soon as it got into melee. Will not consume CP if the target is below 20% HP. Streamlined CP generating moves. Update 3: Changed from Guardian Phase to Stalker Phase. Added Guarded Steel into finisher rotation. Will open from stealth using Paralyzing Strike, else will Savage Strike for single targets, Rift Disturbance for AoE along with Twin Strike. Will use Riftstalker Warps. It will use finishers in order of +5 Dodge, +50% Armor, +5% Crit, and Deadly Strike if you are above 80% HP and the mob is above 20% HP. If target is below 20% HP it will check if you are below 80% HP, if you are it will not use a finisher so you can heal with the 5CP limit. Also: if target is below 20% HP + you are below 80% HP it will spam Savage Strike to keep the DMG going while not using finisher. Uses the following for avoidance: Poison Malice if there is more then 1 mob attacking, Side Steps if there is more then 1 mob attacking + you are below 70% HP, and uses Planar Refuge if you are below 60% HP. Update 4: Added variable GCD timer and minor bug fixes. Update 5: Fixed issues with AoE-ing when it will only hit one mob; it will now only AoE when the AoE will hit more then one mob. Update 5: Updated files to match current Ryft bot files.
is where i'd start, when it comes to moving to target maybe add makes sure your facing the right way : !GigaRift.Me.IsFacingTarget(), new Action(ctx => GigaRift.Me.CurrentTarget.Face()),
Facing isn't the issue, it auto faces the target correctly as it should, but it refuses to move forward or backward after the initial pulling of the first mob. EDIT 1: I tried this, and I get the "Unreachable Code Detected" error, which I assume is bad? EDIT 2: I have tried this: Code: // Are we in melee of the target? new Decorator(ctx => GigaRift.Me.CurrentTargetGuid.CompareTo(GigaRift.Me.CurrentTarget.Location) > 3, new Sequence( new Action(ctx => GigaRift.Me.ClickToMove(GigaRift.Me.CurrentTarget.Location)))); I also tried: Code: // Are we in melee of the target? new Decorator(ctx => GigaRift.Me.Location.Distance(GigaRift.Me.CurrentTarget.Location) > 3, new Sequence( new Action(ctx => GigaRift.Me.ClickToMove(GigaRift.Me.CurrentTarget.Location)))); But it gives me an error for Unreachable Code Detected. If I take away the new it gives me an error "TreeSharp.Decorator is a type but is used like a variable"; I was thinking that TreeSharp.Decorator did not include the value for the targets location compared to mine, or is that different coding for that request? The reason I was trying this code is the line above it: Code: // Are we facing the target? new Decorator(ctx => !GigaRift.Me.IsFacingTarget() && (!_facingTimer.IsRunning || _facingTimer.ElapsedMilliseconds > 500), new Sequence( new Action(ctx => GigaRift.Me.ClickToMove(GigaRift.Me.Location)), new Action(ctx => Logging.Write("Face {0}.", GigaRift.Me.CurrentTarget.Name)), new Action(ctx => _facingTimer.Restart()), new Action(ctx => GigaRift.Me.CurrentTarget.Face())))))); works fine for forcing the player to face the target when I force the player to look away. I guess my backup question is this: will the Code: new Action(ctx => GigaRift.Me.ClickToMove(GigaRift.Me.CurrentTarget.Location)))); part force my character to click to move onto the selected target? Or is that written differently?
your right with the last bit, that is or is about the movement part of it. if your really stuck post your source and to two of us can have a go at it, more hands make light work
After fussing with it for a few hours I almost have it. The ; at the end of //Are we facing the target? was stopping the line after it from a syntax viewpoint. I changed it to a , and the error goes away. Now I got another issue. (Go me, YAY! -__-) When I run this routine it targets certain mobs, stays in stealth (or nostealth if not spec'd into it) and just pivots to the mob, doesn't move at all and I cannot force it to move ingame as the keys do not work when the script is running. Odd... I will upload the .zip soon after I finish a test real quick. =D ~15-30 min I will upload the files.
sounds as if it is constantly targeting the mob, like clicking constantly with the mouse, need to add: GigaRift.Me.CurrentTarget != null or something so it stops when it grabs the target
Ok, I have a stable version, "kinda", that is available for public testing. I have some issues: 1) when s/he stealth's and runs to the mob, it will do nothing until the mob auto attacks, usually 1-2 seconds after it gets to the melee distance. 2) Certain mobs at range, usually ones out of LoS, will bug out the profile, making it run back and forth over and over, a side step usually fixes this issue. Other then those two major issues, I haven't seen anything really trying for this routine. It took a tad longer then 15-30 mins as I thought earlier on uploading the files but I finally got around to it. Try it and tell me your thoughts. About the two issues though, I am unknown as how to fix these, can anyone help with the issue? I will upload all the work I have so far in 1 .ZIP, the .CS, and the .DLL. View attachment 349
Update here: Got the routine to use Paralyzing Strike as soon as it got within range, instead of waiting till the NPC struck first. Also streamlined a few of the combo point generating attacks. Also, fixed a few minor things with the routine. Still have an issue with it stealthing before looting / skinning, any thoughts? That and it focusing on the herb / wood / ore node that spawned before the NPC's surrounding, any thoughts? Also, sometimes the NPC's but out as if their non-companion pets following me, how can I get the routine to figure this out instead of standing there looking dumb? Also, what have you all thought of this so far?
you could put the stealth code into the pull routine rather than the rest. with the foraging and mining the last i saw it was bugged and not really to be used, that was the last time i saw something about it, not seen any different since
If I remove the stealth ability from everything except the pull routine the bot runs around non-stealthed until it targets a mob then it stealthes up. The whole point of having perma-stealth was to "hide" the bot while it was running around looking for a target to attack. Maybe if I can add it in to the command while it moves between nodes on the mesh.
Question, how can I make the program only use AoE if the attack count is more then 1 and all hostile units are in melee, or at least 2 hostiles are in melee?
new Decorator(ctx => AttackerCounter >1 && GigaRift.Me.CurrentTarget.Location(MeleeDistance), new Sequence( new Action(ctx => SpellManager.CastSpell("ALL your pwn spell")), new Action(ctx => SpellManager.CastSpell("more Pwnage spells"))), that should aoe if there is more than one target and one is in melee range, not sure how to check all are in melee range
well yea I got that part down just want to see if it can check if at least 2 are in melee for, say, twin strike. Also, I have this: Code: CreateSpellCast("Weapon Barrage", ctx => !GigaRift.Me.HasBuff("Stealth") && GigaRift.Me.CurrentTarget.IsCasting) But the Bot still casts Weapon Barrage as if were in the normal rotation like a CP builder move. It really doesn't care if the target it casting or not. And I checked to see if "Weapon Barrage" is anywhere else in the script, it is not.
you'd have to target each mob and check distance to find out where they are i think, could try: at the start of script where the combat casts go at the end of the script just find similar script entries and add it around there
Hmm, after about 4 re-reads I think I understand that, I will try it when the server I play on comes back online. A little update though, beside the AoE I really want to fix, the rest is running pretty darn smooth, in fact, the only thing I can see that makes it look non-player controlled would be the running around outside of stealth (Stealth on CD or DoT active), that and the looting error I am still looking into.
Updates as follows. Changed from Guardian Phase to Stalker Phase. Added Guarded Steel into finisher rotation. Will open from stealth using Paralyzing Strike, else will Savage Strike for single targets, Rift Disturbance for AoE along with Twin Strike. Will use Riftstalker Warps. It will use finishers in order of +5 Dodge, +50% Armor, +5% Crit, and Deadly Strike if you are above 80% HP and the mob is above 20% HP. If target is below 20% HP it will check if you are below 80% HP, if you are it will not use a finisher so you can heal with the 5CP limit. Also: if target is below 20% HP + you are below 80% HP it will spam Savage Strike to keep the DMG going while not using finisher. Uses the following for avoidance: Poison Malice if there is more then 1 mob attacking, Side Steps if there is more then 1 mob attacking + you are below 70% HP, and uses Planar Refuge if you are below 60% HP.
I've been using this routine now for 10 levels and it's a beast, have not died once to PvE elements at all. Plus it's one of the few CC routines that doesn't glitch or bug out due to the new version of Ryftomate, thanks a ton! Also it seems to be the fastest xp routine for rogues as well.