Need help with a macro you are writing? Ask here!
Moderator: MacroQuest Developers
-
Merlin
- a lesser mummy

- Posts: 69
- Joined: Tue Oct 26, 2004 2:33 am
Post
by Merlin » Sun Jul 31, 2011 8:07 pm
I am trying to figure out a way to make a macro that will hit Cry Havoc if I'm in combat and its not on. I tried copying a line from another macro I had but its not working as planned. Here is what I tried...
Code: Select all
/if (!${Me.Song[${Cry Havoc}].ID} && ${Target.ID}!=0 && ${Me.Combat}==1) {
/docommand /disc Cry Havoc
}
The check to see if Cry Havoc is active is failing. When running it like this it just spams cry havoc. Any help would be appreciated.
edit: full macro
Code: Select all
Sub Main
/declare Cry outer "Cry Hovoc"
:loop
{
/delay 1s
/if (${Target.ID}!=0 && ${Me.Combat}==1) {
/doability "Frenzy"
}
/delay 1
/if (${Me.CombatAbilityReady["Savage Volley Rk. II"]} && ${Target.ID}!=0 && ${Me.Combat}==1) {
/docommand /disc Savage Volley Rk. II
}
/delay 1
/if (!${Me.Song[${Cry}].ID} && ${Target.ID}!=0 && ${Me.Combat}==1) {
/docommand /disc Cry Havoc
}
/goto :loop
-
Olain
- a snow griffon

- Posts: 477
- Joined: Sun May 15, 2005 12:45 am
Post
by Olain » Sun Jul 31, 2011 8:21 pm
Something else you can do is use MQ2melee in the VIP section which does it for you :)
-
William12
- a hill giant

