What's new

Sorcerer [PACC] Yalahar Werewolves

Status
Not open for further replies.

Xinum

Never Give Up!
Joined
Dec 23, 2009
Messages
578
Reaction score
66
[MS] Yalahar Werewolves

Code:
<Settings>
  <Information>
    <Author>soder</Author>
	<ScriptName>Vengoth Werewolves</ScriptName>
	<Vocation>Druid/Sorcerer</Vocation>
	<LevelRequired>90+</LevelRequired>
	<Version>1.0</Version>
  </Information>
  <Alerts>
    <Player>
      <OnScreen>
        <PlaySound>no</PlaySound>
        <FlashClient>no</FlashClient>
        <PauseBot>no</PauseBot>
        <Disconnect>no</Disconnect>
        <SafeList>null</SafeList>
      </OnScreen>
      <Attacking>
        <PlaySound>yes</PlaySound>
        <FlashClient>yes</FlashClient>
        <PauseBot>no</PauseBot>
        <Disconnect>no</Disconnect>
        <SafeList>null</SafeList>
      </Attacking>
    </Player>
    <Creature />
    <Item />
    <Message>
      <PrivateMessage>
        <PlaySound>no</PlaySound>
        <FlashClient>no</FlashClient>
        <PauseBot>no</PauseBot>
        <Disconnect>no</Disconnect>
        <SafeList>null</SafeList>
      </PrivateMessage>
      <Advanced>
        <PlaySound>no</PlaySound>
        <FlashClient>no</FlashClient>
        <PauseBot>no</PauseBot>
        <Disconnect>no</Disconnect>
        <Screenshot>no</Screenshot>
      </Advanced>
      <Raid>
        <PlaySound>no</PlaySound>
        <FlashClient>no</FlashClient>
        <PauseBot>no</PauseBot>
        <Disconnect>no</Disconnect>
        <Warnings>All</Warnings>
      </Raid>
    </Message>
    <Capacity>
      <Value>100</Value>
      <PlaySound>no</PlaySound>
      <FlashClient>no</FlashClient>
      <PauseBot>no</PauseBot>
      <Disconnect>no</Disconnect>
    </Capacity>
    <StandTime>
      <Value>30000</Value>
      <PlaySound>no</PlaySound>
      <FlashClient>no</FlashClient>
      <PauseBot>no</PauseBot>
      <Disconnect>no</Disconnect>
    </StandTime>
    <Disconnect>
      <PlaySound>no</PlaySound>
      <FlashClient>no</FlashClient>
      <PauseBot>no</PauseBot>
    </Disconnect>
    <Enabled>yes</Enabled>
  </Alerts>
  <Healer>
    <Rules>
      <Exura-Vita>
        <HealRange>0 to 30 %</HealRange>
        <ManaRange>160 to all</ManaRange>
        <HealMethod>Ultimate Healing</HealMethod>
        <ExtraCondition>No condition</ExtraCondition>
        <CooldownControl>yes</CooldownControl>
        <CheckItem>no</CheckItem>
        <SpamRate>200 to 400</SpamRate>
        <Enabled>yes</Enabled>
      </Exura-Vita>
      <Exura-Gran>
        <HealRange>30 to 65 %</HealRange>
        <ManaRange>70 to all</ManaRange>
        <HealMethod>Intense Healing</HealMethod>
        <ExtraCondition>No condition</ExtraCondition>
        <CooldownControl>yes</CooldownControl>
        <CheckItem>no</CheckItem>
        <SpamRate>200 to 400</SpamRate>
        <Enabled>yes</Enabled>
      </Exura-Gran>
      <Exura>
        <HealRange>66 to 88 %</HealRange>
        <ManaRange>20 to all</ManaRange>
        <HealMethod>Light Healing</HealMethod>
        <ExtraCondition>No condition</ExtraCondition>
        <CooldownControl>yes</CooldownControl>
        <CheckItem>no</CheckItem>
        <SpamRate>200 to 400</SpamRate>
        <Enabled>yes</Enabled>
      </Exura>
      <ManaPotion>
        <HealRange>0 to 100 %</HealRange>
        <ManaRange>0 to 70 %</ManaRange>
        <HealMethod>Great Mana Potion</HealMethod>
        <ExtraCondition>No condition</ExtraCondition>
        <CooldownControl>yes</CooldownControl>
        <CheckItem>no</CheckItem>
        <SpamRate>200 to 400</SpamRate>
        <Enabled>yes</Enabled>
      </ManaPotion>
    </Rules>
    <PingCompensation>10</PingCompensation>
    <Enabled>yes</Enabled>
  </Healer>
  <FriendHealer>
    <Rules />
    <Enabled>no</Enabled>
  </FriendHealer>
  <Refiller>
    <Rules />
    <Enabled>no</Enabled>
  </Refiller>
  <HotKeys>
    <List>
      <ShowBot>
        <Script>showbot()</Script>
        <MainKey>66</MainKey>
        <ComboKey>Alt</ComboKey>
        <Enabled>yes</Enabled>
      </ShowBot>
      <PauseBot>
        <Script>local cavebot = getsettings("Settings/CaveBot/Enabled")
local targeting = getsettings("Settings/Targeting/Enabled")

if cavebot == 'no' or targeting == 'no' then
   setcavebot('on')
   settargeting('on')
   setlooting('on')
else
   setcavebot('off')
   settargeting('off')
   setlooting('off')
end
wait(500)</Script>
        <MainKey>19</MainKey>
        <ComboKey>None</ComboKey>
        <Enabled>yes</Enabled>
      </PauseBot>
      <ShowClient>
        <Script>focusclient()</Script>
        <MainKey>84</MainKey>
        <ComboKey>Alt</ComboKey>
        <Enabled>yes</Enabled>
      </ShowClient>
      <ShowSettings>
        <Script>showsettings()</Script>
        <MainKey>83</MainKey>
        <ComboKey>Alt</ComboKey>
        <Enabled>yes</Enabled>
      </ShowSettings>
    </List>
    <Condition>Client focus required</Condition>
    <Enabled>yes</Enabled>
  </HotKeys>
  <Actions>
    <List>
      <EnergyRing>
        <Script>if (maround(3, "Werewolf") > 1) then
   if (ring == 0) then
      moveitems("energy ring","all","ring",1)
   end
else
   if (ring == 3088) then
      moveitems(3088,"ring","all",1)
   end
end</Script>
        <SpamRate>800 to 1000</SpamRate>
        <Enabled>yes</Enabled>
      </EnergyRing>
      <StrikeSpells>
        <Script>if ((target.id > 0) and (target.hppc >= 1) and (target.isshootable) and (target.dist <= 3)) then
	if ULTIMATE_STRIKE then
		if (VOCATION:lower() == "sorcerer") then
			if (cancast("exori max flam")) and ((target.hppc > 10)) and (target.hppc < 20) then
				cast("exori max flam")
			end
		elseif (VOCATION:lower() == "druid") then
			if (cancast("exori max frigo")) and ((target.hppc > 10)) and (target.hppc < 20) then
				cast("exori max frigo")
			end
		end
	end
	if (VOCATION:lower() == "sorcerer") then
		if (cancast("exori gran flam")) and (target.name ~= "War Wolf") then
			cast("exori gran flam")
		elseif (cancast("exori flam")) then
			cast("exori flam")
		end
	elseif (VOCATION:lower() == "druid") then
		if (cancast("exori gran frigo")) and (target.name ~= "War Wolf") then
			cast("exori gran frigo")
		elseif (cancast("exori frigo")) then
			cast("exori frigo")
		end
	end
end</Script>
        <SpamRate>200 to 400</SpamRate>
        <Enabled>yes</Enabled>
      </StrikeSpells>
      <DropFlasks>
        <Script>local currentflask = itemcount(285) + itemcount(284) + itemcount(283)

