Important: Please register to test the 20 minutes trial version or buy the bot!
Bot is ready for 5.3 rev# 17055 enjoy!
Wow Bot: CrawlerBot Last version: click here State: EU: working US: outdated

  • Golden Lotus Dailies / mostly complete 5 4
Currently:  

Author Topic: Golden Lotus Dailies / mostly complete  (Read 4032 times)

December 16, 2012, 22:46:31 PM

zukzuk

  • *
  • Posts: 140
  • Reputation: 72
    • View Profile
Hi,

see attachment.

Notes:

- it's still incomplete. I added most of the dailies that were up for me within a few weeks for several toons at different rep levels
- it's bugged (in quite a few parts due to things that are not controlled by the profile)

A few known issues:

- if certain dailies such as "Thundering Skies" are up, it will cause major pain for the bot, the "avoid elites" setting doesn't seem to help here. It's recommended that you do the first batch of dailies manually if that one is up.
- the same goes for certain rare elite spawns
- for a few quests, it's quite slow. The most prominent one will probably be "Crumbling Behemoth", since it's in the first batch of dailies, and if it's up, it's the first one the script will do. What the bot does here is waiting until the behemoth drops under 20% health (due to being attacked by NPCs or other players), then it goes in for the kill.
- it may get permanently stuck while grinding for "Steer Clear of the Beer Here" in mistfall -> bot bug
- it doesn't properly ressurrect when dying -> bot bug
- it tries some fancy stuff for "The Thunder Below", "Survival Ring: Blades", "Survival Ring: Flame", "The Battle Ring" which may or may not work for you
 -"The Battle Ring" currently only works if your toon has an aoe ability that can be cast without targeting and if you set up the

Code: [Select]
GoldenLotus.AoeSpamKey = 69;

option at the top of the script to reference the corresponding keybind (69 = "E" key).

Reason: the bot does not recognize the trainees becoming friendly after dropping to a certain hp level and will try to kill them forever when the normal bot fight functions are used.

-> bot bug

- other stuff I forgot

Don't run it unattended.

There's also a bug related to the wow api: don't start the bot too soon after relogging your toon. It takes a while to register what quests are already done. If the bug occurs, it will not recognize which dailies the toon already completed on that day and it will try to restart at golden temple (this becomes relevant if you restart the bot after a few quests have already been completed).

Edit: that doesn't mean that most stuff is broken. In fact, most of the ~100 quests currently supported work just fine.
« Last Edit: March 12, 2013, 19:03:39 PM by zukzuk »

December 17, 2012, 13:31:52 PM
Reply #1

zukzuk

  • *
  • Posts: 140
  • Reputation: 72
    • View Profile
Added several more quests.

December 18, 2012, 13:01:04 PM
Reply #2

zukzuk

  • *
  • Posts: 140
  • Reputation: 72
    • View Profile
More quests, fixed some bugs, optimized some stuff.

Currently supports around 70 quests.
« Last Edit: December 18, 2012, 13:06:03 PM by zukzuk »

December 23, 2012, 15:27:21 PM
Reply #3

Drac0

  • *
  • Posts: 121
  • Reputation: 19
    • View Profile
Gonna check it soon on my new 90s
If u like my Profile or Guide  please +Rep ;] cheers

December 23, 2012, 18:21:15 PM
Reply #4

wowaddict

  • *
  • Posts: 6
  • Reputation: 0
    • View Profile
Hey every time I start it picks up quest then flies up to blossom straight up into the air until it can't go any higher but still tries lol. Here's the script in the launcher.

[11:16:04] - DEBUG: check if accepted Stone Hard Quilen
[11:16:04] - DEBUG: no
[11:16:06] - Starting to accept quests for batch "golden_temple"
[11:16:06] - Accepting "The Eternal Vigil"
[11:16:07] - DEBUG: Calling DoMount(), if the script gets stuck here it's a bot bug
[11:17:00] - Bot Thread Stoped!

