Hi 40oz,
Was trying to figure out why my enchanter wont AEMez. I am not a code writer but I was looking at the program and noticed something, I'm not sure if this would make a difference but just pointing it out in case it does.
*** I want to credit all on IRC chat namely HTW and PeteSampras for helping me to understand the basic syntax definition .***
This is just possible findings that I saw which might possibly be the cause of the AE-MEZ issue. There is no intent to undermine everyone who has contributed their hard work and countless hours of time to this macro program. I just thought my findings might help to speed up the process to rectify the AEMEZ issue which I (possibly others) am having an issue with.
I believe there might be a misspelling on the below code as indicated as it is highlighted in
RED.
Comment: I don't know if it will make much difference, I'm just pointing it out.
Code:
/varset CurrentSub AEMez
/for m 1 to ${MezList.Count[|]}
/for i 1 to ${AEMezTotal}
/if (${aemezcnt}>2 && (${Me.SpellReady[${[COLOR="Red"]AEMezSpellNae[/COLOR]${i}}]}||${Me.AltAbilityReady[${AEMezSpellName${i}}]}) && ${Me.CurrentMana}>${Spell[${AEMezSpellName${i}}].Mana} && !${MezTimer${MezList.Arg[${m},|]}} && ${MezList.Arg[${m},|]}>0 && ${Spawn[id ${MezList.Arg[${m},|]}].ID} && ${AEMezUse${i}}) {
/call Debug 3 "Trying to AE Mez using ${AEMezSpellName${i}} on ${MezList.Arg[${m},|]}"
/squelch /tar id ${MezList.Arg[${m},|]}
/call MezAdd "${AEMezSpellName${i}}" "${AEMezSpellGem${i}}" ${Target.ID}
}
/next i
While on the same subject, I looked into the
${aemezcnt}. I am unsure why this int (interger) is always returning back a value of 1 regardless if I have 5 monsters on
${Me.XTarget}. Without any knowledge of writing codes or macros; and just echoing commands back in game, it looks as if
${mezcnt}=
${aemezcnt} even though
${AddCount} is of higher number. By looking at the /if statement it looks as if it is setting both
${mezcnt} and
${aemezcnt} to a value of 1 because both /if conditions are calling for it and the only thing separating the 2 conditions is one /if condition calls for
${mezcnt} and the other /if condition calls
${aemezcnt}; which both conditions are identical with the exception of 1 calls for
${mezcnt} while the other /if condition calls for
${aemezcnt}. In either case that is the only difference that I can see (code listed below) and is purely my opinion.
Code:
/for m 1 to ${MezList.Count[|]}
[COLOR="Purple"]/if (${Spawn[id ${MezList.Arg[${m},|]}].Distance}<100 && ${Spawn[id ${MezList.Arg[${m},|]}].Level}<=[COLOR="Magenta"]${MezMaxNPCLevel}[/COLOR] && !${MezTimer${MezList.Arg[${m},|]}}) [/COLOR]/varcalc mezcnt [COLOR="Magenta"]${mezcnt}[/COLOR]+1
[COLOR="purple"] /if (${Spawn[id ${MezList.Arg[${m},|]}].Distance}<100 && ${Spawn[id ${MezList.Arg[${m},|]}].Level}<=[COLOR="Cyan"]${AEMezMaxNPCLevel}[/COLOR] && !${MezTimer${MezList.Arg[${m},|]}}) [/COLOR]/varcalc aemezcnt [COLOR="Cyan"]${aemezcnt}[/COLOR]+1
Code:
[2017/02/02 18:17:58] [MQ2] 1 <---[COLOR="Magenta"]${mezcnt}
[/COLOR][2017/02/02 18:18:05] [MQ2] 1 <---[COLOR="Cyan"]${aemezcnt}
[/COLOR][2017/02/02 18:18:14] [MQ2] 0 <---[COLOR="Lime"]${AddCount}
[/COLOR]
"This is when idle, there is nothing on my Xtarget we are just sitting and not pulling or nothing is around us. Macro program running but idle."
Code:
[2017/02/02 18:20:28] [MQ2] 1 <---[COLOR="magenta"]${mezcnt}[/COLOR]
[2017/02/02 18:20:30] [MQ2] 1 <---[COLOR="Cyan"]${aemezcnt}[/COLOR]
[2017/02/02 18:20:42] [MQ2] 1 <---[COLOR="Lime"]${AddCount}
[/COLOR]
"Now we are fighting a monster. we only have 1 monster on XTarget and nothing else.
Code:
[2017/02/02 18:35:35] [MQ2] 1 <---[COLOR="magenta"]${mezcnt}[/COLOR]
[2017/02/02 18:35:41] [MQ2] 1 <---[COLOR="cyan"]${aemezcnt}
[/COLOR][2017/02/02 18:35:47] [MQ2] 0 <---[COLOR="lime"]${AddCount}
[/COLOR]
"Again, we are doing nothing, no fighting just sitting nothing around us and nothing on XTarget."
Code:
[2017/02/02 18:42:17] [MQ2] 1 <---[COLOR="magenta"]${mezcnt}[/COLOR]
[2017/02/02 18:42:19] [MQ2] 1 <---[COLOR="cyan"]${aemezcnt}
[/COLOR][2017/02/02 18:42:22] [MQ2] 3 <---[COLOR="lime"]${AddCount}
[/COLOR]"Now we have 3 monsters on the Xtarget, Tank is killing 1 monster while the other 2 was individualized mezed."
The only place in the program that I can see it setting
${mezcnt} and
${aemezcnt} to a value of 1 would be here on the below code where
${mezcnt}+1 and
${aemezcnt}+1 is setting them to a "int" (interger) of the value 1.
Then again, and once again, I'm not a code or macro writer so I am unsure and just making an assumption. I was just trying to find where and why is it always setting
${mezcnt} and
${aemezcnt} to a value of 1. This section might help to explain why
${mezcnt} and
${aemezcnt} is always returning back an "int" (interger) of 1.
Code:
/if (${Spawn[id ${MezList.Arg[${m},|]}].Distance}<100 && ${Spawn[id ${MezList.Arg[${m},|]}].Level}<=[COLOR="Magenta"]${MezMaxNPCLevel}[/COLOR] && !${MezTimer${MezList.Arg[${m},|]}}) /varcalc mezcnt [COLOR="Magenta"]${mezcnt}+1
[/COLOR] /if (${Spawn[id ${MezList.Arg[${m},|]}].Distance}<100 && ${Spawn[id ${MezList.Arg[${m},|]}].Level}<=[COLOR="Cyan"]${AEMezMaxNPCLevel}[/COLOR] && !${MezTimer${MezList.Arg[${m},|]}}) /varcalc aemezcnt [COLOR="cyan"]${aemezcnt}+1[/COLOR]
/if (${Spawn[id ${MezList.Arg[${m},|]}].Distance}<35 && ${Spawn[id ${MezList.Arg[${m},|]}].Level}<=${PBAEMezMaxNPCLevel} && !${MezTimer${MezList.Arg[${m},|]}}) /varcalc PBAEMezcnt ${PBAEMezcnt}+1
/next m
Out of curiosity I changed
${aemezcnt}>2 to
${Me.XTarget}>2 and changed
${Me.SpellReady[${AEMezSpellNae${i}}]} to
${Me.SpellReady[${AEMezSpellName${i}}]} on the below asscoicated /if condition; and now my enchanter is recognizing the AE mez and conditons. I am not changing anything to the program, like I said It was just out of curiosity.
Code:
/if ([COLOR="orange"]${Me.XTarget}>2[/COLOR] && ([COLOR="Magenta"]${Me.SpellReady[${AEMezSpellName${i}}]}[/COLOR]||${Me.AltAbilityReady[${AEMezSpellName${i}}]}) && ${Me.CurrentMana}>${Spell[${AEMezSpellName${i}}].Mana} && !${MezTimer${MezList.Arg[${m},|]}} && ${MezList.Arg[${m},|]}>0 && ${Spawn[id ${MezList.Arg[${m},|]}].ID} && ${AEMezUse${i}}) {
/call Debug 3 "Trying to AE Mez using ${AEMezSpellName${i}} on ${MezList.Arg[${m},|]}"
/squelch /tar id ${MezList.Arg[${m},|]}
/call MezAdd "${AEMezSpellName${i}}"
In my opinion, according to the /if statement; the condition calls for
${aemezcnt}>2. Since
${aemezcnt} always retuns back 1 it will never
AE-MEZ. That is just my assumption, Like I said I'm not a code writer and know nothing about writing macros its just something I saw and wanted to point it out to you just in case it might help to solving the AE-MEZ situation. Now that I changed
${aemezcnt}>2 to
${Me.XTarget}>2 it recognizes the AE-MEZ and when to mez the monsters.
I want to point out that I love the responsiveness to this macro program. it works real fast and I'm enjoying it a lot. I apologize if I am intruding on the hard work and time put into this and please know I had no intent to do so. My opinions and finding was just purely out of curiosity and that was it.
In any case enchanter is surely not AEmezzing at all.
thank you again for looking.