Cleric bot

Post your completed (working) macros here. Only for macros using MQ2Data syntax!

Moderator: MacroQuest Developers

User avatar
Rikam
orc pawn
orc pawn
Posts: 23
Joined: Fri Jan 14, 2005 3:21 am

Cleric bot

Post by Rikam » Wed Jan 26, 2005 5:00 pm

This is Cleric bot for raiding it should heal grp members, rezz people when asked, rebuff certain buffs when asked(used as many alternate names I could think of). Hopefully it will all be up and working .

Alot like the shm bot (hell I didn't really bother upgrading the echo yet) Gonna test it tonight see how it works out. Will edit out the shm echos later when I get home class soon=).

Code: Select all

|Masta Rik CleBot(Raid Buffbot) 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| 
| 
| This is From Hubba and a few others I have made some changes. 
| This is basicaly I rip of the shm macro to make a cle buffbot/healer 
| 
| 
| Usage: 
| 
| 
| 
| 
| Features: commands work in tell or group 
| 
| The following commands will target the sender and cast the spells 
| requested on the sender: [RGC] [Vie] [Symbol] [Balikor] [Virtue] [Conviction] [Viction] [BoD] [Reverence] [Kazad] [hot] | [heal] 
| 
| The following commands will assist the sender and cast the spells 
| requested on the corpse: [Rezz] [Click] 
| 
| The following commands: [buff] [buff me] will rebuff a person 
| 
| The following commands: [Buff them] will rebuff another group 
| 
| The following commands: [Follow me] [end follow] [stop] are for moving the Cleric 
| 
| [buff pet] works properly now, targets the senders pet and buffs 
| 
| [gate now] will memorize the gate spell and gate to bind, must be a tell 
| 
| Added a chat channel to echo all non command word tells to controller 
| added a vtell to controller on incomming tells 
| 
| Use "help" for more help ( !help is incomplete! ) 
|_______________________________________________________________| 
| 
| -!- Basis of this script is Version: v0.5c by Hubba 
| Awesome script, I hope you like what I have added 
| 
|_______________________________________________________________| 
| -!- This Script Uses spell_routines.inc by Rusty 
| -!- Exptrack snippet from exptracker.mac by Raebis, with tweaks from Phoenix (not tested) 
| -!- Wait4Rez snippet from wait4rez.mac by fantum409 
| 
|_______________________________________________________________| 

#chat group 
#chat tell 

#Event ToggleVariable "[MQ2] Toggle #1#" 
#Event ToggleVariable "[MQ2] Toggle #1# #2#" 
#Event OutDoor "#*#outdoors#*#" 
#Event OutDoor "You can not summon a mount here." 
#Event Zoning "You have entered#*#" 
#Event Hungry "#*#are hungry#*#" 
| #Event Enrageon "#*#ENRAGED#*#" 
| #Event Enrageoff "#*#no longer enraged#*#" 
#Event Thirsty "#*#are thirsty#*#" 
#Event ImDead "You have been slain by#*#" 
#Event Invited "#*#To join the group, click on the 'FOLLOW' option, or 'DISBAND' to 

cancel#*#" 

#include Spell_Routines.inc 

Sub Main 

| The spell will be memmed in the listed order. 
| Gem1 = Divine Intervention, Reviviscence, Remove Greater Curse 
| Gem2 = Panoply of Vie 
| Gem3 = Conviction, Symbol of Kazaad, Armor of the Zealot 
| Gem4 = Blessing of Devotion 
| Gem5 = Complete healing 
| Gem6 = Pious Light 
| Gem7 = Pious Elixir 
| Gem8 = Yaulp VI 
| Gem9 = Divine Barrier 

| ########### Make changes in spells as you need. 
| ########### Obs! This is mainly for a 65+ Cleric 

| ########### Default Channel, Controller 

/declare CChannel outer "your channel here" 
/declare ChatController outer "your controller here" 

| ########### Your Spell List - update as needed 

/declare SpellCheal outer "Complete Healing" 
/declare SpellHoT outer "Pious Elixir" 
/declare SpellQHeal outer "Pious Light" 
/declare SpellYaulp outer "Yaulp VI" 
/declare SpellVie outer "Panoply of Vie" 

/declare SpellVirt outer "Virtue" 
/declare SpellVict outer "Conviction" 
/declare SpellSym outer "Symbol of Kazad" 
/declare SpellZealot outer "Armor of the Zealot" 
/declare SpellBod outer "Blessing of Devotion" 
/declare SpellDI outer "Divine Intervention" 

/declare SpellRezz outer "Reviviscence" 
/declare SpellRGC outer "Remove Greater Curse" 
/declare SpellDA outer "Divine Barrier" 

/declare SpellGATE outer "Gate" 
/declare SpellFOOD outer "Summon Food" 
/declare SpellDRINK outer "Summon Drink" 


|########### Mount Type 

/declare Mount outer "Small Red Drum" 

| ########### Other Pet Buff Spell List 

/declare SpellPetBuffo[1] string outer 
/varset SpellPetBuffo[1] "Virtue" 

| ############ Heal Priority. 

/declare CasterHeals int outer 40 
/declare MeleeHeals int outer 60 
/declare TankHeal int outer 80 
/declare PlateHeal int outer 75 
| ############ To Do List 

/declare DoHeal outer TRUE 
/declare Yaulp outer TRUE 
/declare Verbose outer TRUE 

| ########### ! No Changes From Here Is Needed ! 

/squelch /alias buffs /echo toggle buffs 
/squelch /alias healmeleeat /echo toggle healmeleeat 
/squelch /alias healcastersat /echo toggle healcastersat 
/squelch /alias healtankat /echo toggle healtankat 
/squelch /alias assist /echo toggle assist 
/squelch /alias healat /echo toggle healat 
/squelch /alias status /echo toggle show 
/squelch /alias show /echo toggle show 
/squelch /alias help /echo toggle help 
/squelch /alias verbose /echo toggle verbose 

/declare M_Assist string outer 
/declare OutDoors outer TRUE 

/declare Exper float outer 
/declare AAExp float outer 

/varset Exper ${Me.Exp} 
/varset AAExp ${Me.AAExp} 

/call MemSpells 

| ############### 
| ############### Main Loop Starts 
| ############### 

:Main_Loop 

|- Check for Standing if less than sitat then sit 
/if ( ${Me.State.Equal[Stand]} && ${Me.PctMana}<${SitAt}) /sit 

|- Summon Mount if outdoors 
| /if (!${Me.Mount.ID} && ${OutDoors}) /call cast ${Mount} item 4s 


|- Check for low mana state 
/call Check_Mana 

|- Check for new events in chat etc etc... 
/doevents 

|- Do we move? 
:Hold_Main 
/if (${Me.Moving}) /goto :Hold_Main 

|- Group Heals 
/call Check_grpHPs 

|- Check for Standing if less than sitat then sit 
/if ( ${Me.State.Equal[Stand]} && ${Me.PctMana}<${SitAt}) /sit 

|- Group Heals 
/call Check_grpHPs 

/goto :Main_Loop 
/return 

| ############### 
| ############### Main Loop Ends 
| ############### 


| ############### Mem Spells in Spell List 

Sub MemSpells 

/echo Memming spells. Hang on. 
/if ( !${Me.Gem[${SpellDI}]} ) { 
/memspell 1 ${SpellDI} 
/delay 25 
} 
/if ( !${Me.Gem[${SpellVie}]} ) { 
/memspell 2 ${SpellVie} 
/delay 20 
} 
/if ( !${Me.Gem[${SpellVict}]} ) { 
/memspell 3 ${SpellVict} 
/delay 20 
} 
/if ( !${Me.Gem[${SpellBod}]} ) { 
/memspell 4 ${SpellBod} 
/delay 20 
} 
/if ( !${Me.Gem[${SpellCheal}]} ) { 
/memspell 5 ${SpellCheal} 
/delay 20 
} 
/if ( !${Me.Gem[${SpellQheal}]} ) { 
/memspell 6 ${SpellQheal} 
/delay 20 
} 
/if ( !${Me.Gem[${SpellHoT}]} ) { 
/memspell 7 ${SpellHoT} 
/delay 20 
} 
/if ( !${Me.Gem[${SpellYaulp}]} ) { 
/memspell 8 ${SpellYaulp} 
/delay 30 
} 
/if ( !${Me.Gem[${SpellDA}]} ) { 
/memspell 9 ${SpellDA} 
/delay 30 
} 

|/if ( ${Window[SpellBookWnd].Open} ) /windowstate SpellBookWnd close 
/echo Spells are memmed. 

/return 

|################### Check if any group member needs heal 
Sub Check_grpHPs 
/declare i int local 1 

/for i 1 to ${Group} 

/if (${Group[${i}].Class.Name.Equal[Cleric]} || ${Group[${i}].Class.Name.Equal[Druid]} || ${Group[${i}].Class.Name.Equal[Wizard]} || ${Group[${i}].Class.Name.Equal[Magician]} || ${Group[${i}].Class.Name.Equal[Necromancer]} || ${Group[${i}].Class.Name.Equal[Enchanter]}) { 
/if (${Group[${i}].PctHPs}<=${CasterHeals}) { 
/target pc ${Group[${i}]} 
/if (${Me.CurrentMana}<${Spell[${SpellQHeal}].Mana}) { 
/echo *** Shid ! I don't have mana to heal ${Group[${i}]} 
} else /if (${Target.Distance}<=100) { 
/if (${Verbose}) /gsay Quick heal <<< %T >>> 
/call cast ${SpellQHeal} gem6 4s 
} 
} 
}

/if (${Group[${i}].Class.Name.Equal[Monk]} || ${Group[${i}].Class.Name.Equal[Rogue]} || ${Group[${i}].Class.Name.Equal[Ranger]} || ${Group[${i}].Class.Name.Equal[Beastlord]}) {
/if (${Group[${i}].PctHPs}<=${MeleeHeals} && ${Group[${i}].Name.NotEqual[${M_Assist}]}) { 
/target pc ${Group[${i}]} 
/if (${Me.CurrentMana}<${Spell[${SpellQHeal}].Mana}) { 
/echo *** Shid ! I don't have mana to heal ${Group[${i}]} 
} else /if (${Target.Distance}<=100) { 
/if (${Verbose}) /gsay Quick Heal <<< %T >>>
/call cast ${SpellQHeal} gem6 4s 
} 
} 
}

/if (${Group[${i}].Class.Name.Equal[Warrior]} || ${Group[${i}].Class.Name.Equal[Shadow Knight]} || ${Group[${i}].Class.Name.Equal[Paladin]}) {
/if (${Group[${i}].PctHPs}<=${PlateHeal} && ${Group[${i}].Name.NotEqual[${M_Assist}]}) { 
/target pc ${Group[${i}]} { 
/if (${Me.CurrentMana}<${Spell[${SpellCHeal}].Mana}) { 
/echo *** Shid ! I don't have mana to heal ${Group[${i}]} 
} else /if (${Target.Distance}<=100) { 
/if (${Verbose}) /gsay Cheal inc <<< %T >>> 
/call cast ${SpellCHeal} gem5 4s 
} 
} 
} 

/if (${Group[${i}].Name.Equal[${M_Assist}]} && ${Group[${i}].PctHPs}<=${TankHeal}) { 
/target pc ${Group[${i}]} { 
/if (${Me.CurrentMana}<${Spell[${SpellCHeal}].Mana}) { 
/echo *** Shid ! I don't have mana to heal ${Group[${i}]} 
} else /if (${Target.Distance}<=100) { 
/if (${Verbose}) /gsay Cheal inc <<< %T >>> 
/call cast ${SpellCHeal} gem5 4s 
} 
} 
} 
}

/next i 
/return 

| ################### Check Mana level and report it 

Sub Check_Mana 
/if (${Math.Calc[${Me.MaxMana}*${MinMana}/100]} >= ${Me.CurrentMana} && !${LowMana}) { 
/varset LowMana TRUE 
/gsay I am LOM... 
} else /if (${Math.Calc[${Me.MaxMana}*${BuffMana}/100]} <= ${Me.CurrentMana} && ${LowMana}) { 
/gsay I am GTG... 
/varset LowMana FALSE 
} 
/return 

| ################## This will NOT check self HPs, Only check HoT or recast HoT 

Sub CheckMyHPs 
/if (${Me.CurrentMana}<${Spell[${SpellHoT}].Mana}) { 
/echo *** Shit, I don't have mana to cast ${SpellHoT} 
} else { 
/target myself 
/delay 3 
/if (!${Me.Buff[${SpellHoT}].ID}) /call cast ${SpellHoT} gem7 3s 
} 
/return 

| ################## Outdoors 

Sub Event_OutDoor 
/echo This is an indoor zone. Sorry. 
/varset OutDoors FALSE 
/return 

| ################## Zoning 

Sub Event_Zoning 

/varset TargetArray[1] ${Target.CleanName} 
/varset TargetArray[2] ${Target.Level} 
/varset TargetArray[3] ${Target.Name} 
/varset TargetArray[4] ${Target.ID} 
/varset CombatOn TRUE 

| ################## Group Invite 

Sub Event_Invited 
/invite 
/return 

| ################## I Died 

Sub Event_ImDead 
/echo Death 
:Zone_Loop 
/if ( ${Me.Bound.ID} != ${Zone.ID} ) /goto :Zone_Loop 
/delay 5s 
/mac waitrez 0 
/delay 5 

| ################# 
| ################# Tells n Hells 
| ################# 

Sub Event_Chat(string ChatType,string ChatSender,string ChatText) 

/if (!${ChatType.Equal[GROUP]} && !${ChatType.Equal[TELL]}) /return 

| ################# Heal Requests 

/if (${ChatText.Equal[heal]} || ${ChatText.Equal[heal me]}) { 
/target pc ${ChatSender} 
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) { 
/tell ${ChatSender} Quick Heal inc 
/call cast ${SpellQHeal} 
} 
/return 
} 

