MMOMinion

Full Version: Profile Manager ... Faux Quest Possible?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Goal:

Create a quest where the bot simply goes to an appointed location and kills a specified number of pre-identified mobs.

1. Can a quest profile be created that does not utilize an actual in-game quest?

2. If #1 is possible, how would I "Start" such a quest?

3. If #1 is possible, how would I "Complete" such a quest?

===============

If anyone has a script sample that does this, or something similar, I'd really appreciate seeing it.

Thank you in advance!
Not currently.
I assume something like beastmen quests but this isnt currwntly setup for these.

The old task manager did something similar but isnt up to date atm
Thank you, Sebbs; response much appreciated.

Obviously I'm still looking for a way to gather specific items from mobs. May have to see if other bots offer some remedy.
Just go find a quest you havnt done yet.
Make a quest that has a start but no complete.

Start..
Kill if less that x item.
Nav to position if >= x item.
Well, Sebbs, I'm at a loss. I've tried variants of the following code, with varied level/classes of characters. They will move to the quest-giving NPC, interact, accept the quest; however, they immediately teleport to their respective zones to grind or do their hunt log (each of which is deselected in Settings or Quest Options. At this point I don't know whether there's something wrong with my script or Minion is hosed (for not being able to turn off grind and hunt log). I suspect it's my script, but there are too many variables for my limited knowledge. Hope someone can help.

PHP Code:
local obj1 = {
    [
"names"] = {
    };
    [
"quests"] = {
        [
2206] = {
            [
"level"] = 30;
            [
"name"] = "A Journey to Remember";
            [
"prereq"] = false;
            [
"steps"] = {
                [
1] = {
                    [
"delay"] = 0;
                    [
"id"] = 1016143;
                    [
"itemreward"] = false;
                    [
"mapid"] = 128;
                    [
"meshname"] = "Limsa (Upper)";
                    [
"pos"] = {
                        [
"x"] = 13.962239265442;
                        [
"y"] = 40.000282287598;
                        [
"z"] = -2.0131545066833;
                    };
                    [
"type"] = "start";
                };
                [
2] = {
                    [
"delay"] = 0;
                    [
"id"] = 1016143;
                    [
"index"] = 0;
                    [
"itemreward"] = false;
                    [
"mapid"] = 128;
                    [
"meshname"] = "Limsa (Upper)";
                    [
"pos"] = {
                        [
"x"] = 13.962239265442;
                        [
"y"] = 40.000282287598;
                        [
"z"] = -2.0131545066833;
                    };
                    [
"type"] = "interact";
                };
                [
3] = {
                    [
"delay"] = 0;
                    [
"id"] = 1016143;
                    [
"index"] = 0;
                    [
"itemreward"] = false;
                    [
"mapid"] = 128;
                    [
"meshname"] = "Limsa (Upper)";
                    [
"pos"] = {
                        [
"x"] = 7.7857713699341;
                        [
"y"] = 40.000392913818;
                        [
"z"] = 14.795091629028;
                    };
                    [
"questid"] = 2206;
                    [
"type"] = "accept";
                };
                [
4] = {
                    [
"delay"] = 0;
                    [
"id"] = 417;
                    [
"index"] = 0;
                    [
"itemreward"] = false;
                    [
"killcount"] = 10;
                    [
"mapid"] = 134;
                    [
"meshname"] = "Middle La Noscea";
                    [
"pos"] = {
                        [
"x"] = 7.256733417511;
                        [
"y"] = 46.768711090088;
                        [
"z"] = 77.889770507813;
                    };
                    [
"type"] = "kill";
                };
                [
5] = {
                    [
"delay"] = 0;
                    [
"id"] = 1016143;
                    [
"itemreward"] = false;
                    [
"itemrewardslot"] = 0;
                    [
"mapid"] = 128;
                    [
"meshname"] = "Limsa (Upper)";
                    [
"pos"] = {
                        [
"x"] = 16.83137512207;
                        [
"y"] = 40.200004577637;
                        [
"z"] = -0.26901340484619;
                    };
                    [
"type"] = "complete";
                };
            };
        };
    };
    [
"vars"] = {
    };
}
return 
obj1 
index is wrong .

index = 0 means start quest.

index = 255 = complete stage of quest.

step 1 = index 1 etc etc

what is the accept stage?

Code:
[2206] = {
            ["level"] = 30;
            ["name"] = "A Journey to Remember";
            ["prereq"] = false;
            ["steps"] = {
                [1] = {
                    ["delay"] = 0;
                    ["id"] = 1016143;
                    ["itemreward"] = false;
                    ["mapid"] = 128;
                    ["meshname"] = "Limsa (Upper)";
                    ["pos"] = {
                        ["x"] = 15.800399780273;
                        ["y"] = 40.200004577637;
                        ["z"] = -0.83973133563995;
                    };
                    ["type"] = "start";
                };
                [2] = {
                    ["delay"] = 0;
                    ["id"] = 1016144;
                    ["index"] = 1;
                    ["itemreward"] = false;
                    ["mapid"] = 137;
                    ["meshname"] = "Eastern La Noscea";
                    ["pos"] = {
                        ["x"] = 503.23568725586;
                        ["y"] = 16.529745101929;
                        ["z"] = 454.83996582031;
                    };
                    ["type"] = "interact";
                };
            };
        };

if your doing a different quest / kill stage .. that entire index will be index = 1 because the original quest isnt actually progressing.
Thank you Sebbs. I made your recommended corrections, tried a number of quest-giving NPCs, and got it to work -- at least it will go to specified areas and kill things -- KIND OF. It's terribly wonky and bot-like, and I don't trust it.

For the time being I'm combing through my recipe database, identifying all kill drops and associated beasts, and will soon begin creating markers for them. Names, coordinates/zones for the markers will also go into a table and I'll at least be able to launch my bot to the appropriate targets, though it will remain a largely manual process. No great loss, as I've now gathered from every normal and unspoiled node (ARR and HW) in bot mode I've become much less confident about running unattended -- waaaaaaaaaaaaaaaaaay too many nav-path problems where the bot looks too much like a bot.

Not that anyone cares, but below is a graphic representation of where I'm headed with this little project. End goal is to auto-generate recipe-based scripts--perfect, fully customized LUA scripts in seconds for one or a dozen or more recipes at one time.

Code:
                                                |---[tblMarkers]
                                                |
[Quest Report in LUA *info format]              |---[tblDrops]
                |                               |
                |                               |---[tblPurchasables]
                |<---[Query]<---[tblRecipes]----|
                |                               |---[tblCompounds]
                |                               |
[Gather Report in LUA *lua format]              |---[tblGathers]
                                                |
                                                |---[tblGatherNodes]

At present, I'm using the tblGathers and tblGatherNodes with MS Word's Mail Merge function to generate gathering profiles. Still infinitely faster than writing/editing scripts by hand, and the data-driven approach makes rapid customization a snap. But the real beauty is every script is flawless; no syntax issues and no typo issues with item names.

Oops -- forgot to mention Unspoiled nodes -- unique gathering profiles for unspoileds in seconds. Merely check off what's to be collected and when. Will ultimately mesh into the diagram above. Much easier with a database to ensure there are no timing issues. About 95% done with this one.