• Visit Honorbuddy
  • Visit Rebornbuddy
  • Visit Demonbuddy
  • Visit Exilebuddy
  • Visit Hearthbuddy
  • Visit Pokefarmer
  • Visit Buddystore

Help with SRS Build

Discussion in 'Combat Routines' started by verard, Mar 20, 2017.

  1. verard

    verard New Member

    Joined:
    Mar 20, 2017
    Messages:
    7
    Likes Received:
    0
    Trophy Points:
    1
    Greetings community,

    So I bought this bot 2 days ago, I'm really happy with how it's working so far.
    I want to make a good magic find build for merciless dried lake grind for max currency farm, but all I found was the necro SRS build, if you have any other recommendations please let me know:)

    The problem I have with SRS is that it casts 1 time then stops for like 0.3 sec and casts SRS again, while when I do it manually the cast is much faster, is there any workaround for this?

    I read somewhere on this forum to remove some oldroutine code lines, tried that, didn't change a thing, maybe I did it wrong? Please help ._.
     
  2. vendettas

    vendettas Member

    Joined:
    Jun 19, 2013
    Messages:
    231
    Likes Received:
    12
    Trophy Points:
    18
    Ouroboros Routine works much better for SRS. You can also go into the routine .cs file and remove some or all of the waits, but this could cause unforeseen consequences.
     
  3. Anjin

    Anjin Member

    Joined:
    Sep 23, 2012
    Messages:
    39
    Likes Received:
    3
    Trophy Points:
    8
    Finally back to srs character.
    In Ouroboros testing code right now:
    Code:
     if (_summonRagingSpiritSlot != -1 &&
                        _summonRagingSpiritStopwatch.ElapsedMilliseconds >
                        OuroborosSettings.Instance.SummonRagingSpiritDelayMs)
                    {
                        var skill = LokiPoe.InGameState.SkillBarHud.Slot(_summonRagingSpiritSlot);
                        var max = skill.GetStat(StatTypeGGG.NumberOfRagingSpiritsAllowed);
                        if (skill.NumberDeployed < max && skill.CanUse())
                        {
                            /*for (int srs_c = 0; srs_c < 3; srs_c++)
                            {
                                ++_summonRagingSpiritCount;
    
                                var err1 = LokiPoe.InGameState.SkillBarHud.UseAt(_summonRagingSpiritSlot, false, targetPosition);
    
                                if (_summonRagingSpiritCount >=
                                    OuroborosSettings.Instance.SummonRagingSpiritCountPerDelay)
                                {
                                    _summonRagingSpiritCount = 0;
                                    _summonRagingSpiritStopwatch.Restart();
                                    break;
                                }
    
                                if (err1 == LokiPoe.InGameState.UseResult.None) { return true; }
    
                                Log.ErrorFormat("[Logic] Use returned {0} for {1}.", err1, skill.Name);
    
                            }*/
                   
    
                            Vector2i Target2 = ExilePather.FastWalkablePositionFor(bestTarget, 50);
                            Log.InfoFormat("[OldRoutine] _summonRagingSpirit to {0},{1}", Target2.X, Target2.Y);
                            var buaerr = LokiPoe.InGameState.SkillBarHud.BeginUseAt(_summonRagingSpiritSlot, false, Target2);
                            if (buaerr != LokiPoe.InGameState.UseResult.None)
                            {
                                Log.ErrorFormat("[Logic] UseAt returned {0} for {1}.", buaerr, "Summon Raging Spirit");
                            }
                            else
                            {
                                await Coroutine.Sleep(3000);
                                _summonRagingSpiritCount = skill.GetStat(StatTypeGGG.NumberOfActiveRagingSpirits);
    
                                if (_summonRagingSpiritCount >=
                                        OuroborosSettings.Instance.SummonRagingSpiritCountPerDelay)
                                {
                                    _summonRagingSpiritCount = 0;
                                    _summonRagingSpiritStopwatch.Restart();
                                }
                            }
    
                        }
                    }
    
    This is full cut of code for srs in Ouroboros. For me, bot spam spirits like a crazy.
    await Coroutine.Sleep(3000); this 3 sec what bot cast spirits non stop. Adjust your time if need.
    And need more tests.
     
  4. FragileAssassin

    FragileAssassin Member

    Joined:
    Apr 13, 2013
    Messages:
    178
    Likes Received:
    1
    Trophy Points:
    18
    Ran a few maps with your code last night and it seems to be a huge improvement over what it was before for my system at least. I found with this, I could set the combat range up to 70-75 and it would run up, spam a bunch of skulls, then run in.. Its a little weird with player mover combating it, but still working quite well for me.
    Thank you!
     
  5. Anjin

    Anjin Member

    Joined:
    Sep 23, 2012
    Messages:
    39
    Likes Received:
    3
    Trophy Points:
    8
    Updated the code a little bit. Used stopwatch and check for monsters around. Replaced hard coded numbers of combat range to use settings value.
    Sometimes when get surrounded by mobs bot start derping and don't cast spirits, do know why.
    Code:
    if (_summonRagingSpiritSlot != -1 &&
                        _summonRagingSpiritStopwatch.ElapsedMilliseconds >
                        OuroborosSettings.Instance.SummonRagingSpiritDelayMs)
                    {
                        var skill = LokiPoe.InGameState.SkillBarHud.Slot(_summonRagingSpiritSlot);
                        var max = skill.GetStat(StatTypeGGG.NumberOfRagingSpiritsAllowed);
                        if (skill.NumberDeployed < max && skill.CanUse())
                        {
                            /*for (int srs_c = 0; srs_c < 3; srs_c++)
                            {
                                ++_summonRagingSpiritCount;
    
                                var err1 = LokiPoe.InGameState.SkillBarHud.UseAt(_summonRagingSpiritSlot, false, targetPosition);
    
                                if (_summonRagingSpiritCount >=
                                    OuroborosSettings.Instance.SummonRagingSpiritCountPerDelay)
                                {
                                    _summonRagingSpiritCount = 0;
                                    _summonRagingSpiritStopwatch.Restart();
                                    break;
                                }
    
                                if (err1 == LokiPoe.InGameState.UseResult.None) { return true; }
    
                                Log.ErrorFormat("[Logic] Use returned {0} for {1}.", err1, skill.Name);
    
                            }*/
     
    
                            Vector2i Target2 = ExilePather.FastWalkablePositionFor(bestTarget, OuroborosSettings.Instance.CombatRange);
                            Log.InfoFormat("[Ouroboros] _summonRagingSpirit to {0},{1}", Target2.X, Target2.Y);
                            var buaerr = LokiPoe.InGameState.SkillBarHud.BeginUseAt(_summonRagingSpiritSlot, false, Target2);
                            if (buaerr != LokiPoe.InGameState.UseResult.None)
                            {
                                Log.ErrorFormat("[Logic] UseAt returned {0} for {1}.", buaerr, "Summon Raging Spirit");
                            }
                            else
                            {
                                Stopwatch _SRSStopWatch = Stopwatch.StartNew();
                                for (;;)
                                {
                                    if (_SRSStopWatch.ElapsedMilliseconds > 3000)
                                        break;
                                    if (NumberOfMobsNear(LokiPoe.Me, OuroborosSettings.Instance.CombatRange) > 0)
                                    {
                                        await Coroutine.Sleep(500);
                                    }
                                    else
                                        break;
                                }
                              
                                _summonRagingSpiritCount = skill.GetStat(StatTypeGGG.NumberOfActiveRagingSpirits);
    
                                if (_summonRagingSpiritCount >=
                                        OuroborosSettings.Instance.SummonRagingSpiritCountPerDelay)
                                {
                                    _summonRagingSpiritCount = 0;
                                    _summonRagingSpiritStopwatch.Restart();
                                }
                            }
    
                        }
                    }
    
     
  6. weenston

    weenston Member

    Joined:
    Apr 1, 2014
    Messages:
    74
    Likes Received:
    1
    Trophy Points:
    8
    Great work man, did you ever update this? I'm running at 75 range (should I bother with Max Ranged Range? I have SRS on 3 as Single Target Ranged Skill Slot) however I can't seem to get Envy to work with it, does yours work?

     
  7. Anjin

    Anjin Member

    Joined:
    Sep 23, 2012
    Messages:
    39
    Likes Received:
    3
    Trophy Points:
    8
    Nope i did not. Max combat range is used to check mobs. With envy i got the problem too, even with checked settings "EnableAurasFromItems", seems need to debug the part of aura cast. Mapbot also ignore envy.
    I attach my ouroboros hard coded to this build https://www.pathofexile.com/forum/view-thread/1816896
    Just as example, many things, as i said, hardcoded.
    Stone golem on 1 slot
    Vaal skills on 8
    Casting srs is modified.
    Vaal auras uses one slot 8 and triggered not only on mobs, but also when energy shield below 70%
    this line in code (LokiPoe.Me.EnergyShieldPercent < 70))
    If vaal skill ready and not selected, it will be set to 8 slot.
    And slots are:
    stone golem
    shield charge/whirling blades
    srs
    raise zombie (if used)
    flesh offering
    aura (one, to mapbot can precast auras)
    move skill
    vall aura
    Also i recommend sacrifice two slots to CWDT+Flame dash, can save bot from stuck when surrounded by mobs.
     

    Attached Files:

    Last edited: Apr 29, 2017
  8. Balt

    Balt New Member

    Joined:
    Jun 18, 2017
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1
    This CR works like a charm =)

    Possible for you tou make that one but with shrine skip?
    Keep geting stuck on shrines =(
    Rather no shrines then one sometimes :)

    Thx in advance
     

Share This Page