/if (${ChatText.Equal[hot]}) { 
/target pc ${ChatSender} 
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) { 
/tell ${ChatSender} HoT inc 
/call cast ${SpellHoT} 
} 
/return 
} 

/if (${ChatText.Equal[Cheal]}) { 
/target pc ${ChatSender} 
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) { 
/tell ${ChatSender} Complete heal inc 
/call cast ${SpellCheal} 
} 
/return 
} 

/if (${ChatText.Equal[rezz]} || ${ChatText.Equal[click]}) { 
         /assist ${ChatSender} 
         /delay 1s
         /if (${Target.Type.Equal[corpse]} && ${Target.Distance}<=200) { 
         /tell ${Target} Inc rezz
         /call cast ${SpellRezz} gem1 18s 
} 
/return 
} 

| ################# Buff Requests 


/if (${ChatText.Equal[BoD]} || ${ChatText.Equal[Devotion]} || ${ChatText.Equal[Spell haste]}) { 
/target pc ${ChatSender} 
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) { 
/tell ${ChatSender} Spell haste inc 
/call cast ${SpellBod} gem4 4s 
} 
/return 
} 


/if (${ChatText.Equal[Virtue]} || ${ChatText.Equal[Virt]}) { 
/target pc ${ChatSender} 
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) { 
/tell ${ChatSender} Virtue inc 
/call cast ${SpellVirt} gem3 4s 
} 
/return 
} 


