Donnavan2005
New member
- Joined
- May 30, 2005
- RedCents
- 0¢
Before I try hacking a few macros together to try and make a macro that will assist the main tank with each pull, let me ask, is there one written out there already?
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
| Hacked Monk DPS Bitch Boy[ex-puller] By Ccomp5950 V2.5
| 4-26-05 5:57pm
|
|
#Chat group
#event Zoned "#*#LOADING, PLEASE WAIT...#*#"
#Event Unduck "#*#You must be standing to attack!#*#"
#Event BitchBoyHit "#*#YOU for#*#points of damage.#*#
#Event SwitchTargets "#*#tells the group, 'Switch Targets#*#"
#Event SitBooBoo "#*#tells the group, 'Back off'"
#Event YourFDSkillSucks "#*#has fallen to the ground#*#"
Sub Main
|------------------------------------------------------------
| Mend at in %. IE if you want to mend when your down to 50% you would set this to 50.
|------------------------------------------------------------
/declare RV_MendPct int outer 75
|------------------------------------------------------------
| How far is the combat range?
|------------------------------------------------------------
/declare RV_Range int outer 10
|------------------------------------------------------------
| What % HP do you wish to assist at?
|------------------------------------------------------------
/declare RV_Assistat int outer 97
|------------------------------------------------------------
| Don't worry about the rest.
|------------------------------------------------------------
/echo --------------------------------------
/echo Monk Bitch Boy 2.5 Initializing
/echo -----{Real Monks Pull!~}-----
/echo --------------------------------------
/echo
/declare RV_Looper int outer 0
/declare RV_MyTargetID int outer 0
/declare RV_MyTargetName string outer
/declare RV_MyTargetDead int outer 0
/declare RV_RandomWait int outer 0
/declare RV_CheckLook int outer 0
/declare RV_Fighting int outer 0
/declare RV_TargetDead int outer 0
/declare RV_MyXLOC int outer 0
/declare RV_MyYLOC int outer 0
/declare AnchorX int outer ${Me.X}
/declare AnchorY int outer ${Me.Y}
/declare RV_resetheading int outer ${Me.Heading.DegreesCCW.Int}
/declare NotBitchBoy string outer ${Target.CleanName}
/declare NotBitchBoysID int outer ${Target.ID}
/declare SitBooBooID int outer
/declare RV_FastRange int outer
/declare RV_RangeMax int outer
/declare RV_RangeMin int outer
/declare RV_Subreset int outer 0
/declare RV_Rangedw int outer
/declare Exper float outer
/declare AAExp float outer
/declare Mobs_Killed int outer 0
/varset Exper ${Me.PctExp}
/varset AAExp ${Me.PctAAExp}
/varcalc RV_FastRange ${RV_Range}+3
/varcalc RV_RangeMax ${RV_Range}+1
/varcalc RV_RangeMin ${RV_Range}-1
/varcalc RV_Rangedw ${RV_Rangedw} - 10
/if (${Target.Type.NotEqual["PC"]}) /call WhatTheFuckBitch
:Start
/doevents
/call GMCheck
/doevents
/call GetTarget
/doevents
/call CombatSub
/doevents
/call MoveToMob
/call ResetSub
/goto :Start
/return
|--------------------------------------------------------------------------------
|SUB: Aquire Target
|--------------------------------------------------------------------------------
Sub GetTarget
:NotYetBitchBoy
/assist ${NotBitchBoy}
/delay 4
/if (!${Target.ID}) /goto :NotYetBitchBoy
/if ((${Target.ID}!=${NotBitchBoysID}) && (${Target.PctHPs}<${RV_Assistat}) && (${Target.Distance}<150)) /return
/goto :NotYetBitchBoy
/delay 3s
/return
|--------------------------------------------------------------------------------
|SUB: GM Check
|--------------------------------------------------------------------------------
Sub GMCheck
/doevents
/if (${Spawn[gm].ID}) {
/beep
/beep
/beep
/echo GM has entered the zone!
/echo FUCK HIM but ending the macro...
/keypress forward
/keypress back
/quit
/endmacro
}
/return
|--------------------------------------------------------------------------------
|SUB: Where's the group?.
|--------------------------------------------------------------------------------
Sub CheckAnchor
/if (${Math.Distance[${AnchorY},${AnchorX}]}>8) /call MoveToAnchor
/return
|--------------------------------------------------------------------------------
|SUB: Move back to group.
|--------------------------------------------------------------------------------
Sub MoveToAnchor
/declare iCount int local
/varset iCount 0
| /echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}.
/varset RV_MyXLOC ${Int[${Me.X}]}
/varset RV_MyYLOC ${Int[${Me.Y}]}
/declare RV_DistanceTimer timer 15
:AnchorMoveLoop
/delay 1
/doevents
/face fast nolook loc ${AnchorY},${AnchorX}
/if (${Math.Distance[${AnchorY},${AnchorX}]}>12) {
/keypress forward hold
} else {
/keypress forward
/face fast away nolook loc ${AnchorY},${AnchorX}
/return
}
/if (${iCount}>2) {
/face fast nolook loc ${AnchorY},${AnchorX}
/varset iCount 0
}
/if (!${RV_DistanceTimer}) {
/if ((${RV_MyXLOC}==${Int[${Me.X}]})&&(${RV_MyYLOC}==${Int[${Me.Y}]})) /call HitObstacle
/varset RV_MyXLOC ${Int[${Me.X}]}
/varset RV_MyYLOC ${Int[${Me.Y}]}
/varset RV_DistanceTimer 15
}
}
/varcalc iCount ${iCount}+1
/goto :AnchorMoveLoop
/return
|--------------------------------------------------------------------------------
|SUB: Obstacle Avoidance
|--------------------------------------------------------------------------------
Sub HitObstacle
/gsay
/gsay
/doability "Feign Death"
/endmacro
/return
|--------------------------------------------------------------------------------
|SUB: Reset
|--------------------------------------------------------------------------------
Sub ResetSub
/call CheckAnchor
/varset RV_TargetDead 0
/varset RV_Fighting 0
/doevents
/attack off
/keypress ESC
/face fast heading ${RV_resetheading}
/return
|--------------------------------------------------------------------------------
|SUB: Moving
|--------------------------------------------------------------------------------
Sub MoveToMob
/varset RV_MyXLOC ${Int[${Me.X}]}
/varset RV_MyYLOC ${Int[${Me.Y}]}
/declare RV_DistanceTimer timer 15
/doevents
:MovementLoop
/doevents
/if ((${Target.Type.Equal["Corpse"]})&&(${Int[${Target.Distance}]}>20)) {
/keypress forward hold
/delay 1
/goto :Movementloop
}
/if ((${Target.Type.Equal["Corpse"]})&&(${Int[${Target.Distance}]}<20)) /return
/if (${Target.ID}) {
/face fast nolook
}
/if (${Int[${Target.Distance}]}>${RV_FastRange}) {
/keypress forward hold
}
/if (${Int[${Target.Distance}]}<${RV_FastRange}&&${Int[${Target.Distance}]}>${RV_RangeMax}) {
/keypress forward
}
/if (${Int[${Target.Distance}]}<${RV_RangeMin}) {
/keypress back
/delay 3
}
/if (!${RV_DistanceTimer}) {
/doevents
/if ((${RV_MyXLOC}==${Int[${Me.X}]})&&(${RV_MyYLOC}==${Int[${Me.Y}]})) /call HitObstacle
/varset RV_MyXLOC ${Int[${Me.X}]}
/varset RV_MyYLOC ${Int[${Me.Y}]}
/varset RV_DistanceTimer 15
/goto :Movementloop
}
/if (${Int[${Target.Distance}]}>${RV_FastRange}) /goto :MovementLoop
/return
|--------------------------------------------------------------------------
|SUB PULL: Should only be called when pulling, hopefully MovetoMob is called rest of time
|Will check Line of Sight and if needed use way points to get to mobs. If used way points
|it will call them again in reverse order to get back to the camp after agroing the mob.
|--------------------------------------------------------------------------
|Removed since your a bitch boy, you don't do this.
|--------------------------------------------------------------------------------
|SUB: Combat (This is where you macro should be while beating the mob up)
|--------------------------------------------------------------------------------
Sub CombatSub
/varset RV_Fighting 1
/varset RV_TargetDead 0
/if ((${Target.ID})&&(${Target.Type.Equal["NPC"]})) /attack on
:CombatLoop
/doevents
/attack on
/keypress 2
/assist aggronia
/call MoveToMob
}
:nocombat
/if ((!${Target.ID}) || (${Target.Type.Equal["Corpse"]})) {
/varcalc Mobs_Killed (${Mobs_Killed}+1)
/attack off
/keypress forward
/keypress back
/keypress esc
/varset AAExp ${Math.Calc[${Me.PctAAExp}-${AAExp}]}
/varset Exper ${Math.Calc[${Me.PctExp}-${Exper}]}
/echo EXP: ${Exper}:${Me.PctExp}% - AAXP: ${AAExp}:${Me.PctAAExp}% - ${Math.Calc[${Macro.RunTime}/60]} minutes
/popup EXP: ${Exper}:${Me.PctExp}% - AAXP: ${AAExp}:${Me.PctAAExp}% - ${Math.Calc[${Macro.RunTime}/60]} minutes
/echo Total Mobs killed so far: ${Mobs_Killed}
/varset Exper ${Me.PctExp}
/varset AAExp ${Me.PctAAExp}
/varset RV_TargetDead 1
/varset RV_Fighting 0
}
/if (!${RV_TargetDead}) {
/goto :CombatLoop
}
/return
|--------------------------------------------------------------------------------
|SUB: Special Combat
|--------------------------------------------------------------------------------
|Sub SpecialIT
|---------------------------------------------------------------------------------
| Checks if Flying Kick is up, if it is it performs a flying kick special attack.
|---------------------------------------------------------------------------------
| /if (${Me.AbilityReady["Flying Kick"]}) /doability "Flying Kick"
|---------------------------------------------------------------------------------
| Line belox clicks your epic. Does not check to see if any buffs that block
| it are there (if you wish to add this Rogue Helper has it, I duo so I don't need it)
|---------------------------------------------------------------------------------
| /if (!${Me.Buff[Celestial Tranquility].ID} && ${FindItem["Celestial Fist"].InvSlot.Name.Equal["hands"]}) /cast item "Celestial Fists"
|--------------------------------------------------------------------------------
| Checks to see if your HP is below what you set the varidible up top to mend at and
| if the ability is read...then Mends if both conditions are true
|--------------------------------------------------------------------------------
| /if ((${Me.PctHPs} < ${RV_MendPct}) && (${Me.AbilityReady["Mend"]})) {
| /doability "Mend"
| }
|--------------------------------------------------------------------------------
| Checks to see if HP is below 10...if so FD's and ends macro
|--------------------------------------------------------------------------------
/if ((${Me.PctHPs} < 10) && (${Me.AbilityReady["Feign Death"]})) {
/attack off
/doability "Feign Death"
/cast 8
/Echo ${Target} Beat me to within moments of my life.
/gsay ${Target} Beat me to within moments of my life. God I am a Bitch
| /endmacro
}
/return
|--------------------------------------------------------------------------------
|
|--------------------------------------------------------------------------------
Sub WhatTheFuckBitch
/echo Uhm target the person you want to assist before starting this macro.
/endmacro
/return
Sub Event_BitchBoyHit
:againbitch
/doevents flush
/doability "Feign Death"
/delay 2
/sit
/return
Sub Event_SwitchTargets
/assist ${NotBitchBoy}
/gsay ${Target.CleanName} is my new target.
/return
Sub Event_SitBooBoo
/varset SitBooBooID ${Target.ID}
/gsay Ok if you say so.
/call CheckAnchor
/doability "Feign Death"
/gsay Gonna sit here FD till you target something else or what ya got targeted dies.
:SitBooBooLoop
/assist ${NotBitchBoy}
/delay 3
/if (${Target.ID}==${SitBooBooID}) /goto :SitBooBooLoop
/sit
/return
Sub Event_YourFDSkillSucks
/delay 10s
/doability "Feign Death"
/echo My FD skill Sucks!~
/gsay My FD skill Sucks!~
/return
Sub Event_Unduck
/call CheckAnchor
/return
Sub Event_Zoned
/gsay I have zoned, camping in 30 seconds. Probably because I am a Bitch Boy and Failed FD a few times and died.
/echo Zoned, camping in 30 seconds.
/delay 30s
/camp desktop
/delay 45s
/return