if (maround(2) == 0) and (lootbodies == false) and (currentflask > 10)
then
    pausewalking(1000)
    moveitems(283,SUPPLY_BACKPACK,'ground',50)
    pausewalking(1000)
    moveitems(284,SUPPLY_BACKPACK,'ground',50)
    pausewalking(1000)
    moveitems(285,SUPPLY_BACKPACK,'ground',50)
    wait(5000)
end</Script>
        <SpamRate>800 to 1000</SpamRate>
        <Enabled>yes</Enabled>
      </DropFlasks>
      <SafeBank>
        <Script>local NPCS_MESSAGES = getnewmessages("NPCs")
local NPCS_MESSAGES_QUANTITY = NPCS_MESSAGES.count - 1

for INDEX = 0, NPCS_MESSAGES_QUANTITY do
    if (NPCS_MESSAGES[NPCS_MESSAGES_QUANTITY - INDEX].text:find("There is not enough gold on your account.")) then
        setcavebot("off") 
        settargeting("off") 
        setsettings("Settings\\Alerts\\Disconnect\\PlaySound", "no")
        wait(5000, 10000) 
        closetibia() 
    end
end</Script>
        <SpamRate>800 to 1000</SpamRate>
        <Enabled>yes</Enabled>
      </SafeBank>
      <Haste>
        <Script>if (HASTE_VENGOTH) and not (pzone) and not (hasted) then
   if (HASTE_SPELL == "utani gran hur") then
      if (cancast(HASTE_SPELL)) and (mp >= 100) then
         cast(HASTE_SPELL)
      end
   elseif (HASTE_SPELL == "utani hur") then
      if (cancast(HASTE_SPELL)) and (mp >= 60) then
         cast(HASTE_SPELL)
      end
   end
end</Script>
        <SpamRate>800 to 1000</SpamRate>
        <Enabled>no</Enabled>
      </Haste>
      <Settings>
        <Script>if (MANA_NAME:lower() == "mana potion") and not (getsettings("Settings\\Healer\\Rules\\ManaPotion\\HealMethod") == "Mana Potion") then
   setsettings("Settings\\Healer\\Rules\\ManaPotion\\HealMethod","Mana Potion")

elseif (MANA_NAME:lower() == "strong mana potion") and not (getsettings("Settings\\Healer\\Rules\\ManaPotion\\HealMethod") == "Strong Mana Potion")  then
   setsettings("Settings\\Healer\\Rules\\ManaPotion\\HealMethod","Strong Mana Potion")

elseif (MANA_NAME:lower() == "great mana potion") and not (getsettings("Settings\\Healer\\Rules\\ManaPotion\\HealMethod") == "Great Mana Potion")  then
   setsettings("Settings\\Healer\\Rules\\ManaPotion\\HealMethod","Great Mana Potion")
end


if (USE_MOUNT) and (getsettings("Settings\\Cavebot\\Settings\\AutoMount") == "no") then
   setsettings("Settings\\Cavebot\\Settings\\AutoMount","yes")
elseif not (USE_MOUNT) and (getsettings("Settings\\Cavebot\\Settings\\AutoMount") == "yes") then
   setsettings("Settings\\Cavebot\\Settings\\AutoMount","no")
end

if (cap < 130) and (getsettings("Settings\\Looting\\List\\goldcoin\\Destination") == "10") then
   setsettings("Settings\\Looting\\List\\goldcoin\\Destination","10")
elseif (cap >= 130) and (getsettings("Settings\\Looting\\List\\goldcoin\\Destination") == "10") then
   setsettings("Settings\\Looting\\List\\goldcoin\\Destination","03")
end

if (not pzone) and (WORLD_TYPE:lower() == "open") then
   setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","no")
end

if (posz == 7) and (getsettings("Settings\\Looting\\Enabled") == "yes") then
   setlooting("no")
elseif (posz >= 6) and (getsettings("Settings\\Looting\\Enabled") == "no") then
   setlooting("yes")
end

if (RUST_REMOVER) and (getsettings("Settings\\Looting\\List\\rustyarmor\\Destination") == "ground") then
   setsettings("Settings\\Looting\\List\\rustyarmor\\Destination","02")
elseif not (RUST_REMOVER) and (getsettings("Settings\\Looting\\List\\rustyarmor\\Destination") == "02") then
   setsettings("Settings\\Looting\\List\\rustyarmor\\Destination","ground")
end</Script>
        <SpamRate>1000 to 2000</SpamRate>
        <Enabled>yes</Enabled>
      </Settings>
      <Rust-Remover>
        <Script>local rust_items = {'chain armor', 'scale armor', 'brass armor', 'plate armor', 'plate legs', 'brass legs'}
local rusty = {8895, 8896, 8898, 8899}


if maround(3,"Werewolf") == 0 then
    for i,j in ipairs(rusty) do
        if RUST_REMOVER and itemcount(j) > 0 and itemcount("flask of rust remover") > 0 then
		useitemon("flask of rust remover",j,LOOT_BACKPACK)
            wait(2000)
        elseif RUST_REMOVER and itemcount(j) > 0 and itemcount("flask of rust remover") == 0 then
            moveitems(8895, LOOT_BACKPACK, 'ground', 1)
        end
    end

	for _, v in ipairs(rust_items) do
		if itemcount( v ) > 0 then
			moveitems(v, LOOT_BACKPACK, 'ground', 1)
			wait(1000, 2000)
			break
		end
	end
end</Script>
        <SpamRate>800 to 1000</SpamRate>
        <Enabled>yes</Enabled>
      </Rust-Remover>
      <Screenshot-Death>
        <Script>if hppc < 10 then
screenshot(name.." "..string.gsub(date(), "/", "_").." "..string.gsub(time(), ":", "."))
wait(1000)
end</Script>
        <SpamRate>100 to 100</SpamRate>
        <Enabled>yes</Enabled>
      </Screenshot-Death>
    </List>
    <Setup>-- Right click here to open the setup --