/if (${ChatText.Equal[viction]} || ${ChatText.Equal[vict]} || ${ChatText.Equal[conviction]} || ${ChatText.Equal[convict]}) { 
/target pc ${ChatSender} 
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) { 
/tell ${ChatSender} Conviction inc 
/call cast ${SpellVict} gem3 5s 
} 
/return 
} 


/if (${ChatText.Equal[symbol]} || ${ChatText.Equal[balikor]} || ${ChatText.Equal[Bali]} || ${ChatText.Equal[kaz]} || ${ChatText.Equal[kazad]}) { 
/target pc ${ChatSender} 
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) { 
/tell ${ChatSender} Symbol inc 
/call cast ${SpellSym} gem3 5s 
} 
/return 
} 


/if (${ChatText.Equal[RGC]} || ${ChatText.Equal[remove curse]}) { 
/target pc ${ChatSender} 
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) { 
/tell ${ChatSender} RGC inc 
/call cast ${SpellRGC} gem1 4s 
} 
/return 
} 


/if (${ChatText.Equal[Vie]} || ${ChatText.Equal[panoply]} || ${ChatText.Equal[bulwark]}) { 
/target pc ${ChatSender} 
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) { 
/tell ${ChatSender} Vie inc 
/call cast ${SpellVie} gem2 5s 
} 
/return 
} 


