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 revisionPrevious revision
Next revision
Previous revision
argus [2020/01/29 06:42] rikudouargus [2021/07/14 21: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 15: Line 17:
  
 ====== Coming Soon ====== ====== Coming Soon ======
-Tether detection. Have the offsets reversed, just need to find a place where I can get tethers reliably and finish reversing the functions. 
- 
 Persistent ground effect detection (like toxic vomit from brayflox dungeon) Persistent ground effect detection (like toxic vomit from brayflox dungeon)
  
-====== Documentation ====== +====== What It Does Not Detect ====== 
-//italics// = type, __underline__ = optional +Cones - **cone arc angle** outside of telegraphed onesThe hit detection for untelegraphed cones is done server side and thus the angle of the cones is never sent to client nor is it stored in the client.
-===== 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.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)''+
-  * **''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 = { +Torus/Donuts - **inner circle radius** outside of telegraphed aoes (but also some telegraphed aoes). The hit detection for untelegraphed tori/donuts is done server side and thus the radius of the safe inner circle is never sent to client nor is it stored in the client.
-                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.+
  
-===== Structures ===== +====== Documentation ====== 
-  * **''castType''** NoteThese are not guaranteed for every AOE. But generally, these are how AOEs are categorized in the game. +API Reference[[argusdocs]]
-    * ''2, 5'' +
-      * Circle AOE. +
-    * ''3, 13'' +
-      * Directional Cone/arc AOE +
-    * ''4, 12'' +
-      * Directional Line AOE +
-    * ''11'' +
-      * Cross AOE (new type to shadowbringers, example: eden 4 landslide) +
-    * ''10'' +
-      * Donut AOE +
-  * **''//table// GroundAOE''** Note: Does not have an aoeWidth because line aoes are always radial +
-    * ''//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// aoeRadius'' +
-      * Radius in yalms of aoe +
-    * ''//string// aoeName'' +
-      * Name of AOE +
-    * ''//number// aoeID'' +
-      * Unique identifier of AOE +
-    * ''//number// aoeCastType'' +
-      * AOE cast type/shape. See Cast Types (above) for more info. +
-  * **''//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.+
  
 ===== Known Overhead Marker Types ===== ===== Known Overhead Marker Types =====
argus.1580280143.txt.gz · Last modified: 2020/01/29 06:42 by rikudou