[euo script] Bee Hive Care

If you make a Client-side script you can publish it here for other players to use
Locked
User avatar
Thorgal
Legendary Scribe
Posts: 238
Joined: Mon Aug 23, 2010 8:14 am

[euo script] Bee Hive Care

Post by Thorgal »

Here it is, needs some work done to it, its not perfect but runs fine.

Know that you will need the following tools in a secured container;

bottles,
Hive tools,
Pitcher of water,
Keg of Greater agility, greater poison, greater cure, greater heal,
and a water trough near the hives.

Ok, start off by creating a new path, then using the add button of the next row start entering your hive, each time you select a hive you need to be standing near it, select them all. After you will need to set you water trough and container.

You are done and can start caring for your hive with 1 simple click. The set up is fairly simple, just follow the indications.

Enjoy, oh and before anyone asks, i didn't write it and know nothing about coding so other then knowing how to set it up and running it, im useless!

Code: Select all

linespercycle 10000

set %knowncol _5911015_59367_3270631_13024701_15724502_6375_524288_59160__4340025_4337969_3748145_3746089_3221801_4342338_2695457_2171169_

set %fbp C_ , #backpackid

set %potion_xplant 220
set %potion_xbee 210

set %potion_yagilitybee 55
set %potion_msgagility Agilitying...
set %potion_msgcolagility 194
set %potion_typeagility YUF

set %potion_ypoisonplant 100
set %potion_ypoisonbee 80
set %potion_msgpoison Poisoning...
set %potion_msgcolpoison 70
set %potion_typepoison AVF

set %potion_ycureplant 124
set %potion_ycurebee 105
set %potion_msgcure Curing...
set %potion_msgcolcure 41
set %potion_typecure NUF

set %potion_yhealplant 148
set %potion_yhealbee 130
set %potion_msgheal Healing...
set %potion_msgcolheal 55
set %potion_typeheal UUF

set %potion_ystrengthplant 172
set %potion_ystrengthbee 155
set %potion_msgstrength Strengthening...
set %potion_msgcolstrength 0
set %potion_typestrength XUF

if *care_plantations <> N/A
{
  set %str *care_plantations
  loadvar:
  str pos %str |
  if #strres > 0
  {
    set %pos #strres - 1
    str left %str %pos
    set %vname #strres
    set %pos %pos + 2
    str pos %str | 2
    set %len #strres - %pos
    if %len > 0
    {
      str mid %str %pos %len
      set % . %vname #strres
    }
    else
    {
      set % . %vname
    }
    set %pos %pos + %len + 1
    str len %str
    str mid %str %pos #strres
    set %str #strres
    goto loadvar
  }
}
else
{
  set %plantation_count 0
  set %plantation_num 0
}

set %act_timer #systime

drawinterface:

menu clear
menu window size 420 340
menu window title Plant and beehive caring helper
menu font bgcolor btnface
menu text t1 15 10 Plantations
menu text t2 125 10 Plants/Beehives
menu text t2 235 10 Settings for plantation %plantation_num
menu button selectplantation 10 240 100 25 Select
menu button addplantation 10 270 100 25 Add
menu button delplantation 10 300 100 25 Remove
menu button showplant 120 240 100 25 Show
menu button addplant 120 270 100 25 Add
menu button delplant 120 300 100 25 Remove
menu button settoolcont 230 30 180 25 Set container with the tools
menu button setwaterthrough 230 60 180 25 Set water through
menu button disposetools 230 210 180 25 Put tools in container
menu button care 230 240 180 85 CARE ( plantation %plantation_num )
menu font bgcolor white
menu list create plantations 10 30 100 200
menu list create plants 120 30 100 200
menu show

gosub savevars

set %i 1
while %i <= %plantation_count
{
  menu list add plantations %i
  set %i %i + 1
}

if %plantation_num > 0 && %plantation_num <= %plantation_count
{
  set %i 1
  while %i <= %plant_count . %plantation_num
  {
    set %index %plantation_num , _ , %i
    menu list add plants %plant_id . %index
    set %i %i + 1
  }
}

set #menubutton 0

scanbuttons:

if #menubutton = closed
  halt

if #menubutton = selectplantation
{
  menu get plantations
  if #menures > 0 && #menures <= %plantation_count
  {
    set %plantation_num #menures
    goto drawinterface
  }
  else
  {
    display ok Select a plantation from the list first, or press Add to make a new plantation.
  }
  set #menubutton 0
}

if #menubutton = addplantation
{
  set %plantation_count %plantation_count + 1
  set %plant_count . %plantation_count 0
  set %toolcont_x . %plantation_count 0
  set %toolcont_y . %plantation_count 0
  set %toolcont_z . %plantation_count 0
  set %toolcont_id . %plantation_count 0
  set %waterthrough_x . %plantation_count 0
  set %waterthrough_y . %plantation_count 0
  set %waterthrough_z . %plantation_count 0
  set %waterthrough_id . %plantation_count 0
  set %plantation_num %plantation_count
  goto drawinterface
}

if #menubutton = delplantation
{
  menu list get plantations
  if #menures > 0 && #menures <= %plantation_count
  {
    display yesno Are you sure you want to remove plantation #menures with all its plants from the list?
    if #dispres = yes
    {
      goto drawinterface ;todo
    }
  }
  else
  {
    display ok Select a plantation from the list first.
  }
  set #menubutton 0
}