/if (${ChatText.Equal[DI]} || ${ChatText.Equal[Divine intervention]} || ${ChatText.Equal[intervention]}) { 
/target pc ${ChatSender} 
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) { 
/tell ${ChatSender} DI inc 
/call cast ${SpellDI} gem1 5s 
} 
/return 
} 


| ################# Follow me 

/if (${ChatText.Equal[Follow me]} || ${ChatText.Equal[Follow]}) { 
/delay 5 
/if (!${Spawn[${ChatSender}].ID}) { 
/e ${ChatSender} is not in zone for me to follow! 
/return 
} 
/varset follname ${ChatSender} 
/varset following 1 
/tell ${ChatSender} I am following you!!! 
/if ( ${Me.Mount.ID} ) /dismount 
:targetfoll 
/target pc ${follname} 
/delay 1s ${Target.Name.Equal[${follname}]} 
/if (${Target.Name.Equal[${follname}]}) { 
/goto :Loop 
} else /goto :targetfoll 

:Loop 
/face fast 
/if (${Target.Distance}>40) /keypress forward hold 
/if (${Target.Distance}<39) /keypress back 
/if (!${Target.ID}) /varset following 0 
/doevents 
/if ((${Target.Name.Equal[${follname}]})&&(${following}>0)) { 
/goto :Loop 
} else { 
/keypress forward 
/keypress back 
} 
} 


