vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1  
2 1/ Quick CCWatch insight
3  
4 With the addition of the "ALL TARGET", and "Last Targets" monitoring, CCWatch has a side effect change behavior.
5 StunWatch originally focused on YOUR effects on your current target, trying to sort it between same target names with a specific event : UNIT_AURA.
6 It means it checked for the "Texture" (that is the icon of the effect) to be present on your current target when an aura (buff/debuff) change occured on it, to avoid overlapping effect on your target if another mob with the same name was affected in the surroundings.
7 CCWatch inherited this behaviour, and specialization on your CC.
8 The texture compared are only the ones in your spellbook, hence if you are a warlock you won't be able to check that a druid CC effect is present on your target,
9 hence letting think CCWatch that the effect is already gone, or that retargetting has occured.
10 (Well in fact it's theory, because a side effect in SW code made that if the effect is supported but you don't have the skill, hence have no texture, it will be happy with a nil comparison.
11 Quite a few CCWatch effects use this side effect, when the skill name is different from the effect name.
12 Again, from a Rogue only point of view it was ok.)
13  
14 Anyway, in the two new cases, the monitoring of surrounding effects, this precise check is bypassed, as now the monitoring occurs on whatever (in case of "Last Targets" from the list of the most recent target (up to 5)).
15  
16 This means that in case of multiple mobs with same name, broken effects on one might break the effect the current another, because there is no way to identify a target between two of the same name (no pop ID or whatever), which SW would have obsviously used already.
17  
18 2/ Basic Custom effects
19  
20 CCWatch now has a 'learn' capability.
21 Next versions might have an option for a mode with 'autolearn' new effects, that is, something that will ask you at the end of a fight if you want to add effects it seen.
22 (Some kind of easy effect name and possibly duration setting. Don't know if it worth the hassle...).
23  
24 For now, you can with the "/ccw config" dialog use the Learn tab to change existing effects (with moderation, see below), or add new ones.
25 CCWatch now has 3 effects categories :
26 - CC (original one)
27 - Debuff
28 - Buff
29 That is, 3 pack of 5 bar to place anywhere on the screen.
30  
31 Hence, you might add a new effect with its name, duration, type, group (ie: bar number) and diminishing return type (atm set to player only).
32 You can also remove or edit effect added or already existing.
33 Note that this learn interface is basic, and do not allow you advanced stuff such as different ranks handling or talent skill modification (such as increased durations).
34 Its purpose is to allow you to define effects that will suit YOU.
35 If you change the duration of genuine CCWatch effects relying on ranks it will just have no effect, has the duration come from a different source.
36 So don't bother doing it, even if atm there is no hint in the GUI to difference them.
37  
38 With this you are able to define effect suiting your character, that is setting an absolute duration, whatever your rank is.
39 Be careful tho, that effects are cross characters, which is a benefit for global target effect so you don't redefine them for each character you play,
40 but is a pain if you want to add a skill several character share at different ranks, because every skill redefinition with override each other.
41  
42 If you want to add more flexible effects, you have to make it manually; here is how to do :
43  
44 3/ Advanced Custom Effects
45  
46 To add an effect, the most basic thing to do is :
47 - Create a string in "localization.lua" (and/or in localization.xx.lua)
48 - Copy/paste an already defined skill in "CCWatch_ConfigCC.lua"
49  
50 for instance, I want to add a skill "Uber stun" which have a duration of 25 seconds.
51  
52 CCWATCH_UBERSTUN = "Uber Stun Effect"
53  
54 Copy/paste this :
55 CCWATCH.CCS[CCWATCH_GOUGE] = {
56 GROUP = 2,
57 ETYPE = 0,
58 LENGTH = 5.5,
59 DIMINISHES = 2,
60  
61 TARGET = "",
62 PLAYER = nil,
63 TIMER_START = 0,
64 TIMER_END = 0,
65 DIMINISH = 1,
66 MONITOR = true
67 }
68  
69 and change into :
70 CCWATCH.CCS[CCWATCH_UBERSTUN] = {
71 GROUP = 2, -- Might want to change default bar used
72 ETYPE = 0, -- Type CC (see at the begining of the file for details)
73 LENGTH = 25, -- Duration
74 DIMINISHES = 2,
75  
76 TARGET = "",
77 PLAYER = nil,
78 TIMER_START = 0,
79 TIMER_END = 0,
80 DIMINISH = 1,
81 MONITOR = true
82 }
83  
84 And that's done.
85  
86  
87 Now, and for the rank problem already related, there might be some typical problem at adding/changing/localizating an effect, because a talent/effet might :
88 1/ have an effect string different from its name
89 2/ have a duration increased by a specific talent
90 3/ have several ranks
91  
92 If there is no 3/, the 1/ is no bother. The string in CCWatch will just be the effect name and not the skill name, as seen in the example above.
93 If there is a 3/ and a 1/, then 2 strings will be needed in "localization.lua", and a rank array will need to be added in "CCWatch_Globals.lua".
94 See the Hunter "Freeze Trap" (spell) and "Freeze Trap Effect" (effect string) case.
95  
96 In our case, say "Uber Stun" has 3 ranks of 15, 20 and 25 seconds :
97 CCWATCH_UBERSTUN_SPELL = "Uber Stun"
98 CCWATCH_UBERSTUN = "Uber Stun Effect"
99  
100 and in CCWatch_Globals.lua :
101 Copy/paste this :
102 CCWATCH_SPELLS[CCWATCH_SAP] = {
103 RANKS = 3,
104 DURATION = {25, 35, 45}
105 }
106  
107 into this :
108 CCWATCH_SPELLS[CCWATCH_UBERSTUN_SPELL] = {
109 RANKS = 3,
110 DURATION = {15, 20, 25},
111 EFFECTNAME = CCWATCH_UBERSTUN -- this line is needed for the target only mode in SW compatibility (texture comparison behavior)
112 }
113  
114 Now, if ever there is a 2/, it is far more painful as a specific function in CCWatch.lua will be needed.
115 Say we have a talent, in page 2 of or talent book, which is the 10th cell (counting talent from upper left corner),
116 and that one point in this talent improve the rank by 30%, and the next one by 10% (hence giving 30, 40, 50, ...).
117 Copy/Paste :
118 function CCWatch_UpdateImpTrap(bPrint)
119 local talentname, texture, _, _, rank, _, _, _ = GetTalentInfo( 3, 7 );
120 if texture then
121 if rank ~= 0 then
122 if bPrint then
123 CCWatch_AddMessage(talentname.." "..CCWATCH_RANK.." "..rank.." "..CCWATCH_DETECTED);
124 end
125 CCWATCH.CCS[CCWATCH_FREEZINGTRAP].LENGTH = CCWATCH.CCS[CCWATCH_FREEZINGTRAP].LENGTH * (1 + rank * 0.15);
126 end
127 end
128 end
129  
130 into :
131 function CCWatch_UpdateImpUberStun(bPrint)
132 local talentname, texture, _, _, rank, _, _, _ = GetTalentInfo( 2, 10 );
133 if texture then
134 if rank ~= 0 then
135 if bPrint then
136 CCWatch_AddMessage(talentname.." "..CCWATCH_RANK.." "..rank.." "..CCWATCH_DETECTED);
137 end
138 CCWATCH.CCS[CCWATCH_UBERSTUN].LENGTH = CCWATCH.CCS[CCWATCH_UBERSTUNP].LENGTH * (1.20 + rank * 0.10 );
139 end
140 end
141 end
142  
143 And you need to add a call to these functions in the CCWatch_UpdateClassSpells function in CCWatch.lua :
144  
145 Locate your class (if not present add the english capsed if comparison (for shaman it would be 'if eclass == "SHAMAN").
146 Add the line
147 CCWatch_GetSpellRank(CCWATCH_UBERSTUN_SPELL, CCWATCH_UBERSTUN, bPrint);
148 CCWatch_UpdateImpUberStun(bPrint);
149  
150 Then at any update call or initialization, it will retrieve the correct rank duration, and then applies the talent modification to it.