Hahahahahahaha, That Is A Funny Script! Figured i'd post something similar to your chugger that I use in a Pet player script scenario, also comes in handy when not using a pet player though. Havent added a disarm Function yet though. It just reacts to certain scenarios.
If your poisoned
Cure
If Your health is below a certain point 
Heal
If Stamina is below A certain point
refresh
if Dex Timer is up 
Agility 
if Str timer is up 
Strength
Sub Pots
Finditem %2Handed_Weapons C_ , #Charid
if #Findcnt > 0
return
finditem %Weapons C_ , #charid  ; shields is included in weapons
if #findcnt > 1
Return
if #findtype in %Bow
{
event property #findid
if Balanced Notin #property
return
}
if %LLiftedid <> #lliftedid
{
set %Lobject_Timer #scnt2 + 10
set %Lliftedid #lliftedid
}
if %lobjectid <> #lobjectid
{
set %Lobject_Timer #scnt2 + 10
set %Lobjectid #lobjectid
}
if *Man_Whore_Army_Heal_Cure = -1
   {
   if C in #charstatus
      {
      Finditem %Cure_Pot C_ , #backpackid
      if #findcnt > 0 && %Lobject_Timer < #Scnt2
          {
          set #Lobjectid #findid
          event macro 17 0
          set %Lobject_Timer #scnt2 + 10
          set %Lobjectid #lobjectid
          }
      }
   set %Lowest_Health #Maxhits / 2
   if #hits < %Lowest_Health
      {
      finditem %Heal_Pot C_ , #Backpackid
      if #findcnt > 0 && %Heal_Pot_Timer < #Scnt && %Lobject_Timer < #Scnt2
         {
         set #Lobjectid #findid
         event macro 17 0
         set %Lobject_Timer #Scnt2 + 10
         set %Heal_Pot_Timer #Scnt + 12
         set %Lobjectid #lobjectid
         }
      }
}
if *Man_Whore_Army_Dex_Str = -1
   {
   if %Str_Timer < #scnt
      {
      Finditem %Str_Pot C_ , #Backpackid
      if #findcnt > 0 && %Lobject_Timer < #Scnt2
         {
         set #lobjectid #findid
         event macro 17 0
         set %Lobject_Timer #Scnt2 + 10
         set %Str_Timer #Scnt + 115
         set %Lobjectid #lobjectid
         }
      }
   If %Dex_Timer < #Scnt
      {
      Finditem %Dex_Pot C_ , #Backpackid
      if #findcnt > 0 && %Lobject_Timer < #Scnt2
         {
         set #Lobjectid #findid
         event macro 17 0
         set %Lobject_Timer #Scnt2 + 10
         set %Dex_Timer #Scnt + 115
         set %Lobjectid #lobjectid
         }
      }
   }
If *Man_Whore_Army_Refresh = -1
   {
   Finditem %Refresh_Pot C_ , #Backpackid
   if #findcnt > 0 && %Lobject_Timer < #scnt2
      {
      set #lobjectid #findid
      event macro 17 0
      set %Lobject_Timer #scnt2 + 10
      set %Lobjectid #lobjectid
      }
   }
Return