• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

Can someone look at this and tell me whats wrong~ (1 Viewer)

Davaden

New member
Joined
Dec 8, 2005
RedCents
10¢
A freind of mine gave me this macro for a cleric bot, but now it dosnt cast CH. Would someone mind looking at it and giving me some sugestions on fixing it, I know nothing about programing =(
__________________________________________________________________
|This is My First Try At Making A Macro
|Where it Says "PctHPs}<70) {" Change the 70 to What % You Want To Heal At
|Where It says "/cast 8", make sure you replace with whatever spell slot you'd like to continually cast @ that percent
---------------------------------------------------
|v1.01 Added the "/if (${Me.Casting.ID})" Command to keep from spamming if you're already casting (thanks A_Druid_00)
---------------------------------------------------
|v1.02 Added a "/target" command just put whoever you're looking to heal after /target (IE. /target Iamnoob)
---------------------------------------------------
|v1.03 Changed some things to work correctly (thx lum and LPW)
---------------------------------------------------
|v1.04 Changed to work with/without Mounts, will Auto-Sit Now. (thx peach and summar)
-----------------------------
#include spell_routines.inc
#chat tell
#Event Hungry "#*#are hungry#*#"
#Event Thirsty "#*#are thirsty#*#"

Sub Main

/echo Druid assistant activated with auto heal

/declare MainAssist string outer ${Target}
/declare BuffGuy string outer
/declare InviteReturn string outer
/declare InviteTimer timer outer

|---------------
| Declare Spells
|---------------

|-- Fast Heal --
/declare SpellFastHeal string outer Pious Remedy
/declare SpellFastHealRange int outer 200

/declare SpellFastHeal2 string outer Ancient: Hallowed Light
/declare SpellFastHealRange2 int outer 200

|-- Complete Heal --
/declare SpellCompHeal string outer Complete Healing
/declare SpellCompHealRange int outer 100
|-----------------------
| Variables Changeable
|-----------------------

|--- Use CH or Fast Heal (1= Complete Heal) (0= Fast Heal) (Adjust TankHeal Appropriatly) ---
/declare TankHealType int outer 1

|--- What Percent to heal the Myself ---
/declare SelfHeal int outer 80

|--- Temporary toggle for LOM ---
/declare LOM int outer 0

|--- Temporary toggle for OOM ---
/declare OOM int outer 0

:loop
/doevents
/call HealGroup
/call HealMyself
/if (${Me.PctMana}<=30 && ${LOM}==0) {
/1 I AM VERY LOM ${Me.PctMana}m
/varset LOM 1
}
/if (${Me.PctMana}>30 && ${LOM}==1) {
/1 MY MANA IS ${Me.PctMana}m
/varset LOM 0
}

/goto :loop



Sub Event_Chat(ChatType,Sender,ChatText)
/varset BuffGuy ${Sender}
/if (${ChatText.Find[heal]}) {
/call Cast "Pious Remedy" gem1 10s
/1 healing %t
}
/if (${ChatText.Find[succor]}) {
/1 Succoring hacker style
/megawarp s
}
/if (${ChatText.Find[target Anklebiter]}) {
/1 my target is %t
/target Darkphyer
}
/if (${ChatText.Find[target Decoto]}) {
/1 my target is %t
/target Decoto
}
/if (${ChatText.Find[target Bigi]}) {
/target Darkphyer
/1 my target is %t
}
/if (${ChatText.Find[sit]}) {
/sit
}
/if (${ChatText.Find[stand]}) {
/stand
}
/if (${ChatText.Find[mana]}) {
/1 my mana is ${Me.PctMana}m
}
/if (${ChatText.Find[assist]}) {
/assist Darkphyer
/1 assting the Darkphyer with %t
}
/if (${ChatText.Find[warp]}) {
/1 warping to %t
/megawarp t
}
/if (${ChatText.Find[gate]}) {
/1 fuck this I'm gating!
/megawarp g
}
/if (${ChatText.Find[bod]}) {
/cast 9
/1 casting Blessing of Devotion on %t
}
/if (${ChatText.Find[pov]}) {
/cast 6
/1 Casting Panopoly of Vie on %t
}
/if (${ChatText.Find[symbol]}) {
/cast 5
/1 casting symbol on %t
}
/if (${ChatText.Find[conv]}) {
/cast 8
/1 casting conviction on %t
}
/if (${ChatText.Find[target]}) {
/1 my target is %t
}
/if (${ChatText.Find[fast]}) {
/1 changing heal type to FAST HEALS
/varset TankHealType 0
}
/if (${ChatText.Find[complete]}) {
/1 changing heal type to COMPLETE HEALS
/varset TankHealType 1
}
/if (${ChatText.Find[stun]}) {
/assist ${Target}
/delay 2s
/cast 7
/1 Stunning %t
/delay 2s
/target ${Target}
}
/if (${ChatText.Find[CR]}) {
/keypress 3
/1 casting Celestial Regen on >> %t <<
}
/if (${ChatText.Find[RC]}) {
/keypress 4
/1 casting Group Cure INC
}
/if (${ChatText.Find[purify]}) {
/keypress f
/1 casting Group Cure INC
}
/if (${ChatText.Find[DA]}) {
/keypress 1
/1 Balancing Group Health with Divine Arbritation
}
/if (${ChatText.Find[group]}) {
/cast 4
/gsay GROUP HEAL INC STAY CLOSE
}
/return


|------------------
| Heal Group
|------------------

Sub HealGroup
/declare i int local 1
/for i 1 to ${Group}

/if (${Group.Member[${i}].Name.Equal[${MainAssist}]} && ${Group.Member[${i}].PctHPs}<=71 && !${Group.Member[${i}].PctHPs}==0 && ${Group.Member[${i}].State.NotEqual[DEAD]}) {
/target pc ${Group.Member[${i}].CleanName}
/if (${TankHealType}==0 && ${Group.Member[${i}].PctHPs}<=68) {
/if (${Me.PctMana}<=15&& ${OOM}==0) {
/1 Not Enuf Mana to Heal ${Group.Member[${i}]}...I AM TOTALLY OOM
/varset OOM 1
}
/if (${Target.Distance}<=100 && ${Me.PctMana}>15&& ${OOM}==0) {
/1 ${SpellFastHeal2} on >> %T <<
/call cast "${SpellFastHeal2}" gem3 4s
}
}
/if (${TankHealType}==1) {
/if (${Me.PctMana}<=15&& ${OOM}==0) {
/1 Not Enuf Mana to Heal ${Group.Member[${i}].CleanName}...I AM TOTALLY OOM
/varset OOM 1
}
/if (${Target.Distance}<=100 && ${Me.PctMana}>15&& ${OOM}==0) {
/1 ${SpellCompHeal} on >> %T <<
/call cast "${SpellCompHeal}" gem1 4s

}
}
}

/if (${Group.Member[${i}].Class.Name.Equal[Cleric]} || ${Group.Member[${i}].Class.Name.Equal[Druid]} || ${Group.Member[${i}].Class.Name.Equal[Wizard]} || ${Group.Member[${i}].Class.Name.Equal[Magician]} || ${Group.Member[${i}].Class.Name.Equal[Necromancer]} || ${Group.Member[${i}].Class.Name.Equal[Shaman]} || ${Group.Member[${i}].Class.Name.Equal[Enchanter]}) /if (${Group.Member[${i}].PctHPs}<=70 && !${Group.Member[${i}].PctHPs}==0 && ${Group.Member[${i}].State.NotEqual[DEAD]}) {
/target pc ${Group.Member[${i}].CleanName}
/if (${Me.PctMana}<=15&& ${OOM}==0) {
/1 Not Enuf Mana to Heal ${Group.Member[${i}].CleanName}...I AM TOTALLY OOM
/varset OOM 1
}
/if (${Target.Distance}<=100 && ${Me.PctMana}>15&& ${OOM}==0) {
/1 ${SpellFastHeal} on >> %T <<
/call cast "${SpellFastHeal}" gem2 4s
}
}

/if (${Group.Member[${i}].Class.Name.Equal[Warrior]} || ${Group.Member[${i}].Class.Name.Equal[Bard]} || ${Group.Member[${i}].Class.Name.Equal[Monk]} || ${Group.Member[${i}].Class.Name.Equal[Rogue]} || ${Group.Member[${i}].Class.Name.Equal[Ranger]} || ${Group.Member[${i}].Class.Name.Equal[Beastlord]} || ${Group.Member[${i}].Class.Name.Equal[Shadow Knight]} || ${Group.Member[${i}].Class.Name.Equal[Paladin]}) /if (${Group.Member[${i}].PctHPs}<=70 && ${Group.Member[${i}].Name.NotEqual[${MainAssist}]}) {
/target pc ${Group.Member[${i}].CleanName}
/if (${Me.PctMana}<=15&& ${OOM}==0) {
/1 Not Enuf Mana to Heal ${Group.Member[${i}].CleanName}...I AM TOTALLY OOM
/varset OOM 1
}
/if (${Target.Distance}<=100 && ${Me.PctMana}>15&& ${OOM}==0) {
/1 ${SpellFastHeal} on >> %T <<
/call cast "${SpellFastHeal}" gem2 4s
}
}
/if (${Me.PctMana}>15) {
/varset OOM 0
}
/next i
/return

Sub HealMyself
/if (${Me.PctHPs}>70) /return
/if (${Me.PctHPs}<=70) {
/target Myself
/if (${Me.PctMana}<=15&& ${OOM}==0) {
/1 Not Enuf Mana to Heal Myself..totally OOM
/varset OOM 1
}
/if (${Me.PctMana}>15&& ${OOM}==0) {
/1 ${SpellFastHeal} on >> %T <<
/call cast "${SpellFastHeal}"
}
/if (${Me.PctMana}>15) {
/varset OOM 0
}
}
/return


Sub Event_Hungry
/1 I am hungry...stop pulls and summon me some food bish
/return

Sub Event_Thirsty
/1 I am thirsty...stop pulls and summon me some drank bish
/return
 
im still new to this but at a glance one thing i think is

/call cast "${SpellCompHeal}" gem1 4s

i think it should be 10s cast

/call cast "${SpellCompHeal}" gem1 10s

there are probably a lot more things wrong but thats what i see
 
that time after the gem isn't for the cast time of the spell, macroquest already knows that, it is for in case of interrupts, it will keep trying to cast the spell for that amount of time.
 
I looked at it and only thing I can figure is you don't have your main assist targeted when the macro is starting, if you gave more details on what exactly IS happening perhaps I could tell you why it's NOT doing what you want.

Saying "It doesn't work" isn't all that descriptive.

But the code looks right
 
Last edited:
When I have it set up to cast CH, the bot chains the cast message in channels, but dosnt cast the spell, I end up having to end the macro to get it to stop the channel spam. Now, then I use the fast heal set up, it works fine, so I I have no clue what im doing wrong & sorry I wasnt as discriptive before :)
 