| ################# Stop Following me 

/if (${ChatText.Equal[End follow]} || ${ChatText.Equal[stop]}) { 
/varset following 0 
/keypress forward 
/keypress back 
/timed 50 /face pc ${follname} 
/tell ${ChatSender} I Stopped following you!!! 
/return 
} 

| ################# Other Pet Buffing 

/if (${ChatText.Equal[buff pet]}) { 
/echo Request for Pet Buffs 
/target id ${Spawn[pc ${ChatSender}].Pet.ID} 
/delay 3 
/declare i int local 1 
/for i 1 to ${SpellPetBuffo.Size} 
/if (${Spell[${SpellPetBuffo[${i}]}].Mana} > ${Me.CurrentMana}) { 
/tell ${ChatSender} ${ChatSender} Sorry I am getting LOM 
:Hold_Pet_Rebuff 
/Call LOM 
/if (${Spell[${SpellPetBuffo[${i}]}].Mana} > ${Me.CurrentMana}) { 
/goto :Hold_Pet_Rebuff 
} 
} 
/delay 3 
/echo *** Hang on ! Rebuffing ${SpellPetBuffo[${i}]} 
/tell ${ChatSender} buffing ${SpellPetBuffo[${i}]} now... 
/call cast ${SpellPetBuffo[${i}]} gem3 5s 
/next i 
/return 
} 

| ################### Go Home 

/if (${ChatText.Equal[gate now]} && ${ChatType.Equal[TELL]}) { 
/call cast ${SpellGATE} gem9 
/return 
} 

/if (${ChatType.Equal[TELL]}) { 
/1 [${ChatSender}]:${ChatText} 
/vtell ${ChatController} 001 
/return 
} 


/return 



| ################### This will check whenever the player is changing any variable via /echo 

Sub Event_ToggleVariable(string Line, string Command, string Command2) 



/if (${Command.Equal[buffs]} && ${DoBuffs}==0) { 
/varset DoBuffs TRUE 
/echo Do Buffs: ${DoBuffs} 
} else /if (${Command.Equal[buffs]}) { 
/varset DoBuffs FALSE 
/echo Do Buffs: ${DoBuffs} 
} 


/if (${Command.Equal[heal]} && ${DoHeal}==0) { 
/varset DoHeal TRUE 
/echo Do Heal: ${DoHeal} 
} else /if (${Command.Equal[heal]}) { 
/varset DoHeal FALSE 
/echo Do Heal: ${DoHeal} 
} 

/if (${Command.Equal[verbose]} && ${Verbose}==0) { 
/varset Verbose TRUE 
/echo Verbose: ${Verbose} 
} else /if (${Command.Equal[verbose]}) { 
/varset Verbose FALSE 
/echo Verbose: ${Verbose} 
} 

/if (${Command.Equal[buffpet]} && ${BuffPet}==0) { 
/varset BuffPet TRUE 
/echo Buff Pet: ${BuffPet} 
} else /if (${Command.Equal[buffpet]}) { 
/varset BuffPet FALSE 
/echo Buff Pet: ${BuffPet} 
} 

/if (${Command.Equal[healtankat]}) { 
/varset TankHeal ${Command2} 
/echo Healing ${M_Assist} at ${TankHeal}% 
} 

/if (${Command.Equal[healmeleeat]}) { 
/varset MeleeHeals ${Command2} 
/echo Healing all Melee classes at ${MeleeHeals}% 
} 

/if (${Command.Equal[healcastersat]}) { 
/varset CasterHeals ${Command2} 
/echo Healing all Caster classes at ${CasterHeals}% 
} 

/if (${Command.Equal[Healplateat]}) { 
/varset CasterHeals ${Command2} 
/echo Healing all Caster classes at ${CasterHeals}% 
} 

