@dannuic I have a snippet of my code above but essentially I set observers in for loops for all of my buffs and each bots PctHPs (this is the bulk of the observers). All of these values are being checked constantly (very little delay between passes) by the macro, running 18-36 toons typically.
This is one section of a much larger for loop for my buff routine, I've tried rewriting the DanNet observers many ways but no matter how I do it the output vars just stop updating after awhile. If I reload the plugin it performs great for a little while again. Sometimes when I echo the output vars it will flip from a null to value back and forth, other times it just suddenly starts reporting null and never comes back until the plugin is reloaded.
For me anyways, this didn't happen at first, it wasn't until I had completely implemented DanNet throughout my plugin that observers got flakey like this. My heal loops also tend to have the same behavior over time as well.
I can share the entire macro if you want to look at it, let me know. I definitely want to get this working because when it works it's much better than eqbc/netbots combo.
This is one section of a much larger for loop for my buff routine, I've tried rewriting the DanNet observers many ways but no matter how I do it the output vars just stop updating after awhile. If I reload the plugin it performs great for a little while again. Sometimes when I echo the output vars it will flip from a null to value back and forth, other times it just suddenly starts reporting null and never comes back until the plugin is reloaded.
For me anyways, this didn't happen at first, it wasn't until I had completely implemented DanNet throughout my plugin that observers got flakey like this. My heal loops also tend to have the same behavior over time as well.
I can share the entire macro if you want to look at it, let me know. I definitely want to get this working because when it works it's much better than eqbc/netbots combo.
INI:
/if (${tBot}) {
/varset tSpellName ${Spell[${tSpellID}]}
/varset dQuery Me.Buff[${tSpellName}].ID
/varset tQuery Me.Buff[${tSpellName}].Duration.TotalSeconds
/varset pQuery Me.PetBuff[${tSpellName}].ID
/if (${Spawn[${tName}].Type.Find[pet]} && !${DanNet[${Spawn[${tName}].Master.CleanName}].ObserveSet["${pQuery}"]}) {
/dobserve ${Spawn[${tName}].Master.CleanName} -q "${dQuery}" -o ABBotPetSpellID
/delay 20 ${DanNet[${Spawn[${tName}].Master.CleanName}].Observe["${pQuery}"].Received}
}
/if (!${DanNet[${tName}].ObserveSet["${dQuery}"]} && ${DanNet.Peers.Find[${tName}]}) {
/dobserve ${tName} -q "${dQuery}" -o ABBotSpellID
/delay 20 ${DanNet[${tName}].Observe["${dQuery}"].Received}
}
/if (!${DanNet[${tName}].ObserveSet["${tQuery}"]} && ${DanNet.Peers.Find[${tName}]}) {
/dobserve ${tName} -q "${tQuery}" -o ABBotSpellDur
/delay 20 ${DanNet[${tName}].Observe["${tQuery}"].Received}
}
/if (${ABBotSpellID} || ${ABBotPetSpellID}) {
/if (${ABBotSpellDur}>=(${tTime}+30)) {
/call AddtoBuffArray ${tTargetID} ${tSpellID} ${ABBotSpellDur}
/goto :tNextBot
}