----------------------------------------

          -- [[ Backpacks ]] --
      MAIN_BACKPACK = "Moon Backpack"
    SUPPLY_BACKPACK = "Brocade Backpack"
      LOOT_BACKPACK = "Yellow Backpack"
      GOLD_BACKPACK = "Beach Backpack"

            -- [[ Depot ]] --
         MAIN_BP_DP = "Backpack" -- BP with 20 backpacks
        STACK_BP_DP = "Golden Backpack" -- BP for stacks
         LOOT_BP_DP = "Camouflage Backpack" -- BP for items

            RUST_BP = "brocade bag" -- Backpack in depot containing rust removers
            FOOD_BP = "red backpack" -- Backpack in depot containing food
     ENERGY_RING_BP = "orange backpack" -- Backpack in depot containing energy rings


 TAKE_RUST_REMOVERS = true
      RUST_QUANTITY = 15 -- Amount of rust removers to bring

          TAKE_FOOD = true 
          FOOD_NAME = "brown mushroom"
      FOOD_QUANTITY = 100 -- Amount of food to bring

  TAKE_ENERGY_RINGS = true

          -- [[ Supplies ]] --
          MANA_NAME = "great mana potion"
      MANA_QUANTITY = 200 -- Amount to buy
         MANA_LEAVE = 50

           -- [[ Hunting ]] --
         WORLD_TYPE = "open" -- open/optional
           VOCATION = "sorcerer" -- sorcerer/druid
   HUNT_WALK_METHOD = "Map Clicks" --Map Clicks/Arrows Keys
    ULTIMATE_STRIKE = true -- Exori max flam/frigo target when it got low HP
        PAYER_ALARM = true -- Player on screen alarm?
          CAP_LEAVE = 50
        STAMINA_MIN = 900 -- Leave spawn & logout

           -- [[ Refill ]] --
      HASTE_VENGOTH = true -- Haste at treelings?
        HASTE_SPELL = "utani gran hur"

            -- [[ Misc ]] --
       RUST_REMOVER = true -- Unrust items
          USE_MOUNT = false
     MINIMIZE_EQUIP = false -- Minimize equipment

            -- [[ Others ]] --
         SOFT_BOOTS = true -- Refill soft boots?
         BOOTS_NAME = "boots of haste"</Setup>
    <Enabled>yes</Enabled>
  </Actions>
  <CaveBot>
    <Waypoints>
      <CreatedBySoder>Stand 32786 31247 7</CreatedBySoder>
      <w006>Action 32786 31247 6 setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","yes")</w006>
      <w001>Stand 32786 31248 7</w001>
      <w000>Action 32786 31247 6 if posz ~= 6 then;   gotolabel("CreatedBySoder");end</w000>
      <w002>Stand 32784 31247 6</w002>
      <w004>Action 32784 31247 6 closewindows();wait(700,900);openitem(MAIN_BACKPACK,"back");wait(700,900);if MINIMIZE_EQUIP then;   minimizewindows("equip");end;wait(700,900);openitem(LOOT_BACKPACK,MAIN_BACKPACK);wait(700,900);resizewindows()</w004>
      <w005>Action 32784 31247 6 if windowcount(LOOT_BACKPACK) == 0 then;   gotolabel("w002");end</w005>
      <w003>Action 32784 31247 6 local CONFIG = {;    LOOT_BACKPACK = LOOT_BACKPACK,;    ;    STACKABLE_BACKPACK = STACK_BP_DP,;    STACKABLE_BACKPACK_AMOUNT = 2,;    ;    NOT_STACKABLE_BACKPACK = LOOT_BP_DP,;    NOT_STACKABLE_BACKPACK_AMOUNT = 18,;    ;    DEPOSIT_ITEMS = {"stone skin amulet","time ring","platinum amulet","relic sword","epee","bonebreaker","dreaded cleaver","werewolf fur","wolf paw","ultimate health potion","berserk potion","paladin armor","knight armor","crown armor"},;};;local NOT_STACKABLE_LAST_ON_TO, ITEM_INDEX = 0, 1;local LOOT = {};;for i = 0,#CONFIG.DEPOSIT_ITEMS do;    if itemcount(CONFIG.DEPOSIT_ITEMS[i]) > 0 then;        table.insert(LOOT,CONFIG.DEPOSIT_ITEMS[1]);    end;end;if #LOOT > 0 and table.find(CONFIG.DEPOSIT_ITEMS, LOOT[1]) then;    setsettings("Settings\\Cavebot\\Settings\\OpenNextBp","no");    wait(700,900);    reachgrounditem("depot");    wait(700,900);    openitem("depot");    wait(700,900);    openitem(3502, "locker");    wait(700,900);    openitem(MAIN_BP_DP, 3502);    wait(700,900);    while (#CONFIG.DEPOSIT_ITEMS >= ITEM_INDEX) do;        if (type(CONFIG.DEPOSIT_ITEMS[ITEM_INDEX]) == "string") then;            local ITEM_ID = itemid(CONFIG.DEPOSIT_ITEMS[ITEM_INDEX]);        ;            if (ITEM_ID > 0) then;                CONFIG.DEPOSIT_ITEMS[ITEM_INDEX], ITEM_INDEX = ITEM_ID, ITEM_INDEX + 1;            else;                table.remove(CONFIG.DEPOSIT_ITEMS, ITEM_INDEX);            end;        elseif (type(CONFIG.DEPOSIT_ITEMS[ITEM_INDEX]) == "number") then;            if (CONFIG.DEPOSIT_ITEMS[ITEM_INDEX] > 0) then;                ITEM_INDEX = ITEM_INDEX + 1;            else;                table.remove(CONFIG.DEPOSIT_ITEMS, ITEM_INDEX);            end;        else;            table.remove(CONFIG.DEPOSIT_ITEMS, ITEM_INDEX);        end;    end;;    while (true) do;        for _, DEPOSIT_ITEM in ipairs(CONFIG.DEPOSIT_ITEMS) do;            if (itemcount(DEPOSIT_ITEM, CONFIG.LOOT_BACKPACK) > 0) then;                if (itemproperty(DEPOSIT_ITEM).isCumulative) then;                    local STACKABLE_LAST_ON_TO = 0;                ;                    while (CONFIG.STACKABLE_BACKPACK_AMOUNT > STACKABLE_LAST_ON_TO) do;                        local ITEM_COUNT_BEFORE = itemcount(DEPOSIT_ITEM, CONFIG.LOOT_BACKPACK);                    ;                        moveitemsonto(DEPOSIT_ITEM, "all", CONFIG.STACKABLE_BACKPACK, 100, STACKABLE_LAST_ON_TO) wait(500, 1000);                    ;                        local ITEM_COUNT_AFTER = itemcount(DEPOSIT_ITEM, CONFIG.LOOT_BACKPACK);                        ;                        if (ITEM_COUNT_BEFORE == ITEM_COUNT_AFTER and ITEM_COUNT_AFTER > 0) then;                            STACKABLE_LAST_ON_TO = STACKABLE_LAST_ON_TO + 1;                        elseif (ITEM_COUNT_AFTER == 0) then;                            break;                        end;                    end;                else;                    while (CONFIG.NOT_STACKABLE_BACKPACK_AMOUNT > NOT_STACKABLE_LAST_ON_TO) do;                        local ITEM_COUNT_BEFORE = itemcount(DEPOSIT_ITEM, CONFIG.LOOT_BACKPACK);                    ;                        moveitemsonto(DEPOSIT_ITEM, "all", CONFIG.NOT_STACKABLE_BACKPACK, 100, NOT_STACKABLE_LAST_ON_TO) wait(500, 1000);                        ;                        local ITEM_COUNT_AFTER = itemcount(DEPOSIT_ITEM, CONFIG.LOOT_BACKPACK);                        ;                        if (ITEM_COUNT_BEFORE == ITEM_COUNT_AFTER and ITEM_COUNT_AFTER > 0) then;                            NOT_STACKABLE_LAST_ON_TO = NOT_STACKABLE_LAST_ON_TO + 1;                        elseif (ITEM_COUNT_AFTER == 0) then;                            break;                        end;                    end;                end;            end;        end;    ;        if (itemcount(CONFIG.LOOT_BACKPACK, CONFIG.LOOT_BACKPACK) > 0) then;            openitem(CONFIG.LOOT_BACKPACK, CONFIG.LOOT_BACKPACK, false) wait(2000, 3000);        else;            break;        end;        wait(100);    end;    setsettings("Settings\\Cavebot\\Settings\\OpenNextBp","if cavebot enabled");end</w003>
      <w156>Action 32785 31244 6 if TAKE_RUST_REMOVERS then;    closewindows();    while (windowcount(MAIN_BACKPACK) == 0) do;       closewindows() wait(500,1000);       openitem(MAIN_BACKPACK,"back") wait(500,1000);    end;    local RUST_AMOUNT = (RUST_QUANTITY - itemcount("flask of rust remover",MAIN_BACKPACK));    reachgrounditem("depot");    wait(700,900);    openitem("depot");    wait(700,900);    openitem(3502, "locker");    wait(700,900);        while (windowcount(RUST_BP) == 0) do;            openitem(RUST_BP, 3502) wait(1000);        end;    while (itemcount("flask of rust remover",MAIN_BACKPACK) < RUST_QUANTITY) and (windowcount(RUST_BP) > 0) do;        moveitems("flask of rust remover", RUST_BP, MAIN_BACKPACK, RUST_AMOUNT) wait(700, 900);    end;end</w156>
      <w101>Action 32791 31244 6 if TAKE_FOOD then;    while (windowcount(MAIN_BACKPACK) == 0) do;       closewindows() wait(500,1000);       openitem(MAIN_BACKPACK,"back") wait(500,1000);    end;    local FOOD_AMOUNT = (FOOD_QUANTITY - itemcount(FOOD_NAME,MAIN_BACKPACK));    reachgrounditem("depot");    wait(700,900);    openitem("depot");    wait(700,900);    openitem(3502, "locker");    wait(700,900);        while (windowcount(FOOD_BP) == 0) do;            openitem(FOOD_BP, 3502) wait(1000);        end;    while (itemcount(FOOD_NAME,MAIN_BACKPACK) < FOOD_QUANTITY) and (windowcount(FOOD_BP) > 0) do;        moveitems(FOOD_NAME, FOOD_BP, MAIN_BACKPACK, FOOD_AMOUNT) wait(700,900);    end;end</w101>
      <w158>Action 32791 31244 6 if TAKE_ENERGY_RINGS then;    closewindows();    while (windowcount(MAIN_BACKPACK) == 0) or (windowcount(SUPPLY_BACKPACK) == 0) do;       closewindows() wait(500,1000);       openitem(MAIN_BACKPACK,"back") wait(500,1000);       openitem(SUPPLY_BACKPACK,MAIN_BACKPACK,true)wait(500,1000);    end;    if itemcount("energy ring", SUPPLY_BACKPACK) < 2 then;        reachgrounditem("depot");        wait(700,900);        openitem("depot");        wait(700,900);        openitem(3502, "locker");        wait(700,900);        while (windowcount(ENERGY_RING_BP) == 0) do;            openitem(ENERGY_RING_BP, 3502) wait(1000);        end;        while (itemcount("energy ring", SUPPLY_BACKPACK) < 2) and (windowcount(ENERGY_RING_BP) > 0) do;            moveitems("energy ring", ENERGY_RING_BP, SUPPLY_BACKPACK, 1) wait(1000);        end;    end;end</w158>
      <w007>Stand 32792 31247 6</w007>
      <w008>Action 32792 31247 6 closewindows();wait(700,900);openitem(MAIN_BACKPACK,"back");wait(700,900);if MINIMIZE_EQUIP then;   minimizewindows("equip");end;wait(700,900);openitem(SUPPLY_BACKPACK,MAIN_BACKPACK, true);wait(700,900);resizewindows()</w008>
      <w009>Action 32792 31247 6 if (windowcount(SUPPLY_BACKPACK) == 0) or (windowcount(MAIN_BACKPACK) == 0) then;   gotolabel("w007");end</w009>
      <w010>Stand 32796 31246 6</w010>
      <w011>Action 32796 31246 6 setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","no")</w011>
      <w067>Stand 32797 31246 6</w067>
      <w068>Action 32824 31254 7 setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","no")</w068>
      <w012>Node 32816 31254 7</w012>
      <w013>Node 32829 31248 7</w013>
      <w014>Action 32829 31248 7 setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","yes")</w014>
      <w015>Stand 32825 31247 7</w015>
      <w016>Stand 32825 31247 6</w016>
      <bank>Action 32825 31248 7 if islocation() then;   local MANA_MONEY = (positive(MANA_QUANTITY - itemcount(MANA_NAME)) * itemcost(MANA_NAME));   local SOFT_MONEY = (10000 * itemcount(itemid("worn soft boots")) + 500);   local EXTRA = 1000;   local TOTAL = MANA_MONEY + SOFT_MONEY + EXTRA;;   depositall();   npcsay("withdraw "..TOTAL) wait(1000);   npcsay("yes") wait(1000);   npcsay("balance") wait(1000);else;   gotolabel("w067");end</bank>
      <check_gold>Action 32825 31248 7 local MANA_MONEY = (positive(MANA_QUANTITY - itemcount(MANA_NAME)) * itemcost(MANA_NAME));local SOFT_MONEY = (10000 * itemcount(itemid("worn soft boots")) + 500);local EXTRA = 1000;local TOTAL = MANA_MONEY + SOFT_MONEY + EXTRA;;if gold() < TOTAL then;   gotolabel("w015");end;;if WORLD_TYPE == "open" then;   setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","no");end;if (stamina <= STAMINA_MIN) and (pzone) then;    logout();end</check_gold>
      <w017>Node 32830 31242 7</w017>
      <w018>Node 32818 31234 7</w018>
      <w019>Node 32798 31234 7</w019>
      <w020>Stand 32790 31239 7</w020>
      <w021>Stand 32789 31239 6</w021>
      <w022>Action 32789 31238 5 if islocation() then;   local CURRENT_MANAS = itemcount(MANA_NAME);   wait(500,1000);   sellflasks();   wait(500);   AMOUNT = MANA_QUANTITY - CURRENT_MANAS ;   while AMOUNT > 0 do ;      buyitems(MANA_NAME, AMOUNT) ;      wait(500,1000) ;      moveitems(MANA_NAME,SUPPLY_BACKPACK, 200) ;      wait(300,400) ;      AMOUNT = AMOUNT-100;   end;else;   gotolabel("w017");end</w022>
      <w023>Stand 32789 31239 5</w023>
      <w024>Stand 32790 31239 6</w024>
      <w025>Action 32790 31240 7 if islocation() then;   if itemcount(MANA_NAME) < MANA_QUANTITY then;      gotolabel("w013");   end;else;   gotolabel("w023");end</w025>
      <w026>Node 32800 31234 7</w026>
      <w027>Node 32801 31249 7</w027>
      <w028>Action 32801 31249 7 if (itemcount(itemid("worn soft boots")) == 0) or not (SOFT_BOOTS) then;   gotolabel("SoftsDone");end</w028>
      <w029>Stand 32802 31255 7</w029>
      <w030>Node 32810 31263 6</w030>
      <w034>Node 32814 31272 6</w034>
      <w035>Action 32814 31272 6 setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","yes")</w035>
      <w031>Stand 32817 31274 6</w031>
      <w032>Action 32817 31274 6 if not islocation() then;   gotolabel("RefillSofts");end</w032>
      <w033>Action 32817 31275 6 useitem(4912, 32817, 31275, 6);useitem(4912, 32817, 31275, 6)</w033>
      <w036>Ladder 32815 31277 6</w036>
      <w037>Node 32816 31279 5</w037>
      <w038>Action 32816 31279 5 if not islocation(10) then;   gotolabel("w033");end;reachcreature("Karith");wait(1000,1300);say("hi");wait(2200,3300);npcsay("venore");wait(300,500);npcsay("yes");wait(300,500)</w038>
      <w039>Action 32954 32023 6 if islocation(3) then;   reachcreature("Captain Fearless");   wait(1000);   say("hi");   wait(2200,3300);   npcsay("kick");   setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","no");else;   gotolabel("w038");end</w039>
      <w040>Node 32954 32037 6</w040>
      <w041>Node 32954 32051 6</w041>
      <w042>Node 32954 32064 6</w042>
      <w043>Node 32954 32080 6</w043>
      <w044>Node 32949 32098 6</w044>
      <w045>Stand 32952 32108 6</w045>
      <w046>Action 32952 32108 6 if islocation() then;   say("hi");   wait(2200,3300);   npcsay("soft boots");   wait(400,500);   npcsay("yes");   addhudsupplie("Soft Boots", 1);else;   gotolabel("w040");end</w046>
      <w049>Node 32954 32067 6</w049>
      <w050>Node 32954 32050 6</w050>
      <w051>Node 32954 32037 6</w051>
      <w052>Node 32954 32025 6</w052>
      <w047>Action 32954 32025 6 if islocation(2) then;   setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","yes");   reachcreature("Captain Fearless");   wait(1000);   say("hi");   wait(2200,3300);   npcsay("yalahar");   wait(300,400);   npcsay("yes");else;   gotolabel("w049");end</w047>
      <w048>Action 32816 31272 6 if not islocation() then;   gotolabel("w047");end</w048>
      <w053>Stand 32815 31272 6</w053>
      <w054>Action 32815 31272 6 setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","no")</w054>
      <w055>Node 32809 31260 6</w055>
      <w056>Stand 32802 31256 6</w056>
      <w057>Action 32802 31254 7 if posz ~= 7 then;   gotolabel("w055");end</w057>
      <SoftsDone>Node 32802 31254 7</SoftsDone>
      <w058>Node 32816 31254 7</w058>
      <w059>Node 32832 31260 7</w059>
      <w060>Stand 32833 31263 7</w060>
      <w061>Stand 32833 31265 6</w061>
      <w062>Action 32833 31266 5 if not islocation() then;   gotolabel("SoftsDone");end</w062>
      <w063>Use 32832 31266 5</w063>
      <w064>Stand 32834 31270 5</w064>
      <w065>Stand 32834 31272 6</w065>
      <w066>Action 32834 31273 7 if not islocation(2) then;   gotolabel("w063");end</w066>
      <w069>Node 32834 31276 7</w069>
      <w070>Action 32836 31280 7 cast("utana vid")</w070>
      <w071>Node 32833 31293 7</w071>
      <w072>Node 32833 31314 7</w072>
      <w073>Node 32837 31328 7</w073>
      <w074>Node 32836 31338 7</w074>
      <w075>Node 32836 31357 7</w075>
      <w076>Stand 32836 31366 7</w076>
      <w077>Action 32836 31366 7 if not islocation(2) then;   gotolabel("w071");end;setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","no");;while (windowcount() < 4) do;   closewindows();   wait(1000);   openitem(MAIN_BACKPACK,"back");   wait(1000);   if MINIMIZE_EQUIP then;      minimizewindows("equip");   end;   wait(1000);   openitem(SUPPLY_BACKPACK,MAIN_BACKPACK,true);   wait(1000);   resizewindows();   wait(1000);   openitem(LOOT_BACKPACK,MAIN_BACKPACK,true);   wait(1000);   openitem(GOLD_BACKPACK,MAIN_BACKPACK,true);   wait(1000);   resizewindows();   wait(1000);   resizewindows();   wait(1000);   resizewindows();end</w077>
      <w078>Action 32836 31366 7 reachcreature("Harlow");wait(1000);say("hi");wait(2200,3300);npcsay("vengoth");wait(500,700);npcsay("yes");wait(500,700);npcsay("yes");wait(500,700)</w078>
      <w079>Action 32857 31549 7 if not islocation(5) then;   gotolabel("w075");end;setsettings("Settings\\Targeting\\Monsters\\Werewolf\\OnlyIfTrapped","yes");setsettings("Settings\\Actions\\List\\Haste\\Enabled","yes");setsettings("Settings\\Cavebot\\Pathfinding\\WalkingMethod","Map Clicks");wait(100)</w079>
      <w080>Node 32866 31549 7</w080>
      <w081>Node 32885 31540 7</w081>
      <w082>Node 32891 31525 7</w082>
      <w083>Node 32895 31514 7</w083>
      <w084>Node 32905 31508 7</w084>
      <w085>Node 32914 31509 7</w085>
      <w086>Node 32923 31505 7</w086>
      <w087>Node 32936 31505 7</w087>
      <w088>Node 32949 31506 7</w088>
      <w089>Node 32958 31501 7</w089>
      <w090>Node 32968 31501 7</w090>
      <w091>Stand 32980 31496 7</w091>
      <w092>Action 32980 31496 7 if islocation(3) then;   if PLAYER_ALARM then;      setsettings("Settings\\Alerts\\Player\\OnScreen\\PlaySound", "yes");      setsettings("Settings\\Alerts\\Player\\OnScreen\\FlashClient", "yes");   end;   wait(100);   setsettings("Settings\\Actions\\List\\Haste\\Enabled","no") wait(100);   moveitems("soft boots", "all", "boots", 1) wait(100);   setsettings("Settings\\Cavebot\\Pathfinding\\WalkingMethod",HUNT_WALK_METHOD) wait(100);else;   gotolabel("w080");end;wait(100)</w092>
      <w093>Stand 32980 31495 7</w093>
      <w094>Action 32980 31494 6 if posz ~= 6 then;   gotolabel("w090");end</w094>
      <w095>Stand 32979 31494 6</w095>
      <w096>Action 32979 31494 6 wait(3000);setsettings("Settings\\Targeting\\Monsters\\Werewolf\\OnlyIfTrapped","no")</w096>
      <Start>Stand 32980 31494 6</Start>
      <w097>Node 32986 31498 6</w097>
      <w098>Node 33000 31488 6</w098>
      <w099>Node 33003 31479 6</w099>
      <w100>Node 32991 31470 6</w100>
      <w102>Node 32993 31466 6</w102>
      <w103>Node 32991 31458 6</w103>
      <w104>Node 32986 31451 6</w104>
      <w105>Node 32987 31442 6</w105>
      <w106>Node 32996 31443 6</w106>
      <w155>Node 32997 31444 6</w155>
      <w107>Node 32991 31457 6</w107>
      <w108>Node 33006 31462 6</w108>
      <w109>Node 33008 31467 6</w109>
      <w110>Node 32994 31458 6</w110>
      <w111>Node 32991 31469 6</w111>
      <w112>Node 32994 31480 6</w112>
      <w113>Node 32988 31482 6</w113>
      <w114>Node 32981 31494 6</w114>
      <UpFromMainFloor>Stand 32998 31455 7</UpFromMainFloor>
      <w157>Stand 32980 31495 7</w157>
      <w115>Action 32981 31494 6 if (posz == 7) then;   gotolabel("UpFromMainFloor");end;if (itemcount(MANA_NAME) > MANA_LEAVE) and (cap > CAP_LEAVE) and (stamina > STAMINA_MIN) and (posz == 6) then;   gotolabel("Start");end</w115>
      <Leaving>Stand 32980 31495 6</Leaving>
      <w117>Action 32980 31496 7 if posz ~= 7 then;   gotolabel("Leaving");end;wait(100);moveitems(BOOTS_NAME, "all", "boots", 1);wait(100);setsettings("Settings\\Cavebot\\Pathfinding\\WalkThroughPlayers","no");wait(100);setsettings("Settings\\Targeting\\Monsters\\Werewolf\\OnlyIfTrapped","yes");wait(100);setsettings("Settings\\Alerts\\Player\\OnScreen\\PlaySound", "no");wait(100);setsettings("Settings\\Alerts\\Player\\OnScreen\\FlashClient", "no");wait(100);setsettings("Settings\\Cavebot\\Pathfinding\\WalkingMethod","Map Clicks");wait(100);cast("utana vid");wait(100);setsettings("Settings\\Actions\\List\\Haste\\Enabled","yes");wait(100);</w117>
      <w116>Node 32973 31501 7</w116>
      <w118>Node 32967 31502 7</w118>
      <w119>Node 32962 31501 7</w119>
      <w120>Node 32955 31501 7</w120>
      <w121>Node 32949 31505 7</w121>
      <w122>Node 32939 31506 7</w122>
      <w123>Node 32924 31511 7</w123>
      <w124>Node 32911 31514 7</w124>
      <w125>Node 32901 31518 7</w125>
      <w126>Node 32892 31522 7</w126>
      <w127>Node 32888 31535 7</w127>
      <w128>Node 32885 31539 7</w128>
      <w129>Node 32871 31547 7</w129>
      <w130>Stand 32857 31549 7</w130>
      <w131>Action 32857 31549 7 setsettings("Settings\\Actions\\List\\Haste\\Enabled","no");if islocation(2) then;   reachcreature("Harlow");   wait(1000);   say("hi");   wait(2200,3300);   npcsay("go");   wait(500,700);   npcsay("yes");end</w131>
      <w132>Action 32837 31364 7 if not islocation(5) then;   gotolabel("125");end;cast(SPELL_NAME)</w132>
      <w133>Node 32836 31360 7</w133>
      <w134>Node 32836 31352 7</w134>
      <w135>Node 32836 31342 7</w135>
      <w136>Node 32837 31328 7</w136>
      <w137>Node 32833 31320 7</w137>
      <w138>Node 32834 31317 7</w138>
      <w139>Node 32834 31306 7</w139>
      <w140>Node 32835 31298 7</w140>
      <w141>Node 32835 31289 7</w141>
      <w142>Node 32835 31277 7</w142>
      <w143>Stand 32834 31272 7</w143>
      <w144>Stand 32834 31270 6</w144>
      <w145>Stand 32832 31270 5</w145>
      <w146>Action 32832 31270 5 if not islocation() then;   gotolabel("w137");end</w146>
      <w147>Use 32832 31269 5</w147>
      <w148>Stand 32834 31265 5</w148>
      <w149>Stand 32834 31263 6</w149>
      <w150>Action 32834 31262 7 if not islocation(5) then;   gotolabel("w147");end</w150>
      <w151>Node 32828 31254 7</w151>
      <w152>Node 32812 31254 7</w152>
      <w153>Node 32800 31249 7</w153>
      <w154>Node 32794 31247 7</w154>
    </Waypoints>
    <Pathfinding>
      <SpecialAreas />
      <WalkThroughPlayers>no</WalkThroughPlayers>
      <WalkingMethod>Map Clicks</WalkingMethod>
      <MapWalkDistance>20 to 50</MapWalkDistance>
      <WalkableIds>140;404;831;832;833;834;883;2118;2119;2120;2121;2122;2123;2124;2125;2126;2127;2131;2132;2133;2134;2135;2314;2315;2316;2319;2346;2347;2348;2349;2350;2351;2352;2353;2354;2355;2356;2357;2358;2359;2360;2361;2362;2363;2364;2365;2366;2367;2368;2369;2370;2371;2372;2373;2374;2375;2376;2377;2378;2379;2380;2381;2382;2383;2384;2385;2418;2419;2420;2421;2422;2423;2424;2425;2426;2431;2432;2433;2434;2441;2442;2443;2444;2469;2471;2472;2473;2478;2480;2481;2482;2483;2484;2485;2486;2519;2523;2775;2776;2777;2778;2779;2780;2781;2782;2783;2784;2785;2786;2787;2788;2789;2790;2791;2792;2793;2794;2795;2796;2797;2798;2799;2800;2801;2802;2803;2804;2805;2806;2807;2808;2809;2810;2811;2812;2981;2983;2982;2984;2985;2987;2988;3503;3504;3514;3807;5086;5087;5088;6114;6115;6355;6356;6357;6358;6359;6360;6361;6362;6371;6372;7864;8455;8763;9061;9062;10207;10209;10216;10286;10287;10288;11009;11800;11801;11802;11803;11804;11805;11806;11807;11808;11809;11810</WalkableIds>
    </Pathfinding>
    <Settings>
      <Rope>3003</Rope>
      <Shovel>3457</Shovel>
      <Pick>3456</Pick>
      <Machete>3308</Machete>
      <NodeRange>4</NodeRange>
      <Priority>Looting</Priority>
      <OpenNextBp>if cavebot enabled</OpenNextBp>
      <AutoMount>no</AutoMount>
      <Anti-idle>no</Anti-idle>
      <EatFood>yes</EatFood>
      <FoodToEat>3725;3587;3600;3595;3589;3598;8014;3583;3606;3578;3592;3582;3577;3593;3586;3585;3581;3723</FoodToEat>
      <PauseOnDeath>yes</PauseOnDeath>
    </Settings>
    <Enabled>no</Enabled>
  </CaveBot>
  <Looting>
    <List>
      <Relic-sword>
        <Id>7383</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </Relic-sword>
      <Dreaded-cleaver>
        <Id>7419</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </Dreaded-cleaver>
      <Epee>
        <Id>3326</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </Epee>
      <Bonebreaker>
        <Id>7428</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </Bonebreaker>
      <Platinum-amulet>
        <Id>3055</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </Platinum-amulet>
      <time-ring>
        <Id>3053</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </time-ring>
      <stone-skin-amulet>
        <Id>3081</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </stone-skin-amulet>
      <berserk-potion>
        <Id>7439</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </berserk-potion>
      <ultimate-health-potion>
        <Id>7643</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </ultimate-health-potion>
      <wolf-paw>
        <Id>5897</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </wolf-paw>
      <werewolf-fur>
        <Id>10317</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </werewolf-fur>
      <brown-mushroom>
        <Id>3725</Id>
        <Destination>00</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </brown-mushroom>
      <goldcoin>
        <Id>3031</Id>
        <Destination>03</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </goldcoin>
      <rustyarmor>
        <Id>8895</Id>
        <Destination>02</Destination>
        <AlarmOn>No Alarm</AlarmOn>
      </rustyarmor>
    </List>
    <Condition>Targeting corpses</Condition>
    <Style>After melee kill</Style>
    <Range>10</Range>
    <EatFood>yes</EatFood>
    <Enabled>no</Enabled>
  </Looting>
  <Targeting>
    <Monsters>
      <Werewolf>
        <Categories>-</Categories>
        <Danger>0</Danger>
        <ListSettings>
          <Setting0>
            <Count>Any</Count>
            <HpRange>11 to 100 %</HpRange>
            <Stance>No movement</Stance>
            <Avoid>None</Avoid>
            <Distance>0</Distance>
            <Attack>Attack</Attack>
            <ListSpell />
            <SpellRate>500 to 1000</SpellRate>
            <AttackMode>Stand/Defensive</AttackMode>
          </Setting0>
          <Setting1>
            <Count>Any</Count>
            <HpRange>0 to 11 %</HpRange>
            <Stance>Reach</Stance>
            <Avoid>None</Avoid>
            <Distance>0</Distance>
            <Attack>Attack</Attack>
            <ListSpell />
            <SpellRate>500 to 1000</SpellRate>
            <AttackMode>Stand/Defensive</AttackMode>
          </Setting1>
        </ListSettings>
        <Looting>yes</Looting>
        <MustAttackMe>no</MustAttackMe>
        <OnlyIfTrapped>no</OnlyIfTrapped>
      </Werewolf>
      <War-Wolf>
        <Categories>-</Categories>
        <Danger>0</Danger>
        <ListSettings>
          <Setting0>
            <Count>Any</Count>
            <HpRange>0 to 100 %</HpRange>
            <Stance>Reach</Stance>
            <Avoid>None</Avoid>
            <Distance>0</Distance>
            <Attack>Attack</Attack>
            <ListSpell />
            <SpellRate>500 to 1000</SpellRate>
            <AttackMode>No Change</AttackMode>
          </Setting0>
        </ListSettings>
        <Looting>yes</Looting>
        <MustAttackMe>no</MustAttackMe>
        <OnlyIfTrapped>yes</OnlyIfTrapped>
      </War-Wolf>
      <Haunted-Treeling>
        <Categories>-</Categories>
        <Danger>0</Danger>
        <ListSettings>
          <Setting0>
            <Count>Any</Count>
            <HpRange>0 to 100 %</HpRange>
            <Stance>No movement</Stance>
            <Avoid>None</Avoid>
            <Distance>0</Distance>
            <Attack>Attack</Attack>
            <ListSpell />
            <SpellRate>500 to 1000</SpellRate>
            <AttackMode>No Change</AttackMode>
          </Setting0>
        </ListSettings>
        <Looting>yes</Looting>
        <MustAttackMe>no</MustAttackMe>
        <OnlyIfTrapped>yes</OnlyIfTrapped>
      </Haunted-Treeling>
      <Slime>
        <Categories>-</Categories>
        <Danger>0</Danger>
        <ListSettings>
          <Setting0>
            <Count>Any</Count>
            <HpRange>0 to 100 %</HpRange>
            <Stance>No movement</Stance>
            <Avoid>None</Avoid>
            <Distance>0</Distance>
            <Attack>Attack</Attack>
            <ListSpell />
            <SpellRate>500 to 1000</SpellRate>
            <AttackMode>No Change</AttackMode>
          </Setting0>
        </ListSettings>
        <Looting>yes</Looting>
        <MustAttackMe>no</MustAttackMe>
        <OnlyIfTrapped>yes</OnlyIfTrapped>
      </Slime>
    </Monsters>
    <Settings>
      <ListOrder>7</ListOrder>
      <Health>9</Health>
      <Proximity>3</Proximity>
      <Danger>5</Danger>
      <PlayerOnScreenSecurity>Do nothing</PlayerOnScreenSecurity>
      <CooldownControl>yes</CooldownControl>
      <CheckItem>no</CheckItem>
      <MustBeReachable>yes</MustBeReachable>
      <MustBeShootable>no</MustBeShootable>
    </Settings>
    <Enabled>yes</Enabled>
  </Targeting>
  <Hud>
    <List>
      <MonitorMyHunting>
        <Script>-- [[ INIT START ]] --
	--
	--                       88                                                                
	--                       ""                                                ,d              
	--                                                                         88              
	--            ,adPPYba,  88  8b,dPPYba,  88,dPYba,,adPYba,   ,adPPYYba,  MM88MMM  ,adPPYba,
	--            I8[    ""  88  88P'   "Y8  88P'   "88"    "8a  ""     `Y8    88    a8P_____88
	--             `"Y8ba,   88  88          88      88      88  ,adPPPPP88    88    8PP"""""""
	--            aa    ]8I  88  88          88      88      88  88,    ,88    88,   "8b,   ,aa
	--   Author:  `"YbbdP"'  88  88          88      88      88  `"8bbdP"Y8    "Y888  `"Ybbd8"'
	--   
	--   Monitor My Hunting!
	--
	--   Version: 1.0
	--   Created: 7.09.2012
	--   Last update: 18.09.2012
	--
	
	MONITOR_MY_HUNTING = MONITOR_MY_HUNTING or {
		SCRIPT_NAME = "Monitor My Hunting",
		SCRIPT_VERSION = "1.0",
		
		CLEARED_STATS = false,
		INITIALIZED = false,
	}

	MONITOR_MY_HUNTING.SHOW_ALL_ITEMS = false
	MONITOR_MY_HUNTING.ITEMS_LIST = {
		{NAME = "gold coin", VALUE = 1},
		{NAME = "dreaded cleaver", VALUE = 15000},
		{NAME = "epee", VALUE = 8000},
		{NAME = "bonebreaker", VALUE = 10000},
		{NAME = "platinum amulet", VALUE = 2500},
		{NAME = "time ring", VALUE = 750},
		{NAME = "stone skin amuler", VALUE = 1500},
		{NAME = "berserk potion", VALUE = 500},
		{NAME = "ultimate health potion", VALUE = 200},
		{NAME = "wolf paw", VALUE = 70},
		{NAME = "werewolf fur", VALUE = 380},
		{NAME = "crown armor", VALUE = 12000},
		{NAME = "knight armor", VALUE = 5000},
		{NAME = "paladin armor", VALUE = 15000},
		{NAME = "cat's paw", VALUE = 2000},
		{NAME = "relic sword", VALUE = 25000},
	}
 
	MONITOR_MY_HUNTING.SHOW_ALL_SUPPLIES = false
	MONITOR_MY_HUNTING.SUPPLIES_LIST = {
		{NAME = "great mana potion", PRICE = 120},
	}
	
	-- [[ DO NOT CHANGE ANYTHING BELOW THIS LINE. ]] --
	
	MONITOR_MY_HUNTING.TEMP_ITEMS_LIST = MONITOR_MY_HUNTING.TEMP_ITEMS_LIST or {}
	MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST = MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST or {}
	MONITOR_MY_HUNTING.COLORS = MONITOR_MY_HUNTING.COLORS or {
		BLACK = rgbcolor(1, 1, 1),
		ORANGE = rgbcolor(255, 165, 0),
		BLUE = rgbcolor(30, 144, 255),
		CORNSILK = rgbcolor(205, 200, 177),
		WHITE = rgbcolor(255, 255, 255),
		GREEN = rgbcolor(107, 142, 35),
		RED = rgbcolor(178, 34, 34),
	}
	
	local function CreateMessageObject(MESSAGE_DATA)
		if (type(MESSAGE_DATA) ~= "userdata") then
			return setmetatable({__data = {TYPE = -1, TIME_STAMP = -1, SENDER_NAME = "", SENDER_LEVEL = -1, CONTENT = ""}}, MessageMetaTable)
		else
			return setmetatable({__data = {TYPE = MESSAGE_DATA.type, TIME_STAMP = Misc.ConvertToSeconds(string.sub(MESSAGE_DATA.text, 1, 5)), SENDER_NAME = MESSAGE_DATA.sender, SENDER_LEVEL = tonumber((tostring(string.match(MESSAGE_DATA.text, ".+ (%b[]): .+")):gsub("[^%d]", ""))) or 0, CONTENT = string.sub(MESSAGE_DATA.text, 7)}}, MessageMetaTable)
		end
	end
	
	local function addtextshadow(DISPLAY_TEXT, X_OFFSET, Y_OFFSET, FONT_COLOR)
		setfontcolor(MONITOR_MY_HUNTING.COLORS.BLACK)
		addtext(DISPLAY_TEXT, X_OFFSET + 1, Y_OFFSET + 1)
		setfontcolor(FONT_COLOR)
		addtext(DISPLAY_TEXT, X_OFFSET, Y_OFFSET)
	end
-- [[ INIT END ]] --

if (not Stats.Update()) then
	local SERVER_LOG_MESSAGES = getnewmessages("Server Log")
	local SERVER_LOG_MESSAGES_COUNT = SERVER_LOG_MESSAGES.count - 1
	
	for INDEX = 0, SERVER_LOG_MESSAGES_COUNT do
		local MESSAGE_OBJECT = CreateMessageObject(SERVER_LOG_MESSAGES[SERVER_LOG_MESSAGES_COUNT - INDEX])
		
		if (MESSAGE_OBJECT:Type() == 19 and MESSAGE_OBJECT:Content():lower():match("^loot of")) then
			local LOOT_INFO = Message.ParseLootMessage(MESSAGE_OBJECT, true)

			if (#LOOT_INFO.NAME > 0) then
				Stats.__data.MONSTERS_KILLED[LOOT_INFO.NAME] = (Stats.__data.MONSTERS_KILLED[LOOT_INFO.NAME] or 0) + 1
				
				for _, LOOT_ITEM in ipairs(LOOT_INFO.ITEMS) do
					if (Stats.__data.ITEMS_LOOTED[LOOT_ITEM.ID]) then
						Stats.__data.ITEMS_LOOTED[LOOT_ITEM.ID].QUANTITY = Stats.__data.ITEMS_LOOTED[LOOT_ITEM.ID].QUANTITY + LOOT_ITEM.QUANTITY
					else
						Stats.__data.ITEMS_LOOTED[LOOT_ITEM.ID] = {ID = LOOT_ITEM.ID, NAME = LOOT_ITEM.NAME, QUANTITY = LOOT_ITEM.QUANTITY, VALUE = Item.GetValue(LOOT_ITEM.ID)}
					end
				end
			end
		end
	end
end

local RESET_ITEMS_AND_SUPPLIES = #MONITOR_MY_HUNTING.ITEMS_LIST ~= MONITOR_MY_HUNTING.TEMP_ITEMS_LIST or #MONITOR_MY_HUNTING.SUPPLIES_LIST ~= MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST

if (not RESET_ITEMS_AND_SUPPLIES) then
	for INDEX, LOOT_ITEM in ipairs(MONITOR_MY_HUNTING.ITEMS_LIST) do
		if (LOOT_ITEM.NAME ~= MONITOR_MY_HUNTING.TEMP_ITEMS_LIST[INDEX].NAME or LOOT_ITEM.VALUE ~= MONITOR_MY_HUNTING.TEMP_ITEMS_LIST[INDEX].VALUE) then
			RESET_ITEMS_AND_SUPPLIES = true
			break
		end
	end
end

if (not RESET_ITEMS_AND_SUPPLIES) then
	for INDEX, SUPPLY_ITEM in ipairs(MONITOR_MY_HUNTING.SUPPLIES_LIST) do
		if (SUPPLY_ITEM.NAME ~= MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST[INDEX].NAME or SUPPLY_ITEM.PRICE ~= MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST[INDEX].PRICE) then
			RESET_ITEMS_AND_SUPPLIES = true
			break
		end
	end
end

if (not MONITOR_MY_HUNTING.INITIALIZED or RESET_ITEMS_AND_SUPPLIES) then
	if (not MONITOR_MY_HUNTING.CLEARED_STATS) then
		Stats.Clear(CLEAR_STATS_ALL)
		Stats.Update()
		
		MONITOR_MY_HUNTING.CLEARED_STATS = true
	end
	
	MONITOR_MY_HUNTING.TEMP_ITEMS_LIST, MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST = {}, {}
		
	for _, LOOT_ITEM in ipairs(MONITOR_MY_HUNTING.ITEMS_LIST) do
		local LOOT_ITEM_ID = Item.GetID(type(LOOT_ITEM.NAME) ~= "table" and LOOT_ITEM.NAME or unpack(LOOT_ITEM.NAME))
		
		Stats.AddItemsLooted(LOOT_ITEM_ID, 0, LOOT_ITEM.VALUE)
		table.insert(MONITOR_MY_HUNTING.TEMP_ITEMS_LIST, {ID = LOOT_ITEM_ID, NAME = LOOT_ITEM.NAME, VALUE = LOOT_ITEM.VALUE})
	end
	 
	for _, SUPPLY_ITEM in ipairs(MONITOR_MY_HUNTING.SUPPLIES_LIST) do
		local SUPPLY_ITEM_ID = Item.GetID(type(SUPPLY_ITEM.NAME) ~= "table" and SUPPLY_ITEM.NAME or unpack(SUPPLY_ITEM.NAME))
		
		Stats.AddSuppliesUsed(SUPPLY_ITEM_ID, 0, SUPPLY_ITEM.PRICE)
		table.insert(MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST, {ID = SUPPLY_ITEM_ID, NAME = SUPPLY_ITEM.NAME, PRICE = SUPPLY_ITEM.PRICE})
	end
	
	MONITOR_MY_HUNTING.INITIALIZED = true
end

setposition(Client.ClientWindow().left + 5, Client.WorldWindow().top + 5)

local Y_POSITION, INDEX, ITEMS_LOOTED_WORTH, SUPPLIES_USED_WORTH = 30, 0, 0, 0

addtextshadow(sprintf("%s v%s", MONITOR_MY_HUNTING.SCRIPT_NAME:upper(), MONITOR_MY_HUNTING.SCRIPT_VERSION), 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.ORANGE)

Y_POSITION = Y_POSITION + 20

addtextshadow("ITEMS LOOTED", 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.BLUE)

Y_POSITION = Y_POSITION + 20

for _, LOOT_ITEM in pairs(Stats.GetItemsLooted()) do
    if ((MONITOR_MY_HUNTING.SHOW_ALL_ITEMS or table.find(MONITOR_MY_HUNTING.TEMP_ITEMS_LIST, LOOT_ITEM.ID, "ID")) and LOOT_ITEM.QUANTITY > 0) then
	addtextshadow(((#LOOT_ITEM.NAME > 17 and sprintf("%s...", string.match(string.sub(LOOT_ITEM.NAME, 1, 17), "(.-)%s?$"))) or LOOT_ITEM.NAME):ucwords(), 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.CORNSILK)
	addtextshadow(sprintf("%s (%sK)", Misc.FormatNumber(LOOT_ITEM.QUANTITY), tostring(math.floor(LOOT_ITEM.VALUE * LOOT_ITEM.QUANTITY / 100) / 10)), 140, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.WHITE)

	INDEX, ITEMS_LOOTED_WORTH = INDEX + 1, ITEMS_LOOTED_WORTH + (LOOT_ITEM.VALUE * LOOT_ITEM.QUANTITY)
    end
end

addtextshadow("Total:", 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.WHITE)
addtextshadow(sprintf("%s GPs", Misc.FormatNumber(ITEMS_LOOTED_WORTH)), 10 + 35, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.ORANGE)

Y_POSITION = Y_POSITION + 20

addtextshadow("SUPPLIES USED", 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.BLUE)

Y_POSITION = Y_POSITION + 20

for _, SUPPLY_ITEM in pairs(Stats.GetSuppliesUsed()) do
    if ((MONITOR_MY_HUNTING.SHOW_ALL_SUPPLIES or table.find(MONITOR_MY_HUNTING.TEMP_SUPPLIES_LIST, SUPPLY_ITEM.ID, "ID")) and SUPPLY_ITEM.QUANTITY > 0) then
        addtextshadow(((#SUPPLY_ITEM.NAME > 17 and sprintf("%s...", string.match(string.sub(SUPPLY_ITEM.NAME, 1, 17), "(.-)%s?$"))) or SUPPLY_ITEM.NAME):ucwords(), 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.CORNSILK)
        addtextshadow(sprintf("%s (%sK)", Misc.FormatNumber(SUPPLY_ITEM.QUANTITY), tostring(math.floor(SUPPLY_ITEM.PRICE * SUPPLY_ITEM.QUANTITY / 100) / 10)), 140, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.WHITE)

        INDEX, SUPPLIES_USED_WORTH = INDEX + 1, SUPPLIES_USED_WORTH + (SUPPLY_ITEM.PRICE * SUPPLY_ITEM.QUANTITY)
    end
end

addtextshadow("Total:", 10, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.WHITE)
addtextshadow(sprintf("%s GPs", Misc.FormatNumber(SUPPLIES_USED_WORTH)), 10 + 35, Y_POSITION + (INDEX * 16), MONITOR_MY_HUNTING.COLORS.ORANGE)

Y_POSITION = Y_POSITION + 20

addtextshadow(sprintf("%s: %s GPs (%s K/H)", ((ITEMS_LOOTED_WORTH >= SUPPLIES_USED_WORTH and ("PROFIT")) or ("WASTE")), Misc.FormatNumber(ITEMS_LOOTED_WORTH - SUPPLIES_USED_WORTH), tostring(math.floor(((ITEMS_LOOTED_WORTH - SUPPLIES_USED_WORTH) * 3600) / (System.HuntingTime() / 1000) / 100) / 10)), 10, Y_POSITION + (INDEX * 16), ITEMS_LOOTED_WORTH >= SUPPLIES_USED_WORTH and MONITOR_MY_HUNTING.COLORS.GREEN or MONITOR_MY_HUNTING.COLORS.RED)</Script>
        <RefreshRate>300</RefreshRate>
        <Enabled>yes</Enabled>
      </MonitorMyHunting>
    </List>
    <Show>If focused</Show>
    <Enabled>yes</Enabled>
  </Hud>
  <Input>
    <Keyboard>
      <Mode>Simulate</Mode>
      <StuckCtrlShift>If cavebot on, release after 1 sec</StuckCtrlShift>
      <TypingStyle>Keyboard keys</TypingStyle>
      <PressWaitTime>45 to 65</PressWaitTime>
    </Keyboard>
    <Mouse>
      <Mode>Simulate</Mode>
      <Scroll>Use mouse wheel</Scroll>
      <MoveSpeed>Instantaneous</MoveSpeed>
      <ClickWaitTime>30 to 50</ClickWaitTime>
    </Mouse>
    <OpenMenuPolicy>Confirm if cavebotting</OpenMenuPolicy>
    <Enabled>yes</Enabled>
  </Input>
</Settings>
 
Status
Not open for further replies.
Top