/if (${Command.Equal[assist]}) { 
/varset M_Assist ${Command2} 

/sq /target pc ${M_Assist} 
/if (!${Target.ID}) { 
/echo ${M_Assist} is not here dude ! 
/return 
} 

/echo I will assist: ${M_Assist} 
} 

/if (${Command.Equal[healat]}) { 
/varset HealGRPat ${Command2} 
/echo Healing any group member below ${HealGRPat}% HPs 
} 

/if (${Command.Equal[Show]}) { 

/echo --------------------------- 
/echo Do Buffs:.............${DoBuffs} 
/echo Do Heal:..............${DoHeal} 
/echo Buff Pet:.............${BuffPet} 
/echo --------------------------- 
/echo Assist range: ${AssistAt} 
/echo Assisting: ${M_Assist} 
/echo Healing Casters: ${CasterHeals}% Melees: ${MeleeHeals}% 
/echo ${M_Assist} get heals at ${TankHeal} 
/echo Initiate Combat: ${CombatAt}% 
/echo Verbose: ${Verbose} 
/echo 
/echo help - Will show help to set variables. 

} 

/if (${Command.Equal[help]}) { 
/echo ___ Cle Do Stuff Script ___ 
/echo 
/echo Commands to change values, ie: assistat 50 (Will start the combat routine when mob is in range 50) 
/echo assisat <range> - Most spells don't go longer then 100 
/echo combatat <% hps> - Initiate Combat when mob is at % HPs 
/echo healtankat <% hps> 
/echo healmeeleat <% hps> 
/echo healcastersat <% hps> 
/echo assist <PC Name> 
} 

/return
Last edited by Rikam on Wed Feb 16, 2005 3:56 pm, edited 9 times in total.

JJ
a hill giant
a hill giant
Posts: 227
Joined: Thu Nov 11, 2004 5:50 am

Good Luck!

Post by JJ » Wed Jan 26, 2005 6:02 pm

Hehe, good luck testing it tonight! They just threw a new eqgame.exe at the Devs, so they gonna be redoing offsets for a while.

User avatar
Rikam
orc pawn
orc pawn
Posts: 23
Joined: Fri Jan 14, 2005 3:21 am

Post by Rikam » Fri Jan 28, 2005 9:37 am

Yeah I thought about that otw home lol.

User avatar
Rikam
orc pawn
orc pawn
Posts: 23
Joined: Fri Jan 14, 2005 3:21 am

Post by Rikam » Wed Feb 02, 2005 2:54 am

ficed some mispellings put in a few missing brackets. The mac isn't healing grp members at specified % any clue why?

JJ
a hill giant
a hill giant
Posts: 227
Joined: Thu Nov 11, 2004 5:50 am

Assuming this is your questioned area

Post by JJ » Wed Feb 02, 2005 11:30 am

Code: Select all

/if (${Group[${i}].Class.Name.Equal[Cleric]} || ${Group[${i}].Class.Name.Equal[Druid]} || ${Group[${i}].Class.Name.Equal[Wizard]} || ${Group[${i}].Class.Name.Equal[Magician]} || ${Group[${i}].Class.Name.Equal[Necromancer]} || ${Group[${i}].Class.Name.Equal[Enchanter]}) /if (${Group[${i}].PctHPs}<=${CasterHeals}) { 
/target pc ${Group[${i}]} 
/if (${Me.CurrentMana}<${Spell[${SpellQHeal}].Mana}) { 
/echo *** Shid ! I don't have mana to heal ${Group[${i}]} 
} else /if (${Target.Distance}<=100) { 
/if (${Verbose}) /gsay Quick heal <<< %T >>> 
/call cast ${SpellQHeal} gem6 4s 
} 
} 
If I line up the section of code I get:

Code: Select all

/if (${Group[${i}].Class.Name.Equal[Cleric]} || ${Group[${i}].Class.Name.Equal[Druid]} || ${Group[${i}].Class.Name.Equal[Wizard]} || ${Group[${i}].Class.Name.Equal[Magician]} || ${Group[${i}].Class.Name.Equal[Necromancer]} || ${Group[${i}].Class.Name.Equal[Enchanter]}) /if (${Group[${i}].PctHPs}<=${CasterHeals}) { 
  /target pc ${Group[${i}]} 
  /if (${Me.CurrentMana}<${Spell[${SpellQHeal}].Mana}) { 
    /echo *** Shid ! I don't have mana to heal ${Group[${i}]} 
  } else /if (${Target.Distance}<=100) { 
    /if (${Verbose}) /gsay Quick heal <<< %T >>> 
    /call cast ${SpellQHeal} gem6 4s 
  } 
} 
Not sure how picky the script language is with the nested /if statements, but you may try encapsulating the larger /if block to something like:

Code: Select all

/if (${Group[${i}].Class.Name.Equal[Cleric]} || ${Group[${i}].Class.Name.Equal[Druid]} || ${Group[${i}].Class.Name.Equal[Wizard]} || ${Group[${i}].Class.Name.Equal[Magician]} || ${Group[${i}].Class.Name.Equal[Necromancer]} || ${Group[${i}].Class.Name.Equal[Enchanter]}) [color=red]{[/color]
  /if (${Group[${i}].PctHPs}<=${CasterHeals}) { 
    /target pc ${Group[${i}]} 
    /if (${Me.CurrentMana}<${Spell[${SpellQHeal}].Mana}) { 
      /echo *** Shid ! I don't have mana to heal ${Group[${i}]} 
    } else /if (${Target.Distance}<=100) { 
      /if (${Verbose}) /gsay Quick heal <<< %T >>> 
      /call cast ${SpellQHeal} gem6 4s 
    } 
  }
[color=red]}[/color]

User avatar
Rikam
orc pawn
orc pawn
Posts: 23
Joined: Fri Jan 14, 2005 3:21 am

Post by Rikam » Wed Feb 02, 2005 3:44 pm

Thanks will check it out when I get home.

Also added in commands for rezz. If text equal rezz or click will ass sender and if corpse cast rezz(spell)

User avatar
Rikam
orc pawn
orc pawn
Posts: 23
Joined: Fri Jan 14, 2005 3:21 am

Post by Rikam » Sat Feb 12, 2005 11:30 am

Well the more I play with it the more I f it up. Seems I broke something more so this isn't really working gonna print it all out and read through it today.

JJ
a hill giant
a hill giant
Posts: 227
Joined: Thu Nov 11, 2004 5:50 am

Plaster the new mix

Post by JJ » Sat Feb 12, 2005 1:06 pm

Post the new code and give the errors, maybe another few sets of eyes will catch something new.

User avatar
Rikam
orc pawn
orc pawn
Posts: 23
Joined: Fri Jan 14, 2005 3:21 am

Post by Rikam » Sat Feb 12, 2005 3:36 pm

Alright just went through found a few simple stupid mistakes(complete heal is really called complete healing lol). Gonna check it all out when I get home tonight and post if there still are any errors to be found.

User avatar
fearless
Not a Psychic
Posts: 2684
Joined: Wed Mar 10, 2004 3:52 pm

Post by fearless » Sat Feb 12, 2005 5:06 pm

Rikam wrote:Getting yelled at for not reading TMFM Price: Self esteem
Printing and reading TMFM Price: $6.30
Not getting yelled at for not reading TMFM Priceless
There are things money can't buy for everything else you can read TMFM
TMFM?

I am familiar with TFM and RTFM, but TMFM escapes me.
Reading . . . it's not just for me.