December 23, 2012, 22:17:48 PM
Reply #5

fandom

  • *
  • Posts: 46
  • Reputation: 2
    • View Profile
you have a mount id filled in ?

December 25, 2012, 17:23:14 PM
Reply #6

wowaddict

  • *
  • Posts: 6
  • Reputation: 0
    • View Profile
Yes I have the mount Imperial Quilen [124659]

Wowaddict

January 07, 2013, 16:25:08 PM
Reply #7

ruberduck

  • *
  • Posts: 130
  • Reputation: 11
    • View Profile
More quests, fixed some bugs, optimized some stuff.

Currently supports around 70 quests.
Hi ZukZuk,
do you still work on this script and have you run it with on of your chars?
There are several typos at the grinding-modules and several quests are missing.
It would be great, if you have time to complete it.
Im still working on my scripts and hope to final 2 of them this week.
Greetings
Ruberduck

January 07, 2013, 21:10:04 PM
Reply #8

zukzuk

  • *
  • Posts: 140
  • Reputation: 72
    • View Profile
I intended to polish it as soon as some of the bot issues described in this thread and in http://mmocrawlerbots.com/forum/bugs/14c-no-longer-fighting-friendly-mobs-bug/ are resolved.

I'm not aware of any issues with the script that are not caused by certain bot behaviours that cannot be controlled via a profile at this time. Feel free to be more specific :-).

I didn't check yet if the new plugin system is helpful for addressing any of these issues.

January 08, 2013, 08:56:28 AM
Reply #9

ruberduck

  • *
  • Posts: 130
  • Reputation: 11
    • View Profile
I intended to polish it as soon as some of the bot issues described in this thread and in http://mmocrawlerbots.com/forum/bugs/14c-no-longer-fighting-friendly-mobs-bug/ are resolved.

I'm not aware of any issues with the script that are not caused by certain bot behaviours that cannot be controlled via a profile at this time. Feel free to be more specific :-).

I didn't check yet if the new plugin system is helpful for addressing any of these issues.

Hi.
Yes, i know this bug, so i made an function to solve this problem.
Code: [Select]
local LastMob = {};
for i=1,10,1 do
    table.insert(LastMob, i, { 0 });
end
local MobCount = {};
for i=1,10,1 do
    table.insert(MobCount, i, { 0 });
end
function MobAttackOutdoor(MobID, MobPosHolder, SearchForText, MaxDistance, MinMobHP, WaitTime, Precision, XYDistance, MessageLevel)
    -- MobAttackOutdoor(67756, 1, "Domination Point Supply Cart", 70, 100, 2000, 10, 20, 1)
    --  MobID == Object ID of NPC

--  MobPosHolder is an internal ID for the Counter (MobCount) and the position of the Last killed Mob
--        You can get the value with this function:
--                    local Wert = MobCount[1]
--                    if Wert[1] >= 4 then
--                       _Log("####Check####")
--                    end
--        If you Use 3 as second Parameter: MobAttackOutdoor(67756, 3, "Domination Point Supply Cart", 70, 100, 2000, 10, 20, 1)
--        Then you can get the Value with the following function:
--                    local Wert = MobCount[3]
--                    if Wert[1] >= 4 then
--                       _Log("####Check####")
--                    end
--        The MobAttackOutdoor-function will remember his last Target on the MobPosHolder ID (1 or 3 in my example), so this function will not fly two times to the same Mob.
--        This is only nessesary, if you set the MinMobHP to 0. (Not needed at this time, but who know what will come. ^^)

--  SearchForText is the Text you want to display in your log. The Script will Add (Range to SEARCHFORTEXT:)

--    MaxDistance is the max Range, you would fly or walk to an NPC. if the NPC has an Range of 75 to your Char, he will not be attacked. If he is in an range of 65, your Char will fly to him an starts to fight.