Get rid of the 4s thing try that, I don't see why that would be a problem.

There is feedback mechanisms in your macro

/1 blahblah

If you tell us what that feedback is (What is it spamming) If it never spams

/1 ${SpellCompHeal} on >> %T <<

Then it isn't going to through the logical steps necessary traveling through the if statements to get there (either you don't have the correct person targeted when starting the macro for this...

/declare MainAssist string outer ${Target}

...line to grab your main assist) or you need a delay in your macro after the targeting, but if that was a problem it wouldn't be spamming you with anything I don't think.

Other possible problem is you are really close to 100 distance away, I'd shorten the if statements distance check to 90 so that you have a buffer in there since Complete Heals Distance is 100. But then it should be feedbacking that you are too far away from your target.

I'm just really having a hard time seeing how the macro is wrong (minus the 4s giveup timer which shouldn't even come into play because as far as I can see spell_routines.inc only checks that when you are NOT casting)

The other option is you are using the wrong "Spell_Routines.inc" Try this one and let me know
 
Last edited:
well, I tried the new spell routines and changing to 4s to 10s but no luck, it still wont cast CH and spams the heal message in channel. Thank you all for trying to help, I really do appreciate it.
 
This code:

Rich (BB code):
|-- Complete Heal --
/declare SpellCompHeal string outer Complete Healing
/declare SpellCompHealRange int outer 100

Is that supposed to be 'Complete Heal' instead of 'Complete Healing' ? I know they changed it recently, but cannot remember which way the change went.
 
Can someone look at this and tell me whats wrong~

Users who are viewing this thread

Back
Top