User Tools

Site Tools



argus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
argus [2020/04/04 11:59]
rikudou
argus [2021/07/14 23:11] (current)
rikudou
Line 1: Line 1:
-<html+<WRAP center round alert 60%
-<span style="​color:​red;​font-size:​300%;">​ONLY WORKS ON PATCH 5.1 AND HIGHER</​span>​ +This addon requires TensorCore! Make sure you have that installed from the Minion store
-</html>+</WRAP>
  
 ====== About ====== ====== About ======
 Argus is an advanced mechanic detection library that can be incorporated into other addons. Offers useful API that can detect various mechanics across fights. Argus is an advanced mechanic detection library that can be incorporated into other addons. Offers useful API that can detect various mechanics across fights.
  
-Please join my discord if you require support, you can also view other addons created that use Argus here: https://discord.gg/bVABzBA+Please join my discord if you require support, you can also view other addons created that use Argus here 
 + 
 +**If you are a new user, please watch this video first:** https://www.youtube.com/watch?​v=iyo0hs5_-dA
  
 Because the API Argus offers is so powerful, for safety reasons, Argus will not be updated immediately for new raid tiers. Here is how long each type of content will take to update: Because the API Argus offers is so powerful, for safety reasons, Argus will not be updated immediately for new raid tiers. Here is how long each type of content will take to update:
Line 23: Line 25:
  
 ====== Documentation ====== ====== Documentation ======
-//italics// = type, __underline__ = optional +API Reference[[argusdocs]]
-===== Detection Functions ===== +
-  * **''​Argus.getCurrentGroundAOEs()''​** +
-    * Returns //table GroundAOE// of current AOEs that are cast on the ground where each **key is the entityID** source, and value is the GroundAOE structure (listed below). These are **not** attached to an entity (they do not originate from an entity centerpoint). **Also returns AOEs before the telegraphs are drawn, and returns AOEs with no telegraphs.** +
-  * **''​Argus.getCurrentDirectionalAOEs()''​** +
-    * Returns //table DirectionalAOE//​ of current AOEs that are on the ground where each **key is the entityID** source, and value is the //​DirectionalAOE//​ structure (listed below) and are attached to an entity (they originate from the source entity'​s center point). **Most commonly used for line AOEs**, conals, and donuts, but also includes circles. **Also returns AOEs before the telegraphs are drawn, also returns AOEs with no telegraphs.** +
-  * **''​Argus.getCurrentTethers()''​** +
-    * Returns //table// where each key is //number// entityID and each value is //table// tether. The list is all active tethers/​chains/​links between 2 entities. Each tether table has the following values//number// type, //number// targetID. This type is similar to overhead marker types, each type will have exactly the same animation for every instance that shares that type (ex type 2 tethers will always look the same). However, how or when the tether resolves, is not known to the client. +
-  * **''​Argus.registerOnMarkerAdd(//​function//​ func)''​** +
-    * Registers //func// into marker func list, and //func// will get called any time there is an overhead marker added to an entity. Function //func// should be defined with the following arguments: ''​func(//​number//​ entityID, //number// markerType)''​. Argument //​entityID//​ is the id of the entity to which the marker is being added to, and argument //​markerType//​ is the marker type that is added to entity. Marker type is consistent across mechanics. A marker of type 2 will always have the same animation. +
-  * **''​Argus.registerOnEntityCast(//​function//​ func)''​** +
-    * Registers //func// into entity cast func list. This func will get called any time the **server** sends a successful entity cast packet to the client. This means that this function is almost 100% reliable to use. Function //func// should be defined with the following arguments ''​func(//​number//​ entityID, //number// actionID)''​. +
-  * **''​Argus.registerOnEntityChannel(//​function//​ func)''​** +
-    * Registers //func// into entity channel func list. This func will get called any time the **server** sends a packet to the client, that entity has begun channeling. This means that the function is almost 100% reliable to use. Function //func// should be defined with the following arguments ''​func(//​number//​ entityID, //number// channelID, //number// targetID, //number// channelTimeMax)''​. +
- +
-===== Draw Functions ===== +
-  * **''​Argus.rotatePosAroundPos(//​table//​ originPos, //table// posToRotate,​ //number// angle)''​** +
-    * returns //table// with keys ''​x,​ y, z''​ of rotated pos. Argument ''​originPos''​ is the position the rotation should be around in a table with the keys x, y, z defined, and argument //​posToRotate//​ is the world Pos to rotate. This function is most commonly used for getting the correct positions for line aoes. example usage for line aoe: <code lua> ​           local length, width = aoe.aoeLength,​ (aoe.aoeWidth / 2) +
- +
-            local rectWorld = { +
-                topleft = RenderManager:​WorldToScreen(Argus.rotatePosAroundPos({z = aoe.z, y = aoe.y, x = aoe.x}, {z = aoe.z, y = aoe.y, x = aoe.x + width}, aoe.heading)),​ +
-                bottomleft = RenderManager:​WorldToScreen(Argus.rotatePosAroundPos({z = aoe.z, y = aoe.y, x = aoe.x}, {z = aoe.z, y = aoe.y, x = aoe.x - width}, aoe.heading)),​ +
-                topright = RenderManager:​WorldToScreen(Argus.rotatePosAroundPos({z = aoe.z, y = aoe.y, x = aoe.x}, {z = aoe.z + length, y = aoe.y, x = aoe.x + width}, aoe.heading)),​ +
-                bottomright = RenderManager:​WorldToScreen(Argus.rotatePosAroundPos({z = aoe.z, y = aoe.y, x = aoe.x}, {z = aoe.z + length, y = aoe.y, x = aoe.x - width}, aoe.heading)),​ +
-            }</​code>​ +
-  * **''​Argus.addCircleFilled(//​number//​ x, //number// y, //number// z, //number// radius, //number// segments, //U32 Color// colorFill, //U32 Color// __colorOutline__,​ //number// __outlineThickness = 1.0__)''​** +
-    * Draws a filled circle at **world coordinates** with the specified radius in radians. //U32 Color// can be retrieved from the function GUI:​ColorConvertFloat4ToU32(). if colorOutline is not specified, then an outline will not be draw. Tip: You can set the alpha on colorFill to be 0 and specify an outline color with alpha > 0 to have only the outline drawn. Generally only 50 segments is needed to draw a circle that looks round. For performance reasons I would recommend not going above 50 segments. +
-  * **''​Argus.addConeFilled(//​number//​ x, //number// y, //number// z, //number// radius, //number// angle, //number// heading, //number// segments, //U32 Color// colorFill, //U32 Color// __colorOutline__,​ //number// __outlineThickness = 1.0__''​)** +
-    * Draws a filled cone at **world coordinates** an arc angle of //angle// radians and a radius of //radius// radians. //U32 Color// can be retrieved from the function GUI:​ColorConvertFloat4ToU32(). if colorOutline is not specified, then an outline will not be draw. Tip: You can set the alpha on colorFill to be 0 and specify an outline color with alpha > 0 to have only the outline drawn. Generally only 30 segments is needed to draw a circle that looks round. For performance reasons I would recommend not going above 30 segments. +
-  * **''​Argus.addRectFilled(//​number//​ x, //number// y, //number// z, //number// length, //number// width, //number// heading, //U32 Color// colorFill, //U32 Color// colorOutline,​ //number// __outlineThickness = 1.0__)''​** +
-    * Draws a filled rectangle at **world coordinates** with //length// and //width// rotated around the center point //x, y, z// in the direction of //​heading//​. //U32 Color// can be retrieved from the function GUI:​ColorConvertFloat4ToU32(). if colorOutline is not specified, then an outline will not be drawn. Tip: You can set the alpha on colorFill to be 0 and specify an outline color with alpha > 0 to have only the outline drawn. ​ This function is commonly used for drawing frontal line aoes. +
-  * **''​Argus.addDonutFilled(//​number//​ x, //number// y, //number// z, //number// radiusInner,​ //number// radiusOuter,​ //number// segments, //U32 Color// colorFill, //U32 Color// colorOutline,​ //number// __outlineThickness = 1.0__)''​** +
-    * Draws a filled **torus** aka donut at **world coordinates** with an inner radius or //​radiusInner//​ and an outer radius of //​radiusOuter//​. //U32 Color// can be retrieved from the function GUI:​ColorConvertFloat4ToU32(). if colorOutline is not specified, then an outline will not be drawn. Tip: You can set the alpha on colorFill to be 0 and specify an outline color with alpha > 0 to have only the outline drawn. For performance reasons I would recommend not going above 50 segments, 50 segments is usually enough even for extremely large tori/​donuts. +
-  * **''​Argus.addCrossFilled(//​number//​ x, //number// y, //number// z, //number// length, //number// width, //number// heading, //U32 Color// colorFill, //U32 Color// colorOutline,​ //number// __outlineThickness = 1.0__)''​** +
-    * Draws a filled rectangle at **world coordinates** with //length// and //width// rotated around the center point //x, y, z// in the direction of //​heading//​. //U32 Color// can be retrieved from the function GUI:​ColorConvertFloat4ToU32(). if colorOutline is not specified, then an outline will not be drawn. Tip: You can set the alpha on colorFill to be 0 and specify an outline color with alpha > 0 to have only the outline drawn. ​ This function is commonly used for drawing cross aoes (type 11). +
-  * **''​Argus.addTimedCircleFilled(//​number//​ timeout, //number// x, //number// y, //number// z, //number// radius, //number// segments, //table// rgbFill, //number// alphaMin, //number// alphaMax, //number// delay, //number// entityAttachID,​ //U32 Color// __colorOutline__,​ //number// __outlineThickness = 1.0__)''​** +
-    * Adds a filled circle for specified time //timeout// in ms. Argument //rgbfill// is a table that consists of ''​{r = 0, g = 0, b = 0}'',​ replacing the values with your specified color from a range of 0 - 1. If //​entityAttachID//​ is specified, the circle will be attached to the position of the specified entity id. Also will return a //string// uuid. +
-  * **''​Argus.addTimedRectFilled(//​number//​ timeout, //number// x, //number// y, //number// z, //number// length, //number// width, //number// heading, //table// rgbFill, //number// alphaMin, //​number//​alphaMax,​ //number// delay, //number// entityAttachID,​ //number// targetAttachID,​ //bool// keepLength, //U32 Color// colorOutline,​ //number// __outlineThickness = 1.0__)''​** +
-    * Adds a rectangle at position for //timeout// ms. Argument //rgbfill// is a table that consists of ''​{r = 0, g = 0, b = 0}'',​ replacing the values with your specified color from a range of 0 - 1. If //​entityAttachID//​ is specified, the circle will be attached to the position of the specified entity id. If //​targetAttach//​ is specified, the rectangle will be drawn from it's source position (either specified or attached to entity) and stopping at the position of targetAttach entity. If ``keepLength`` is ``true``, then the length won't be adjusted to the target, the length will stay constant. Also will return a //string// uuid. +
-  * **''​Argus.addTimedConeFilled(//​number//​ timeout, //number// x, //number// y, //number// z, //number// radius, //number// angle, //number// heading, //number// segments, //table// rgbFill, //number// alphaMin, //number// alphaMax, //number// delay, //number// entityAttachID,​ //number// targetAttachID,​ //U32 Color// __colorOutline__,​ //number// __outlineThickness = 1.0__)''​** +
-    * Adds a cone at position for //timeout// ms. Argument //rgbfill// is a table that consists of ''​{r = 0, g = 0, b = 0}'',​ replacing the values with your specified color from a range of 0 - 1. If //​entityAttachID//​ is specified, the circle will be attached to the position of the specified entity id. If //​targetAttachID//​ is specified, the cone will be drawn from it's source position (either specified or attached to entity) and stopping at the position of targetAttach entity. Also will return a //string// uuid. +
-  * **''​Argus.addTimedDonutFilled(//​number//​ timeout, //number// x, //number// y, //number// z, //number// radiusInner,​ //number// radiusOuter,​ //number// segments, //table// rgbFill, //number// alphaMin, //number// alphaMax, //number// delay, //number// entityAttachID,​ //U32 Color// colorOutline,​ //number// __outlineThickness = 1.0__)''​** +
-    * Adds a filled donut (torus) for specified time //timeout// in ms. Argument //rgbfill// is a table that consists of ''​{r = 0, g = 0, b = 0}'',​ replacing the values with your specified color from a range of 0 - 1. If //​entityAttachID//​ is specified, the circle will be attached to the position of the specified entity id. Also will return a //string// uuid. +
-  * **''​Argus.addTimedCrossFilled(//​number//​ timeout, //number// x, //number// y, //number// z, //number// length, //number// width, //number// heading, //table// rgbFill, //number// alphaMin, //number// alphaMax, //number// delay, //number// entityAttachID,​ //number// targetAttachID,​ //U32 Color// colorOutline,​ //number// __outlineThickness = 1.0__)''​** +
-    * Adds a cross at position for //timeout// ms. Argument //rgbfill// is a table that consists of ''​{r = 0, g = 0, b = 0}'',​ replacing the values with your specified color from a range of 0 - 1. If //​entityAttachID//​ is specified, the circle will be attached to the position of the specified entity id. If //​targetAttachID//​ is specified, the cross will be drawn from it's source position (either specified or attached to entity) and stopping at the position of targetAttach entity. Also will return a //string// uuid. +
-  * **''​Argus.deleteTimedShape(//​string//​ uuid)''​** +
-    * Deletes timed draw with specified uuid. +
- +
- +
-===== Structures ===== +
-  * **''​castType''​** Note: These are not guaranteed for every AOE. But generally, these are how AOEs are categorized in the game. +
-    * ''​2,​ 5''​ +
-      * Circle AOE. +
-    * ''​3,​ 13''​ +
-      * Directional Cone/arc AOE +
-    * ''​4,​ 12''​ +
-      * Directional Line AOE +
-    * ''​6''​ +
-      * Meteor mechanic (more damage the closer you are to the center), usually unavoidable +
-    * ''​8''​ +
-      * Line AOE that's targeted to either a position, or specific entity. Argus will adjust the length and heading automatically. +
-    * ''​10''​ +
-      * Donut AOE +
-    * ''​11''​ +
-      * Cross AOE (new type to shadowbringers,​ example: eden 4 landslide) +
- +
-  * **''//​table//​ GroundAOE''​** +
-    * ''//​number//​ x''​ +
-      * x position of AOE +
-    * ''//​number//​ y''​ +
-      * y position of AOE +
-    * ''//​number//​ z''​ +
-      * z position of AOE +
-    * ''//​number//​ aoeType''​ +
-      * Animation/​omen type of AOE +
-    * ''//​number//​ aoeLength''​ +
-      * Length/​radius in yalms of aoe +
-    * ''//​number//​ aoeWidth''​ +
-      * Width in yalms of aoe (0 for circles and cones etc) +
-    * ''//​string//​ aoeName''​ +
-      * Name of AOE +
-    * ''//​number//​ aoeID''​ +
-      * Unique identifier of AOE +
-    * ''//​number//​ aoeCastType''​ +
-      * AOE cast type/shape. See Cast Types (above) for more info. +
-    * ''//​number//​ targetAttach''​ +
-      * ID of entity that current aoe is attached to, if found. Value is //nil// otherwise. +
-  * **''//​table//​ DirectionalAOE''​** +
-    * ''//​number//​ x''​ +
-      * x position of AOE +
-    * ''//​number//​ y''​ +
-      * y position of AOE +
-    * ''//​number//​ z''​ +
-      * z position of AOE +
-    * ''//​number//​ aoeType''​ +
-      * Animation/​omen type of AOE +
-    * ''//​number//​ heading''​ +
-      * Direction the AOE is facing.  +
-    * ''//​number//​ aoeLength''​ +
-      * Length of AOE +
-    * ''//​number//​ aoeWidth''​ +
-      * Width of AOE, mostly used for Line AOES. **0 for cones and circles** +
-    * ''//​string//​ aoeName''​ +
-      * Name of AOE +
-    * ''//​number//​ aoeID''​ +
-      * Unique identifier of AOE +
-    * ''//​number//​ aoeCastType''​ +
-      * AOE cast type/shape. See Cast Types (above) for more info. +
-    * ''//​number//​ targetAttach''​ +
-      * ID of entity that current aoe is attached to, if found. Value is //nil// otherwise.+
  
 ===== Known Overhead Marker Types ===== ===== Known Overhead Marker Types =====
argus.1585994368.txt.gz · Last modified: 2020/04/04 11:59 by rikudou