if #menubutton = showplant
{
  if %plantation_num > 0
  {
    menu get plants
    if #menures > 0 && #menures <= %plant_count . %plantation_num
    {
      set %index %plantation_num , _ , #menures
      set %plant_id %plant_id . %index
      set %plant_x %plant_x . %index
      set %plant_y %plant_y . %index
      set %plant_z %plant_z . %index
      event exmsg %plant_id 0 0 Here!
      gosub getto %plant_x %plant_y %plant_z
    }
    else
    {
      display ok Select a plant first.
    }
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = addplant
{
  if %plantation_num > 0
  {
    display ok Stand near the plant or a beehive, and target it. Press Esc to finish.
    targetplant:
    set #targcurs 1
    while #targcurs = 1
    {
      onhotkey Esc
        goto drawinterface
    }
    finditem #ltargetid
    if #findtype <> OOD
    {
      event property #ltargetid
      if bowl notin #property && plant notin #property
      {
        event exmsg #ltargetid 0 1199 Wrong object type
        goto targetplant
      }
    }
    if %plant_count . %plantation_num > 0
    {
      for %i 1 %plant_count . %plantation_num
      {
        set %index %plantation_num , _ , %i
        if %plant_id . %index = #ltargetid
        {
          set %plant_x . %index #charposx
          set %plant_y . %index #charposy
          set %plant_z . %index #charposz
          event exmsg #ltargetid 0 1199 New location stored
          goto targetplant
        }
      }
    }
    set %plant_count . %plantation_num %plant_count . %plantation_num + 1
    set %index %plantation_num , _ , %plant_count . %plantation_num
    set %plant_x . %index #charposx
    set %plant_y . %index #charposy
    set %plant_z . %index #charposz
    set %plant_id . %index #ltargetid
    event exmsg #ltargetid 0 0 ok
    goto targetplant
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = delplant
{
  if %plantation_num > 0
  {
    menu get plants
    if #menures > 0 && #menures <= %plant_count . %plantation_num
    {
      display yesno Are you sure you want to remove the plant from plantation list?
      if #dispres = yes
      {
        set %start #menures
        set %plant_count %plant_count . %plantation_num - 1
        if %start >= %plant_count
        {
          for %i %start %plant_count
          {
            set %index1 %plantation_num , _ , %i
            set %j %i + 1
            set %index2 %plantation_num , _ , %j
            set %plant_x . %index_1 %plant_x . %index_2
            set %plant_y . %index_1 %plant_y . %index_2
            set %plant_z . %index_1 %plant_z . %index_2
            set %plant_id . %index_1 %plant_id . %index_2
          }
        }
        set %plant_count . %plantation_num %plant_count
        goto drawinterface
      }
    }
    else
    {
      display ok Select a plant first.
    }
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = settoolcont
{
  if %plantation_num > 0
  {
    display ok Stand near the tool container, and target it. Press Esc to cancel.
    set #targcurs 1
    while #targcurs = 1
    {
      onhotkey Esc
        goto drawinterface
    }
    set %toolcont_x . %plantation_num #charposx
    set %toolcont_y . %plantation_num #charposy
    set %toolcont_z . %plantation_num #charposz
    set %toolcont_id . %plantation_num #ltargetid
    event exmsg #ltargetid 0 0 ok
    goto drawinterface
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = setwaterthrough
{
  if %plantation_num > 0
  {
    display ok Stand near the waterthrough, and target it. Press Esc to cancel.
    set #targcurs 1
    while #targcurs = 1
    {
      onhotkey Esc
        goto drawinterface
    }
    set %waterthrough_x . %plantation_num #charposx
    set %waterthrough_y . %plantation_num #charposy
    set %waterthrough_z . %plantation_num #charposz
    set %waterthrough_id . %plantation_num #ltargetid
    event exmsg #ltargetid 0 0 ok
    goto drawinterface
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = care
{
  if %plantation_num > 0
  {
    menu hide
    display ok Press OK to begin. Do NOT switch to another window or let any window cover the UO client. Hold Esc to interrupt the care.
    gosub care normal
    if #result = 1
    {
      display ok Care finished.
    }
    else
    {
      display ok Care interrupted.
    }
    menu show
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = disposetools
{
  if %plantation_num > 0
  {
    gosub care disposetools
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

goto scanbuttons

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub care ; mode

set %care_mode %1
set %plant_count %plant_count . %plantation_num
set %toolcont_x %toolcont_x . %plantation_num
set %toolcont_y %toolcont_y . %plantation_num
set %toolcont_z %toolcont_z . %plantation_num
set %toolcont_id %toolcont_id . %plantation_num
set %waterthrough_x %waterthrough_x . %plantation_num
set %waterthrough_y %waterthrough_y . %plantation_num
set %waterthrough_z %waterthrough_z . %plantation_num
set %waterthrough_id %waterthrough_id . %plantation_num

if %care_mode = disposetools
  goto care_disposetools

gosub gettools
if #result = 0
  return 0

set %plant_num 1
while %plant_num <= %plant_count
{
  set %index %plantation_num , _ , %plant_num
  set %plant_id %plant_id . %index
  set %plant_x %plant_x . %index
  set %plant_y %plant_y . %index
  set %plant_z %plant_z . %index
  gosub careitem
  if #result = 0
    return 0
  set %plant_num %plant_num + 1
}

care_disposetools:
gosub disposetools

return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub careitem

set #result 0
analyze_plant:
if #result = -1
  return 0

gosub getto %plant_x %plant_y %plant_z
if #result = 0
  return 0

event exmsg %plant_id 0 101 Scanning...

; close all plant gumps
while #contkind = GJZ && ( #contsize = 263_231 || #contsize = 255_231 || #contsize = 258_219 || #contsize = 250_219 )
{
  set %mx #contposx + 100
  set %my #contposy + 100
  click %mx %my r
}

useplant:
; use the plant
set #lobjectid %plant_id
gosub actwait
event macro 17 0

; wait for gump
set %timer #systime + 5000
while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 258_219 ) ) && #systime < %timer
{
  onhotkey Esc
    return 0
}

if #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 258_219 )
  goto useplant

set %contx #contposx
set %conty #contposy

set %plant_type 0
if #contsize = 263_231
{
  set %plant_type plant
}
else
{
  if #contsize = 258_219
  {
    set %plant_type bee
  }
  else
  {
    goto analyze_plant
  }
}

gosub actset 1000

; analyze plant health
event property %plant_id
if vibrant in #property || thriving in #property
  set %plant_health 4
if healthy in #property
  set %plant_health 3
if wilted in #property || sickly in #property
  set %plant_health 2
if dying in #property
  set %plant_health 1
if vibrant notin #property && healthy notin #property && wilted notin #property && sickly notin #property && dying notin #property && thriving notin #property
  set %plant_health 0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

if %plant_type = plant ; PLANT CARE
{
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ; analyze plant water
  gosub analyze_plusminus 198 77
  set %plant_water #result
  if #result = error
    goto analyze_plant

  ; analyze plant infestation
  gosub analyze_plusminus 98 101
  set %plant_infestation #result
  if #result = error
    goto analyze_plant

  ; analyze plant fungi
  gosub analyze_plusminus 98 125
  set %plant_fungi #result
  if #result = error
    goto analyze_plant

  ; analyze plant poisoning
  gosub analyze_plusminus 98 149
  set %plant_poisoning #result
  if #result = error
    goto analyze_plant

  ; analyze plant desease
  gosub analyze_plusminus 98 153
  set %plant_desease #result
  if #result = error
    goto analyze_plant

  ; analyze poison potions
  gosub analyze_number 202 98
  set %plant_poison #result
  if #result = error
    goto analyze_plant

  ; analyze cure potions
  gosub analyze_number 202 122
  set %plant_cure #result
  if #result = error
    goto analyze_plant

  ; analyze heal potions
  gosub analyze_number 202 146
  set %plant_heal #result
  if #result = error
    goto analyze_plant

  ; analyze strength potions
  gosub analyze_number 202 170
  set %plant_strength #result
  if #result = error
    goto analyze_plant


 ; display ok %plant_water %plant_infestation %plant_fungi %plant_poisoning %plant_desease $ %plant_poison %plant_cure %plant_heal %plant_strength

  ; perform care
  while %plant_water < 0
  {
    gosub water
    if #result <= 0
      goto analyze_plant
    set %plant_water %plant_water + 1
  }
  
  if %plant_health = 0
    goto nohealth

  while %plant_poison < %plant_infestation
  {
    gosub potion poison
    if #result <= 0
      goto analyze_plant
    set %plant_poison %plant_poison + 1
  }

  while %plant_cure < %plant_fungi
  {
    gosub potion cure
    if #result <= 0
      goto analyze_plant
    set %plant_cure %plant_cure + 1
  }

  while %plant_heal < %plant_poisoning + %plant_desease + ( 4 - %plant_health )
  {
    gosub potion heal
    if #result <= 0
      goto analyze_plant
    set %plant_heal %plant_heal + 1
  }

  while %plant_strength < %plant_water
  {
    gosub potion strength
    if #result <= 0
      goto analyze_plant
    set %plant_strength %plant_strength + 1
  }
  ; wait for pending gumps
  set %timer #systime + 10000
  while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 255_231 && #contsize <> 258_219 && #contsize <> 250_219 ) ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  if ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 255_231 && #contsize <> 258_219 && #contsize <> 250_219 ) )
    goto analyze_plant
  ; go to the harvesting gump if neccessary
  set %mx %contx + 80
  set %my %conty + 75
  click %mx %my
  set %timer #systime + 5000
  while ( #contkind <> GJZ || #contsize <> 255_231 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }

  if ( #contkind <> GJZ || #contsize <> 255_231 )
    goto analyze_plant

  set %contx #contposx
  set %conty #contposy

  set %plant_resources 1
  set %mx %contx + 145
  set %my %conty + 170
  set %ji #jindex + 1
  getresources:
  click %mx %my
  set %timer #systime + 5000
  while ( #contkind <> GJZ || #contsize <> 255_231 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  if ( #contkind <> GJZ || #contsize <> 255_231 )
    goto analyze_plant
  while %ji <= #jindex
  {
    scanjournal %ji
    if this_plant_has_no_resources_to_gather in #journal
      set %plant_resources 0
    set %ji %ji + 1
  }
  if %plant_resources = 1
    goto getresources

  set %plant_seeds 1
  set %mx %contx + 225
  set %my %conty + 170
  set %ji #jindex + 1
  getseeds:
  click %mx %my
  set %timer #systime + 5000
  while ( #contkind <> GJZ || #contsize <> 255_231 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  if ( #contkind <> GJZ || #contsize <> 255_231 )
    goto analyze_plant
  while %ji <= #jindex
  {
    scanjournal %ji
    if this_plant_has_no_seeds_to_gather in #journal
      set %plant_seeds 0
    set %ji %ji + 1
  }
  if %plant_seeds = 1
    goto getseeds
  noharvest:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
}
else ; BEEHIVE CARE
{
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ; analyze beehive infestation
  gosub analyze_plusminus 84 80
  set %plant_infestation #result
  if #result = error
    goto analyze_plant

  ; analyze beehive desease
  gosub analyze_plusminus 84 105
  set %plant_desease #result
  if #result = error
    goto analyze_plant

  ; analyze beehive water
  gosub analyze_plusminus 84 130
  set %plant_water 0 ;todo #result
  if #result = error
    goto analyze_plant

  ; analyze beehive flowers
  gosub analyze_plusminus 84 154
  set %plant_flowers 0 ;todo #result
  if #result = error
    goto analyze_plant

  ; analyze agility potions
  gosub analyze_number 196 54
  set %plant_agility #result
  if #result = error
    goto analyze_plant

  ; analyze poison potions
  gosub analyze_number 196 80
  set %plant_poison #result
  if #result = error
    goto analyze_plant

  ; analyze cure potions
  gosub analyze_number 196 104
  set %plant_cure #result
  if #result = error
    goto analyze_plant

  ; analyze heal potions
  gosub analyze_number 196 130
  set %plant_heal #result
  if #result = error
    goto analyze_plant

  ; analyze strength potions
  gosub analyze_number 196 154
  set %plant_strength #result
  if #result = error
    goto analyze_plant

  ; display ok %plant_infestation %plant_desease %plant_water %plant_flowers $ %plant_agility %plant_poison %plant_cure %plant_heal %plant_strength
  ; perform care

  if %plant_health = 0
    goto nohealth

  while %plant_poison < 0 - %plant_infestation
  {
    gosub potion poison
    if #result <= 0
      goto analyze_plant
    set %plant_poison %plant_poison + 1
  }

  while %plant_cure < %plant_poison + %plant_infestation - %plant_desease
  {
    gosub potion cure
    if #result <= 0
      goto analyze_plant
    set %plant_cure %plant_cure + 1
  }

  while %plant_heal < ( 4 - %plant_health )
  {
    gosub potion heal
    if #result <= 0
      goto analyze_plant
    set %plant_heal %plant_heal + 1
  }

  while %plant_strength < 0 + %plant_water + %plant_flowers
  {
    gosub potion strength
    if #result <= 0
      goto analyze_plant
    set %plant_strength %plant_strength + 1
  }

  while %plant_agility < 2 + %plant_water - %plant_flowers
  {
    gosub potion agility
    if #result <= 0
      goto analyze_plant
    set %plant_agility %plant_agility + 1
  }
  
  event exmsg %plant_id 0 0 Harvesting...
  findbeetool:
  finditem RRD %fbp
  if #findcnt = 0
  {
    event exmsg #charid 0 1199 Getting beehive tool...
    gosub gettools
    if #result = 0
      return 0
    goto findbeetool
  }
  ; wait for pending gumps
  set %timer #systime + 10000
  while ( #contkind <> GJZ || #contsize <> 258_219 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  if ( #contkind <> GJZ || #contsize <> 258_219 )
    goto analyze_plant
  set %mx %contx + 65
  set %my %conty + 55
  click %mx %my

  set %timer #systime + 10000
  while ( #contkind <> GJZ || #contsize <> 250_219 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }

  set %ji #jindex + 1
  gethoney:
  if ( #contkind <> GJZ || #contsize <> 250_219 )
    goto analyze_plant
  set %mx %contx + 210
  set %my %conty + 160
  click %mx %my
  set %timer #systime + 10000
  while ( #contkind <> GJZ || #contsize <> 250_219 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  while %ji <= #jindex
  {
    scanjournal %ji
    if enough_honey_in_the_hive in #journal
      goto getwaxstart
    if you_need_a_bottle in #journal
    {
      event exmsg #charid 0 1199 Getting empty bottles...
      gosub gettools
      if #result = 0
        return 0
      goto analyze_plant
    }
    if you_need_a_hive_tool in #journal
    {
      event exmsg #charid 0 1199 Getting beehive tool...
      gosub gettools
      if #result = 0
        return 0
      goto analyze_plant
    }
    set %ji %ji + 1
  }
  goto gethoney
  
  getwaxstart:

  set %timer #systime + 10000
  while ( #contkind <> GJZ || #contsize <> 250_219 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  ;if ( #contkind <> GJZ || #contsize <> 250_219 )
  ;  goto analyze_plant
  ;set %mx %contx + 130
  ;set %my %conty + 105
  ; see if there's more than 99 wax, by searching the pixels around third digit position
  ;scanwaxnum:
  ;gosub scanpix %mx %my
  ;if #result = error
  ;  goto analyze_plant
  ;if #result = 15724502
  ;  goto getwax
  ;set %mx %mx + 1
  ;if %mx > %contx + 142
  ;  goto nowax
  ;goto scanwaxnum
  set %ji #jindex + 1
  getwax:
  if ( #contkind <> GJZ || #contsize <> 250_219 )
    goto analyze_plant
  set %mx %contx + 65
  set %my %conty + 160
  click %mx %my
  set %timer #systime + 10000
  while ( #contkind <> GJZ || #contsize <> 250_219 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
    while %ji <= #jindex
    {
      scanjournal %ji
      if enough_excess_wax_in_the_hive in #journal
        goto hiveharvestcomplete
      if not_enough_room_in_your_backpack in #journal
      {
        event exmsg #charid 0 1199 Unloading resources...
        gosub gettools
        if #result = 0
          return 0
        goto analyze_plant
      }
      if you_need_a_hive_tool in #journal
      {
        event exmsg #charid 0 1199 Getting beehive tool...
        gosub gettools
        if #result = 0
          return 0
        goto analyze_plant
      }
      set %ji %ji + 1
    }
  }
  while %ji <= #jindex
  {
    scanjournal %ji
    if enough_excess_wax_in_the_hive in #journal
      goto hiveharvestcomplete
    if not_enough_room_in_your_backpack in #journal
    {
      event exmsg #charid 0 1199 Unloading resources...
      gosub gettools
      if #result = 0
        return 0
      goto analyze_plant
    }
    if you_need_a_hive_tool in #journal
    {
      event exmsg #charid 0 1199 Getting beehive tool...
      gosub gettools
      if #result = 0
        return 0
      goto analyze_plant
    }
    set %ji %ji + 1
  }
  goto getwax
  nowax:
}

nohealth:

; wait for pending gumps
set %timer #systime + 10000
while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 255_231 && #contsize <> 258_219 && #contsize <> 250_219 ) ) && #systime < %timer
{
  onhotkey Esc
    return 0
}

; the last wax harvested results in beehive gump closing, so no need to wait for it
hiveharvestcomplete:

; close all plant gumps
while #contkind = GJZ && ( #contsize = 263_231 || #contsize = 255_231 || #contsize = 258_219 || #contsize = 250_219 )
{
  set %mx #contposx + 100
  set %my #contposy + 100
  click %mx %my r
}


return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub water

event exmsg %plant_id 0 101 Watering...
findwaterpitcher:
finditem _VBM_WYF_ %fbp
if #findcnt = 0
{
  ; wait for pending gumps
  set %timer #systime + 10000
  while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 255_231 && #contsize <> 258_219 && #contsize <> 250_219 ) ) && #systime < %timer
  {
    onhotkey Esc
      return -1
  }
  ; close all plant gumps
  while #contkind = GJZ && ( #contsize = 263_231 || #contsize = 255_231 || #contsize = 258_219 || #contsize = 250_219 )
  {
    set %mx #contposx + 100
    set %my #contposy + 100
    click %mx %my r
  }
  event exmsg #charid 0 1199 Getting water pitcher...
  gosub gettools
  if #result = 0
    return -1
  goto findwaterpitcher
}
set %pitcher_id #findid
set %pitcher_type #findtype
if %pitcher_type = WYF
{
  event exmsg #charid 0 1199 Getting water...
  gotowaterthrough:
  gosub getto %waterthrough_x %waterthrough_y %waterthrough_z
  if #result = 0
    return -1
  set #lobjectid %pitcher_id
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #targcurs = 0 && #systime < %timer
  {
    onhotkey Esc
      return -1
  }
  if #targcurs = 0
    goto gotowaterthrough
  set #ltargetid %waterthrough_id
  set #ltargetkind 1
  event macro 22 0
  gosub actset 1000
  wait 5
  goto findwaterpitcher
}

gosub getto %plant_x %plant_y %plant_z
if #result = 0
  return -1

set %timer #systime + 1000
while ( #contkind <> GJZ || #contsize <> 263_231 ) && #systime < %timer
{
  onhotkey Esc
    return -1
}

if #contkind <> GJZ || #contsize <> 263_231
  return 0

set %mx %contx + 225
set %my %conty + 75
gosub actwait
click %mx %my
set %timer #systime + 5000
while #targcurs = 0 && #systime < %timer
{
  onhotkey Esc
    return -1
}
if #targcurs = 0
  return 0
set #ltargetid %pitcher_id
set #ltargetkind 1
set %ji #jindex + 1
event macro 22 0
set %timer #systime + 5000
while #systime < %timer
{
  while %ji <= #jindex
  {
    scanjournal %ji
    if water in #journal
    {
      gosub actset 1000
      return 1
    }
    set %ji %ji + 1
  }
}

return 0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub potion ; type

set %potion %1
set %potion_msg %potion_msg . %potion
set %potion_msgcol %potion_msgcol . %potion
set %potion_type %potion_type . %potion
event exmsg %plant_id 0 %potion_msgcol %potion_msg
ignoreitem reset
findpotion:
finditem %potion_type %fbp
if #findcnt = 0
{
  ; wait for pending gumps
  set %timer #systime + 10000
  while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 255_231 && #contsize <> 258_219 && #contsize <> 250_219 ) ) && #systime < %timer
  {
    onhotkey Esc
      return -1
  }
  ; close all plant gumps
  while #contkind = GJZ && ( #contsize = 263_231 || #contsize = 255_231 || #contsize = 258_219 || #contsize = 250_219 )
  {
    set %mx #contposx + 100
    set %my #contposy + 100
    click %mx %my r
  }
  event exmsg %char_id 0 1199 Getting potions...
  gosub gettools
  if #result = 0
    return -1
  goto findpotion
}
event property #findid
if greater notin #property
{
  ignoreitem #findid
  goto findpotion
}
gosub getto %plant_x %plant_y %plant_z
if #result = 0
  return -1
set %timer #systime + 1000
while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 258_219 ) ) && #systime < %timer
{
  onhotkey Esc
    return -1
}
if #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 258_219 )
  return 0
set %mx %contx + %potion_x . %plant_type
set %index %potion , %plant_type
set %my %conty + %potion_y . %index
set %ji #jindex + 1

gosub actwait
click %mx %my
set %timer #systime + 5000
while #systime < %timer
{
  while %ji <= #jindex
  {
    scanjournal %ji
    if pour_the_potion in #journal || soaked in #journal
    {
      gosub actset 1000
      return 1
    }
    set %ji %ji + 1
  }
}

return 0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub gettools
  set %eb_top 30
  set %wp_top 1
  set %bt_top 2
  set %agi_top 6
  set %poi_top 4
  set %cur_top 4
  set %hel_top 1
  set %str_top 0
  ; open the backpack
  openbp:
  set #lobjectid #backpackid
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #contid <> #backpackid && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  gosub actset 1000
  if #contid <> #backpackid
    goto openbp

  counttools:

  gosub cnt WUF %fbp
  set %eb_count #result
  gosub cnt _VBM_WYF_ %fbp
  set %wp_count #result
  gosub cnt RRD %fbp
  set %bt_count #result

  opentc:
  gosub getto %toolcont_x %toolcont_y %toolcont_z
  if #result = 0
    return 0
  set #lobjectid %toolcont_id
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #contid <> %toolcont_id && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  gosub actset 1000
  if #contid <> %toolcont_id
    goto opentc

  set %ftc C_ , %toolcont_id

  findmorespoils:
  finditem _KRD_ETH_ %fbp
  if #findcnt > 0
  {
    gosub actwait
    if #findstack > 0
    {
      exevent drag #findid #findstack
    }
    else
    {
      exevent drag #findid
    }
    gosub actset 800
    gosub actwait
    exevent dropc %toolcont_id
    gosub actset 800
    goto findmorespoils
  }

  if %wp_count >= %wp_top && %eb_count >= %eb_top && %bt_count >= %bt_top
    goto countpotions

  gosub cnt WUF %ftc
  set %eb_stock #result

  gosub cnt _VBM_WYF_ %ftc
  set %wp_stock #result

  gosub cnt RRD %ftc
  set %bt_stock #result

  if %wp_stock + %wp_count < %wp_top || %eb_stock + %eb_count < %eb_top || %bt_stock + %bt_count < %bt_top
  {
    event exmsg %toolcont_id 0 1199 Not enough tools. Please restock.
    return 0
  }

  gosub mov WUF %ftc #backpackid %eb_count %eb_top
  if #result = 1
    goto counttools
  gosub mov _VBM_WYF_ %ftc #backpackid %wp_count %wp_top
  if #result = 1
    goto counttools
  gosub mov RRD %ftc #backpackid %bt_count %bt_top
  if #result = 1
    goto counttools

  countpotions:
  gosub cnt YUF %fbp
  set %agi_cnt #result
  gosub cnt AVF %fbp
  set %poi_cnt #result
  gosub cnt NUF %fbp
  set %cur_cnt #result
  gosub cnt UUF %fbp
  set %hel_cnt #result
  gosub cnt XUF %fbp
  set %str_cnt #result
  
  if %agi_cnt < %agi_top || %poi_cnt < %poi_top || %cur_cnt < %cur_top || %hel_cnt < %hel_top || %str_cnt < %str_top
  {

    finditem QMJ %ftc
    if #findcnt > 0
    {
      for #findindex 1 #findcnt
      {
        event property #findid
        set #result 1
        while greater , #spc , agility in #property && %agi_cnt < %agi_top && #result = 1
        {
          gosub usekeg #findid
          set %agi_cnt %agi_cnt + 1
        }
        while greater , #spc , poison in #property && %poi_cnt < %poi_top && #result = 1
        {
          gosub usekeg #findid
          set %poi_cnt %poi_cnt + 1
        }
        while greater , #spc , cure in #property && %cur_cnt < %cur_top && #result = 1
        {
          gosub usekeg #findid
          set %cur_cnt %cur_cnt + 1
        }
        while greater , #spc , heal in #property && %hel_cnt < %hel_top && #result = 1
        {
          gosub usekeg #findid
          set %hel_cnt %hel_cnt + 1
        }
        while greater , #spc , strength in #property && %str_cnt < %str_top && #result = 1
        {
          gosub usekeg #findid
          set %str_cnt %str_cnt + 1
        }
        if #result = 0
          return 0
      }
    }
    goto counttools
  }

return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub disposetools

  ; open the backpack
  openbp:
  set #lobjectid #backpackid
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #contid <> #backpackid && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  gosub actset 1000
  if #contid <> #backpackid
    goto openbp

  opentc:
  gosub getto %toolcont_x %toolcont_y %toolcont_z
  if #result = 0
    return 0
  set #lobjectid %toolcont_id
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #contid <> %toolcont_id && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  gosub actset 1000
  if #contid <> %toolcont_id
    goto opentc

  set %ftc C_ , %toolcont_id
  
  gosub actwait
  set %potid
  findmorepotions:
  finditem _YUF_AVF_NUF_UUF_XUF_ %fbp
  if #findcnt > 0
  {
    set %potid #findid
    set %pottype #findtype
    if %pottype = YUF
      set %pottype agility
    if %pottype = AVF
      set %pottype poison
    if %pottype = NUF
      set %pottype cure
    if %pottype = UUF
      set %pottype heal
    if %pottype = XUF
      set %pottype strength

    finditem QMJ %ftc
    if #findcnt > 0
    {
      for #findindex 1 #findcnt
      {
        event property #findid
        if greater , #spc , %pottype in #property || empty in #property
        {
          gosub actwait
          exevent drag %potid
          gosub actset 800
          gosub actwait
          exevent dropc #findid
          gosub actset 800
        }
      }
    }
    ignoreitem %potid
    goto findmorepotions
  }

  findmoretools:
  finditem _VBM_WYF_WUF_RRD_KRD_ETH_PDF_ %fbp
  if #findcnt > 0
  {
    gosub actwait
    if #findstack > 0
    {
      exevent drag #findid #findstack
    }
    else
    {
      exevent drag #findid
    }
    gosub actset 800
    gosub actwait
    exevent dropc %toolcont_id
    gosub actset 800
    goto findmoretools
  }

return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub cnt ; type cont
  set %type %1
  set %fcnt %2
  set %cnt 0
  gosub actwait
  finditem %type %fcnt
  if #findcnt > 0
  {
    for #findindex 1 #findcnt
    {
      if #findstack > 0
        set %cnt %cnt + #findstack
      else
        set %cnt %cnt + 1
    }
  }
return %cnt

sub mov ; type fcont dcont curcnt topcnt
  set %type %1
  set %fcnt %2
  set %dcnt %3
  set %cnt %4
  set %tcnt %5
  if %cnt < %tcnt
  {
    gosub actwait
    finditem %type %fcnt
    if #findcnt > 0
    {
      set %drag %tcnt - %cnt
      gosub actwait
      if %drag > #findstack
      {
        if #findstack > 0
          exevent drag #findid #findstack
        else
          exevent drag #findid
      }
      else
      {
        exevent drag #findid %drag
      }
      gosub actset 800
      gosub actwait
      exevent dropc %dcnt
      gosub actset 800
    }
    return 1
  }
return 0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub usekeg ; id
  set %kegid %1
  usekegagain:

  set #lobjectid %kegid
  set %ji #jindex + 1
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #systime < %timer
  {
    while %ji <= #jindex
    {
      scanjournal %ji
      if keg_is_empty in #journal
      {
        gosub actset 1000
        return 0
      }
      if you_pour_some in #journal
      {
        gosub actset 1000
        return 1
      }
      onhotkey Esc
        return 0
      set %ji %ji + 1
    }
  }
  
  goto usekegagain

return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub scanpix ; x y
  set %bx %1
  set %by %2
  set %timer #systime + 5000
  repeat
    savepix %ax %ay 1
    ;if #pixcol = 5911015 || #pixcol = 59367 || #pixcol = 3270631 || #pixcol = 13024701 || #pixcol = 15724502
    ;  return #pixcol
    if _ , #pixcol , _ in %knowncol
      return #pixcol
  until #systime > %timer
  ;if _ , #pixcol , _ notin %knowncol
  ;  set %knowncol %knowncol , #pixcol , _
return error

sub analyze_plusminus ; x y

set %ax %1 + %contx
set %ay %2 + %conty
gosub scanpix %ax %ay
set %c1 #result
set %ay %ay - 2
gosub scanpix %ax %ay
set %c2 #result
if %c1 = error || %c2 = error
  return error
if %c1 = 59160 || %c2 = 59160
  return -2
if %c1 = 6375 && %c2 = 6375
  return -1
if %c2 = 5911015
  return 2
if %c2 = 59367 || %c2 = 3270631
  return 1
if %c1 = 59367 || %c1 = 3270631
  return -1
if %c1 = 5911015
  return -2
if %c1 = 6375
  return -2

return 0

sub analyze_number ; x y

set %ax %1 + %contx
set %ay %2 + %conty
gosub scanpix %ax %ay
set %c1 #result
set %ay %ay + 4
gosub scanpix %ax %ay
set %c2 #result
if %c1 = error || %c2 = error
  return error
if ( %c1 = 13024701 || %c1 = 15724502 ) && ( %c2 = 13024701 || %c2 = 15724502 )
  return 0
if ( %c1 = 13024701 || %c1 = 15724502 )
  return 2
return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub getto ; x y z

set %getto_x %1
set %getto_y %2
set %getto_z %3

set %timer #systime
while #charposx <> %getto_x || #charposy <> %getto_y || #charposz <> %getto_z
{
  if #systime >= %timer
  {
    event pathfind %getto_x %getto_y %getto_z
    set %timer #systime + 5000
  }
  onhotkey Esc
    return 0
}

return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub actwait

while #systime < %act_timer
  wait 1

return

sub actset ; cooldown

set %act_timer #systime + %1

return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub savevars
  set *care_plantations
  set *care_plantations *care_plantations , plantation_count , | , %plantation_count , |
  set *care_plantations *care_plantations , plantation_num , | , %plantation_num , |
  if %plantation_count > 0
  {
    for %i 1 %plantation_count
    {
      set %plant_count %plant_count . %i
      set %toolcont_x %toolcont_x . %i
      set %toolcont_y %toolcont_y . %i
      set %toolcont_z %toolcont_z . %i
      set %toolcont_id %toolcont_id . %i
      set %waterthrough_x %waterthrough_x . %i
      set %waterthrough_y %waterthrough_y . %i
      set %waterthrough_z %waterthrough_z . %i
      set %waterthrough_id %waterthrough_id . %i
      set *care_plantations *care_plantations , plant_count , %i , | , %plant_count , |
      set *care_plantations *care_plantations , toolcont_x , %i , | , %toolcont_x , |
      set *care_plantations *care_plantations , toolcont_y , %i , | , %toolcont_y , |
      set *care_plantations *care_plantations , toolcont_z , %i , | , %toolcont_z , |
      set *care_plantations *care_plantations , toolcont_id , %i , | , %toolcont_id , |
      set *care_plantations *care_plantations , waterthrough_x , %i , | , %waterthrough_x , |
      set *care_plantations *care_plantations , waterthrough_y , %i , | , %waterthrough_y , |
      set *care_plantations *care_plantations , waterthrough_z , %i , | , %waterthrough_z , |
      set *care_plantations *care_plantations , waterthrough_id , %i , | , %waterthrough_id , |
      if %plant_count > 0
      {
        for %j 1 %plant_count
        {
          set %index %i , _ , %j
          set %plant_x %plant_x . %index
          set %plant_y %plant_y . %index
          set %plant_z %plant_z . %index
          set %plant_id %plant_id . %index
          set *care_plantations *care_plantations , plant_x , %index , | , %plant_x , |
          set *care_plantations *care_plantations , plant_y , %index , | , %plant_y , |
          set *care_plantations *care_plantations , plant_z , %index , | , %plant_z , |
          set *care_plantations *care_plantations , plant_id , %index , | , %plant_id , |
        }
      }
    }
  }
return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

The Drizzle
Passer by
Posts: 2
Joined: Fri Apr 29, 2011 3:49 pm

Re: [euo script] Bee Hive Care

Post by The Drizzle »

AWESOME Thorgal! great job.. Looks like you have an amazing start on a really useful script. I do have some issues i was hoping you could help me with however. I set everything up; troughs, plantation 1, all 25 of my hives, resource container close to hives and the script begins.... I am presented with your lovely gump/interface you hand-tailored and I hit the "care" button... My avatar pathfinds to my resource container and opens it and begins pouring potions into bottles... After about 14-16 of them he stops and the script is still running, no halt/error message or anything. Can you think of anything off the top of your head? Did you have this issue at all in the development stage?

Thanks so much Thorgal for your time and this wonderful contribution,
-Gabriel AKA The Drizzle :nod:
User avatar
Thorgal
Legendary Scribe
Posts: 238
Joined: Mon Aug 23, 2010 8:14 am

Re: [euo script] Bee Hive Care

Post by Thorgal »

Well like i said i didn't make the script i just use it, but do you have a pitcher of water in you container and when you targeted the hive, where you standing within working range of the hives, you need to target from where you would normaly stand if you were harvesting manualy!

Hope this helps
The Drizzle
Passer by
Posts: 2
Joined: Fri Apr 29, 2011 3:49 pm

Re: [euo script] Bee Hive Care

Post by The Drizzle »

Well yes and yes unfortunately.. I actually had several pitchers of water in my resource container AND yes, I did stand within working distance of the hives.
User avatar
Thorgal
Legendary Scribe
Posts: 238
Joined: Mon Aug 23, 2010 8:14 am

Re: [euo script] Bee Hive Care

Post by Thorgal »

Ok just to make sure lets recap everything.

When you set up your script; you targeted the through, container and hives all within working range,
then, when you go to start the script, you select plantation 1, then care.
In your container you have;
Pitcher of water,
Empty bottles,
Hives tools,
Kegs of GA, GC, GP, GH,
if all of this is accurate, i just thought of something, how are the hives laid out? Can your char access them directly or does he have to go around some obstacles, cause that would be a problem.

o o
o o
o o
o o o o o o

X

X being the container!

A direct path to all the hives should be made.

I hope this was of some help.

Good luck!
User avatar
Viola
Adept Scribe
Posts: 41
Joined: Thu Jul 09, 2009 12:48 am

Re: [euo script] Bee Hive Care

Post by Viola »

I just got this script tonight and that is what happened with me. I have a VERY simple layout with only 6 hives on my patio- when I stand in a middle square everything can be accessed without moving. I got the gump set up fine, and started the care button. It sets up the bottles and everything and then says: Scanning...

It will stop right there and it won't do anything until I individually click each hive to get it to scan it and potion it as needed. Then after I click each hive and it gets cared for, it puts the unused potions back in the kegs, the tools etc away in the resource container, and it's all done. It does save me on clicking, but am I supposed to have to manually get it to access each hive after it says Scanning...

Edit:
To clarify my lay out: C is my resource container, B is for bee hives, and Me is, obviously, me in the middle in reach of each hive and the container.

...C...
B .... B
B.Me.B
B .... B


Edit Edit! Lololol! Here was the problem: I selected the Plants AND Hives in my plantation area, but the problem is my plants are decorative. The script will care for plants and hives, so it was trying to access my flower menus to tend them, which is why it hung up at scanning. All better now. :) I cleared the plantation and reset it with only the hives.

Also, you still need the water pitcher in your resource bag because the script wants to have it in case you're caring for growing plants, but if you are not tending plants with the script, it doesn't matter where the trough is. So, don't worry about that. Personally, I just use sprinklers for my plants. Easy Peasy! Thanks for posting the script.
The power of cute compels you!
So sayeth the Bunneh . . .

Image
User avatar
Thorgal
Legendary Scribe
Posts: 238
Joined: Mon Aug 23, 2010 8:14 am

Re: [euo script] Bee Hive Care

Post by Thorgal »

Yeah i know its not perfect and a few adjustments should be made to it, but i ddidn't write it and dont know anything about scripting, so if any scripter out there wanna give it a shot, be my guest... I would like for the delete buttons to work and a few things like that.
User avatar
Ilsanor
Legendary Scribe
Posts: 407
Joined: Tue Jun 07, 2011 5:47 am

Re: [euo script] Bee Hive Care

Post by Ilsanor »

For some reason this script didn't strengthen my hives. Checked the code and it turned out the subs resposnible for strength was set to 0 for some unknown reason. If you have the same problem change the foloowing lines: (use the 'find' function to find them)

Code: Select all

set %str_top 0
(change the 0 to 6)

Code: Select all

while %plant_strength < 0 + %plant_water + %plant_flowers
(change the 0 to 2)


Other than this glitch the script takes care of the bees pretty well, if a bit slowly (due to the use of bottles not kegs). Thanks for posting it Thorgal. :)
ChoGath
Journeyman Scribe
Posts: 20
Joined: Thu Apr 21, 2011 1:19 am

Re: [euo script] Bee Hive Care

Post by ChoGath »

had same problem with the script halting while filling the potion bottles but figured it out: just place enough empty bottles on your pack to the scipt do its thing and leave some at the container... it'll work out just fine..
User avatar
Viola
Adept Scribe
Posts: 41
Joined: Thu Jul 09, 2009 12:48 am

Re: [euo script] Bee Hive Care

Post by Viola »

if you search for:

set %wp_top 1

and set the 1 to 0 it will no longer require a water pitcher as a "tool" needed just to tend your bees

If you use the script to tend your flowers, it will only need 1 water pitcher even if you ask it to pick up 5 or 6. As soon as the one pitcher empties, it walks to the trough, fills it up and goes back to your flowers. Even if it puts the water pitcher back empty, it's okay because it will fill it up the next time. Just make sure there's a clear walking path to the trough.

Has anyone figured out how to delete extra plantations yet? I've accidentally pressed the 'add' button on the wrong side and now I have extra plantations, and I cannot find anyway to remove them from the plantation numbers list. I looked in the code and saw a ;todo reference for the plantation deletion part of the script. So I guess it was unfinished? I don't know. But it's annoying having unneeded lists when you change your plantations. I cannot see where the plantation list is listed or saved, but I've tried deleting the script and downloading it fresh, but the full list still appears just as before. So it's saving it somewhere on my computer (I think) and referencing it, and I don't know where.

Edit: Okay if you've accidentally added too many plantations like me or were unable to remove unwanted ones, here's one option, you can go to Run, Open Regedit, search for Care_Plantations and it'll show you the string in EasyUO. You can either modify the string and delete what you do not want, but the damn thing is LONG and CLUNKY, OR! Just delete the CARE_PLANTATIONS string and when you load the script again, it's fresh and clean with no plantations. So you can start loading your plantations over. Whew!

Now I'm down to 4 plantations, 1-3 for bees, and 4 for my multi-layer flower garden. I have two versions of the script, one I use for bees with my bee tool and potion preferences (no water pitcher), and one for my flowers which uses only flower potions, one water pitcher, and no hive tools. However, both scripts save their plantation data to the same line in regedit. So, it's just a really long string. :P
The power of cute compels you!
So sayeth the Bunneh . . .

Image
User avatar
bearman
Master Scribe
Posts: 68
Joined: Mon Feb 28, 2011 6:09 pm

Re: [euo script] Bee Hive Care

Post by bearman »

Hi

I've taken a look at the script and I've added 2 buttons to the menu. You can now choose to not collect honey, wax or neither and just potion your hives. Hope this helps and saves you money on hive tools. This is an add to someone else script I didn't create the original.

Code: Select all

;=================================================================
; Script Name: Bee And Plant Care
; Author: Unknown buttons to collect or not to collect for wax and honey added by Bearman (Excelsior Shard)
; Version: 1.1
; Client Tested with: 5.0.9.1
; EUO version tested with: 1.5 Version 176
; Shard FS:
; Public Release: 12th July 2011
;=================================================================

if *honey = N/A
   set *honey On
if *wax = N/A
   set *wax On

linespercycle 10000

set %knowncol _5911015_59367_3270631_13024701_15724502_6375_524288_59160__4340025_4337969_3748145_3746089_3221801_4342338_2695457_2171169_

set %fbp C_ , #backpackid

set %potion_xplant 220
set %potion_xbee 210

set %potion_yagilitybee 55
set %potion_msgagility Agilitying...
set %potion_msgcolagility 194
set %potion_typeagility YUF

set %potion_ypoisonplant 100
set %potion_ypoisonbee 80
set %potion_msgpoison Poisoning...
set %potion_msgcolpoison 70
set %potion_typepoison AVF

set %potion_ycureplant 124
set %potion_ycurebee 105
set %potion_msgcure Curing...
set %potion_msgcolcure 41
set %potion_typecure NUF

set %potion_yhealplant 148
set %potion_yhealbee 130
set %potion_msgheal Healing...
set %potion_msgcolheal 55
set %potion_typeheal UUF

set %potion_ystrengthplant 172
set %potion_ystrengthbee 155
set %potion_msgstrength Strengthening...
set %potion_msgcolstrength 0
set %potion_typestrength XUF

if *care_plantations <> N/A
{
  set %str *care_plantations
  loadvar:
  str pos %str |
  if #strres > 0
  {
    set %pos #strres - 1
    str left %str %pos
    set %vname #strres
    set %pos %pos + 2
    str pos %str | 2
    set %len #strres - %pos
    if %len > 0
    {
      str mid %str %pos %len
      set % . %vname #strres
    }
    else
    {
      set % . %vname
    }
    set %pos %pos + %len + 1
    str len %str
    str mid %str %pos #strres
    set %str #strres
    goto loadvar
  }
}
else
{
  set %plantation_count 0
  set %plantation_num 0
}

set %act_timer #systime

drawinterface:

menu clear
menu window size 420 340
menu window title Plant and beehive caring helper
menu font bgcolor btnface
menu text t1 15 10 Plantations
menu text t2 125 10 Plants/Beehives
menu text t2 235 10 Settings for plantation %plantation_num
menu button selectplantation 10 240 100 25 Select
menu button addplantation 10 270 100 25 Add
menu button delplantation 10 300 100 25 Remove
menu button showplant 120 240 100 25 Show
menu button addplant 120 270 100 25 Add
menu button delplant 120 300 100 25 Remove
menu button settoolcont 230 30 180 25 Set container with the tools
menu button setwaterthrough 230 60 180 25 Set water through
menu button honeycollect 230 90 180 25 Collect Honey , #spc , *honey
menu button waxcollect 230 120 180 25 Collect Wax , #spc , *wax
menu button disposetools 230 210 180 25 Put tools in container
menu button care 230 240 180 85 CARE ( plantation %plantation_num )
menu font bgcolor white
menu list create plantations 10 30 100 200
menu list create plants 120 30 100 200
menu show

gosub savevars

set %i 1
while %i <= %plantation_count
{
  menu list add plantations %i
  set %i %i + 1
}

if %plantation_num > 0 && %plantation_num <= %plantation_count
{
  set %i 1
  while %i <= %plant_count . %plantation_num
  {
    set %index %plantation_num , _ , %i
    menu list add plants %plant_id . %index
    set %i %i + 1
  }
}

set #menubutton 0

scanbuttons:

if #menubutton = honeycollect
   {
   if *honey = On
   set *honey Off
   else
   set *honey On
   menu delete honeycollect
   menu font bgcolor btnface
   menu button honeycollect 230 90 180 25 Collect Honey , #spc , *honey
   set #menubutton 0
   }

if #menubutton = waxcollect
   {
   if *wax = On
   set *wax Off
   else
   set *wax On
   menu delete waxcollect
   menu font bgcolor btnface
   menu button waxcollect 230 120 180 25 Collect Wax , #spc , *wax
   set #menubutton 0
   }

if #menubutton = closed
  halt

if #menubutton = selectplantation
{
  menu get plantations
  if #menures > 0 && #menures <= %plantation_count
  {
    set %plantation_num #menures
    goto drawinterface
  }
  else
  {
    display ok Select a plantation from the list first, or press Add to make a new plantation.
  }
  set #menubutton 0
}

if #menubutton = addplantation
{
  set %plantation_count %plantation_count + 1
  set %plant_count . %plantation_count 0
  set %toolcont_x . %plantation_count 0
  set %toolcont_y . %plantation_count 0
  set %toolcont_z . %plantation_count 0
  set %toolcont_id . %plantation_count 0
  set %waterthrough_x . %plantation_count 0
  set %waterthrough_y . %plantation_count 0
  set %waterthrough_z . %plantation_count 0
  set %waterthrough_id . %plantation_count 0
  set %plantation_num %plantation_count
  goto drawinterface
}

if #menubutton = delplantation
{
  menu list get plantations
  if #menures > 0 && #menures <= %plantation_count
  {
    display yesno Are you sure you want to remove plantation #menures with all its plants from the list?
    if #dispres = yes
    {
      goto drawinterface ;todo
    }
  }
  else
  {
    display ok Select a plantation from the list first.
  }
  set #menubutton 0
}

if #menubutton = showplant
{
  if %plantation_num > 0
  {
    menu get plants
    if #menures > 0 && #menures <= %plant_count . %plantation_num
    {
      set %index %plantation_num , _ , #menures
      set %plant_id %plant_id . %index
      set %plant_x %plant_x . %index
      set %plant_y %plant_y . %index
      set %plant_z %plant_z . %index
      event exmsg %plant_id 0 0 Here!
      gosub getto %plant_x %plant_y %plant_z
    }
    else
    {
      display ok Select a plant first.
    }
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = addplant
{
  if %plantation_num > 0
  {
    display ok Stand near the plant or a beehive, and target it. Press Esc to finish.
    targetplant:
    set #targcurs 1
    while #targcurs = 1
    {
      onhotkey Esc
        goto drawinterface
    }
    finditem #ltargetid
    if #findtype <> OOD
    {
      event property #ltargetid
      if bowl notin #property && plant notin #property
      {
        event exmsg #ltargetid 0 1199 Wrong object type
        goto targetplant
      }
    }
    if %plant_count . %plantation_num > 0
    {
      for %i 1 %plant_count . %plantation_num
      {
        set %index %plantation_num , _ , %i
        if %plant_id . %index = #ltargetid
        {
          set %plant_x . %index #charposx
          set %plant_y . %index #charposy
          set %plant_z . %index #charposz
          event exmsg #ltargetid 0 1199 New location stored
          goto targetplant
        }
      }
    }
    set %plant_count . %plantation_num %plant_count . %plantation_num + 1
    set %index %plantation_num , _ , %plant_count . %plantation_num
    set %plant_x . %index #charposx
    set %plant_y . %index #charposy
    set %plant_z . %index #charposz
    set %plant_id . %index #ltargetid
    event exmsg #ltargetid 0 0 ok
    goto targetplant
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = delplant
{
  if %plantation_num > 0
  {
    menu get plants
    if #menures > 0 && #menures <= %plant_count . %plantation_num
    {
      display yesno Are you sure you want to remove the plant from plantation list?
      if #dispres = yes
      {
        set %start #menures
        set %plant_count %plant_count . %plantation_num - 1
        if %start >= %plant_count
        {
          for %i %start %plant_count
          {
            set %index1 %plantation_num , _ , %i
            set %j %i + 1
            set %index2 %plantation_num , _ , %j
            set %plant_x . %index_1 %plant_x . %index_2
            set %plant_y . %index_1 %plant_y . %index_2
            set %plant_z . %index_1 %plant_z . %index_2
            set %plant_id . %index_1 %plant_id . %index_2
          }
        }
        set %plant_count . %plantation_num %plant_count
        goto drawinterface
      }
    }
    else
    {
      display ok Select a plant first.
    }
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = settoolcont
{
  if %plantation_num > 0
  {
    display ok Stand near the tool container, and target it. Press Esc to cancel.
    set #targcurs 1
    while #targcurs = 1
    {
      onhotkey Esc
        goto drawinterface
    }
    set %toolcont_x . %plantation_num #charposx
    set %toolcont_y . %plantation_num #charposy
    set %toolcont_z . %plantation_num #charposz
    set %toolcont_id . %plantation_num #ltargetid
    event exmsg #ltargetid 0 0 ok
    goto drawinterface
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = setwaterthrough
{
  if %plantation_num > 0
  {
    display ok Stand near the waterthrough, and target it. Press Esc to cancel.
    set #targcurs 1
    while #targcurs = 1
    {
      onhotkey Esc
        goto drawinterface
    }
    set %waterthrough_x . %plantation_num #charposx
    set %waterthrough_y . %plantation_num #charposy
    set %waterthrough_z . %plantation_num #charposz
    set %waterthrough_id . %plantation_num #ltargetid
    event exmsg #ltargetid 0 0 ok
    goto drawinterface
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = care
{
  if %plantation_num > 0
  {
    menu hide
    display ok Press OK to begin. Do NOT switch to another window or let any window cover the UO client. Hold Esc to interrupt the care.
    gosub care normal
    if #result = 1
    {
      display ok Care finished.
    }
    else
    {
      display ok Care interrupted.
    }
    menu show
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

if #menubutton = disposetools
{
  if %plantation_num > 0
  {
    gosub care disposetools
  }
  else
  {
    display ok Select a plantation first.
  }
  set #menubutton 0
}

goto scanbuttons

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub care ; mode

set %care_mode %1
set %plant_count %plant_count . %plantation_num
set %toolcont_x %toolcont_x . %plantation_num
set %toolcont_y %toolcont_y . %plantation_num
set %toolcont_z %toolcont_z . %plantation_num
set %toolcont_id %toolcont_id . %plantation_num
set %waterthrough_x %waterthrough_x . %plantation_num
set %waterthrough_y %waterthrough_y . %plantation_num
set %waterthrough_z %waterthrough_z . %plantation_num
set %waterthrough_id %waterthrough_id . %plantation_num

if %care_mode = disposetools
  goto care_disposetools

gosub gettools
if #result = 0
  return 0

set %plant_num 1
while %plant_num <= %plant_count
{
  set %index %plantation_num , _ , %plant_num
  set %plant_id %plant_id . %index
  set %plant_x %plant_x . %index
  set %plant_y %plant_y . %index
  set %plant_z %plant_z . %index
  gosub careitem
  if #result = 0
    return 0
  set %plant_num %plant_num + 1
}

care_disposetools:
gosub disposetools

return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub careitem

set #result 0
analyze_plant:
if #result = -1
  return 0

gosub getto %plant_x %plant_y %plant_z
if #result = 0
  return 0

event exmsg %plant_id 0 101 Scanning...

; close all plant gumps
while #contkind = GJZ && ( #contsize = 263_231 || #contsize = 255_231 || #contsize = 258_219 || #contsize = 250_219 )
{
  set %mx #contposx + 100
  set %my #contposy + 100
  click %mx %my r
}

useplant:
; use the plant
set #lobjectid %plant_id
gosub actwait
event macro 17 0

; wait for gump
set %timer #systime + 5000
while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 258_219 ) ) && #systime < %timer
{
  onhotkey Esc
    return 0
}

if #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 258_219 )
  goto useplant

set %contx #contposx
set %conty #contposy

set %plant_type 0
if #contsize = 263_231
{
  set %plant_type plant
}
else
{
  if #contsize = 258_219
  {
    set %plant_type bee
  }
  else
  {
    goto analyze_plant
  }
}

gosub actset 1000

; analyze plant health
event property %plant_id
if vibrant in #property || thriving in #property
  set %plant_health 4
if healthy in #property
  set %plant_health 3
if wilted in #property || sickly in #property
  set %plant_health 2
if dying in #property
  set %plant_health 1
if vibrant notin #property && healthy notin #property && wilted notin #property && sickly notin #property && dying notin #property && thriving notin #property
  set %plant_health 0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

if %plant_type = plant ; PLANT CARE
{
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ; analyze plant water
  gosub analyze_plusminus 198 77
  set %plant_water #result
  if #result = error
    goto analyze_plant

  ; analyze plant infestation
  gosub analyze_plusminus 98 101
  set %plant_infestation #result
  if #result = error
    goto analyze_plant

  ; analyze plant fungi
  gosub analyze_plusminus 98 125
  set %plant_fungi #result
  if #result = error
    goto analyze_plant

  ; analyze plant poisoning
  gosub analyze_plusminus 98 149
  set %plant_poisoning #result
  if #result = error
    goto analyze_plant

  ; analyze plant desease
  gosub analyze_plusminus 98 153
  set %plant_desease #result
  if #result = error
    goto analyze_plant

  ; analyze poison potions
  gosub analyze_number 202 98
  set %plant_poison #result
  if #result = error
    goto analyze_plant

  ; analyze cure potions
  gosub analyze_number 202 122
  set %plant_cure #result
  if #result = error
    goto analyze_plant

  ; analyze heal potions
  gosub analyze_number 202 146
  set %plant_heal #result
  if #result = error
    goto analyze_plant

  ; analyze strength potions
  gosub analyze_number 202 170
  set %plant_strength #result
  if #result = error
    goto analyze_plant


; display ok %plant_water %plant_infestation %plant_fungi %plant_poisoning %plant_desease $ %plant_poison %plant_cure %plant_heal %plant_strength

  ; perform care
  while %plant_water < 0
  {
    gosub water
    if #result <= 0
      goto analyze_plant
    set %plant_water %plant_water + 1
  }

  if %plant_health = 0
    goto nohealth

  while %plant_poison < %plant_infestation
  {
    gosub potion poison
    if #result <= 0
      goto analyze_plant
    set %plant_poison %plant_poison + 1
  }

  while %plant_cure < %plant_fungi
  {
    gosub potion cure
    if #result <= 0
      goto analyze_plant
    set %plant_cure %plant_cure + 1
  }

  while %plant_heal < %plant_poisoning + %plant_desease + ( 4 - %plant_health )
  {
    gosub potion heal
    if #result <= 0
      goto analyze_plant
    set %plant_heal %plant_heal + 1
  }

  while %plant_strength < %plant_water
  {
    gosub potion strength
    if #result <= 0
      goto analyze_plant
    set %plant_strength %plant_strength + 1
  }
  ; wait for pending gumps
  set %timer #systime + 10000
  while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 255_231 && #contsize <> 258_219 && #contsize <> 250_219 ) ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  if ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 255_231 && #contsize <> 258_219 && #contsize <> 250_219 ) )
    goto analyze_plant
  ; go to the harvesting gump if neccessary
  set %mx %contx + 80
  set %my %conty + 75
  click %mx %my
  set %timer #systime + 5000
  while ( #contkind <> GJZ || #contsize <> 255_231 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }

  if ( #contkind <> GJZ || #contsize <> 255_231 )
    goto analyze_plant

  set %contx #contposx
  set %conty #contposy

  set %plant_resources 1
  set %mx %contx + 145
  set %my %conty + 170
  set %ji #jindex + 1
  getresources:
  click %mx %my
  set %timer #systime + 5000
  while ( #contkind <> GJZ || #contsize <> 255_231 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  if ( #contkind <> GJZ || #contsize <> 255_231 )
    goto analyze_plant
  while %ji <= #jindex
  {
    scanjournal %ji
    if this_plant_has_no_resources_to_gather in #journal
      set %plant_resources 0
    set %ji %ji + 1
  }
  if %plant_resources = 1
    goto getresources

  set %plant_seeds 1
  set %mx %contx + 225
  set %my %conty + 170
  set %ji #jindex + 1
  getseeds:
  click %mx %my
  set %timer #systime + 5000
  while ( #contkind <> GJZ || #contsize <> 255_231 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  if ( #contkind <> GJZ || #contsize <> 255_231 )
    goto analyze_plant
  while %ji <= #jindex
  {
    scanjournal %ji
    if this_plant_has_no_seeds_to_gather in #journal
      set %plant_seeds 0
    set %ji %ji + 1
  }
  if %plant_seeds = 1
    goto getseeds
  noharvest:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
}
else ; BEEHIVE CARE
{
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ; analyze beehive infestation
  gosub analyze_plusminus 84 80
  set %plant_infestation #result
  if #result = error
    goto analyze_plant

  ; analyze beehive desease
  gosub analyze_plusminus 84 105
  set %plant_desease #result
  if #result = error
    goto analyze_plant

  ; analyze beehive water
  gosub analyze_plusminus 84 130
  set %plant_water 0 ;todo #result
  if #result = error
    goto analyze_plant

  ; analyze beehive flowers
  gosub analyze_plusminus 84 154
  set %plant_flowers 0 ;todo #result
  if #result = error
    goto analyze_plant

  ; analyze agility potions
  gosub analyze_number 196 54
  set %plant_agility #result
  if #result = error
    goto analyze_plant

  ; analyze poison potions
  gosub analyze_number 196 80
  set %plant_poison #result
  if #result = error
    goto analyze_plant

  ; analyze cure potions
  gosub analyze_number 196 104
  set %plant_cure #result
  if #result = error
    goto analyze_plant

  ; analyze heal potions
  gosub analyze_number 196 130
  set %plant_heal #result
  if #result = error
    goto analyze_plant

  ; analyze strength potions
  gosub analyze_number 196 154
  set %plant_strength #result
  if #result = error
    goto analyze_plant

  ; display ok %plant_infestation %plant_desease %plant_water %plant_flowers $ %plant_agility %plant_poison %plant_cure %plant_heal %plant_strength
  ; perform care

  if %plant_health = 0
    goto nohealth

  while %plant_poison < 0 - %plant_infestation
  {
    gosub potion poison
    if #result <= 0
      goto analyze_plant
    set %plant_poison %plant_poison + 1
  }

  while %plant_cure < %plant_poison + %plant_infestation - %plant_desease
  {
    gosub potion cure
    if #result <= 0
      goto analyze_plant
    set %plant_cure %plant_cure + 1
  }

  while %plant_heal < ( 4 - %plant_health )
  {
    gosub potion heal
    if #result <= 0
      goto analyze_plant
    set %plant_heal %plant_heal + 1
  }

  while %plant_strength < 0 + %plant_water + %plant_flowers
  {
    gosub potion strength
    if #result <= 0
      goto analyze_plant
    set %plant_strength %plant_strength + 1
  }

  while %plant_agility < 2 + %plant_water - %plant_flowers
  {
    gosub potion agility
    if #result <= 0
      goto analyze_plant
    set %plant_agility %plant_agility + 1
  }

  event exmsg %plant_id 0 0 Harvesting...
  findbeetool:
  finditem RRD %fbp
  if #findcnt = 0
  {
    event exmsg #charid 0 1199 Getting beehive tool...
    gosub gettools
    if #result = 0
      return 0
    goto findbeetool
  }
  ; wait for pending gumps
  set %timer #systime + 10000
  while ( #contkind <> GJZ || #contsize <> 258_219 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  if ( #contkind <> GJZ || #contsize <> 258_219 )
    goto analyze_plant
  set %mx %contx + 65
  set %my %conty + 55
  click %mx %my

  set %timer #systime + 10000
  while ( #contkind <> GJZ || #contsize <> 250_219 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
  }

  set %ji #jindex + 1
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ; This harvests the Honey
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

gethoney:
if *honey = On
     {
     if ( #contkind <> GJZ || #contsize <> 250_219 )
        goto analyze_plant
     set %mx %contx + 210
     set %my %conty + 160
     click %mx %my
     set %timer #systime + 10000
     while ( #contkind <> GJZ || #contsize <> 250_219 ) && #systime < %timer
           {
           onhotkey Esc
           return 0
           }
     while %ji <= #jindex
           {
           scanjournal %ji
           if enough_honey_in_the_hive in #journal
           goto getwaxstart
           if you_need_a_bottle in #journal
              {
              event exmsg #charid 0 1199 Getting empty bottles...
              gosub gettools
              if #result = 0
              return 0
              goto analyze_plant
              }
           if you_need_a_hive_tool in #journal
              {
              event exmsg #charid 0 1199 Getting beehive tool...
              gosub gettools
              if #result = 0
              return 0
              goto analyze_plant
              }
           set %ji %ji + 1
           }
     goto gethoney
     }

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; This harvests the Wax
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

getwaxstart:
if *wax = On
   {
   set %timer #systime + 10000
   while ( #contkind <> GJZ || #contsize <> 250_219 ) && #systime < %timer
         {
         onhotkey Esc
         return 0
         }
  ;if ( #contkind <> GJZ || #contsize <> 250_219 )
  ;  goto analyze_plant
  ;set %mx %contx + 130
  ;set %my %conty + 105
  ; see if there's more than 99 wax, by searching the pixels around third digit position
  ;scanwaxnum:
  ;gosub scanpix %mx %my
  ;if #result = error
  ;  goto analyze_plant
  ;if #result = 15724502
  ;  goto getwax
  ;set %mx %mx + 1
  ;if %mx > %contx + 142
  ;  goto nowax
  ;goto scanwaxnum
  set %ji #jindex + 1
  getwax:
  if ( #contkind <> GJZ || #contsize <> 250_219 )
    goto analyze_plant
  set %mx %contx + 65
  set %my %conty + 160
  click %mx %my
  set %timer #systime + 10000
  while ( #contkind <> GJZ || #contsize <> 250_219 ) && #systime < %timer
  {
    onhotkey Esc
      return 0
    while %ji <= #jindex
    {
      scanjournal %ji
      if enough_excess_wax_in_the_hive in #journal
        goto hiveharvestcomplete
      if not_enough_room_in_your_backpack in #journal
      {
        event exmsg #charid 0 1199 Unloading resources...
        gosub gettools
        if #result = 0
          return 0
        goto analyze_plant
      }
      if you_need_a_hive_tool in #journal
      {
        event exmsg #charid 0 1199 Getting beehive tool...
        gosub gettools
        if #result = 0
          return 0
        goto analyze_plant
      }
      set %ji %ji + 1
    }
  }
  while %ji <= #jindex
  {
    scanjournal %ji
    if enough_excess_wax_in_the_hive in #journal
      goto hiveharvestcomplete
    if not_enough_room_in_your_backpack in #journal
    {
      event exmsg #charid 0 1199 Unloading resources...
      gosub gettools
      if #result = 0
        return 0
      goto analyze_plant
    }
    if you_need_a_hive_tool in #journal
    {
      event exmsg #charid 0 1199 Getting beehive tool...
      gosub gettools
      if #result = 0
        return 0
      goto analyze_plant
    }
    set %ji %ji + 1
  }
  goto getwax
  }
goto hiveharvestcomplete


nowax:
}

nohealth:

; wait for pending gumps
set %timer #systime + 10000
while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 255_231 && #contsize <> 258_219 && #contsize <> 250_219 ) ) && #systime < %timer
{
  onhotkey Esc
    return 0
}

; the last wax harvested results in beehive gump closing, so no need to wait for it
hiveharvestcomplete:

; close all plant gumps
while #contkind = GJZ && ( #contsize = 263_231 || #contsize = 255_231 || #contsize = 258_219 || #contsize = 250_219 )
{
  set %mx #contposx + 100
  set %my #contposy + 100
  click %mx %my r
}


return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub water

event exmsg %plant_id 0 101 Watering...
findwaterpitcher:
finditem _VBM_WYF_ %fbp
if #findcnt = 0
{
  ; wait for pending gumps
  set %timer #systime + 10000
  while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 255_231 && #contsize <> 258_219 && #contsize <> 250_219 ) ) && #systime < %timer
  {
    onhotkey Esc
      return -1
  }
  ; close all plant gumps
  while #contkind = GJZ && ( #contsize = 263_231 || #contsize = 255_231 || #contsize = 258_219 || #contsize = 250_219 )
  {
    set %mx #contposx + 100
    set %my #contposy + 100
    click %mx %my r
  }
  event exmsg #charid 0 1199 Getting water pitcher...
  gosub gettools
  if #result = 0
    return -1
  goto findwaterpitcher
}
set %pitcher_id #findid
set %pitcher_type #findtype
if %pitcher_type = WYF
{
  event exmsg #charid 0 1199 Getting water...
  gotowaterthrough:
  gosub getto %waterthrough_x %waterthrough_y %waterthrough_z
  if #result = 0
    return -1
  set #lobjectid %pitcher_id
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #targcurs = 0 && #systime < %timer
  {
    onhotkey Esc
      return -1
  }
  if #targcurs = 0
    goto gotowaterthrough
  set #ltargetid %waterthrough_id
  set #ltargetkind 1
  event macro 22 0
  gosub actset 1000
  wait 5
  goto findwaterpitcher
}

gosub getto %plant_x %plant_y %plant_z
if #result = 0
  return -1

set %timer #systime + 1000
while ( #contkind <> GJZ || #contsize <> 263_231 ) && #systime < %timer
{
  onhotkey Esc
    return -1
}

if #contkind <> GJZ || #contsize <> 263_231
  return 0

set %mx %contx + 225
set %my %conty + 75
gosub actwait
click %mx %my
set %timer #systime + 5000
while #targcurs = 0 && #systime < %timer
{
  onhotkey Esc
    return -1
}
if #targcurs = 0
  return 0
set #ltargetid %pitcher_id
set #ltargetkind 1
set %ji #jindex + 1
event macro 22 0
set %timer #systime + 5000
while #systime < %timer
{
  while %ji <= #jindex
  {
    scanjournal %ji
    if water in #journal
    {
      gosub actset 1000
      return 1
    }
    set %ji %ji + 1
  }
}

return 0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub potion ; type

set %potion %1
set %potion_msg %potion_msg . %potion
set %potion_msgcol %potion_msgcol . %potion
set %potion_type %potion_type . %potion
event exmsg %plant_id 0 %potion_msgcol %potion_msg
ignoreitem reset
findpotion:
finditem %potion_type %fbp
if #findcnt = 0
{
  ; wait for pending gumps
  set %timer #systime + 10000
  while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 255_231 && #contsize <> 258_219 && #contsize <> 250_219 ) ) && #systime < %timer
  {
    onhotkey Esc
      return -1
  }
  ; close all plant gumps
  while #contkind = GJZ && ( #contsize = 263_231 || #contsize = 255_231 || #contsize = 258_219 || #contsize = 250_219 )
  {
    set %mx #contposx + 100
    set %my #contposy + 100
    click %mx %my r
  }
  event exmsg %char_id 0 1199 Getting potions...
  gosub gettools
  if #result = 0
    return -1
  goto findpotion
}
event property #findid
if greater notin #property
{
  ignoreitem #findid
  goto findpotion
}
gosub getto %plant_x %plant_y %plant_z
if #result = 0
  return -1
set %timer #systime + 1000
while ( #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 258_219 ) ) && #systime < %timer
{
  onhotkey Esc
    return -1
}
if #contkind <> GJZ || ( #contsize <> 263_231 && #contsize <> 258_219 )
  return 0
set %mx %contx + %potion_x . %plant_type
set %index %potion , %plant_type
set %my %conty + %potion_y . %index
set %ji #jindex + 1

gosub actwait
click %mx %my
set %timer #systime + 5000
while #systime < %timer
{
  while %ji <= #jindex
  {
    scanjournal %ji
    if pour_the_potion in #journal || soaked in #journal
    {
      gosub actset 1000
      return 1
    }
    set %ji %ji + 1
  }
}

return 0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub gettools
  set %eb_top 30
  set %wp_top 0
  set %bt_top 2
  set %agi_top 6
  set %poi_top 4
  set %cur_top 4
  set %hel_top 1
  set %str_top 0
  ; open the backpack
  openbp:
  set #lobjectid #backpackid
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #contid <> #backpackid && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  gosub actset 1000
  if #contid <> #backpackid
    goto openbp

  counttools:

  gosub cnt WUF %fbp
  set %eb_count #result
  gosub cnt _VBM_WYF_ %fbp
  set %wp_count #result
  gosub cnt RRD %fbp
  set %bt_count #result

  opentc:
  gosub getto %toolcont_x %toolcont_y %toolcont_z
  if #result = 0
    return 0
  set #lobjectid %toolcont_id
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #contid <> %toolcont_id && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  gosub actset 1000
  if #contid <> %toolcont_id
    goto opentc

  set %ftc C_ , %toolcont_id

  findmorespoils:
  finditem _KRD_ETH_ %fbp
  if #findcnt > 0
  {
    gosub actwait
    if #findstack > 0
    {
      exevent drag #findid #findstack
    }
    else
    {
      exevent drag #findid
    }
    gosub actset 800
    gosub actwait
    exevent dropc %toolcont_id
    gosub actset 800
    goto findmorespoils
  }

  if %wp_count >= %wp_top && %eb_count >= %eb_top && %bt_count >= %bt_top
    goto countpotions

  gosub cnt WUF %ftc
  set %eb_stock #result

  gosub cnt _VBM_WYF_ %ftc
  set %wp_stock #result

  gosub cnt RRD %ftc
  set %bt_stock #result

  if %wp_stock + %wp_count < %wp_top || %eb_stock + %eb_count < %eb_top || %bt_stock + %bt_count < %bt_top
  {
    event exmsg %toolcont_id 0 1199 Not enough tools. Please restock.
    return 0
  }

  gosub mov WUF %ftc #backpackid %eb_count %eb_top
  if #result = 1
    goto counttools
  gosub mov _VBM_WYF_ %ftc #backpackid %wp_count %wp_top
  if #result = 1
    goto counttools
  gosub mov RRD %ftc #backpackid %bt_count %bt_top
  if #result = 1
    goto counttools

  countpotions:
  gosub cnt YUF %fbp
  set %agi_cnt #result
  gosub cnt AVF %fbp
  set %poi_cnt #result
  gosub cnt NUF %fbp
  set %cur_cnt #result
  gosub cnt UUF %fbp
  set %hel_cnt #result
  gosub cnt XUF %fbp
  set %str_cnt #result

  if %agi_cnt < %agi_top || %poi_cnt < %poi_top || %cur_cnt < %cur_top || %hel_cnt < %hel_top || %str_cnt < %str_top
  {

    finditem QMJ %ftc
    if #findcnt > 0
    {
      for #findindex 1 #findcnt
      {
        event property #findid
        set #result 1
        while greater , #spc , agility in #property && %agi_cnt < %agi_top && #result = 1
        {
          gosub usekeg #findid
          set %agi_cnt %agi_cnt + 1
        }
        while greater , #spc , poison in #property && %poi_cnt < %poi_top && #result = 1
        {
          gosub usekeg #findid
          set %poi_cnt %poi_cnt + 1
        }
        while greater , #spc , cure in #property && %cur_cnt < %cur_top && #result = 1
        {
          gosub usekeg #findid
          set %cur_cnt %cur_cnt + 1
        }
        while greater , #spc , heal in #property && %hel_cnt < %hel_top && #result = 1
        {
          gosub usekeg #findid
          set %hel_cnt %hel_cnt + 1
        }
        while greater , #spc , strength in #property && %str_cnt < %str_top && #result = 1
        {
          gosub usekeg #findid
          set %str_cnt %str_cnt + 1
        }
        if #result = 0
          return 0
      }
    }
    goto counttools
  }

return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub disposetools

  ; open the backpack
  openbp:
  set #lobjectid #backpackid
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #contid <> #backpackid && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  gosub actset 1000
  if #contid <> #backpackid
    goto openbp

  opentc:
  gosub getto %toolcont_x %toolcont_y %toolcont_z
  if #result = 0
    return 0
  set #lobjectid %toolcont_id
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #contid <> %toolcont_id && #systime < %timer
  {
    onhotkey Esc
      return 0
  }
  gosub actset 1000
  if #contid <> %toolcont_id
    goto opentc

  set %ftc C_ , %toolcont_id

  gosub actwait
  set %potid
  findmorepotions:
  finditem _YUF_AVF_NUF_UUF_XUF_ %fbp
  if #findcnt > 0
  {
    set %potid #findid
    set %pottype #findtype
    if %pottype = YUF
      set %pottype agility
    if %pottype = AVF
      set %pottype poison
    if %pottype = NUF
      set %pottype cure
    if %pottype = UUF
      set %pottype heal
    if %pottype = XUF
      set %pottype strength

    finditem QMJ %ftc
    if #findcnt > 0
    {
      for #findindex 1 #findcnt
      {
        event property #findid
        if greater , #spc , %pottype in #property || empty in #property
        {
          gosub actwait
          exevent drag %potid
          gosub actset 800
          gosub actwait
          exevent dropc #findid
          gosub actset 800
        }
      }
    }
    ignoreitem %potid
    goto findmorepotions
  }

  findmoretools:
  finditem _VBM_WYF_WUF_RRD_KRD_ETH_PDF_ %fbp
  if #findcnt > 0
  {
    gosub actwait
    if #findstack > 0
    {
      exevent drag #findid #findstack
    }
    else
    {
      exevent drag #findid
    }
    gosub actset 800
    gosub actwait
    exevent dropc %toolcont_id
    gosub actset 800
    goto findmoretools
  }

return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub cnt ; type cont
  set %type %1
  set %fcnt %2
  set %cnt 0
  gosub actwait
  finditem %type %fcnt
  if #findcnt > 0
  {
    for #findindex 1 #findcnt
    {
      if #findstack > 0
        set %cnt %cnt + #findstack
      else
        set %cnt %cnt + 1
    }
  }
return %cnt

sub mov ; type fcont dcont curcnt topcnt
  set %type %1
  set %fcnt %2
  set %dcnt %3
  set %cnt %4
  set %tcnt %5
  if %cnt < %tcnt
  {
    gosub actwait
    finditem %type %fcnt
    if #findcnt > 0
    {
      set %drag %tcnt - %cnt
      gosub actwait
      if %drag > #findstack
      {
        if #findstack > 0
          exevent drag #findid #findstack
        else
          exevent drag #findid
      }
      else
      {
        exevent drag #findid %drag
      }
      gosub actset 800
      gosub actwait
      exevent dropc %dcnt
      gosub actset 800
    }
    return 1
  }
return 0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub usekeg ; id
  set %kegid %1
  usekegagain:

  set #lobjectid %kegid
  set %ji #jindex + 1
  gosub actwait
  event macro 17 0
  set %timer #systime + 5000
  while #systime < %timer
  {
    while %ji <= #jindex
    {
      scanjournal %ji
      if keg_is_empty in #journal
      {
        gosub actset 1000
        return 0
      }
      if you_pour_some in #journal
      {
        gosub actset 1000
        return 1
      }
      onhotkey Esc
        return 0
      set %ji %ji + 1
    }
  }

  goto usekegagain

return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub scanpix ; x y
  set %bx %1
  set %by %2
  set %timer #systime + 5000
  repeat
    savepix %ax %ay 1
    ;if #pixcol = 5911015 || #pixcol = 59367 || #pixcol = 3270631 || #pixcol = 13024701 || #pixcol = 15724502
    ;  return #pixcol
    if _ , #pixcol , _ in %knowncol
      return #pixcol
  until #systime > %timer
  ;if _ , #pixcol , _ notin %knowncol
  ;  set %knowncol %knowncol , #pixcol , _
return error

sub analyze_plusminus ; x y

set %ax %1 + %contx
set %ay %2 + %conty
gosub scanpix %ax %ay
set %c1 #result
set %ay %ay - 2
gosub scanpix %ax %ay
set %c2 #result
if %c1 = error || %c2 = error
  return error
if %c1 = 59160 || %c2 = 59160
  return -2
if %c1 = 6375 && %c2 = 6375
  return -1
if %c2 = 5911015
  return 2
if %c2 = 59367 || %c2 = 3270631
  return 1
if %c1 = 59367 || %c1 = 3270631
  return -1
if %c1 = 5911015
  return -2
if %c1 = 6375
  return -2

return 0

sub analyze_number ; x y

set %ax %1 + %contx
set %ay %2 + %conty
gosub scanpix %ax %ay
set %c1 #result
set %ay %ay + 4
gosub scanpix %ax %ay
set %c2 #result
if %c1 = error || %c2 = error
  return error
if ( %c1 = 13024701 || %c1 = 15724502 ) && ( %c2 = 13024701 || %c2 = 15724502 )
  return 0
if ( %c1 = 13024701 || %c1 = 15724502 )
  return 2
return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub getto ; x y z

set %getto_x %1
set %getto_y %2
set %getto_z %3

set %timer #systime
while #charposx <> %getto_x || #charposy <> %getto_y || #charposz <> %getto_z
{
  if #systime >= %timer
  {
    event pathfind %getto_x %getto_y %getto_z
    set %timer #systime + 5000
  }
  onhotkey Esc
    return 0
}

return 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub actwait

while #systime < %act_timer
  wait 1

return

sub actset ; cooldown

set %act_timer #systime + %1

return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sub savevars
  set *care_plantations
  set *care_plantations *care_plantations , plantation_count , | , %plantation_count , |
  set *care_plantations *care_plantations , plantation_num , | , %plantation_num , |
  if %plantation_count > 0
  {
    for %i 1 %plantation_count
    {
      set %plant_count %plant_count . %i
      set %toolcont_x %toolcont_x . %i
      set %toolcont_y %toolcont_y . %i
      set %toolcont_z %toolcont_z . %i
      set %toolcont_id %toolcont_id . %i
      set %waterthrough_x %waterthrough_x . %i
      set %waterthrough_y %waterthrough_y . %i
      set %waterthrough_z %waterthrough_z . %i
      set %waterthrough_id %waterthrough_id . %i
      set *care_plantations *care_plantations , plant_count , %i , | , %plant_count , |
      set *care_plantations *care_plantations , toolcont_x , %i , | , %toolcont_x , |
      set *care_plantations *care_plantations , toolcont_y , %i , | , %toolcont_y , |
      set *care_plantations *care_plantations , toolcont_z , %i , | , %toolcont_z , |
      set *care_plantations *care_plantations , toolcont_id , %i , | , %toolcont_id , |
      set *care_plantations *care_plantations , waterthrough_x , %i , | , %waterthrough_x , |
      set *care_plantations *care_plantations , waterthrough_y , %i , | , %waterthrough_y , |
      set *care_plantations *care_plantations , waterthrough_z , %i , | , %waterthrough_z , |
      set *care_plantations *care_plantations , waterthrough_id , %i , | , %waterthrough_id , |
      if %plant_count > 0
      {
        for %j 1 %plant_count
        {
          set %index %i , _ , %j
          set %plant_x %plant_x . %index
          set %plant_y %plant_y . %index
          set %plant_z %plant_z . %index
          set %plant_id %plant_id . %index
          set *care_plantations *care_plantations , plant_x , %index , | , %plant_x , |
          set *care_plantations *care_plantations , plant_y , %index , | , %plant_y , |
          set *care_plantations *care_plantations , plant_z , %index , | , %plant_z , |
          set *care_plantations *care_plantations , plant_id , %index , | , %plant_id , |
        }
      }
    }
  }
return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Last edited by bearman on Sun Jul 17, 2011 1:57 pm, edited 1 time in total.
Ville
Master Scribe
Posts: 56
Joined: Mon Jan 31, 2011 12:08 am

Re: [euo script] Bee Hive Care

Post by Ville »

Very nice ty thogal for the script and to bearman for the edits will have to try this script out again now :)
Brian
Journeyman Scribe
Posts: 27
Joined: Thu Sep 22, 2011 12:08 pm

Re: [euo script] Bee Hive Care

Post by Brian »

I Haven't really dove into this script to find the answer to this issue yet but I thought I would ask around first to see if any one else has had a problem like this. Everything seems to be working fine EXCEPT:

When the "honey comb" gump pops up I get a sys msg saying " Scanning" but the script dosn't click any of the red dots. It just keeps opening new "honey comb" gumps and saying "Scanning".

I did glance at the script but I could not locate the sub to address this issue. Any Ideas what is causing this issue?
User avatar
anarchy
Legendary Scribe
Posts: 1610
Joined: Wed Nov 04, 2009 10:34 am

Re: [euo script] Bee Hive Care

Post by anarchy »

the reason why coilbri changed the bee system is to make people actually work for it. instead of clicking a macro and sitting back.there are some guilds out there *:)* that has a fully functioning bee script for the new system. just gotta make one or find one good luck.
scuba
Elder Scribe
Posts: 101
Joined: Sun Oct 28, 2012 2:29 am

Re: [euo script] Bee Hive Care

Post by scuba »

this macro is out dated and will not work with the current bee system don't bother trying it
Locked