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

How do we fix SRS casting?

OldRoutine is designed for common spammy skills with little actual skill logic or synergy. You need a custom routine if you want a good SRS build to properly work. Check the other forum sections to see if anyone is working on one, as if it's a popular skill, someone might. Otherwise, you can try tinkering with the routine settings, but that's only going to get you so far.
 
OldRoutine is designed for common spammy skills with little actual skill logic or synergy. You need a custom routine if you want a good SRS build to properly work. Check the other forum sections to see if anyone is working on one, as if it's a popular skill, someone might. Otherwise, you can try tinkering with the routine settings, but that's only going to get you so far.

Well The thing is pushedx, in old routine there's some settings there, that are only about SRS and they've been there for a long time, as stated in the old routine guide here: https://www.thebuddyforum.com/exilebuddy-forum/exilebuddy-guides/178477-exampleroutine-guide.html

SummonRagingSpiritCountPerDelay - How many casts to perform before the delay happens.
SummonRagingSpiritDelayMs - How long should the CR wait after performing all the casts.
SummonSkeletonCountPerDelay - How many casts to perform before the delay happens.



I've used the bot for this before and those settings worked fine, now changing anything in those settings doesn't do anything at all, I don't think I need a custom routine for SRS when SRS has always worked fine with old routine using those settings that are there specifically to configure how SRS is to be used by the bot, can those settings be fixed?

edit: when I bought this bot again, I had absolutely no idea that those settings don't do anything anymore and are there for pure cosmetic purposes, it's a good thing I bought only one license and not 6, because I have 5 SRS bots in standard now that are basically useless that worked just fine with my old lifetimes that are also now gone.

If I knew how to write custom routines I would maybe use something other than SRS, but I don't, so I used something supported by the bot, and the old routine guide even talks about those settings, that don't do anything, so I'm coming here for help, because it's an integral part of the bot, and it's not working, it's not a custom routine, srs configuration options are in the vanilla bot, they always have been and they are not doing anything.

So again, please fix it?
 
Last edited:
You need a custom routine if you want better results than OldRoutine delivers. I just tested the settings and they are still working exactly as intended.

Set SummonRagingSpiritCountPerDelay to the number of casts that should be used to cast spirits each batch. For example, 10 would mean cast SRS 10 times.
Set SummonRagingSpiritDelayMs to the delay between casts of batches, for example 1000, for 1s.

When the CR logic goes to execute SRS, it will cast SRS SummonRagingSpiritCountPerDelay times, then it'll trigger a wait period of SummonRagingSpiritDelayMs.

Depending on your build or what other skills you are using, you'll adjust those as needed as this SRS setup is as a support skill, that is, cast X times per Y time interval, as most people don't want to sit around casting SRS all day long from one spot.
 
You need a custom routine if you want better results than OldRoutine delivers. I just tested the settings and they are still working exactly as intended.

Set SummonRagingSpiritCountPerDelay to the number of casts that should be used to cast spirits each batch. For example, 10 would mean cast SRS 10 times.
Set SummonRagingSpiritDelayMs to the delay between casts of batches, for example 1000, for 1s.

When the CR logic goes to execute SRS, it will cast SRS SummonRagingSpiritCountPerDelay times, then it'll trigger a wait period of SummonRagingSpiritDelayMs.

Depending on your build or what other skills you are using, you'll adjust those as needed as this SRS setup is as a support skill, that is, cast X times per Y time interval, as most people don't want to sit around casting SRS all day long from one spot.

But is it casting SRS very slowly no matter what settings you have? For example for me it's casting like twice and then it takes a break, even if I change the settings to have like 30 casts before delay kicks in, the actual cast of SRS is very slow and you can see in the log I pasted its taking breaks, why is this happening? All it need to do is keep the button pressed until X srs are cast and then take that delay.

