Go to Page... |
Compatibility: | Necrom (9.0.0) |
Updated: | 06/23/23 05:22 PM |
Created: | 11/09/20 03:08 AM |
Monthly downloads: | 3,387 |
Total downloads: | 269,960 |
Favorites: | 183 |
MD5: | |
Categories: | Group, Guild & Friends, Raid Mods |
function OSI.SetMechanicIconForUnit( displayName, -- display name of the affected player texture, -- icon texture path size, -- optional icon size color, -- optional icon color {r,g,b} offset, -- optional icon offset in meters callback -- optional callback function ) function OSI.RemoveMechanicIconForUnit( displayName -- display name of the affected player )
local ADDON_NAME = "MyAddonName" local MY_TEXTURE = "myaddonname/myiconpath/myicontexture.dds" local MECHANIC_ID = 12345 EVENT_MANAGER:RegisterForEvent( ADDON_NAME, EVENT_ADD_ON_LOADED, function( _, addonName ) if addonName ~= ADDON_NAME then return end EVENT_MANAGER:UnregisterForEvent( ADDON_NAME, EVENT_ADD_ON_LOADED ) EVENT_MANAGER:RegisterForEvent( ADDON_NAME, EVENT_EFFECT_CHANGED, function( _, changeType, _, _, unitTag ) -- check if OdySupportIcons is active and the affected unit is a player if OSI and OSI.SetMechanicIconForUnit and IsUnitPlayer( unitTag ) then -- retrieve the displayname of the affected player local displayName = GetUnitDisplayName( unitTag ) -- if the player gained the mechanic effect... if changeType == EFFECT_RESULT_GAINED then -- assign your icon to the affected player and make it bigger than other icons OSI.SetMechanicIconForUnit( displayName, -- display name of the affected player MY_TEXTURE, -- icon texture path OSI.GetIconSize() * 1.5, -- optional icon size { 1, 1, 1 }, -- optional icon color {r,g,b} 0, -- optional icon offset in meters function( data ) -- optional callback function -- simple bounce animation along the y-axis data.offset = 0.5 + 0.5 * math.sin( GetGameTimeMilliseconds() / 1000 * 2 ) -- the data object passed to the callback function contains: -- displayName, unitTag, texture, size, color, offset end ) -- if the player lost the mechanic effect... elseif changeType == EFFECT_RESULT_FADED then -- remove your icon from the formerly affected player OSI.RemoveMechanicIconForUnit( displayName ) end end end ) EVENT_MANAGER:AddFilterForEvent( ADDON_NAME, EVENT_EFFECT_CHANGED, REGISTER_FILTER_ABILITY_ID, MECHANIC_ID ) EVENT_MANAGER:AddFilterForEvent( ADDON_NAME, EVENT_EFFECT_CHANGED, REGISTER_FILTER_UNIT_TAG_PREFIX, "group" ) end )
function OSI.CreatePositionIcon( x, y, z, -- world coordinates texture, -- icon texture path size, -- optional icon size color, -- optional icon color {r,g,b} offset, -- optional icon offset in meters callback -- optional callback function ) function OSI.DiscardPositionIcon( icon -- position icon object )
/script OSI.PrintMyPosition()
local ADDON_NAME = "MyAddonName" local MY_TEXTURE = "myaddonname/myiconpath/myicontexture.dds" local MY_ICON = nil EVENT_MANAGER:RegisterForEvent( ADDON_NAME, EVENT_ADD_ON_LOADED, function( _, addonName ) if addonName ~= ADDON_NAME then return end EVENT_MANAGER:UnregisterForEvent( ADDON_NAME, EVENT_ADD_ON_LOADED ) EVENT_MANAGER:RegisterForEvent( ADDON_NAME, EVENT_BOSSES_CHANGED, function() -- check is OdySupportIcons is active and supports world position icons if OSI and OSI.CreatePositionIcon then -- retrieve name of boss local boss = GetUnitName( "boss1" ) -- if we are in Sharpfangs (Deshaan) lair and... if boss and boss == "Sharpfang" then -- if no icon has been created yet... if not MY_ICON then -- create an icon 2.5m above the stone formation and make it bigger than other icons MY_ICON = OSI.CreatePositionIcon( 274367, 11022, 213871, -- world coordinates MY_TEXTURE, -- icon texture path OSI.GetIconSize() * 1.5, -- optional icon size { 1, 1, 1 }, -- optional icon color {r,g,b} 2.5, -- optional icon offset in meters function( data ) -- optional callback function -- simple bounce animation along the y-axis data.offset = 2.5 + math.sin( GetGameTimeMilliseconds() / 1000 * 2 ) -- the data object passed to the callback function contains: -- texture, size, color, offset end ) end -- if we are somewhere else or Sharpfang is not around and... else -- if an icon has been created before... if MY_ICON then -- discard the icon OSI.DiscardPositionIcon( MY_ICON ) MY_ICON = nil end end end end ) end )
function OSI.AddCustomIconPack( icons )
local ADDON_NAME = "MyAddonName" local MY_TEXTURES = { "myaddonname/myiconpath/myicontexture-1.dds", "myaddonname/myiconpath/myicontexture-2.dds", "myaddonname/myiconpath/myicontexture-3.dds", } EVENT_MANAGER:RegisterForEvent( ADDON_NAME, EVENT_ADD_ON_LOADED, function( _, addonName ) if addonName ~= ADDON_NAME then return end EVENT_MANAGER:UnregisterForEvent( ADDON_NAME, EVENT_ADD_ON_LOADED ) -- check if OdySupportIcons is active and supports custom icon packs if OSI and OSI.AddCustomIconPack then -- add your list of icons OSI.AddCustomIconPack( MY_TEXTURES ) end end )
function OSI.AddUniqueIconPack( icons )
local ADDON_NAME = "MyAddonName" local MY_TEXTURES = { ["@SomePlayer"] = "myaddonname/myiconpath/myiconforsomeplayer.dds", ["@AnotherPlayer"] = "myaddonname/myiconpath/myiconforanotherplayer.dds", } EVENT_MANAGER:RegisterForEvent( ADDON_NAME, EVENT_ADD_ON_LOADED, function( _, addonName ) if addonName ~= ADDON_NAME then return end EVENT_MANAGER:UnregisterForEvent( ADDON_NAME, EVENT_ADD_ON_LOADED ) -- check if OdySupportIcons is active and supports unique icon packs if OSI and OSI.AddUniqueIconPack then -- add your list of icons OSI.AddUniqueIconPack( MY_TEXTURES ) end end )
File Name |
Version |
Size |
Uploader |
Date |
1.8.0 |
247kB |
ExoY |
02/05/23 03:48 AM |
|
1.7.0 |
247kB |
ExoY |
06/15/22 05:34 PM |
|
1.6.5 |
248kB |
ExoY |
07/13/21 12:45 PM |
|
1.6.4 |
248kB |
Odylon |
07/05/21 12:33 PM |
|
1.6.3 |
247kB |
Odylon |
06/29/21 12:19 PM |
|
1.6.2 |
246kB |
Odylon |
06/05/21 11:09 AM |
|
1.6.1 |
245kB |
Odylon |
05/22/21 09:51 AM |
|
1.6.0 |
244kB |
Odylon |
05/13/21 10:20 AM |
|
1.5.6 |
336kB |
Odylon |
04/10/21 01:02 AM |
|
1.5.5 |
312kB |
Odylon |
03/18/21 03:36 AM |
|
1.5.4 |
262kB |
Odylon |
01/03/21 04:06 AM |
|
1.5.3 |
245kB |
Odylon |
11/12/20 01:45 PM |
|
1.5.2 |
245kB |
Odylon |
11/09/20 11:34 AM |
|
1.5.1 |
245kB |
Odylon |
11/09/20 10:55 AM |
|
1.5.0 |
245kB |
11/09/20 03:08 AM |
Comment Options |
Kyzeragon |
View Public Profile |
Send a private message to Kyzeragon |
Find More Posts by Kyzeragon |
Add Kyzeragon to Your Buddy List |
Frénézik |
View Public Profile |
Send a private message to Frénézik |
Find More Posts by Frénézik |
Add Frénézik to Your Buddy List |
07/13/21, 12:46 PM | ||
|
|
|
|
Odylon |
View Public Profile |
Send a private message to Odylon |
Find More Posts by Odylon |
Add Odylon to Your Buddy List |
07/13/21, 08:27 AM | |
The new version saved not the custom/unique icons in Friends List + Guild Rooster to SavedVeriable. By the last version 1.6.3 it's all ok.
Last edited by Schrappe : 07/13/21 at 08:33 AM.
|
|
|
Schrappe |
View Public Profile |
Send a private message to Schrappe |
Find More Posts by Schrappe |
Add Schrappe to Your Buddy List |
07/06/21, 02:43 AM | |||
Re: Re: Label on icon
|
|||
|
Kyzeragon |
View Public Profile |
Send a private message to Kyzeragon |
Find More Posts by Kyzeragon |
Add Kyzeragon to Your Buddy List |
07/05/21, 01:35 PM | ||
|
Re: Label on icon
|
|
|
Odylon |
View Public Profile |
Send a private message to Odylon |
Find More Posts by Odylon |
Add Odylon to Your Buddy List |
07/05/21, 01:31 PM | ||
|
Re: Custom icons
If you'd simply copy your own icons into the folder, you'd have to change them everytime the addon gets updated... |
|
|
Odylon |
View Public Profile |
Send a private message to Odylon |
Find More Posts by Odylon |
Add Odylon to Your Buddy List |
07/01/21, 03:43 PM | |
Label on icon
Hi, me again with another annoying request Would you consider adding an optional text label to the API for creating mechanic/position icons? So it would be easier to write text in addition to the icon (or even only have text and no icon). I know Qcell's Rockgrove Helper already does this by anchoring an extra label to the icon's control, but I think having it built-in might be useful in many cases like for displaying timer countdown or distance to the target, etc.
If you consider it, I think potentially having the param take in either an initial string OR a function that returns a string would be handy for updating itself on every poll, instead of having to set it externally, though that probably means the function can't be too heavy... hmm. |
|
|
Kyzeragon |
View Public Profile |
Send a private message to Kyzeragon |
Find More Posts by Kyzeragon |
Add Kyzeragon to Your Buddy List |
06/29/21, 11:10 PM | |||
Re: Re: Dead group member icon
|
|||
|
Kyzeragon |
View Public Profile |
Send a private message to Kyzeragon |
Find More Posts by Kyzeragon |
Add Kyzeragon to Your Buddy List |
06/29/21, 04:53 PM | |||
Re: Re: Ally icon options
|
|||
|
Anceane |
View Public Profile |
Send a private message to Anceane |
Send email to Anceane |
Find More Posts by Anceane |
Add Anceane to Your Buddy List |
06/29/21, 02:27 PM | |
Forum posts: 0
File comments: 2
Uploads: 0
|
Custom icons
Can we make custom icons ourselves and place it into the icon folder as dds?
|
|
xJustWolfx |
View Public Profile |
Send a private message to xJustWolfx |
Send email to xJustWolfx |
Find More Posts by xJustWolfx |
Add xJustWolfx to Your Buddy List |
06/29/21, 01:31 AM | ||
|
Re: Dead group member icon
Edit: As of version 1.6.3 you can now define different colors for the icons of dead group members currently beeing resurrected or with pending resurrections. This only works when the option to use the dead player icon is active and won't change any colors if other icons are shown. I am still planning to feature role overlays for dead player icons so you can distinguish dead tanks, healers and damage dealers.
Last edited by Odylon : 06/29/21 at 12:28 PM.
|
|
|
Odylon |
View Public Profile |
Send a private message to Odylon |
Send email to Odylon |
Find More Posts by Odylon |
Add Odylon to Your Buddy List |
06/29/21, 01:29 AM | ||
|
Re: Ally icon options
Edit: As of version 1.6.3 you can now define different icons to Bastian and Mirri.
Last edited by Odylon : 06/29/21 at 12:23 PM.
|
|
|
Odylon |
View Public Profile |
Send a private message to Odylon |
Send email to Odylon |
Find More Posts by Odylon |
Add Odylon to Your Buddy List |
06/28/21, 04:52 PM | ||
Forum posts: 0
File comments: 9
Uploads: 0
|
Re: Dead group member icon
|
|
|
filipv |
View Public Profile |
Send a private message to filipv |
Send email to filipv |
Find More Posts by filipv |
Add filipv to Your Buddy List |
06/28/21, 10:40 AM | |
Dead group member icon
Thank you for the addon, it's a great utility! I used it to draw icons above people who are safe to stack on for Focus Fire
Just one suggestion I'd be interested in seeing: would you change the dead group member icon based on the status of their resurrection? Like this image from TeamFormation, where the dead person is the black skull with red outline, the same as your addon has now. But when someone is in the process of resurrecting them, change it to black with white outline, and when the rez is pending, change to white with black outline. No worries if you don't have time, I might look into adding it myself so I can entirely replace TeamFormation since I really only use that for locating rezzes |
|
|
Kyzeragon |
View Public Profile |
Send a private message to Kyzeragon |
Send email to Kyzeragon |
Find More Posts by Kyzeragon |
Add Kyzeragon to Your Buddy List |