MQ2Melee

From MacroQuest Wiki

(Difference between revisions)
Revision as of 17:01, 28 October 2006
S0rcier (Talk | contribs)
Detected Disciplines
← Previous diff
Revision as of 17:02, 28 October 2006
S0rcier (Talk | contribs)
Combat Abilities
Next diff →
Line 79: Line 79:
== Supported Abilities == == Supported Abilities ==
=== Combat Abilities === === Combat Abilities ===
-* BackStab, Bash, Begging, Disarm, Dragon Punch, Eagle Strike, Feign Death, Flying Kick+* BackStab, Bash, Begging, Disarm, Dragon Punch, Eagle Strike, Feign Death, Flying Kick, Forage, Frenzy, Hide, Intimidation, Kick, Mend, Pick Pockets, Round Kick, Sense Traps, Sneak, Taunt and Tiger Claw.
-* Forage, Frenzy, Hide, Intimidation, Kick, Mend, Pick Pockets, Round Kick, Sense Traps+
-* Sneak, Taunt and Tiger Claw+
=== Alternate Advancement Abilities === === Alternate Advancement Abilities ===

Revision as of 17:02, 28 October 2006

MQ2Melee The next generation of the plugin that works combat intelligently.

Contents

Introduction

The MQ2Melee plugin was designed to be next evolution of MQ2AutoSkills and MQ2ThrowIt plugins with all their features and functionnalities and even more... All credits for the concept should go to Cr4zyb4rd and Bushdaka and all those people involved that have been maintaining those excellent plugins. They provided s0rcier,with the inspiration to built upon their efforts. The current goal of MQ2Melee is to provide intelligent use of SHORT TIME REUSE MELEE ABILITIES and PET HANDLING during combat depending on current game conditions and plugins configuration. It is designed to replace melee oriented functions that are commonly used in macros. Things like "/assist" "/shield" or "lay hands" are still beyond scope of MQ2Melee.

Donations

MQ2Melee, like all of the plugins here, is a labor of the developer's love. If you make this this plugin part of your normal EQ experience please consider donating to s0rcier for all his hard work. It takes many hours to just instrument something as simple as /face or adding a new discpline to MQ2Melee. Any financial contribution to MQ2Melee's continued development would be greatly appreciated.

Lately for fixing MQ2Melee and updating it for Serpent Spine, s0rCieR invested at least 60 hours of his time, writing, fixing, testing, debugging etc, and this not including time spent on forums/irc helping out fans.

To make a donation via PayPal just click on magius@videotron.ca or use magius@videotron.ca.

Special Recognition

Thumbs Up and Many Thanks to the BETA Tester Team: A_Druid_00, Dark2phoenix, DigitalMocking, Lacky, Moeymoejoe, Outlander and Warauinu, and also thanks to those plugin authors Busdaka, Cr4zyb4rd, Outlander and Wassup and finally thanks to Dark2pheonix and Wasted for updating and maintening the Wiki Page.

Prerequisites

  1. You must have 1 point trained in any trainable Combat Ability you would like to use
  2. You must have purchased the Alternate Ability you would like to use
  3. You must have trained the Combat Discipline you would like to use
  4. You meet any prerequisites for the use of the ability (i.e. can't slam from a mount, can't bash without a shield or a two handed weapon and the AA ability, can't backstab without being behind target with a piercing weapon, etc...)
  5. MQ2MoveUtils plugin is needed to use /stick parmameters.(wiki here)
  6. MQ2Cast is needed to be able to cast spell, alt ability or item.
  7. MacroQuest2 (MQ2-20060213)+

Features

  • Auto use abilities according to setting and game conditions.
  • Auto Equip defined items for bashing, backstabbing or ranged.
  • Built in user conditions to restrain use of certain abilities.
  • CHAT MONITORING
    • Failed/Broken Feign Death Auto-Stand.
    • Begin to Cast Auto(Bash/Slam/Kick) or Auto Cast defined Stuns.
    • Enrage/Infuriate Auto Turn Attack On/Off.
  • MELEE
    • Auto Equip Weapon set prior to engage. (agro/non-aggro mode).
    • Auto Use of defined abilities.
    • Configurable Stick Arguments for Melee Mode.
  • MELEE (AGGRO MODE)
    • Auto Taunt when you loose aggro on target.
    • Configurable spells to cast to gain/maintain aggro.
  • MELEE (NON AGGRO MODE)
    • BackOff/Feign/Evade fight if your health goes below a point.
    • Auto Resume fight if your health goes back above a point.
  • RANGED
    • Toggle between Melee/Range Mode According to Target Distance.
    • Swap In/Out defined ranged items (bow/throwing).
    • Auto Refill ammunitions slot when less than 80 in a stack.
    • Built-in /throwit command you could use to pulls.
    • Auto-Sleep mode while autofire is on.
    • Configurable automatic facing of target.
  • PET HANDLING
    • Issue /pet back and /pet hold after each mobs dies.
    • Configure pet to wait to assist till mobs within range.
    • Configure pet to wait to assist till end of specified delay.
    • Pet mending if its life goes below a certain point.
    • Option to auto-reengage target when no longer mezzed.
    • Backup pet on enrage/infuriate events and re-engaging of target.
    • Auto /pet hold if you manually hit back button or do /pet back.
  • USER DEFINED CONDITIONS
    • Allows for conditional use of various abilities/disciplines.
    • Allows for customized actions based on conditional statements.
  • TOP-LEVEL OBJECTS
    • Provides data information for better macro integration and HUD designs.
    • Can be used with custom User-defined conditions.

Supported Abilities

Combat Abilities

  • BackStab, Bash, Begging, Disarm, Dragon Punch, Eagle Strike, Feign Death, Flying Kick, Forage, Frenzy, Hide, Intimidation, Kick, Mend, Pick Pockets, Round Kick, Sense Traps, Sneak, Taunt and Tiger Claw.

Alternate Advancement Abilities

  • 2 Hand Bash, Call of Challenge, Escape, Feral Swipe, Mend Companion, Replenish Companion, Seized Opportunity, and Pet Discipline (/pet hold).

Melee Disciplines

  • Ancient: Chaos Cry, Ancient: Chaos Strike, Ashenhand Discipline, Assasin Discipline(3), Assasin Strike, Baffling Strike, Bazu Bellow, Bellow, Bellow of the Mastruq, Berate, Commanding Voice,Confusing Strike, ClawStriker Flurry(3), Cry Havoc, Daggerfall, Destroyer's Volley, Diversive Strike, Distracting Strike, Dragon Fang, Fists of Wu, Giant Slayer's Volley(3), Head Strike, Head Pummel, Head Crush, Heel of Kanji, Incite, Jarring Strike(3), Kyv Strike, Leopard Claw, Mind Strike, Provoke, Rage Volley, Rake, RazorArc, Scowl(3), Silentfist, Sneak Attack, Temple Blow(3), Thief's Eye, Thief's Vengeance, Throw Stone, and Thunderkick.

Detected Disciplines

Following Disciplines are detected to promote some combat abilities:

  • Ashenhand Discipline, Assassin Discipline(3), Heel of Kanji, Silentfist Discipline, and Thunderkick Discipline,

Spell Handling

To determine the proper Spell ID for any Discipline, Ability or Spell to be used with the provoke/stun commands use /echo [Needs Correct Syntax] You can also look up the ID on http://lucy.allakhazam.com/

  • Provoke could be configured to cast any aa,disc or spell in games, it will auto-detect if you loose aggro with your target then attempt to use any of the defined spells.
* Ancient Chaos Cry [id=5016]
* Bazu Bellow [id=6173]
* Bellow [id=4681]
* Bellow of the Mastruq [id=5015]
* Berate [id=4682]
* Incite [id=4697]
* Mock [id=8467]
* Provoke [id=4608]
* crippling strike [468] example: /aa info cripping strike gets you 468
  • Stuns could be configured to cast any aa, discipline or spells in games, it will autodetect if target begin to cast a spell and attempt to stuns it with the following set spells.

Commands

/melee [options]

Example: /melee on aggro=on taunt=on kick=1 bash=0 intimidation=false disarm=true (Note that for all parameters 0=false=off and 1=true=on)

/melee will only list and report abilities and setting that are available to you.

Note: /melee just changes the values in the INI. If you begin with /melee aggro=on kick=on, but want to stop taunting, you must use /melee aggro=off, not /melee kick=on (in other words, your settings are NOT reset with each use of /melee)

  • [on|off]
    Turn plugin On/Off
  • aggro=[on|off]
    Plugin tries to keep aggro on target using all enabled aggro abilities/disciplines until aggro is regained or either you or the target dies.
  • aggropri=[Item ID]
    Item ID for primary weapon to be used in aggro mode.
  • aggrosec=[Item ID]
    Item ID for secondary weapon to be used in aggro mode.
  • arrow=[Item ID]
    Item ID of ammunition to use for ranged/throwing attacks
  • backoff=[0-100]
    Turns attack off if your life percentage goes below the designated value. Will never back off due to low health if aggro=on.
  • backstab=[0-180]
    Will try to backstab if you wielding a piercing weapon in main hand and you are within [X] degrees +/- of the targets back (ie 45 is a good angle for just backstabbing, 180 will backstab from all directions.
  • bash=[on|off]
    Will try to bash target if you have a shield equipped or have have a 2-handed weapon and the 2 Hand Bash AA.
  • begging=[on|off]
    Will turn attack off and beg target and turn back on. Does not work if aggro=on.
  • bow=[Item ID]
    Item ID for ranged weapon
  • challenge=[on|off]
    Will use Call of Challenge AA as it refreshes.
  • commanding=[0-100]
    Uses Commanding Voice Discipline if your endurance is over [X]%
  • cryhavoc=[0-100]
    Uses the Cry Havoc Discipline if your endurance is over [X]%
  • downflag0=[on|off]
    Whether or not to use defined DownShit0 from ini.
  • disarm=[on|off]
    Will try to disarm target if target is wielding something.
  • dragonpunch=[on|off]
    Will use dragon punch if available.
  • eaglestrike=[on|off]
    Will use eagle strike if available.
  • enrage=[on|off]
    Turns attack off and issues /pet hold (/pet back if hold not available) if target enrages and you are facing it. Re-engages when enrage ends.
  • escape=[0-100]
    Turn off Attack and use rogue escape skill if your life percentage goes below the designated value. Will never happen if aggro=on. (Needs more testing)
  • evade=[on|off]
    Will attempt to evade in fight to drop some aggro each time hide skill available, strongly suggest that you set unhide=1 to authorise plugin to break invis for that.
  • facing=[on|off]
    Whether or not to face target (checked every 2 seconds and only in ranged mode)
  • feigndeath=[0-100]
    Feigns death if your life percentage goes below this value. Will never feign if aggro=on. (Needs more testing)
  • feralswipe=[on|off]
    Will trigger feral swipe AA as it refreshes.
  • fistofwu=[0-100]
    Uses the Fist of Wu Discipline if your endurance is over [X]%
  • flyingkick=[on|off]
    Will use flying kick if available.
  • forage=[on|off]
    Will try to forage up food/water if not in combat.
  • frenzy=[on|off]
    Will try to use frenzy if available.
  • hide=[on|off]
    Will try to hide if you're not in a combat and not moving.
  • holyflag0=[on|off]
    Whether or not to use defined HolyShit0 from ini.
  • holyflag1=[on|off]
    Whether or not to use defined HolyShit1 from ini.
  • holyflag2=[on|off]
    Whether or not to use defined HolyShit2 from ini.
  • holyflag3=[on|off]
    Whether or not to use defined HolyShit3 from ini.
  • holyflag4=[on|off]
    Whether or not to use defined HolyShit4 from ini.
  • holyflag5=[on|off]
    Whether or not to use defined HolyShit5 from ini.
  • holyflag6=[on|off]
    Whether or not to use defined HolyShit6 from ini.
  • holyflag7=[on|off]
    Whether or not to use defined HolyShit7 from ini.
  • infuriate=[on|off]
    Turns attack off and issues /pet hold (/pet back if hold not available) if target infuriates and you are facing it. Re-engages when infuriate ends.
  • intimidation=[on|off]
    Will use intimidation if available.
  • kick=[on|off]
    Will use kick as often as possible.
  • leopardclaw=[0-100]
    Will use Leopard Claw or Dragon Fang discipline when your endurace is above [X]%. If not in aggro mode will wait till target HP get below 70% before using.
  • melee=[on|off]
    Turn Melee Mode On/Off.
  • meleepri=[Item ID]
    Item ID for primary weapon to be used in non-aggro mode.
  • meleesec=[Item ID]
    Item ID for secondary weapon to be used in non-aggro mode
  • mend=[0-100]
    Mend your wound if your life percentage goes below the designated value.
  • petassist=[on|off]
    Will send pet attack on engage and backoff on enrage/infuriate if those skills are on. The plugin will also use /pet hold if you have that AA.
  • petdelay=[0-30]
    Will not engage pet until [x] seconds has passed.
  • petlock=[on|off]
    Monitor mezzed targets and re-engage when mez ends/breaks. Will also monitor if pet is sitting idle and send it in to attack.
  • petmend=[0-100]
    Cast Mend Companion or Replenish Companion if pet is at or below given health %.(Will cast higher of the two if you have both.
  • petrange=[0-150]
    Will not engage pet until mob is within [x] of your pet.
  • provoke0=[Disc/AA/Spell ID #]
    ID of the Disc/AA/Spell to use for provoking (0=off)
  • provoke1=[Disc/AA/Spell ID #]
    ID of the Disc/AA/Spell to use for provoking (0=off)
  • provokeend=[0-100]
    Stop trying to prvoke when target's health falls below [X]% (default=15)
  • provokemax=[0-100]
    Number of times you will try provoking aa/disc/spells to regain aggro (default=1)
  • pickpockets=[on|off]
    Turn off attack & try to pickpocket if not in aggro mode.
  • poker=[Item ID]
    Item ID for backstabbing weapon
  • ragevolley=[0-100]
    Will use best ragevolley discipline available and ready.
  • range=[0-250]
    Enables ranged attacks when target is at or beyond this range. Note that 0 disables ranged attacks completely.
  • resume=[0-100]
    Stand up and turn back attack on if your life percentage goes above this value. Used with /melee feigndeath
  • roundkick=[on|off]
    Will use round kick if available.
  • sensetraps=[on|off]
    Will try to sense traps if not in combat.
  • setaggro=[name]
    Name of defined bandolier for Aggro weapon(s) as per MQ2Bandolier
  • setmelee=[name]
    Name of defined bandolier for Melee weapon(s) as per MQ2Bandolier
  • shield=[Item ID]
    Item ID for shield to use for bashing
  • slam=[on|off]
    Will slam as often as possible.
  • sneak=[on|off]
    Will try to sneak if not in combat.
  • stickdelay=[0-99]
    Wait in seconds before sticking to target
  • stickrange=[0+]
    Enables sticking when target is at set distance away. Note that 0 means no sticking
  • stun0=[Disc/AA/Spell ID #]
    ID of the Disc/AA/Spell to use for stunning. (0=off)
  • stun1=[Disc/AA/Spell ID #]
    ID of the Disc/AA/Spell to use for stunning. (0=off)
  • stunning=[0-100]
    Cast defined Stun spell(s) if target at or below [X]% and or if target is detected as casting a spell.
  • taunt=[on|off]
    Will push taunt button if aggro=on and you're not the target's target. Without a TauntIF statement, this will cause your toon to chain taunt. If you do not wish for that, use TauntIFs as stated below.
  • thiefeye=[0-100]
    Uses the Thief Eye Discipline if your endurance is over [X]%
  • throwstone=[0-100]
    Will use throw stone disc when ready and target in range. (Will not use in aggro/provoke mode if provoke has not been used yet).
  • tigerclaw=[on|off]
    Will try to use tiger claw if available.
  • unhide=[on|off]
    Will allow the plugin to bring you out of hide and or break invis. (experimental)

/save /load

Save changes to the ini file / load changes from the ini file. Changes are NOT saved automatically.

/killthis

Tells the plugin that you want to engage the current target, if your feigning death, this should stand you up. It will also reset all the plugin's internal values. (If you play your toon manually you dont need to use that command at all, just press the attack button!)

note:the attack key (NOT hotbutton) must be set in the options window before the plugin is loaded, default is "A".  Also if you change the attack key, in game options, you have to reload the plugin for it to recongnize this. 

If you use the hotbutton it will *not* stop attacking when pressed again, until the target is dead.

 for ranged attack, /autofire will not make use of the plugin (facing, sticking, swapping into melee, etc.), just use the same attack key for melee and the plugin will do the rest.

/throwit

Tells the plugin to perform a single ranged attack on current target. This will use MQ2Melee's Built-In Enhanced Ranged Mode(tm)! This means the plugin will auto-equip defined ammunition and ranged item, auto-refill ammunition, perform archery/throwing, then swap back previous range item. This is useful for pulling and other single-use purposes.


/enrageon <targetid>

Tells the plugin to react as if there was an enrage event being detected. If target ID is given it will make sure it matches internal killing target id. (This is designed to be used with 3rd party plugins and/or macros eg: mq2events with mq2eqbc, create trigger to detect that target goes on enrage state, then set it to broadcast via mq2eqbc "/bca //enrageon ${Target.ID}" it will allow casters that might be too far from melee to detect that mob is enraged and back up their pet!)

/enrageoff <targetid>

Tells plugin to react as if an enrage event is finished. See Also /enrageon.

/infuriateon <targetid>

Tells plugin to react as if an infuriate event was detected. See Also /enrageon.

/infuriateoff <targetid>

Tells plugin to react as if an infuriate event is finished. See Also /infuriateoff.

Top Level Objects

MQ2Melee now has built in Top Level Objects (TLOs) that provide data informations that could be used for macro scripting, hud designing or with internal built in user defined conditions. s0rcier plans on expending this TLO with requests that he gets.

  • ${Melee.AggroMode}
    true/false if plugin operating in aggro mode or not.
  • ${Melee.Ammunition}
    integer count of ammunition for defined ammunition or current equipped ammunition.
  • ${Melee.BackAngle}
    float angle representing heading difference with current target`s back.
  • ${Melee.BackStabbing}
    true/false if BackStab setting on/off.
  • ${Melee.Casted}
    integer time elapsed since last detect spell casting. 1000/second. 60000 if not.
  • ${Melee.Combat}
    true/false if plugin enable and got valid kill target. Should replace ${Me.Combat} logic.
  • ${Melee.DiscID}
    integer matching spell id of current discipline running, 0 if none.
  • ${Melee.Enable}
    true/false if plugin on/off, return null if not loaded.
  • ${Melee.Engage}
    true/false if we have a valid kill target and it`s okay to turn attack on.
  • ${Melee.Enrage}
    true/false if kill target is enraged!
  • ${Melee.GotAggro}
    true/false if current target seems to be aggroed on you. (not perfect)
  • ${Melee.Immobilize}
    true/false if you are immobilize for more then 250ms.
  • ${Melee.Infuriate}
    true/false if kill target is infuriated!
  • ${Melee.MeleeMode}
    integer maximum distance to kill target to be considered in melee.
  • ${Melee.RangeMode}
    integer minimum distance to kill target to be considered in archery.
  • ${Melee.Status}
    string representing current plugin status.
  • ${Melee.Target}
    integer matching spawn id of current valid kill target, otherwise 0.
  • ${Melee.ViewAngle}
    float angle of view with current target!
  • ${meleemvb[idskill]}
    returns true if the skill is ready and target in range (range not checked for all skills). useful for debugging. idmend, idchallenge, iddragonfang, etc. are testable. ex: /echo ${meleemvb[idleopardclaw]}
  • ${meleemvi[variable]}
    true/false if variable setting on/off. gives you access to addition toggled states. ex: ${meleemvi[enrage]} tests for enrage=0/1 toggle
  • ${meleemvs[if conditional]}
    returns evaluation of a setting conditional based on current conditions/target. no return indicates no conditional defined. mainly useful for debugging. stunningif, holyshit0, tauntif, etc are testable. ex: /echo ${meleemvs[holyshit0]} returns how holyshit0= evaluates

INI settings

INI Settings directly relate to to commands issued by the /melee command. With few exceptions, I'd recommend letting MQ2Melee itself set the ini as resulted from the /melee command. Where this is not possible, it is noted below.
  • Aggro=[0|1]
    /melee aggro=on|off
  • BackOff=[0-100]
    /melee backoff=0-100
  • BackStab=[0-180] (0=off)
    /melee backstab=0-180
  • Bash=[0|1]
    /melee bash=on|off
  • Begging=[0|1]
    /melee begging=on|off
  • Challenge=[0|1]
    /melee challenge=on|off
  • Commanding=[0-100]
    /melee commanding=0-100
  • CryHavoc=[0|1]
    /melee cryhavoc=0-100
  • Disarm=[0|1]
    /melee disarm=on|off
  • DragonPunch=[0|1]
    /melee dragonpunch=on|off
  • EagleStrike=[0|1]
    /melee eaglestrike=on|off
  • Enrage=[0|1]
    /melee enrage=on|off
  • Evade=[0-100]
    /melee evade=0-100
  • Facing=[0|1]
    /melee facing=on|off
  • FeignDeath=[0-100]
    /melee feigndeath=0-100
  • FeralSwipe=[0|1]
    /melee feralswipe=on|off
  • FistsOfWu=[0|1]
    /melee fistofwu=on|off
  • FlyingKick=[0|1]
    /melee flyingkick=on|off
  • Forage=[0|1]
    /melee forage=on|off
  • Frenzy=[0|1]
    /melee frenzy=on|off
  • Hide=[0|1]
    /melee hide=on|off
  • Holyflag0=[0|1]
    /melee holyflag0=0|1
  • Holyflag1=[0|1]
    /melee holyflag1=0|1
  • Holyflag2=[0|1]
    /melee holyflag2=0|1
  • Holyflag3=[0|1]
    /melee holyflag3=0|1
  • Holyflag4=[0|1]
    /melee holyflag4=0|1
  • Holyflag5=[0|1]
    /melee holyflag5=0|1
  • Holyflag6=[0|1]
    /melee holyflag6=0|1
  • Holyflag7=[0|1]
    /melee holyflag7=0|1
  • Infuriate=[0|1]
    /melee infuriate=on|off
  • Intimidation=[0|1]
    /melee intimidation=on|off
  • Kick=[0|1]
    /melee kick=on|off
  • LeopardClaw=[0|1]
    /melee leopardclaw=on|off
  • Melee=[0|1]
    /melee melee=on|off
  • Mend=[0-100]
    /melee mend=0-100
  • PetAssist=[0|1]
    /melee petassist=on|off
  • PetDelay=[0-30]
    /melee petdelay=0-30
  • PetRange=[0-150]
    /melee petrange=0-150
  • PickPockets=[0|1]
    /melee pickpockets=on|off
  • Plugin=[0|1]
    /melee on|off
  • Provoke0=[#]
    /melee provoke0=#
  • Provoke1=[#]
    /melee provoke1=#
  • Provoke2=[#]
    /melee provoke2=#
  • ProvokeEnd=[0+]
    /melee provokeend=0+
  • ProvokeMax=[0+]
    /melee provokemax=0+
  • RageVolley=[0|1]
    /melee ragevolley=on|off
  • Range=[0-250]
    /melee range=0+
  • Resume=[0-100]
    /melee resume=0-100
  • RoundKick=[0|1]
    /melee roundkick=on|off
  • SenseTraps=[0|1]
    /melee sensetraps=on|off
  • Slam=[0|1]
    /melee slam=on|off
  • Sneak=[0|1]
    /melee sneak=on|off
  • StandUp=[0|1]
    /melee standup=on|off
  • StickDelay=[0-30]
    /melee stickdelay=0-30
  • StickRange=[0-100]
    /melee stickrange=0-100
  • Taunt=[0|1]
    /melee taunt=on|off
  • ThiefEye=[0|1]
    /melee thiefeye=0-100
  • ThrowStone=[0|1]
    /melee throwstone=on|off
  • TigerClaw=[0|1]
    /melee tigerclaw=on|off
  • Unhide=[0|1]
    /melee unhide=on|off

The following options do not have associate /melee arguments and have to be set in the INI itself it you'd like to overwrite the defaults, which are listed below.

Stick Command

StickCmd=Param Param ...

See the Examples in the "Sample INI Entries" Listed Below.

User-Defined IF conditions

There are currently two restriction you have to consider before attempting to create your own special condition. CONDITIONS MUST RETURN AN INTEGER. Any evaluated result that is not 0 will return true, all the rest will return false. ${Me.Combat} will always return false. ${If[${Me.Combat],1,0]} will always be evaluated correctly. Your defined condtition lenght must not EXCEED 255 CARACTERS or it will cause plugin to CTD. Use ${meleemvs[if conditional]} to debug issues (/echo ${meleemvs[backstabif]} )

  • BackStabIF=[conditions]
    Conditions which must be true before Backstab will fire.
  • BashIF=[conditions]
    Conditions which must be true before Bash will fire.
  • BeggingIF=[conditions]
    Conditions which must be true before Begging will fire.
  • CommandingIF=[conditions]
    Conditions which must be true before Commanding Voice will fire.
  • CryHavocIF=[conditions]
    Conditions which must be true before Cry Havoc will fire.
  • DisarmIF=[conditions]
    Conditions which must be true before Disarm will fire.
  • DragonPunchIF=[conditions]
    Conditions which must be true before Dragon Punch will fire.
  • EagleStrikeIF=[conditions]
    Conditions which must be true before Eagle Strike will fire.
  • EvadeIF=[conditions]
    Conditions which must be true before evading will fire.
  • FistsOfWuIF=[conditions]
    Conditions which must be true before Fist of Wu will fire.
  • FlyingKickIF=[conditions]
    Conditions which must be true before Flying Kick will fire.
  • ForageIF=[conditions]
    Conditions which must be true before Forage will fire.
  • FrenzyIF=[conditions]
    Conditions which must be true before Frenzy will fire.
  • HideIF=[conditions]
    Conditions which must be true before Hide will fire.
  • IntimidationIF=[conditions]
    Conditions which must be true before Intimidation will fire.
  • KickIF=[conditions]
    Conditions which must be true before Kick will fire.
  • LeopardClawIF=[conditions]
    Conditions which must be true before Leopard Claw will fire.
  • MendIF=[conditions]
    Conditions which must be true before Mend will fire.
  • PickPocketsIF=[conditions]
    Conditions which must be true before Pick Pockets will fire.
  • RageVolleyIF=[conditions]
    Conditions which must be true before Rage Volley will fire.
  • RoundKickIF=[conditions]
    Conditions which must be true before Round Kick will fire.
  • SenseTrapsIF=[conditions]
    Conditions which must be true before Sense Traps will fire.
  • SlamIF=[conditions]
    Conditions which must be true before Slam will fire.
  • SneakIF=[conditions]
    Conditions which must be true before Sneak will fire.
  • StunningIF=[conditions]
    Conditions which must be true before stunning will fire.
  • TauntIF=[conditions]
    Conditions which must be true before Taunt will fire.
  • ThiefEyeIF=[conditions]
    Conditions which must be true before Thief Eye will fire.
  • ThrowStoneIF=[conditions]
    Conditions which must be true before Throw Stone will fire.
  • TigerclawIF=[conditions]
    Conditions which must be true before Tiger Claw will fire.

Sample User Defined Conditions

BackStabIF=${If[${Melee.AggroMode} || ${Target.PctHPs}<85,1,0]} 
BashIF=${If[${Target.Class.CanCast} || ${Melee.AggroMode},1,0]} 
DisarmIF=${If[${Target.Holding} || ${Math.Rand[100]>92,1,0]} 
ForageIF=${If[${Me.Inventory[chest].ID} && !${Cursor.ID},1,0]} 
TauntIF=${If[${Me.GroupSize} && !${Melee.GotAggro},1,0]} 
CommandingIF=${If[${Target.PctHPs}>75,1,0]} 
CryHavocIF=${If[${Target.PctHPs}>75,1,0]} 
FistsOfWuIF=${If[${Target.PctHPs}>75,1,0]} 
ThiefEyeIF=${If[${Target.PctHPs}>75,1,0]} 
LeopardClawIF=${If[${Melee.AggroMode} || ${Target.PctHPs}<70,1,0]} 
ThrowStoneIF=${If[!${Melee.AggroMode},1,0]}
StunningIF=${FindItemCount[=Axe of Destroyer]}
bashif=${If[(${Target.Class.CanCast}  && ${Melee.Casted}<3500) || (!${Target.Class.CanCast}) || (${Target.Fleeing}),1,0]}
stunningif=${If[(${Target.Class.CanCast}  && ${Melee.Casted}<3500),1,0]}

Holy Shit

MQ2Melee now supports up to 8 macro command lines that will be executed one at a time if there is no casting going and the cursor is free. You must be carefull when setting those to not fall into an auto-repeat endless loops and create spam wars. Make sure that, when done, your conditions will setup something that will force the next time this is evaluated to be false for a while!

  • HolyShit0=[conditions and actions]
    Conditions and actions for HolyShit0
  • HolyShit1=[conditions and actions]
    Conditions and actions for HolyShit1
  • HolyShit2=[conditions and actions]
    Conditions and actions for HolyShit2
  • HolyShit3=[conditions and actions]
    Conditions and actions for HolyShit3
  • HolyShit4=[conditions and actions]
    Conditions and actions for HolyShit4
  • HolyShit5=[conditions and actions]
    Conditions and actions for HolyShit5
  • HolyShit6=[conditions and actions]
    Conditions and actions for HolyShit6
  • HolyShit7=[conditions and actions]
    Conditions and actions for HolyShit7

Note: With proper use of HolyShits, MQ2Melee can be configured to do just about anything.

Sample Holy Shit entries

HolyShit0=/if (${Me.Inventory[offhand].ID}==82634 && !${Me.Buff[avatar].ID} && ${Spell[avatar].Stacks}) /exchange 29435 offhand 
HolyShit1=/if (${Me.Inventory[offhand].ID}==29435 && (${Me.Buff[avatar].ID} || !${Spell[avatar].Stacks})) /exchange 82634 offhand
HolyShit2=/if (${Melee.Combat} && ${SpawnCount[npc radius 50]}>1 && ${Me.AltAbilityReady[area taunt]}) /alt activate 110

Down Shit

These are similar to HolyShit, but are only executed during downtime (when not in combat as defined by the plugin fighting). You must be carefull when setting those to not fall into an auto-repeat endless loops and create spam wars. Make sure that, when done, your conditions will setup something that will force the next time this is evaluated to be false for a while!

  • DownShit0=[conditions and actions]
    Conditions and actions for DownShit0


Sample INI Entries

It's recommended you set all abilities via command line (/melee on melee=15 range=15 etc...) to make sure all pre-requisite settings are activated also and use these as examples.

Cleric

[MQ2Melee]
Plugin=1
Enrage=1
Infuriate=1
Stun0=5266
BackOff=70
Resume=95
StandUp=1
Bash=1
Begging=1
Shield=83823
StickCmd=hold 15 ${If[!${Me.GroupSize} || ${Melee.AggroMode},moveback, ${If[${Melee.BackStabbing},behind,!front]}]} ${If[${Me.Underwater},uw,]}

Mage

[MQ2Melee]
Plugin=1
Enrage=1
Infuriate=1
PetAssist=1
PetRange=100
PetMend=50
StandUp=1
Begging=1
StickCmd=hold 15 ${If[!${Me.GroupSize} || ${Melee.AggroMode},moveback, ${If[${Melee.BackStabbing},behind,!front]}]} ${If[${Me.Underwater},uw,]}
petlock=1

Shaman

[MQ2Melee]
Plugin=1
Enrage=1
Infuriate=1
PetAssist=1
PetRange=75
Resume=1
StandUp=1
StickCmd=hold 15 ${If[!${Me.GroupSize} || ${Melee.AggroMode},moveback, ${If[${Melee.BackStabbing},behind,!front]}]} ${If[${Me.Underwater},uw,]}

Warrior

[MQ2Melee]
aggro=1
aggropri=82634
aggrosec=82235
arrow=8316
bash=1
bow=29597
challenge=1
enrage=1
facing=1
holyflag0=1
holyflag1=1
holyflag2=1
holyshit0=/if (${Me.Inventory[offhand].ID}==82634 && !${Me.Buff[avatar].ID} && ${Spell[avatar].Stacks} && (${Melee.AggroMode} && ${Melee.GotAggro})) /exchange 29435 offhand
holyshit1=/if (${Me.Inventory[offhand].ID}==29435 && (${Me.Buff[avatar].ID} || !${Spell[avatar].Stacks} || (${Melee.AggroMode} && !${Melee.GotAggro}))) /exchange 82634 offhand
holyshit2=/if (${Melee.Combat} && ${SpawnCount[npc radius 50 zradius 10]}>1 && ${Me.AltAbilityReady[area taunt]} && ${Melee.AggroMode}) /alt activate 110
infuriate=1
melee=15
plugin=1
provoke0=6173
provokeend=10
provokemax=5
shield=82082
standup=1
stickcmd=13 ${If[!${Me.GroupSize} || ${Melee.AggroMode},moveback, ${If[${Melee.BackStabbing},behind,!front]}]} ${If[${Me.Underwater} || ${Me.Levitating},uw,]}
stickdelay=1
stickrange=40
taunt=1
tauntif=${If[${Me.GroupSize} && !${Melee.GotAggro},1,0]}

Monk

[MQ2Melee]
Plugin=1
Melee=15
Enrage=1
Infuriate=1
StickRange=50
SnareAT=10
Snaring=6067
Stunning=10
Stun0=469
LeopardClaw=50
BackOff=30
FeignDeath=30
Resume=70
StandUp=1
FlyingKick=1
Mend=40
Arrow=8333
StickCmd=13 ${If[!${Me.GroupSize} || ${Melee.AggroMode},moveback, ${If[${Melee.BackStabbing},behind,!front]}]} ${If[${Me.Underwater},uw,]}
meleepri=70316
meleesec=82242
snaring0=468

Enchanter

[MQ2Melee]
Plugin=1
Enrage=1
Infuriate=1
PetAssist=1
PetRange=75
Resume=1
StandUp=1
StickCmd=hold 15 ${If[!${Me.GroupSize} || ${Melee.AggroMode},moveback, ${If[${Melee.BackStabbing},behind,!front]}]} ${If[${Me.Underwater},uw,]}

Ranger

[MQ2Melee]
version=3.747
aggro=1
disarm=1
enrage=1
forage=1
kick=1
taunt=1
tauntif=${If[${Me.GroupSize} && ${Melee.AggroMode} && !${Melee.GotAggro},1,0]}
melee=15
range=250
plugin=1
facing=1
snareat=30
;snareing0=Entrap
snaring0=219
;snaring1=Earthen Embrace
snaring1=6732
stickdelay=0
stickrange=50
stickcmd=hold 15 ${If[!${Me.GroupSize} || ${Melee.AggroMode},moveback,!front]} ${If[${Me.Underwater},uw,]}
stunif=${If[(${Me.GroupSize} && ${Melee.AggroMode}) || !${Me.GroupSize},1,0]}
;stun0=Frost Wind
stun0=5309
;stun1=Hearth Embers
stun1=5313

Monk
[MQ2Melee]

aggro=1
bash=0
disarm=1
dragonpunch=0
eaglestrike=0
enrage=1
facing=1
feigndeath=30
fistsofwu=0
flyingkick=1
holyflag0=1
holyflag1=1
holyflag2=1
holyflag3=1
holyflag4=1
infuriate=1
kick=0
leopardclaw=40
melee=30
mend=20
plugin=1
pothealfast=15
pothealover=0
resume=20
roundkick=0
stickdelay=0
stickrange=50
stickcmd=hold 15 ${If[!${Me.GroupSize} || ${Melee.AggroMode},moveback,!front]} ${If[${Me.Underwater},uw,]}
stun0=469
tigerclaw=0
;holyshit 0/1 swap between epic1haste gloves and regular ones depending on detected haste buff.  you still will need to trigger the epic 1 gloves. i use a macro, you could make another holyshit to do that.
holyshit0=/if ((${Me.Inventory[hands].ID}==10652) && ( (${Me.Buff[celestial Tranquility].ID} && !${Spell[wonderous rapidity].Stacks}) || (!${Me.Buff[celestial Tranquility].ID} && !${Spell[celestial Tranquility].Stacks}) || (!${Me.Buff[celestial Tranquility].ID} && ${Me.FreeBuffSlots}<1))) /exchange 92038 hands
holyshit1=/if (${Spell[Celestial Tranquility].Stacks} && ${Spell[wonderous rapidity].Stacks}  && ${Me.FreeBuffSlots}>0 && !(${Me.Inventory[hands].ID}==10652)) /exchange 10652 hands
;holyshit2/3 toggle enrage detection if you have master's aura (makes you immune to enrage)
holyshit2=/if (!${Me.Song[Master's Aura Effect].ID} && !${meleemvi[enrage]}) /melee enrage=1
holyshit3=/if (${Me.Song[Master's Aura Effect].ID} && ${meleemvi[enrage]}) /melee enrage=0
;holyshit4 uses crippling strike to snare
holyshit4=/if (${Target.CurrentHPs}<20 && ${Target.Fleeing} && ${Me.AltAbilityReady[crippling strike]} && ${Target.Speed}>50) /aa act crippling strike
stunningif=${If[(${Target.Class.CanCast}  && ${Melee.Casted}<3500),1,0]}

Troubleshooting/FAQ

  • It wont attack pc/pc pets/corpses/etc.

You need to edit the source code for this. Change the bitmask in this line "#define NPC_TYPE 0x000A // NPC TYPE" to something else based on the enum a page down. For example to be able to attack npc/pc and thier pets change it to 0x000F.

  • I have made changes to my INI settings. How do I activate the new settings

If you have the /MQ2Melee plugin loaded and use an editor to make changes to your ini file, there are a few ways to reload the INI settings. From the command line enter /melee load or /melee reload. You can also unload the plugin and reload.

  • I keep having to making changes to my melee settings from the command line. How do I save the new settings?

From the command line enter /melee save.

  • I can't get the StickCmd to work?

With Version 4 of the MQ2Melee plugin there was a change to the StickCmd. The StickCmd no longer requires the /Stick as part of the parameters. The old format "StickCmd=/Stick hold 10 moveback". The 4.0 Version Format "StickCmd=hold 10 moveback".

See Also