FinishCurrentAction] Waited 0 ms for the action to finish Move.
[FinishCurrentAction] Waited 180 ms for the action to finish Move.
[UseAt] 3 False {6705.435, 5161.957, -44.61981}
[LatencyWait] Now sleeping 195 ms.
[FinishCurrentAction] Waited 0 ms for the action to finish Summon Raging Spirit.
[LatencyWait] Now sleeping 195 ms.
[UseAt] 3 False {6967.799, 5761.278, -44.61981}
[LatencyWait] Now sleeping 192 ms.
[FinishCurrentAction] Waited 1 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 123 ms for the action to finish Summon Raging Spirit.
[LatencyWait] Now sleeping 192 ms.
[UseAt] 3 False {6726.629, 5650.41, -44.61981}
[LatencyWait] Now sleeping 192 ms.
[FinishCurrentAction] Waited 1 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 140 ms for the action to finish Summon Raging Spirit.
[LatencyWait] Now sleeping 192 ms.
[UseAt] 3 False {6726.629, 5650.41, -44.61981}
[LatencyWait] Now sleeping 192 ms.
[FinishCurrentAction] Waited 1 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 154 ms for the action to finish Summon Raging Spirit.
[LatencyWait] Now sleeping 192 ms.
[UseAt] 3 False {6510.198, 5163.953, -44.61981}
[LatencyWait] Now sleeping 192 ms.
[FinishCurrentAction] Waited 1 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 154 ms for the action to finish Summon Raging Spirit.
[LatencyWait] Now sleeping 192 ms.
[UseAt] 3 False {6611.542, 5377.789, -44.61981}
[LatencyWait] Now sleeping 192 ms.
[FinishCurrentAction] Waited 0 ms for the action to finish Summon Raging Spirit.
[LatencyWait] Now sleeping 192 ms.
 
The logic for SRS hasn't changed much since it was added pretty much back when OldRoutine was called ExampleRoutine. What you are seeing, has always been the case. It casts, waits, casts, waits, casts waits and so on. This design has always been in place and did not change recently. Here's the CR from May 10th, 2015: https://gist.github.com/pushedx/b0cbb6a00f68c94b04c1f064159f243e

If you don't want it to do that, then you need different logic for it, either via a custom routine or rewrite the SRS casting logic in OldRoutine. UseAt is the slow method, and BeginUseAt is the faster method, but requires different logic to work properly since the client is now casting for you when the bot isn't hooked. This was a major improvement to the bot in 2.2 to support fast moving/casting stuff unlike ever before.

It looks much slower now (and input wise, it is), because the general skill use and movement of the bot was updated for 2.2 to be much, much faster while causing minimal issues, but all the utility skills in OldRoutine were not updated to this model, and won't be since you need a different set of logic for those skills. OldRoutine is very limited, and already bloated enough, and not the ideal solution for custom builds to make the most out of all the skills in the game.

So, as with any other specialty skills, OldRoutine always has, and always will, offer very limited to no support for those types of skills but provides example logic for CR authors to work from.

Hopefully that makes more sense. The issue isn't with SRS, but rather any skill that tries to use the logic SRS currently does (UseAt). You need different, tailored logic for it to cast as fast as possible with no delays.
 
So can you help with this? for example if I replace UseAt with BeginUseAt, it seems to always casts continuously for 5 sec, then it will stop and do other things.

I've changed with beginuseat in the code below which controlls the casting, my question is how do I lower the continuous cast from 5000ms, to something lower, I cant seem to find any time setting or blocks of code in old routine that use this so I can even get an idea, I tried some stuff but I'm not a coder so im just getting errors all the time. I don't want it to do wonders, it works fine already with just beginguseat, but I would like the continuous duration cast to be lower, let's say around 2000-3000 ms or so.



