-
Contributor
[Movable] Clone Tracker
[Tested and developed with TurboHUD verson 20.11.19.1, API version 9.2]
Here's an early draft of my CloneTracker plugin for the Season 22 Shadow Clones theme. It shows countdown bars by the minimap (movable*), class-color-coded circular countdown timers at the feet of the clones, and corresponding minimap icons. You can choose to show only the clones for your class+gender** (default), or everyone's clones (set ShowAllClones = true on line 33 of CloneTracker.cs).
* Requires the Movable plugins system to be installed too, and it is included in the download. Please see my thread about the Movable plugin system for more information about how to use it to drag the countdown bars around your screen or hide it.
** Clones are linked to the player who activated the shrine/pylon, so I couldn't think of a more specific way to highlight only your clones.
DOWNLOAD
Clonetracker-Dec-03-2020.zip
INSTALLATION
Put the files and folders here:
TurboHUD \ plugins \ Razor \ Click \ (required for Movable plugins system)
TurboHUD \ plugins \ Razor \ Movable \ (required for Movable plugins system)
TurboHUD \ plugins \ Razor \ Seasonal \ CloneTracker.cs
TurboHUD \ plugins \ Razor \ Seasonal \ GroundFixedTimerDecorator.cs
CHANGELOG
- Dec 03 - added proximity warning labels to shrines for those who want to wait for their teammates before activating
- Nov 29 - fixed excessive grid drawing in MovableController.cs
- Nov 28 - updated CloneTracker.cs to fix clone timers resetting when changing worlds
- Nov 25 - updated CloneTracker.cs to fix clone timers from being reset when transitioning between stitched areas (typically encountered in a few adventure mode areas)
- Nov 23 (evening) - rewrote ClickEventHandler.cs to potentially eliminate mouse state desync on TH startup
- Nov 23 (morning) - updated CloneTracker.cs to fix ShowAllClones filtering behavior (was showing the wrong states when either true or false)
Last edited by Razorfish; 12-04-2020 at 01:25 AM.
Reason: updated download
-
Post Thanks / Like - 12 Thanks
mois,
d3snorter,
TobiaSBooN,
Wasted75,
JohnWick,
xblade2k7,
RNN,
Saico,
731113,
Stormreaver,
LittleDez13,
HoaryWitch (12 members gave Thanks to Razorfish for this useful post)
-
Contributor
I just updated the download link in the first post to fix the clone filtering, ShowAllClones (both settings, true and false were incorrect previously).
The only updated file is:
TurboHUD \ plugins \ Razor \ Seasonal \ CloneTracker.cs
-
Post Thanks / Like - 1 Thanks
LittleDez13 (1 members gave Thanks to Razorfish for this useful post)
-
Contributor
Updated the download link in the first post with a couple of fixes since the last time I mentioned an update:
- fixed clone timers from being reset when transitioning between stitched areas (typically encountered in a few adventure mode areas)
- rewrote ClickEventHandler.cs to potentially eliminate mouse state desync on TH startup
The updated files are:
TurboHUD \ plugins \ Razor \ Click \ ClickEventHandler.cs
TurboHUD \ plugins \ Razor \ Seasonal \ CloneTracker.cs
-
Post Thanks / Like - 1 Thanks
LittleDez13 (1 members gave Thanks to Razorfish for this useful post)
-
Contributor
Really nice, I will download now.
I made a small plugin based on your earlier post and results, but I was wondering, how did you manage to get around the actor timer reseting on movement?
Last edited by Stormreaver; 11-25-2020 at 01:40 AM.
-
Post Thanks / Like - 1 Thanks
LittleDez13 (1 members gave Thanks to Stormreaver for this useful post)
-
Contributor
Originally Posted by
Stormreaver
I made a small plugin based on your earlier post and results, but I was wondering, how did you manage to get around the actor timer reseting on movement?
I keep track of the IActor.CreatedAtInGameTick value when the clone is first seen, and created a new type of GroundTimerDecorator (named it GroundFixedTimerDecorator) that allows me to optionally specify the CreatedAtInGameTick value when the plugin invokes the decorator to draw a countdown...seemed simpler than duplicating its drawing code in my plugin.
-
Post Thanks / Like - 1 Thanks
LittleDez13 (1 members gave Thanks to Razorfish for this useful post)
-
Contributor
Nice ... I also was thinking of making a fixed countdown timer of 60s tied to the actor, but I just did not know how to :P
-
Post Thanks / Like - 1 Thanks
LittleDez13 (1 members gave Thanks to Stormreaver for this useful post)
-
Legendary
Currently, when changing areas, the createdAtInGameTick is not reset normally, but it does when you are in Rift / GRift (if you change area and come back) . This problem comes from trying to detect when they die, for this you can use this although it seems strange (monster?):
Code:
public class CloneTracker : BasePlugin, IMovable, INewAreaHandler , IAfterCollectHandler, IInGameWorldPainter, IMonsterKilledHandler
{
....
public void OnMonsterKilled(IMonster monster)
{
if (Clones.ContainsKey(monster.AnnId))
{
Clones.Remove(monster.AnnId);
//Hud.Sound.Speak("A clone has died");
}
}
}
and you could remove all Clones.Remove() except for the check: if (timeElapsed > 61f) // 60 + 1 time death
Last edited by RNN; 11-27-2020 at 05:20 PM.
-
Post Thanks / Like - 3 Thanks
-
Contributor
I came to report that timer resets when leaving and reentering the rift, but RNN did that
-
Post Thanks / Like - 1 Thanks
LittleDez13 (1 members gave Thanks to Stormreaver for this useful post)
-
Contributor
@RNN and @Stormreaver Thanks for all the tips and info for fixing the issue, I never even though to use IMonsterHandler or check the buff indices of the community buff!
I just updated the download link in the first post to fix clone timers resetting when you leave and then return to a world.
The only updated file is:
TurboHUD \ plugins \ Razor \ Seasonal \ CloneTracker.cs
Last edited by Razorfish; 11-28-2020 at 07:28 PM.
-
Post Thanks / Like - 2 Thanks
-
Member
Hi Razorfish!
First of all thank you very much for your great plugin.
Is it possible to include a visual and / or audible alert warning when all players are close enough to the pillon to generate all the clones? I have seen many eager supports that touch the pillon as soon as they see it, without everyone being close to it, and so we are left without some of the possible clones. I believe it would be a good addition to your already excellent plugin.
Hugs...
by LittleDez13
-
Contributor
Originally Posted by
LittleDez13
Is it possible to include a visual and / or audible alert warning when all players are close enough to the pillon to generate all the clones? I have seen many eager supports that touch the pillon as soon as they see it, without everyone being close to it, and so we are left without some of the possible clones.
Thanks, I just updated the plugin with your feature request. It took me a little while of testing to guesstimate the range for cloning to occur (much shorter than the range at which you get a shrine or pylon buff, unfortunately)... Seems to be <120 yds from the player who activated the shrine/pylon (not quite centered on the shrine itself). So what I did was add a label on the shrine itself with the names of the out-of-range players, based on their proximity to the shrine until you get within 12 yds of the shrine, then it switches to showing the players out of range of you (as if you are going to activate the shrine).
To turn this feature off, set ShowProximityWarning to false (line 37).
I also included a little fix to MovableController.cs...I finally realized that the Edit Mode grid was being (re)drawn too many times, once for each Movable plugin, woops! The grid lines should be much more subtle looking now.
The download in the first post has been updated. The changed files are:
plugins / Razor / Movable / MovableController.cs
plugins / Razor / Seasonal / CloneTracker.cs
Last edited by Razorfish; 12-04-2020 at 01:43 AM.
-
Post Thanks / Like - 3 Thanks
-
Member
Originally Posted by
Razorfish
Thanks, I just updated the plugin with your feature request. It took me a little while of testing to guesstimate the range for cloning to occur (much shorter than the range at which you get a shrine or pylon buff, unfortunately)... Seems to be <120 yds from the
player who activated the shrine/pylon (not quite centered on the shrine itself). So what I did was add a label on the shrine itself with the names of the out-of-range players, based on their proximity to the shrine until you get within 12 yds of the shrine, then it switches to showing the players out of range of you (as if you are going to activate the shrine).
To turn this feature off, set ShowProximityWarning to false (line 37).
I also included a little fix to MovableController.cs...I finally realized that the Edit Mode grid was being (re)drawn too many times, once for each Movable plugin, woops! The grid lines should be much more subtle looking now.
The download in the first post has been updated. The changed files are:
plugins / Razor / Movable / MovableController.cs
plugins / Razor / Seasonal / CloneTracker.cs
Hi Razor.
Thanx for update!!!
-
Member
Hello Razor.
Is it possible to make a simple plugin or code that shows who took the pylon or shrine? Without clones
Best Regards
Romanmas
-
Active Member
Originally Posted by
Romanmas
Hello Razor.
Is it possible to make a simple plugin or code that shows who took the pylon or shrine? Without clones
Best Regards
Romanmas
I was thinkin about a plugin like this recently
-
Contributor
Originally Posted by
Romanmas
Is it possible to make a simple plugin or code that shows who took the pylon or shrine? Without clones
Clones make it simple to check who took a shrine because their summoner is the person who hit the pylon/shrine. I don't think it would be straightforward to implement without that, but it may be possible to make an educated guess about who hit a pylon or shrine based on their known proximity to a marker on the map while checking your buff state.
Buff refreshes can probably be detected by keeping track of duration remaining, and if it increases instead of decreasing, to detect pylon/shrine activations.
Since IMarker.IsUsed doesn't work for shrines (not sure if it works for pylons either), what should be done in the rare case when there are two of the same shrines on the world/level, and there are players in activation proximity (which is something to determine) of both?
Those are the first few things that came to mind when considering writing such a plugin.