[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
[quote="Ccomp5950"]Fearless showed me the light, you too shall learn.[/quote]

User avatar
Rikam
orc pawn
orc pawn
Posts: 23
Joined: Fri Jan 14, 2005 3:21 am

Post by Rikam » Sat Feb 12, 2005 5:21 pm

Shrug heard it refered to as "the mother fuggin manual".

User avatar
Rikam
orc pawn
orc pawn
Posts: 23
Joined: Fri Jan 14, 2005 3:21 am

Post by Rikam » Sat Feb 12, 2005 5:51 pm

Code: Select all

Sub Check_grpHPs 
/declare i int local 1 

/for i 1 to ${Group} 

/if (${Group[${i}].Class.Name.Equal[Cleric]} || ${Group[${i}].Class.Name.Equal[Druid]} || ${Group[${i}].Class.Name.Equal[Wizard]} || ${Group[${i}].Class.Name.Equal[Magician]} || ${Group[${i}].Class.Name.Equal[Necromancer]} || ${Group[${i}].Class.Name.Equal[Enchanter]}) { 
/if (${Group[${i}].PctHPs}<=${CasterHeals}) { 
/target pc ${Group[${i}]} 
/if (${Me.CurrentMana}<${Spell[${SpellQHeal}].Mana}) { 
/echo *** Shid ! I don't have mana to heal ${Group[${i}]} 
} else /if (${Target.Distance}<=100) { 
/if (${Verbose}) /gsay Quick heal <<< %T >>> 
/call cast ${SpellQHeal} gem6 4s 
} 
} 
}

/if (${Group[${i}].Class.Name.Equal[Rogue]} || ${Group[${i}].Class.Name.Equal[Ranger]} || ${Group[${i}].Class.Name.Equal[Beastlord]}) 
/if (${Group[${i}].PctHPs}<=${MeleeHeals}) { 
/target pc ${Group[${i}]} { 
/if (${Me.CurrentMana}<${Spell[${SpellQHeal}].Mana}) { 
/echo *** Shid ! I don't have mana to heal ${Group[${i}]} 
} else /if (${Target.Distance}<=100) { 
/if (${Verbose}) /gsay Quick heal <<< %T >>> 
/call cast ${SpellQHeal} gem6 4s 
} 
} 
} 
That is the trouble line according to the MQ window. error message is:
Failed the parse /if command. Could not find command to execute.
Cle.mac@261- (check_grpHPs):/if($(Group(i)...................
Cle.mac@181- /call Check_grpHPs
Usage /if command mac closed.

User avatar
Rikam
orc pawn
orc pawn
Posts: 23
Joined: Fri Jan 14, 2005 3:21 am

Post by Rikam » Sat Feb 12, 2005 6:01 pm

/whistles so I may have misplaced some brackets =).

Now the only problem I am having is the grp healing part will heal the casters properly but melee/plate/main assist are not getting healed properly. By properly I mean cle is not healing at the specified %

JJ
a hill giant
a hill giant
Posts: 227
Joined: Thu Nov 11, 2004 5:50 am

What's it do?

Post by JJ » Sun Feb 13, 2005 12:15 am

Lol, holy cow. WTB some alignment :) Lining it up, it looks like you didn't have a bracket to finish closing the caster class block, so it would automatically jump to the next block. Also, not sure if you need to, but I was thinking changing

Code: Select all

} else /if (${Target.Distance}<=100) {
to something more logical. What it was saying before was basically, if it's a caster, else if range <= 100 . . don't think that was the intent.

Try this out and see where it gets you:

Code: Select all

Sub Check_grpHPs 
/declare i int local 1 

/for i 1 to ${Group} 

/if (${Group[${i}].Class.Name.Equal[Cleric]} || ${Group[${i}].Class.Name.Equal[Druid]} || ${Group[${i}].Class.Name.Equal[Wizard]} || ${Group[${i}].Class.Name.Equal[Magician]} || ${Group[${i}].Class.Name.Equal[Necromancer]} || ${Group[${i}].Class.Name.Equal[Enchanter]}) {
  /if (${Group[${i}].PctHPs}<=${CasterHeals}) {
    /target pc ${Group[${i}]}
    /if (${Me.CurrentMana}<${Spell[${SpellQHeal}].Mana}) {
      /echo *** Shid ! I don't have mana to heal ${Group[${i}]}
    } else {
      /if (${Target.Distance}<=100) {
        /if (${Verbose}) /gsay Quick heal <<< %T >>>
        /call cast ${SpellQHeal} gem6 4s
      } 
    } 
  } 
}
/if (${Group[${i}].Class.Name.Equal[Rogue]} || ${Group[${i}].Class.Name.Equal[Ranger]} || ${Group[${i}].Class.Name.Equal[Beastlord]}) {
  /if (${Group[${i}].PctHPs}<=${MeleeHeals}) { 
    /target pc ${Group[${i}]} 
    /if (${Me.CurrentMana}<${Spell[${SpellQHeal}].Mana}) { 
      /echo *** Shid ! I don't have mana to heal ${Group[${i}]} 
    } else {
      /if (${Target.Distance}<=100) { 
        /if (${Verbose}) /gsay Quick heal <<< %T >>> 
        /call cast ${SpellQHeal} gem6 4s 
      } 
    } 
  }
}
Also, does that /target pc line actually work?

User avatar
Rikam
orc pawn
orc pawn
Posts: 23
Joined: Fri Jan 14, 2005 3:21 am

Post by Rikam » Sun Feb 13, 2005 7:16 pm

He doesnt target and heal anyone cept my nec. All others were not getting heals.

Yeah too many copy pastes on my message board account has rendered it formless.