-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AS3 client cant receive more then 100 buddies #58
Comments
Hi, first of all, thank you for your detailed explanation and research into this bug, and apologies for my delayed response. Unfortunately I am unable to replicate what you're experiencing. I sent 110 buddies in the Replaced line 88 with
In buddies.py. Also, your explanation doesn't really make sense since, my buddies API has no handler for // airtower.as
var REFRESH_PLAYER_FRIEND_INFORMATION = "rpfi"; // shell.as
function sendRefreshPlayerFriendInfo()
{
AIRTOWER.send(AIRTOWER.PLAY_EXT,AIRTOWER.PLAYER_HANDLER + "#" + AIRTOWER.REFRESH_PLAYER_FRIEND_INFORMATION,[],"str",getCurrentServerRoomId());
} To confirm this, I sent half the buddies with await p.send_xt('gb', *buddies, *[f'{i}|P{i}|0' for i in range(50)])
await p.send_xt('rpfi', *[f'{i}|P{i}|0' for i in range(50, 110)]) And I only got the first 50 buddies (sent in the To push this further, I tried with 1000 buddies, and they still all showed up. |
First of all, I said to send the rest of the buddies in response to the rpfi packet, as in the client sends the rpfi packet, and I respond to it with a gb packet. I'm not really sure why yours works fine... i'll try recreating the bug later |
maybe this issue isn't caused by the dependency/packet itself, maybe its caused by the db throttled or something? |
Surely if the db was throttled from getting buddies the same thing would happen with items, powercards, furniture and anything else that gets a load of entries from the db at the same time though? |
Yes but both of them doesn't use
|
I sent 230 buddies and the buddy list refuses to work at all, so i guess there's another lead on this story |
If a user has more than 100 buddies the client will break. Here is a screenshot of the bug happening (from a player in newcp)
To fix the bug, send the first 100 buddies in response to b#gb, the client will see you didnt send all their buddies and will send a u#rpfi packet. Send the rest of the users buddies in response to that (in a gb packet like before). Also, you still cannot send more then 100 buddies in response to the rpfi packet, so if the user has 230 buddies, send another 100 buddies in response to rpfi, and the client will keep sending an rpfi packet until all buddies are received.
The text was updated successfully, but these errors were encountered: