Mercurial > wow > degaine
comparison Degaine.lua @ 14:c627cef1c6d6 v1.0beta2
Lots of hacks for merchants and gossips
author | contrebasse |
---|---|
date | Fri, 10 Dec 2010 18:22:56 +0100 |
parents | 7b1f3a9cba48 |
children | c83103057b7a |
comparison
equal
deleted
inserted
replaced
13:7b1f3a9cba48 | 14:c627cef1c6d6 |
---|---|
7 --------------------------------------------------------------- | 7 --------------------------------------------------------------- |
8 -- If you stand up by jumping or walking it won't draw your weapon | 8 -- If you stand up by jumping or walking it won't draw your weapon |
9 -- (it's not possible to know if you were sitting or standing before) | 9 -- (it's not possible to know if you were sitting or standing before) |
10 | 10 |
11 --@debug@ | 11 --@debug@ |
12 local debug = true | 12 local debug = false |
13 --@end-debug@ | 13 --@end-debug@ |
14 | 14 |
15 | 15 |
16 --------------------------------------------------------------- | 16 --------------------------------------------------------------- |
17 -- Globals to local | 17 -- Globals to local |
18 --------------------------------------------------------------- | 18 --------------------------------------------------------------- |
19 -- These need to be globals | 19 -- These need to be globals |
20 -- GLOBALS: Degaine_ToggleAuto, Degaine_isAuto, BINDING_HEADER_DEGAINE | 20 -- GLOBALS: Degaine_ToggleAuto, Degaine_isAuto, BINDING_HEADER_DEGAINE |
21 | 21 |
22 -- It doesn't matter if they are globals | 22 -- It doesn't matter if they are globals |
23 -- GLOBALS: DEFAULT_CHAT_FRAME, GossipFrame | 23 -- GLOBALS: DEFAULT_CHAT_FRAME |
24 | 24 |
25 -- Lua functions | 25 -- Lua functions |
26 local pairs = pairs; | 26 local pairs = pairs; |
27 local type = type; | 27 local type = type; |
28 | 28 |
29 -- Wow functions | 29 -- Wow functions |
30 local GetTime = GetTime | |
30 local InCombatLockdown = InCombatLockdown | 31 local InCombatLockdown = InCombatLockdown |
31 local ToggleSheath = ToggleSheath | 32 local ToggleSheath = ToggleSheath |
32 | 33 |
33 | 34 |
34 --------------------------------------------------------------- | 35 --------------------------------------------------------------- |
39 local playername = UnitName("player") | 40 local playername = UnitName("player") |
40 | 41 |
41 -- vars | 42 -- vars |
42 local t_left = -1 | 43 local t_left = -1 |
43 local delay = 2 -- seconds | 44 local delay = 2 -- seconds |
45 local isGossipClosed = true | |
46 local wasGossipOpened = false | |
47 local t_lastGossipClosed = 0 | |
44 | 48 |
45 | 49 |
46 --------------------------------------------------------------- | 50 --------------------------------------------------------------- |
47 -- Some stuff... | 51 -- Some stuff... |
48 --------------------------------------------------------------- | 52 --------------------------------------------------------------- |
58 --------------------------------------------------------------- | 62 --------------------------------------------------------------- |
59 -- Events config | 63 -- Events config |
60 --------------------------------------------------------------- | 64 --------------------------------------------------------------- |
61 -- Events to watch | 65 -- Events to watch |
62 local events = { -- no args to watch | 66 local events = { -- no args to watch |
63 GOSSIP_SHOW = true, | 67 GOSSIP_SHOW = function() |
64 MERCHANT_SHOW = function() return GossipFrame:IsShown() end, | 68 local returnvalue = isGossipClosed |
69 isGossipClosed = false | |
70 return returnvalue | |
71 end, | |
72 MERCHANT_SHOW = function() | |
73 -- hack for the cases where the merchant's frame is opened from a gossip frame | |
74 if (GetTime() - t_lastGossipClosed) < 0.5 then | |
75 return not wasGossipOpened | |
76 else | |
77 return isGossipClosed | |
78 end | |
79 end, | |
65 BANKFRAME_OPENED = true, --function() return GossipFrame:IsShown() end, | 80 BANKFRAME_OPENED = true, --function() return GossipFrame:IsShown() end, |
66 AUCTION_HOUSE_SHOW = true, | 81 AUCTION_HOUSE_SHOW = true, |
67 } | 82 } |
68 local events1player = { -- the first arg is "player" | 83 local events1player = { -- the first arg is "player" |
69 UNIT_SPELLCAST_FAILED = true, | 84 UNIT_SPELLCAST_FAILED = true, |
155 --------------------------------------------------------------- | 170 --------------------------------------------------------------- |
156 -- Event/hooks functions | 171 -- Event/hooks functions |
157 --------------------------------------------------------------- | 172 --------------------------------------------------------------- |
158 local Degaine_OnEvent = function(self,event, arg1, arg2, _, _, arg5, ...) | 173 local Degaine_OnEvent = function(self,event, arg1, arg2, _, _, arg5, ...) |
159 --@debug@ | 174 --@debug@ |
160 if debug then | 175 --if debug then |
161 DEFAULT_CHAT_FRAME:AddMessage(event) | 176 DEFAULT_CHAT_FRAME:AddMessage(event) |
162 if arg1 then DEFAULT_CHAT_FRAME:AddMessage("arg1 = "..arg1) end | 177 --if arg1 then DEFAULT_CHAT_FRAME:AddMessage("arg1 = "..arg1) end |
163 if arg2 then DEFAULT_CHAT_FRAME:AddMessage("arg2 = "..arg2) end | 178 --if arg2 then DEFAULT_CHAT_FRAME:AddMessage("arg2 = "..arg2) end |
164 end | 179 --end |
165 --@end-debug@ | 180 --@end-debug@ |
166 | 181 |
167 if events[event] then | 182 if events[event] then |
168 if type(events[event])~="function" or events[event]() then | 183 if type(events[event])~="function" or events[event]() then |
169 start() | 184 start() |
176 end | 191 end |
177 elseif events2playername[event] then | 192 elseif events2playername[event] then |
178 if arg2==playername then | 193 if arg2==playername then |
179 start() | 194 start() |
180 end | 195 end |
196 elseif event == "GOSSIP_CLOSED" then | |
197 wasGossipOpened = not isGossipClosed | |
198 isGossipClosed = true | |
199 t_lastGossipClosed = GetTime() | |
181 | 200 |
182 elseif event == "PLAYER_REGEN_ENABLED" then | 201 elseif event == "PLAYER_REGEN_ENABLED" then |
183 desactivate() | 202 desactivate() |
184 elseif event == "PLAYER_REGEN_DISABLED" then | 203 elseif event == "PLAYER_REGEN_DISABLED" then |
185 activate() | 204 activate() |
216 -- Initialization | 235 -- Initialization |
217 --------------------------------------------------------------- | 236 --------------------------------------------------------------- |
218 DegaineFrame:SetScript("OnEvent",Degaine_OnEvent) | 237 DegaineFrame:SetScript("OnEvent",Degaine_OnEvent) |
219 | 238 |
220 -- Global events | 239 -- Global events |
240 DegaineFrame:RegisterEvent("GOSSIP_CLOSED") | |
221 DegaineFrame:RegisterEvent("PLAYER_REGEN_ENABLED") | 241 DegaineFrame:RegisterEvent("PLAYER_REGEN_ENABLED") |
222 DegaineFrame:RegisterEvent("PLAYER_REGEN_DISABLED") | 242 DegaineFrame:RegisterEvent("PLAYER_REGEN_DISABLED") |
223 DegaineFrame:RegisterEvent("ADDON_LOADED") | 243 DegaineFrame:RegisterEvent("ADDON_LOADED") |
224 activate() | 244 activate() |
225 | 245 |