02/25/15, 12:14 PM | #1 |
|
Problem with reading guild bank content
Hello there,
i'm having issue with reading the guild bank content. Sometimes it works... Sometimes not... And i don't understand why ! That's make me crazy... I actually launch my code on two events. EVENT_GUILD_BANK_SELECTED This simply set a global variable to get the bankID. Code:
function LGBE:selectGuildBank(eventCode, guildBankId) LGBEStack.guildBankId = guildBankId logActionToChat(string.format("Banque de guilde active : (%d) %s", LGBEStack.guildBankId, GetGuildName(LGBEStack.guildBankId))) end Here is the main point. In my trace i see the bankID is correct. But it seems the GetItemName, GetItemType only return something the first time i launch this function... Code:
function LGBE:update() if LGBEStack.debugInfo ~= false then logActionToChat("LGBE:update") end if LGBEStack.exporting ~= true then LGBEStack.debugInfo = true local bankSlots = GetBagSize(BAG_GUILDBANK) local nbItems = 0 local nbNonStackedSlot = 0 if LGBEStack.debugInfo ~= false then logActionToChat(string.format("bankSlots=(%d)", bankSlots)) end logActionToChat("LegionGuildBankExtract : Extraction en cours...") logActionToChat(string.format("Banque de guilde active : (%d) %s", LGBEStack.guildBankId, GetGuildName(LGBEStack.guildBankId))) -- réinitialisation des variables sauvegardées savedVars['bank'] = {} -- -- Boucler sur les slots de la banque -- for bankSlot = 0, bankSlots do local bankItemName = GetItemName(BAG_GUILDBANK, bankSlot) local bankStack,bankMaxStack = GetSlotStackSize(BAG_GUILDBANK, bankSlot) local bankItemType = GetItemType(BAG_GUILDBANK, bankSlot) if bankSlot < 50 then logActionToChat(string.format("Slot %d %s %d %d %d", bankSlot, bankItemName, bankStack, bankMaxStack, bankItemType)) end if bankItemName ~= "" then -- Slot non vide, on sauvegarde donc l'information local itemType = GetItemType(BAG_GUILDBANK, bankSlot) if isSavedItem[itemType + 1] ~= false then -- /!\ les types commencent à 0 mais les index d'array à 1 if savedVars['bank'][bankItemName] ~= nil then -- L'objet a déjà été inséré via une autre pile, on remet juste à jour le nombre savedVars['bank'][bankItemName]['bankStack'] = savedVars['bank'][bankItemName]['bankStack'] + bankStack if LGBEStack.debugInfo ~= false then logActionToChat(string.format("Slot(%s) %s/%s %s additionnés", bankSlot, bankStack, bankMaxStack, bankItemName)) end if bankStack < bankMaxStack and savedVars['bank'][bankItemName]['bankStack'] < bankMaxStack then nbNonStackedSlot = nbNonStackedSlot + 1 end else local tmpArray = {} tmpArray['bankSlot'] = bankSlot tmpArray['bankStack'] = bankStack tmpArray['bankItemName'] = bankItemName savedVars['bank'][bankItemName] = tmpArray if LGBEStack.debugInfo ~= false then logActionToChat(string.format("Slot(%s) %s %s ajoutés", bankSlot, bankStack, bankItemName)) end end nbItems = nbItems + 1 end end end logActionToChat(string.format("LegionGuildBankExtract : Fin [%d objets extraits][%d piles séparées]", nbItems, nbNonStackedSlot)) -- Mise a jour de la banque sauvegardée pour ne pas exécuter le script plusieurs fois if nbItems ~= 0 then LGBEStack.lastGuildBankIdExport = LGBEStack.guildBankId end LGBEStack.debugInfo = false else if LGBEStack.debugInfo ~= false then logActionToChat("Export deja en cours") end end end Anyone have a clue about this ? What i am doing wrong ? Best Regards. |
ESOUI » Developer Discussions » Lua/XML Help » Problem with reading guild bank content |
«
Previous Thread
|
Next Thread
»
|
Display Modes |
Switch to Linear Mode |
Switch to Hybrid Mode |
Threaded Mode |
|
|