![]() |
#1 | ||||||||||
![]() ![]()
|
Hello Joymax, Here is a high priority bug related to Silkroad Online Auto-login feature عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] 1- How can such a bug occur? There is actually 2 methods that such a bug can occur. Let start with the easiest way to replicate the bug: --------------------------------------------------------------- --------------------------------------------------------------- --------------------------------------------------------------- Open silkroad.exe Click on the 'Start' button Wait for sro_client.exe to open Select a server that is full Write your userID and password which do not have a premium login advantage Click on connect Now the following screen should appear: عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] Please note that the "...Requesting user confirmation..." message flash at a rate of 1 times per 20 seconds Now we will create a bug by forcing windows to DC the connection. Go to manage your network connections, there should be a "Local Area Connection" network adapter which is your internet connection Right click on it and do disable. Wait 5 seconds Right click on it and do enable Please note, unplugging/replugging your network cable will not simulate a DC. Now that the DC has occured, sro_client keep trying to send the "...Requesting user confirmation..." without any answer from Joymax, after 30 seconds it will disconnect from the server and reconnect. When it reconnect to the server, it never click on the connect button. In other word, you are in a state where sro_client has the account name written, the password is written and it is waiting for you to click on connect. Though the only thing you see is this: عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] You aren't allowed to click on connect, thus sro_client is bugged. All you see is the you are in a lineup which is false and the "...Requesting user confirmation..." never appear --------------------------------------------------------------- --------------------------------------------------------------- --------------------------------------------------------------- Now let go into more detail for the harder issue that people are having: There is 4 login server DNS: gwgt1.joymax.com -> 121.128.133.28 gwgt2.joymax.com -> 121.128.133.30 gwgt3.joymax.com -> 121.128.133.28 gwgt4.joymax.com -> 121.128.133.29 sro_client.exe randomly select one of those 4 dns server. Please note this is random, but since there is 2 dns pointing to the same ip Odds are more people will connect to the '121.128.133.28' login server. Making such a server to be avoided at all cost since on a perfect odds 121.128.133.28 -> 25% -> 50% 121.128.133.28 -> 25% -> 50% 121.128.133.29 -> 25% 121.128.133.30 -> 25% Thus, you should completly remove gwgt1.joymax.com or gwgt3.joymax.com from the pk2 files if you are to keep only 3 login server ip. Now let go back to the bug issue. There is 3 login server and each login server has their own queue line: Queue28 Queue29 Queue30 We will call them by the end of their ip address. Each of them are independent queue. Let take the Queue28 for example and imagine there is 100 peoples in the Queue28. Everyone inside Queue28 send a Connect Signal each 20 seconds If you aren't the first user inside the queue, you are kept in the line up. If you are the first user inside the queue, the login server verify if the server is full or not. Please note, the data displayed on عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] Are the actual data which Silkroad login server has, if it isn't full, the login server give you a key + the ip address of the game server. Else you are told to wait inside the queuelist When you get the gameserver IP and the key: Now you disconnect from the login server. You connect to the game server and show your key. The game server acknowledge that you got the key from the login server and double verify that the server isn't full. If the server isn't full, Congrat you have login If the server is full, you get the Server full error while looking at this screen: عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] Now you get disconnected from the game server You reconnect to the login server and it get the same reaction as if you get a DC from the login server: You get to the screen where you need to write your username and password which are already written Though the issue is that you can't click on connect since what you see is the following: عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] You got DCed and after that, the orange text saying "...Requesting user confirmation..." Doesn't appear anymore, meaning that if you haven't seen the server full orange text, and you aren't aware that if the "...Requesting user confirmation..." text doesn't appear you will be waiting FOREVER Since you aren't actually even trying to connect to Joymax server anymore. Now you will ask, yes but what are the odds of 2 peoples connecting at the same time? There is 3 independant login server, which are sending a connect message each 20 seconds. If the first user in the Queue28 send a connect and there is 3499/3500 user, he will get a key. Though if the first user of Queue28,Queue29 and Queue30 all send the connect at the same time (first one in each queue) They will all get a key and go to the game server, though they are all competing for 1 spot Also if the 2nd user that is right behind the first user in a list happen to send a connect 0.1 seconds after the first user, the first user is already removed from the queue list. Which mean he will also see 3499/3500 user since the first user hasn't had the time to connect and he will also get a key Please consider the transition to go inside the game server delay which can be up to 2 seconds. So when a user connect, there is the odds of the 2nd user in it own list + the odds of another independant Queue28,Queue29,Queue30 to connect simultaniously as you when there is 1 spot left. You will get a Server full error and you will loose all the time you waited inside the queue list + you will have a bugged sro_client not trying to connect anymore. --------------------------------------------------------------- --------------------------------------------------------------- --------------------------------------------------------------- Now what you MUST NOT DO! WARNING!!!! Joymax, you might figure out that an easy solution would be to remove the Server check to know if the server is full. Since the login server verify it and the user has a key that proved that he has waited inside the login server. Please be aware that it happened a few time in the past that the login server show the server as "easy" while the game server are full. If such a bug was to appear and you remove the game server check and the login server has invalid stats. Such an issue would cause the game server to be OVERCROWDED 7000+ users inside, making the game server to lag for ram, bandwith and cpu issue. This is just a warning in case you were opting for such an option. The best way to fix such an issue from my belief would be the following option: The game server with a 3500 user capacity will never refuse user when there is least than 3510 user in the server. {small buffer} This will compensate greatly to the user receiving a server full error message, also issues where the login server has invalid data doesn't happen frequently, if it does, your login queue is kind of screwed... But sro_client will be fine and retry to infinity if you fix the 2nd bug and here is how to fix the 2nd bug: As for user reconnecting to sro_client.exe, if the password field isn't empty, sro_client.exe should automatically press connect. This will only help user that either have a DC as explained in the First part and they reconnect automatically when sro_client detect the dc. Or will also help if ever the login server has invalid data and accept too many user which receive a server full error message, it will move them back to the login server and they will go back in queue (which shouldn't happen often) Please note, fixing those issue will help real player, since gold farmer bot use clientless which never has any login issue such as us. --------------------------------------------------------------- --------------------------------------------------------------- --------------------------------------------------------------- Please note, some information provided in here could be invalid. Those are just information taken from my general knowledge. I have never seen the server code, I only created my own meaning of how it work by how the server react to different input. Sincerely, Rev6 team معنا اية ده |
||||||||||
![]() |
يتصفح الموضوع حالياً : 1 (0 عضو و 1 زائر) | |
|
|
![]() |
||||
الموضوع | كاتب الموضوع | المنتدى | الردود | آخر مشاركة |
New Auto Login | dosdos | قسم المواضيع المكررة و المخالفة | 10 | 10-09-2009 04:16 AM |
[Tool] LogSro ~The Auto-Login Script} Auto Logi (ارجو التثبيت) | takelook | قـسـم الـبـرامـج الـمـسـاعـدة | 67 | 02-07-2009 06:08 PM |