- Posts: 237
- Joined: Sat Apr 26, 2008 5:03 pm
Post
by William12 » Mon Aug 01, 2011 12:38 am
Code: Select all
|AF_Ber.mac V4.0
#turbo 40
#include wait4rez.inc
#include ninjadvloot.inc
#include General.inc
#include Spell_routines.inc
#event Experience "#*#You have slain#*#"
#event Experience "#*#has been slain by#*#"
#event Experience "#*#You gain party experience#*#"
#event Experience "#*#You gained raid experience#*#"
#event faraway "Your Target is too far away, get closer!"
#event IRC "<#1#> #2#"
#event SetVar "[MQ2] set: #1# #2#"
#event nosee "You cannot see your target."
#event CantHit "You can't hit them from here."
#event Zone "You have entered #1#."
#event Zone "LOADING, PLEASE WAIT..."
#event NotHold "Your spell did not take hold."
#event Help "[MQ2] Help"
#Event EQBC "<#1#> #2#"
#event EQBC "[#1#(msg)] #2#"
#chat tell
#chat chat
Sub main
/declare dummy int local
/call GeneralDeclares
/call GeneralDeclares2
/call event_zone
/call SetupAdvLootVars
/squelch /alias /Berhelp /echo help
/echo Berserker Script Started
:Mainloop
/varset MacroState MainLoop
/delay 1
/doevents
/if ( ${Followflag} || ${Me.Invis} ) /goto :Mainloop
/call DpsMode
/if (${DoLeash}) /call Leash
/call MedTime
/if (${Me.Dead}) /call wait4rez
/if (${DoLoot} && !${Me.Moving} && !${Me.Invis} && ${Me.XTarget}<1) /call LootMobs
/if (!${CheckExpTimer} && ${AutoExpAdjust}) /call AutoAdjustExp
/if (${DoAura} && ${Me.PctEndurance}>=5 && ${Spell[Bloodlust Aura].Stacks[0]} && !${Me.Song[Bloodlust Aura Effect].ID} && !${Me.Moving} && !${Me.Invis}) /disc Bloodlust Aura
/if (${Me.PctEndurance}<=24 && !${Melee.DiscID} && ${Me.CombatAbilityReady[${Respite}]} && !${Me.CombatState.Equal[COMBAT]} && !${Me.Invis}) /disc ${Respite}
/if (!${Me.Combat} && !${Me.Moving} && !${Me.Invis}) /call CheckBuffs
/if (${Me.PctEndurance}>10 && !${Me.Invis} && !${Me.Combat} && ${Me.CombatAbilityReady[${RangeItem}]} && ${RangeItemSummon} && !${FindItemCount[${RangeItem}]}) {
/disc ${RangeItem}
/delay 10s
/if (${Cursor.ID}==57263) /autoinv
}
/goto :Mainloop
/return
Sub GeneralDeclares
/declare Followflag int outer 0
/declare Y float outer
/declare X float outer
/declare Counter int local
/declare iMobID int outer
/declare iMobCount int outer 0
/declare iMobArray int outer 15
/declare iMobList[16] int outer
/declare iDebuffList[16] int outer
/declare iniName string outer Ber_${Me.Name}.ini
/declare bufftimer timer outer
/declare MainMobID int outer
/declare p int local
/declare TempAggroTimer timer outer
/declare TempIgnoreTimer timer outer
/declare CurrentTarget int outer
/declare following string outer
/declare TempStickSetting int outer
/declare validTarget int outer
/declare irctimer timer outer 0s
/declare WithStandTimer timer outer
/declare CantHit int outer
/declare Ber outer
/declare Cleaving outer
/declare OPFrenzy outer
/declare Warcry outer
/declare Vengeful outer
/declare VAX outer
/declare Volley outer
/declare BH outer
/declare AOR outer
/declare Respite outer
/declare Slap outer
/Declare DoClickyItem outer
/Declare ClickyItem1 outer
/Declare ClickyItem2 outer
/Declare ClickyItem3 outer
/Declare ClickyItem4 outer
/Declare ClickyItem5 outer
/Declare ClickyItem6 outer
/Declare ChatChannel outer
/Declare ChatController outer
/Declare DoChatChannel outer
/declare senderValidated int outer 0
/declare ChatText string outer
/declare ChatHere string outer
/call DeclareIniVar RangeItem string Settings ""
/call DeclareIniVar RangeItemSummon int Settings ""
/call DeclareIniVar MobRadius int SETTINGS 10 /radius
/call DeclareIniVar DpsMode int Settings 1 /dps
/call DeclareIniVar MainAssist string Settings somebody /ma
/call DeclareIniVar SecondAssist string Settings somebody
/call DeclareIniVar TrippleAssist string Settings somebody
/call DeclareIniVar EventsMaster string Settings somebody
/call DeclareIniVar StickSetting string Settings 35 /sticksetting
/call DeclareIniVar AssistDistance int Settings 80 /assistdistance
/call DeclareIniVar AssistAt int Settings 98 /assistat
/call DeclareIniVar DoLoot int Settings 0 /Doloot
/call DeclareIniVar DoAura int Settings 0 /DoAura
/call DeclareIniVar UseDisc int Settings 0 /UseDisc
/Call DeclareIniVar WhenToBurn int Settings 95 /burn
/Call DeclareIniVar UseSS int Settings 0 /UseSS
/Call DeclareIniVar UseBer int Settings 0 /UseBer
/Call DeclareIniVar UseThirdspire int Settings 0 /UseThirdSpire
/Call DeclareIniVar UseVehRage int Settings 0 /UseVehRage
/Call DeclareIniVar UseJugg int Settings 0 /UseJugg
/Call DeclareIniVar UseBlinding int Settings 0 /UseBlinding
/Call DeclareIniVar UseCleaving int Settings 0 /UseCleaving
/Call DeclareIniVar UseEpic2 int Settings 0 /UseEpic2
/Call DeclareIniVar UseWarcry int Settings 0 /UseWarcry
/Call DeclareIniVar UseIntensity int Settings 0 /UseIntensity
/Call DeclareIniVar UseVengeful int Settings 0 /UseVengeful
/Call DeclareIniVar UseRA int Settings 0 /UseRA
/Call DeclareIniVar UseCR int Settings 0 /UseCR
/Call DeclareIniVar UseOPFrenzy int Settings 0 /UseOPFrenzy
/Call DeclareIniVar UseVAX int Settings 0 /UseVAX
/Call DeclareIniVar UseVolley int Settings 0 /UseVolley
/Call DeclareIniVar UseBH int Settings 0 /UseBH
/Call DeclareIniVar UseAOR int Settings 0 /UseAOR
/Call DeclareIniVar UseSlap int Settings 0 /UseSlap
/Call DeclareIniVar Endurance int Settings 30 /Endurance
/Call DeclareIniVar Ber Settings Disc
/Call DeclareIniVar Cleaving Settings Disc
/Call DeclareIniVar OPFrenzy Settings Disc
/Call DeclareIniVar Warcry Settings Disc
/Call DeclareIniVar Vengeful Settings Disc
/Call DeclareIniVar VAX Settings Disc
/Call DeclareIniVar Volley Settings Disc
/Call DeclareIniVar BH Settings Disc
/Call DeclareIniVar AOR Settings Disc
/Call DeclareIniVar Respite Settings Disc
/Call DeclareIniVar Slap Settings Disc
/Call DeclareIniVar ClickyItem1 Settings SelfBuffs
/Call DeclareIniVar ClickyItem2 Settings SelfBuffs
/Call DeclareIniVar ClickyItem3 Settings SelfBuffs
/Call DeclareIniVar ClickyItem4 Settings SelfBuffs
/Call DeclareIniVar ClickyItem5 Settings SelfBuffs
/Call DeclareIniVar ClickyItem6 Settings SelfBuffs
/Call DeclareIniVar DoClickyItem int SelfBuffs 3
/Call DeclareIniVar ChatChannel string Settings
/Call DeclareIniVar ChatController string Settings
/Call DeclareIniVar DoChatChannel int Settings 1
/if (${ChatChannel.Find[bc]}) {
/varset ChatHere bc
}
/return
Sub DpsMode
/doevents
/call GetTarget
/if (${validTarget} && ${Target.PctHPs}<=${AssistAt} && ${Target.Type.Equal[NPC]} && ${Target.Distance} < ${AssistDistance} && ${Target.ID}) /goto :KillTarget
/return
:Killtarget
:loop
/doevents
/if (${Me.CombatAbilityReady[${Slap}]} && ${UseSlap} && ${Me.PctEndurance}>=5 && !${Me.Combat}) /disc ${Slap}
/delay 1
/call Attack
/call CheckHealth
/if (!${validTarget} || ${ExcludeList.Find[${Target.DisplayName}]}) /multiline ; /squelch /target clear; /attack off; /return
/if (${Target.Type.Equal["Corpse"]} || !${Target.ID}) /multiline ; /squelch /target clear; /varset validTarget 0; /attack off; /return
/if (${validTarget}) /goto :loop
:end
/return
Sub GetMob
/varset MacroState GetMob
/declare MobID int local
/declare i int local
/declare MobLvl int local 5
/declare MobToKill int local 0
/declare MobDistance int local ${MobRadius}
/declare Mobs int local
/if (${Me.Dead}) /call wait4rez
/delay 3
/if (${Target.ID} && ${Target.Type.Equal[npc]} && !${ExcludeList.Find[${Spawn[ID ${MobID}].CleanName}]}) {
/varset MobToKill ${Target.ID}
/goto :end
}
/if (${SpawnCount[npc los Range 5 110 radius 50 zradius 50 targetable]}) {
/varset Mobs ${SpawnCount[npc los Range 5 110 radius 50 zradius 50 targetable]}
/for i 1 to ${Mobs}
/varset MobID ${NearestSpawn[${i}, npc los Range 5 110 radius 50 zradius 50 targetable].ID}
/if (${Spawn[id ${MobID}].Level}>${MobLvl} && ${Spawn[id ${MobID}].Type.Equal[NPC]} && !${ExcludeList.Find[${Spawn[id ${MobID}].CleanName}]} && ${Spawn[id ${MobID}].CleanName.Length}>1 || ${MezzImmuneList.Find[${Spawn[ID ${MobID}].CleanName}]}) {
/varset MobToKill ${MobID}
/varset MobLvl ${Spawn[id ${MobID}].Level}
/if (${MezzImmuneList.Find[${Spawn[ID ${MobID}].CleanName}]}) {
/echo ${Spawn[ID ${MobID}].CleanName}]} Is Mezzimmune So i'm going after him!
/goto :end
}
/if (${Spawn[id ${MobID}].Named} || ${NameList.Find[${Spawn[ID ${MobID}]}].CleanName}) /goto :end
}
/next i
/goto :end
}
/if (${SpawnCount[npc los Range 5 110 radius ${MobRadius} zradius 50 targetable]}) {
/varset Mobs ${SpawnCount[npc los Range 5 110 radius ${MobRadius} zradius 50 targetable]}
/for i 1 to ${Mobs}
/varset MobID ${NearestSpawn[${i}, npc los Range 5 110 radius ${MobRadius} zradius 50 targetable].ID}
/if (${Spawn[id ${MobID}].Type.Equal[NPC]} && ${Spawn[id ${MobID}].LineOfSight} && !${ExcludeList.Find[${Spawn[id ${MobID}].CleanName}]} && ${Spawn[id ${MobID}].CleanName.Length}>1 && !${TempIgnoreTimer${MobID}}) {
/varset MobToKill ${MobID}
/varset MobLvl ${Spawn[id ${MobID}].Level}
/goto :end
}
/next i
}
:end
/if (${Spawn[${MobToKill}].Type.NotEqual[Aura]}) {
/target id ${MobToKill}
/varset TempAggroTimer 20s
/varset CantHit 0
/varset CurrentTarget ${Target.ID}
/if (!${Defined[TempIgnoreTimer${MobToKill}]}) /declare TempIgnoreTimer${MobToKill} timer outer
} else {
/return
}
/delay 1s ${Target.Type.Equal[NPC]}
/return
Sub Attack
/varset MacroState Attack
/if (${Me.Sitting}) /squelch /stand
/if (!${Melee.Combat}) /killthis
/if (${Me.CombatAbilityReady[Cry Havoc]} && !${Me.Song[Cry Havoc].ID} && ${Me.PctEndurance}>=5 && ${Target.PctHPs}<98 && ${Me.Combat}) /disc Cry Havoc
/delay 1s
/if (${UseOPFrenzy} && ${Me.CombatAbilityReady[${OPFrenzy}]} && ${Me.PctEndurance}>=5 && ${Target.PctHPs}<98 && ${Me.Combat}) /disc ${OPFrenzy}
/delay 1s
/if (${UseVAX} && ${Me.CombatAbilityReady[${VAX}]} && ${Me.PctEndurance}>=5 && ${Target.PctHPs}<96 && ${Me.Combat}) /disc ${VAX}
/delay 1s
/if (${UseVolley} && ${Me.CombatAbilityReady[${Volley}]} && ${Me.PctEndurance}>=5 && ${Target.PctHPs}<94 && ${Me.Combat}) /disc ${Volley}
/if (${UseAOR} && ${Me.CombatAbilityReady[${AOR}]} && ${Me.PctEndurance}>=5 && ${Target.PctHPs}<94 && ${Me.Combat}) /disc ${AOR}
/if (${UseDisc}) /call UseDisc
/return
Sub UseDisc
/varset MacroState UseDisc
/if (${Me.Dead}) /call wait4rez
/if (${UseSS} && ${Me.AltAbilityReady[Savage Spirit]} && ${Me.AltAbilityReady[Reckless Abandon]} && ${Me.AltAbilityReady[Cascading Rage]} && ${Me.Combat} && ${NameList.Find[${Target.CleanName}]} && ${Target.PctHPs}<${WhenToBurn}) /alt act 465
/if (${UseCR} && ${Melee.DiscID}==140 && ${Me.AltAbilityReady[Cascading Rage]} && ${Me.Combat} && ${NameList.Find[${Target.CleanName}]} && ${Target.PctHPs}<${WhenToBurn}) /alt act 499
/if (${UseRA} && ${Melee.DiscID}==140 && ${Me.AltAbilityReady[Reckless Abandon]} && ${Me.Combat} && ${NameList.Find[${Target.CleanName}]} && ${Target.PctHPs}<${WhenToBurn}) /alt act 3710
/if (${UseBer} && !${Melee.DiscID} && !${Me.AltAbilityReady[Savage Spirit]} && ${Me.CombatAbilityReady[${Ber}]} && ${Me.Combat} && ${NameList.Find[${Target.CleanName}]} && ${Target.PctHPs}<${WhenToBurn}) /disc ${Ber}
/if (${UseCleaving} && !${Melee.DiscID} && !${Me.CombatAbilityReady[${Ber}]} && !${Me.AltAbilityReady[Savage Spirit]} && ${Me.CombatAbilityReady[${Cleaving}]} && ${Target.PctHPs}<${WhenToBurn} && ${NameList.Find[${Target.CleanName}]}) /disc ${Cleaving}
/if (${UseWarcry} && ${Me.CombatAbilityReady[${Warcry}]} && ${Me.Combat} && ${Target.PctHPs}<${WhenToBurn} && ${NameList.Find[${Target.CleanName}]}) /disc ${Warcry}
/if (${UseVehRage} && ${SpawnCount[npc radius 35 zradius 100]}>1 && ${Me.AltAbilityReady[Vehement Rage]} && ${Me.Combat} && ${Target.PctHPs}>40 && ${Target.PctHPs}<${WhenToBurn}) /alt act 800
/if (${UseJugg} && ${SpawnCount[npc radius 35 zradius 100]}>1 && ${Me.AltAbilityReady[Juggernaut Surge]} && ${Me.Combat} && ${Target.PctHPs}>40 && ${Target.PctHPs}<${WhenToBurn}) /alt act 961
/if (${UseThirdspire} && ${SpawnCount[npc radius 35 zradius 100]}>1 && ${Me.AltAbilityReady[Fundament: Third Spire of Savagery]} && ${Target.PctHPs}>40 && ${Me.Combat} && ${Target.PctHPs}<${WhenToBurn}) /alt act 1502
/if (${UseEpic2} && ${Cast.Ready[VengeFul Taelosian Blood Axe]} && ${Target.PctHPs}>40 && !${Me.Buff[Blinding Fury].ID} && ${Target.PctHPs}<90 && !${Me.Moving} && ${Me.Combat}) /casting "VengeFul Taelosian Blood Axe"
/if (${UseBlinding} && ${Me.AltAbilityReady[Blinding Fury]} && !${Me.Song[Strike of Savagery].ID} && ${Target.PctHPs}<98 && ${Target.PctHPs}>40 && ${Me.Combat}) /alt act 610
/if (${UseBer} && ${Me.CombatAbilityReady[${Ber}]} && ${Me.Combat} && ${SpawnCount[npc radius 20 zradius 20]}>2 && ${Target.PctHPs}<${WhenToBurn}) /disc ${Ber}
/if (${UseCleaving} && !${Me.CombatAbilityReady[${Ber}]} && !${Me.AltAbilityReady[Savage Spirit]} && ${SpawnCount[npc radius 35 zradius 100]}>2 && ${Me.Combat} && ${Me.CombatAbilityReady[${Cleaving}]}) /disc ${Cleaving}
/if (${UseVengeful} && ${Target.PctHPs}>40 && ${Target.PctHPs}<80 && !${Me.Buff[Blinding Fury].ID} && ${Me.Combat} && ${Me.CombatAbilityReady[${Vengeful}]}) /disc ${Vengeful}
/if (${UseVengeful} && !${Melee.DiscID} && ${NameList.Find[${Target.CleanName}]} && !${Me.CombatAbilityReady[${Cleaving}]} && !${Me.AltAbilityReady[Savage Spirit]} && !${Me.CombatAbilityReady[${Ber}]} && !${Me.Buff[Blinding Fury].ID} && ${Me.Combat} && ${Me.CombatAbilityReady[${Vengeful}]}) /disc ${Vengeful}
/if (${UseSS} && ${Me.AltAbilityReady[Savage Spirit]} && ${Me.AltAbilityReady[Reckless Abandon]} && ${Me.AltAbilityReady[Cascading Rage]} && ${Me.Combat} && ${SpawnCount[npc radius 35 zradius 100]}>3 && ${Target.PctHPs}<${WhenToBurn}) /alt act 465
/if (${UseCR} && ${Melee.DiscID}==140 && ${Me.AltAbilityReady[Cascading Rage]} && ${Me.Combat} && ${Target.PctHPs}<${WhenToBurn}) /alt act 499
/if (${UseRA} && ${Melee.DiscID}==140 && ${Me.AltAbilityReady[Reckless Abandon]} && ${Me.Combat} && ${Target.PctHPs}<${WhenToBurn}) /alt act 3710
/return
Sub CheckBuffs
/declare i int local
/for i 1 to ${DoClickyItem} {
/if (!${Me.Buff[${FindItem[${ClickyItem${i}}].Spell}].ID} && ${FindItem[${ClickyItem${i}}].Spell.Stacks[0]} && ${Cast.Ready[${ClickyItem${i}}]}) {
/call Cast "${ClickyItem${i}}" item
}
/next i
}
/return
| ################# EQBC Chat handler
Sub Event_EQBC(EQBCSay,EQBCSender,EQBCCommand)
/if (!${Defined[EQBCSender]}) /declare EQBCSender string local LOCAL
/call Event_Chat eqbc ${EQBCSender} ${EQBCCommand}
/return
| ################# Tells n Hells
Sub Event_Chat(string ChatType,string ChatSender,string ChatTextRaw)
/if (!${Select[${ChatType},eqbc,GROUP,TELL,RAID]} || (${ChatType.Equal[TELL]} && ${Select[${Spawn[${ChatSender}].Type},NPC,PET]}) || (${Me.Invis} && !${Select[${ChatTextRaw},autofollow,breakinvis]}) || ${Select[${ChatTextRaw},I,NULL]} ) /return
/if (${ChatSender.Equal[local]}) /varset ChatSender ${Me.Name}
/if (${ChatType.Equal[TELL]} && ${ChatSender.Left[1].Compare[ ]}<0) /varset ChatSender ${ChatSender.Right[-2].Left[-1]}
/call validateSender ${ChatSender}
/if (!${BuffBot} && ${Select[${ChatType},eqbc,GROUP,TELL,RAID]}>0 && ${senderValidated}) /varset ChatText ${ChatTextRaw}
/if (${debug}) /echo debug: buffbot: ${BuffBot} ChatType ${Select[${ChatType},eqbc,GROUP,TELL,RAID]} Chatcontroller Validated: ${senderValidated} ${ChatText} ${ChatTextRaw}
/if (!${BuffBot}) {
/if (!${senderValidated}) {
/if (${ChatType.Equal[TELL]}) {
/if (${DoChatChannel}) /tell ${MainAssist} <TELL> [${ChatSender}]: ${ChatTextRaw}
/return
}
/if (${ChatType.Equal[GROUP]} && ${GroupChatRelay}) {
/if (${DoChatChannel}) /${ChatHere} <GROUP CHAT> [${ChatSender}]: ${ChatTextRaw}
/if (${DoGroupCommands}) /varset ChatText ${ChatTextRaw}
/if (!${DoGroupCommands}) /return
}
/if (${ChatType.Equal[RAID]} && ${RaidChatRelay}) {
/if (${DoChatChannel}) /${ChatHere} <RAID CHAT> [${ChatSender}]: ${ChatTextRaw}
/return
}
}
}
/if (!${senderValidated}) /return
/return
}
Sub CheckHealth
/varset MacroState CheckHealth
/if (${Me.Dead}) /call wait4rez
/return
Sub Checkall
/doevents
/varset MacroState checkall
/declare MobID int local
/declare i int local
/declare mobcount int local
/declare Mobs int local
/if (${Me.Dead}) /call wait4rez
/if (${Target.Type.Equal[Corpse]} || ${Target.Type.Equal[PC]}) {
/squelch /target clear
/call interrupt
/return
}
/if (${DpsMode}) /return
/call CheckName
/return
Sub GetTarget
/varset MacroState GetTarget
/declare i int local
/declare tempID int local ${Target.ID}
/if (${Me.Moving}) /return
/if (${Spawn[${MainAssist}].ID}) {
/assist ${MainAssist}
} else /if (${Spawn[${SecondAssist}].ID}) {
/assist ${SecondAssist}
} else /if (${Spawn[${TripleAssist}].ID}) {
/assist ${TripleAssist}
}
/delay 2
/if (${ExcludeList.Find[${Target.DisplayName}]}) /goto :notgood
/if ( ( ${Spawn[${tempID}].Type.Equal[npc]} || ( ${Spawn[${tempID}].Type.Equal[pet]} && !${Spawn[${tempID}].Master.Type.Equal[pc]} ) ) && ( ( ${Spawn[pc ${mainTank}].NearestSpawn[radius ${Math.Calc[${AssistDistance}*2]} id ${tempID}].ID} && ${Spawn[pc ${mainTank}].Distance3D}<=${AssistDistance} ) || !${Spawn[pc ${mainTank}].ID} || ${Spawn[pc ${mainTank}].Distance3D}>200 ) && ${tempID}!=${petID} && ( ${aggroAnim.Find[|${Spawn[${tempID}].Animation}|]} || ${Spawn[${tempID}].PctHPs}<${AssistAt} || ${Me.TargetOfTarget.Type.Equal[pc]} || ${Me.TargetOfTarget.Master.Type.Equal[pc]} ) ) {
/varset validTarget 1
/varset CurrentTarget ${Target.ID}
} else {
:notgood
/varset validTarget 0
}
/return
Sub DeclareIniVar(string name,string varType,string section,string value,string alias)
/if ( !${Defined[${name}]} ) /declare ${name} ${varType} outer
/varset ${name} ${Ini[${iniName},${section},${name.Left[1].Upper}${name.Right[-1]},"${value}"]}
/ini "${iniName}" "${section}" "${name.Left[1].Upper}${name.Right[-1]}" "${${name}}"
/if ( ${Defined[alias]} ) /squelch /alias ${alias} /echo set: ${name}
/return
Sub Irc
/Call DeclareIniVar IRCServer string Settings "localhost 6667"
/Call DeclareIniVar IRCChannel string Settings "Main"
/i quit
/iconnect ${IRCServer} ${IRCCchannel} ${Me}
/timed 30 /i join #${IRCChannel}
/varset irctimer 30s
/return
Sub Event_nosee
/varset MacroState NOSEE
/if (${Target.Distance} >50 && ${SpawnCount[npc radius 50]} || ${Target.Distance} > ${MobRadius}) /squelch /target clear
/doevents flush nosee
/varset MainMobID 0
/delay 1
/return
Sub CheckName
/declare lMobID int local
/declare Counter int local
/declare lMobToKill int local 0
/declare Mobs int local
/if (!${SpawnCount[npc radius 50 zradius 30]}) /return
/varset Mobs ${SpawnCount[npc radius 50 zradius 30 los]}
/for Counter 1 to ${Mobs}
/varset lMobID ${NearestSpawn[${Counter},npc radius 50 zradius 30].ID}
/if (${Spawn[id ${lMobID}].LineOfSight} && !${Spawn[id ${lMobID}].CleanName.Find[s corpse]} && !${ExcludeList.Find[${Spawn[id ${lMobID}].CleanName}]} && (${Spawn[id ${lMobID}].Named} || ${NameList.Find[${Spawn[${lMobID}]}].CleanName} || ${MezzImmuneList.Find[${Spawn[${lMobID}]}].CleanName} ) ) {
/if (${Target.ID}!= ${lMobID} && !${NameList.Find[${Target.ID}].CleanName} && !${MezzImmuneList.Find[${Target.ID}].CleanName} ) /target id ${lMobID}
/delay 1s ${Target.ID}==${lMobID}
/return
}
/next Counter
/return
Sub Event_Experience
/varset MacroState Experience
/if (${DpsMode}) /varset validTarget 0
/return
Sub checkammo
/if (${FindItemCount[${RangeItemSummon}]} < 30) {
/if (${FindItem[${RangeItem}].ID}) {
/call cast "${RangeItem}" Item 0
/delay 6s ${Cursor.ID}
/timed 5 /autoinventory
/delay 2s !${Cursor.ID}
}
}
/return
Sub Event_faraway
/varset MacroState Faraway
/delay 10s !${Me.Moving}
/if (!${Me.Moving}) /multiline ; /squelch /stick; /squelch /killthis
/delay 5
:end
/doevents flush faraway
/return
Sub Event_CantHit
/varset CantHit ${Math.Calc[${CantHit}+1]}
/if (${CantHit} > 15) /multiline ; /varset TempIgnoreTimer${Target.ID} 60s;/squelch /target clear
/return
Sub Event_NotHold
/if (${Defined[TempIgnoreTimer${Target.ID}]}) /multiline ; /varset TempIgnoreTimer${Target.ID} 60s;/squelch /target clear
/doevents flush NotHold
/delay 3
/return
Sub Event_Help
/echo Berserker Script Help
/echo /Dps On/Off - When turned on the Macro will not cast any aggro spells and will not taunt. It will start assisting someone else and just attack and use dps Type spells.
/echo /MA ToonName - This is to be used with dps mode. This basically sets who you're going to be assisting.
/echo /sticksetting # - This is your stick Range that you want to use. If you set it to high the Macro will try to compensate and Find Max melee. This is only for DPS mode.
/echo /Assistdistance # - This is how close the mob has to be before it will start attacking when it reaches the desired health. This is only for DPS mode.
/echo /Assistat # - This is the health the mob has to be before it decides to even attack If the mob is close enough. This is only for DPS Mode.
/echo /Doloot On/Off - Turns looting On and Off.
/echo /DoAura On/Off - Turns Aura On and Off.
/echo /UseDisc On/Off - Burns Disc's on named On and Off.
/echo /AutoSit On/Off - Turns Auto Sitting on or off. Will try to sit If either Mana or Endurance is under 90%.
/echo /Autoadjustexp On/Off - Turns on whether you want the Macro to auto adjust Whether your Exp goes to Level or AAs.
/echo /Maintexplvl # - This is the minimum amount of Exp you want in the Level you're currently at to have before the AutoAdjuster will make Exp go to AAs.
/echo /MaxLevel # - This is the Level your toon needs to be before it even decides to go to AAs.
/return
Sub ValidateSender(string vsender)
/if (${Select[${vsender},${ChatController}]}>0) {
/varset senderValidated 1
/return
}
/varset senderValidated 0
/return
Tested it in game it works. I added cry havoc to the attack sub it will use it before it attacks if its not on already.
-
Merlin
- a lesser mummy

- Posts: 69
- Joined: Tue Oct 26, 2004 2:33 am
Post
by Merlin » Tue Aug 02, 2011 2:07 am
Thanks William12!