Moderator: MacroQuest Developers
That's due to the way that chiannuke works. It uses /cast directly rather than putting the nuke spells in the usual cast queue. It should be possible to change it to use the normal casting routines, but they you would probably want to put some kind of flag in routines like the buff maintenance or Canni/Yaulp routines to tell them not to operate while chainnuke is going (or you might not).greggor wrote:basically I have trouble with the chain nuke tends to go first tthen it sometimes bothers to tash or forlorn deeds, is there a sub that I can use that actually finishes casting the spell instead of just putting it on the quere? optimally I'd like each command to be completed before the next command starts.
It does this already for normal spells. It doesn't do it for a spell cast by chainnuke because it doesn't use the normal genbot casting routine to cast a spell in chainnuke. Modifying chainnuke to use the normal spell casting routines would take care of this issue as well as the others already mentioned..greggor wrote:How bout a stop if killed toggle? that will auto stop the spell you are casting if target dies... :)
Try changing line 1063 of botcore.inc togreggor wrote:also how bout making it so that when it relays tells it che3cks if the tell is from your pet and doesn't relay that tell :)
Code: Select all
/if (${Spawn[${ChatSender}].Master.ID} == ${Me.ID}) /returnCode: Select all
/if (${Spawn[npc ${ChatSender} radius 100].ID}) /returnCode: Select all
/if (${Spawn[npc ${ChatSender} radius 100].ID} || ${Spawn[${ChatSender}].Master.ID}==${Me.ID}) /return
Code: Select all
#event Enraged "#*#|${Spawn[id ${CombatTargetID}].CleanName.Right[${Math.Calc[${Spawn[id ${CombatTargetID}].CleanName.Length}-1]}]}| has become ENRAGED#*#"
Code: Select all
#event Offrage "#*#|${Spawn[id ${CombatTargetID}].CleanName.Right[${Math.Calc[${Spawn[id ${CombatTargetID}].CleanName.Length}-1]}]}| is no longer enraged#*#"
Code: Select all
Sub Event_Enraged
/if (${Target.ID}) {
/if (${CombatTargetID}) {
/varset EnrageVar ${Target.ID}
/varset CombatTargetID 0
}
/varset EnrageVar 1
}
/return
Code: Select all
Sub Event_Enraged
/botsay Testing enrage etc.
/if (${Target.ID}) {
/if (${CombatTargetID}) /varset EnrageVar ${Target.ID}
/attack off
/varset CombatTargetID 0
}
/return
Code: Select all
Sub Event_Offrage
/if (${Target.ID}) {
/if (${EnrageVar}) {
/varset CombatTargetID ${EnrageVar}
/varset EnrageVar 0
}
/varset EnrageVar 0
}
/return
Code: Select all
Sub Assist(string sAssistName)
/squelch /target clear
/if (${DebugList.Find[core]}) /echo /assist ${sAssistName}
/assist ${MasterName}
/delay 2s ${Target.ID}
/if (!${Target.ID}) /call ChatOut 3 "Unable to /assist ${sAssistName}."
/return
Code: Select all
Sub Assist(string sAssistName)
/squelch /target clear
/if (${DebugList.Find[core]}) /echo /assist ${sAssistName}
/assist ${sAssistName}
/delay 2s ${Target.ID}
/if (!${Target.ID}) /call ChatOut 3 "Unable to /assist ${sAssistName}."
/return
Code: Select all
Sub Command-attack
/call StandardTarget "${CommandParam}"
/if (!${Target.Type.Equal[NPC]} && !${Target.Master.Type.Equal[NPC]}) {
/varset CombatTargetID 0
/return
}
/varset CombatTargetID ${Target.ID}
/if (!${Me.Standing}) /stand
/call ChatOut 5 "Attacking ${Target.CleanName}."
/return
Code: Select all
Sub Command-attack
| /call StandardTarget "${CommandParam}"
/if (!${Target.Type.Equal[NPC]} && !${Target.Master.Type.Equal[NPC]}) {
/varset CombatTargetID 0
/return
}
/varset CombatTargetID ${Target.ID}
/if (!${Me.Standing}) /stand
/call ChatOut 5 "Attacking ${Target.CleanName}."
/return
Code: Select all
|Be nice to see if you have HoTT or Raid HoTT skill.
|This assumes you do since I never group without it.
/if (${DoTaunt} && ${Me.AbilityReady[Taunt]}) {
/if (${Group}>2) {
/if (${Me.TargetOfTarget.ID}!=${Me.ID}) {
/if (${DoIncite} && ${InCiteTimer}<=0) {
/squelch /face fast
/disc incite
/varset InCiteTimer 30s
}
/if (${Target.Distance}<20) {
/call ChatOut 5 ${MasterName} "Taunting ${Target.CleanName}.
/doability "Taunt"
}
}
} else {
/declare TempCalc int local
/declare HeadingMax int local
/declare HeadingMin int local
/varset TempCalc ${Math.Calc[${Me.Heading.Degrees}+180]}
/if (${TempCalc}>360) /varset TempCalc ${Math.Calc[${TempCalc}-360]}
/varset HeadingMax ${Math.Calc[${TempCalc}+10]}
/varset HeadingMin ${Math.Calc[${TempCalc}-10]}
/if (((${Target.Heading.Degrees}>${HeadingMax})||(${Target.Heading.Degrees}<${HeadingMin})) && ${Target.PctHPs}>15) {
/if (${DoIncite} && ${InCiteTimer}<=0) {
/squelch /face fast
/disc incite
/varset InCiteTimer 31s
}
/if (${Target.Distance3D}<20) {
/call ChatOut 5 ${MasterName} "Taunting ${Target.CleanName}.
/doability "Taunt"
}
}
}
}