Errors MQ2Melee and Assassinate
Reply
MQ2Melee and Assassinate
Hey, Have the SoD build from here and having issues with my Rogue and Assassination.

He Hides / Sneaks OK and even uses his Disc but coming out of Hide / Sneak with auto-attack rather than backstab.

Everywhere is steering me toward using RogueHelper, but I would prefer using this Plugin with the Macro that I have custom created for my toons on PEQ TGC.

Doing a great job guys, keep up the great work.
Fri Sep 09, 2011 12:37 am
As far as I can tell, this skill has never worked right on EQEmu servers, and I have no experiences with it on Live. I've been looking into this specifically as a bunch of friends have complained about it as well.

I've see in used, but not as often as it is ready.
_________________
Sorvani
Fri Sep 09, 2011 7:13 am
Senior Project Member
Hi again, thanks for the access upgrade first. :)

Ok, so I looked at the post: http://mqemulator.net/forum2/viewtopic.php?t=323 and saw the following.

I may be totally off here but I thought I would post.

Macro
More +
    case d_assassin1:
    case d_assassin2:
    case d_assassin3:
      if(doMELEE && MeleeDist<MeleeKill && MeleeView<60 && MeleeBack<doSTAB>0 && !SwingHits && !TakenHits && MeleeSpeed<2>1000 && IsInvisible() && TimeSince(HiddenTimer)>1000) {
        if(doSTAB>191) sprintf(Reserved,"%2.2f id %d !front"    ,MeleeKill-3.0f,MeleeTarg);
        else           sprintf(Reserved,"%2.2f id %d behindonce",MeleeKill-3.0f,MeleeTarg);
        if(!Sticking && strcmp(Reserved,StickArg)) {
          Stick(Reserved);
          return;
        }
        if(MeleeDist>MeleeKill || MeleeView>60 || MeleeBack>doSTAB) SwingHits++;
        else if(idBACKSTAB.Ready("") && TimeSince(HiddenTimer)>3000) {
          if(Sticking) ("/stick off");
          if(doSTRIKE && idSTRIKE.Ready(ifSTRIKE)) idSTRIKE.Press();
          else StabPress();
        }

      }
    }
    if(Sticking && (SwingHits || TakenHits || !IsSneaking() || !IsInvisible())) Stick("");
    return;
  }


I noticed in here (and after trauling a lot of other MQ2Melee.cpp's online) that there may be an inconsistency in the below line:

Macro
More +
if(doMELEE && MeleeDist<MeleeKill && MeleeView<60 && MeleeBack<doSTAB>0 && !SwingHits && !TakenHits && MeleeSpeed<2>1000 && IsInvisible() && TimeSince(HiddenTimer)>1000)


Predominately the "MeleeBack<doSTAB>0" part. Is that trying to do too many things at once?

Then there is the "MeleeSpeed<2>1000" part doing pretty much the same. (I have seen it do MeleeSpeed<2.0f in other .ccp's)

I hope I am not totally off here, as this is not my code of choice. =)
Mon Sep 12, 2011 9:20 pm
It has changed a bit to the current version that I am trying to get updated.

This section is only used once the disc is already pressed. This isn't the part that decides to press the disc.
c++
More +
#define   PLUGIN_VERS      4.952    // Plugin Version

    // are we discing? if so time to promote some actions?
    long disc = Discipline();
    if(disc && !(onEVENT&0x7007)) switch(disc)
    {
    case d_ashenhand:      // Ashenhand Discipline?
        if(doMELEE && MeleeDist<MeleeKill && idEAGLESTRIKE.Ready("")) idEAGLESTRIKE.Press(); break;
    case d_silentfist:     // Silentfist Discipline?
        if(doMELEE && MeleeDist<MeleeKill && idDRAGONPUNCH.Ready("")) idDRAGONPUNCH.Press(); break;
    case d_thunderkick:    // Thunderkick Discipline?
    case d_heelofkanji:    // Heel of Kanji?
        if(doMELEE && MeleeDist<MeleeKill && idFLYINGKICK.Ready("")) idFLYINGKICK.Press(); break;
    case d_assassin1:
    case d_assassin2:
    case d_assassin3:
        if(doMELEE && MeleeDist<MeleeKill && MeleeView<60 && MeleeBack<doSTAB && idBACKSTAB.Ready("") && StabCheck()) StabPress(); break;
    }


This next section is where the key is pressed.
c++
More +
    // scripted rogue sequence striking/assasination codes
    if(doASSASSINATE && doBACKSTAB && doMELEE && onSTICK>0 && !SwingHits && !TakenHits && MeleeSpeed<2.0f && !*EQADDR_ATTACK && StabCheck())
    {
        if(!Moving && Immobile)
        {
            if(!IsSneaking() && idSNEAK.Ready("")) idSNEAK.Press();
            if(!IsInvisible() && idHIDE.Ready("")) idHIDE.Press();
            if(IsSneaking() && TimeSince(SilentTimer)>1000 && IsInvisible() && TimeSince(HiddenTimer)>1000)
            {
                if (doSTRIKEMODE)    /// strikemode = 1
                {
                    strcpy(Reserved,StrikeCMD.c_str()); // copy our strike ini command to Reserved
                    ParseMacroData(Reserved); // parse out TLO evaluations
                }
                else   // strikemode not set
                {
                    if(doSTAB>191) sprintf(Reserved,"%2.2f id %d !front"    ,MeleeKill-3.0f,MeleeTarg);
                    else           sprintf(Reserved,"%2.2f id %d behindonce",MeleeKill-3.0f,MeleeTarg);
                }
                if(!Sticking && strcmp(Reserved,StickArg))
                {
                    Stick(Reserved);
                    return;
                }
                if(MeleeDist>MeleeKill || MeleeView>60 || MeleeBack>doSTAB)
                {
                    SwingHits++;
                }
                else if(idBACKSTAB.Ready("") && TimeSince(HiddenTimer)>3000)
                {
                    if (Sticking) Stick("");
                    if (doSTRIKE && idSTRIKE.Ready(ifSTRIKE)) idSTRIKE.Press();
                    else StabPress();
                }
            }
        }
        if(Sticking && (SwingHits || TakenHits || !IsSneaking() || !IsInvisible())) Stick("");
        return;
    }
    // end rogue striking/assasination


using this version of MQ2MElee, I will occasionally see the rogue perform a Kyv Strike then backstab. But it is definitely not doing it as often as the disc is ready. I got sidetracked into looking at the Message filters in the server code and haven't worked on updating MQ2 in a couple weeks. But this is on top of my MQ2 list of things to resolve.
_________________
Sorvani
Wed Sep 14, 2011 7:53 am
Senior Project Member
Gotcha, thanks for the update. :)
Wed Sep 14, 2011 7:36 pm
just outta curiousity, are there any workarounds for making daggerfall work?

Im pretty sure mine has never worked, despite having all the things set to on and being on hotkeys. would really like to take advantage of such a powerful disc.
_________________
for fun
Thu Jan 23, 2014 7:07 pm
Macro based solutions seem to be more likely to succeed than using only the plugin.
Fri Jan 24, 2014 6:30 pm
Senior Project Member
As a follow up to my ancient post, this never worked right on live either. It is not unique to eqemu versions.
_________________
Sorvani
Fri Jan 24, 2014 6:47 pm
Senior Project Member
like something modbot (I am learning and using it now) could do, or something written on its own?
_________________
for fun
Fri Jan 24, 2014 6:47 pm
Errors MQ2Melee and Assassinate
Reply