Mercurial > wow > wowdb-profiler
comparison Main.lua @ 11:0ec5c8f4b72b
Better support for looting from world objects.
| author | James D. Callahan III <jcallahan@curse.com> |
|---|---|
| date | Tue, 01 May 2012 12:04:29 -0500 |
| parents | 94bc939c2ca6 |
| children | be3d67c28a27 |
comparison
equal
deleted
inserted
replaced
| 10:94bc939c2ca6 | 11:0ec5c8f4b72b |
|---|---|
| 142 if not identifier then | 142 if not identifier then |
| 143 return | 143 return |
| 144 end | 144 end |
| 145 local zone_name, x, y, map_level, instance_type = CurrentLocationData() | 145 local zone_name, x, y, map_level, instance_type = CurrentLocationData() |
| 146 local object = UnitEntry("objects", identifier) | 146 local object = UnitEntry("objects", identifier) |
| 147 | 147 object.locations = object.locations or {} |
| 148 if not object[zone_name] then | 148 |
| 149 object[zone_name] = {} | 149 if not object.locations[zone_name] then |
| 150 end | 150 object.locations[zone_name] = {} |
| 151 object[zone_name][("%s:%s:%s:%s"):format(instance_type, map_level, x, y)] = true | 151 end |
| 152 object.locations[zone_name][("%s:%s:%s:%s"):format(instance_type, map_level, x, y)] = true | |
| 152 end | 153 end |
| 153 | 154 |
| 154 | 155 |
| 155 ----------------------------------------------------------------------- | 156 ----------------------------------------------------------------------- |
| 156 -- Methods. | 157 -- Methods. |
| 264 local unit_type, id_num = WDP:ParseGUID(_G.UnitGUID("target")) | 265 local unit_type, id_num = WDP:ParseGUID(_G.UnitGUID("target")) |
| 265 action_data.id_num = id_num | 266 action_data.id_num = id_num |
| 266 end | 267 end |
| 267 return true | 268 return true |
| 268 end, | 269 end, |
| 270 [AF.OBJECT] = function() | |
| 271 return true | |
| 272 end, | |
| 269 } | 273 } |
| 270 | 274 |
| 271 | 275 |
| 272 local LOOT_UPDATE_FUNCS = { | 276 local LOOT_UPDATE_FUNCS = { |
| 273 [AF.NPC] = function() | 277 [AF.NPC] = function() |
| 274 local npc = UnitEntry("npcs", action_data.id_num) | 278 local npc = UnitEntry("npcs", action_data.id_num) |
| 275 npc.drops = npc.drops or {} | 279 npc.drops = npc.drops or {} |
| 276 | 280 |
| 277 for index = 1, #action_data.drops do | 281 for index = 1, #action_data.drops do |
| 278 table.insert(npc.drops, action_data.drops[index]) | 282 table.insert(npc.drops, action_data.drops[index]) |
| 283 end | |
| 284 end, | |
| 285 [AF.OBJECT] = function() | |
| 286 local object = UnitEntry("objects", action_data.identifier) | |
| 287 object.drops = object.drops or {} | |
| 288 | |
| 289 for index = 1, #action_data.drops do | |
| 290 table.insert(object.drops, action_data.drops[index]) | |
| 279 end | 291 end |
| 280 end, | 292 end, |
| 281 } | 293 } |
| 282 | 294 |
| 283 | 295 |
| 455 if max_power > 0 then | 467 if max_power > 0 then |
| 456 local power_type = _G.UnitPowerType("target") | 468 local power_type = _G.UnitPowerType("target") |
| 457 npc.stats[npc_level].power = ("%s:%d"):format(POWER_TYPE_NAMES[_G.tostring(power_type)] or power_type, max_power) | 469 npc.stats[npc_level].power = ("%s:%d"):format(POWER_TYPE_NAMES[_G.tostring(power_type)] or power_type, max_power) |
| 458 end | 470 end |
| 459 end | 471 end |
| 472 action_data.type = AF.NPC -- This will be set as appropriate below | |
| 460 end | 473 end |
| 461 | 474 |
| 462 | 475 |
| 463 function WDP:QUEST_COMPLETE() | 476 function WDP:QUEST_COMPLETE() |
| 464 end | 477 end |
| 523 end | 536 end |
| 524 | 537 |
| 525 local zone_name, x, y, map_level, instance_type = CurrentLocationData() | 538 local zone_name, x, y, map_level, instance_type = CurrentLocationData() |
| 526 | 539 |
| 527 if bit.band(spell_flags, AF.OBJECT) == AF.OBJECT then | 540 if bit.band(spell_flags, AF.OBJECT) == AF.OBJECT then |
| 541 local identifier = ("%s:%s"):format(spell_label, target_name) | |
| 542 UpdateObjectLocation(identifier) | |
| 543 | |
| 528 action_data.instance_type = instance_type | 544 action_data.instance_type = instance_type |
| 529 action_data.map_level = map_level | 545 action_data.map_level = map_level |
| 530 action_data.name = target_name | 546 action_data.name = target_name |
| 531 action_data.type = AF.OBJECT | 547 action_data.type = AF.OBJECT |
| 532 action_data.x = x | 548 action_data.x = x |
| 533 action_data.y = y | 549 action_data.y = y |
| 534 action_data.zone = zone_name | 550 action_data.zone = zone_name |
| 551 action_data.identifier = identifier | |
| 535 print(("Found spell flagged for OBJECT: %s (%s, %s)"):format(zone_name, x, y)) | 552 print(("Found spell flagged for OBJECT: %s (%s, %s)"):format(zone_name, x, y)) |
| 536 elseif bit.band(spell_flags, AF.ZONE) == AF.ZONE then | 553 elseif bit.band(spell_flags, AF.ZONE) == AF.ZONE then |
| 537 print("Found spell flagged for ZONE") | 554 print("Found spell flagged for ZONE") |
| 538 end | 555 end |
| 539 elseif tt_unit_name and not tt_item_name then | 556 elseif tt_unit_name and not tt_item_name then |