--    MinMobHP is the nessesary Life of the NPC
--    If the NPC has 95% Life, he will not be attacked.
--    If you change the 100 to 50, then the Bot will also attack an NPC with 55% life. ^^

--    WaitTime is the Time for Sleep. The Script will make the following when the Bot reaches the NPC
--    DisMount, Sleep(1000)
--    InteractWith(TaAdr), KillMob(GetTargetAddress()), Sleep(1000)
--    If you change 2000 to 3000 he will Sleep two times for: Sleep(1500)
--    Get it?

--    Precision is the Precision of the coordinates to where the Bot will Navigate to.
--    If you change it to 1 you will have many UNSTUCKs.
--    Beleave me, that 10 is an good value.

--  XYDistance is the x and y distance to the npc. If you have an Range-Char with an range of 40, then set it max to 20. For an Meele you should use 5 or 7

--  MessageLevel is only 0 or 1. If you dont want to see text from this function in your Log, then set it to 0

   
    WowLuaDoString('fighting = InCombatLockdown()')
    if tonumber(WowGetLuaValue("fighting")) == 1 then
        WowLuaDoString("attackingmob = UnitAffectingCombat('target')")
        WowLuaDoString("existingmob = UnitExists('target')")
        attackingmob = tonumber(WowGetLuaValue("attackingmob"))
        existingmob = tonumber(WowGetLuaValue("existingmob"))
        if attackingmob == 1 and existingmob == 1 then
            if GetTargetAddress() ~= 0 then
                KillMob(GetTargetAddress())
                Sleep(1000)
                FightCheck()
                WowLuaDoString("AttackTarget()")
                WowLuaDoString("ClearTarget()")
            end           
        end
    end
    DoMount()
    WowLuaDoString("ClearTarget()")
    TaAdr = GetObjectByID(MobID)
    if TaAdr > 0 then
        TApos = GetUnitPos(TaAdr)
        local Wert = LastMob[MobPosHolder]
        if Wert[1]==TApos[0] then
            return false
        else
            _Log("source")
            source = GetUnitPos(GetPlayer())
            if math.floor(math.sqrt(math.pow(source[0] -  TApos[0],2) + math.pow(source[1] -  TApos[1],2) + math.pow(source[2] -   TApos[2],2))) < MaxDistance then
                SetTarget(TaAdr)
                local target;
                if (TaAdr == Player) then
                    target="player";
                else
                    target="target";
                end
                WowLuaDoString('hp=100 * UnitHealth("' .. target .. '") / UnitHealthMax("' .. target .. '")');
                if tonumber(WowGetLuaValue("hp")) >= MinMobHP then
                    if MessageLevel == 1 then _Log("Range to " .. SearchForText .. ": " ..math.floor(math.sqrt(math.pow(source[0] - TApos[0],2) + math.pow(source[1] - TApos[1],2) + math.pow(source[2] -  TApos[2],2)))) end
                    GlobalFlyingNavigate(TApos[0]+XYDistance, TApos[1]+XYDistance, TApos[2]+15, Precision);
                    TApos = GetUnitPos(TaAdr)
                    GlobalFlyingNavigate(TApos[0]+XYDistance, TApos[1]+XYDistance, TApos[2]+5, Precision);
                    Sleep(WaitTime/2)
                    DisMount()
                    Sleep(WaitTime)
                    InteractWith(TaAdr)
                    KillMob(GetTargetAddress())
                    Sleep(WaitTime/2)
                    TApos = GetUnitPos(TaAdr)
                    local Wert = LastMob[MobPosHolder]
                    table.remove(LastMob,MobPosHolder)
                    table.insert(LastMob, MobPosHolder, { TApos[0] });
                    local Wert = LastMob[MobPosHolder]
                    DoMount()
                    local Wert = MobCount[MobPosHolder]
                    table.remove(MobCount,MobPosHolder)
                    table.insert(MobCount, MobPosHolder, { Wert[1] +1 });
                    local Wert = MobCount[MobPosHolder]
                    CurrentPlayerPos = GetUnitPos(GetPlayer())
                    GlobalFlyingNavigate(CurrentPlayerPos[0], CurrentPlayerPos[1], CurrentPlayerPos[2]+15, Precision);
                    WowLuaDoString("ClearTarget()")
                    return true
                else
                    return false
                end
            else
                return false
            end
        end
    else
        return false
    end
