07-18-2014, 02:09 AM
Hi guys,
Since I am currently building/implementing most of the newer duty code I figured I am the best source of information on how to properly configure it. I will be adding the ability to build profiles to the Profile Manager soon, so hopefully this post won't be necessary for long. So, let's make this short and sweet.
Disclaimer: This is relevant mostly to the current beta bot, and some of these are subject to change since they are currently in development and undergoing testing.
Shared Directives
The semi-colon after all directives is a requirement, don't skip it.
## - numbers - Example: ["someDirective"] = 123;
"_" - a string/text - Example: ["someDirective"] = "123;124";
t/f - true or false; - Example: ["someDirective"] = true;
Profile-Level Directives
These are directives that are placed inside of the top-level obj1 table. They indicate major profile elements.
["MapID"] = ###; The mapid that the dungeon takes place on, can be pulled from Player.localmapid.
["EncounterIndex"] = 0; Used as an encounter tracker / starting spot for the duty system, it should usually look exactly like this.
["Independent"] = t/f; (Optional) If this directive is present and is true, all bots will read the profile and essentially act as their own leader, instead of the usual single-leader/multiple-follower behavior. This can be very useful if multiple bots are needed at multiple locations for some difficult fights.
Shared Directives
All/most tasks share the following directives:
["waitTime"] = ##; The numbers here represent a value in milliseconds (1000ms = 1s) for the amount of time the bot will wait at the designated area before beginning the task.
["failTime"] = ##; The numbers here represent a value in milliseconds (1000ms = 1s) for the amount of time the bot will wait after detecting an exit condition before fully exiting the task (useful if there are gaps in time where a target disappears, etc).
["taskFunction"] = "_"; This string represents the .Create() function for one of the duty specific tasks.
["startPos"] - This is a table containing another table of ["General"], which should include x,y,z,h values for the starting position for the task.
["radius"] = ##; - A number that represents the scan range of the task. If the enemy/interact/chest is not within the radius, it will not be found, so set it appropriately.
Kill Task
Description: The kill task is used to kill things.
["taskFunction"] = "ffxiv_duty_kill_task.Create";
Directives:
["bossIDs"] = "##;##;##;##"; - A semi-colon separated list of contentIDs for enemies to be killed.
["doKill"] = true/false; - If this value is false, the bot will only quickly attack one of the appropriate mobs, which is useful for pulling mobs. If this value is true, the bot will kill the enemies as normal.
["killto%"] = ##; (Optional) - If this value is added, the bot will only kill the mob(s) down to the specified health percentage (useful for bosses that have hp % based immunities like Titan.
["fightPos"] - This follows the same format as startPos, and should contain the same ["General"] table containing a valid position. This tells the bot to move to this location after aggro/combat is established with the specified mob.
["prioritize] = true/false; - If this value is true, the bot will prioritize the targeting of the mobs listed in bossIDs in the order they are listed, with the first ones being the highest prioritity.
Interact Task
Description: This task is used to open doors, pick up keys, interact with random objects. This task should move to the location of the interactid if it is found and is too far away (useful for looking for key drops).
["taskFunction"] = "ffxiv_task_interact.Create";
Directives:
["interactid"] = ##; - A number representing the uniqueid of an entity to be interacted with.
Loot Task
Description: This task is used to open treasure chests. If no chests are found, this task will automatically fail after 15 seconds.
["taskFunction"] = "ffxiv_task_loot.Create";
Directives:
["lootid"] = ##; (Optional) - A number representing the uniqueid of a chest to be looted. Minion bots will roll on the results. If this number is not present, it will pick the nearest chest (it will not move to the object if out of range, might be changed soon).
Since I am currently building/implementing most of the newer duty code I figured I am the best source of information on how to properly configure it. I will be adding the ability to build profiles to the Profile Manager soon, so hopefully this post won't be necessary for long. So, let's make this short and sweet.
Disclaimer: This is relevant mostly to the current beta bot, and some of these are subject to change since they are currently in development and undergoing testing.
Shared Directives
The semi-colon after all directives is a requirement, don't skip it.
## - numbers - Example: ["someDirective"] = 123;
"_" - a string/text - Example: ["someDirective"] = "123;124";
t/f - true or false; - Example: ["someDirective"] = true;
Profile-Level Directives
These are directives that are placed inside of the top-level obj1 table. They indicate major profile elements.
["MapID"] = ###; The mapid that the dungeon takes place on, can be pulled from Player.localmapid.
["EncounterIndex"] = 0; Used as an encounter tracker / starting spot for the duty system, it should usually look exactly like this.
["Independent"] = t/f; (Optional) If this directive is present and is true, all bots will read the profile and essentially act as their own leader, instead of the usual single-leader/multiple-follower behavior. This can be very useful if multiple bots are needed at multiple locations for some difficult fights.
Shared Directives
All/most tasks share the following directives:
["waitTime"] = ##; The numbers here represent a value in milliseconds (1000ms = 1s) for the amount of time the bot will wait at the designated area before beginning the task.
["failTime"] = ##; The numbers here represent a value in milliseconds (1000ms = 1s) for the amount of time the bot will wait after detecting an exit condition before fully exiting the task (useful if there are gaps in time where a target disappears, etc).
["taskFunction"] = "_"; This string represents the .Create() function for one of the duty specific tasks.
["startPos"] - This is a table containing another table of ["General"], which should include x,y,z,h values for the starting position for the task.
["radius"] = ##; - A number that represents the scan range of the task. If the enemy/interact/chest is not within the radius, it will not be found, so set it appropriately.
Kill Task
Description: The kill task is used to kill things.
["taskFunction"] = "ffxiv_duty_kill_task.Create";
Directives:
["bossIDs"] = "##;##;##;##"; - A semi-colon separated list of contentIDs for enemies to be killed.
["doKill"] = true/false; - If this value is false, the bot will only quickly attack one of the appropriate mobs, which is useful for pulling mobs. If this value is true, the bot will kill the enemies as normal.
["killto%"] = ##; (Optional) - If this value is added, the bot will only kill the mob(s) down to the specified health percentage (useful for bosses that have hp % based immunities like Titan.
["fightPos"] - This follows the same format as startPos, and should contain the same ["General"] table containing a valid position. This tells the bot to move to this location after aggro/combat is established with the specified mob.
["prioritize] = true/false; - If this value is true, the bot will prioritize the targeting of the mobs listed in bossIDs in the order they are listed, with the first ones being the highest prioritity.
Interact Task
Description: This task is used to open doors, pick up keys, interact with random objects. This task should move to the location of the interactid if it is found and is too far away (useful for looking for key drops).
["taskFunction"] = "ffxiv_task_interact.Create";
Directives:
["interactid"] = ##; - A number representing the uniqueid of an entity to be interacted with.
Loot Task
Description: This task is used to open treasure chests. If no chests are found, this task will automatically fail after 15 seconds.
["taskFunction"] = "ffxiv_task_loot.Create";
Directives:
["lootid"] = ##; (Optional) - A number representing the uniqueid of a chest to be looted. Minion bots will roll on the results. If this number is not present, it will pick the nearest chest (it will not move to the object if out of range, might be changed soon).