This is an updated afber I wrote a few years ago. It's been tested on a 100 zerker for a month now and works good. This macro was designed to maximize dps on a zerker you're botting in group. All required files are included (do not use the ninjadvloot) use the redguides one it is not included because the macro is posted on other sites also.
Also here is a holyshit for augmented frenzy. Please post any issues below.
level 100 zerker ini
V6.0
View attachment 6433 and View attachment 6432
Also here is a holyshit for augmented frenzy. Please post any issues below.
Rich (BB code):
holyshit5=/if (${Me.CombatAbilityReady[Augmented Frenzy Rk. II]} && !${Me.Buff[Augmented Frenzy Effect II].ID} && ${Me.PctHPs}>=90 && ${Me.Combat}) /casting Bloodfury
holyshit6=/if (${Me.CombatAbilityReady[Augmented Frenzy Rk. II]} && !${Me.Buff[Augmented Frenzy Effect II].ID} && ${Me.PctHPs}<=90 && ${Me.Combat}) /Disc Augmented Frenzy Rk. II
level 100 zerker ini
Rich (BB code):
[Settings]
DpsMode=1
MainAssist=toonname
SecondAssist=toonname
TrippleAssist=toonname
EventsMaster=toonname
AssistDistance=80
AssistAt=98
DoLoot=1
DoAura=1
UseDisc=1
WhenToBurn=95
UseSS=1
UseBer=1
UseThirdspire=1
UseVehRage=1
UseJugg=1
UseBlinding=1
UseCleaving=1
UseEpic2=1
UseWarcry=1
UseIntensity=0
UseVengeful=1
UseRA=1
UseCR=1
UseOPFrenzy=1
UseVAX=1
UseVolley=1
UseBH=0
UseAOR=1
UseSlap=0
MercAssistAt=95
MercOn=0
ChatChannel=bc
ChatController=toonname
DoChatChannel=1
[Disc]
Ber=Brutal Discipline Rk. III
Cleaving=Cleaving Acrimony Discipline Rk. III
OPFrenzy=Vanquishing Frenzy Rk. III
Warcry=Battle Cry of the Mastruq
Vengeful=Avenging Flurry Discipline Rk. III
VAX=Brutal Axe Throw Rk. III
Volley=Brutal Volley Rk. III
BH=NULL
AOR=Axe of Zurel Rk. III
RespiteEndur=29
Respite=Rest Rk. III
[BUFFS]
NumSelfBuff=0
[GeneralSettings]
DoLeash=1
Leashlength=50
AutoExpAdjust=0
MaintExpLvl=20
MaxLevel=100
MasterList=|
RelayTells=0
DoFood=0
EventsMaster=toonname
AutoBalance=0
AutoBalanceHPCheck=5
autosit=1
V6.0
Rich (BB code):
|Berserker.mac v6.0
|=============================================================
#turbo 80
#include spell_routines.inc
#include wait4rez.inc
#include NinjAdvLoot.inc
#include General.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 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"
#chat tell
#chat chat
|=============================================================
Sub main
/declare dummy int local
/call GeneralDeclares
/call GeneralDeclares2
| /call LootLoad
/call SetupAdvLootVars
/squelch /alias /Berhelp /echo help
/echo Berserker 6.0 Started
:Mainloop
/varset MacroState MainLoop
/doevents
/if (${DoLoot} && !${Me.Invis}) /call LootMobs
/if ( ${Followflag} || ${Me.Invis} ) /goto :Mainloop
/if (!${bufftimer} && ${Me.XTarget}<1) /call checkselfbuff
/call DpsMode
/call MedTime
/if (${Me.Dead}) /call wait4rez
/if (${DoAura} && !${Me.Casting.ID} && ${Me.PctEndurance}>=5 && ${Spell[Bloodlust Aura].Stacks[0]} && !${Me.Song[Bloodlust Aura Effect].ID} && !${Me.Moving} && !${Me.Invis}) /disc Bloodlust Aura
/if (${Me.CombatAbilityReady[${Respite}]} && ${Me.PctEndurance}<=${RespiteEndur} && !${Me.CombatState.Equal[combat]} && !${Melee.DiscID}) /disc ${Respite}
/goto :Mainloop
/return
Sub DpsMode
/doevents
/if (${Me.XTarget}>0) /call GetTarget
/if (${validTarget} && ${Target.PctHPs}<=${AssistAt} && ${Target.Type.Equal[NPC]} && ${Target.Distance} < ${AssistDistance} && ${Target.ID}) /goto :KillTarget
/return
:Killtarget
:loop
/doevents
/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 Attack
/varset MacroState Attack
/if (${Me.Sitting}) /squelch /stand
/if (!${Melee.Combat} && ${Target.PctHPs}<=${AssistAt}) /killthis
/if (${UseDisc}) /call UseDisc
/if (${MercOn} && ${Target.PctHPs}<${MercAssistAt}) /mercassist
/return
|=============================================================
Sub UseDisc
/varset MacroState UseDisc
/if (${Me.Dead}) /call wait4rez
/if (${UseOpenWound} && ${Me.CombatAbilityReady[${OpenWound}]} && ${Me.PctHPs}>91 && ${Me.PctEndurance}>=5 && ${Target.PctHPs}<98 && ${Me.Combat}) /disc ${OpenWound}
/if (${Me.AltAbilityReady[Battle Stomp]} && ${Me.PctEndurance}>=5 && ${Target.PctHPs}<94 && ${Me.Combat}) /alt act 1252
/if (${UseOPFrenzy} && ${Me.CombatAbilityReady[${OPFrenzy}]} && ${Me.PctEndurance}>=5 && ${Target.PctHPs}<98 && ${Me.Combat}) /disc ${OPFrenzy}
/if (${UseVAX} && ${Me.CombatAbilityReady[${VAX}]} && ${Me.PctEndurance}>=5 && ${Target.PctHPs}<96 && ${Me.Combat}) /disc ${VAX}
/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 (${UseFestering} && ${Me.CombatAbilityReady[${Festering}]} && ${Me.PctEndurance}>=5 && ${Target.PctHPs}<94 && ${Me.Combat}) /disc ${Festering}
/if (${UseAugmented} && ${Me.CombatAbilityReady[${Augmented}]} && ${Me.PctHPs}<=90 && ${Me.Combat}) /disc ${Augmented}
/if (${UseSS} && ${Me.AltAbilityReady[Savage Spirit]} && ${Me.AltAbilityReady[Reckless Abandon]} && ${Me.CombatState.Equal[combat]} && ${Target.Named} && ${Target.PctHPs}<${WhenToBurn}) /alt act 465
/if (${UseSS} && ${Me.AltAbilityReady[Savage Spirit]} && ${Me.AltAbilityReady[Reckless Abandon]} && !${Melee.DiscID} && ${Me.XTarget}>4 && ${Me.CombatState.Equal[combat]} && ${Me.XTarget}>=1 && ${Target.PctHPs}<${WhenToBurn}) /alt act 465
/if (${Me.ActiveDisc.Name.Equal[Savage Spirit]} && ${Me.AltAbilityReady[Reckless Abandon]}) /alt act 3710
/if (${Me.ActiveDisc.Name.Equal[Savage Spirit]} && ${Me.AltAbilityReady[Cascading Rage]} && !${Me.Song[Quick Time].ID}) /alt act 499
/if (${UseBer} && !${Melee.DiscID} && !${Me.AltAbilityReady[Savage Spirit]} && ${Me.CombatAbilityReady[${Ber}]} && ${Me.Combat} && ${Target.Named} && ${Target.PctHPs}<${WhenToBurn}) /disc ${Ber}
/if (${UseCleaving} && !${Melee.DiscID} && !${Me.CombatAbilityReady[${Ber}]} && !${Me.AltAbilityReady[Savage Spirit]} && ${Me.CombatAbilityReady[${Cleaving}]} && ${Target.PctHPs}<${WhenToBurn} && ${Target.Named}) /disc ${Cleaving}
/if (${UseWarcry} && ${Me.CombatAbilityReady[${Warcry}]} && ${Me.Combat} && ${Target.PctHPs}<${WhenToBurn} && ${Target.Named}) /disc ${Warcry}
/if (${UseVehRage} && ${Me.XTarget}>1 && ${Me.AltAbilityReady[Vehement Rage]} && ${Me.Combat} && ${Target.PctHPs}>40 && ${Target.PctHPs}<${WhenToBurn}) /alt act 800
/if (${UseJugg} && ${Me.XTarget}>1 && ${Me.AltAbilityReady[Juggernaut Surge]} && ${Me.Combat} && ${Target.PctHPs}>40 && ${Target.PctHPs}<${WhenToBurn}) /alt act 961
/if (${UseThirdspire} && ${Me.XTarget}>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 (${UseEpic2} && ${Cast.Ready[Raging Taelosian Alloy Axe]} && ${Target.PctHPs}>40 && !${Me.Buff[Blinding Fury].ID} && ${Target.PctHPs}<90 && !${Me.Moving} && ${Me.Combat}) /casting "Raging Taelosian Alloy Axe"
/if (${UseBlinding} && !${Me.CombatAbilityReady[${Frenzied}]} && !${Me.Song[${Frenzied}].ID} && ${Me.XTarget}>5 && ${Me.AltAbilityReady[Blinding Fury]} && !${Me.Song[Strike of Savagery].ID} && ${Target.PctHPs}<98 && ${Target.PctHPs}>40 && ${Me.Combat}) /alt act 610
/if (${UseBer} && !${Me.AltAbilityReady[Savage Spirit]} && !${Melee.DiscID} && ${Me.CombatAbilityReady[${Ber}]} && ${Me.Combat} && ${Me.XTarget}>3 && ${Target.PctHPs}<${WhenToBurn}) /disc ${Ber}
/if (${UseCleaving} && !${Melee.DiscID} && !${Me.CombatAbilityReady[${Ber}]} && !${Me.AltAbilityReady[Savage Spirit]} && ${Me.XTarget}>2 && ${Me.Combat} && ${Me.CombatAbilityReady[${Cleaving}]}) /disc ${Cleaving}
/if (${UseVengeful} && !${Melee.DiscID} && !${Me.AltAbilityReady[Savage Spirit]} && !${Me.CombatAbilityReady[${Ber}]} && ${Target.PctHPs}>40 && ${Target.PctHPs}<80 && !${Me.Buff[Blinding Fury].ID} && ${Me.Combat} && ${Me.CombatAbilityReady[${Vengeful}]}) /disc ${Vengeful}
/if (${UseVengeful} && !${Melee.DiscID} && ${Target.Named} && !${Me.CombatAbilityReady[${Cleaving}]} && !${Me.AltAbilityReady[Savage Spirit]} && !${Me.CombatAbilityReady[${Ber}]} && !${Me.Buff[Blinding Fury].ID} && ${Me.Combat} && ${Me.CombatAbilityReady[${Vengeful}]}) /disc ${Vengeful}
/return
|=============================================================
Sub CheckHealth
/varset MacroState CheckHealth
/if (${Me.Dead}) /call wait4rez
/return
|=============================================================
Sub Event_SetVar(string line,string varName,string value)
/if ( ${value.Equal[on]} ) /varset value 1
/if ( ${value.Equal[off]} ) /varset value 0
/if ( ${Defined[${varName}]} ) {
/varset ${varName} ${value}
/popup ${varName} is set to ${value} now.
/ini "${iniName}" Settings "${varName.Left[1].Upper}${varName.Right[-1]}" "${value}"
}
/return
|=============================================================
Sub MercsDoWhat
/if (!${MercOn}) /return
/if (${Me.Mercenary.Equal[Active]}) /varset MercInGroup 1
| Revive the merc if dead and previously detected in group
/if (${MercInGroup} && ${Window[MMGW_ManageWnd].Child[MMGW_SuspendButton].Enabled} && ${Me.Mercenary.Equal[UNKNOWN]}) /notify MMGW_ManageWnd MMGW_SuspendButton LeftMouseUp
/if (${MercAssistAt}>=${Spawn[${MyTargetID}].PctHPs} && ${Me.Mercenary.Equal[Active]} && ${CombatStart} && !${MercAssisting}) {
/mercassist
/if (${DebugCombat}) /echo MERC ${Spawn[${MyTargetID}].CleanName} %:${Spawn[${MyTargetID}].PctHPs} ID:${Spawn[${MyTargetID}].ID}
/varset MercAssisting 1
}
/if (${Debug}) /echo MercsDoWhat leave
/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
/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 (${ExcludeList.Find[${Spawn[id ${MobID}].CleanName}]}) /return
/varcalc mobcount ${mobcount}+1
:skip
/next i
}
/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}
}
/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 Checkselfbuff
/varset MacroState CheckSelfBuff
/declare a int local
/declare b int local 1
/declare ItemSlot string local
/declare OldItem string local
/if (${Zone.ID}!=${currentZone}) /call Event_Zone
/if (${Me.Invis}) /return
/if ( !${NumSelfBuff} ) /return
/for a 1 to ${NumSelfBuff}
/if ( ${selfBuff${a}.NotEqual[NULL]} && ${SelfType${a}.Equal[item]} && ${FindItem[=${selfBuff${a}}].ID} && ${Me.Buff[${FindItem[=${selfBuff${a}}].Spell.Name}].Duration}<4 ) {
:CheckNoStack
/if (!${Spell[${FindItem[=${selfBuff${a}}].Spell.Name}].Stacks[2]}) /goto :SkipBuff
/if (${FindItem[=${selfBuff${a}}].InvSlot}>21) {
/varset ItemSlot ${FindItem["${selfBuff${a}}"].WornSlot[1].Name}
} else {
/varset ItemSlot ${FindItem[=${selfBuff${a}}].InvSlot.Name}
}
/if (${Me.Inventory[${ItemSlot}].Name.NotEqual["${selfBuff${a}}"]} && ${FindItem[${selfBuff${a}}].EffectType.Find[Click Worn]}) {
/varset OldItem ${Me.Inventory[${ItemSlot}].Name}
/call cast "${selfBuff${a}}" Item 0
/delay 1
/call SwapItem "${OldItem}" ${ItemSlot}
/delay 5s ${Me.Inventory[${ItemSlot}].Name.Equal[${OldItem}]}
} else {
/call cast "${selfBuff${a}}" Item 0 CheckAll
/return
}
}
:SkipBuff
/next a
/varset bufftimer 10s
/if (${Me.Dead}) /call wait4rez
/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}
/if (${Me.Book[${Me.Book[${${name}} rk. iii]}].ID}) /varset ${name} ${Me.Book[${Me.Book[${${name}} rk. iii]}].Name}
/if (${Me.Book[${Me.Book[${${name}} rk. ii]}].ID}) /varset ${name} ${Me.Book[${Me.Book[${${name}} rk. ii]}].Name}
/if (${Me.CombatAbility[${${name}} rk. iii]}) /varset ${name} ${${name}} rk. iii
/if (${Me.CombatAbility[${${name}} rk. ii]}) /varset ${name} ${${name}} rk. ii
/return
|=============================================================
Sub Event_nosee
/varset MacroState NOSEE
/if (${Target.Distance} >50 && ${SpawnCount[npc radius 50]} || ${Target.Distance} > ${AssistDistance}) /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 los].ID}
/if (${NameList.Find[${Spawn[ID ${lMobID}]}].CleanName} || ${MezzImmuneList.Find[${Spawn[ID ${lMobID}].CleanName}]}) /if (!${ExcludeList.Find[${Spawn[ID ${lMobID}].CleanName}]}) {
/if (${Target.ID}!= ${lMobID} && !${NameList.Find[${Target.CleanName}]} && !${MezzImmuneList.Find[${Target.CleanName}]} && !${Target.Named} ) /target id ${lMobID}
/delay 1s ${Target.ID}==${lMobID}
/return
}
/next Counter
/return
|=============================================================
Sub Event_Experience
/varset MacroState Experience
/if (${Me.Casting.ID}) /call interrupt
/if (${Math.Distance[${Me.Y},${Me.X}:${stakeY},${stakeX}]}> ${Math.Calc[${leashlength}+50]} && ${currentZone} == ${Zone.ID} && ${DoLeash}) /call leash
/if (${DpsMode}) /varset validTarget 0
/return
|=============================================================
Sub Event_faraway
/varset MacroState Faraway
/if (!${DpsMode}) /goto :end
/delay 2s !${Me.Moving}
/if (!${Me.Moving}) /assist ${MainTank}
/delay 5
:end
/doevents flush faraway
/return
|=============================================================
Sub Event_CantHit
/varset CantHit ${Math.Calc[${CantHit}+1]}
/if (${CantHit} > 15) /multiline ; /varset TempIgnoreTimer${Target.ID} 45s ; /squelch /target clear
/return
|=============================================================
Sub Event_NotHold
/if (${Defined[TempIgnoreTimer${Target.ID}]} && ${castReturn.Equal[CAST_NOTHOLD]}) /multiline ; /varset TempIgnoreTimer${Target.ID} 60s ; /squelch /target clear
/doevents flush NotHold
/delay 3
/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}) /${ChatHere} <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 ValidateSender(string vsender)
/if (${Select[${vsender},${ChatController}]}>0) {
/varset senderValidated 1
/return
}
/varset senderValidated 0
/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 TempIgnoreTimer timer outer
/declare CurrentTarget int outer
/declare following string outer
/declare validTarget int outer
/declare CantHit int outer
/declare Respite outer
/declare ChestItem string 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 Slap outer
/declare Frenzied outer
/Declare ChatChannel outer
/Declare ChatController outer
/Declare DoChatChannel outer
/declare senderValidated int outer 0
/declare ChatText string outer
/declare ChatHere string outer
/declare MercAssistAt string outer
/declare MercOn string outer
/declare MercInGroup int outer 0
/declare Festering string outer
/declare AugmenedFrenzy string outer
/declare OpenWound string outer
/call DeclareIniVar DpsMode int Settings 0 /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 AssistDistance int Settings 80 /assistdistance
/call DeclareIniVar AssistAt int Settings 99 /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 UseFrenzied int Settings 0 /UseFrenzied
/Call DeclareIniVar UseAugmented int Settings 0 /UseAugmented
/Call DeclareIniVar UseFestering int Settings 0 /UseFestering
/Call DeclareIniVar UseOpenWound int Settings 0 /UseOpenWound
/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 Frenzied Settings Disc
/Call DeclareIniVar Festering Settings Disc
/Call DeclareIniVar AugmenedFrenzy Settings Disc
/Call DeclareIniVar OpenWound Settings Disc
/Call DeclareIniVar RespiteEndur int Disc 0
/call DeclareIniVar Respite string Disc ""
/Call DeclareIniVar MercAssistAt string Settings
/Call DeclareIniVar MercOn string Settings
/Call DeclareIniVar ChatChannel string Settings
/Call DeclareIniVar ChatController string Settings
/Call DeclareIniVar DoChatChannel int Settings 1
/call DeclareIniVar NumSelfBuff string BUFFS 0
/if (${NumSelfBuff}) {
/for p 1 to ${NumSelfBuff}
/call DeclareIniVar selfBuff${p} string BUFFS Buff/Item Name here
/call DeclareIniVar SelfType${p} string BUFFS Gem# for spells/Item for clickies
/next p
}
/return
|=============================================================
Sub Event_Help
/echo Berserker Script Help
/echo /Radius # - Sets The Range in which Macro will search for mobs. Any mob higher then 50 it will try to cast an aggro spell from a distance and/or use the range item you set up.
/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 /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 /Leash On/Off - Turns leashing on or off. The stake is created when Macro is started.
/echo /LeashLength # - How far the toon can be before it runs back to the leash point.
/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
View attachment 6433 and View attachment 6432