if (_summonRagingSpiritSlot != -1 &&
_summonRagingSpiritStopwatch.ElapsedMilliseconds >
OldRoutineSettings.Instance.SummonRagingSpiritDelayMs)
{
var skill = LokiPoe.InGameState.SkillBarHud.Slot(_summonRagingSpiritSlot);
var max = skill.GetStat(StatTypeGGG.NumberOfRagingSpiritsAllowed);
if (skill.NumberDeployed < max && skill.CanUse())
{
++_summonRagingSpiritCount;

await Coroutines.FinishCurrentAction();

var err1 = LokiPoe.InGameState.SkillBarHud.BeginUseAt(_summonRagingSpiritSlot, true, targetPosition);

if (_summonRagingSpiritCount >=
OldRoutineSettings.Instance.SummonRagingSpiritCountPerDelay)
{
_summonRagingSpiritCount = 0;
_summonRagingSpiritStopwatch.Restart();
}

if (err1 == LokiPoe.InGameState.UseResult.None)
{
await Coroutines.LatencyWait();

await Coroutines.FinishCurrentAction(false);

await Coroutines.LatencyWait();

return true;
}



below i'll just paste part of the log to show that it always just keeps casting for 5000 ms and then does other things:




[FinishCurrentAction] Waited 0 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 102 ms for the action to finish Summon Raging Spirit.
[BeginUseAt] 3 True {5285.151, 11147.52, -63.81106}
[LatencyWait] Now sleeping 268 ms.
[CustomRules][Pickup] item.IsRare and item.Is1HThrustingSword returned true for Harpy Rapier
[AreaStateCache] The location 1886 [Harpy Rapier] is being added from filter [(null)]. [Allocation 6/9/2016 6:23:35 PM]
[FinishCurrentAction] Waited 0 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 121 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 240 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 366 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 475 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 599 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 758 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 864 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 972 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 1082 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 1198 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 1322 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 1450 ms for the action to finish Summon Raging Spirit.
[CustomRules][Pickup] item.IsRare and item.IsBoot returned true for Murder Boots
[AreaStateCache] The location 1909 [Murder Boots] is being added from filter [(null)]. [Allocation 6/9/2016 6:23:37 PM]
[FinishCurrentAction] Waited 1562 ms for the action to finish Summon Raging Spirit.
[CustomRules][Pickup] item.IsRare and item.IsHelmet returned true for Magistrate Crown
[AreaStateCache] The location 1912 [Magistrate Crown] is being added from filter [(null)]. [Allocation 6/9/2016 6:23:37 PM]
[FinishCurrentAction] Waited 1728 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 1860 ms for the action to finish Summon Raging Spirit.
[CustomRules][Pickup] item.IsCurrency and item.FullName == "Cartographer's Chisel" returned true for Cartographer's Chisel
[AreaStateCache] The location 1918 [Cartographer's Chisel] is being added from filter [(null)]. [Allocation 6/9/2016 6:23:39 PM]
[AreaStateCache] The location 1920 [Scroll of Wisdom] is being added from filter [(null)]. [Allocation 6/9/2016 6:23:39 PM]
[FinishCurrentAction] Waited 2127 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 2260 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 2369 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 2491 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 2608 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 2720 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 2851 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 2962 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 3088 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 3200 ms for the action to finish Summon Raging Spirit.
[AreaStateCache] The location 1947 [Scroll of Wisdom] is being added from filter [(null)]. [Allocation 6/9/2016 6:23:39 PM]
[FinishCurrentAction] Waited 3310 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 3411 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 3531 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 3639 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 3765 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 3880 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 4004 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 4114 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 4244 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 4356 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 4478 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 4713 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 4836 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] Waited 4956 ms for the action to finish Summon Raging Spirit.
[FinishCurrentAction] No longer waiting because 5036 has elapsed.
[LatencyWait] Now sleeping 235 ms.
[LootItemTask (Leash 50)] _itemLocation set to: Magistrate Crown with id 1912 at {475, 1023}.
[LootItemTask] The current item to loot is [1912] Magistrate Crown at {475, 1023}. We have been on this task for 00:00:00 and have been attempting to interact for 00:00:00.
[LootItemTask] Now moving towards the item 1912 because it is 20.51828 away (can see).
[UseAt] 4 False {472, 1020}
[UseAt] 4 False {471, 1017}
[PostCombatHookTask] GemLevelerPro returned true.
[LootItemTask] The current item to loot is [1912] Magistrate Crown at {475, 1023}. We have been on this task for 00:00:00.3897682 and have been attempting to interact for 00:00:00.
[LootItemTask] Now attempting to interact with the item. This is the #1 attempt.
[Execute][oldgrindbot_on_loot] Magistrate Crown Metadata/MiscellaneousObjects/WorldItem 70 Rare 1912.
[InteractWith] Now attempting to highlight 1912.
[InteractWith] Now attempting to interact with 1912.
[LatencyWait] Now sleeping 237 ms.
[AreaStateCache] The location 1912 [Magistrate Crown] is being removed because the WorldItem does not exist.
[RemoveItemLocation] The location 1912 [Magistrate Crown] is being removed.
[LootItemTask (Leash 50)] _itemLocation set to: Scroll of Wisdom with id 1947 at {503, 1025}.
[BeginUseAt] 4 False {486, 1022}
[LootItemTask] The current item to loot is [1947] Scroll of Wisdom at {503, 1025}. We have been on this task for 00:00:00.1183644 and have been attempting to interact for 00:00:00.
[LootItemTask] Now moving towards the item 1947 because it is 21.28461 away (can see).
[UseAt] 4 False {496, 1023}
[LootItemTask] Now attempting to interact with the item. This is the #1 attempt.
[Execute][oldgrindbot_on_loot] Scroll of Wisdom Metadata/MiscellaneousObjects/WorldItem 0 Currency 1947.
[InteractWith] Now attempting to highlight 1947.
[InteractWith] Now attempting to interact with 1947.
[LatencyWait] Now sleeping 238 ms.
[AreaStateCache] The location 1947 [Scroll of Wisdom] is being removed because the WorldItem does not exist.
[LootItemTask] The current item to loot is [1947] Scroll of Wisdom at {503, 1025}. We have been on this task for 00:00:00.7178596 and have been attempting to interact for 00:00:00.3995275.
[RemoveItemLocation] The location 1947 [Scroll of Wisdom] is being removed.
[LootItemTask (Leash -1)] _itemLocation set to: Harpy Rapier with id 1886 at {474, 973}.
[LootItemTask] The current item to loot is [1886] Harpy Rapier at {474, 973}. We have been on this task for 00:00:00 and have been attempting to interact for 00:00:00.
[LootItemTask] Now moving towards the item 1886 because it is 57.66357 away (can see).
[BeginUseAt] 4 False {493, 1013}
[Stop] Now requesting the BotThread to stop.
[CustomRules][Pickup] item.IsRare and item.IsChest returned true for Sharkskin Tunic
[AreaStateCache] The location 1995 [Sharkskin Tunic] is being added from filter [(null)].
[AreaStateCache] The location 1997 [Scroll of Wisdom] is being added from filter [(null)].
[LootItemTask (Leash 50)] _itemLocation set to: Harpy Rapier with id 1886 at {474, 973}.
 
Last edited:
Code:
if (_summonRagingSpiritSlot != -1 &&
_summonRagingSpiritStopwatch.ElapsedMilliseconds >
OldRoutineSettings.Instance.SummonRagingSpiritDela yMs)
{
var skill = LokiPoe.InGameState.SkillBarHud.Slot(_summonRaging SpiritSlot);
var max = skill.GetStat(StatTypeGGG.NumberOfRagingSpiritsAll owed);
if (skill.NumberDeployed < max && skill.CanUse())
{
++_summonRagingSpiritCount;

await Coroutines.FinishCurrentAction();

var err1 = LokiPoe.InGameState.SkillBarHud.BeginUseAt(_summon RagingSpiritSlot, true, targetPosition);

if (_summonRagingSpiritCount >=
OldRoutineSettings.Instance.SummonRagingSpiritCoun tPerDelay)
{
_summonRagingSpiritCount = 0;
_summonRagingSpiritStopwatch.Restart();
}

if (err1 == LokiPoe.InGameState.UseResult.None)
{
await Coroutines.LatencyWait();

await Coroutines.FinishCurrentAction(false);

await Coroutines.LatencyWait();

return true;
}
I just completely deleted this entire part. It resolved my issue as it makes it cast like a normal spell. however you have no control on how many you will be able to place, but it stops when it kills the target
 
Last edited:
Code:
if (_summonRagingSpiritSlot != -1 &&
_summonRagingSpiritStopwatch.ElapsedMilliseconds >
OldRoutineSettings.Instance.SummonRagingSpiritDela yMs)
{
var skill = LokiPoe.InGameState.SkillBarHud.Slot(_summonRaging SpiritSlot);
var max = skill.GetStat(StatTypeGGG.NumberOfRagingSpiritsAll owed);
if (skill.NumberDeployed < max && skill.CanUse())
{
++_summonRagingSpiritCount;

await Coroutines.FinishCurrentAction();

var err1 = LokiPoe.InGameState.SkillBarHud.BeginUseAt(_summon RagingSpiritSlot, true, targetPosition);

if (_summonRagingSpiritCount >=
OldRoutineSettings.Instance.SummonRagingSpiritCoun tPerDelay)
{
_summonRagingSpiritCount = 0;
_summonRagingSpiritStopwatch.Restart();
}

if (err1 == LokiPoe.InGameState.UseResult.None)
{
await Coroutines.LatencyWait();

await Coroutines.FinishCurrentAction(false);

await Coroutines.LatencyWait();

return true;
}
I just completely deleted this entire part. It resolved my issue as it makes it cast like a normal spell. however you have no control on how many you will be able to place, but it stops when it kills the target

indeed... there is no need for anything more....
 
Back
Top