Thread Tools Display Modes
08/30/15, 03:07 PM   #1
QuadroTony
Banned
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 828
Two guild bank problems

1) Infinite "retrieving items..."
just look at this
https://docs.google.com/spreadsheets...M84/edit#gid=0

for me its very often as you see - 30-35% of the time
latency always ~70-110

what it can be? ISP connection to server thru too many hosts and hubs?
any1 experienced the same?

2) split stacks with an addon
http://www.esoui.com/downloads/info1...tackSplit.html

this addon has a great idea, but its not working as intended for some reason, mby you can help us? Baertram told he will look at it, but the issue not in the
This is because other ppl are playing witht he same guild bank and the item needs some time to get transfered to your local inventory
because i tried in dead guilds, where no1 else but me working with guild bank, and still sometimes even 10s delay not enough and stack-routine failed..

sorry Baertram for posting this here - i just thinking more heads: faster solution!

Last edited by QuadroTony : 08/30/15 at 03:13 PM.
  Reply With Quote
08/30/15, 03:21 PM   #2
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 5,004
1)
Got it to very often, but most of the time it happens in heavily frequented cities and banks for me, so I blame it on the servers

2)
No problem, if any1 is able to help I'm glad too.
It got sowing to do with the slotcontrol which just sometimes seems to be nil there, even if I wait for 30 seconds.
  Reply With Quote
08/30/15, 07:46 PM   #3
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,019
1) NetCode, ZOS problem since beta.


2) NetCode, Zos and Addons dev problem.

Splitting a stack from GBank require a local transfer, Baetram, just look at roomba code!

in fact , I guess there is a quota and a queue for whole megaserver transactions after the gbank you are in.

let's say a friend move items in gbank, so yes, you'll wait, but on a guild where is nobody, you can also got this message, why ? because zos queue it with something else. maybe whole gbanks ! so let's test at 4AM (i often play at 4AM and i'm in euro). you can still have this problem. so its maybe queued with all "message"s, after all too many moves result in a "spam" ejection. that's purely zos problem.

but we need to handle it !



You init listeners at OPEN_GBANK, you unregisters at CLOSE_GBANK.
You set flag of gbankId at GBANK SELECTED
You set flag at ITEMS_READY, protect with a flag to avoid 3 times code runs.
at ITEMS_READY + 1.5s, you check if user got right to deposit/withdraw, if yes you add your hooks -- addmenu() to context menu items
callback of the addmenu :
need to check space left in your bag and in guild bank
if keybinding, protect against it cause to permissions.
store the slotindex of the item
register an EVENT_INVENTORY_SINGLE_SLOT_UPDATE to listen the coming of the item
set a flag "i will transfer things !" iteminstanceid is XXXXX (available in SHARED_INVENTORY data.itemInstanceId)
TransferFromGuildBank(slotindexinGBank)

then the function which listens with EVENT_INVENTORY_SINGLE_SLOT_UPDATE :

check if inventory, check if flag "i will transfer things" is activated, if yes, and not a newItem, check the itemInstanceId
if it's this one, you got it ! grab the slotIndex1, split it with RequestMoveItem().

You'll get a new EVENT_INVENTORY_SINGLE_SLOT_UPDATE, recheck itemInstanceId, if it's the same, it's your item, grab the slotIndex2 !
then register an EVENT_GUILD_BANK_ITEM_ADDED and a EVENT_GUILD_BANK_TRANSFER_ERROR

then TransferFromGuildBank(slotIndex1) !

then function of events should trigger :

if it's success :
check itemInstanceId again : if it's the good item, initiate the transfer of slotIndex2 if space is still ok

another event should pop !

if it's success :
check itemInstanceId again : if it's the good item, just unregisters everything.

in case of errors with EVENT_GUILD_BANK_TRANSFER_ERROR !

GUILD_BANK_NO_SPACE_LEFT : pooooommpp : someone else was quicker than you. stop everything, blame guildmate !
GUILD_BANK_ITEM_NOT_FOUND : damnit ! item was destroyed in bag, can be another miscoded addon !
GUILD_BANK_TRANSFER_PENDING : this error comes when you get the message I don't remember well playing in french .. "Waiting from previous transfer" or "Waiting from another transfer, move". Just wait and zo_callLater another move ! call transfermy1ststack() or transfermy2ndstack, depending on your flag + add a flag to do not retry indefinitely.

it should work, thts how I do in roomba
  Reply With Quote
08/31/15, 06:33 AM   #4
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 5,004
Thanks Ayantir, I'll chek your "pseudo code" when I find the time.
Working with the itemInstanceId seems a good solution then. I checked the Roomba source code already in the past but it didn't solve the problem with the "non existing" inventorySlotControl.
  Reply With Quote

ESOUI » Developer Discussions » General Authoring Discussion » Two guild bank problems


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off