end
This works realy good for me, especialy because some mobs will count even they have less than 100% life. In this function you can set the MinMobHP like you want.
The Probs i wrote are in the second part at the lake, when you start grinding.
He will only kill NPC and dont find Rubineyes or other pickable items.
Weißblütenschilf ID 212744 and Moguartefakt ID 212763 are another item, which will not befarmed.

And if you go to the third part, the script stops most.
Thats only hints, so you can make your script better.
I think your script works realy good and i use it nearly every day.
Greetings
« Last Edit: January 08, 2013, 09:57:26 AM by ruberduck »

January 08, 2013, 20:48:51 PM
Reply #10

zukzuk

  • *
  • Posts: 140
  • Reputation: 72
    • View Profile
Hi. I'm currently using static waypoints for some parts to avoid the mount bug. I assume it will get fixed eventually in the bot, so I'm not planning to add anything else for that. At a first glance, your approach isn't generic either, since it relies on the fact that random coordinates are reachable by the bot.

I added support for the following quests:

Ruffling Some Feathers
Wulon, the Granite Sentinel
The Crumbling Hall (incomplete)

which were up for me for the first time today (yes, I didn't run it every day).

For the item ids 212744 ("Stick in the Mud") and 212763 ("A Weighty Task") and the ruby eyes ("Sparkle in the Eye"): the corresponding quests were already present in the script, I couldn't test them again since they weren't up for me. I'll check if they're up in the next few days. The actual grind for these 3 quests is, however, completely bot controlled using DoGrind() (the only things provided by the script are the waypoints and item ids).

For other problems, it would help if you could mention the names of the quests making problems for you and maybe even post the contents of your bot log window :-). I don't know what you mean by "second part" or "third part" since the quest hubs are random every day.
« Last Edit: January 08, 2013, 20:52:45 PM by zukzuk »

January 09, 2013, 00:23:44 AM
Reply #11

mccormjo

  • *
  • Posts: 15
  • Reputation: 1
    • View Profile

January 09, 2013, 15:56:51 PM
Reply #12

zukzuk

  • *
  • Posts: 140
  • Reputation: 72
    • View Profile
Added

"Getting Your Hands Dirty"
"Mistfall Village" (missing breadcrumb quest at Whitepetal lake)

Couldn't reproduce the issues reported with "Stick in the Mud", "A Weighty Task" and "Sparkle in the Eye". The bot likes to drown while (underwater) grinding for "Sparkle in the Eye", that's an issue with the grinding mode itself though.

January 26, 2013, 15:28:02 PM
Reply #13

spid12

  • *
  • Posts: 22
  • Reputation: 0
    • View Profile
when you add more quests in the questprofile ?
« Last Edit: January 26, 2013, 16:16:02 PM by spid12 »

January 30, 2013, 21:44:34 PM
Reply #14

zukzuk

  • *
  • Posts: 140
  • Reputation: 72
    • View Profile
What quests are you having trouble with? I didn't get to do many test runs during the past few weeks. During the few I did, I didn't see any quests up that weren't already covered by the script. Things seem to be a bit smoother overall with bot version 16.

I should be able to add support for some (trivial) quests that I didn't see yet if you're able to tell me the quest ids.

If you're inclined to scripting yourself: what is that you're missing (in terms of descriptiveness) in the source code that would assist you in terms of being being able add something by yourself?

 

* Useful Links

WoW Bot - CrawlerBot
* Download
* Guides
* Info & Clip

* Useful Stuff