PTS 2.7.2 - Effects longer than 30 sec now act same as less than 30 sec.
Quote:
So no more checking if other player has mundus stone equipped, no more checking if someone has food/drink active or is a werewolf/vamp? |
I was honestly expecting a lot more collateral damage from their attempt to nerf Miat's addon. Hopefully they don't do anything else.
|
If double/triple/more mundus exploit comes back (again) for third or maybe fourth time (since its back again) it will be much harder for players to discover it or find potential exploiters...
|
I can confirm that on PTS GetNumBuffs('reticleover') and consequenty GetUnitBuffInfo('reticleover', index) return nothing. EVENT_EFFECT_CHANGED is not registered for them as well.
I think i should say sorry about that:) |
Quote:
|
Quote:
And really a mild disturbance compared to some other things that can be done with API. In my opinion PVP in this game needs more transparency, in the end what addons can do, besides presenting the information in easier to understand manner? |
This restriction is only for pvp or even now for pve ?
Thinking about the Jgroup that is a great addon that help the leader to check if everyone has food for example If pve is concerned by this then i am sorry to say that it is really silly to create addons for pvp knowing they will bring problems and limitations for pve as a result, just to help some ego-pvp to feel better .... |
Quote:
|
Quote:
They just forgot to apply consistent treatments to all the buffs. Now they did, and believe me pvp suffered much more than pve from this. |
We are looking at some changes to this ruleset before it goes live that still address the PvP concerns but allow PvE buff addons to continue to work.
|
Quote:
This change obviously severely limits the features of my addon. Can i (we) get an official stance on which parts of the addon are not desirable within ZOS design direction? Even after the change i have some ideas how to still get the info i need for the addon to work. This will be noticeably more cumbersome and unreliable (probably) though. In any case my intention is NOT to start an arms race with you guys. And i don't really want to spend hours of developing an intricate system to circumvent this change only to realize you will counter it with some other change:) So, please, tell me which features are fine to have within your vision and which features will get an active countermeasures from you? Thank you, PS. Chip, in 5-10 min i'll PM you an exploit, that i found, that is very much possible with the current API. It technically allows to automate almost any players actions and CONDITIONALLY call protected and PRIVATE functions even when in combat. Cheers:) |
Quote:
|
Quote:
2. What i have as an idea is to somehow get the UnitId to UnitName link from "reticleover", since you patched getting that from EVENT_EFFECT_CHANGED. Now the question is - if i'll be able to find a way of doing that it, will it technically be within the paradigm of "not allowing you to detect the presence or actions of a hostile player without having to see them" even though the addon will keep track of them by unitId after the initial recognition has happened? This way for anybody to be tracked by the addon the player will need to manually mouseover them. So, if i'll be able to perform this, will it still be against the paradigm?:) And if not, will you be able to provide a fucntion to GetUnitIdFromReticleOver() then to make it considerably easier for me? Thank you! |
Quote:
As far as saving off the name of units as you reticle over them, that sounds fine since the player has to target them in some fashion. What would you need the unit id for in this new system? |
Question : so any player you have targeted once, if going stealth, would still be tracked by your addon ?
Quote:
|
Quote:
The only thing that is left is reticleover target buff info. Right now on pts this info is blank. Was that the intended decision or a collateral result of not supplying buff info to addons through the events? In my mind even though these buffs might not have been cast by you, having this information on reticleover fully falls into the "not allowing you to detect the presence or actions of a hostile player without having to see them" doctrine. After all you can visually see most if not all of those buffs, so it feels consistent to allow addons to get the target buffs information from reticelover target only. What is your stance on this part? Quote:
Quote:
Quote:
|
Quote:
Sorry about breaking your addon. |
Quote:
Quote:
Quote:
On a side note, please consider posting the results of the investigation of the exploit i PM-ed you, when you find the time. Addon's authors need to know if/that they can't use it in addons, until you fix it (i doubt you will allow it to be like it is now). |
Quote:
|
Quote:
|
Made a post earlier over on the ESO forums about this, though it might be a bit irrelevant at this point: https://forums.elderscrollsonline.co...log-pts#latest
Am I to understand that its now the future intention for us not to be able to see hostile player buffs and debuffs any longer? But once again we'll be able to see passive PVE mob buffs like "Scary Immunities" and buffs on players? Also I have an inquiry about detecting events: For developing LUI I've been making a comprehensive spreadsheet of all abilities (https://docs.google.com/spreadsheets...it?usp=sharing - it's a bit hard to read atm because I'm using it to keep track of my workflow) and how they interact by using Srendarr to detect events going on in the worldspace. Srendarr simply provides a chat printout of any ability usage that occurs and due to API limitations will only show the source/target if the player is one of those. I use OnCombatEvent currently for LUI to create "fake aura" buffs/debuffs for attacks in game that don't correctly show an active effect - by tracking events sourced from a target onto the player. When an ability is applied and detects a valid source NPC applying it to the player it creates a buff container, and when it is removed it sees no source removing it from the player - destroying the container, effectively allowing me to create accurate fake buffs that apply and fall off correctly when removed or cleansed. As it stands I could easily make an addon that notifies me of a player using any ability targeting me via OnCombatEvent as well - or to simply alert me to stealthed nearby players. I understand you are likely going to limit this functionality - and if so would you potentially be able to limit that functionality to only stealthed targets or only inside Cyrodiil. I'd appreciate still being able to see events that NPC's are performing to other targets. |
I was wondering about the scope of the planned changes to ACTION_RESULT_BEGIN--how narrow or broad will they be?
As an example, Raid Notifier uses this to warn players of an incoming eclipse field in vMoL, and for players whose systems have difficulty rendering the visual effects in a timely manner, these sorts of warnings can be quite invaluable. |
Quote:
|
Quote:
if you still keep sending these 2, with blank sourceName and sourceId (like it is right now on live), but with targetName and abilityId only (no need for targetId) i'll still be able to provide Kill Feed without compromising privacy of these players in a fashion it happens right now. I'll just need these 2 (ACTION_RESULT_KILLING_BLOW, ACTION_RESULT_DIED_XP) and targetName and abilityId for anybody dying in pvp. One of the reasons i'm asking for this is that if you stop sending them all, there will be no way to know if the guy you're attacking died unless your attack was the killing blow. Could you discuss it with the design team? Cheers. PS. Btw, kills from Ballista are reported as Ballista's kills instead of the player's kills. Could you take a look at this as well?:) Edit: Or even with sourceName as well, without sourceId:) |
Quote:
|
Quote:
I'm making sure i understand the design choice correctly and that the design is against giving everybody's names even in these events only. Ps. Even if this is all the design agrees to provide, it's still a lot and thank you, guys, for this. |
Very nice thread. I like having a little insight into those issues.
Quote:
|
So it seems now that buff tracking addons pick up EVERY buff that is under 30 sec. Im seeing every other players curses, endless hails, blockades, everything....
To keep Srendarr functional ill have to add like 50 buffs to blacklist to stop them from showing (because they are not mine). |
Quote:
|
Quote:
but it would be good to know it this change is intended as it is right now. If it is intended to stay it would be really helpful if there was an indication who caused a particular effect in EVENT_EFFECT_CHANGED. It would be enough to know if the player caused it or not. (It is done like this in GetUnitBuffInfo(...) however this one requires a unittag which is not always available) |
|
Quote:
self.control:AddFilterForEvent(EVENT_EFFECT_CHANGED, REGISTER_FILTER_UNIT_TAG, "player") EVENT_MANAGER:AddFilterForEvent("Name", EVENT_EFFECT_CHANGED, REGISTER_FILTER_UNIT_TAG, "player") |
Quote:
A common use on buff trackers is to get the uptime of your dot's or debuffs and recast them when necessary. The change made this a bit harder Though I'm considering to use EVENT_COMBAT_EVENT with the results ACTION_RESULT_EFFECT_GAINED, ACTION_RESULT_EFFECT_GAINED_DURATION, ACTION_RESULT_EFFECT_FADED instead to track effects since you have source and target info there. There are just many dummy events that need to be taken care of |
For now I use the following replacement:
Lua Code:
Here CMX.onEffectChanged is the function that used to take on the Event EVENT_EFFECT_CHANGED It tracks a bit more (like all dots are shown as a debuff as well) but at least for my usecase it's quite good. For buff trackers there might be issues as some buffs only have "gained" events. Note that for EVENT_COMBAT_EVENT it is good to use the "player" filter via the AddFilterForEvent function. This is because Combat events have both source and target which means that the event will be fired when at least one of them is the player, which works nicely. As I wrote before doing the same with EVENT_EFFECT_CHANGED will limit it to buffs/debuffs that are active on the player only. One Drawback though: As you can see by that bufftype line, you cannot differentiate easily between buffs and debuffs I'm going to test this for a bit. |
Ah, I see your point about knowing if the player was the source. I can add a new boolean field to the event: sourceIsPlayer. Between this and checking the duration you should be able to recreate to previous rules which filtered out all effects under 30s duration that didn't come from or target the player.
|
Quote:
|
Quote:
|
Quote:
|
\o/ excellent!
|
Quote:
|
Quote:
|
What at first glance seemed like it would be a major loss has turned out to be a gain for 90% of modding purposes. Thanks Chip, for taking the time to listen to our concerns and for making the stuff that matters work even better.
Since these changes are still "in the oven" so to speak, I thought it pertinent to revisit a request I posted on the ZOS forums some months back. Specifically, might it be possible to return persistent, unique, non-player unitID information to EVENT_RETICLE_TARGET_CHANGED? Right now for Srendarr I am using a table built on the fly based on the NAME of the target, to keep track of debuffs not returned by GetUnitBuffInfo(). Starting at line 353 in AuraControl.lua:
Warning: Spoiler
However this is obviously limited as mobs will frequently be in packs where they all share the same name (Vicious Mudcrab, Crazy Cultist, etc.) Having a unique identifier that is semi-persistent (phase/shard-specific until death?) would allow proper multi-unit debuff tracking. I could easily enough code a cleanup function based on timestamps, so anything that didn't have any buff info within say a 30sec window would be purged on reticle target change. Thanks again! EDIT: I see that EVENT_EFFECT_CHANGED already has a unitId interger but it always returns nil is that correct? Also EVENT_COMBAT_EVENT seems to return an actual value. Is this actionable? How is persistence determined for example for the unitId returned for the player? |
Quote:
Hi Chip, Any chance this will go live with tonight's patch? |
Quote:
|
Quote:
EDIT: Has this gone live on the current PTS? |
Quote:
Quote:
unitId returns proper numbers for me. The thing is it returns the id of "target" so it refers to the same entity as unitName and unittag. The new parameter will refer to the source which allows us to seperate effects cast by the group from the ones cast by the player. Unitids are supposed to be persistent as long as the entity is known to the client. Which for groupmembers should be as long as everyone is in the instance (and doesn't port to another location). For other enemies it should be valid at least as long as they are visible. These are just some guesses of mine but at least should give an idea. The least I can say is that they are persistent during a fight. |
@ZOS_ChipHilseberg
Would it be possible to add unitID to the values returned for GetUnitBuffInfo('unit', i), if if not that, then have a new function GetUnitID('unit') that would return this information? This would allow proper multi-target debuff tracking in Srendarr. |
Quote:
Lua Code:
Maybe this helps? |
Quote:
To reliably keep track of for example taunts on multiple targets you need the unitID. You can "guess" based on health values but this isn't really that reliable as they can change rapidly. |
Quote:
|
Quote:
I guess I should say, that it won't work without unitID for buffs/debuffs that aren't returned by GetUnitBuffInfo(). This includes enchant procs like Crusher, certain abilities like Trap Beast, set procs, and I had thought taunts but apparently those do show up. Still it's a good solution for most cases. Srendarr already uses GetUnitBuffInfo() on EVENT_RETICLE_TARGET_CHANGED to populate the debuff frame. I just had to use the imperfect name tracking method for those cases where as I said, the buff/debuff is one that is not returned by GetUnitBuffInfo(). That is where returning unitID from GetUnitBuffInfo('unit', i) as well, or having a new function GetUnitID('unit'), would be really helpful. Because the name method is imperfect to catch these cases. |
Quote:
|
From the patch notes:
Quote:
|
Possible EVENT_EFFECT_CHANGED castByPlayer values (thanks Ayantir):
Code:
COMBAT_UNIT_TYPE_NONE = 0 |
Quote:
|
Quote:
your own effects return 1 (obviously) but other players return 5 when not grouped with the player and 3 when grouped with the player. I did this with a friend casting wall of elements/liquid lightning in open world. Incase it helps someone :) |
Quote:
|
All times are GMT -6. The time now is 10:42 AM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI