comparison Looting.lua @ 78:5b507f4125d4

Finalized bid handling
author John@Yosemite-PC
date Thu, 12 Apr 2012 22:19:15 -0400
parents 39be9328acd0
children 7b8fcea357d2
comparison
equal deleted inserted replaced
77:0a3f590f69e6 78:5b507f4125d4
42 end 42 end
43 local items = {} 43 local items = {}
44 for i = 1,n do 44 for i = 1,n do
45 local link = _G.GetLootSlotLink(i) 45 local link = _G.GetLootSlotLink(i)
46 if link then 46 if link then
47 table.insert(items,link) 47 table.insert(items,{link=link,mlid=i})
48 print("Item: ", link) 48 print("Item: ", link, i)
49 end 49 end
50 end 50 end
51 if not isMasterLootEvent then return end 51 if not isMasterLootEvent then return end
52 52
53 print("Let's get started SKing") 53 print("Let's get started SKing")
54 -- todo: check that I am ML and that I'm an admin! 54 -- todo: check that I am ML and that I'm an admin!
55 55
56 -- make state: gather all item links, transmit them plus the new looting
57 -- state
58 --
59 InitiateBeginLoot(items,stateactivelist) 56 InitiateBeginLoot(items,stateactivelist)
60
61 end 57 end
62 58
63 function FreeLoot(item,person) 59 function FreeLoot(item,person)
64 PrintTable(item) 60 PrintTable(item)
65 PrintTable(person) 61 PrintTable(person)
66 for ci = 1, 40 do 62 for ci = 1, 40 do
67 if _G.GetMasterLootCandidate(ci) == person.textPlain then 63 if _G.GetMasterLootCandidate(ci) == person.textPlain then
68 print("GML",item.value,ci) 64 print("GML",item.mlid,ci)
69 _G.GiveMasterLoot(item.value, ci) 65 _G.GiveMasterLoot(item.mlid, ci)
70 return true 66 return true
71 end 67 end
72 end 68 end
73 69
74 print("Could not assign loot to ", person.textPlain) 70 print("Could not assign loot to ", person.textPlain)
75 end 71 end
76 72
77 function ExpensiveLoot(item,lref) 73 function ExpensiveLoot(item,lref)
78 local person
79 if getn(statebids) > 0 then 74 if getn(statebids) > 0 then
80 if FreeLoot(item,statebids[1]) then 75 if FreeLoot(item,statebids[1]) then
81 lref:SuicidePerson(statebids[1].value) 76 lref:SuicidePerson(statebids[1].value)
82 else 77 else
83 printf("Could not suicide %s for item; they are ineligible or offline",statebids[1].textPlain) 78 printf("Could not suicide %s for item; they are ineligible or offline",statebids[1].textPlain)
93 return 88 return
94 end 89 end
95 _G.error("Trying to suicide+loot without bids or rolls") 90 _G.error("Trying to suicide+loot without bids or rolls")
96 end 91 end
97 92
93 function DirectSuicideLoot(item,person,lref)
94 if FreeLoot(item,person) then
95 lref:SuicidePerson(person.value)
96 else
97 printf("Could not suicide %s for item; they are ineligible or offline", person.textPlain)
98 end
99 end
100
98 function InitializeLooting() 101 function InitializeLooting()
99 event:RegisterEvent("OPEN_MASTER_LOOT_LIST",OpenMasterLootList) 102 event:RegisterEvent("OPEN_MASTER_LOOT_LIST",OpenMasterLootList)
100 event:RegisterEvent("UPDATE_MASTER_LOOT_LIST",UpdateMasterLootList) 103 event:RegisterEvent("UPDATE_MASTER_LOOT_LIST",UpdateMasterLootList)
101 event:RegisterEvent("LOOT_CLOSED",LootClosed) 104 event:RegisterEvent("LOOT_CLOSED",LootClosed)
102 event:RegisterEvent("LOOT_OPENED",LootOpened) 105 event:RegisterEvent("LOOT_OPENED",LootOpened)